Your Dog

by dhovel 27. December 2011 13:40

Your dog is not particularly cute.

Dogs can be very cute, but they are similar to people in that only about one in twenty is genuinely attractive.  If others find your dog to be cute, that’s great.   But it’s not a good topic of conversation.

Your dog is not particularly smart.

Most dogs are of roughly the same intelligence.  They can do certain clever things but are usually blissfully ignorant of the obvious.  Unless you have a trained Border collie, your dog is probably just average.  Please remember the “Lake Woebegone” effect: they can’t all be good-looking and above-average.

Your dog is nice—to you
.

Dogs have been bred for 70,000 years to distinguish between those who feed them and strangers.  Your dog’s behavior toward you is no indication of how it will behave toward others.  Only training and monitoring will make your dog a truly safe member of society.

Your dog is not a child.

If you want to carry your dog in a belly pack or a stroller and coddle it all day, that’s your prerogative.  However, please refrain from recounting all the myriad ways your dog is like your child.  It’s not.

If I’m in busy traffic and I see a dog in my car’s path, I will try to avoid hitting it.  But I will not deliberately collide with nearby cars or risk a rear-end collision to avoid the dog; doing so might cause an injury or risk a human life.  If, on the other hand, I see a child in my car’s path, I will do everything I can, including jumping lanes, to avoid her.  After all, the nearby drivers and I are protected by tons of steel, seat belts and air bags.  And, after all, it’s a child.

Your dog is an “it”.

Most dogs these days are neutered, and dogs, as a species, are not dimorphic.  I am not interested in whether your dog used to be male or female.  Please do not correct me if I get the gender wrong, since I just don’t care.

Yes, your dog’s bark is annoying.

Every dog’s behavior is a reflection of its owner.  If you would not personally bark at people the way your dog does, remember that we’re all thinking it’s really you doing the barking. 

Please don’t expect that others can distinguish all the marvelous nuances of your canine’s self-expression (playfulness, uncertainty, boredom, etc.) because they vary by dog and are mostly just the owner’s interpretation.  Almost all barking sounds aggressive because it’s supposed to.

Dogs are wonderfully trainable.  Many attack dogs are trained to approach an intruder completely silently.  If a Rottweiler or Doberman can be trained that way, your dog can be trained not to bark at strangers from the back seat of a parked car.

Yes, your dog needs a leash.


Voice command is generally a myth.  Given the right temptation, almost all dogs will dash off after a rabbit, another dog or just because of high spirits.  If the law or common sense says use a leash, do so.

If I’m walking, running or riding my bicycle, I don’t want to have to pay laser-like attention to your dog to make sure I don’t stumble over it.  And please keep your leash out of the path of others.  Imagine blocking other people’s path with a long stick—it’s the same thing.

No, your dog can’t come in my house.


I really don’t care if your dog just came from the beauty parlor, I don’t let dogs in my house.  That is my right.  Whether or not you allow your dog into bed with you, or allow it so sit on your lap while you drive is entirely irrelevant to my decision to exclude animals from my house.  I won’t take offence at your driving with a pooch in your lap if you don’t take umbrage at my decision to not clean up after your dog in my own home.

When you go to other peoples’ houses, please be prepared to keep your dog in your car during your visit or to tie it up outside. 

Yes, I do like dogs

I like dogs; I always have.  But like everything else in life, I appreciate the good ones and regret the bad ones.  And I don’t really want to know every aspect of your dog’s importance in your life.  I understand what having a dog means—it’s a roughly similar experience for everyone.  Dogs are pleasant adjuncts to the lives of many people, but they are only a part of life.  If you find yourself droning on incessantly about your dog, please take up knitting, computer programming, gardening, French or scuba diving.  Life is short.

Tags:

society

Kindle doesn't catch fire

by dhovel 7. November 2011 13:46

I just finished reading Steven Pinker’s wonderful new work, “The Better Angels of our Nature” on my wife’s (classic) Kindle.  I had been looking forward to having the work on a digital reader, but my expectations were dashed by the error-prone and primitive nature of today’s reader technology.  In brief, here are my primary complaints.

Pinker’s work is replete with graphs and charts.  On the Kindle, these render poorly, ranging from barely readable to laughable.  Since they are the core of the first half of the book, this is a significant limitation.

The rendering is poor.  The distinction between optional (line-break) and mandatory hyphens is entirely lost, leading to words being squeezed together and requiring decryption by the reader.  The footnote markers are sometimes rendered in a superscript (as would be expected), but often are just numbers stuffed into the current text line.  Pages have large gaps and pointless line-breaks which break the reading flow unnecessarily.

