29 November 2007

Amazon Kindle

Amazon’s new Kindle e-book reader looks very interesting. My issues...

  • No back-light: While being able to be read easily in bright daylight is important, one of the things I love about the Rocket eBook is that it is perfect for reading in the dark.
  • QWERTY keyboard: Being a Dvorak typist, I get so tired of devices that don’t have real keyboards but that use the QWERTY layout. I think the Crockford keyboard probably makes more sense in these situations. (Though I still like Graffiti.)

It does appear that you can freely put your own documents on it if you can get them into Mobipocket format.

Which is a bit annoying. It should be trivial for a user to load plain text and HTML documents onto a device like this with no conversion fee. (Yes, Amazon wants to charge a conversion fee to load HTML or Microsoft Word documents onto it! (o_O)) Arguably PDF as well. And this should be loudly touted as a feature.

The Wikipedia article has links to a few more current e-book devices that I’ll have to check-out now.

Though hopefully the iPhone SDK will reveal a way to load HTML and PDF besides temporarily loading them via the web or e-mail.

To Sir, With Love

I caught To Sir, With Love last weekend. It felt a tiny bit relevant since I’m leading a fairly-rowdy 8th-grade Sunday school class. I enjoyed it. I should see more Sidney Poitier movies.

Java

“Write once, run anywhere” I’ve always been a bit wary of that slogan. Sure, the Java virtual machine (like the many VMs that came before it) is fairly easy to port to any platform, but those platforms almost all have a C compiler first. (In fact, the JVM for most platforms is written in C.) So this doesn't really gain you much. The real issue for cross-platform development is standard APIs. That’s the hard part. The JVM itself always gets ported quick, but sometimes you never get all the core APIs ported. Oh, a standard ABI is nice, but that’s really just icing. Java is perhaps a bit better off than many languages when it comes to simply having cross-platform APIs to be ported. I think there are at least a few languages, however, that fare at least as well as Java in this area. In the end, Java is no more cross-platform than any other language. It happened that, for a while, enough people (or enough big companies) cared enough about Java that it did end up being a half-decent cross-platform option for a while. Because enough effort was expended, not because anything about it was particularly better suited to the task. I’m distant enough for the Java world now to not be sure how the situation has changed, but I sense that it may be changing.

(RED)

I don’t really get the (PRODUCT)RED campaign. Looking at How (RED) Works, I have to wonder why, if they’re serious about this, Apple doesn’t donate $10 from the sale of every iPod nano rather than just the (RED) ones.

Well, maybe it’s to better raise awareness. Though, couldn’t they still have all the (RED) hype and donate $10 from the sale of every iPod nano? In fact, wouldn’t that provide even more opportunities to hype it even more?

Well, perhaps it brings people to new products. Though, if somebody is going to buy an iPod nano because of (RED), aren’t they even more likely to buy one if Apple still donates the $10 even if they prefer a blue one?

FireWire Hotplugging

Sweetwater inSync Tech Tip of the Day (29 November 2007):

While one of the benefits of external FireWire devices is their ability to be connected to a computer while both are powered up (or “hot”), there may be issues with a specific manufacturer’s driver that precludes it from being hot-pluggable.

However nicely you put it, that’s a defect. File a bug report.

It’d be sweet if Sweetwater noted such defects in the description of products on their site. That kind of thing would really help to further distinguish them from the run-of-the-mill online music store.

24 November 2007

Network neutrality

I’ve been a bit ambivalent about network neutrality. I already hate the fact that my ISP makes it difficult for me to connect to mail servers. (Blocking outbound connections to TCP port 25.) (I could—perhaps—get the block removed if I bothered to ask, but I hate that I even have to do that.) I feel, however, that an entity—company or individual—should have the freedom to do whatever they want to with a network that they paid for. The thing that should make network neutrality a non-issue is the fact that I pay my ISP for the use of their network. If I don’t like the service they provide, I can take my money elsewhere. I have, however, witnessed enough failures of market self-correction to be suspicious of such solutions. Edit: Plus, there’s the fact that I’m working for a company whose products can be used to implement...whatever the opposite of network neutrality is. Network bias?

Static typing versus design-by-contract

Static typing” is essentially very inexpressive “design by contract”. I guess I’ve known that, but Monday I started thinking about that. Perhaps, static typing is redundant if you have pre-conditions, post-conditions, and invariants that can be checked with static analysis. (Not necessarily at compile-time, but not at run-time.)

20 November 2007

school of Rock Band

Playing Rock Band could actually help improve your singing. Playing Rock Band could help improve your drumming. ...but it won’t help your guitar playing. (>_<) Unfair!

13 November 2007

Mac OS a better Linux than Linux?

From “Apple's Leopard Is Better ‘Linux’ Than Linux”...

On the down side, people with malicious intent can use this extensive archive to figure out ways to hack the Mac. The fact that this hasn’t happened—like I said above, Darwin has been available for years—is a testament to the integrity of the Apple community.

No, it means that it’s really true that openness leads to better security. In fact, Apple took a lot of their open source code from OpenBSD, a system known for its security focus.

So here are my observations: Mac OS X, and Apple’s development paradigm, is the anti-Linux. And it’s Steve Jobs’ big accomplishment that Apple has built a better (I should actually say “more successful”) Linux than Linus Torvalds has ever been able to do.

This seems to imply that Mac OS X and Linux (or Jobs and Torvalds) have the same goals, which clearly has never been the case.

Edit: It would seem I’m misremembering. It seems Apple leveraged FreeBSD more than OpenBSD. See the comments.

