Review: Kate Bush holds up well. Very well.

No comments:
Hounds of Love coverKate Bush wrote and recorded Hounds of Love in 1985, and there is not a bad track, and several magical ones - including "Under Ice", "The Morning Fog", and "Waking the Witch". Some of the instrumentation sounds a little dated, but it's not distracting at all. Highly recommended.

(I should re-rip this in lossless format.)

Review: My Mouse (Logitech MX610)

No comments:
MX610 Laser Cordless MouseMy mouse is a Logitech MX610. It's a right-handed, wireless (2.4GHz) laser mouse. I generally like it and thought it was time to review it after using it for about 18 months. (It's funny how people always want to review things when they're new, rather than when they're old; it seems like a review is more useful in the latter case.)

Links:
It's a good mouse; wireless, laser. Some quirks, of course:
  • Ugly transciever sticks out of the computer (needs bluetooth)
  • Uses batteries pretty fast: 2 AA every month or two (needs recharger)
  • I sometimes hit the special mouse buttons on accident (needs fancy buttons removed)
  • I never hit the special mouse buttons on purpose. (needs fancy buttons removed)
  • Occasionally disconnects for no reason; powercycle is a workaround (needs better QA)
  • Logitech's product page is very hard to find, and when you do find it and click "support" you have to select your mouse all over again from drop-downs! Quite annoying, and it affects all of Logitech's products, apparently. (They could fix this with a small amount of JavaScript on their support page that can infer a product from referrer.)
For the most part I've been running quite happily without SetPoint, Logitech's driver/utility package, quite happily. I just installed it and it remains to be seen whether it's worth the cost (11M of RAM, and a taskbar icon). I'm pretty happy with it's ability to remap buttons to things I actually need; I'm VERY happy with the ability to horizontally scroll (equivalent to left and right arrow keys). I'm thinking key remapping will be a useful in Photoshop.

You can get this mouse for about $40-$50. There is a new version, the 620MX, and it looks like the only difference is the texture of the mouse wheel.

iPower: The worst Registrar ever?

3 comments:
For the love of God, don't do business with iPower (or iPowerWeb as they are also known).

What a horrible registrar. I wanted to transfer a domain away from them, so I got the login information from my client. I login and search around for a while (20 minutes or so) looking for the transfer authorization (EPP) code. It is nowhere to be found. So I check the help documents. There's plenty of info on transferring domains...in. NOTHING on transferring them OUT.

So I call the "24 hour customer service" line. I am on hold for 40 minutes. I get a kid who sounds like he's 12, but happy to help. He gives me an EPP code over the phone - a 5 digit number. "That doesn't sound right" I said to him. "Normally they are much longer, and consist of numbers, letters, mixed case, etc." He assures me it's right. "Oh," he says, "you have to unlock the domain from opensrs. I'll send a DIFFERENT username/password to the account holders contact email." "Fine," I said. Privately I had misgivings.

So I get off the phone and contact my client again - and ask him to forward me the new email. He does, I plug them into OpenSRS. They don't work. Oddly, they are the exact same crednetials as for the ipower.com site. Basically, that kid didn't know what he was talking about, and I resign myself to calling them again.

And I do call them, and this time the wait is 50 minutes. But it seems the person knows what they're talking about (he sounds like he's early twenties which is an improvement, I suppose). The end result is that he sent the OpenSRS credentials to my client's email address. But by now it's too late to call, so I'll have to wait till tomorrow to ask him to forward the email.

Even godaddy's process isn't that messed up, and that's saying something.