You cannot link from a footnote reference to the footnote and back.  I was shocked to find that the “Back” button doesn’t really go ‘back’ in a web browser sense.  If I jump to a stored bookmark to re-read a page, ‘back’ doesn’t go back!  Wow!

Almost the worst of all, this is a technical book, so its index and notes are very important.  Yet the notes do not allow you to jump to their original pages and the index is entirely useless!  In 2011 I would expect the index to have links to the actual references and allow me to iterate over the references to, say, Hobbes, looking for the quotation I wanted.  Instead the index is just a list of words.

All in all, I won’t be buying any technical works on the Kindle in the foreseeable future.  Unless the Kindle Fire significantly enhances rendering, page movement, footnotes, bookmarks and indexes, my advice is to stay with paper for books you respect.   It may be fine for the latest bodice-ripper or serial killer tome, but for serious (or even amateur) scholarship it just isn’t ready for prime-time.   How sad!

Tags:

The Budget Debacle: Eliminating Taxation ‘Elites’

by dhovel 8. August 2011 18:20

The current disgusting impasse in the Beltway regarding the long-term resolution of the budget deficit is being treated as a political football, with nonsense and self-aggrandizement on both sides.  I feel compelled to add yet another personal viewpoint to the debate.

There are clear necessities to change significantly the current formulation of entitlement programs, reduce the size of the Department of Defense and discover new sources of primary governmental revenues.   Whether you think the ratio of cuts to revenue increases should be 4 to 1, 3 to 1 or 1 to 10, both sides of the ledger must urgently be addressed.  The current rate of income taxation falls below the historically low levels of the Eisenhower Administration.  The projected growth of the myriad entitlement programs is terrifying to anyone paying attention.

My survey of history shows that a clear sign of the decay of many systems can be traced to the exclusion of groups or elites from tax liability.  Currently, only 50% or so of American families pay any income tax.  The currently low capital gains rates and low income tax brackets allow the richest families in the U.S. to avoid significant tax payments.  Poorer families generally pay no net tax after deductions and credits are applied.  Many major corporations, despite record earnings, end up paying no corporate income tax at all, in spite of our seemingly high corporate tax rate vis-à-vis other industrialized nations.  The limitation or exclusion of these ‘elites’ from taxation must end.

One clear path to renormalizing the tax structure would be to create a base tax rate; that is, a minimum percentage that all taxable entities, personal and corporate, would pay regardless of other applicable deductions or loopholes.   A minimum rate of 5% would reincorporate fully half of American taxpayers into the revenue stream.  This would mean that every individual or corporation would always pay at least 5% of income as tax, regardless of any deductions, exemptions or credits.

It would be hard to argue with such a low percentage of taxation.  Such an approach would reincorporate every significant taxable entity into the federal tax revenue stream.   Along with significant changes to entitlement programs and reduction of America’s defense posture, the path to realistic deficit reduction would be open.

Tags:

Microsoft as Patent Troll

by dhovel 28. April 2011 17:57

First it was Amazon with the infamous “one click” patent, and later the dubious ‘i4i’ lawsuit against Microsoft’s use of XML.  Along the way, numerous trivial and obvious user interface or data preparation methodologies have been patented and protected by an out-of-control patent system.

Microsoft was often the victim of such manifest injustices, but now it is perpetrating the same type of morally reprehensible litigation on Barnes & Noble’s “Nook” e-reader.  Trying to patent the tabbed dialog or cut-and-paste should be like trying to catch the wind.  These facilities are everywhere, and have existed in one form or another for forty years.

Personally, I can understand Oracle’s Larry Ellison playing fast and loose with Java licensing, or the owners of the Novell patents trying to milk (i.e. bilk) the system.  But Microsoft?  Granted, Microsoft has never directly espoused Google’s “do well while doing good” mantra, but at least its actions have rarely been based on such market-driven submarining as the Barnes & Noble suit.  I guess MS’s failure to achieve a position in the tablet market has led it to trying to hold successful tablet vendors for ransom.

Shame on you, Microsoft.  After releasing .Net for open specification and quasi-embracing open source, you had to pull this one.  Just develop a better product and let the market decide.  The unpleasant truth is that IP lawyers have enough work to do in our litigious culture without meritless lawsuits from multi-billion-dollar corporations.

Tags:

Blog | Patents

Comcast DNS Abuse

by dhovel 4. November 2010 02:37

