HolidayJS FTW

Yesterday I attended my first all javascript conference. It was hosted at Gangplank in Chandler, AZ and was a top notch event. I believe there were about 65+ attendees out of the 100 registered. It wasn’t just a conference though…it was a hackfest! This was my first time in a hackfest and it was a fun learning experience so I thought I’d share my thoughts.

Sessions

The morning started with sessions. It started with a session on mobility by @PJ_Newton of WellBeingCorps. I’ve long tried to remember to hold good posture but PJ showed a lot of new things I could try while I keep failing to achieve good posture. 🙂

Following PJ was @UHDUH (Chris Cowan) of Plus 3 Network with an intro to Node.js. I was already somewhat familiar with Node.js but Chris covered more details in how they use Node at +3. The main point I took away was asynchronous data calls being better than a typical synchronous backend language. While Node isn’t the only way to achieve this, it was interesting to see this as a selling point.

Next, @MONTESLU (Luis Montes) took on HTML5 Boilerplate but it wasn’t really a boilerplate talk as much as it was a talk about a lot of the new things you can do in HTML5 (WebRTC, audio/video APIs, etc). It was a good demonstration of what’s possible in HTML5 though. The most hilarious statement I heard all day was WebRTC was the final nail in Flash’s coffin (not like DRM content is important or anything). It was so funny because he followed that with a graphic showing how poorly supported it is, as of this post. You can do some awesome things, that we’ve seen a million times over…in Flash, with WebRTC,in a supported browser, but you can’t nail a coffin with weak nails. Just saying. 😉 Great preso though and, sans the connection issues, some awesome demos.

I probably got the most out of the next session by @WEAREFRACTAL (Aaron Murray of Fractal). His talk, Full Stack Javascript, was tops to me not because of the content, per se, but the theory/approach. Aaron and Contra (his partner) have 92 public repos on GitHub. The number isn’t the impressive part, although it is impressive, it is the separation of specific code to libraries to complete their projects. They are DRYing things up tremendously as they code by creating separate libraries. One of their top used repos is their boilerplate, since they use it for every project. I’ll touch more on this later but it opened my eyes to not just using popular boilerplates but creating boilerplates for yourself to smooth the start of a project.

@eschoff (aka Contra; a 20 year old, top notch dev) followed Aaron with a preso on Websocket Patterns. This is one of the most impressive features of Node: the simplicity of implementing sockets. Contra has done a solid amount of work with sockets and is realllllly big on sockets replacing normal normal HTTP since the connection doesn’t close. Great preso but I’m not sold on dropping REST at this point. It is 100% supported so why bother with sockets AND basic HTTP calls? The future is bright though.

Then we grubbed. This deserves a section of its own so read more below. 😀

@eburley (Eric Burley), my engineering manager at WebFilings, presented Testing Javascript with Jasmine. I didn’t rank this one as a favorite because…well…I get it from Eric all the time, especially on GitHub pull requests when I don’t have something tested. 😀 Aside from that, I think he did a phenomenal job explaining not just how Jasmine works but how to test and, most importantly, when to test. If you’re writing any JS heavy apps, you need to test.

@robrich (Rob Richardson of Richardson & Sons) finished the sessions with a talk on Agile.  From a presentation perspective it was somewhat weird ’cause he used a text editor to type his talking points as he went. The content was solid, as I’m a big believer in Agile now (thx WebFilings), but typing as you present was a new one for me. Solid job though. Rob also served as a team member in the hackfest portion of the day.

Overall, the sessions were great. The outright love of NodeJS was expected but I didn’t think people were using it for traditional web apps. I came out of it with a greater respect for NodeJS but when you see a direct connection.query(“SELECT something FROM somwhere”) after having used ActiveRecord…you walk away far from convinced to switch. As noted above, it is early on so I’m sure people will build better modules for it but right now I have no interest in building a web app in Node.

Lunch

INCREDIBLE!!!!! I have never been to a conference with a better lunch; real talk. This was an amazing spread right up my alley. I mean: fried catfish, pulled pork, fried chicken, salad, red beans & rice, macaroni and cheese (two different one’s, not plain either), an awesome habañero sauce, and more. A…mazing!

Needless to say…there were a TON of seconds going around. San Tan Brewery was an amazing caterer for the event.

Hackfest

Being my first time doing such an event, I was a bit unsure of the best way to handle it. After doing it, I’m much more equipped to do so as now I see how important every minute is for finishing the project.

I was teamed with @Rob_Rich, Jeff Plummer, Demitrio Herrera, and Jon Thomas. We struggled to come to a decision on what to build then once we did it took a minute to get the ball rolling. My biggest goof was with Require.js when I couldn’t get a controller to be included properly because I used “require(…) vs define(…)” in the controller file. :-/ That was a major waste of time along with another goof on using a directive but I ended up ditching that and broke all kinds of rules with my controller manipulating the DOM but it wasn’t a “pretty code” contest. 😉

We didn’t really get rolling until well into 5 PM. No prob until you realize we were presenting at 6. lol. Our Connect4JS (source) game was finished in the last few minutes and took 3rd place for a prize of PeepCode 5-pack, which is awesome. 1st place all won Nexus 7s and 2nd took home Lumia 800s (not sure the exact model number).

The swag, as a whole, was pretty sweet. I walked away with a free Manning Book (which one TBD), a pretty sweet MailChimp shirt (just like the 1st one here), and PeepCode videos.

Final Thoughts

I think I’m in love with hackfests. 🙂 If they are all as quality as this one, I’ll attend as many as I can. This was fun and was a great job by @simpulton (Lukas Ruebbelke) and everyone else involved.

