Thursday, September 28, 2006

Vote for Blossom / Dan @ MyDreamApp

Dan says:
Round 2 voting is open at . I need votes! Vote for Dan and my idea Blossom. I'm hovering at 4th and 5th place - let other ppl know if you can, thanks
Blossom is Dan's concept for a productivity application for Mac OS X. If his idea wins the MyDreamApp contest, the application will get built, and he'll share in the profits it generates. If you believe his idea to be valuable, you ought to vote for it.

Friday, September 22, 2006

Ode to Ernest

I don't know many developers who are sharp coders, and amazing designers. Ernest is. He can wield Photoshop with great mastery to develop a vision for coders to execute on. Being a coder himself, his designs always lend themselves to efficiency and sensical implementation. He'll also happily turn around and code the whole thing himself, as web standards bear very few secrets to him.

I started building our web site, a few weeks ago, focusing on content, as i knew that whatever i'd come up with would look horrendous. And I sure delivered. Ernest once again, was gracious enough to bestow his vision upon me. I just received a Photoshop document from him, and I just can't wait to start hacking at it. It looks nice, very, very nice. Brandy's jaw dropped.

The Shopping Widget was also his design.

In the end, having strong design skills in a development team is an invaluable asset, and I sure am glad to have Ernest on mine. In the process of building applications, it's a common mistake to dedicate too little attention to user interface design. It's a true challenge, and one well-worth solving, that'll lend added credibility and a competitive advantage in a cut-throat market.

Saturday, September 16, 2006

RIP, Lilo

Rob Levin, aka Lilo, who has for many years so gracefully run, passed away this morning :(, from injuries sustained in a hit-and-run accident.

This is beyond tragic.

I'm not sure I've ever known someone more dedicated and passionate about the free exchange of ideas for the advancement of technology. As many of his friends have, I've often tried to convince him to go for a more comfortable lifestyle with a high-paying job, but he lived by a set of higher principles, offering his talent to PDPC, with, in his own words, the awe-inspiring support of his wonderful Wife and Son.

Freenode is an IRC network where many of the sharpest engineering minds regularly congregate to discuss various technology topics. Many open-source projects have their official discussion channels on freenode. It's easy to take all of it for granted. It's free. It's always there. it's always reliable.

Yet we all knew Lilo was always tirelessly slaving, behind-the-scenes, constantly improving the network, scrounging donated hardware and bandwidth, raising money every year.

The world needs more humans like Rob Levin. Not less. Saying that God works in mysterious ways, in this instance, would be an under-fucking-statement.

I for one will continue to look-up to Rob and his wonderful family as shining examples of what outstanding character can achieve.

Monday, September 11, 2006

ServletRequest.getParameter and UTF-8

When we get a parameter from an HTTP request in the Tomcat Servlet container, the String object returned isn't UTF-8-aware. If this bugs you down, you can work around it:

String value = request.getParameter("key");
if (value != null) {
try {
value = new String(value.getBytes(),"UTF-8");
} catch ( uee) {
//wrong encoding!
I don't know whether this is behavior expected from the HttpServlet spec.

update: 09/13/2006: the above code doesn't quite work. I'm now pretty sure it was a useless attempt, heh. getParameter URLdecodes the value for you, but it doesn't do it in a UTF-8-aware way, and my "workaround" can't possibly work around that limitation. duh.

You just want to request.getQueryString() to get the raw UTF-8 URL-encoded query string sent by the HTTP client. And then you want to manually extract the value you need from the key, and run it through,"UTF-8");

If you want to pass this value to an XSLT transformation parameter using Xalan, you'll also run into utf8-awareness limitation. You'll want to pass a UTF8-URLEncoded version of the $encodedValue to the transformation. Then inside the XSLT stylesheet, declare a variable like this: xsl:variable name="decodedValue" select="$encodedValue, 'UTF-8')" ... assuming you've enabled "java" as an extension by declaring its namespace.

update: 09/26/2006 Upon reading this article on UTF-8 and request.getParameter from jGuru, a better approach appears to be:
if(request.getCharacterEncoding() == null)
paramValue = request.getParameter("paramKey");
Basically, the servlet engine needs to be told to retrieve parameters using UTF-8, as browsers don't always send accurate information as to what encoding is being used in a form submission.

update:12/05/2006 Anonymous poster below points us to this discussion about setCharacterEncoding having no effect

Friday, September 08, 2006

Google Apps for Your Domain is Live :o

Google has just released "Google Apps for your Domain". Say you own "somedomain.tld", and you have some sort of control over its DNS settings.

Google lets you specify an MX record that points to their SMTP servers, to handle all incoming mail to your domain. It's GMail, of course, and it works very well. Say hi.

Google lets you specify CNAME entries for anyhost.somdomain.tld, that points to one of their web servers, with good ol' "Host:" HTTP header-based virtual web hosting. Check out Guess what they let you create pages with? None other than Google Lab's

But there's more I've not yet played with:

- Chat: XMPP federation for your domain.
- Calendar sharing.

Screenshot? Yup, right here.

Want your own? Google appears to have limited sign-ups available right here. Not sure how long that's going to be available :)

Friday, September 01, 2006

TomiZone: Share your Internet

This looks like an interesting way to make some extra cash from sharing your broadband Internet connectivity. I believe Seattle Wireless has been attempting similar, but Tomizone seems to be adopting an easier, far more automated approach. They provide custom firmware for linksys routers. I would imagine they'll support other routers later. I've also been meaning to look into Speakeasy's WiFi NetShare Admin.