In the middle of debugging some code on my Mac, I discovered that Comcast has done it again.  Acted against the interests of its customers, that is.   My Mac code, intended for an iPhone app, was "pinging" various web sites; I discovered that non-existent web sites showed up as actually present.   At first I thought it was my app, so I kept trying to look for bugs.  After a while, I brought up the Mac OS X "Networking" utility and found that virtually all non-existent web addresses were being redirected to address 208.68.143.50.  Not only was this bogus node replying to pings, but it would act as a spurious web site by servicing HTTP requests over port 80!

In other words, Comcast has changed the way the internet behaves in order to push advertising.  Of course, in their propaganda they claim that this is some sort of "service" to users to give them alternatives, but in reality it's just another intrusive and error-provoking means of earning revenue.

I later found that there is an option in my Comcast account to disable this unwanted "helper" service.  I've turned it off, of course, and as yet I see no change in behavior.  Maybe their expensive databases will take a week or two to propagate an update from my account to their overly clever DNS servers.   Here is the explanatory the link at Comcast.

It's sort of like going into a restaurant and ordering sushi, only to find canned tuna on the plate and a note saying that you were given lower-quality food because it may be lower in mercury.  The fundamental behavior of the internet is important and should be protected from the vagaries of oppressive marketing and the never-ending quest for yet another dollar.

Maybe I'm just too old for this crap.

Later note: I woke up this morning to find that their "opt out" feature actually works.  At least they got that right.  I'm dubious about all this, but at least I don't have to use it.

Update (10/2011):  I just found that the "DNS Helper" service had been turned back on; I have no idea why.  I went back to Comcast to change it again and discovered that it's very important to log in with your full Comcast email account name; otherwise, the "DNS Helper" option won't appear.  It seems they want to make this very difficult.

Tags:

networking

Windows Phone after a week or so

by dhovel 28. October 2010 01:10

Well, my pseudo-dummy Windows Phone app is almost done.  As a proof of concept, it falls quite short since sockets aren't supported in WP7.  However, I thought I'd blog again to review the good, the bad and the ugly.

First, the good.  Many things do work.  Since WP7 and Silverlight 4 are build on XAML, databinding does work, so all of reflection, etc., also must work.  Most of the other usual supects work, such as Regular Expressions.  I found (again) that the new XDocument classes are a treat to code for and serialization works very weil.  My whole app's state and all current data are just swooshed out to Isolated Storage and back in again via serialization.  I think it's almost a necessity to have Expressions 4 along with Visual Studio, and bopping back and forth between them is old hat for me by now.  C# is still the best language (for its class) out there, and Linq is supported, which surprised me.

Now the bad.  Again (from previous posts), no DataTriggers, no sockets.  Also, the Emulator doesn't persist app storage across executions, making complex data management almost impossible (who wants to use the cloud just to test?).  XAML is still, IMHO, a very near disaster.  It's completely un-type-safe, which in 2010 is almost a joke.  In addition, the whole process of creating well-behaved property notifications is completely tedious.   Since I don't have DataTriggers, I had to work around such common issues as selecting a graphic for an item in a listbox based on conditions.  To do this without triggers, I created a pseudo-property called StateImage that my XAML can bind to.  This means two things.  First, I have to create a bunch of these non-property properties to help the UI work like it should.   Second, I have to manually propagate notificiations to cause XAML to rebind.  It's about time that XAML and C# supported declarative bindable properties so that OnPropertyChanged, etc., would happen without tedious coding.  Maybe I'm missing something.  In the same vein, XAML really needs to support more than just public properties.  Why can't I pass parameters if they're statically defined, such as integers?  Have you actually looked at the stack trace in a data binding call?  It's horrendous!  If the system were truly type-safe, these calls could avoid the gnarly depths of recursive reflection.   Then we'd have the same situation we have in C# 4.0:  If you know about the class at compile time, it's type-safe and renders compile-time errors; if you don't it's dynamic and renders run-time errors.  XAML these days is entirely dynamic.

Finally, the ugly.  There's no popup window!  This is nothing short of amazing, but luckily I found a great blog post by Shawn Wildermuth that showed me how to drag in code from Silverlight 3.0, sprinkle some of his sugar on it and produce a nice-looking (and zooming) popup window.  I guess the Metro gurus really don't like informative UIs, or they believe we've entered a golden era of failure-free networking.  

More ugly: there's no ComboBox!  Another delightful broomstick up the **** from the Metro guys.  Again, I found a blog post by Alex Yakhnin linking to a download of his PickerBox.  While it's still a little error-prone, it generally does exactly what it should.  I really have to wonder when WP design people decide that a UI element that is absolutely ubiquitous must simply be eliminated.  This is no way to win hearts and minds. 

