Archive for August 2010
Just wraped up the weekend of participating in Node Knockout and my teams creation, DropNode is now functioning out in production letting people with bleeding edge browsers share all sorts of files and binary files with their friends and family. So i thought it’d be a good time to reflect on the experience but first talk about the app itself and what makes it cool.
It took a bit of brainstorming, but we decided on a simple website that lets you share files by just drag and dropping them in the browser and using the new HTML5 File API to share them. The thing that really makes it innovative is when you drag and drop a file in the browser it doesn’t just upload it for others to download, but rather generates a link on the server that when someone clicks on will cause the server to force the client (the person sharing the file) to use the File API to read the file and PUT it over XHR. The data is then relayed to the person downloading the file. So a request is what triggers an upload from the person sharing.
So, how’d the competition go? First off my team was made up of some really awesome devs who did a tremendously awesome job despite having little to no experience with nodejs. We did a little up front planning, but this was mostly limited to talking about how it’s going to work and doing a small spike to see if the HTML5 File API + websockets could be used to transfer files. A gotcha here is that I did the spike and succeeded with the caveat that binary files didn’t work right but decided to ignore that problem thinking we could solve it during the KO. Boy was I wrong… that wound up to be the biggest annoyance in the 11th hour. Another thing that helped was we dropped all the features into Pivotal Tracker and kept the communication channel high by using irc or pairing in person (sadly I could not pair in person).
Luckily I had deployed an app to heroku using the node.js beta so once the competition started I knew all we needed to do to get a simple hello world app deployed… create the project structure, create a package.json with our dependencies and run
npm bundle ./vendo to bundle up all of our 3rd party dependencies for deployment. Within 20 minutes we were live, albeit a simple hello world app.
Development was a breeze really despite the problem we initially had with binary transfers… and it was awesome seeing the app come together and actually work. One things for sure… only once a year will I stay up till 5:45am hacking away like a madman.
Anyhow, go check us out at http://done-js.no.de and vote for us!
Spent some time working on a little app tonight and we needed to import users from one app to another. We decided we didn’t need any real fancy schmancy authentication… if the user says that their email address is email@example.com then we’ll believe them and let them participate!
The 3rd party app had an internal url we could fetch exported email addresses from in csv format (with only one column for the addresses) so I just fetched the url, grabbed the emails and hashed each one into couchdb to authenticate against. All done in 17 lines.
Yep… that was easy.
Just wanted to get this out there. As I mentioned previously we’re going to hold the first node.js meetup in St.Louis tomorrow night and plan to continue holding them every third Thursday of the month. I’ve created a nodejs-stl google group for it and will make announcements on future meetings plus discuss potential topics and activities there as well. This is also a good place to connect with other folks in the St.Louis area that are dabbling with node.js which is quite handy if you need someone to pair in with you on something (which I am always open for, schedule permitting).
So join the discussion!
Just a quick reminder that tomorrow night (August 19th) at 6pm will be the first ever Node.Js Meetup fo the St.Louis Area. So far we’ll have Peter Griess giving a presentation on Web Workers while I’ll give a brief introduction to npm. In addition to that we should have room for a few lightning talk is anyone else h as something they’d like to share or just some discussion about node.js in general. So whether you’ve been developing with node.js or you’re just interested in finding out what it is and learning more, come out and join us!
This month’s meetup is sponsored by Object Computing, Inc. who in addition to providing food and beverages has also lent us this month’s meeting space at their St.Louis offices at 12140 Woodcrest Executive Dr. St.Louis, MO 63141. Unfortunately punching in their address will land you at Kohl’s on google maps, so do get there take Olive Blvd. west from 270 and take a right at the second turn by Commerce Bank, the building OCI is in is the one right behind it. From the entrance, take the stairs to the second floor and take a left down the hallway to room 220.
Hope to see you there!