I was at the EdUi conference at UVa this week and really enjoyed it. I got a few nuggets of wisdom out of it, too. Three tips that I’ll take with me are really part of the same thing. First, after designing a web site, stand up and look at it from 10 feet away. Second, squint so that it mostly blurs together. Third, look at the site for 5 seconds and see what you take away from it. All three of those things refer to first impressions. It is easy to know your topic and website too well, and you forget that anyone else who sees it will not understand it the first moment they see it.
EdUi 2009 conference
September 25th, 2009Passenger Fail
June 16th, 2009
Here’s a warning that you should never brag about how easy or fool proof your software is.
Unspammable Email
April 7th, 2009I like a simple way to keep robots from scraping email addresses from my websites. I put up some garbage html, then run a javascript function to convert that to a mailto: type tag.
The trade off comes when deciding how much I care about browsers with javascript turned off. Mostly, the sites I do won’t work anyway without javascript, so it’s no problem. But if I do care, then I’ll create the garbage html something like: <span class=”nospam”>name -at- domain -dot- com</span> I’m sure that there must be robots smart enough to find that address, since it is pretty common, but at least it looks like something without javascript.
If I require javascript already, then I’ll use something a little harder, and I make it up again for each site (for biodiversity!). Maybe something like: <span class=”to_transform”>com domain name</span>.
Then after the page loads, javascript runs that looks for that class, and changes the entire span into an <a> that looks normal.
Out of my comfort level
March 30th, 2009I often try to get out of my comfort level. I’ll agree to something that seems fun and challenging, then figure out how hard it is.
Right now I’m barely getting settled from jumping out of hard core C++ applications programming to web-based technology and I agreed to play fiddle in the Klezmer ensemble.
Both of those things have a bit in common: they both take a lot of thought and practice, and they both take more time than I have to really master. And they are both really useful things to know. And I’m having lots of fun figuring things out just in time.
Verde Natural Flowers website
March 29th, 2009I just created www.verdenaturalflowers.com for a friend.
My goal was to use the simplest technology I could so that maintenance can be done by anyone with web experience. The pages are simple html/css with just a touch of javascript.
I used javascript to do some fading pictures and also in an attempt to make the email address spam-proof. I didn’t put real the email address directly on the page; I used the “-at-” notation. After the page has loaded, I replace that anchor with the real address.
The pain of upgrading Rails
March 24th, 2009I really dread upgrading just about anything on my computer. It always turns into a huge waste of time. Today I upgraded Rails to the new 2.3 version and ran into a surprising number of problems:
1) Updating the gem was easy, and I created a new rails app to see it in action.
2) Trying to start the mongrel gave me:
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
3) Trying gem install mysql gave me:
Building native extensions. This could take a while…
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
4) I couldn’t find mkmf.log. Lots of googling found lots of people asking, and lots of different answers.
5) After trial and error, it looked like this one worked:
sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config
6) I tried out my new rails app, and got:
no such file to load — mysql
7) Again with teh Google! Again with the lots of questions and lots of answers!
8) It turned out I just needed to restart my mongrel.
9) I usually look at an example when running “generate scaffold”, but this time, since this is just a test, I just guessed about whether the controller name is supposed to be pluralized. I guessed wrong. (It is NOT plural)
10) Fortunately I use Beyond Compare to keep a shadow backup before doing any automated process, so I just reverted, recreated the scaffold, and SUCCESS!
Time wasted: 4 hours.
The Klezmer Ensemble
March 22nd, 2009I’ve joined the Klezmer Ensemble, playing fiddle, this semester. It’s been lots of fun, but quite a lot of work. All the necessary practice has been helping my general fiddle playing. There are some notes in these tunes that I’ve never played before (at least on purpose!). And there is some up-the-neck work that is completely new, too.
Our big concert is April 5 at Old Cabel Hall!
Softball is starting up!
March 22nd, 2009It’s that time of year again, and I think I’ll be healthy enough for at least one more year. I’m playing on two different teams on the same night: one is an over 35 year old league, using wooden bats, and the other is a co-rec team where I can use my Demarini. It’s going to be a challenge having a double header every week.
The co-rec team won in the Spring of ‘07.
Racquetball website
March 22nd, 2009A year or so ago I took up racquetball and found I have a natural affinity for it. I have pretty quick reflexes, I don’t mind diving for a ball, I play really intensely, and I’m left-handed.
I joined the racquetball tournament at the local health club, and was appalled that the standings were sent out once a week as an Excel spreadsheet attachment. Since I was just making the leap into internet programming from application programming, I volunteered to write a site for free in Ruby on Rails just for the experience.
It’s turned out great, and each season I’ve been spending a few hours on it to improve a couple of small things. The original code was pretty embarrassing, since I was just blindly trying to find my way. There is still lots of refactoring to do, but, it works, so there’s no hurry.
The Contradance website
March 22nd, 2009I rewrote the Charlottesville Contradance website a couple of years ago when I was learning .NET. I found that .NET is a good platform in some ways, and a weak platform in others.
What is good is that I was able to easily place widgets on the screen and associate them with data. I created a fairly rich site (for the time!) without learning a thing about JavaScript. It also has “master pages”, so you can create a template for a number of pages without having to repeat the same HTML over and over.
What is bad is pretty much the same thing: I was an applications programmer and I was able to create the site without having to change my paradigm and without having to learn much about HMTL, CSS, or JavaScript. Some of the .NET pages I created tended to be pretty heavy. What is also bad is that the site needs to be hosted by a Windows server, and that limits your choices.
The entire schedule is driven by a set of XML files. My thinking was that I’d like to keep an entire mirror of the site on my computer and just FTP it up. That way, I can’t lose data if the ISP goes under. In retrospect, I think the way to go is to use a database, but have backup procedures in place.
One of these days I’ll rewrite the site in Ruby on Rails.