Coding with Jesse

Flip Cancer The Bird

There is a new charity drive web site Flip Cancer The Bird that will donate $0.50 for each picture sent in. The catch: the picture must have you giving the finger to Cancer.

I think this is a fun idea. I'll have to send in my photo next. :)

Published on April 30th, 2006. © Jesse Skinner

Ezine Articles

I just submitted my first article to EzineArticles.com. I just heard about this site a couple of days ago so I thought I'd try it out. Basically, it's a way to get articles read by a new audience. I won't get paid for it or anything, but ideally people will discover this blog and my writing if my articles get republished in various e-zines or newsletters, etc.

If you do some writing and want to try spreading your articles a bit further, it might be worth looking in to. I'll post again on here if anything incredible comes out of it (though I don't except much yet).

Published on April 28th, 2006. © Jesse Skinner

Help stop phishing

I really hate phishing emails for two reasons. First, they're just more annoying spam in my inbox. Second, I know that some innocent people out there are going to be frauded because of these emails.

Thanks to the Anti-Phishing Working Group, there's something we can do to help stop phishing. And it's really easy too.

The next time you get an email asking you to log in to a banking or credit card site, even if it's from a bank you've never heard of, please report it. You only need to:

  1. Create a new email to [email protected]
  2. Drag and drop the phishing email, so that it gets sent as an attachment. (Don't just forward the email or some of the headers will get lost.)

Even if you forget all this, at least remember that you can always search "report phishing" on Google to find the Anti-Phishing Working Group — right now it's the first result.

Phishing will never go away completely, but the more people that report it, the less victims there will be.

Published on April 26th, 2006. © Jesse Skinner

Your voice

I was worried at first when I started my personal blog. I knew that all my friends and family would be reading it. How would I write a blog post so that it would be suitable for both my grandmother and my long time friends?

I was even more worried when I started this blog. I was going to have some kind of professional persona on top of my personal persona. Now my friends and family could read this site, and strangers and colleagues could read my personal site. How could I possibly express myself consistently to such a wide range of people?!

Well, it turned out to be not a big deal at all. It forced me to do something pretty great: it forced me to be myself. It forced me to be honest and transparent. I can't pretend to be something I'm not, because anybody can call me on it. Not on this site, nor on my personal site.

It took some time to get used to it, I suppose. I shared some things on my personal site I wouldn't normally share with everyone, but afterwards it was totally normal. I've also expressed ideas on here I wouldn't normally talk about with friends and family and I'm glad I've done it.

So when people tell you to "find your voice" when writing, they're not suggesting you try to create a brand new voice. Instead, you need to find your voice, the one true voice inside you, and share it with the world.

Published on April 25th, 2006. © Jesse Skinner

Finding Max and Min

Maybe this is common knowledge to some, but I just figured it out today, so I thought I'd share it.

Before, if I wanted to find the maximum or minimum number in a list of 3 or more numbers, I'd do something like:

max = Math.max(Math.max(Math.max(a, b), c), d);
min = Math.min(Math.min(Math.min(a, b), c), d);

But Math.max and Math.min take as many arguments as you need, so you can do this instead:

max = Math.max(a, b, c, d);
min = Math.min(a, b, c, d);
Published on April 24th, 2006. © Jesse Skinner

Getting Things Done

Productivity is a hot topic these days, so I thought I'd contribute to the ever-growing mountain of hints and tips with a few things you can do to Get Things Done:

  1. Make a to-do list

    Write down a list of all the things you have to do. When you figure out more things to do, just add them to the list. I just use notepad for my list.

  2. Prioritise your list

    You don't actually have to write down the priorities somewhere. It's probably pretty obvious, so you just need to keep it in mind. The key is to do higher priority things first. For example: Finish the project your boss keeps asking about - high priority. Catch up on 2035 unread blog posts - low priority.

  3. Go do the things on your list

    Seriously. Right now. Go do them. Don't even read the rest of this article. Go. Now. Do the dishes, or go back to work, or write that blog post or whatever it is you have to do. I'm not kidding. Close your browser.

  4. Try not to spend 3 hours a day reading productivity tips

    Think of all the things you could get done with the time you spend trying to figure out how to get all these things done. Actually, nevermind, don't think about it.

I hope these tips are useful to you. Actually, if you're reading this far they obviously haven't been. So, seriously, either go back to work or just give up on being productive altogether. Whichever one is fine with me.

Published on April 23rd, 2006. © Jesse Skinner

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