Archive for the ‘Uncategorized’ Category

Really Terrible Joke 2016

April 1, 2016 Comments off

Happy April Fool’s day! In lieu of a prank, here’s this year’s horrible pun:

Setting a world record by wrapping yourself in duct tape is possible, but it will be really hard to pull it off.
Categories: Uncategorized

A Bad Solution or No Solution?

August 26, 2014 Comments off

Solving problems can be hard. There’s always a temptation to do something about a problem, even if that something is less than ideal, to meet deadlines, appease stakeholders, or just avoid feeling helpless.

There’s certainly nothing inherently wrong with implementing a partial solution. Solving part of the problem is, all else being equal, better than not solving any of it. In programming, partial solutions are an industry standard: Nearly every methodology I know of is iterative to at least some extent, and at any rate, I’m pretty sure the waterfall approach is not a good fit for any project that takes more than five minutes to complete.

There are other cases, though, when it’s better to wait until you have a complete solution before implementing anything. Take politics for instance: Iteration is extremely slow, as you have to get solutions hashed out by one or more legislative bodies and then probably turned over to other parties for final approval. This all depends on your particular form of government, of course, but if your government lets officials make decisions quickly and without opposition, I’d suggest that you may have other problems. (That’s a discussion for another time, though, and probably another blog.) Depending on the situation, it may be prudent to design a solution that can be approved and implemented in pieces, but in other cases it may be better to wait and come up with a solution that works as a coherent whole, and then work on getting that approved.

With partial solutions, the most important thing is to ensure that everyone knows it’s a partial solution. Thinking that your partial solution has solved your entire problem is one of the many ways to create a bad solution.

A bad solution is one that doesn’t work, or worse, causes more problems. Often, they get implemented without anyone (or at least the decision-makers) knowing how bad they are. Even once you know you have a bad solution, it’s often more difficult or time-consuming to fix it than it would have been to come up with a good solution in the first place.

That, for me at least, is why no solution at all is better than a bad one. When you have one unsolved problem, you have one problem and you know it. When you implement a bad solution, now you have two problems and you may well not know it. In software development, this means increased deployment time and cost, and possibly re-training users. In politics, and probably most other fields as well, you’ll face additional opposition in implementing a good solution: You’ll probably have to work to convince people that the problem isn’t really solved yet, and it’s likely that people will be too afraid of losing face to admit that the previous solution was bad. Another example is the medical field, where the damage bad solutions can do should be obvious, but I’ll leave the gory details to your imagination.

I admit there may be cases in which even a solution that does some harm might help more than it hurts, so arguably a bad solution would be better than none, though I’d think that might qualify as a partial solution rather than a bad one. In general, however, I’m pretty confident in saying that a bad solution is worse than no solution at all. It’s better to put the time and effort into a good solution than to do something for the sake of having done something.

Categories: Uncategorized Tags:

The Problems With “Agreeing” Without Agreeing

January 30, 2014 Comments off

Contracts are a part of everyday life in the digital age. We agree to something or other just about any time we download music, install software, and use social networks or other Web services, just to name a few. Few people actually read these agreements, and fewer still understand them. I think we reached the point a long time ago when people stopped caring what these agreements said and decided to do as they please, especially when they’ve paid good money to “buy” some piece of software or media. In my allegedly-humble opinion, this is a huge problem.

In times gone by (which I’m sure were horrible, but that’s beside the point) intellectual property was simple: You bought something like a book or a record, and you were basically fine as long as you didn’t violate copyright law. These days, however, most things come with some kind of license agreement attached, which (being legally binding contracts) can obligate you to to do (or not do) things beyond the requirements of the law. A common example is the First Sale doctrine: Ordinarily, a copyright holder’s right to control distribution does not extend to control of what someone does with a copyrighted work once it’s been lawfully sold/transferred for the first time. However, it’s extremely common for license agreements and terms of use (like those for Google Play, Amazon’s MP3 store, and probably iTunes) to make the license non-transferable. My student-licensed copy of Adobe Creative suite and a copy of AutoCAD that led to an infamous district court decision had similar restrictions, so don’t think this applies only to downloads.

Another common restriction is that the software or other digital goods be used only for personal, non-commercial use. This comes up a lot in relation to anti-virus programs and other software that has both free and paid versions. One particularly bizarre instance is Google Play, which actually goes so far as to say that copy-paste functionality in any text-based apps is for non-commercial use only. I suppose if you use an Android device for work, you’re not allowed to copy and paste. Or you could do what I suspect most people will do and ignore that restriction, because it is ridiculous.

