What really is Open Source Software and what’s this community nonsense they ask…

Open Source Software (OSS), Why Some Fail At It

OSS has won the war. It has been over for years now. Microsoft has ceded, Oracle, VMware and many others have stepped up and attempted to embrace the open source community. Sometimes they’ve been successful, sometimes they haven’t. They’re slowly changing their models to play well with that of the open source software model. Sure, some software is kept closed, but that software in large part is becoming more and more irrelevant while open source efforts are becoming the forefront of technological progress.

What exactly is open source, besides just the opening up of code for others to download? Open source covers a vastly larger ideal than merely providing code for download. A case in point, has been the learning phase Microsoft has gone through. Microsoft, as a company, used to attempt to dictate to its consumer & developer base standards and practices that the company had deemed necessary or in some cases merely a good idea.

Microsoft failed at this miserably over the last decade. Time and time again an open source project would start and Microsoft would create a duplicate library – sometimes directly taking the OSS Project exactly functionality, sometimes they’d merely duplicate it with a basic understanding. Everything from Entity Framework duplicating the functionality of the dozens of ORMs before it. Basically stabbing those efforts in the back instead of being part of the community, Microsoft would remove itself and attempt to subjugate the community efforts.

It back fired over and over and over…

Oracle did something different, yet still blindly stupid. They purchased entire OSS Projects from mySQL to Java. In each case they’ve tainted the efforts significantly by attempting to make these products encourage an unspoken lock in to their proprietary tooling all while litigating (re suing). Their attempt to patent (another issue we can discuss later) the most absurd features and functionality, akin to patenting the breathing process in people! In addition they’ve tried to set legal precedent for things as simple as a URI end point and other notions. Again, something that hasn’t gone over well in the software development world. With the current result being a growing backlash against Oracle. To top all that off, their patent cases have been far worse than even Apple’s Samsung debacle. Oracle, has taken the crown for stabbing the development community, and especially the OSS Community in the back. Multiple wounds too, not just once. They’re doing it over and over as I write this.

Others have continued to make this mistake. They’re starting to suffer for it, and well justified that they do. To stab the community is more than just merely disrespecting one or two developers. It is desecrating the entire community’s efforts, the individuals and their thoughts, ideas, creations and more. It is a slap in the face in so many ways.

Some are starting to do it right, albeit slowly…

Some companies have started to get their act together. One company that is learning right now, slowly but steadily and confidently (they have a good team working on this) is VMware. With their introduction of Cloud Foundry, some could argue this, but they have generally and are trying diligently to open up and be inclusive in the community around their Cloud Foundry Product. Yes, I might have a slightly biased view since I build products for Cloud Foundry with the Iron Foundry Organization at Tier 3, I talk to the teams & individuals at VMware and they, with all their might, intend and do the best they can. As in almost all cases, as long as management keeps everything in their heads clear, they’ll maintain a great project and the future is bright.

Microsoft is another company, with tons of closed things, many attempts at opening products, and is finally starting to get it. They’re starting to be part of the community instead of trying to dictate to it. The windows azure team directly involves itself with jQuery, Node.js and other projects these days. They actively put forth a good foot and have opened up Web API and other web application frameworks and pieces, allowing for pull requests and openly having conversations int he public for full view and inclusion with the community.

So What Really Is Open Source?

Open source software itself, just the code, is simple. But it is assumed and written into the all legal licenses that are included to protect the software from theft and closing by errant companies & individuals. Open source software is code, used as examples or as production web sites is software that is available freely to others to learn from, fix, change, or otherwise modify. It often excludes sharing and using the code with closed source environments or redistributing with closed source products – because OSS efforts do not want to encourage the bad behavior and errant ideals in closed source software by contributing to it.

Building OSS includes a very specific idealism. One doesn’t just throw something into the code, one encourages and builds a culture of openness and being free in thought when working with and contributing to the code bases. The OSS Community is about sharing ideals between individuals to accelerate learning, expand the capabilities of the community as a whole, and push forward progress and development. To summarize with a standard quote, “open source software is about freedom”, and it truly is.

