Q: Should I install Linux?

January 10th, 2008

Here are some thoughts that I wrote up as a follow-up to a conversation with Josh.

More and more of what people do on computers is moving online, which eases the transition to Linux. Two programs that are still nice to have on the desktop are Rhapsody and Quicken. Unfortunately, these programs aren’t available in Linux.

I think Rhapsody has an online player that’s so-so.

GnuCash is the best accounting software I’ve found for Linux. It’s more accounting software than help-joe-with-his-money software. I’m pretty sure it’s available on Windows as well if you want to demo it. You can import Quicken data.

I’m a big fan of what works. Every time I use Windows, I want to defenestrate the computer within 5 minutes. It works for a lot of people though, which is great. So I don’t go around recommending Linux to everyone.

If someone is a power user in Windows, I don’t recommend Linux. They can get everything done that they need to and I think it’s really important to have people around who can help the non-power users with their computer. If they really want to use Linux, that’s great too.

If someone is interested in Linux, I’m comfortable recommending it to them as their full time operating system as long as they have someone around to help occasionally. That’s usually me.

I definitely recommend Linux for computers that are old and getting bogged down. Windows just does that over time. So if you have an old Windows computer, have lost the recovery disk, don’t want to spend any money, and can get by without all of the Windows only software, Linux is a really great option. I use Ubuntu Linux and it has some really fantastic features. I should make or find a screencast of some of the things I like about it. (You mean, in Windows you actually have to put a CD into your computer and go through a 10 minute install program just to be able to edit documents? How old-fashioned.)

Jon and Claire have Ubuntu installed on their laptops. Justin uses Fedora Linux.

Block Tower

December 23rd, 2007

A number of years ago, my dad made a set of blocks out of high quality maple 1×3s.

Blocks

Today my brother Ben and I made a tower out of these blocks–18 levels high, 16 blocks per level.

Finished Tower

We took the tower down one block at a time, taking a picture of it each time. I reversed the list of images and then turned it into a video. It looks like the tower is going up, but we “filmed” it, stop motion style, in reverse. More pictures on Flickr.

What I read on the web

September 17th, 2007

An Introduction.

Someone asked what I read online, so I figured I’d just write it up here. The full list can be found on del.icio.us (tagged blogroll).

  1. Jon Udell
  2. Jon has a lot of interesting things to say about technology and the internet in general. Here are a couple highlights.

    Hosted Lifebits Scenaris
    The Blurred Line Between Personal Information Management and Publishing
    Social Networks Then and Now

  3. Jeff Atwood
  4. Jeff is a recent addition to my reading list. He writes about stuff that I’m interested in as a programmer. It’s generally pretty accessible though.

    Computer Workstation Ergonomics
    Classic Computer Science Puzzles
    You’re Probably Storing Passwords Incorrectly

  5. Rashmi Sinha
  6. Rashmi talks about cognition on the web.

    A Cognitive Analysis of Tagging

    Looking through her posts, that’s the only thing I can find to recommend to a broad audience. Look through and see if you find anything interesting.

  7. A List Apart
  8. A List Apart just has a lot of good stuff to say about web design.

    Reviving Anorexic Writing
    Never User a Warning
    Better Writing through design

  9. Brian Oberkirch
  10. Another recent addition. He writes about the social web. I like what he writes as I continue to think about the future of the People of Praise on the web.

    Designing Portable Social Networks
    Designing for Hackability

Slashdot is worth looking at at least once.

These two guys are worth reading and are excellent writers.
Joel Spolsky
Paul Graham

The #1 Paul Graham essay I recommend people read: Beating the Averages

Holding a Program in One’s Head
Stuff
A Plan for Spam

Web 2.0 Expo sessions in a nutshell

April 22nd, 2007

I’ll fill this in more over time, but for starters, here’s everything I went to.

Sunday:
High Performance Webpages, Steve Souders and Tenni Theurer
Scalable Web Architectures: Common Patterns and Approaches, Cal Henderson

Monday:
The New Hybrid Designer
Power to the People Via User-centric Identity
Vulnerabilities 2.0 in Web 2.0: Next Generation Web Apps from a Hacker’s Perspective
The Arrival of Web 2.0: The State of the Union on Browser Technology

Tuesday:
The Future of e-Commerce
Panel: Comparing Web Application Frameworks
Syndication

Wednesday:
Business Mashups for Fun and Profit
Panel: Examining AJAX Frameworks
From Pages to People: Behavioral Targeting
Bringing applications from the Web Browser to the Desktop