That brings me to the main issue: Most people don’t actually agree to any of the license terms they “agree” to on a daily basis. Generally, when it comes to EULAs and Terms of Service, people just click “Agree” without reading to get through the process as quickly as possible. I admit I don’t have statistics on this, but I have plenty of anecdotal evidence. Off the top of my head, I can’t think of anyone I know personally who bothers to read them. I’ve even heard lawyers (in various episodes of This Week In Law) confess to not usually reading the terms.

I also have at least some anecdotal evidence of people knowing what’s in the terms and not caring. I’ve had people tell me that they have no intention of abiding by license terms that they describe as stupid or unfair. In fact, it’s hard not to do that in many cases, when license terms are so unclear or so broad that it’s hard to tell what is a breach, and easy to breach the terms unintentionally.

The reason I think this is a big deal, when it would be so easy to ignore it and go about my day like everyone else, is that whether people read these agreements or not, they are still binding contracts! Indicating that you agree to terms you have no intention of actually fulfilling is basically fraud. (I say “basically” because I’m not sure that it meets the strict legal definition of fraud; I’m not really the best person to ask about that, as I’m not a lawyer and have not studied contract law in any rigorous fashion.) Even if it’s not technically fraud, it’s still a breach of the terms, which usually results in loss of any rights granted to you under the terms. That probably means you’re on the hook for whatever you’d be on the hook for if you didn’t agree to the terms in the first place, which could be anything from copyright infringement to violations of the Computer Fraud and Abuse Act, depending on what terms you violated.

One thing that worries me is the potential for selective enforcement. Agreements frequently include language indicating that just because a company doesn’t pursue all its rights under a contract doesn’t mean they waive those rights. In other words, “You didn’t say anything when everyone else did it” is not a valid excuse. It’s entirely possible, albeit unlikely, that some company will decide to make an example out of you.

Let’s assume you’ll never get in trouble for violating TOS or a EULA. Even then, I still think ignoring the agreement is a bad idea, because I think it’s a bad idea in general to become desensitized to contracts.  Sooner or later, you’re going to get into a situation where you need to agree to something and will be expected to hold up your end of the bargain. Besides, getting into the habit of lying about whether you agree to something or not is ethically problematic, to say the least.

Finally, willful breaches of contract being a social norm makes life difficult for people who do want to try to abide by terms they agree to. In many cases, the terms impose inordinate obligations on people, but the alternative to accepting them (or willfully breaking them) is to do without the product or service they govern, which can be a big deal in the information age. However, companies can get away with imposing essentially any restriction they want, because they can always argue that the restrictions aren’t hurting anyone: After all, look how many people have no problem agreeing to the terms every day!

I admit I probably get bent out of shape about this sort of thing a bit too easily. I still think that, in principle, this is a serious problem.

Categories: Uncategorized Tags:

Kids (and Everyone Else) Can’t Use Computers

January 19, 2014 Comments off

A common pet peeve of mine is that people just can’t use computers very well. They can get done whatever task it is they need to accomplish using the computer, as long as everything goes perfectly smoothly (which, as I’ve discussed before, manufacturers seem promise that it will). If any little thing goes wrong, they’re lost. Worse yet, they usually refer the problem to friends or relatives who are supposedly “good with computers.”

I won’t be going into any more detail here, because I’ve whined enough about this already, and anyway it would be redundant after Marc Scott’s excellent post on Coding 2 Learn entitled “Kids can’t use computers.”

Hat tip: Nikolay’s comment on the Server Fault question “People think a ‘hidden’ save file dialog box means the computer is frozen.”

Categories: Uncategorized

Table-less Forms: A Partial Solition (Source Code)

September 20, 2011 Comments off

In my last two posts, I discussed what I want to see in a table-free form and the problems I had with creating one. To recap, here’s what I wanted:

  • Labels lined up in the same row as form fields
  • Label column that stretches/shrinks to the size of the longest label
  • As little extra HTML as possible

My solution was to enclose s in a

that stretches/shrinks to the width of its contents, and to use absolute positioning to push the s nested in those s outside the

. The limitations of that solution are:

  • The s’ height won’t stretch to fit form controls taller than a line of text, such as .
  • Since s are pushed to the right, you can’t put checkboxes and radio buttons before their label text unless they’re outside the wrapper


  • Long labels stretch the wrapper


  • Multiple wrapper

    s in a form won’t line up with each other.