So far, it’s working in a huge way. Some simple successes that have been massive…

OSS Victories

Linux & FreeBSD pretty much hosts the Internet. From Facebook to Google to Amazon they all use some type of Linux variants. Estimates range from 60% to 93% of the Internet & Super Computing is hosted on UNIX machines of the Linux or FreeBSD variety. The notorious Microsoft Windows Server only claims 0.4% of the super computer space and about 30-37% of the Internet Server space. Summarized, the Internet runs on UNIX and specifically on variances of Linux.

When it comes to the web, not only is the majority of the web hosted on systems built by the open source community, but the web applications hosted and run on those systems are open source. The most widely used framework in the world is PHP. One of the biggest up and comers for serving websites and providing interactive web applications is Node.js, with Ruby on Rails being a stalwart for speedy prototyping and production application for thousands of businesses.

Mysql & postgresql round out two of the most heavily utilized databases in existence. Postgresql has grown from zero code to a massively capable database, regularly one-upping the stalwarts at Oracle, Microsoft or other database makers. Mysql has become the go to database for those starting a website or collecting 60 billion rows of data a day, such as New Relic. Many successful businesses have turned these databases into absolutely powerhouses that truly eclipse the need to expend the revenue on databases like SQL Server or Oracles Databases.

NoSQL has come into existence and exists today because of the community. Not everyone has a big data problem and a need for a NoSQL database, or what is sometimes called Not Only SQL these days. The open source community stepped up to build out solutions where relational databases and their history of vertically scaling falls down for modern web applications that run at larger than normal scale. Companies like Facebook, Twitter and others have helped to bring people into this fold and bring more great minds developing the open source that powers these things. This entire movement has been a huge win for the Internet and increased functionality – and the mere ability for many of the large sites to continue to exist at scale (think LinkedIn, Netflix, Facebook, etc)

O’Reilly Books is a company that does a number of things, two of which are run conferences and publish books. They’re a well respected company that encourages open source software and learning through its books, conferences and is heavily involved in supporting the individuals and community around open source software. Even though they don’t create open source software, they provide a massive boost to the ability of developers to write and create open source software by mere involvement. This is a perfect example of example from outside of software development that gains value and adds value back to the community as a whole.

That’s just a few. So really, there’s no reason to resist the freedom of open source. Ignoring or turning away from open source is like turning your back on your family, your community and those around you. There’s no reason to believe the nonsense about TCO (Total Cost of Ownership) that’s been wielded as a weapon against open source solutions. There’s no reason to listen to the FUD about “will it survive” or “what happens when X happens to the project”. There are many companies out there that will help you understand these solutions further, so the TCO argument is dead on arrival. The only path here is toward more software freedoms, preventing large companies from limiting our development options (re: Oracle suing to control API end point pathing, etc). When you do development these days, your first option and thought should be to open source “all the things”. It will help you as a developer, it will be better for you company and those that are leading the way, and it will be better for the community as a whole.

Stay relevant. Write code, individually contribute and be part of your community.

I’m Adron (@adron twitter or @adron app.net) and I write open source software.

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?

Day #3 => DeployCon && Enterprise && Data Gravity

A lot of things were mentioned during the panels and sessions during DeployCon. Some things I agree with, some things I don’t.

The “Web Way”

There is one prevalent thing that came up over and over, the “web way”. What’s the web way? It is building horizontally, scalable, with RESTful APIs, and applications at an upper tier that are loosely coupled to any back end, and generally geographically independent (i.e. dispersed). This could be a mix of IaaS and PaaS, public or private, or a mix of all these things. Above all, it is about building horizontally instead of vertically, so that one can scale big, really big.

It was generally accepted in the dozens of conversations I had about the “web way” that the enterprise was only realizing that their idea of “big” and “redundant” just doesn’t even compare to what has been built using ideas from the Internet Generation. The Facebook PHP scale has blown away almost any enterprise’s scale problem, Twitter’s piping relationships across big data trumps most enterprises service bus concerns, Netflix’s streaming makes most enterprise’s issues with data transfer seem like a child’s game.

But all this isn’t to spite or hate on enterprise teams. They have an immensely important job to do. With all of these advances, and with management allowing enterprises to step closer into the community and get involved with things built the “web way” there is a massive upside. The enterprise is getting closer to cloud technologies. They’re learning how to leverage their on premise assets for various reasons, such as not throwing out the investment, and public or private cloud tech together.

Combing these things, and the complex needs of the enterprise together is all benefits, they’re getting the bleeding edge technology and research basically for free. All while effectively finding ways for a slow migration to not damage existing investments, day to day operations, and improve overall resiliency and services within the enterprise itself.

Overall, a huge win-win for everybody.

Data Gravity is Vital to Understand for Application Architecture

Dave McCrory kicked off the Data Gravity analogy to application and data source spacing. It is a pretty flawless analogy which brings us a much clearer understanding around application architecture when it comes to where data sources and where applications sit within a system. It also helps to define the value, cost, and gravity of data in relation to it’s location relative to the application.

With this topic brought up, every single tie it hinged around people fighting the gravity between data and applications. The difficulty in using cloud technologies, big data and other things is highly advantageous for companies, but as Dave points out in his presentations and writings about data gravity, it is getting exponentially more difficult to pull apart data and applications to rejoin them somewhere else. Such as the massively more scalable, powerful expansive public cloud.

These conversations lead to a growing opportunity space in the industry, moving data. This could be done with physical moves of drives, big pipes, pipes as a service or a host of other offerings. So far, very few are doing much in this realm, understandably considering the difficulty. But I’m betting that we’ll start seeing some serious efforts put into this. One of my personal notions is the idea of going cloud to cloud, we’ll see if anything pops up in the near future. If not, I might have to make a play on that myself.

…and last but not least, DeployCon!

DeployCon was the major reason I attended Cloud Expo. DeployCon was about PaaS Tech & the future movement of cloud technologies. Even though the rest of the conference, for most enterprises, seems bleeding edge, DeployCon was about the truly bleeding edge technology. Not only that, the elephant in the room is about the new king makers of IT, of technology, and of business in general; the software developers. Yup, I said it. We might want to stick IT on things here and there but the fact of the matter, over the next 10 years – if the IT moniker even sticks – it’s going to be more and more developers, business apps, and business development – not more network or system admin roles that are needed. The abstractions are pushing developers into an even more pivotal role in a company and providing even greater benefits to business. You can ask any number of people in the PaaS space, from AppFog, AppHarbor, Tier 3, Stackato/ActiveState all the way to Windows Azure (they need to actually show up next time, just saying!). They ALL SEE THIS HUGE CHANGE coming. Not only do they see it, they are experiencing the beginnings of the change.

So hats off to an excellent job Krishnan (@krishnan @ Rishidot Research) for putting this together! Wendy White (@wendywhite) for throwing in major logistics support and all the others too! I had a blast and am looking forward to the next event.

Thanks also to the fire starters and technologists on the panels! You guys know who you are, good job! Here’s a few parting shots of the awesome people I got to meet and talk tech with!

Parting Shots

@brianmmcclain & @markkropf enjoying a round of drinks!
@brianmmcclain & @markkropf enjoying a round of drinks! These guys are smart, seriously. (click for full size)
The one and only  @wattersjames the man with impeccable taste @mortonheroku and the man with the plan @guy_marion
The one and only @wattersjames (thanks for the fire starting!) the man with impeccable taste @mortonheroku and the man with the plan @guy_marion (click for full size image)
The beautifully witty @briellenikaido and @mortenheroku showing us the where the premo tastes are in New York City.
The beautifully witty @briellenikaido and @mortenheroku (GREAT Sake choice btw) showing us the where the premo tastes are in New York City. (click for full size image)

Getting Things Done! Coders Unite!

Over the last few years I’ve contributed to, organized, worked with, and been in the audience of hundreds of user groups throughout Portland, Seattle, San Francisco, and Vancouver BC. By far, this area of North America has the most active, resilient, and density of thought leaders in the technology world. There is something missing however and I’d like to start working toward filling this gap. What’s missing you ask?