Betraying the fans

In the annotation to Irregular Webcomic number 1752, Morgan-Mar rants against fans feeling betrayed. I agree with everything he says.

...but...

Perhaps we have to look beyond what people say. I don’t think people really mean that they expect constant perfection from artists and every work to be greater than the last. I don’t think people really mean that their enjoyment of the older work has been ruined by the newer one.

What they say may be all reaching and exaggeration, but—no matter what they say—you can’t deny what they feel. That they feel. That feeling isn’t really about the newer work. It’s about the connection they have with the older work.

I think the phrase “betray the fans” is—under the surface—the fan’s way of saying, “I’m not going to let this newer work take away my enjoyment of the older one.”

11 November 2007

Mac OS X audio aggregate devices

If, when using Mac OS X, you ever discover that you need to create an audio “aggregate device” with Audio MIDI Setup, here is the bit of information that seems to always be left out: Aggregate devices can only be created by admin users. (When you’re looking at a user in the Accounts panel of the System Preferences, admin users will have the “Allow user to administer this computer” check-box checked. By the way, it’s a good idea to only have one admin user account that you only log-in as when you need to perform admin tasks.) Sure would be nice if Audio MIDI Setup would actually warn you about this and not make it seem to have worked when it didn’t. (>_<) For what it’s worth, the reason I needed to create an aggregate audio device was to use SooperLooper. I’ve been thinking about getting an BOSS RC-2 Loop Station and wanted to try out real-time looping.

10 November 2007

Preferences

From this thread on the TidBITS forum:

I'm glad we disagree, because this raises the following profound question: How hard would it have been to make this a pref? Come to think of it, how about a pref for stacks, menu bar opacity, and sidebar text/icon size? This is what I really object to: not the changes, but that Apple thinks it knows better than I do what I want. Choice is good.

Three reasons not to make things preferences:

More preferences ≠ easier to use: It makes it harder to find the preference that really can improve your productivity when it’s hidden amongst a bunch of frivolous preferences. It can distract you into messing with a much of preferences that aren’t going to improve your productivity.

More preferences = more complexity: More complexity in software is bad. It means more bugs. It means more time to write the code. It means more time to test the code. It means more time to maintain the code. If you’ve ever complained about bugs or the cost of software, then you don’t want software to be any more complex than it needs to be.

Consistency: Consistency is a core principle of the Mac. Arguably, consistency has been more important on the Mac than the mouse or windows or the menu bar. Of course, total consistency isn’t really practical. If for no other reason than that today’s experiment ends up as standard practice in a future revision of the user interface guidelines. Still, consistency is important, and preferences are counter to consistency. Too many preferences means not enough consistency.

Choice is not always good. So, what should be a preference and what shouldn’t? When the usability of a choice depends upon the user, the environment, or the hardware. Otherwise, it probably shouldn’t be a preference. At least that’s how it should be on Macs.

For example: The size of text used in a user interface that is best from a usability stand-point depends upon the user, the display, and the environment. One user needs larger text because they can’t read it if it is smaller. Another user needs smaller text because they don’t have trouble reading it but they need lots of things on the screen at once.

The opacity of the menu bar, however, does not need to be a preference. It does not have a significant impact on usability. (Besides, choosing the right desktop wallpaper makes the issue moot.)

Now, I have to admit, I don’t like this conclusion. Forget opacity, I'd like to be able to swap the menu bar for OPENSTEP style menus. Edit: Probably better to link to the earlier NEXTSTEP instead of OPENSTEP.

I’m pretty sure making the menu bar translucent wasn’t a good idea, but it wasn’t so bad of an idea that it should’ve been made a preference instead. In fact, if it was that bad an idea, it shouldn’t have been done at all.

Mare Tranquillitatis

So, if Ben Franklin had had his way, Neil Armstrong would have said, “The Turkey has landed”?

07 November 2007

Irony, thy name is "Leopard menu bar"

I’ve seen a number of complaints about Leopard’s translucent menu bar. Ironically, Mac OS X 10.5: Menu bar appears solid instead of translucent showed up in the Apple support knowledge base recently. So, there are people that wish their system had this problem.

E-notebook

I need an e-notebook. I used to use my Palm V’s memo application, but I can’t sync it with my Mac. (It uses a serial port & Mac’s no longer have serial ports. No doubt I could get it to sync somehow, but it probably isn’t worth the cost & effort.) I’m considering/trying... ...but—while they each have good point—none of them has proven particularly attractive. Playing with it at the Apple Store the other day, the notes feature on the iPhone didn’t impress me. Maybe I’ll just have to write my own after the SDK is out (and after I get an iPhone).

06 November 2007

Promoting hardware

Our hardware team has been a big factor in TippingPoint’s success. The other day I was talking with a coworker about some of my previous jobs, & about one he asked if we’d considered custom hardware. As far as I knew it hadn’t been, & I think he was right that it probably should have been. I think software engineers tend to be blind to when hardware should be considered. It just isn’t on our radar except in a few specific cases. (e.g. graphics & cryptography) Even if we know what an FPGA is, & I’d how many of us do? Especially considering how many working programmers these days aren’t even familiar with many important software concepts. But as the more general purpose engineers, who are going to be in on a project first, we really should be on the look-out for hardware opportunities. Hardware engineering needs a good marketing program to get software engineers aware of when it should be considered.

04 November 2007

When is more fun less fun?

If you can change a game to make it more fun, you should. Right? But, if you keep changing things to make the game more fun, can you end up with too much of a good thing? Can a lot of changes that individually make the game more fun—all together—make the game less fun?