So with that in mind, here’s my source code. First the CSS:

form { /* Add border to form as visualization aid */
border: 1px solid darkblue;
form * {
clear: left; /* don't let floated .formlineup break layout. */
.formlineup {
display: inline-block; /* shrink to fit content. */
float: left; /* Needed for backward-compatibility with IE6 and FF2. */
background-color: lightblue; /* Visualization aid */
.formlineup label {
display: block;
position: relative; /* allow absolute positioning of children */
padding-top: 2px;
margin-top: 2px;
padding-right: .5em;
background: #CEF; /* visualization aid */
.formlineup label input {
position: absolute;
top: 0px;
left: 100%; /* Push all the way outside the */
height: 1em;
tags are used in case CSS breaks.
They create extra space when CSS is working, so hide them. */
.formlineup br {
display: none;

Next, the HTML. Note that nothing outside of div.formlineup is really important for this demo; I put the extra fields there to show some of the things that need to be outside of the wrapper div in order to work. See the screenshot in my previous post to see what happens when you put them inside.





Radio Buttons

Thing 1

Thing 2


This label is longer than the others.

Send Me Spam!

Addendum: Sorry about the ugliness of the source code; Blogger doesn’t feature syntax highlighting out of the box, and there’s some investment of effort required to add it. I’m still debating whether I want to add it or just stick to using my WordPress blog to post source code from now on.

Categories: Uncategorized

A Lot of Work for an MP3 Player

April 14, 2011 Comments off

I recently obtained a shiny new laptop running Windows 7, and consequently windows Media Player 12, and I went to do some research on making my MP3 player, a Philips GoGear Jukebox HDD1835/37, work with the new software.

The first thing I found was a warning (using the tag, no less) that Media Player 11 would cause problems, and recommending that users stick with version 10 “or the Software that your product came with.”

Going a little further into the FAQ, I found a page about Vista containg this helpful nugget of information:

The Microsoft operating system usually comes with a set of software files which allow the operating system to recognize and control the functionality of portable device and those software files are known as native drivers. Windows Vista will also include native operating system support for some Philips products while others will require you to acquire software from Philips.

As software may not be available for some or all of the players, it is recommended to keep your existing Windows version and install Windows Vista in a dual boot configuration in order to retain the functionality of your player.

Let that sink in for a moment: Rather than take responsibility and release updated drivers, Philips is telling people to create a dual-boot system. Do you know how hard it is to create a dual-boot system? Maybe it’s not a big deal for the more experienced, tech-savvy users, but for the average end user it’s one of those things you just don’t do on your own. You can easily ruin computers by messing with that stuff.

It’s bad enough that Philips doesn’t seem to care about legacy support. (To that effect, the FAQ for my player hasn’t even been updated to say anything about Windows 7 or Media Player 12.) But I can’t understand why Philips would tell people to make radical changes to their system rather than just trying to get them to buy a newer GoGear. What do you think?

Categories: Uncategorized

Some thoughts on online ads…

April 13, 2011 Comments off

I just read the PCWorld article, “Privacy Backlash Over Ad Tracking Debated” by Patrick Miller and Tom Spring. It got me thinking.

For one thing, why do ads need to be targeted? What’s wrong with context-based ads? If I’m on a tech blog, for instance, I want to see ads for tech products and services–insofar as I want to see ads at all, that is. I’ve seen targeted ads that were completely irrelevant to the content I was reading; I don’t visit webcomics sites to buy domain names, for instance.

I also wonder why the pay-per-click model is so prevalent. After all, people pay good money for print and television ads, which (usually) can’t be clicked. This is because simply seeing an ad–even a bad one–creates a degree of brand recognition that sticks around long after the memories of the ad itself have faded. There was a study to this effect done in the 80’s, but I can’t remember offhand which journal it was in. So why do some ad programs only pay for clicks? My guess is that it’s so advertisers can get something for nothing.

Come to think of it, I am actually quite surprised that anyone would click on an ad. For me, clicking a banner ad or even a sponsored search result seems like almost as bad an idea as clicking a link in a spam e-mail. That’s probably just me being paranoid, though.

Oh, well. Advertisements are part of online life, so it won’t do me any good to complain about them. I certainly would rather have them than part with freemium services. But I do hold out some hope that the debate over online ads, and targeted ads in particular, leads to better ads and a better online experience.

We’ll see.

Categories: Uncategorized