Problem: People often get together and talk about tech, but rarely get together and do something about tech.

The vast majority of user meetups end up as presentations. I must sadly say, often boring presentations that don’t really teach or demo all that much. Attendees often just come to talk afterwards or otherwise socialize, which is hugely important to the community. However there has to be a way more could be done. A better outcome would be to create a two way conversation, instead of the one way presentation, and to involve ourselves in creating solutions, new technology, and idea. In a few rare situations I have found groups that do something about this void. What’s their solution?

Solution: They actually get together, implement code, pair, and work together on problems. Kind of like a Hackathon, but way more often.

That’s what I’d like to create. To start off with, I’d like a group that is technology agnostic, is fairly skilled yet willing to pair and bring others up to speed, and simply gets together at least once per month to implement a specific project or effort that is predetermined by group submission and conversation (i.e. we’ll use a google group, e-mail list, or such). I think, and feel like there is enough support to get something like this started in Seattle, Portland, San Francisco (especially here), and Vancouver BC. My question is though, would you be interested in helping out, coordinating with me, and otherwise uniting coders to do more, learn more, and better themselves?

If you are interested, please leave a comment and help me out by answering a few questions:

  1. Is “Coders United” a good name for the group? What ideas do you have?
  2. Do you have a project or three or four that may be of interest for a group to get together and work on?
  3. This type of group would probably need to meet for more than an hour, would you be able to meet for 3-4 hours, maybe even on a weekend to implement a full project?
  4. What’s your preferred method of contact (e-mail, twitter, facebook, text message?) and how should I get in touch with you?

Geoloqi, CivicApps, and TriMet API/SDKs

I’m heading off on yet another coding adventure this coming weekend. I can never get enough hackathons, startup weekends, and such. The energy, creativity, and learning is unbeatable at these types of events. This adventure will be mashing up a plethora of APIs (SDKs) and other capabilities to build something cool against. What it may be, what it will be, I’ve no idea yet. But here’s a quick summary of the companies & entities involved.

First a quick review of Geoloqi and what CivicApps are, the key sponsors and organizers of the event.

Geoloqi – Development

Description: Geoloqi is a private, real-time mobile and web platform for securely sharing location data. We’re a company that believes in doing more with location, and creating useful services for people and businesses.

CivicApps
Description: The aim is social change. The path is regional collaboration. The focus is local.

Technology is changing our relationship with government. Not so long ago government made decisions with little public input. Those days are gone. Today, information technology has redefined the structure and authority of government. The problems our communities face are beyond the capacity of government to resolve alone. Cooperation, collaboration and openness are no longer questions of opportunity; they are essential means of conducting our community’s business effectively. Every citizen can be an active participant in reshaping their world. WE are the government.

The CivicApps.org site aims to encourage every citizen to be an active participant by putting the data in their hands. The CivicApps.org site was developed to source, profile, and accelerate innovative ideas using Web and mobile technologies. The aim is social change. The path is regional collaboration. The focus is local.
Beyond these two organizations there are a host of others that are putting forth support through either the hackathon or the CivicApps Efforts.

Here’s a list of the entities involved in the CivicApps Project, click on the respective image to learn more about each one. All of these, in some way, form, or manner have contributed data or otherwise to the CivicApps Data.

An elected regional government, Metro helps you make the region an extraordinary place to live, work and play. Metro serves more than 1.5 million residents in Clackamas, Multnomah and Washington counties and the 25 cities in the Portland region. Some of the related data & maps they provide are covered here.

Our belief is that mass transit ridership can increase dramatically through improved customer service.

We’ll help by:

Empowering passengers with information about waiting time.
Providing Transit Authorities and operators with a robust, reliable, and cost-effective way to manage fleets and communicate directly with passengers.
Reducing the uncertainty associated with public transportation.

TriMet provides bus, light rail and commuter rail service in the Portland metro area. Our transportation options connect people with their community, while easing traffic congestion and reducing air pollution—making our region a better place to live. TriMet’s developer resources are available here.

…and others:

   
     

Stay tuned and I’ll have more on the hackathon and my project. Cheers!