Joshua Davis XMAS 2012 collaboration gets featured!

Guess who got another Processing sketch featured in the Sketchpad gallery?

PROCESSING

PROCESSING APPLICATION GETS FEATURED

If you haven’t seen the full application at http://joshuadavis.com/xmas/, go there now and make some art.  Then share it on Twitter and Facebook.

Brought to you by Joshua DavisJon ContinoChuck AndersonSi Scott, Eric Fickes, and the entire Satellite Office family.

 

My doodle got featured

I make the Processing in my browser with sketchpad

Today I was waiting on a computer to finish some work and had a sketch idea.  Not having my laptop with me I decided to use sketchpad.cc instead.  Sketchpad.cc is a EtherPad powered IDE that lets you code ProcessingJS sketches in your browser.

Surf here to learn about the Processing language.  If you’re more of a Javascript fan, checkout ProcessingJS.

Endless Mural wins FWA site of the day

FWA Site of the day > Nov 22 2010

Endless Mural wins FWA for HTML5

I’m ecstatic to announce the Endless Mural HTML5 project has won the prestigious FWA Site of the day award.  While this isn’t the first project I’ve worked on that has won the FWA, it is the first NON-Flash, HTML5 and ASP.NET project that has.  No Flash, and we still got the FWA site of the day, SWEET!.

I need a SQL Ninja

On Friday July 23rd I got the chance to skateboard with my good buddy and personal hero Joshua Davis. I feel lucky being able to say we’ve actually been skating together for a few years now, but this was certainly my favorite session we’ve had so far. We started out at Broomfield’s new park because I had to show Josh the new mini bowl.

skate or fry

