Tuesday, February 9, 2010

Less ↦

Less is a CSS “compiler” that takes its own superset of the CSS language (which, unlike standard CSS, includes variables, mixins, nested rules and arithmetic operators) and outputs standard CSS. An interesting way to work around some of the inherent limitations of CSS. There’s even a GUI front end for the Mac.


Wednesday, January 27, 2010

“13 Things We Want to See in iPhone OS 4.0” ↦

Ken Fisher from Ars Technica outlines 131 things the Ars Technica folks would like to see in the next version of the iPhone OS:

Splash screen improvements: We think it’s just about crazy to not PIN-protect a smartphone. But when you do this with an iPhone, you put a big barrier between you and your notifications. We’d like to see (at a minimum) message count and SMS count indicators on the home screen. We shouldn’t have to slide to unlock and enter a pin just to see how many new messages there are (or are not). Check out our simple mockup on the right. Surely this is doable. And of course Apple could tone it down and put indicators in the status bar up top rather than cover your precious wallpaper.

I agree about the basics but I would like to see a more flexible architecture. Ideally, I think the splash/unlock screen should support Dashboard-style widgets; some would be notifications, others might be weather, upcoming appointments, etc.

Custom sound notifications: In its infinite wisdom, Apple lets you customize your ring tone, SMS tone, and if you want, (on/off) sound notifications for events like e-mail, voicemail, or calendar alerts. Give us more sounds—and the ability to customize the sounds for every alert type. It’s annoying when nine people are in a meeting, a “ding” rings out, and seven people press their home screen buttons to see if it was their phone.

I would like to chose my email sound but custom sounds are not terribly important to me. In the absence of custom notification sounds, however, I insist on better built-in alternatives than the current “Chime”, “Glass”, “Horn”, “Bell” and “Electronic”. Everyone sticks with “Tri-tone” for SMS notifications because it is the only choice that sounds good.

Notification scheduling: Once a week I hear about someone missing a call or ignoring a text due to their audible alerts being turned off because they silence their phone at night or in morning classes and forget to turn the ringer back on.

Meh.

Diverse vibrate options: When your phone is in vibrate mode, aside from receiving a voice call, most of the other notifications which trigger vibration all trigger the exact same kind of vibration. Let us assign custom vibrations for different kinds of alerts. Three short bursts repeated twice for SMS, or two long buzzes for e-mail.

If we can get notification widgets on the splash/unlock screen, I wouldn’t really care about this. At most, I think all I would want is a vibrate scheme that matches my notification sound.

SMS alerts: Let me set the number of times I will be alerted to missed SMS messages.

Again, notifications widgets on the splash/unlock screen would help here. In any case, the current double notification works for me so this is not a priority for me.

Special alerts: Let me set a special alert for when a high priority e-mail is received, and let me set alerts for e-mails from specific people or specific headlines, e.g., “The boss is e-mailing you,” or “Brett Favre has retired for the 14th time.”

I would rather see an expanded “Favorites” feature that enables custom SMS and email sounds for certain individuals in addition to the ringtone. Setting it up to scan messages for specific text is not a feature I would use often, if at all.

Power scheduling: A great feature found on many smartphones and implemented best on the BlackBerry lets me set a schedule when the phone and/or its antenna is active. Hey, we’re all supposed to be conserving energy, right? Well, on weekdays I don’t need my phone on from midnight to 6am. Let me automate that.

Meh.

Advanced e-mail scheduling for accounts, push: Push is one of the things that makes the Blackberry experience so delicious. Apple, let us specify what hours our e-mail accounts are in Push versus Fetch mode. Second, let us schedule when accounts check e-mail at all. Some of my friends say they wish they could tell their phone not to check work e-mail at night or on weekends.

Meh.

Unified inbox support and/or better inbox switching: If you have more than one mail account, you know what a pain it is to switch between accounts. Currently it takes a minimum of four taps to switch from one inbox to another. Allow unification, or make it easy to switch between accounts. Or how about both?

I’m not convinced a unified, full-fledged inbox is really such a great idea (see more below). Easier account switching would be very beneficial, however.

