Coding with Jesse

Review: dict.cc

As a Canadian living in Berlin, I'm constantly learning German, and the best resource is a good dictionary. Paul Hemetsberger's dict.cc is not only the best online English-German dictionary I've found, it's one of the best examples of how an online resource should act. Even if you have no interest in learning German, it's worth having a look just to see what makes a great site.

This site is optimized for people who will be using it regularly. You can click on 'Remove Ads' which will hide all the ads until you close the browser. You can also click on some section titles to hide the sections you don't need, which cleans up the interface, and these preferences are remembered using cookies.

There are simple features that make the site even easier. Alt+S will put the cursor into the search box, which is very handy when you need to do multiple searches. You can simply enter the URL dict.cc/word to automatically search a word (I wish Google would do this!). There is even a slimmed down "pocket" version at pocket.dict.cc, which has become the only web site I actually use on my cell phone.

Everything in the results is clickable. You can click on a single word to look up that word, double-click a table cell to look up the whole phrase, or click on a drop-down menu beside each result to reveal a number of options. You can hear a spoken sample of the word or phrase, which doesn't launch a popup or make you save an mp3 - it just plays instantly using Flash. There are also links to the word in the other popular online dictionaries, in case you aren't satisfied with the results or want more details.

Although some of the extra features require JavaScript, JavaScript isn't required to use the site. The JavaScript is completely unobtrusive - even the Flash is added to the page using JavaScript.

The site is built on contributions from users. This means that the dictionary is as up-to-date and complete as possible. For me, this is very important - I want as many alternative translations as possible to understand the different ways German words can be used. Anyone can suggest a translation or correct an existing translation, and all changes go through user-based moderation. And since the data is user-contributed, the author Paul doesn't claim ownership to the word list. It is available for download as a text file.

There are tons of other cool little features all over the site, too many to go into here. You'll have to play around with it yourself.

There is very little I would do to improve the site. Well, the HTML and CSS don't validate. And it would be better if there was a way to access the extra functionality (like the voice output) without JavaScript. But from a usability and functionality standpoint, it's totally perfect. Thanks, Paul!

Published on April 20th, 2006. © Jesse Skinner

What's the point?

What's the point of this site? Well, the Big Picture is an outlet for me to write about my greatest passion: the Internet, the direction it's moving in, and the way it is changing the world. But at the same time, I work as a web developer, so this is also my forum for sharing different problems and tricks I come across, as well as touting the benefits of web standards and best practices.

The result is, I have articles like Setting a form field to null or undefined and Let's get personal on the same site. This means that people who don't do any JavaScript coding have to put up with my technical articles. And people who just want my tips and tricks have to put up with my, let's say, fluff articles.

Luckily, these both roughly fall under "The Future of the Web". If I started posting pictures of cats, or investing advice, or whatever, I might get more complaints. But even under the blanket of "The Future of the Web" I have some thinking to do about my target audience.

I don't really write the techie articles for regular readers so much, they're more geared at people searching the web on, say, "setting form field null javascript". Nor do I write the fluff stuff geared at search engines; they're mostly for the regulars.

So how do I solve this apparent dilema? I could create multiple RSS feeds for categories. I could spin off a second blog. I could drop one of the topics altogether. Or, I could just ignore the problem and let people skim over the topics they have no interest in.

Well anyway, I haven't solved the problem yet. I've thought about these options, but I haven't decided what I'll do. But I'm aware there is an apparent identity crisis looming.

How do you deal with identity and branding, and evolution over time? Do you put much thought into this before creating a site or blog, or do you just let it evolve over time and define itself? Where would you like to see this blog go?

Published on April 12nd, 2006. © Jesse Skinner

Distributism

I was reading Tara Hunt's blog, in which she talks about how communism relates to cluetrain, the "new" web, and all the great stuff we're seeing happen on the Internet. I think she was absolutely right to suggest the distributed nature of the Internet will let the common people take power away from the ruling class.

She's had to fight off a lot of criticism though, since communism has such a negative connotation, especially in America. But communism, ie. The Communist Manifesto, has nothing to do with killing people or Hilter or whatever. It's just about bringing power to the people. Well, it seems like it's an argument that's impossible to win so she's had to focus closely on marketing, with Pinko Marketing.

I think there's a lot of value in this comparison though, outside of marketing. So, I'd like to suggest another -ism that doesn't have the same negative connotation, but nicely captures the same spirit of Power to the People: Distributism.

The idea behind Distributism is (from Wikipedia): "the ownership of the means of production should be spread as widely as possible among the populace, rather than being centralized under the control of a few state bureaucrats (some forms of socialism) or a minority of resource-commanding individuals (capitalism)".

This relates to a ton of things happening these days. Think of "the means of production" in terms of music recording technology, self-publishing, video technology, etc. and the "minority of resource-commanding individuals" as the music, book, magazine and movie industries.

Like I was talking about recently, the Internet is bringing power to the average person in many ways, including in business. More and more people are becoming entrepreneurs. Some people even quit their job, go independant, then turn their old job into their first client, fulfilling the same role they did before. Yes, someone can switch from being employed by a company to being independant and still working for the company, and hardly anything changes. Why doesn't everybody do this?

Well that's kind of the concept of Distributism (or what I gather from it anyway). Ideally, everybody would have their own business. People would get together to form partnerships or co-operatives to share some resources and achieve common goals. People who have their own business, entrepreneurs, artists, or whatever independant people are just that: independant. This is really Power to the People.

This is the future of the web. Individuals doing whatever they want, making a living from it, starting their own microbrands and picobusinesses. People coming together from across the world to work together. No longer does one need a lot of money to create a successful business. No longer does one even need to leave the house to do something big in the world.

This isn't just the future of the web. It's the future of the world.

Thoughts? Agreements? Arguments?

Published on April 11st, 2006. © Jesse Skinner

Setting a form field to null or undefined

I came across another browser difference while debugging some JavaScript. Let's say you were trying to set the value of a form field the following way:

document.getElementById('formField').value = someFunction();

But, it just so happens that someFunction() returns null. What happens when you set a form field value to null? Well, in Firefox and Safari, the value will be set to the empty string, "". Internet Explorer and Opera will set the field to the string "null".

Similarly, if the function forgot to return a value, the form field would get set to "undefined" (this is the same in every browser).

The moral of the story is, be careful not to let a form field value get set to null. You could avoid both these situations by doing something like:

document.getElementById('formField').value = someFunction() || "";

Note: This would actually replace undefined and null as well as 0 and false with "".

Published on April 4th, 2006. © Jesse Skinner
<< older posts newer posts >> All posts