Two hot dogs ( http://yfrog.com/n3hs5j )

After Broomfield we made a quick stop for lunch, and then on to the Denver Skatepark in downtown.  It was great showing Josh the lines at my hometown skateparks, as well as a few radical maneuvers.

Now that Josh had seen my non-frontside airs, it was time to wrap things up.  As we were saying our goodbyes I decided to ask about work.  Normally I don’t talk about work at the skatepark, but I was thinking about going indie again, and figured what the heck.

Turns out Josh was about to start a project for Microsoft ( WHAT?!?! ) and he need to “find a SQL Ninja” ( DOUBLE WHAT?!?! ).  I’ve been actively working with MS SQL Server since version 6.5, so I let him know he was looking at his sql ninja.  Josh was interested, but gave me the “just cause we’re bros, doesn’t put you on the team”.

HTML5 drawing tool in one night

Driving home from the skatepark I called my wife super giddy.  “Honey, I may be going indie sooner than we planned”.  I gave her the rundown of the potential project Josh and I just spoke about, and let her know I had some homework to do.  That night I went home and built out a distant cousin of the endless mural project.

You can draw with HTML5

HTML5 drawing tool powered by ASPX and MySQL

sloppy html5 drawing

HTML5 drawing tool powered by ASPX and MySQL

EFDRAW is a really simple HTML5 drawing tool powered by ASP.NET and MySQL. It has most of the features of the mural ( draw, save, replay, share ), but this was only a proof of concept.  This was my first dive into HTML5 development, and it’s pretty sweet.

http://www.screentoaster.com/swf/STPlayer.swf

If you’re interested in HTML5 drawing tools, feel free to play around with EFDRAW, view source, help yourself.

There’s one thing…. Azure

A few days after building EFDRAW my band The Compilers played at Ignite Denver 7. Right before starting our first set my phone rings and it’s Josh! OMG I think, this is either the “you got it” or the “sorry bud, we’ll skate again” call. I decide to take the call even though we were locked and loaded, standing on stage with our gear waiting for the house music to go down. I answer and it’s Josh, but not the usual hyperactive Josh I’m accustomed to. I ask about the gig and he says “Well, there’s one thing. We have to use Azure”.

I let him know I’ve worked with other cloud platforms already, just not Microsoft’s. So we talk a little more and Josh passes the phone to Branden so we can talk 0s and 1s. After talking to Branden “mega brain” Hall for a few minutes he asks if I can do this. I tell him yes, he says yes, I get excited, he gets excited. Branden passed me back to Josh and I’m in shock at this point.

Now the boring stuff

So that’s the story of how I landed the Endless Mural gig, now the boring technical details.

The drawing portion of the mural was built by Branden Hall of Automata Studios.  I did the backend which is made up of ASP.NET ( C# ), SQL Azure, and Windows Azure.  We’re using Azure blob storage to save and serve up the PNGs created at the mural.  To access SQL server, I wrote a super lightweight data access library using all native .NET.

For the most part the backend was very much like every other .NET SQL Server project I build, but Azure did introduce a few gotchas.

  1. The publishing and management of your cloud site mainly goes through http://windows.azure.com/.
  2. You can deploy your site from Visual Studio which proved to be immensely helpful after my Azure deploy package grew beyond 100 MB.
  3. You can access SQL Azure directly from SQL 2008+ management tools.
  4. You can not FTP single files up to the cloud, only the full ball of wax.
  5. You can still use web.config for configuration storage, but Azure also has it’s own version of web.config.
  6. If you need to edit your settings after deploying, store those settings in your Azure service config, not web.config
  7. SQL Azure requires all tables to use clustered indexes
  8. SQL Azure has it’s own TSQL restrictions ( not many, but be aware )
  9. On average, doing a full republish of an Azure site took a full hour.

I could probably ramble on and on about Azure, but I’ll cut it short.  If you happen to have any questions about Azure feel free to hit me up or leave a comment.  I would also like to say that I know Microsoft is and has been actively improving Azure by the day.  The state of Azure today is most likely even better than when we built the mural, so my experiences may not be your own.

The toolbox

  • Windows Azure SDK
  • Windows Azure Platform Kit June 2010
  • Windows Azure Tools for Visual Studio ( v1.2 )
  • Microsoft Seadragon Ajax library
  • Microsoft SQL Server 2008 R2
  • Microsoft SQL Azure
  • ASP.NET 4 ( C# )
  • Windows Azure
  • Azure Storage Explorer

Here is the toolbox that Branden used on the client side.

Hotlinks from the server guy

It’s a wrap

This project was the most concentrated five weeks I’ve had in quite some time. I still wonder if we were only given five weeks because this was an HTML5 project. Either way, the mural team made some magic and now you can too. If you’re like me and just want to doodle, go make some art at the mural. If you’re a developer interested in HTML5 and Javascript programming, go check out the javascript library okapi.js which Branden Hall recently open sourced.

Also be sure to visit the magicians, I mean artists, who made the amazing patterns you see when using the mural. I’m a life long doodler, but can’t art myself out of a paper bag.

Guilherme Marconi

Guilherme Marconi - brain.marconi.nu

Guilherme Marconi - brain.marconi.nu

Matt Lyon

And lastly I put up a photo album on Facebook of all my camera phone pictures from the trip.  Check out the endlessmural photo album.

I am an award winning developer

Back in my VISTA IT days, Tommy and I put together a multi tier Cisco IP Phone management system. Remedy was the management platform, which was integrated to use Cisco Call Manager’s MS SQL database.  Classic ASP was the server side web language.  The end clients were Cisco 7960 IP Phones, and web browsers.
The 7960 IP phones are essentially dumb terminals with an embedded xml service browser.  These lightweight xml services are transformed into ui on the phone just like html is transformed in your web browser.

When you setup a new phone, you have to register it’s MAC with your Call Manager server.  Next, you have to subscribe each phone to any service that you want to make available to that user.  Kind of like subscribing to an RSS feed today.

I built all sorts of apps for these phones just like I would a traditional browser. Hotel software, traffic software, flight tracking softwaare, etc.  In fact, it was at the same time that Pappa Johns first introduced their online ordering sytem.  I contacted PJ’s about their new service and tried to setup a proof of concept for The Innovation Through Convergence Expo, but they declined.

So our big idea for the show was an ip phone service management application.  This was a big convenience app since back then you had to configure each phone, and the services manually.  You’d have to register the phone, then assign services to each phone. Now do this for each phone in your office, keeping in mind that not everybody has access to the same services. Talk about a pain.   So what we did was take the phone management piece out of Call Manager and used Remedy to handle that.  You still need to register each phone with your server, but that’s it.

At the time, Cisco’s Call Manager ran on top of MS SQL server.  Our Remedy system, and our ASP also ran on MS SQL, so it was an easy integration.  So once you had your phones registerred with CallManager, you could log into the Remedy system and manage all your phones, and their available services with the same ease of a regular CMS system.

By running the management piece in Remedy, we received the following value adds :

  1. Familiar management interface ( we were a big Remedy shop )
  2. Access Control to services — Groups, Roles, etc… ( I don’t remember Call Manager doing this back then )
  3. Floating user accounts ( log in to phone or browser )
  4. Quick and easy updates to one or many phones ( Call Manager was one phone at a time )
  5. Remedy’s data was in sync with Call Manager’s ( we were a Remedy integration shop too )

I’m sure the application had a few more bells and whistles, but that’s what I can remember.  The final thing that I was really proud of was the browser piece. While these web services were Cisco IP Phone specific, I built in some XSL / XSLT translation magic which allowed regular browsers to run the same applications.

This was mostly for testing and debugging, but it made for cool web integrations.  These web services in the browser equated to web2.0 widgets.  This wasn’t a big sell, but it was a cool concept to show off at the show.  In fact, most people just didn’t understand what was going on. We had a cisco phone with it’s green screen, and a laptop running the exact same apps side by side.  Since this app had user management, you could log in and use the same services from anywhere.

Funny thing about all this. I thought this application was such a joke compared to the things we were building at the time.  I was really just excited to get out of my office and go to Dallas. I had no expectations of winning anything, and we did.

Sometimes I wonder if this was really just a pat on the head from cisco for being a partner. Either way, it’s pretty cool.  After winning the award, Ron Pike and I went out by the elevators and threw our bouncy balls down into the lobby.  SIX STORIES BELOW! All week we had been planning out the time, and how hard we’d have to throw the balls so they would bounce across the lobby and into the main fountain down below. We never got to practice since the lobby was always swarming with other conventioneers.  Plus, these bouncy balls are the medium sized scwag balls you get at conferences that scream when you bounce them.  You know the ones. They sound like a kid’s laser gun and have the pupil burning leds in them.

Yeah, we got some yells from the people down below, but that’s just how we roll.

Best Innovative Single Award from Cisco

Best Innovative Single Award from Cisco