I like cars

April 18th, 2007

I like cars a lot. I don’t plan on ever owning a very nice car, but I appreciate well made cars. It turns out that tonight was the night for cars. It wasn’t the first time I’ve seen interesting cars in San Francisco. We see Porsche’s left and right. BMW’s too. Tonight’s excitement started with the Maserati Quattroporte Executive GT. If that wasn’t enough, we then saw a Bentley Continental. To top it all off, we walked by a Maybach 57S. For those gentle readers unfamiliar with these three cars, the price tags are roughly $122000, $169000 and $377000, respectively.

Update: Looks like we also so a Lamborghini Gallardo as well. And I got a couple pictures.

Web 2.0 Expo general interest posts…

April 17th, 2007

Can be found at 9of.us. When I get the time to put together some more technically interesting stuff, I’ll post that here. Expect a report on improving web page performance, scalable architecture, security, and more.

Web 2.0 Expo

April 12th, 2007

I’m going to San Francisco tomorrow! I’ve never really been West, so I’m excited. I’ll be attending the Web 2.0 Expo with David and Jennifer for work. I’ll be there for ten days: Friday till the following Sunday. Expect reports and pictures!

Oh wait, I just committed myself to update…

JavaScript

January 25th, 2007

I just watched the first part of Douglas Crockford’s presentation “The JavaScript Programming Language,” available over at the Yahoo! User Interface blog. I’ve done a bit of JavaScript programming, but I’ve already learned a couple things I didn’t know before.

Doug recommends O’Reilly’s Javascript: The Definitive Guide with the praise, “I can say without fear that it is the least bad of a very large class of very, very bad books.” I’ll keep that in mind if I’m ever shopping for a JavaScript book.

The equals (==) and not-equals (!=) operators don’t behave as I expect them to. They do type coercion. So, 42 == 42 is true, as I expect, but "42" == 42 is also true, because JavaScript makes them the same type first. I think I’m going to start using === and !== instead, which behave as I expect ("42" === 42 is false, while 42 === 42 is true).

If you’ve ever user a language with C style syntax, you’ve probably used logical-and (&&) and logical-or (||). You can still do that in JavaScript, but the way it’s done is interesting. For A && B, if both A and B evaluate to true, then A && B evaluates to true. Here’s how JavaScript does that: If A is true, A && B evaluates to B. If A is false, A && B evaluates to A. It’s short circuit logic. If A is false, B isn’t even evaluated. You can think of && as the guard operator. A && B is then read: A guards B. With the guard operator,

if (A) {
  result = B;
} else {
  result = A;
}

can be written as, result = A && B.

The logical-or operator (||) is similar. As usual, A || B evaluates to true if either A or B is true, or if both of them are true. The way it’s calculated in JavaScript, A || B evaluates to A if A evaluates to true and B if A evaluates to false. So || can be thought of as the default operator. It defaults to A, but falls back to B if A is false. So,

if (A) {
  result = A
} else {
  result = B
}

can be written as: result = A || B.

And this is just funny: the typeof() function will give me the type of an object (i.e. typeof(42) is “number”). Using typeof(), we can see what type NaN (Not a Number) is. typeof(NaN) –> “number”. Not a number…is a number.

As a side note, Python treats and and or this way as well.

And moving into the very arcane, you can use this to simulate the C-style ternary operator in Python. In C/C++/Java/JavaScript: result = test?A:B. In Python: result = test and A or B.

OpenID

January 12th, 2007

This is exciting. I just set up an OpenID identity with MyOpenID and set up josterpi.com to delegate. As soon as I can find a suitable Wordpress plugin and the time to install it, I’ll set it up here.

Simon Willison has a very nice screencast about OpenID.

Now I just need to find a place to use my fancy new OpenID…

reviewbuffer tag

December 4th, 2006

It seems I’m always bumping into potentially interested websites which I don’t have time to look over because I’m busy working on something else. Till recently, I’ve been keeping these sites open in a trusty firefox tab. This works pretty well, except that 1) over time, I end up with 30 tabs open, and 2) they’re sitting right there every time I’m looking at firefox saying “look at me! Look at me!” which is distracting. So, I’ve started tagging them reviewbuffer till I have the time to review them and see what, if any, tags I should use.

Another thing I’ve been thinking about doing is starting a linklog. Like I said, I’ve been using del.icio.us a lot more in recent weeks. A lot of of the stuff I tag is is for personal or work use, but sometimes I just run in cool stuff. The plan is to tag all of that cool stuff linklog.