The Rails 2013 Conference kicked off for me, with a short bike ride through town to the conference center. The Portland conference center is one of the most connected conference centers I’ve seen; light rail, streetcar, bus, bicycle boulevards, trails & of course pedestrian access is all available. I personally have no idea if you can drive to it, but I hear there is parking & such for drivers.
Rails Conf however clearly places itself in the category of a conference of people that give a shit! This is evident in so many things among the community, from the inclusive nature creating one of the most diverse groups of developers to the fact they handed out 7 day transit passes upon picking up your Rails Conf Pass!
The keynote was by DHH (obviously right?). He laid out where the Rails stack is, some roadmap topics & drew out how much the community had grown. Overall, Rails is now in the state of maintain and grow the ideal. Considering its inclusive nature I hope to see it continue to grow and to increase options out there for people getting into software development.
I also met a number of people while at the conference. One person I ran into again was Travis, who lives out yonder in Jacksonville, Florida and works with Hashrocket. Travis & I, besides the pure metal, have Jacksonville as common stomping ground. Last year I’d met him while the Hash Rocket Crew were in town. We discussed Portland, where to go and how to get there, plus what Hashrocket has been up to in regards to use around Mongo, other databases and how Ruby on Rails was treating them. The conclusion, all good on the dev front!
One of these days though, the Hashrocket crew is just gonna have to move to Portland. Sorry Jacksonville, we’ll visit one day. 😉
For the later half of the conferene I actually dove out and headed down for some client discussions in the country of Southern California. Nathan Aschbacher headed up Basho attendance at the conference from this point on. Which reminds me, I’ve gotta get a sitrep with Nathan…
RICON East (May 13th & 14th)
Ok, so I didn’t actually attend RICON East (sad face), I had far too many things to handle over here in Portlandia – but I watched over 1/3rd of the talks via the 1080p live stream. The basic idea of the RICON Conferences, is a conference series focused on distributed systems. Riak is of course a distributed database, falling into that category, but RICON is by no means merely about Riak at all. At RICON the talks range from competing products to acedemic heavy hitting talks about how, where and why distributed systems are the future of computing. They may touch on things you may be familiar with such as;
PaaS (Platform as a Service)
Existing databases and how they may fit into the fabric of distributed systems (such as Postgresql)
How to scale distributed across AWS Cloud Services, Azure or other cloud providers
As the videos are posted online I’ll be providing some blog entries around the talks. It will however be extremely difficult to choose the first to review, just as RICON back in October of 2012, every single talk was far above the modicum of the median!
Two immediate two talks that stand out was Christopher Meiklejohn’s @cmeik talk, doing a bit o’ proofs and all, in realtime off the cuff and all. It was merely a 5 minute lightnight talk, but holy shit this guy can roll through and hand off intelligence via a talk so fast in blew my mind!
The other talk was Kyle’s, AKA @aphry, who went through network partitions with databases. Basically destroying any comfort you might have with your database being effective at getting reads in a partition event. Kyle knows his stuff, that is without doubt.
There are many others, so subscribe keep reading and I’ll be posting them in the coming weeks.
Node PDX 2013 (May 16th & 17th)
Holy moley we did it, again! Thanks to EVERYBODY out there in the community for helping us pull together another kick ass Node PDX event! That’s two years in a row now! My fellow cohort of Troy Howard @thoward37 and Luc Perkins @lucperkins had hustled like some crazed worker bees to get everything together and ready – as always a lot always comes together the last minute and we don’t get a wink of sleep until its all done and everybody has had a good time!
Polyglot Conference was held in Vancouver again this year, with clear intent to expand to Portland and Seattle in the coming year or two. I’m super stoked about this and will definitely be looking to help out – if you’re interested in helping let me know and I’ll get you in contact with the entire crew that’s been handling things so far!
The biggest problem with this conference, is that it’s technically only one day. I hope that we can extend it to two days for next year – and hopefully even have the Seattle and Portland branches go with an extended two day itenerary.
This year the break out sessions that that I attended included “Dev Tools”, “How to Be a Better Programmer”, “Go (Language) Noises”, other great sessions and I threw down a session of my own on “Distributed Systems”. Overall, great time and great sessions! I had a blast and am looking forward to next year.
By the way, I’m not sure if I’ve mentioned this at the beginning of this blog entry, but this is only THE BEGINNING OF SUMMER IN CASCADIA! I’ll have more coverage of these events and others coming up, the roadmap includes OS Bridge (where I’m also speaking) and Portland’s notorious OSCON.
Until the next conference, keep hacking on that next bad ass piece of software, cheers!
…and the fifth iteration of Node PDX Introductions!
Zach Bobb is presenting…
Building a Computer In Your Browser
Zach is a mobile engineer with GlobeSherpa working hard to bring you the app that will let you buy TriMet tickets on your phone.
The talk will start by laying out some of the motivation behind the project and then demonstrate some of the components people will build through the tutorials: logic gates, adder circuits, displays, etc. The end of the talk will demo a prototype of the vN51.
Paul Jungwirth is presenting…
Handling Errors with Cluster and Domains
Paul will jump into,
“Node’s callback pattern makes error handling difficult: throwing an exception kills the entire node process, terminating all current requests, and every callback initiates a new stack, so stacktraces are terse and don’t indicate how you got where you died. You can solve these problems using some newer features of Node called clusters and domains. This talk with explore using these tools for better error handling.“
Forrest Norvell is presenting…
Do as I say, not as I do: Node in the real world
Building a Multiplayer World for Pillow Pets
Charlie is Co-founder of Modulus, a premier Node.js hosting solution. He has spent the last six-years working in the software, where he has created over a dozen production websites and applications for many global brands.
He is also a core contributor on Pulse game engine and one of members of the team who developed Pillow Pets World.
The talk will dive into the design goals, architecture and end result of creating this massive virtual world. Come see how Pulse (a HTML5 game engine) and Node.js were combined to create a fast, expandable, mobile ready world. Targeting a game at 10,000,000 people? Then come and find out how Pillow Pets World was built. Pillow Pets World is a virtual world built for millions of kids. Scalability and performance were aspects that were included from the start.
The technologies included in this talk are:
Pulse | HTML5 Game Engine Node.js | Scalable small servers Socket.io | Real-time communication using Web sockets Redis | Small in memory storage used for pub/sub communication between servers
Adam is a Portland native (straight out of the Simpsons) with a penchant for software and systems integration. 8-bit gamer, seasoned professional, perpertual noob. Specialization is for insects.
Learn how easy it is to create your own monitoring system! Hobbyist components and a rich ‘maker’ community puts advanced system designs well within the reach of your average software wonk. Stop planning and start building!
Our case study is ‘GroMon’, a solution for monitoring a tiny indoor lettuce garden. Our wireless sensor keeps track of temperature and humidity, if the plants get too hot or too cold then we are notified via text message.
We will discuss the design goals and architecture, as well as component selection, prototyping and debugging steps. With a little bit of programming skill and patience, anyone can build this network. Learn how to easily extend this solution for your own use.
Our stack is Node.js running on a Raspberry Pi. We connect over Bluetooth to an Arduino hosting a single sensor. All components can be purchased off-the-shelf, no soldering is required and the total cost is around $80. Code and bill of materials is available on GitHub, let’s hack!
Aron Racho is presenting…
Jive Purposeful Places SDK – A NodeJS Bromance
Ok, get ready, this description for this sessions is HUGE!
Jive Software’s latest cloud release enables 3rd party developers to easily push data marshalled from external systems of record such as Salesforce into Jive. Our aim is to publish a developer framework and API which makes it drop-dead simple — and fun — to get up-and-going from scratch, or easily integrate into an existing framework. We chose NodeJS precisely for those reasons:
High developer adoption
Best-in-class IDE support (IntelliJ for example)
Native support for REST and HTTP
Excellent package management system (NPM == maven the Good Parts)
Tons of great libraries
Amazing documentation, well organized, very easy to get started instantly
Our framework is built on Express, and is designed to be programmed by “convention: fill in the blanks with logic specific to your application, and as long as you’ve satisfied the contract, the framework automatically:
Wires up routes required for configuring your integration
Notifies your listeners for integration life cycle events (integration created; destroyed; updated, etc.)
Executes recurrent tasks you’ve scheduled
Handles persistence of required objects. We have support for 3 types of persistence out of the box — in-memory, file, and MondoDB.
The framework is designed for developers who want to as quickly as possible start integrating a 3rd party service with Jive, with minimum setup.
For those interested in integrating Jive into an existing NodeJS Express app, we are going to make the underlying API available to developers, allowing them finer grained control over the setup of their integration. This API will be the same one underlying the mechanics of the aforementioned framework.
For my presentation, I will be describe how we used NodeJS as the basis for this framework and API. Please note at the time of this proposal, we’ve created the framework, and are now in the process of refining the API so that it can be used independently of the framework.
Christopher Meiklejohn is presenting…
An Introduction to Functional Reactive Programming
Chris also knows a thing or three about this show… called The Wire… he could probably speak entirely in quotes solely from The Wire and still make complete sense. So throw a quote out, I bet he’ll catch it.
There is no doubt that todays web applications continue to grow in adoption, replacing their desktop counterparts in all areas of computation. Essential to their growth is their ability to provide near-native performance and rich user experiences. As these applications grow in essential complexity, they also grow in accidental complexity due to the imperative callback processing style found in most web applications. The asynchronous nature of most of these applications also further compounds the issues due to guarantees around message ordering, and a level of indirection required in callbacks handling events.
Max Ogden is presenting…
Max used to live here in Portland, and at some point defected to work on noble causes with Code for America. Since then he’s been an Oaktown Coder (Oakland, the other city near San Francisco).
Brock Whitten is presenting…
Mighty Messaging Patterns
Best know for having co-created PhoneGap, Brock went on to work at Joyent where he created the Public API for the beloved (and now sunset) No.de Platform. He’s now working on the Harp Platform where he’s worked with a team to have created a dead simple publishing platform that uses Dropbox as its deployment mechanism. Much has been learned, he’s read to share.
In this talk, I will start with a crash course on the basic messaging patterns push/pull, pub/sub, and request/reply and then show a real example of how we have combined these patterns to build a custom message broker that we have used to build a fully distributed and modular architecture for the Harp Platform. I will share details about what we have learned and common pitfalls to avoid when building a messaging system for your needs.
Basic outline for the talk:
how messaging can be useful
crash course on the basic message patterns
how to get started with zeromq/axon
common pitfalls when in production
proven trade secrets we have learned
By the end of the talk, my hope is that everyone will have a new appreciation for what can be achieved with massaging and will know where to begin when attempting to integrate messaging into their next project. I feel this aspect of building modern web applications is often overlooked and viable techniques need to be shared and discussed.”
For a dose of Scott, check out how to scale to infinity by doing NOTHING!
Join Hanselman as he digs into the open source SDKs of Windows Azure. Let’s access Azure from the command line and deploy and redeploy with Git. We’ll fire up Linux VMs, setup Mongo and run node.js apps in the cloud. We’ll look at things like SendGrid and New Relic. The future of the cloud is open and it’s a hybrid. This very technical session will cover Windows and Mac, .NET as well as pinching pennies in the cloud.
Tracy Abrahms is presenting…
Punching Rocks: my intimate adventure with rock climbing and becoming a programmer
Tracy tells a story, “A funny thing happened at the rock gym… I kept running into programmers. Rock climbing is a constant challenge. Physical? Hardly. Tired muscles is a concern once you’re two pitches up and can’t figure out the next move. I’m afraid of heights! The psychological and mental tenacity required to complete a wall feels eerily similar to the daily challenges of the Programmer. You will commit yourself to situations that you pretty much HAVE to find a way out of. Sound familiar?
Malcom Gladwell’s 10,000 hours–I’m not that far in. How are people learning to program nowadays? MOOCs, tutorials, workshops, communities(meetup.com), books, standard CS degrees(what of non-tech degrees?), internships, apprenticeships, code schools. What am I doing? What have I done? How many callouses have I build in the process? Experiences shared from my own perspective and others I have met on my journey have shown me a number of great ways to help move forward those willing to take up the challenge.
Finally, what can I do, along with knowledgeable and helpful Node.js programmers, to build the knowledge base and accessibility into the community? How do I get programmers hooked? And how can I convince all of these brainiacs to get out and punch a few rocks?”
Matthew Lyon is presenting…
Let’s Make Music
J Chris Anderson presenting…
Hands On Realtime Text Analytics
J Chris just recently returned to Portland because of many different reasons after hacking in the San Francisco area. If you know what livable streets are (re: Bike Portland and if you intend to stay and live in Portland, you probably should get in on this, livable streets are too good to merely pass up), you’ll want to keep tabs on J Chris’ efforts ongoing, I definitely will be! J Chris also refers to himself as a hacker dad, couchbase cofounder & mobile architect.
With “Hands on Realtime Text Analytics” J Chris will present to us as described:
“A common problem in large scale computing, is coordinating workers when they can be scattered across compute nodes. For workloads like this, atomic operators like increment and decrement reduce contention between distributed processes.
In this talk I’ll show a full text analysis tool which ranks words in the Twitter firehose. By storing each token in a key based on its characteristics, we can provide word rankings both globally, as well as over time and space.
We’ll show the running application, and take a tour through the code, as well as discuss cluster sizing and how it is impacted by variations in the input data stream.
For instance a tweet in English from San Francisco might say “Go Giants” so counters for 2012:go and usa-sf:2012-07:giants (among a few dozen others) are incremented. Even using memory like this, the counts from a full corpus of English text would only take a few gigabytes to hold, making this architecture more efficient than a traditional index-and-rollup approach.”