(I discovered I'm not the only one who had a bad experience.)

[Update: I had to bother my client to check his email, and it turned out that NO EMAIL EVER ARRIVED from iPower. So now I'm on the phone, and on chat, hoping to get this resolved. This will be my third and final attempt. I'm thinking that I'm not getting paid enough to deal with this bullshit; alternatively, I could/should have told my client to get the EPP code himself, as he's the one who picked this god awful registrar.]

[Update: I finally had an epiphany: I should update the admin email so I don't have to bother my client. I got on chat, and after a 2 hour 40 minute wait (!), I got someone to email me to the new password, and it works! But get this, because the initial clueless person gave me the WRONG EPP code, and I initiated a transfer, I have to figure out how to stop the transfer with the bad EPP code and restart it with the new one. Lovely. But at least I don't have to deal with iPower ever again. And hey, at least now I know.]

Discover: Beautiful hand-made gifts at Etsy

No comments:
Courtesy of the Crunchies, I ran across this great site featuring hand-made stuff; you can also search for things made locally. A great resource for giving unique gifts. I was taken with this writer's journal featuring 96 pages of luscious hand-made paper bound in wood:

Handbound Deluxe Artists/Writers Journal

Flock and the "Red Leather Chair" Syndrome

No comments:
Flock is a startup with red leather chairs. I like their attempt to consolidate social networking data in one place, but I have to say that I would be unhappy as an investor to see the extravagance of their home office.

Kara Swisher: High end blogger

No comments:
Kara (who appears to be a quite influential and well connected blogger) visits the Christmas parties of the rich and famous in the tech world, with her video camera.

Sometimes the Onion gets it right

No comments:
The onion is quite hit and miss, probably because of how much output they create. But there are occasional gems amidst the comedic dross. Here are three:
  1. http://www.theonion.com/content/opinion/all_you_had_to_say_was_owen
  2. http://www.theonion.com/content/news/u_s_to_re_hang_saddam_hussein
  3. http://www.theonion.com/content/news_briefs/tom_glavine_ominously

Hot Synergy: GMail IMAP on the iPhone

No comments:
So I've been pretty disappointed in Spry, and I've been trying to figure out a way to replace them. I am quite happy to report that, not only have I been able to replace the mail server (exim, if you must know) but I've improved things considerably by switching to GMail's IMAP provider. It's easy to setup (and see a video, too) and it gives you these important features:
  1. Folders! I can finally see my tags on my iphone!
  2. Drafts! This is really just a happy side-effect of the folder thing, but it's important enough to mention on its own
  3. Spam! This is also just a folder thing, but I can now mark things as spam on the phone rather than just delete them.
  4. Synchronized "this has been read" state! Sync spam state! Sync responses without cc'ing myself!!!
  5. Vastly improved security with SSL. I was setup with unencrypted POP before, which was a really bad idea on a device like the iPhone which is bound to connect promiscuously to all sorts of shady networks, including unsecured WiFi hotspots.
  6. Unified email. josh.at.joshrehman.com was set to forward to javajosh.at.gmail.com, so messages sent directly to javajosh would not get picked up by the phone.
  7. Speed. I know it's crazy but somehow Google is able to serve mail MUCH faster than my custom exim installation.
All in all this is like getting an awsome, unexpected Christmas present. Thanks for screwing up, Spry! If not for you, I never would have found this delightful synergy between Gmail and the iPhone.

Open letter to the Internet

No comments:
Dear Internet,

Cool down those jets, turbo! You're moving too fast! You're giving people more ways than ever to use the internet for the purposes of good (and evil), but let's face it, it's a bit overwhelming. But the real problem is this: all of your services are competing for slices of me: my data, my life, my friends, my links, and my thoughts. But if I am not aware of this I may be tempted to spread myself thin, to loose track of myself, and so become overwhelmed with maintaining my identities and then disenchanted by the whole concept of contributing to the Infoverse. The misery of duplicating data is intense, but you leave me no choice when, inevitably, my friends use incompatible social networks.

Please stop trying to trick me into using just one service or another - that will never work! The reality is that I'll use a variety of online tools to describe various aspects of me. Each tool has it's own strengths and weaknesses, and that's okay.

So take care, Internet, to encourage me to have a coherent view of my online-self.

Warm regards,
Josh Rehman

An Answering Machine

No comments:

So this is an answering machine widget with a couple of twists. You can leave a message either with your mic or with a text-to-speech renderer, and you can pick your avatar within the widget. Pretty neat but the interface is still too intimidating for n00bs, I think. Gizmoz deserves props for making as easy as it is, though. One other nit: these widgets don't work very well mixed with other text. It may be a scribefire problem, though.

Gizmoz widget

No comments:

Okay, these are actually pretty fun. Gizmoz is taking widget creation to a new level: they have a neat SWF viewer that does rudimentary facial recognition and then animates a head-shot. It does lip-syncing, eye movements, head movements, and winking. You can use their stock photos and sounds, or record your own (Flash can access your microphone or webcam if you have one). Here are two I made from their stock assets:







A good 2007 movie list.

No comments:
A good 2007 movie list from A.O. Scott (erstwhile NY Times movie critic). The fact that Ratatouille is #2 on his list makes me take the rest of it quite seriously. (Into the Wild is hiding in there , too.)

Another neat controller: webcam joystick

No comments:
Check this out:

Things we think we can handle, but can't.

2 comments:
So I've been collecting sets of ideas. One set is all the unintuitive physical things in the world (like tops that don't fall down, or bubbles coming out of water when you heat it - this in response to a guy who criticized special relativity for being 'unintuitive'.). It occurs to me that I would like to collect other ideas as well, particularly very off-putting experiences, especially ones where you might thing "oh, that's no biggie" but it turns out to be quite disorienting. Here are two:
  1. Rotate your screen 90 degrees and try to use your mouse. Whoah! (Particularly easy to try on a tablet which has a built in button for this; however, most graphics displays offer rotation these days). It's almost impossible to use.
  2. Rotate one arm until the elbow and palm are facing up, top of the hand on a hard surface (for most people there is only one direction in which this works). Now look at your fingers and start moving them while watching. It's deeply strange.