Full e-mail storage and synchronization: Unlike the BlackBerry and other smartphones, the iPhone does not synchronize folders until you go into them (if you have Exchange, you do have the option of pushing all of your folders). If you have a sizable sent folder, for instance, if you pop into it looking for a message you sent today, the phone will proceed to download in chronological order everything in your sent inbox. This makes using any folder but the inbox a general pain. But it also greatly limits the effectiveness of the search.

Meh. There’s a reason Apple doesn’t do this: most people (including myself) have email accounts so large that even just storing the headers and first few kilobytes of each message would consume an inordinate amount of the iPhone’s limited resources. A better solution would be a standardized protocol for submitting searches to the email server and sending the results back to the iPhone but Apple is not likely to be able to pull that off. In the mean time, I use GMail’s web interface to search my email on my iPhone.

Allow actions from within search: It’s great to be able to search e-mail on the iPhone, but it’s lame that you can’t do much with the search results. Once you have your results, you cannot delete or move those items into other folders. And expand it! Currently you can only search in the folder you are in, which isn’t much help if you’re not sure which folder something is in.

Um, you do realize that this is just a mobile device, right? Some of these features might be handy once in a great while but if you are trying to do heavy-duty email organization, you’re much better off going to your laptop/desktop.

Running apps in the background: When I’m on the road, I find I am opening and closing Mail constantly because I can’t run other apps in the background. Need to check my calendar? Need to see something on the Web? Open, close, open, close, open. Both Palm and Google have managed to pull this off, and we know it can be done on jailbroken iPhones.

Meh. When apps open and close as quickly as most iPhone apps do, return you to the last screen used and consume the entire screen when running, there’s little functional difference between serially running apps and switching between simultaneously running apps except for the resources consumed.

Standard data conduit protocol: Palm mastered this, and there’s no reason Apple can’t (we just suspect they don’t want to). We need a standardized conduit protocol for third-party apps to synchronize data between the phone and a desktop. Lots of people have come up with clever solutions, typically using Bonjour autodiscovery, but there are all sorts of problems on the desktop side, such as a proliferation of background processes, open ports, and firewall hassles.

On this point, I couldn’t agree more. In addition to the Bonjour technique mentioned above, I’ve seen apps use online WebDav files for synchronization. Not only does that add complexity and (usually) expense to what should be dead simple, it is painfully slow without Wi-Fi.

There is only one thing (at the moment) that I would add to the list: a universal notification inbox. I would like to be able to open a single view which lists all the new things my iPhone knows about (text messages, emails, calendar alerts, etc.) so that I can quickly scan them, mark them as not new and, if I so desire, launch into the appropriate app for further options. Notifications should also be less obtrusive; I should never have to dismiss a notification in order to continue doing what I was doing. In other words, I want something very similar to Palm’s notification system. (This would be my preferred alternative to a unified inbox.)


  1. The original list has only 12 numbered items but item 12 is clearly two items that have been inadvertently combined. Also, the URL indicates only 5 items so the list has evidently expanded over time. 


Tuesday, January 26, 2010

Haiti and the Problem of Evil

The problem is at least as old as monotheism and may even be older. Many pagan religions side-stepped the problem altogether by positing capricious rather than just gods. The so-called Abrahamic faiths cannot escape the problem, however, as their god is purportedly righteous and perfectly so. I speak, of course, of the Problem of Evil. The first formal expression of the problem is traditionally (though perhaps incorrectly) ascribed to the Greek philosopher Epicurus and goes something like this:

  1. If a perfectly good god exists, then evil does not.
  2. There is evil in the world.
  3. Therefore, a perfectly good god does not exist.

Or, put a little more thoroughly:

  1. God exists.
  2. God is omnipotent, omniscient, and perfectly good.
  3. A perfectly good being would want to prevent all evils.
  4. An omniscient being knows every way in which evils can come into existence.
  5. An omnipotent being who knows every way in which an evil can come into existence and has the power to prevent that evil from coming into existence.
  6. A being who knows every way in which an evil can come into existence, who is able to prevent that evil from coming into existence, and who wants to do so, would prevent the existence of that evil.
  7. If there exists an omnipotent, omniscient, and perfectly good being, then no evil exists.
  8. Evil exists (logical contradiction).

