My fellow application programmers,
Have you ever noticed how sometimes you learn on the run, slapping together code from working examples, and other times you take your time, really study the technology, savoring it and understanding its complexity? Have you noticed that there are some things which are far more amenable to one than to the other?
What if all learning starts out as "on the run" learning? You pull something into a project to make your life easier, to abstract away something that you don't want to do. You don't want to become an expert. If you can adapt an example its a good sign: you are playing to the libraries strengths, and don't really need to learn much about it for it to be useful. JodaTime might be a good example, or any of the Apache Commons.
Sometimes you pull something in and it works, but it leaves you feeling a little uncomfortable. There's just too much about it that you don't understand. It's a nagging itch that you want to scratch: what exactly is going on in there? Personally, I had this feeling with log4j - a deceptively simple little library with a surprising amount of depth. (And actually I'm still not entirely clear how commons logging, java.util.logging, and log4j all mesh together, even though I'm pretty sure we're talking about like 20 small classes).
Over time there are these "idea" technologies which just don't make sense unless you know the idea behind them. Spring is perhaps the best example of this. Learning the control flow of a Spring app without prior knowledge would be like learning French from a French dictionary. It seems like there are lots of idea tools out there, and more every day. Most of them are NOT amenable to quick uptake.
It would seem like most library authors would enjoy having you become an expert in their library, to become passionate about it, to understand it's delicate intricacies - especially the idea-driven tools. But often this just doesn't happen. Why not? Because when it does it is by persistent necessity rather than inclination. Consider Spring: people learn it because they use it for project after project. It is a persistent feature of the application landscape. It pays to learn it, and to learn it very well. But Sax? Or Java IO? Or Swing? You might need it occasionally, but there's no reason to dig in. Ignoring these libraries is a smart play.
The technology that seems to do the best are those rare gems which are both easy to adopt when you're in a hurry, which are broadly useful across a lot of projects, and which reward the student as they get deeper into it.
These observations drive a few conclusions. First, for an application programmer, be kind to yourself and recognize when you're running and gunning, and when you're taking your time to savor the moment. We will always experience a combination of both modes, and neither mode is better than the other, so don't berate yourself for not taking the time to learn that library better or using it to it's full potential. You didn't have time, and 99% of the other users didn't have time either. Second, for the library author, recognize and embrace those two modes because they are both important. Too often you make it difficult for us to use your libraries, expecting us to know magic incantations (class casts, method chains, constants) to accomplish straight-forward tasks. I have no doubt that the complexity is necessary to handle edge cases: but that's not why I'm using the library! I'm using it for the core case. Give me a utility class and mark it clearly as such (oh boy, nothing slows people down like trying to figure out dueling utility classes, abstractions on top of abstractions done with different idioms within the same project, and finding out that they were just facades over the *real* library). For God's sake use package level JavaDocs liberally to explain how the pieces go together with simple example code, and make some reference to applicable utility class in the lower level classes.
It's not easy being a Java programmer, and it never will be. Our language's expressivity is inherently (and intentionally) limited in the hopes that the compiler and other programmer tools can make our programs more error free. This trade-off between safety and freedom makes it all the more important that our libraries be incredibly well-designed, because we just don't have the linguistic freedom to mold your library to our liking.
Sincerely,
(Java)Josh
Going gung-ho on the yaught
I feel good being rather more gung-ho about boating. Replacing an engine using the main mast and main sheet block, and, today, jumping into the marina water to remove a prop shaft...well, lets say that not everyone does things this way. John and I (well, mostly John) did it this way. It's good.
The cool part about it all is feeling less trepidation about things. Most boaters are vaguely uncomfortable with the true innards of their boats: the through-hulls, the packing glands, the ball valves, the bilges. The thinking is that if you ignore it, and nothing goes wrong, then you're fine. If someone tells you something is wrong on haul-out then you just pay them to fix it.
It's a little different for a restoration. I know what a packing gland is because I've removed one. I know exactly how much water will come into the boat if you take it off, because I've seen it. I know what a cutlass bearing is because it's a pain in the ass to pull a prop shaft through one. I know how zinc is mounted to a prop shaft because I've been underwater holding my breath to disassemble one. I know how sharp a prop is because I've had to manhandle one to get the prop shaft out.
And now I have to figure out a way to replace a cutlass bearing underwater. Based on info from the internet, I don't think it can be done. But it doesn't mean I'm not gonna try. I don't see why those instructions can't be executed underwater - with the exception of the dremel tool, which can easily be substituted.
I just need one of those hull cleaner's machines that forces water down to the diver. Or maybe I can build one myself. How hard could it be? Just need a regulator and an air pump.
The cool part about it all is feeling less trepidation about things. Most boaters are vaguely uncomfortable with the true innards of their boats: the through-hulls, the packing glands, the ball valves, the bilges. The thinking is that if you ignore it, and nothing goes wrong, then you're fine. If someone tells you something is wrong on haul-out then you just pay them to fix it.
It's a little different for a restoration. I know what a packing gland is because I've removed one. I know exactly how much water will come into the boat if you take it off, because I've seen it. I know what a cutlass bearing is because it's a pain in the ass to pull a prop shaft through one. I know how zinc is mounted to a prop shaft because I've been underwater holding my breath to disassemble one. I know how sharp a prop is because I've had to manhandle one to get the prop shaft out.
And now I have to figure out a way to replace a cutlass bearing underwater. Based on info from the internet, I don't think it can be done. But it doesn't mean I'm not gonna try. I don't see why those instructions can't be executed underwater - with the exception of the dremel tool, which can easily be substituted.
I just need one of those hull cleaner's machines that forces water down to the diver. Or maybe I can build one myself. How hard could it be? Just need a regulator and an air pump.
A way to improve corporate ecological responsibility
I propose a simple law who's purpose is to align the interests of executives with the interests of the communities in which their companies have great effect. If your company releases "safe" waste water, you must swim in it. If your company releases "safe" exhaust, you must breath it. If your company provides "healthy" food, you must eat it. I propose that there be spot checks (in the case of eating) and surprise drills (in the case of breathing and swimming) to avoid gaming the system.
This would also make a very entertaining reality-TV show, similar to "Undercover Boss" (which is a great idea, BTW). Imagine the old white executive having to put on a speedo and swim in the muck he's been releasing. Tell me executives wouldn't take a more...personal interest in making sure of the truth of their environmental impact!
(This idea was inspired by the gloop I saw in the riverbed behind the DWP power plant in Seal Beach. I thought to myself, wow, if the execs had to swim in that, it would be a lot cleaner.)
This would also make a very entertaining reality-TV show, similar to "Undercover Boss" (which is a great idea, BTW). Imagine the old white executive having to put on a speedo and swim in the muck he's been releasing. Tell me executives wouldn't take a more...personal interest in making sure of the truth of their environmental impact!
(This idea was inspired by the gloop I saw in the riverbed behind the DWP power plant in Seal Beach. I thought to myself, wow, if the execs had to swim in that, it would be a lot cleaner.)
Don't like the idea of burning Korans? Here's what you can do.
Don't like the idea of pastor Terry Jones burning the holy book believed in by like a billion people? Well, we can't really stop him, and we shouldn't - he's exercising free speech. But we can offset the loss:
Sep 11 2010 is now Print a Koran Day.
Here is the Facebook Page. Please like, comment, and print!
Jones will burn 200 Korans. How many can we print? Then we can find our local mosque and give them a replacement. Together we can offset the hate of one man, and show that we value and respect those who's beliefs differ from our own.
Sep 11 2010 is now Print a Koran Day.
Here is the Facebook Page. Please like, comment, and print!
Jones will burn 200 Korans. How many can we print? Then we can find our local mosque and give them a replacement. Together we can offset the hate of one man, and show that we value and respect those who's beliefs differ from our own.
How to Jailbreak your iPhone - with mistakes.
I had some spare time today, and I wanted to upgrade my iPhone to iOS4. I had heard that jailbreakme.com was making it super easy to do. So I let iTunes 10 upgrade my iPhone to iOS 4.0.2.
Big mistake. Jailbreakme.com doesn't work with 4.0.2, only with 4.0.1. Of course, you can't know that until it's too late.
Most people at this point would be screwed - you're upgraded, and the only way to use your phone is to go to AT&T with your tail between your legs and ask for a 2 year contract. Nicely. Luckily, I had, at some point, saved something called an "SHSH" with Cydia for iOS 3.1, which will allow me to downgrade to 4.0.1, and continue using my T-Mobile prepaid SIM card like God intended.
I haven't yet recovered, and I might not recover. In which case I'll have to forcibly switch to Android. Oh well.
Big mistake. Jailbreakme.com doesn't work with 4.0.2, only with 4.0.1. Of course, you can't know that until it's too late.
Most people at this point would be screwed - you're upgraded, and the only way to use your phone is to go to AT&T with your tail between your legs and ask for a 2 year contract. Nicely. Luckily, I had, at some point, saved something called an "SHSH" with Cydia for iOS 3.1, which will allow me to downgrade to 4.0.1, and continue using my T-Mobile prepaid SIM card like God intended.
I haven't yet recovered, and I might not recover. In which case I'll have to forcibly switch to Android. Oh well.
A drawback to writing your own word-processor
So I wanted to write a word-processor whose native format was plaintext or close to it. This was to support version control, portability, and tool unification. I hacked something together in an evening and have used it for a couple of stories. To get a PDF you do this:
The big drawback is that, after printing, it's almost impossible to integrate edits made in pen back into the plaintext. It's a drawback I just didn't expect, which makes it interesting! With an ordinary word-processor you have 1-1 page correspondence, and you locate the edit spatially. This is totally lost with my method, and it's a deal breaker.
The only way is to scan the text for the nearest heading and then for paragraph breaks and then keywords. It's slow and difficult.
Interestingly, this is also something of a problem with Google Docs, which also does not render page breaks.
One work-around is to render the textile text in the same shape as the printed page. I haven't tried this and I don't want to talk myself out of it as a solution, but it seems like this would be pretty difficult to do correctly. Another work-around would be to actually do the editing within the browser. Of course, there the problem is that I'm no longer using friendly tools.
For now the roll-your-own open technology wordprocessor for stories is on the backburner. But who knows? I might resurrect it.
- Write the story in Textile. Eclipse has an almost nice WYSIWYG editor for this.
- Load the story into my Viewer, which is a simple Ajax application that renders textile, applies CSS and generally gets it ready for printing.
- Print to PDF
The big drawback is that, after printing, it's almost impossible to integrate edits made in pen back into the plaintext. It's a drawback I just didn't expect, which makes it interesting! With an ordinary word-processor you have 1-1 page correspondence, and you locate the edit spatially. This is totally lost with my method, and it's a deal breaker.
The only way is to scan the text for the nearest heading and then for paragraph breaks and then keywords. It's slow and difficult.
Interestingly, this is also something of a problem with Google Docs, which also does not render page breaks.
One work-around is to render the textile text in the same shape as the printed page. I haven't tried this and I don't want to talk myself out of it as a solution, but it seems like this would be pretty difficult to do correctly. Another work-around would be to actually do the editing within the browser. Of course, there the problem is that I'm no longer using friendly tools.
For now the roll-your-own open technology wordprocessor for stories is on the backburner. But who knows? I might resurrect it.
Lovely science coverage in the NTY: Seashells
Just a quick mention. The NYT has a photo-heavy article on seashells, vaguely related to a book named, "The Book of Shells" by M. G. Harasewych and Fabio Moretzsohn. I like the elegant Crispate Scissurelle (Anatoma Crispata) and the stunningly beautiful Matchless Cone (Conus Cedonulli.
Looking at these pictures, I couldn't help but think about complexity how recursion so beautifully addresses such problems. Recursion gives you simplicity and complexity: that there is some small amount of code being executed to create these shapes, ordering vast numbers of molecules into a coherent shape.
Looking at these pictures, I couldn't help but think about complexity how recursion so beautifully addresses such problems. Recursion gives you simplicity and complexity: that there is some small amount of code being executed to create these shapes, ordering vast numbers of molecules into a coherent shape.
An important lesson for American innovation: will we listen?
NTP Inc. (wiki - they don't have a website) "holds a number of patents but doesn't manufacture any products" according to the Wall Street Journal (wsj.com). And it has filed suite against Apple, Google, HTC, LG, Microsoft and Motorola over wireless email. Blackberry has already settled a similar case with NTP for $612.5 million.
With the priviso that I know only as much about this case as was reported in the WSJ, I'd say we have something to learn. When I say "we" I mean "congress" and when I say "lesson" I mean "patent reform".
In the beginning, an artisan could make money by selling products. This was fine as long as the product was difficult to make: there was no point in protecting the design when the method of manufacture was the barrier-to-entry for competitors.
Over time, the ability to manufacture or copy a device has become easier and easier. Artisans, now called engineers, were less encouraged to innovate because, at best, they would only be able to produce a few of the items before the design was copied.
And so the patent system was invented to protect intellectual property independent of the specific devices. It accomplishes this by protecting the idea behind the design of a product. If a product is created with the same backing idea as another, then it's fair game for a lawsuit.
What's happening now is that people are taking out patents on ideas they do not intend to develop into products. They then attack the companies that turn the idea (which is almost always independantly derived) into an economically viable product. This creates a society which rewards documenting ideas, and badly punishes executing an idea. So, if we want to live in a world of thumb-twiddlers, by all means, carry on.
It seems to be happening more with software patents, but I'm sure it's happened during the entire history of the patent system. It's hard for me to imagine that the patent system doesn't have some provision limiting remedies to those who never bother to turn an idea into a product, viable or not.
The other problem with the system is complexity. Patent law is complex. Proving prior art is notoriously complex. Patent's should be simpler to get, to verify, and to litigate over. The IP system in this country needs a serious overhaul.
Why am I concerned about it? I'm an independant inventor of no great note. The entities most at risk are those with deep pockets: companies like the defendants in the NTP Inc. lawsuit. If anything I'm more likely to benefit from patent trolling myself!
This might sound naive, but I'm against patent trolling because it's bad for society. Yes, I want to invent things and get paid for it (and get paid handsomely!). But I want to do it fairly: by getting a patent, and either developing it or shopping around for licensees. I wouldn't be able to live with myself if I filed a patent and sat on it for a few years until someone else came up with the same idea and made millions, and then I come out of the woodwork with a lawsuit. "Ha!" I say, "I have a patent on that!"
Here are some related links:
With the priviso that I know only as much about this case as was reported in the WSJ, I'd say we have something to learn. When I say "we" I mean "congress" and when I say "lesson" I mean "patent reform".
In the beginning, an artisan could make money by selling products. This was fine as long as the product was difficult to make: there was no point in protecting the design when the method of manufacture was the barrier-to-entry for competitors.
Over time, the ability to manufacture or copy a device has become easier and easier. Artisans, now called engineers, were less encouraged to innovate because, at best, they would only be able to produce a few of the items before the design was copied.
And so the patent system was invented to protect intellectual property independent of the specific devices. It accomplishes this by protecting the idea behind the design of a product. If a product is created with the same backing idea as another, then it's fair game for a lawsuit.
What's happening now is that people are taking out patents on ideas they do not intend to develop into products. They then attack the companies that turn the idea (which is almost always independantly derived) into an economically viable product. This creates a society which rewards documenting ideas, and badly punishes executing an idea. So, if we want to live in a world of thumb-twiddlers, by all means, carry on.
It seems to be happening more with software patents, but I'm sure it's happened during the entire history of the patent system. It's hard for me to imagine that the patent system doesn't have some provision limiting remedies to those who never bother to turn an idea into a product, viable or not.
The other problem with the system is complexity. Patent law is complex. Proving prior art is notoriously complex. Patent's should be simpler to get, to verify, and to litigate over. The IP system in this country needs a serious overhaul.
Why am I concerned about it? I'm an independant inventor of no great note. The entities most at risk are those with deep pockets: companies like the defendants in the NTP Inc. lawsuit. If anything I'm more likely to benefit from patent trolling myself!
This might sound naive, but I'm against patent trolling because it's bad for society. Yes, I want to invent things and get paid for it (and get paid handsomely!). But I want to do it fairly: by getting a patent, and either developing it or shopping around for licensees. I wouldn't be able to live with myself if I filed a patent and sat on it for a few years until someone else came up with the same idea and made millions, and then I come out of the woodwork with a lawsuit. "Ha!" I say, "I have a patent on that!"
Here are some related links:
- http://www.wcl.american.edu/pijip/go/patent American Unviersity"Program on
Information Justice and Intellectual Property" likes to file briefs with the Surpreme Court on the topic. - http://www.eff.org/issues/patents The EFF is against software patents altogether, a position which I don't agree with.
- http://www.law.com/jsp/article.jsp?id=1202462729156 An overview of the pending Patent Reform Act and why it's unlikely to pass. Alas, the issue of patent trolling is not addressed in the Act.
A great upgrade
My first attempt at upgrading involved a no-name USB to SATA cable thing. It didn't work - the drive would mount for a few minutes then forcibly unmount, with or without the external powersupply. I wasted a few hours with this approach.
Physical installation was tougher than most laptops, but not by much. You need a tiny philips head and a torx T-6 tool. It's pretty straightforward and took about 10 minutes.
To restore you need your startup disk. This is a critical piece and I bet lack of it will stymie many would-be upgraders. Select Utilities|Restore from Time Machine Backup, and wait. I was a bit freaked out by the extended white screen on boot, but apparently that's normal. Restore took about 5 hours.
This drive is freakin' fast. My whole machine is noticeably snappier. I didn't want to buy the external USB drive, but I'm kinda glad I did: it's a nice bit of insurance. (I was slightly tempted to get a Time Capsule, which includes an 802.11n router with a 1TB drive, but decided against because of the $340 price tag, and the almost certainly slower performance.)
It's Good to be the King
I don't know the story, but I'm guessing that being the fantastically wealthy prince of friggin' Monaco didn't hurt his chances.
Prince Albert of Monaco to wed Olympic swimmer Charlene Wittstock the headline reads. It should read, "It's Good to be the King."
The Smartphone Age is a great time to learn chess!
I'm excited to report that the portable chess problem has been solved, and the solution is called a "smartphone" (aka iPhone 3GS). As a result, there is no reason not to learn this fabulous game.
My reintroduction to the game was made by my iPhone courtesy of Deep Green, but only really deepened with
Shredder Chess (a total steal at $7.99 - the desktop version starts at $50) particularly thanks to the puzzle feature. "Puzzles" are generally mid-game problems with solutions from 1 to 8 moves in length. They are fantastic "aha!" teaching moments, and they are fun to solve. I've learned more about forks, time, and pinning from these puzzles than in years of casual play. I can apply these lessons directly to my normal games.
Chess puzzles highlight the beautiful parts of a chess game. Openings are about memory and style, end games about mathematical certainty. But mid-game situations are where that big advantage is won or lost, and so where the game is won or lost even if it takes another 30 moves to knock over the king.
Shredder's software execution is all but perfect, particularly the ability to play the puzzle then switching to play the position against the computer, allowing you to test out alternate theories from both sides. That is, the solution to the puzzle is only the start. You can regress the game and ask the all-important question: I beat my opponent this time. How could he have avoided this fate?
Without a single word, these puzzles say so much! What a perfect way to learn the game: rather than memorize and apply the insights of masters, this method encourages you to make your own insights, which in turn makes the game in a very rewarding game of discovery rather than a boring game of regurgitation or application of theory. The insight of masters are invaluable, but to really appreciate them you must have your own framework of understanding. (Many Go teachers say that you should play at least 100 games of Go, before studying theory for this very reason.)
I should add that while you generally don't have to play out the puzzle game to it's end, I often do, as my end game is (was?) a big weakness. I might be up a queen and still lose in my rush to end it. But now I really understand the significance of a passed pawn and the slipperiness of the King and the need to be thoughtful and careful even when you have an enormous power advantage. Carelessness kills.
I can't say enough about Shredder on the iPhone, but there is one thing missing: openings. Very few of the puzzles occur in the opening, and most of those take advantage of fairly obvious opponent mistakes. Shredder has a cool feature where it identifies and names your opening. But it would be nice if it had an "opening drill" feature to help you memorize openings (and understand their implications for the rest of the game).
Not to take away anything from the amazing and innovative new kinds of games like Flight Control, Doodle Jump, Angry Birds, or Spider but why not kill two birds with one stone (or two stones with one bird, if you play Angry Birds). Chess is an aristocratic game of kings. It's good for the brain and a lot of fun, and perfect on this platform.
My reintroduction to the game was made by my iPhone courtesy of Deep Green, but only really deepened with
- Click here to get a sense of a shredder chess puzzle (updated daily).
- Click here to play against shredder free online.
Chess puzzles highlight the beautiful parts of a chess game. Openings are about memory and style, end games about mathematical certainty. But mid-game situations are where that big advantage is won or lost, and so where the game is won or lost even if it takes another 30 moves to knock over the king.
Shredder's software execution is all but perfect, particularly the ability to play the puzzle then switching to play the position against the computer, allowing you to test out alternate theories from both sides. That is, the solution to the puzzle is only the start. You can regress the game and ask the all-important question: I beat my opponent this time. How could he have avoided this fate?
Without a single word, these puzzles say so much! What a perfect way to learn the game: rather than memorize and apply the insights of masters, this method encourages you to make your own insights, which in turn makes the game in a very rewarding game of discovery rather than a boring game of regurgitation or application of theory. The insight of masters are invaluable, but to really appreciate them you must have your own framework of understanding. (Many Go teachers say that you should play at least 100 games of Go, before studying theory for this very reason.)
I should add that while you generally don't have to play out the puzzle game to it's end, I often do, as my end game is (was?) a big weakness. I might be up a queen and still lose in my rush to end it. But now I really understand the significance of a passed pawn and the slipperiness of the King and the need to be thoughtful and careful even when you have an enormous power advantage. Carelessness kills.
I can't say enough about Shredder on the iPhone, but there is one thing missing: openings. Very few of the puzzles occur in the opening, and most of those take advantage of fairly obvious opponent mistakes. Shredder has a cool feature where it identifies and names your opening. But it would be nice if it had an "opening drill" feature to help you memorize openings (and understand their implications for the rest of the game).
Not to take away anything from the amazing and innovative new kinds of games like Flight Control, Doodle Jump, Angry Birds, or Spider but why not kill two birds with one stone (or two stones with one bird, if you play Angry Birds). Chess is an aristocratic game of kings. It's good for the brain and a lot of fun, and perfect on this platform.
The Oil Spill War.
The oil spill is a major threat to the United States. It is correct for the federal government to act to act to mitigate this threat to us all. It is important for Obama to remain clear on this objective. BP has unwittingly triggered an attack on US soil, and they can and should help with defense, but it's our collective interest at stake, and we must take the lead.
This is a battle with three objectives:
Cleanup the mess. Use booms and sponges to keep floating crude away from shore. Figure out a way to sieve dispersed oil from seawater (fund a research project). Enlist locals help cleaning the coast.
Don't get distracted. By the blame game. By flow calculations. By political calculation. By philosophical positions. By questions of prevention. By principles. By critics. This is by far the most important objective, because without it all other objectives will not be met.
This is a battle with three objectives:
- Stop the flow.
- Cleanup the mess.
- Don't get distracted.
Cleanup the mess. Use booms and sponges to keep floating crude away from shore. Figure out a way to sieve dispersed oil from seawater (fund a research project). Enlist locals help cleaning the coast.
Don't get distracted. By the blame game. By flow calculations. By political calculation. By philosophical positions. By questions of prevention. By principles. By critics. This is by far the most important objective, because without it all other objectives will not be met.
9 ways to write native iPhone apps with JavaScript
- JiggyApp requires a jailbroken iPhone [offline]
- JSCocoa "full bridge" for doing full bore Cocoa programming in JavaScript. My take: kind of like Swig but instead of Java/C it's JavaScript/Obj-C. Written by Patrick Geiller. [online. moderately active]
- PhoneGap adds some native functionality (accel, gps, but no magnetometer) to an app . Also has great documentation - a free O'Reilly book "iPhone Apps" (which talks about cached webapps, too). Targets Android and Blackberry, too. [online. active]
- WebTouch is basically a "blank" iPhone app with a single WebKit instance. John likes this one the best. Code. Author. Blog. [online. inactive]
- Capuccino/Objective-J
- Use "Transfer and View" apps like Dropbox or Files - see this blog post.
- QuickConnect - an Xcode template. Code and blog. Development started 4 years ago?! [online. active.]
- MotherApp - generates an Objective C application from JavaScript (presumably). [online. active. commercial]
- Big5 is an app store app that somehow lets you tap into native functionality. Now open source at github. The readme points users to phonegap.
Make yourself happy and avoid the Nexus One
- The display is unreadable in sunlight. If you like the outdoors, like I do, this is a deal breaker. (If you're a vampire, read #2)
- The buttons along the bottom of the Nexus One do not work. Or rather, do not work all the time, which is actually worse from a usability standpoint.
(I can't help but wonder what this implies about the Google culture and possible vitamin D deficiencies there.)
As for the second point, well, the buttons gotta work. Every time you hit a button and it doesn't work, your expectations are blown, and you cause feelings of fear and anxiety in the user. They are small feelings. But they add up. Eventually, the user is all but flinching before touching a key. They look for ways to avoid touching the offending keys. This is usability 101. But you have to stab, cajole, pray, and otherwise beg the shitty Nexus One buttons to register a tap.Absolutely unacceptable. Apple has shown how to do great touch UI with an absolute bare minimum of buttons. The back|menu|home|search buttons on the Nexus One are worse than useless: they actually eroded myexperience to the point where I just don't want to use the phone anymore.
And since point 1 rules out all users except vampires, that means point 2 is going to mean Google has to deal with a lot of pissed off vampires. Maybe someone can get Stephanie Meyer to chronicle the inevitable vampire assault on Mountain View. In the meantime, I'm selling my Google stock.
I'm sorely tempted to eat the $45 restocking fee and return the thing, but I need an Android device for a business project (which doesn't rely on the display, luckily). So I'm gonna keep it, but I'm not gonna like it.
(For the record, there are three good things about the Nexus One: Google Voice, Live wallpaper, and strong syncing tools. And, to be honest, when you turn the brightness all the way up the indoor display is quite fetching.)
The Joy of Shopvac
Yesterday I bought a small ShopVac from Sears [correction: it's a Craftsman brand. But like Kleenex, the brand name is also used as the generic]. It's a 2 gallon, 1.5 hp model that cost me $25 + tax. And it's awesome. It is surprisingly powerful.
Why? Because it solved a hard problem: cleaning my bilge. And it will solve other problems, like cleaning my cushions and the deck. And I can use it to inflate the Avon. And it's small enough to put anywhere.
Fantastic.
Why? Because it solved a hard problem: cleaning my bilge. And it will solve other problems, like cleaning my cushions and the deck. And I can use it to inflate the Avon. And it's small enough to put anywhere.
Fantastic.
A practical guide to "spreading the love"
Lots of people talk about "spreading the love", but what do they mean and how do you do it?
Online, the first step to spreading the love is to filter. You read positive items, items that are useful to others, and ignore everything else. The actual love still needs to be spread, so send the link in one of myriad ways. Make them feel special, and that you're thinking of them. The love has been spread! Good job!
If this sounds good to you, read on. Realize that we read things for all sorts of reasons. To stay informed, to grumble, to reinforce our preconceived notions of how the world works, to waste time, to learn about a topic. This becomes clear when you observe yourself as you read: some items create feelings of hope, delight, or wonder; others create dread, fear, or pain.
Offline, "spreading the love" can take the form of an extra generous tip, a compliment, or a smile.
One of the most interesting things about it is that, if you are in a good mood and resolve to "spread the love" you will find a practical way to do it, and believe me, it will make a difference.
There is limited love that one can spread on a computer: recognize this limit when you reach it and close the thing down!
Online, the first step to spreading the love is to filter. You read positive items, items that are useful to others, and ignore everything else. The actual love still needs to be spread, so send the link in one of myriad ways. Make them feel special, and that you're thinking of them. The love has been spread! Good job!
If this sounds good to you, read on. Realize that we read things for all sorts of reasons. To stay informed, to grumble, to reinforce our preconceived notions of how the world works, to waste time, to learn about a topic. This becomes clear when you observe yourself as you read: some items create feelings of hope, delight, or wonder; others create dread, fear, or pain.
Offline, "spreading the love" can take the form of an extra generous tip, a compliment, or a smile.
One of the most interesting things about it is that, if you are in a good mood and resolve to "spread the love" you will find a practical way to do it, and believe me, it will make a difference.
There is limited love that one can spread on a computer: recognize this limit when you reach it and close the thing down!
A great album - Kate Bush: Hounds of Love
Kate is known as a meticulous producer, and it shows. Every second of this album is impeccably produced, and the sound quality is amazing. Normally I would scoff at good production as being rather pointless - the music is what matters, after all. But Kate's music is so intricate that it requires this kind of careful treatment to be heard. Indeed, I can imagine that Bjørk would really benefit from production like this. (Actually, so would Sigur Rós, where bad production actually ruined Ágætis byrjun for me after I started catching all the artifacts on relistens.)
Do yourself a favor and buy this album today. It's amazing.
How to *really* rock the vote on Memorial Day
It's an absolutely picture perfect Southern California memorial day: sunny, bright, and warm. Unusually, we don't even have any smog. Which is a great time to get some clarity about a political change that I support: military service as a condition of the vote.
This is a fairly radical position, and it's not seriously discussed on the national stage. So let me explain. First of all, it's not that radical. Compulsory military service, or national service, is common throughout the world: Austria, Denmark, Finland, Germany, Greece, Guyana, Israel, Iran, Malaysia, Mexico, Norway, the Republic of China (Taiwan), Russia, Singapore, South Korea, Sweden, Switzerland and Turkey all do it. Israel is particularly commendible for conscripting women as well as men.
Military service does two things that are useful for voters: first, it organizes them in the largest single organizational structure our nation has. This teaches people to work coherently in large numbers, which is a good basis for acting coherently when it comes time to national votes. Second, and more importantly, our service men are putting their life on the line to achieve this countries geopolitical goals. That's a more important and more meaningful contribution than tax dollars, and should be rewarded with something more meaningful, like the vote. The most i
It is hard to imagine veterans putting up with the kind of vitriolic non discourse that dominates today's landscape. Veterans know that talk is cheap, it's easier to be a critic than to act, and that actions mean something, even if you get it wrong. They understand that honor isn't an abstract, useless thing, that without honor organizations fall apart. The vitriol will die off because the demand will disappear.
This is a long term play. It will take at least a generation for the effects to fully be felt. But it's an experiment that's worth making.
A hearty salute to all our soldiers out there, domestic and abroad. Kick some ass!
Peace.
This is a fairly radical position, and it's not seriously discussed on the national stage. So let me explain. First of all, it's not that radical. Compulsory military service, or national service, is common throughout the world: Austria, Denmark, Finland, Germany, Greece, Guyana, Israel, Iran, Malaysia, Mexico, Norway, the Republic of China (Taiwan), Russia, Singapore, South Korea, Sweden, Switzerland and Turkey all do it. Israel is particularly commendible for conscripting women as well as men.
Military service does two things that are useful for voters: first, it organizes them in the largest single organizational structure our nation has. This teaches people to work coherently in large numbers, which is a good basis for acting coherently when it comes time to national votes. Second, and more importantly, our service men are putting their life on the line to achieve this countries geopolitical goals. That's a more important and more meaningful contribution than tax dollars, and should be rewarded with something more meaningful, like the vote. The most i
It is hard to imagine veterans putting up with the kind of vitriolic non discourse that dominates today's landscape. Veterans know that talk is cheap, it's easier to be a critic than to act, and that actions mean something, even if you get it wrong. They understand that honor isn't an abstract, useless thing, that without honor organizations fall apart. The vitriol will die off because the demand will disappear.
This is a long term play. It will take at least a generation for the effects to fully be felt. But it's an experiment that's worth making.
A hearty salute to all our soldiers out there, domestic and abroad. Kick some ass!
Peace.
Subscribe to:
Posts (Atom)