Adam & Krishan Got Me Motivated Today… to toss the trash conversations

I was speaking with Krishan Subramanian (@krishnan) and Adam Seligman (@adamse) today. I love talking to these guys. They’re both smart, intelligent and upbeat guys. They see the positive things we’re all working toward and accomplishing in the technology space, specifically around PaaS, Cloud Computing and around the cultural implications of stronger technology communities, involvement of individuals. We all can see the positives, of how the industry is moving forward so that corporations aren’t the only enablers that are juxtaposed against developers or consumers but instead act to serve consumers based on the progress that individuals make themselves. There’s so much to do and so much progress to be made, the venders can simply follow the community and step up to provide points of leadership.

Absolutely great talking with these guys…

On that topic, what is it that we discussed that has me so motivated? Well there’s a few things that I’m done with and I’m going to make every effort to just throw away the trash. Here’s a few of these things that we discussed and I challenge everybody out there, drop the trash talk and let’s move forward because there is a LOT of awesome things to accomplish. Here’s the two things I’m just dropping…  cold. No reason to discuss them anymore.

  • Toss the language and framework religious wars. It is far simpler than it is sometimes perceived. We have a polyglot industry now where we can easily use the right tool for the job, the right framework, or the language that handles our particular domain the best. There is literally no reason to argue about this anymore. Of course we can talk semantics, debate best use cases, and of course we’ll talk accomplishments and what various things do well. That’s exactly what the focus should be on, not the harping on my X is better than your Y nonsense.
  • The culture war is basically over. Sure there are the hold outs that haven’t gotten a clue yet. But it’s an open source world at this point. Even the dreaded and horrible Oracle has generally conceded this and is frantically waving its marketing arms around trying to get attention. But at the core, mysql, java and the other things that they’ve purchased they’re keeping alive. They’re active participants in the community now, albeit in a somewhat strange way. Considering that even Oracle, Microsoft, Apple and so many others contribute back to the open source community in massive ways, that war can be considered won. Victory, the community and every individual in that community!
  • Lockin is basically dead. The technological reasons to lock in are gone, seriously. There’s some issues around data gravity that are to be overcome, but that’s where a solid architecture (see below) comes in. Anything you need can be contributed to and derived from the development community. Get involved and figure out how technology can be a major piece of your business in a positive way. If you design something poorly, lock in becomes a huge issue. Use the rights tools, don’t get into binding contracts, because in the polyglot world we’re in now there’s no reason to be permanently locked in to anything. Be flexible, be where you need to be, and make those decisions based on the community, your support systems, and your business partners. Don’t tie yourself to vendors unless there is mutual reasons to do exactly that. Lock in is a dead conversation, just don’t, time to move on.

So what are the key conversations today?

  • Ecosystem Architecture – If you’re deploying to AWS, Heroku, Tier 3, AppFog or Windows Azure it all boils down to something very specific that will make or break you. Your architecture. This is where the real value add in the cloud & respective systems are, but there are many discussions and many elements of the technology to understand. This is a fundamentally key conversation topic in the industry today. Pick this one up and drop the other trash.
  • Movement & Data Gravity – How do you access your data, how do you store it, where and how do you derive insight from that data? This is one of the topics that came up in our discusssion and it is huge. The entire computer industry basically exists for the reason of insight. What should we eat today, how do I shift my investments, how is my development team doing, what’s the status of my house being built, where is my family today and can I contact them! All of these things are insights we derive from computer systems. These are the fundamental core reason that computers exist. As an industry we’re finally getting to a point were we can get some pretty solid insightful, intelligent and useful information from our systems. The conversation however continues, there is so much more we can still achieve. So again, drop the wasteful convo and jump on board the conversations about data, information and insights!
  • Community Involvement – I’ve left the key topic for last. This is huge, companies have to be involved today. Companies aren’t dictating progress but instead the community is leading as it should. The community is providing a path for companies to follow or lead, but the community, the individuals are the ones that are seen and known to be innovating. This is so simple it’s wild that it is only now becoming a known reality – companies don’t innovate, people do. Companies don’t involve, people do. Individuals are the drivers of companies, the drivers of Governments, they’re the ones driving innovation and progress. The focus should now and should have always been on the individuals and what they’re working toward to accomplish. So get involved, get the companies involved as a whole and keep the semantic ideal of individuals and the progress they can make core to the way you think of communities. The idea of the “company” innovating is silly, let’s talk and build community with the people that are working around and innovating with these technologies.