Natural disasters, such as the recent earthquake in Haiti, often do, and should, bring this problem to the fore for anyone with even the slightest of philosophical leanings. Natural disasters aren’t just evil, after all, they represent random evil on a truly massive scale; evil that affects the virtuous as well as the vicious and everyone in between.

Obviously, theologians the world over have been wrestling with this problem since long before the cataclysm in Haiti. (Conversely, Haitians have been wrestling with crushing poverty since long before the earthquake.) Some theologians, such as the fundamentalist Christian cleric Pat Robertson, embrace an angry version of god who visits “the iniquity of the fathers upon the children unto the third and fourth generation of them that hate me.” (Exodus 20:5) While such a god is scriptural, it lacks justice and so most theologians look to other solutions. The quest to resolve the contradiction of evil in a god-governed universe is often called theodicy1.

In reflecting on this matter in a recent Newsweek column, Lisa Miller wrote:

Theodicy remains the most powerful tool in the atheist’s kit, however, and many a believer has turned away from God over the suffering of innocents. [Bart] Ehrman [a Bible scholar at the University of North Carolina at Chapel Hill] did. After a lifetime as a Christian, “I just got to a point where I couldn’t explain how something like this could happen, if there’s a powerful and loving God in charge of the world. It’s a very old problem, and there are a lot of answers, but I don’t think any of them work.”

The challenge, then, to all believers is to examine the problem and the answers and to ask, “Do any of them work?”


  1. The term theodicy comes from the Greek θεός (theós, “god”) and δίκη (díkē, “justice”), meaning literally “the justice of God,” although a more appropriate phrase may be “to justify God” or “the justification of God”. The term was coined in 1710 by the German philosopher Gottfried Leibniz in a work entitled Essais de Théodicée sur la bonté de Dieu, la liberté de l’homme et l’origine du mal (“Theodicic Essays on the Benevolence of God, the Free will of man, and the Origin of Evil”). (Wikipedia) 


Monday, January 25, 2010

Video Game Deficiency Disorder ↦

At last I have an excuse for how terrible I am at video games: my brain just isn’t wired for them.


Sunday, January 24, 2010

Dive Into HTML5 ↦

If you are a web developer, you should be reading Mark Pilgram’s excellent Dive into HTML5 website, for the following reasons:

  1. It is an extensive and insightful exploration of the still-evolving HTML5 standard, including its history and the history of HTML in general.

  2. It includes invaluable information about which HTML5 features have been implemented by which browsers so far.

  3. It is a fascinating experiment in publishing a book not just online (as so many others have done by providing downloadable PDFs) but in publishing a book online in web format (i.e. using only HTML, CSS and/or JavaScript). The site includes public domain illustrations and embedded open source fonts for a playfully old-fashioned look.


Sunday, January 24, 2010

The Rules of the United States Senate

[…] the Presiding Officer shall, without debate, submit to the Senate by a yea-and-nay vote the question:

“Is it the sense of the Senate that the debate shall be brought to a close?” And if that question shall be decided in the affirmative by three-fifths of the Senators duly chosen and sworn — except on a measure or motion to amend the Senate rules, in which case the necessary affirmative vote shall be two-thirds of the Senators present and voting — then said measure, motion, or other matter pending before the Senate, or the unfinished business, shall be the unfinished business to the exclusion of all other business until disposed of.

[…]

After no more than thirty hours of consideration of the measure, motion, or other matter on which cloture has been invoked, the Senate shall proceed, without any further debate on any question, to vote on the final disposition thereof[.]

—from Rule XXII of the Standing Rules of the United States Senate

A Brief History of the Filibuster1

The filibuster first became a possibility in the United States Senate in 1806, when the Senate, after having been so advised by Vice President Aaron Burr, abolished the “previous question” procedure from the Standing Rules of the Senate. “Previous question” is a common parliamentary procedure for ending debate early and bringing the matter currently being considered to an immediate vote. When this rule was eliminated, it became impossible for the Senate to close debate of a particular topic so long as at least one Senator still had something to say.

The use of this procedural vacuum to stall or kill legislation first began in the 1830s but took on new significance during the contentious debates about chartering the Second Bank of the United States in 18412. Despite periodic attempts at revival, the Senate would remain without a previous question procedure for 111 years. Finally, in 1917, after the Senate’s session expired without having voted on a popular war bill, the Senate’s rules were amended to permit cloture3 (another term for previous question, often used in the context of legislative bodies). Typically4 for a motion to end debate early, this cloture motion required the consent of two-thirds of all senators present and voting. The current practice of requiring a smaller three-fifths majority of all senators duly chosen and sworn (i.e. present or not) was established in 1975.

