Garann Means to Present DRYing out Your Client-side Apps @ #NodePDX

This is the second in a series of posts about the individual speakers lined up for…

I’m stoked to introduce another one of our NodePDX Conference Speakers today. Garann Means is traveling from the weird city of Austin, Texas to the weird city of Portland, Oregon so she can impart on us coders some of knowledge around “DRYing out of Client-side Apps”. As she describes,

“There’s plenty of cool stuff Node offers purely in terms of server-side architectures, but it also offers a way to solve a problem we’ve been wrestling with since client-side applications became a big deal: writing everything twice. Rather than having the templates that produce markup exist in one backend language and in JavaScript, you can reuse them. Instead of validating in JavaScript on the client for the user’s convenience and then again in some other language on the server for security, you can share a validation module that can be used in both scenarios. And so on. We’ll look at some of the ways to stop repeating ourselves in Node apps and focus on getting the most out of existing client-side code.”

Garann looking at the code to her upper right.
Garann looking at the code to her upper right.

Garann is a JavaScript Dev in Austin with her dog and cat, who leap in for code reviews. She grew to love Node after a history of backend development combined with her passion for client-side apps. She has a, and I quote “colorful” blog, which I myself read every time she posts a new entry. She’s also an author of “Node for Front-End Developers” from O’Reilly, which she wrote when she wasn’t remodeling her house and coding awesome JavaScript magic!

Garann has some seriously good reads over on her blog, some of my favorites include:

  • The 150k Solution -> Companies, especially those in sprawling suburbia need to take heed of what she writes about here, and even more so are those companies that try to throw money at developers. She’s got more insight into this than most people that are actually in charge of finding talent!
  • Calling the github API with Node.js -> This post is pretty obvious why it’s a favorite of mine. She does a deep dive into use the github API, and, well, just go check it out. Great material.

Also, Garann is active & involved on github obviously. Give her a follow on lanyrd and also on twitter.

If you’d just like to come and check out Garann’s Presentation and the other great presentations lined up, get involved in some coding, hear what Node.js is all about please RSVP and get the event on your calendar!

If you’d like to be among the presenters, submit a proposal, and you too can step up into the coder spotlight.

Jesse Hallett to Present “Object-oriented Patterns in JavaScript” @ #NodePDX

This is the first in a series of posts about the individual speakers lined up for…

Over the following days I’ll be introducing each of the speakers for NodePDX. The first speaker is someone pretty well known in Portland, has helped organize the JavaScript Admirers Group in town, and works for another well known Portland Company, Jive.

Jesse Hallett Doing the JavaScript Presentation Thing
Jesse Hallett Doing the JavaScript Presentation Thing
Jesse Hallett
Jesse Hallett

He’ll be presenting “Object-oriented Patterns in JavaScript” which is something I’d advise any new, experienced, or elder programming JavaScript to check out. Knowing these concepts is key to really digging in and creating manageable, readable, and usable JavaScript Code. Jesse provides a description of his presentation:

JavaScript is a language that is tremendously flexible, but that comes
with few clear conventions. Code organization is one are that has been
reinvented perhaps more times than there are JavaScript programmers.
I will examine a few tools that are intended to improve the experience
of writing object-oriented code.

Some of the specific tools that I plan to examine are [traits.js][],
[CoffeeScript][], [Prototype][], and [JiverScripts][]. The goal is to
get a look at different ideas to see what each approach has to offer.
We will discuss inheritance versus composition, and question when it is
or is not appropriate to use object-oriented code.

[traits.js]: http://traitsjs.org/
[CoffeeScript]: http://coffeescript.org/
[Prototype]: http://prototypejs.org/learn/class-inheritance
[JiverScripts]: https://github.com/jivesoftware/jiverscripts

Audience participation is encouraged: if you have a favorite OO
implementation, or experiences with JavaScript code organization, feel
free to come and to share.

Got JavaScript curiosities, want to get in touch with Jesse, or just lurk on his twitter feed or blog? Here’s the info:

If you’d just like to check out Jesse’s Presentation and other great presentations that are lined up, get an RSVP and add it to your calendar!

If you’d like to be among the presenters, submit a proposal, and you too can step up into the coder spotlight.

ALT.NET Portland

There is an upcoming ALT.NET Portland Meetup happening at e-Discovery in downtown Portland. The meetup is happening on the 13th of October. There are several ideas behind this meetup, but I’m going to lay out my personal reasons here.