Of course there are more, I’d love to hear your take on what the conversations of today should be about. What do we need to resolve? How do we improve our lives, our work and the efforts we’re working toward on a day to day basis?

OSCON 2012 => Monday Ignited, Tuesday OpenShift Session ++

OSCON 2012 Opening Doors
OSCON 2012 Opening Doors

Today kicked off with a monster Reggie Biscuit from Pine State Biscuits. If you live in Portland or are visiting just for the conference and like soul food of the tastiest nature, check it out.

My first day ended up not as planned. Instead of attending sessions I ended up meeting a number of people and discussing the future of Cloud Foundry, where it is headed and in general, the direction of PaaS Technologies. I met Andy Piper (@andypiper) and Raja Rao (@rajaraodv) and discussed Node.js and Cloud Foundry specifically. We then dove into trying out some of the CLI features in the latest VMC builds.

After that I met Mark Atwood for a brief few moments. As always, Mark’s a friendly guy, and might I add pretty smart too. I’ve enjoyed our conversations in the past during the AWS Meetups in Seattle too. He’s always got interesting thoughts and perspectives on open source, linux and now on PaaS Technology too. Ya see, Mark has become the Red Hat OpenShift Advocate. It’s a perfect fit, as Mark loves this stuff!

Ignite!  ….or Bailey’s for more tech talk and #nodejs discussions.

After all of this I almost, and had planned, to attend the Ignite Presentations after OSCON, but instead ended up heading over to talk with some Node.js & JavaScript Coders about some of our latest efforts around getting concrete performance benchmarks for Node.js and some of the various libraries in use.

That brings us to Tuesday…

Tuesday brought forth a super busy, exciting and educational day. I headed straight to OSCON for the OpenShift Workshop with Mark Atwood & Krishna Raman (Mark’s Twitter is @fallenpegasus). The session was great and they hit on a lot of hugely important topics. Let’s go through each of these real quick, as this is where more than just the tech bits were involved.

OpenShift is Truly Open Source Software