In spite of repeated frustration with protracted debates in the Senate, for most of the Senate’s history—including those years when no cloture procedure existed—filibusters remained a rarity until the late 20th century. The 1960s saw a dramatic proliferation in the number of filibusters as southern Democrat Senators attempted to block civil rights legislation. In spite of the failure of those attempts, the proliferation of filibusters has continued unabated ever since with every Senate term from 2000 to 2009 having no fewer than 49 filibusters. In 2005, Republicans, then in the majority, began talking about reducing the majority needed to pass cloture to a simple majority but ultimately dropped the proposal as it became clearer that the Republicans were likely to lose their majority status in the 2006 elections. With the Democrats now in power and with Republicans using filibusters to block virtually every aspect of the Democrat agenda, the Democrats are now the ones to talk about easing cloture votes.

Why the Senate?

Inevitably, all deliberative bodies with formal rules will be subject to those rules being used to delay or block the work of that body. And delay isn’t necessarily a bad thing; laws affect the lives of everyone living under their jurisdiction and time should be taken to consider them carefully. So why is it that the United States Senate, in particular, has so much trouble with delaying tactics like the filibuster while others, such as the United States House of Representatives, do not?

Not all of this difficultly can be attributed to the cloture rule and its requirement of a three-fifths majority. As I alluded to earlier, requiring supermajority votes to end debate early is typical for deliberative bodies, with most actually requiring a larger, two-thirds majority. Indeed, for 111 years the Senate operated without a cloture rule of any kind and yet was still able to bring legislation to a final, up or down vote.

Remember that a vote for cloture is not a vote to end debate per se; it is a vote to end debate early. Early means different things to different people but in this context it means ending the debate sometime before what the rules would otherwise have allowed. And herein lies the Senate’s particular vulnerability to delay by means of debate: the Senate’s Rule XIX, which governs debates, imposes no limits on how long a Senator may speak once he has been recognized by the presiding officer. Nor is a speaking Senator required to speak about the topic at hand (“germane” debate in legislative parlance). Unlimited speech is often seen as a special privilege of the Senate; debates in the House of Representatives are always subject to strict time limits. Thus, under the traditional rules of the Senate, debate continues so long as any Senator has something that he or she wishes to say5.

This rule is the source of the classic filibuster depicted in Mr. Smith Goes to Washington where one Senator simply talks for as long as he or she can possibly manage. Senator Strom Thurmond set a rather dubious record in this regard in 1957 by speaking for 24 hours and 18 minutes in a failed attempt to block the Civil Rights Act of that year. The aforementioned filibuster by southern Democrat Senators of the 1964 Civil Rights Act lasted 75 hours. Ultimately, however, the debate in each of these cases did end without invoking cloture.

Why Now?

Today, the “classic” filibuster almost never actually happens. Even the “classic” filibuster’s much more staid cousin—where the minority ensures a quorum is not present and thus prevents a vote without having to actually speak endlessly—rarely happens any more. Instead, the mere threat of a filibuster is enough to stop the majority party in its tracks. Why is that today’s filibusters are almost never played out?

For most of the Senate’s history, only one bill could be considered at a time. Filibusters would therefore not only prevent progress on the current bill but indeed on all bills pending before the Senate. The only alternative was to table the bill, which, thanks to the Senate’s rules on tabled motions, effectively kills the bill. Halting all progress in the Senate is a politically costly move and most Senators are reluctant to go quite that far. During the civil rights filibusters of the 1960s, however, the Senate began to allow more than one bill to be “on the floor” at a time. Thus, the debate in the Senate could switch from a filibustered bill to a non-filibustered bill without having to officially table the filibustered bill. In so doing, the political costs of filibusters were greatly reduced as filibusters no longer halted all progress in the Senate.

With the political costs of filibuster all but gone, they have become much more common. The majority party, eager to move forward with its agenda and unwilling to waste valuable floor time, rarely limits debate to only filibustered bills. This, in turn, has reduced the barriers to filibusters even more as mere threats are enough to persuade the majority party to move on to other matters. This has created a kind of positive feedback mechanism where the easier each filibuster becomes, the more likely a filibuster is to happen and the more filibusters happen, the easier they become. We have now reached a point where filibusters are essentially costless and completely effective unless the majority party can muster the necessary 60 votes for cloture.

Is That Legal?

There is a school of thought, recently espoused by Thomas Geoghehan in a New York Times op-ed piece, that the requirement of a supermajority to pass a motion of cloture is unconstitutional. The thinking goes something like this: the Constitution specifies certain votes which require a supermajority to pass—ratifying treaties, amending the Constitution, overriding the President’s veto, etc.—and in all other cases a simple majority vote is sufficient to pass any measure. By requiring a supermajority of 60 votes to end debate, Rule XXII creates an unconstitutional supermajority requirement for all bills. Therefore, the Constitution essentially requires Rule XXII to be changed to require only a simple majority to invoke cloture.

Unfortunately for proponents of simple majority cloture in the Senate, that line of thinking does not stand up to scrutiny. In the first place, it represents a fundamental misunderstanding of what cloture is: it is a procedure to end debate early. Debate in the Senate can, and often does, end without invoking cloture when the Senators run out of things to say; such bills can pass the Senate without ever having commanded a 60-vote supermajority. Generally, only controversial bills are subject to filibuster.

Secondly, the Constitution clearly allows the Senate to set its own rules: “Each House may determine the rules of its proceedings[.]” (Article I, Section 5) Implicit in the determination of “the rules of its proceedings” is the power to determine by what fraction procedural motions, such as cloture, must pass. Indeed, there are other rules which require something other than a simple majority: Rule X on special orders, for example, requires a two-thirds majority. No one questions their constitutionality and no one should for the Senate has the power to set its own rules.

The Modern Senate

With the question of the cloture rule’s constitutionality safely put aside, there remains nevertheless an obviously growing paralysis in today’s Senate. Whereas cloture was once considered unnecessary in the Senate and indeed was not possible for 111 years, 139 motions for cloture were filed in the Senate during the 110th Congress (January 4, 2007 through January 2, 2009). The 111th Congress has been similarly stymied, unable to pass legislation about health care reform, financial reform or carbon emissions reductions. Many who observe this ineffectiveness correctly blame the now-overused filibuster. Many of those same individuals, then, call for simple majority cloture.

Normally, simple majority cloture would be a terrible idea. Remember that cloture is a motion to end debate early; if only a simple majority is needed to end debate then the majority party could end debate within 5 minutes of it having started. Should the rest of the rules regarding cloture in the U.S. Senate remain, however, simple majority cloture in that house would not have such an undesirable effect. The Senate’s version of cloture, after all, merely limits debate to a further 30 hours rather than ending debate immediately. Simple majority cloture might, therefore, be a reasonable solution.

There are, however, other solutions which I find preferable. The most obvious solution, to me, is to introduce time limits on debates in the Senate. This is, after all, what the House of Representatives did to great effect. Granted, the time limits in the House are a little severe, often 5 minutes or less. Since the Senate is a smaller body it could use limits that are far less draconian; say one hour per senator per debate. While unlimited debate is an honored tradition of the Senate, it is clear to me that today’s Senators simply aren’t worthy of that tradition.


  1. Much of this information comes courtesy of Wikipedia and Senate Procedure and Practice by Martin Gold. 

  2. During this debate, after talk of reviving previous question had arisen, Senator William King of Alabama famously said to Senator Henry Clay of Kentucky, “I tell the Senator, then, that he may make his arrangements at his boarding house for the winter.” 

  3. It is worth noting that unlike cloture in other bodies, a successful vote for cloture in the United States Senate does not end debate immediately. Instead, debate is limited to a further 30 hours and certain other procedural delays are prohibited. 

  4. Robert’s Rules of Order, the de facto standard for parliamentary procedure, requires two-thirds majorities for such motions to pass as does its competitor, The Standard Code of Parliamentary Procedure

  5. Rule XIX does prohibit any one Senator from speaking twice in the same day on the same topic. This, however, is easily circumvented by speaking as long as possible during one of those two opportunities or by offering an amendment which would then be considered a separate topic of debate. 


Sunday, November 22, 2009

Healthcare’s Paralyzing Effect on Economic Growth

Even when passing into law multi-billion-dollar bailout programs for big businesses, politicians in the United States love to point out that small businesses are the engine of economic growth in America. Statistics from the U.S. Small Business Administration appear to bare this supposition out (emphasis added):

Small firms:

  • Represent 99.7 percent of all employer firms.
  • Employ just over half of all private sector employees.
  • Pay 44 percent of total U.S. private payroll.
  • Have generated 64 percent of net new jobs over the past 15 years.
  • Create more than half of the nonfarm private gross domestic product (GDP).
  • Hire 40 percent of high tech workers (such as scientists, engineers, and computer programmers).
  • Made up 97.3 percent of all identified exporters and produced 30.2 percent of the known export value in FY 2007.

Those statistics are quite remarkable and represent the economic impact small businesses have even in an environment where many cannot afford quality health insurance for their employees. To my mind, that then begs the question of what small businesses could do in America if health insurance was not dependent on one’s employer. What could America’s small businesses do if workers didn’t have to choose between working at a small business and having quality health care? How many more small businesses would there be if no one had to choose between pursuing entrepreneurial dreams and quality health care? I believe that these choices have a paralyzing effect on economic growth at a fundamental level.

I think one of the more interesting statistics above is that 40% of high tech workers are employed by small businesses. I suspect this number is unsustainable with our current healthcare “system”. Many of today’s high tech workers are young, healthy twenty- and thirtysomethings who probably don’t pay very much attention to healthcare issues. As they “mature”, that will change.

Unfortunately, the healthcare bills currently being debated in Congress do not sever health insurance from employment and may have little impact on the affordability of health insurance for small businesses. As such, they are unlikely to address the questions I posed above. Given the likelihood that one of these bills will eventually pass, I take some comfort from the salient point of Ezra Klein’s recent essay on healthcare: success breeds success. In other words, perhaps the passage of any healthcare bill will make future efforts at reform easier. I can only hope that future reforms will focus on the ties between employment and health insurance, which I consider to be an inherently bad idea.


Sunday, November 22, 2009

China

Let’s be very clear on one point: although it is still run by the Chinese Communist Party, China is no longer a communist country. Instead, it is an authoritarian capitalist country. When Nixon first went to China in 1972, the move was premised on the idea that engagement with China would eventually lead to both economic and political reforms. When China began experimenting with capitalism in the 1980s, America began buying Chinese goods based on the assumption that economic prosperity would lead to democracy and human rights. The experience of the past few decades should relieve us of such misapprehensions, or at least of the misapprehension that Chinese political and human rights reforms will happen any time soon. To date, there is no evidence that China cannot continue to be an authoritarian capitalist regime for the foreseeable future and America must base its China policies on that presumption.

During his appearance today on ABC’s This Week program, Robert Reich gave this insight:

I think the big issue over the next 10 years and the big contest is going to be between authoritarian capitalism, à la China, and democratic capitalism, à la the United States, and its not clear to me that authoritarian capitalism is not going to win…

I am betting on democratic capitalism but I think that the authoritarian capitalism, we cannot [over]state the threat to the way we go about our business, the way we think about the world.


Saturday, November 14, 2009

Is Purity Ever Really a Virtue? ↦

Rafe Colburn on purity in computing:

I think that placing a high value on purity is in nearly all cases a case of intellectual laziness. An obsession with purity allows you to avoid critically evaluating factors that might otherwise go into making the best decision. For example, let’s say I’m writing an application using Ruby on Rails and I need an XML parser. Some would argue that I should only use “pure Ruby” XML parsers and leave it at that, but that’s not helpful. Impure parsers may be faster, or offer more features. On the other hand, pure Ruby parser may be easier to deploy. But the discussion should center on those competing benefits, not on the abstract concept of purity.

As Ralph Waldo Emerson said, “A foolish consistency is the hobgoblin of little minds”.


Saturday, November 14, 2009

Why Every Country Has a Different F#$%ing Plug ↦

I always wondered why the British plugs are so enormous, now I know. Each and every one of them has its own fuse in order to facilitate shoddy wiring.