Update
I forgot to make note of the Nexus 10 one of the devs won. He was also on the winning team so he won a Nexus 7 as well. The swag at this thing was off the hook!

Google TV v3 Looks Shaweeet!!

I love my GTVs but have been waiting on it to mature. This update gets it about 85% to where I want it to be and I can’t wait to upgrade my Revue units. It is by far more useful than my Apple TV (I loathe changing TV inputs) already and this just takes it to another level.

Learning Python: Concatenation

I’m learning Python now and using Learn Python The Hard Way, 2nd Edition. Look for a few posts where I detail my adventure. First up, string and number concatenation.

It is simple but I dig this:

print “Hens”, 25+30/6

Output:
Hens 30

The comma adds a space and you can see it appends the math. It is very subtle and simple but I definitely dig this.

One last example showing the comma a space:

print “Hens”, 25+30/6, “!”

Output:
Hens 30 !

ColdFusion Position at Adobe

This just came through the RSS tubes.

Passing on this job notice from Adobe. It is a contract position with the possibility of converting to full time. We have an open contract position for a CF engineer that I was hoping you could post on your blogs. Here are the requirements per the hiring manager:

  • BS or advanced degree and 3+ years’ experience, or equivalent knowledge.
  • Experience in design and development of web applications with ColdFusion, Mach-ii, AJAX, JSON, XML
  • Worked with and applied current web client-side technologies – JavaScript, CSS, HTML, etc.
  • Experience working with highly trafficked, scalable web applications with product downloads
  • Experience with Adobe AIR applications
  • Knowledge of presentation, web, business and data access layers and their interactions
  • Experience with web services protocols such as REST, SOAP, XML/RPC.
  • Solid foundation in computer science fundamentals, object oriented, design techniques, + software engineering best practices
  • Experience in Scrum/Agile software development methodology

This position is for the group that works on the Adobe client download center section of Adobe.com Please send resumes to Kavitha Mattikalli kmattika@adobe.com

Source Ray Camden

Claim Chowder: “Maybe He’s High?” and “Is He Nuts?”

Gruber pondered whether Eric Schmidt “was high” and Matt Rosoff questioned whether Schmidt is “nuts” when he said:

By the summer of 2012, the majority of the televisions you see in stores will have Google TV embedded.

Actually…he was neither, at that time. 😉

The Google TV blog officially announced new hardware partners [source has list]:

We’ve also been working with our hardware partners to bring new Google TV-powered devices to consumers.

As an avid Google TV owner/user, I’m pleased to see a major advancement in the product.

PS – Welcome to the claim chowder list Gruber and Rosoff! I’m sure others could join you on this topic. 😉

Google, FIX THIS!!

Google, FIX THIS!!

What is “this”? Here is what I said on March 4, 2011 in my Where Android blows itself away, for me post:

Why are manufacturers not releasing their updates within days or weeks of Google releasing their bits? Google: if you’re holding up manufacturers, you’re destroying your ecosystem. Manufacturers: if you’re just slow, dealing w/ politics, or _________ [fill in that blank], you’re destroying your customer base and Google’s ecosystem.

(more…)

My response to ‘Does Adobe really care about ColdFusion? Doubt it’

Alan Williamson went on the attack in an attempt to call out Adobe for their lack of ColdFusion updates/support. I commented on his blog but wanted to replicate it here. I hesitated to do this seeing as it would bring light to a tasteless marketing effort but think it could be worth the discussion.

So here is my response to Does Adobe really care about ColdFusion? Doubt it:

I’d say OpenBD is behind Railo. I didn’t even know OpenBD was still working. I thought it was dying slowly [not being funny, absolutely serious here].

You’re taking Ray’s posts wayyyyy out of context. DateTimeFormat is a simple improvement we’ve all dealt with for years through two function calls: DateFormat, TimeFormat. Ray is pulling simple upgrades out of Zeus and posting about them. Maybe if that was the only update this post would be spot on but it is just one of the smaller niceties being provided.

If you want a list of big features, Charlie did a preso recently [October 2011] where he outlined what’s new.

Here are some I’d say are “slightly” larger than DateTimeFormat:
– Automated Hotfix Mechanis
– Restricting Admin Access by IP Addres
– CSRF Protection
– XSS Protection
– Completely rethought scheduled tasks [too many updates here to list]
– Web sockets support; other HTML5 goodies too
– Closures
– Implicit CFC constructors
– CFC method chaining [no more ‘return this;’ required to method chain]
– Tomcat replaces jrun
– SOLR improvements
– Better java integration; auto-load jars and cfc access in java [see CFCProxy] are my favs
– jQuery used in Admin [death to java applets]
– Per-application VFS
– Web Services are now AXIS 2; adds REST support and is brain-dead simple yet very powerful

Those are just some of the highlights from Charlie’s preso. Does that change the scope of your post?

As for it taking a very long time for such a simple update, I think all software has a similar issue. It isn’t like DateTimeFormat was all that hard to achieve through a UDF.

But…for the sake of discussion, OpenBD isn’t free and clear here either:
Issue 33: cfprocessingdirective in the error handler page

That’s been open since 2008. This one is 2008 as well.

Maybe the issue tracker is outdated but until your house is clean…you might not want to talk about someone else’s.

😉

PS – I deploy mainly Railo these days so don’t think I’m an Adobe fanboy defending the mothership.

It is always good for the community to take up a cause and get a company to improve a product but for a competitor to lambast and claim they are the clear leader they must: 1) Not have the same issue(s), 2) literally be in the lead, 3) Do so with legit points showcasing where an impending update is a poor one.

As another side note, I mention Railo as my preferred CFML engine [namely because it is free and blazingly fast!!!] but lately I’ve been in Rails way more than CF.