Mark & Krishna made a strong point to outline and show how and why OpenShift is open source. For instance, they are following the original precepts of a particular guy named Stallman (http://stallman.org/ if you’re unfamiliar with Richard, he’s the guy who got GNU happening and a major originating advocate of open source software). Mark pointed out that Red Hat is open to keeping the governance of the project completely open, would even cede it to another governance entity when it grows beyond just Red Hat, and they intend to keep all the communication very open and public, as intended with open source projects.

Another thing that Mark and Krishna pointed out, was that the software is on github, and not just in a psuedo “read-only” state, but in an actively useful way, with interactions and tracking on github. The point being that there is no hidden processing of the code or private repositories of code. What you see is what you get in this regard. In addition all of the code that is available, is the exact code that Red Hat is using to actually host the OpenShift PaaS that they provide for testing and demoes. Simply, it is all there available in a completely open, contribution based, interactive, and publicly accessible way.

So far this is even more evident if you do a google search or even trace the twitter activity. They definitely have the search engines working in their favor with all of that searchable content publicly available.

Cloud Foundry & OpenShift

I’m still a huge Cloud Foundry fan, the team and effort and product is getting to be in pretty solid shape. However OpenShift is definitely here to provide some competitive interest. In the end, I’m a fan of PaaS Technology and what it can do for software developers and what we’re trying to achieve on a daily basis. The potential of PaaS to improve, dramatically, the software development lifecycle while reducing the overhead cost is pretty huge. The key is, people have to be aware of and start utilizing the technology well. Just implementing it and saying “I have PaaS” is one thing, but improving your software development process to use PaaS technologies well is where the seriously powerful advantage is.

I’m looking forward to seeing the market unfold and start making progress with these technologies. On that note, day #1 and #2 are finished for me. Cheers!

OS Bridge 2012 :: Day #1 :: How I Got Here…

All OS Bridge Attendees
The bikes of OS Bridge Attendees, we’re cool like that… (Click for full size image)

Today was the kick off of OS Bridge 2012. I jumped aboard my trusty steed (bicycle) for the mighty 6 block ride to the conference. Yeah, I could have just walked, but I just felt like getting their the fastest way possible. After arriving I was immediately faced with two great greetings. The first one went like this.

The “Do you do .NET still” Introduction

Hey Adron, how are you?

I’m good, and you?

Doing well, hey…  so are you still doing that .NET stuff?

OS Bridge 2012
OS Bridge 2012

Funny how after all this time of using JavaScript, working with Node.js, Ruby, deploying with Sinatra and Rails and even tweaking around with Objective-C that I still get this question. I’ve branched out, I’m not a limited, mono-language, mort Microsoft programmer. Technically I never have been, I’ve always had a passion for things besides the Microsoft ‘just feed me’ stack. It just happened to pay my bills for a while. What is really happening here though, to paraphrase, is someone asking “so are you working with any interesting problems these days?

The sad fact that most programmers, even people who code with .NET everyday, feel and observe almost nothing interesting happening in the .NET stack these days. Generally almost no startups use it. The vast majority of scientists don’t. Overall there isn’t much of it in colleges either these days. All for a deluge of reasons.

Rest assured, I’ve observed this, and this is merely a single reason that I commonly use many other languages. This is the reason I never get mad when people ask me this. I understand the preloaded context, it’s ok. Microsoft & their communities did this to the .NET stack, it’s unfortunate.

The simple truth is that many companies trying to solve hard problems, do genomic research, figure out how to launch rockets, and other really exciting interesting problems use almost anything except Microsoft’s stack. So yes, I’m doing .NET stuff, but I do a ton of other things based on what the job requires. I’m a firm believer of using the right tool for the job, and sometimes that is indeed .NET. So what was my answer?

Yeah, still doing .NET. Along with Node.js with JavaScript, Ruby, working on learning some Scala, how to test better in Javascript and Ruby, and even trying to schedule myself some time to jump into Go!

Yup, I was more prepared for this question than I was in the past.

The next introduction that came at me was much simpler.

Hey Adron, how goes things?

Things go well

What is it you do these days? I know you’re working with Iron Foundry and blog with New Relic sometimes, but what do you actually do besides that?

I went on to explain my rather exhaustive range of work I do. Ranging from the coding to the organizational community things. All good stuff that led our conversation down different routes.

Both of these introductions went well and I dig both of them, albeit I need a pre-printed response to the .NET question. Breakfast muffins were great and then the several hundred people at the conference went to find seats in the main sanctuary room for the keynote.

The Keynote

A few key quotes from the keynote by Sumana Harihareswara (@brainwane), via Twitter.

@demew#osb12 is already off to a ridiculous start because of the KEYNOTE ORGANIST” Really?

to change open source girls have to be able to say about the local open source event “its okay mom, there will be other girls there”#osb12

“Help these kids fight their parents!” #osb12

The summary of the keynote is one that should resound loudly in America,

…being free is better than being safe…”

Session Notes

NGINX Talk
NGINX Talk w/ Cliff Wells

Nginx, Overview and Deployment

The first session I attended was the session on Nginx by Cliff Wells (@cliff_wells). A few notes from this session:

  • NGINX is the #2 web server.  (Really? I figured it was Apache and then… hmmm, maybe this IS true.)
  • Get a static file serving boost from NGINX, ala, don’t make Node.js serve your static files. (Yup, know this all too well now.)
  • NGINX cannot spawn processes and cannot block.  (This is not Node.js, which is a good thing, it does the other work.)

There were a few other bits, but those were the main takeaways. The main reason I jumped into this session was because I wanted a more context around what NGINX is exactly. I got some of this, which is handy to know since this server is used in so many projects I’ve been working recently. Specifically it is readily used in Cloud Foundry.

How We Went Remote

This talk seemed like a keen match to a lot of the work I do. I’m remote for about 90% or more of my work these days. I code remotely, work up blog entries, articles, media calls, and related communications all from locations that are remote from their point of presence.

…errr, well, I tried to attend this one. Some work coding priorities trumped the evening session so I had to jet out of the conference. I did, as I coded away, kept an eye on all the tweets coming from the conference. It sounded like a great session. I have, unto the topic, a whole lot more to add. So maybe I can just spawn this into a blog entry at some point.

With that, have no fear, I’ll be back tomorrow for day #2 & the respective coverage of the event!

An Open Source Software ala VMware Guide :: A.K.A. Get Clarity on Contributing to the CloudFoundry Project!

I’ve jumped into committing some source code to the Cloud Foundry Project and I wanted to document the process so far. The Cloud Foundry project is a little trickier than most open source projects, because there are a host of tools around the process. As that is the case, it isn’t a simple github repository with easy to push pull requests and other flows. Instead, there’s a trick to it all and that’s what this blog entry is about. These observations about getting a first pull request submitted:

  • The instructions, sort of, are located here for contributions: http://cloudfoundry.org/contribute There however seems to be some key parts missing from these (or I didn’t find them on any of the immediate links). The main one being any connection, information, or workflow around the internal git repository that they have setup. That should be more prominently displayed. Can I submit a pull request for the contributions page?  🙂
  • The github repository. I won’t beat around the bush on this particular observation. The github repository is almost entirely useless. You can’t send pull requests to it, nobody communicates around it, and all the existing pull requests are dead. It is a read-only repo of the internal git repo. So don’t look there for any key pieces of information – check the Google Groups and other information I’ve linked in this blog entry.
  • The real code base is in an internal git repository held by VMware that has a gerrit (code review) + Jenkins (awesome build server). This is actually a pretty slick setup. Albeit I admit this is absolutely more work for contributors. But when you got a hot potato you gotta pass around the pain (is that even an colloquialism? Probably not, so I just made it up).
  • There are some very useful google groups that you should sign up for if you intend to contribute code to Cloud Foundry.  This is where all the super smart and also friendly Cloud Foundry core team hang out. Even if you aren’t going to commit code, go sign up anyway. You’ll be able to get a lot of very useful information from these guys related to setting up, using, and deploying Cloud Foundry. http://groups.google.com/a/cloudfoundry.org/groups/dir
  • They also ask you to sign a document related to contributions located here: http://cloudfoundry.org/individualcontribution.pdf basically promising you didn’t steal someone else’s code and that you won’t sue VMware for making this code public.
  • The JIRA site (another account login you’ll need to setup, it is worth it to, so get one if you intend to commit code. Otherwise if you just want to lurk then don’t really worry about the JIRA site too much.)
  • Once you are logged in to the Google Groups you can hit this link: https://groups.google.com/a/cloudfoundry.org/group/vcap-dev/browse_thread/thread/af205159a17ec358 which actually has the best instructions I’ve found on getting a good clone and submitting a pull request via the gerrit command line tool.
  • Another more immediate way to get help is to bounce into IRC via freenode and join the #cloudfoundry channel. The core devs plus a number of other coders hang out in that room.

Getting it Cloned

Per the instructions above, the first thing you’ll need is the code base. You’ll need to make sure you have a gerrit account first and that you’ve submitted your SSH public keys to gain access. Then get the vcap code base via the gerrit CLI:

[sourcecode language=”bash”]
$ sudo gem install gerrit-cli
Password:
Successfully installed gerrit-cli-0.0.11 gem installed
Installing ri documentation for gerrit-cli-0.0.1…
Installing RDoc documentation for gerrit-cli-0.0.1…
$
[/sourcecode]

I left the results of the command in just for familiarities sake. The next command is to clone the repo gerrit style.

[sourcecode language=”bash”]
$ gerrit clone ssh://adron@reviews.cloudfoundry.org:29418/vcap
Cloning into ‘vcap’…remote:
Counting objects: 12253, doneremote: Finding sources: 100% (12253/12253)Receiving objects: 89% (10961/12253), Receiving objects: 89% (10961/12253), Receiving objects: 89% (10961/12253), Receiving objects: 89% (10961/12253), Receiving objects: 89% (10961/12253), Receiving objects: 89% (10961/12253), 247.05Receiving objects: 94% (11631/12
Receiving objects: 94% (11631/12253), Receiving objects: 94% (11631/12253), Receiving objects: 94% (11631/12253), Receiving objects: 94% (11631/12253), 548.27 MiB | 105
remote: Total 12253 (delta 6438), reused 11765 (delta 6438)
Receiving objects: 100% (12253/12253), 773.92 MiB | 311 KiB/s, done.

Resolving deltas: 100% (6438/6438), done.

Installing commit-msg hooks into ‘vcap/.git/hooks’.commit-msg
100% 2331 2.3KB/s 00:00

Installing tracked git hooks:

$[/sourcecode]

NOTE: This will likely take a long while for the vcap repo. It took me about 45 minutes to clone. That’s based on two seperate machines on two different fast internet connections with two different operating systems.  So just be patient.

Then just cd vcap into the working directory and create your changes. Once the changes are committed then pull the latest, merging again if needed, and then push the pull request via the following command.

[sourcecode language=”bash”]
$ gerrit push[/sourcecode]

Once that is done your pull request will be put into the continuous integration build queue. Then someone from the core team will up vote your code or deny it with reasons. You can check out the status:

The OSS-Docs are located on Github, check those out here. They’re not super complete, but the information they do have in them is pretty solid. So check these out while hacking:  https://github.com/cloudfoundry/oss-docs.

In my next write up about my efforts with Cloud Foundry, I’ll dive into what I’m pushing and what for. So keep reading, I’ll be back with more good bits.

Learn About TDD, Cloud Foundry, OSS, and OS Bridge

I’ll be attending OS Bridge (you should attend too, it’s only a few hundred bucks!!) this year. Hopefully I’ll be presenting also but I need everybody’s help! If you would, favorite (with the star) my presentations/workshops. Also leave a note of feedback related to how you’d dig seeing me present!  (I’ll owe ya a beer, feel free to call me on it at OS Bridge and the round is on me!)

Presentation #1:  Putting It Together, Letting Apps Lead the Cycle, TDD in the Cloud (Click Here to Favorite)

I’ll be taking a deep dive into cloud architectures and how to build applications, generally at the PaaS level mixed with a little IaaS, to get people rolling with high velocity, high quality, and without the need to worry about the little things.

Description

Want to learn about why PaaS and cloud computing is altering the very fabric of the development cycle? Want to know how to dive in with some abstractions and behavioral practices on the cloud, using PaaS, to bring apps, prototypes, and UX to market faster than anyone else? I’ll be touching on all of these things during this long form session. The sessions will step through these core concepts and ideas.

  • How to get up and running using cloud computing technologies and specifically to take advantage of PaaS providers.
  • How to bring UX designs and prototypes into a usable state even faster.
  • How to bridge that gap between development, test, QA, user acceptance testing, staging, and production (or whatever environments…) without blowing the bank.
  • How to scale, once the cycle is in place and continuous deployment is ready.

Presentation #2: Removing the Operating System Barrier with Platform as a Service (Click Here to Favorite)

This session will cover the major advances of platform as a service technology, what’s available in the OSS space to enable faster, easier, higher quality software development cycles in the cloud. The session will complete with a demo of PAAS technology in use, deploying a highly scalable, distributed & dispersed web application.

Description

This presentation will show why PAAS is the way of the future for application deployments. Enterprise, small business, and especially startups will want to learn more about the available PAAS OSS technology and also learn about what is coming in the near future.

This presentation will build upon my New Relic Blog Series on “Removing the Operating System Barrier with Platform as a Service”: