1,291 karma · joined August 16, 2007
Many airlines have complicated pricing models that attempt to capture market demand.
For example, I just looked up flights from Portland, ME to Los Angeles, departing on Jan 19 and returning Jan 26. If you take US and connect through Philadelphia, the cheapest price is $309. If you were to fly from Philadelphia to Los Angeles non-stop on that same day, it's $399 - 30% more expensive! If US were to allow you to skip the first and last part of the Portland-Los Angeles trip and get on and off at Philadelphia, they would receive substantially less revenue.
I've been a "working programmer" who happens to write Common Lisp for a few years. Common Lisp is a programming language like any other: people who write good code in other languages can write good code in Common Lisp, and people who write bad code can make everyone's life just as miserable. Most time spent figuring out a new code base isn't the style or set of features used, it's figuring out the domain-specific logic. Macros aren't abused to any greater extent than C++'s operator<<, monkeypatching, or preprocessors.
I am of the opinion that anyone who calls Common Lisp a "theoretically-pure" language has not done anything but a simple recursion exercise: features like loop's inability to detect sequence type, the difference between progn and prog1 in terms of multiple values, having functions like rplaca or caar, and mixing &optional with &key are not what I think of when I think elegant or "theoretically-pure". They're there because the designers were sometimes wrong and sometimes doing the best with what they had.
If you're on an Asimov kick, The Caves of Steel is also pretty good, and has a Foundation-style twist at the end.
ThinkPad construction stands up to a whole lot, and the keyboard is fantastic. I have a five-year-old X40 that is still chugging along wonderfully - I'd like to get a new laptop, but I just can't justify it.
I have only had one issue running Linux on it: because I use Debian, the non-free wireless firmware must be downloaded separately. I have never had a problem with Ubuntu, even the early versions I tried, because they include it. Intel has put a lot of work into getting all of their stuff supported in Linux, and it shows.
I hear the Sony Z series has a similar story: similar size/weight/price, better hardware and battery life.
- I felt misled by all the advertising on the website. They are comparing to Apple's version of gcc-4.2. The last GNU release of gcc-4.2 was two and a half years ago. Even Debian stable has something newer. Compared to gcc-4.2, the newer gcc-4.5 compiles faster, produces faster code, and gives better diagnostics. The comparison on the website was not useful for me to predict the differences now.
- In terms of compile speed, clang was sometimes faster and sometimes slower than gcc-4.5, but overall the differences were very minor.
- In terms of performance, clang was >10% slower, which is OK for debugging builds.
- The diagnostics were a little prettier than gcc-4.5's, but not a huge improvement. I think it was mostly because they were in color.
- Getting the existing codebase to compile was a chore. gcc bends the rules of the C++ standard in some ways that don't appear to cause confusion but make the code more pleasant. For example, it allows unqualified lookup into dependent bases of class templates, which means you can write "foo()" instead of "this->foo()" in things that look like class members (see http://clang.llvm.org/compatibility.html#dep_lookup_bases). There are a number of these - look through the page. I felt like clang was being inappropriately pedantic and beating me over the head with the standard. The most frustrating part was that the compiler wasn't confused - the error message gave me a copy/paste set of changes to make.
- On my Debian system, I could not find a set of c++0x headers that clang knew how to compile (the official instructions say "use gcc's"), so I couldn't try out the new standard.
- Does it separate out the hands? This one does to some extent, but it looks like less than the Microsoft or Kinesis.
- How many keys do you need to press with your pinky? What I like most about the Kinesis is that it moves many keys traditionally pressed with the pinky finger - control, alt, enter, backspace, delete - to under the thumbs. It's much easier to hold the modifiers down with your thumb because the muscle is so much bigger, and it's nicer to hit enter/backspace because you don't have to stretch your finger.
- Does it have mechanical key switches instead of the plastic bubbles? I don't know how good this one's are, but it's noticeably less work to press the switches and requires a constant/predictable amount of force on the Kinesis compared to the Microsoft and others. This really adds up over a day of typing.
The new Matrix (http://matrix.itasoftware.com/) has the color bar functionality, too, but looks a littler friendlier! When you search, click "time bars" on the right below the carrier matrix. It was one of the most-requested features.
For example, take a Firefox or PHP security vulnerability. Those projects generally don't just release a new version with the security fixes; they'll throw in whatever feature changes they've made along the way. I don't want to sort through the various changes and patches to find the right combination; trust me, it's no fun, I worked on the Debian security team for a while. It's important to me to get just the security fixes because I don't have time for a constant upgrade treadmill and there will be new bugs in with the new features.
I really want my operating system to just work and get out of the way. If I didn't need any packages from ports, I think FreeBSD would fit that bill.
I have high hopes for Debian GNU/kFreeBSD - the FreeBSD kernel with the Debian package management.