Still more ugly: the ApplicationBar, which is inserted into every WP page's XAML automatically, is really not ready for prime time.  First (of course) the UI gods have decreed that there shall be no more than four buttons.  OK, I guess that's their job.  However, the buttons and menu items aren't Framework Elements, and that means that you can't easily work with them.  The namespaces appear to be a little hokey, so you have to qualify things too often.  A word to the wise: you'd bettter use the blessed Microsoft ApplicationBar icons or strange things can happen.  It's also funny that buttons can appear correctly in Expressions but come up as big X's in the Emulator.

And more.  Page navigation is based on a web mode, where pages are represented by URIs.  That's OK, but when I want to pass parameters I have to resort to global variables (I just say no) or pass query terms.  There's no query term parser, so I have to code all that dreck by hand (thanks to regular expressions).  If they really insist on a URI model, why can't there be a type-safe HTTP POST capability that allows one page to parameterize another in a flexible way using serialization?

All in all, there's still the aroma of a rush to market by a team of people too convinced of their own wisdom.  I'm not going to sign up as a developer or get a phone until sockets work.  I hope.

Tags: , ,

Windows Phone, again-- less than it appears

by dhovel 23. October 2010 01:56

Well, I've spend quite a few hours with the Windows Phone SDK, Expressions Ultimate and Visual Studio 2010 over the last week.  The bottom line is that in spite of some very nice elements, the available assemblies (libraries) for Windows Phone display a distinct rush to market.

My princpal complaint are the egregious limitations on XAML in the WP7 SDK.  I wrote a fairly interesting media player application in WPF and came to respect and appreciate the data-centric WPF model.  After a few false starts I had an app that responded automatically to changes in the core datasets of the program.  The key to this was data triggering of XAML styles.  But guess what-- DataTriggers are not available on WP7!  Microsoft continues to ballyhoo "model-view-controller" (MVC) methodology and praise data models, but without DataTriggers you cannot write a truely MVC application for WP7. 

For example, to load a ListBox in "real" WPF you can specify the styles of the items, their containerization and visibility entirely from the data, using Binding to apply the content and DataTriggers to control both styling and structure through templates.  This is exactly what is needed in many cases.  In fact, it was exactly what I wanted for the WP7 app I want to write.  Instead, I'm left with the need to write oodles of plain old C# code to create listbox items, nest them and add them to the appropriate list.  This is very 1990's-style graphics development.

I have other beefs.  Why, pray tell, can you not persist IsolatedStorage elements across debugging sessions?  In my app I want the user to configure a list of sites.  I'll have to do that manually every time I restart the emulator!  This is very serious and seriously stupid.

As mentioned in a previous blog, the WP7 SDK is crippled with regard to sockets.  I had to write a proxy web site to perform standard operations (like ICMP ping) that the WP7 cannot do.  As I wrote before, I'm very suspicious the motivations for this.

Given the crippled nature of this release, I'm seriously debating waiting until a future release to get into WP7 development.  Microsoft has had years (and years) to get this right.  It's looking as though it's heading the right direction, but it hasn't reached critical mass yet.  IMHO.

Tags:

Windows (crippled) Phone

by dhovel 12. October 2010 16:06

I just installed the Windows 7 Phone SDK and all is component parts, which was a long but easy chore.  Well, the first time it hung forever and I had to remove a bunch of components before it would install correctly.

The process of getting a simple phone app built and running on the emulator was about like I expected.  I already learned basic XAML programming, and I found nothing extraordinary about the Phone classes (so far).

However-- (big pause) The level of support for real network programming on the WP7 is abysmal.   First, you can only use the WCF "service" model, which currently only runs over HTTP.  In other words, you must have a server hosting a WCF service or no go.  The claim (see this forum among many others) is that resource-poor Microsoft didn't have time to test sockets correctly before releasing this still-wet-behind-the-ears new product.  Maybe so.

On the other hand, maybe their urgent desire to establish Azure as the cloud platform of choice had something to do with this.  If you can't do your own networking you're forced to rely on hosted faciliies, either web servers or cloud communications.  Either way, Microsoft gets more money from you.  

Since HTTP runs over TCP and HTTP is supported in its web browser, I sense something altogether fishy in Microsoft's limitations for this first version of the WP7. Why couldn't they simply allow synchronous (blocking) communications over single TCP sockets, which is probably what the built-in web browser is doing?  Reason-- because they want to kill peer-to-peer.

