Chariot Training Classes

Training Courses

I run Chariot's training and mentoring services. We provide training in AngularJS, HTML5, Spring, Hibernate, Maven, Scala, and more.

Chariot Education Services

Technology

Chariot Emerging Tech

Learn about upcoming technologies and trends from my colleagues at Chariot Solutions.

Resources

Chariot Conferences

Podcasts

Friday
Jan032014

Javascript's new Development Tools

After revamping Chariot's website and consolidating our blog, podcasts, screencast and other content to that area, I'm doing more technical blogging there.

I'm in the middle of writing up a series of blog posts concerning the new development tools that Javascript developers are wielding to get their jobs done.

Here are the posts as they exist now (I'll update this when we add new ones):

Coming soon:

  • Grunt
  • Yeoman

Ken

Sunday
Dec292013

Galaxy Gear Smartwatch Capsule Review

Update: I picked up a Pebble smartwatch - says is waterproof, 7+day battery life, limited features but mostly a watch with message integration. Will post my impressions separately.

I did a bit of conspicuous consumption this weekend and picked up a Galaxy Gear smartwatch. Here's my mini-review:

Pros

  • It's from the future
  • The display is awesome
  • Neat applications
  • Easy paring with Galaxy Note 3 using NFC
  • Great watch faces

Cons

  • 24 hour battery life (or less)
  • HUGE, un-replaceable, inflexible band on account of the camera built in
  • Not waterproof
  • Huge cradle needed to charge
  • heavy to wear
  • I can't touch type on a macbook pro when it is on
  • SDK is not available from Samsung even though it's an Android device

Ok, first off, WHY, Samsung, would you create a clasp that sticks out about 3mm from the watch band? Do you know most of your buyers are techies who might just use your watch while typing? Really, that's a fail right there. Secondly, instead of adding features like GPS (yeah, WHY?) to your devices couldn't you use a bit of that space to house a larger battery? And the ergonomics of it? Are there any?

I'm going with either a pebble smartwatch or if I feel a bit more futuristic a Sony Smartwatch 2 - we'll see. But I'm not sure who they are marketing this Galaxy Gear to at this point. Nerds who don't want to type but use their phones everywhere? It's not the future, it's like I'm P-Diddy with a Maybach on my wrist.

PS - I really wanted to like this thing. I just don't see how you could skip ergonomics completely and assume people will just learn how to deform their wrists to use it. Hopefully they learn from this and produce a good watch for their next version, with 3 or more days of battery life, water proofing, and a replaceable strap (no, I DO NOT need a 1.8 megapixel camera).

The only reason I bought it was to program on it - I thought it would be nice to write a few early apps for the platform. But Samsung does not allow public access to the Gear SDK yet. That tells me they are planning on releasing a supportable watch with SDK in the future. I love the Galaxy Note 3 even with all of the bling (as it's a really useable Android platform phone) but this is just a heap of features dumped on a watch.

Friday
Sep202013

Chariot's Data I/O 2013 - Be there or be O(2^n)

(updated) Hey there folks. I'd like to alert you to a great one-day show we're putting on in Philadelphia on October 30th. But I'm tired of typing, so here it is in mind map glory:

Friday
Sep202013

Hacking the 'Roo... Removing the default web plugins

Let's say you love the productivity of Roo up to a point, but that point happens to be the web. Unfortunately, the default Spring MVC patterns installed in a Roo web app are pretty heavyweight - adding localization, tiles, tags, jspx, etc...

If you ever set up and then backed-out a Roo configuration for the web, and then did the wrong thing and found it regenerated the default web site scaffold, you may have sighed under your breath that you just wish Roo didn't do that.

Well, you have an option. I'd say it's rather voodoo, but if you want to get prototyping in some web-based applications and just make a simple Spring MVC front-end, but don't want to get Roo involved in anything above, say, the service tier, here's what you can do:

  • Make a custom Roo installation directory
  • Expand Roo
  • remove the bundles for web, webmvc, web-json, gwt, jsf, selenium (and maybe one or two more I can't remember)
  • remove the cache directory from Roo (it copies the deployed add-ons into this cache as part of the Equinox OSGi container).
  • start up Roo, and see if it sends any OSGi errors your way. If it does, you've forgotten to remove a bundle. Try again - shut down the shell, follow the removal step, clear the cache directory, and restart.

There you are. Now, you can enjoy using Roo for the Aspect-J ITDs, and to make modeling data easier, but if you are simply using Spring MVC for a RESTful front-end, now Roo doesn't get in your way anymore.

You can always link your roo.sh shell script for this version of roo to something like /usr/bin/roo-lite.

Happy Roo'ing.

Ken

Thursday
Jul112013

Accessing and writing client-created cookies in AngularJS

AngularJS provides a $cookieStore object that reads and writes cookies. Here is a sample JSFiddle (my new favorite toy) that demonstrates setting a cookie value and bumping it by one each time the button is clicked.

Note - you won't see the number bump in the iFrame-embedded JSFiddle... Only if you jump to the JSFiddle site to test with it! This is Cross-Site Scripting protection in action...

Original discussion source was this Stack Overflow article.