I’m working diligently to distribute my skills in multiple development stacks. I use Ruby on Rails, Sinatra, node.js, EngineYard, Heroku, and other platforms aside from my current “getting paid” technology stack of ASP.NET MVC & associated tech. The reason is simple; .NET slowly but steadily appears to be dying a slow death everywhere except the Enterprise. Rails, Ruby, node.js, and JavaScript are the primary skills of more than 95% of startups. I’m determined to not get stuck holding the “Delphi” card. I like the bleeding edge of tech, the excitement behind the efforts to keep things moving forward. ALT.NET, has always represented that. In Seattle and Portland that effort seems to be faltering, even losing steam in some regards. I want to help change that. No matter how much I dive into Ruby on Rails and the other tech stacks, I doubt I’ll ever not be working with .NET in some way, form, or manner. So I’d like to work on keeping that enthusiasm going in addition to my other platforms that I work with.

…and thus, ALT.NET Portland Meetup on the 13th. Come have a conversation, a discussion, and maybe even a beer or three afterwards.

…and if you’re in Seattle, don’t forget we meetup every month on Saturday, which for some is a problem. If it is, check out Beer && Code or one of the other great meetups where technologies mix and coexist.

Cheers, and hope to see you at one of these great meetups sometime in the future.

Oregonian MapAttack Article & Video

Another great review via the Oregonian by Brent Wojahn!

This is a piece about the game and shows some of us MapAttackers running around in action, looking for our virtual scores! For my full write up, check out my previous entry on my Geoloqi Weekend.

Geoloqi Weekend, Hack Your Location!

This last weekend I travelled from Seattle down to Portland to visit the Geoloqi Team. The idea popped into my mind when I had coffee with Amber Case a few weeks back (if you don’t know who Amber Case is, you should -> Go here, and here, and here, etc…)  I knew about her and Aaron Parecki (also, if you don’t know who he is -> Go here, and here and here) working on Geoloqi for a while now and proposed I come down and hang out with them a few days, maybe hack on some code, and generally see how the startup scene is going with Geoloqi and PIE.  What follows, is my weekend…

Saturday – train trip down.

5 am, some Geoloqi tracking my path, 7 am, tracking the train route as we’re rolling.

I woke up at 5am, stoked for the long weekend of coding, meeting all the founders and members of Geoloqi, hanging out in the city, and seeing PIE. I’d read about and heard about PIE several times since it began existence. Odd that I had never been, I was ready to remedy that. I mounted my bike, gear on my pack, ready to go board the earliest King County Metro #18 I could get. With a train departure at 7:30am, getting out of Ballard to downtown was key.

I arrived at the station after a short bus ride and even shorter bike ride to the station. I got the bike tagged for loading on the baggage car, readied my laptop for coding on the train, and waited for departure time. It wasn’t long, and off we were a train of 200 or so, surfing the wifi, enjoying the scenery, with no traffic to block us and plenty of coding for me.

I propped up my stuff under a seat in the Bistro Car and grabbed a breakfast sandwich. While rolling along at 79mph I worked through loading Mongo (for some reason, it had left my Mac, not sure where I put it before, but it was no longer installed), playing around with it a bit, and then worked on some Ruby and Rails work. Irony has it, working on Rails while riding rails. See what I did there? 😉

The entire time I’d tracked my route with Geoloqi. It was really cool to see the route being drawn against Google Maps. Usually the rail lines aren’t marked clearly, so knowing exactly where we were was cool. It gives more context to where the rails run in relation to the highways, Interstate Highways, and other arterial roadways.

12ish, arrived, biking to PIE, introductions ensue! …till’ 6 or so, talking geolocation, Geoloqi, & the energy behind it all!

We arrived on time, actually about 10 minutes early, which still just counts as on time. I counted that as good fortune as I stowed the Mac and retrieved my bike. From here I walked out front to a very warm day in Portland. More coding awaited, but before then I desperately needed some decent food. However I decided to go straight for coding and rode up to PIE.

After turning myself around, I found PIE and walked in. On the weekend there was fewer people than during the week, but being a startup incubator you know there is always somebody hacking on some code. I looked around and noticed Aaron, who I’d never officially introduced myself to. Being myself I strolled right up and introduced myself. Brian Ledger (Again, get to know him here and here) was sitting next to him as they worked through some code, bugs, and other errata.

I pulled up a seat and discussed what they were up to for a short bit. After introductions and all I decided to pull out the Mac and get some similar dev machines up and running so I could pull the code on Github. If you want to join in, check out the repositories here:

The Geoloqi Team also have more repositories, so be sure to go check out their work. There is a lot of good stuff there!

I got Android up and running after waiting for a long while getting all the refreshes of the SDK bits. Google really ought to do something about the mess that the Android SDK has become. Then of course, maybe I’ll have a different attitude about it all after I’ve coded in it for a while. However most devs I know using the Android SDK will tell ya, it is a pain in the keister!

Around this time Kyle Drake (Yup, he’s on the Internetz too!), the platform developer for Geoloqi popped into the office. Kyle and I chatted for a while, he whipped up some wicked tasty hot tea, and we continued discussing Ruby, Rails, .NET, C#, Java, and a host of other language bits. The topic of the reactor pattern came up while talking about Node.js and also his work on Sinatra Synchrony. I was pretty stoked about this, it sounds pretty wicked cool and hope to dig through the code sometime (I realized, I only now pulled down this code! o_O).

One of the plants at PIE blocking my photography...
One of the plants at PIE blocking Aaron from camera view...

I pulled down the libraries and after getting them to run looked over a few minor tweaks on the MapAttack Game with Aaron. It’s always great to sit in on a completely foreign code base to see how the team has put things together. The graphics, CSS, and JavaScript intertwining to provide MapAttack functionality was really cool. Some smart tweaks and design elements gave some cool functionality that I’ll admit, I’d not have thought to do. I’ll have to get my CSS skills improved (mental note to self).

Midnight Drinks, Sweetbreak, Pour em’ Strong!

Beaker & Flask Location
Beaker & Flask Location (Click to navigate to the location on Google Maps)

After an evening of hacking, finding where I was staying, and getting introduced to everyone (who I’ll tell you all about below) Aaron, Amber, and I met up for a few drinks at Beaker & Flask. For those of you living in Portland that haven’t been here, go check out Beaker & Flask. They have some great drinks and tasty, interesting, and unique food. We discussed a whole slew of tech topics and just caught up on Portland, Seattle, startups, and other things. It was good times!

The Route to Home #1
The Route to Home #1 (Click for the route on Google Maps)

After that I rolled back to the place I was staying with my trusty steed (i.e. bicycle). I had reserved a unique place for each night, just for full coolness effect. The place I stayed in an Airbnb Reservation owned by Kari & Dave.


Sunday – map attack!

Airbnb Served Me Well, early day, Sunday rest, nah.

The Airbnb Room served me very well. It was perfect quite all night! I got a great nights sleep and in the morning packed up, stowed my gear and loaded my messenger bag. Off I went for some breakfast, coffee, and some in person MapAttack!

Caffee Pallino
Caffee Pallino (Click for Google Maps Location)

I grabbed breakfast at Caffe Pallino. This is a great little hidden local to Division Street (or the #4 Bus Route) cafe that has breakfast, gellato, and pretty good coffee. It was just about a minute ride down from the Airbnb Room I stayed at, and since I knew it was quality grub, I stopped by for the needed coffee fuel.

Ladd’s Addition Pincer Attack! MapAttack Charge!

For Amber’s write up, check out her Overview of this Sunday’s MapAttack Game in Ladd’s Addition!

Aaron Coding up some last minute oompf!
Aaron Coding up some last minute oompf!

We all met up at the north east end of Ladd’s Addition to start the game. A reporter from the Oregonian was there to record the game and write an article on the event. Aaron, Brian, and Kyle were all working on some final code tuning to get everything running just right for the game. Others started showing up and we all gathered to begin the game.

We all poured outside in the almost 90 degree heat to tear down the street and score the most points! After a thorough description of the game’s rules by Amber, and insuring we’d all received team assignments we stood, ready in runner’s positions to being the game. The countdown began,

3…

2…

1

We were off, at first I ran down the street with one of the other players aiming for one of the alleyways of Ladd’s Addition. I had pinpointed the 50 point targets I wanted to get! In the blazing 90 degree weather I ran down half a block and cut directly into the diaganal alley way just west of Ladd Avenue. After looking closely as I ran toward the virtual coins on the Geoloqi MapAttack Map I realized this alleyway, in glorious weird Portland fashion, was indeed named! I tore down Ladd Avenue Mulburry Avenue Alley toward my 50 pointers!  I ran down the whole alleyway, noticing that none of the coins were scoring as I ran through them. I wasn’t sure at the moment what was happening, and figure it was lag and eventually they’d score as blue for the team I was on. I kept running, assuming they would trigger any moment and I was under the gun from a red runner a street over from this one.

Kyle & Brian Explain the Finer Semantics of the Game, or something...
Kyle & Brian Explain the Finer Semantics of the Game, or something...

I got all the way to Harrison Street and cut a right toward the small park. There awaited the 50 pointers I was aiming for. My feet ached at this point and I slowed down. While going slower, sweating profusely from the heat, the coin popped over to blue. But that one was a 10 pointer, I walked over toward the 50 pointer waiting for it to pop over from plain to blue. It changed and I realized at this point I had ran too fast down the alley way. I got the other 50 point coin, and then began my way back up the alley way. Slowly but steadily the blue team scored 10 pointers, 20, 30, and more 50 pointers! I watched with anticipation on my phone (Android Evo if you’re curious) as each of the coins was getting popped over to a team color. Rooting for my team I got back to the end of the alley way near Hawthorne Street. I walked slowly back toward our starting point, knowing I’d not be able to get the other coins on the other side of the map. I could see as my other team members went for the victory points though. Watching, being involved in all this was intense with excitement.

MapAttack, was absolutely a BLAST!!

Skateboard Shoes are Stupid for Running, Suffering Heat…

Whew. As I walked back I realized, “boy it sure was dumb running with flat footed skateboard shoes on.” Yeah, sometimes I’m not the brightest candle of the lot. I didn’t complain at all though when I realized several of the ladies playing were wearing heels! Oh yeah, that’s right, we were all some seriously hard core players!

The Whole MapAttack Crew
The Whole MapAttack Crew
Watching the Game
Watching the Game

Upon getting back Aaron came out with his Apple Mac Air and Amber, I and eventually others as they returned watched the remaining points get scored by members of each team. We discussed the throughput and calculations of the games, the geo point fences and other specifics he was able to view while monitoring the game. Brian came back and made a victorious last 200 foot run!  Kyle and the others then reappeared also. We all sat on the steps watching the final members of the group come back up. The newspaper man was then kind enough to grab a final shot of us – which I’ve snagged to the left here from Amber’s blog.

The game ended. I hung around and discussed the game some with Amber and Klye. Eventually I headed out to find the second place I’d stay during my stay, the McMenamins Kennedy School. I pedaled my way through downtown, just to take the scenic route up to north east Portland. Eventually arriving and relaxing for a while. I then enjoyed some coding, checking out some more with MongoDB, a bit of Ruby, etc. Ya know, the standard nerd evening alone with some code. After a short bit I decided I’d try out Geoloqi some more by taking a ride about on transit.

Evening, #72, Green Line, more Geoloqi Tracking, Silent Portland

I triggered Geoloqi to track my trip, which I messed up a few times by playing around with the app and turning it off and on while I was en route. I rode on the #72, which stops a block away from the McMenamins Kennedy School, and rode down and transferred to the #9, then to the Green Line Light Rail to downtown. Once I arrived downtown I walked here and there, tracking myself literally on the sidewalk and crossing the street even. Really cool & really accurate. I tried out leaving myself a message or two, one at the train station to remind myself to board the train on Monday evening. As if I’d need a reminder. 😉

Eventually I got back to Kennedy School and crashed for the night after a few more hours of coding & playing with the code base.


Monday – PDX Breakfast Culture, some more PIE, and a flanged wheel ride home.

Monday Morning Portland, a bit o’ breakfast.

Monday morning, dramatically relieved with the onset of cooler air, I departed for breakfast with my folks (i.e. parents). I met them at the Radio Room, which is a breakfast joint inside of an old Texaco Gas Station. Personally, this is a much better use for a gas station than providing gas. But then of course, I didn’t step inside a single vehicle while actually in Portland that uses gas. The bus uses diesel, which is almost as bad, but in Portland they do have about a 15% mix of biodiesel for cleaner burn. This, in my opinion could still be improved also. After the tasty breakfast I bid farewell and headed downtown for some hacking before heading back over to meet the Geoloqi Team for lunch.

Lunch, Kyle, Aaron, and a whole lot of Architecture Ideas

At lunch, I rode up to PIE, tied up the steed, and headed to lunch with Aaron and Kyle. There we had a good time chatting about EBS Volumes at AWS (Amazon Web Services), how MongoDB or other NoSQL Solution could solve some of their pending data storage and query concerns, and other architectural issues. It always strikes me curious, how each field has slightly different needs that are just different enough, to prevent a cookie cutter approach. After lunch and convo, we headed back and just hung out getting some coding done.

Hanging Out at PIE, Sad to Leave but the flanged wheels call out

As I hung out there, I was sad I would be heading out in a short time. However it had been an awesome, entertaining, educational, kick ass time hanging out with the Geoloqi Team. Making new friends is always cool, making new smart friends has an added benefit.  🙂  Eventually the flanged wheels called and off into the sunset aboard the Amtrak Cascades #508.

That was last weekend so this weekend I intend to watch the grass grow. 😉  Cheers!