What really (really) concerns me as a civil libertarian is that this coincides with ongoing, onerous attacks against peer-to-peer operations from both government and big business.  I sense that there are deep, powerful forces at work that want to work with ISPs to "white-list" the internet and kill peer-to-peer operations.  The crippled version of the WPF7 may just another example of a product brought to market too soon.  Or it could be part of a larger, decentralized effort to kill arbitrary point-to-point internet connections.  Government wants to monitor everything, and PTP is messy to monitor.  Businesses assume everyone doing PTP is an IP pirate and want to block it all.   Now, arguably the biggest product launch of the year for a smartphone fails to include the most basic communications capability for the internet.  Accident?  Hmmmm.

Suffice it to say that without sockets or multitasking, this product is more a toy than a platform.  On the iPhone, most people run their applications an average of twice.  Microsoft seems to be depending on games and social networking sites to drive WPF7 sales.  They will probably fail.

Tags:

Development

TVersity, continued

by dhovel 2. October 2010 16:28

After my last post, I continued to fiddle with my TVersity configuration.  What I found was that the Shark007 codec packs really do the job. 

Follow their instructions carefully.  You'll need to remove all other codec packs (they recommend even uninstalling TVersity's built-in codec pack).  Then install the 32-bit version, then the 64-bit version.  After I did that, I could play anything (even MKV videos) through TVersity using the DirecTV MediaShare or with Windows Media Player.   Since I haven't had good luck with Windows Media Center, I haven't gotten around to testing that again.

Another useful tool is the Win 7 Direct Show Filter Tweaker.  It allows you to control which codecs are invoked by DirectShow clients, both 32-bit and 64-bit.  It also allows control over the new Windows 7 "override" codecs (those used to create icons and play media through WMP and WMC).  I used this to force my DVIX and XVID to play through ffdshow.  Since Shark007 is really a repackaged version of ffdshow, you'll see that name among the alternative codecs for most of the popular video formats.

I haven't tried streaming Dolby or DTS since DirecTV MediaShare doesn't support anything but stereo (AFIK), so I can't vouch for that capability.

I did see TVersity die once, but I have a simple batch script that checks to see if it's running and restarts it if it's not.  Time will tell how often this is necessary.

Tags:

TVersity, DirecTV and Windows 7

by dhovel 29. September 2010 21:05

After upgrading my media computer to Windows 7, I found that my TVersity installation had more or less disappeared.  I reinstalled it and found that nothing (NOTHING) would play in my DirecTV HR21-100 MediaShare receivers.  Bummer.  After several hours of fiddling, here's what I found out.

  1. The latest version of TVersity (1.9.2) appears to have problems with DirecTV, so I reinstalled version 1.8.
  2. Much prowling around showed me that my codec installations had been broken, probably by the Window 7 upgrade, although I can't be sure.  I removed all the codec packs I could find and reinstalled TVersity, which reinstalled its codec pack.
  3. The 1.8 version allowed me to play most of my AVI and M4V files without any change to the PROFILES.XML file or fiddling with access rights to the TVersity server or the folders containing my media.  That was good.
  4. However, MP4 files would not play.  Upon investigation using GSpot (http://www.videohelp.com/tools/GSpot) I found that the MP4s used an H.264 codec which wasn't recognized.  Many people complained about the Microsoft-supplied MPEG4 and H.264 codecs.
  5. I found a simple program called a "filter tweaker" (http://www.download.hr/download-filter-tweaker-for-windows-7.html) that let me see which codecs were available for H.264.  Interestingly, I did have an ffdshow-based codec for 64-bit H.264, but not one for 32-bit.
  6. I installed a recent build of ffdshow (http://free-codecs.com/download/FFDShow.htm) and installed the 32-bit version.  After the obligatory reboot, I found that I now had an ffdshow alternative to the 32-bit Microsoft H.264 codec.  I selected that codec to be used.

After chosing the ffdshow 32-bit H.264 codec, everything seems to play just fine, even when setting my preferred video resolution to 1920x1980.  The lessons here are:

  • Remove all codec packs BEFORE upgrading to Windows 7.
  • Ignore 94.7% of the information about codecs, TVersity, DirecTV, etc. on the Internet: if the page entries date before 2009, they are serious out of date.
  • Find a way to peek inside a video and determine its codec.  Most video files are mere containers for video interleave streams.
  • Use one of the 'filter tweaker' programs to fiddle (recoverably) with your system's codec choices.
  • Only install the absolute minimum needed to get everything to work.  Windows 7 is, in spite of all of the above, a far better video generation engine than Vista was.

Good luck!

Tags: