Archive for the ‘Internet Programming’ Category

Write Music Notation in your browser!

Monday, May 31st, 2010

Gregory Dyke and Paul Rosen are pleased to announce version 1.0 of abcjs.

Abcjs is an open source parsing and rendering tool for ABC written entirely in javascript, so it allows sheet music to be rendered as both standard notation and MIDI entirely with the browser.

Here are a couple ways to use this:

For rendering any ABC notation found on a web page as standard notation, see http://drawthedots.com/abcplugin

For the simplest ABC editor in a web page, see http://drawthedots.com/abcjs

For a free on-line editor and tune storage website, see http://drawthedots.com

Enjoy! And we’d appreciate feedback of all kinds.

Notes:

1) ABC 1.6 is mostly done, and many parts of ABC 2.0 are supported. We are actively working on improving the rendering.

2) We know that the rendering in IE is not as pretty as Firefox, Safari, and Chrome, but we’re working it!

EdUi 2009 conference

Friday, September 25th, 2009

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.

Passenger Fail

Tuesday, June 16th, 2009

passenger_failHere’s a warning that you should never brag about how easy or fool proof your software is.

Out of my comfort level

Monday, March 30th, 2009

I 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

Sunday, March 29th, 2009

I 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

Tuesday, March 24th, 2009

I 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.

Racquetball website

Sunday, March 22nd, 2009

A 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

Sunday, March 22nd, 2009

I 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.

Contradancing

Sunday, March 22nd, 2009

I’ve been an avid contradancer for over 25 years. I also play for contradances, call contradances, keep the local contradance website, and I started the dance in Harrisonburg, VA (now moved to Dayton, VA)

I’ve seen the dance evolve quite a bit during that time. When I first started, there was a revolution towards “zesty” dancing, with a typed-up, stapled booklet that contained the manifesto and a bunch of dances. It is funny to look at the dances in that booklet now. Many of them are very dated: They don’t have a partner swing, they are triple-minor, they don’t have any flow, there is a lot of inactives standing around. I wouldn’t call most of them any more.

Also the music is really different. I’d say there is a distinct style of music, which is a mix up of French Canadian, old-time, swing, Klezmer, Irish, and trance music. It used to be that most bands were strictly in one style.