Thinkpad Accelerometer: I did it!

No comments:
Quick update: I did it! I dug in a little further and solved the problem - turns out wrapping sensor.dll was the right approach after all.

However, it was quite a learning experience. It turns out that JNative comes with a bunch of pre-wrapped windows libraries including all of kernel32.dll's exports. It also turns out that JNative has a utility method that enumerates a DLL's exports (although it remains silent on expected arguments, alas). It also turns out that working with kernel32.CreateFile was a dead end (which I discovered only after trying to run the Perl and first version of the C# code on my machine.) Perhaps that strange file hand \\.\ShockMgr was for older thinkpads, I dunno.

Now I need to program a game to use the data. But first I need to write a calibration routine. It's funny how similar 2D accel data is to a joystick (it's analogue data which measures force)...

...and so I have discovered another example of a wildly over-designed Java API, called JInput. Check it out:

http://www.newdawnsoftware.com/resources/jinput/apidocs/ (javadocs)
https://jinput.dev.java.net/ (project home)
http://www.javagaming.org/forums/index.php?topic=16866.0 (getting started)

JInput comes with it's own sizable JNI baggage, apart from a silly API, so I think I'll skip it for now. I may look at it later for examples on how to do high resolution polling with JNI if I need that.

Future directions: I think it would be great to get this working on Linux. I know that accel data is present in 2.6 kernels. It would also be cool to get this working on powerbooks (and what's really cool is that I guess they have a 3rd axis). In fact it looks like that would be easier because the code already exists:

http://homepage.mac.com/dave_chatting/boiling-frogs/motion/README.html

Eventually I'll get something running on the iPhone, too. :)

http://blog.medallia.com/2007/08/iphone_accelerometer_source_co.html

Do you want to see the code? You can check it out at sourceforge. Here are some handy URLS:

http://ocjug.wiki.sourceforge.net/Thinkpad+Acceleromter+project (project page)
http://ocjug.svn.sourceforge.net/viewvc/ocjug/trunk/thinkpad-accel/src/JNativeTest3.java?view=markup (code)

https://ocjug.svn.sourceforge.net/svnroot/ocjug/trunk/thinkpad-accel (svn access)

Note that I tacked on a DLL export routine to main() for giggles.

I'll be integrating with the included space invaders code, and perhaps JInput, in the coming weeks.

Thought Experiment: can you reproduce a native app in Java?

No comments:
Here's an interesting challenge for the Java desktop programmer: can you reproduce an existing native application to the extant that a user would not know? And I mean everything from installation, invocation through usage and de-installation. What would this take? How much native code would you need to write?

If this is possible (and I have my doubts), can you do it again on another platform with a similar application?

If this is possible, can you merge the two codebases? If so, how much sharing can you achieve?

A micro nuclear reactor...hmm

No comments:
Wow, a self-contained generator that lasts 40 years and could power a whole town. Pretty cool. I could use it to refuel my Tesla.

Clever Ant script for Eclipse installs

No comments:
I wrote about Pulse earlier; here's the lightweight version using Ant. Haven't tried it yet so don't sue me if it doesn't work

The Shared Java Hosting problem

3 comments:
I'd love it if shared hosting for Java was a reality. I'm much more comfortable with a Java stack than LAMP, and I actually think that Java has a lot more to offer. It's ironic that a platform noted for it's isolation and security is so late in getting a shared hosting solution.

Could OSGi be the answer? A stated goal of OSGI is to allow application components to share the same VM without stepping on each others toes. Right now OSGi mainly seems to be on the desktop via Eclipse/Equinox.

Apropos of nothing: Why does OSGi see itself as a competitor to JMX (Java Management Extensions)?

ApacheCon wrapup: podcasts, markmail, apache felix

No comments:
So I stumbled upon a wonderful resource for those who like Apache software and may want to feel a little bit more "in the loop". It's called FeatherCast and it's a useful podcast (it's on iTunes, too) from Rich Bowen and David Reid. Through listening you not only get information about up-and-coming projects, but also a feel for the Apache community.

The podcast has already yielded fruit. First, I was introduced to MarkMail, a very very nice way to search the Apache mailing lists (and a nice AJAX application in it's own right). This is a great resource for searching lists before posting. I'd love to have it for other mailing lists too. (MarkMail also represents an interesting take on marketing for MarkLogic - to them, MarkMail is a free service is a showcase for their commercial XML database/search product.) Interestingly, I guess Jason Hunter (a fairly famous Java author) put it together.

The other thing of interest was Apache Felix. This is an OSGi implementation, alongside Equinox and Knoplerfish, which aims to be small and embeddable. OSGi is, in my mind, the forerunner of a CJAN, and so it's quite important. It's nice to see so much open-source interest in the area, although it takes commercial interest to really make a compelling product like Pulse, apparently.


Genuitec Pulse for Eclipse

No comments:
This is definitely one step closer to solving the CJAN problem. Basically Genuitec is offering a "free" tool that helps manage Eclipse configurations, in return for putting their non-free plugins up for sale in front of you. Not a bad trade off, actually.

I still have questions though. Like, what the heck is going on in the background? I'd love to just "not worry about it" but with a new meta-tool like Pulse, I think a bit of assuaging is in order. Also, it's great that you can share a "profile" but why can't you just install all of the features you want into one Eclipse profile? It seems like a recipe for disaster to maintain mutiple profiles on top of Eclipse's ability to offer multiple "Perspectives". That said, I've seen how plugins can step on each other (especially HTML and XML plugins), so perhaps it's not such a bad solution.

And what about workspace settings? That, actually, would make Eclipse profiles handy because you might have a "GWT" profile that uses a special code convention (in case you want to submit patches to Google). This is getting very close to having a "push button" installation manager, but it's only a month old and I'll have to keep an eye on it. Obviously Genuitec has big plans.

[Update: I can't recommend Pulse. It doesn't have an uninstaller. It doesn't have much in the way of plugins. I think that EasyEclipse.org is a better alternative.]

A ten fold increase in Li-Ion energy density; the unheralded revolution

2 comments:
Researchers at Stanford have developed technology to increase the energy density of Li-Ion batteries ten-fold.

I don't understand why this is not all over the news. It will change
the world. This is not about allowing business people to work for 100%
of their flight, as the article suggests. This is about making semi-autonomous devices. This is
about making an electric car with a 2000 mile range. Cell phones that need to be recharged once a week.

This is HUGE.

Java: The Headless Platform

No comments:
[ramble alert: this post needs an edit, bad]

What is Java? Java is a VM and a computer language, and a bunch of "core" libraries for making desktop, web and mobile applications. Programs written in Java can be run on any computer platform (e.g. Windows, Mac, and Linux), and they can be much safer than native programs (but often aren't because of programmer laziness).

To an end user, this is gibberish.

What is Java? The answer is tough because Java doesn't have a head. That is, there's no visible core to Java, especially to the end user. To the end user, Java is just another part of the undifferentiated mass of stuff that comes out of that magical box. That's bad for Java, but what are you gonna do? (Well, if you're Sun you start nebulous ad campaigns trumpeting the equally nebulous benefits of "Java Everywhere"!) [an example of a visible head to a platform would be Windows Explorer for Wintel, or Eclipse for the Eclipse RCP, or the Bittorrent client for Bittorrent (and it didn't always have a head, either)]

I'm going to get back to the headless problem, but lets segue a bit with another question: Why isn't Java present on the desktop? Historically I think it's safe to say it's because the user experience was not as good when running a Java app as with a native app. At worst, Java apps need to be just as performant and functional as native apps; at best, they need to offer value-add above and beyond, to the point where my niece will say things like "Trillian is great but it sure would be nice to have a Java version!" To her, Java might mean greater safety, reliability, and portability. (Another reason is that more and more applications are being subsumed by the browser. But that's another topic.)

The fact of the matter is that, despite Sun's assertions, Java remains an implementation detail, and a nasty one at that, and it remains viable only because its an easy language to learn, and has found life on the server-side because the warts of Java are less visible, it's strengths are actually handy there, and Apache. It turns out that WORA is quite useful for developers working on Windows or Mac and deploying to Linux. This isn't to be scoffed at, but it's a lot different than Sun's original vision, obviously.

Back to an important point: when you install Java, what is it? Where is it's 'head'? What is the visual representation of "Java"? What do you click on to "start java"? Is it Java Web Start? Is it the Control Panel icon? Is it the tray icon that pops up if you are unfortunate enough to run across a site using applets? I actually think this is a big problem.

The fact of the matter is that for users installing Java (or anything) is an annoyance, a detail required to enable the use of other applications, similar to the installation of a PDF viewer or a Flash viewer or even an operating system. Users would rather not think about implementation details like Windows, let alone Java. And I think that's okay, too, unless you want people to start thinking about it to improve market share.

(Of course to the programmer Java's "head" could be considered either the command line tools (esp java and javac) an IDE or perhaps even a server of some sort like Tomcat.)

Ironically it's working with GWT that's made me think about this topic from a few different angles. First, GWT is to JavaScript what Java is to native code, in that it has to play catchup with the native platforms in terms of features. And that's Java's story, even now. And that catch up will only occur if people really start using GWT (or Java). And that will only happen if it makes sense.

Java needs top-notch application programmers to write great end-user applications for at least one platform (IDEs don't count). Java needs a text editor that takes moments to start, not seconds. Java needs a better (smaller, faster) Office alternative.

Java needs someone to demonstrate the viability of the platform, and that viability is no-compromise performance combined with WORA combined with the potential for incredibly enhanced runtime security. Users have learned to fear locally installed software, for very good reasons. Java could position itself as the answer to this fear.

Another fierce position to take would be to position itself to the end user as Cygwin or even Steam positions itself: you can take your apps with you. Java could be a true platform in the sense of providing an entire ecosystem for people to interact with their applications (and data). Users understand that reinstalling their applications is a nightmare. The fact that ALL of their Java applications can be reinstalled at the click of a button (even cross-platform) would actually be quite an effective selling point. The fact that they can feel safe about trying new Java apps is the other huge selling point. Safety, convenience, privacy, performance - that sounds pretty good, eh? Oh, I should also mention that some users might like that Java is kinda open source.

The irony, of course, is that RIAs are currently moving to fulfill these unspoken consumer needs quite happily. RIAs generally offer safety and convenience, but no privacy and only "good enough" performance, so although Java has a tough row to hoe on the desktop, it's not impossible to get in there and win.

Sun needs to make this message clear, then show the truth of it by systematically replacing popular software with Java implementations, and being very open about the techniques that used to do it. A good IM client would be a great start. A good music player would be excellent. Simple utilities like text editors and photo viewers would also be good candidates for porting. Rather than clone Office, clone Google Docs. A good email client. An Outlook clone. If programmers could see some successes here, then they may be tempted to try for the more difficult targets.