Monday, April 15, 2013

Javascript: One Language to rule them all, and in the darkness... NO WAIT!

As I've mentioned in a previous post, I've been wondering if learning a new language was worth it. What I'm realizing is that the tech stack for BuildItHub has to be a low cost of entry. The main reason is collaboration. I need to let any developer using any operating system, to easily get involved. That means .net is simply out of the picture. Yes, I know that visual studio express exists. And NO! I will not be pushing that gateway drug.

I wish with all my heart that the schism between .net and languages such as Ruby, Python and others didn't exist. They do exist, and we have to acknowledge that. The barriers are breaking down in our communities though. I have a lot of friends from both camps and they are starting to talk more. We are attending a lot of the same events and those events are including tech from all domains.

It has probably been said before, but no matter what camp you're in, javascript is something we all use if we do any kind of front end or RESTful API development. So this is where we will start. What I've decided is that in order to keep BuildItHub as open as possible we are going to use mainly a JavaScript stack. That could mean plain JavaScript, lots of libraries, probably knockout, sails.js or express js for the web framework, and node js behind the scenes. Perhaps CoffeeScript as well, if Brian doesn't veto it. This is going to be a lot of learning for me (and for those joining the project), but I'm excited about it and its software anyone can download and start using on almost any os.

Could JavaScript be the language to bring our two camps under one tent in other projects as well. I am not a prophet, nor the son of a prophet but I think in many ways it already has, and I predict it will even more so in the years to come.

Sunday, March 31, 2013

What's a Kingmaker Without Coin?

First off, Happy Easter to you if you celebrate the holiday. If not, happy Sunday to you...
Sometime last week I found the book written by Steve O'Grady called The New Kingmakers: How Developers Conquered the World. It is a new book by RedMonk co-founder Stephen O'Grady chronicling the rise of the developer as the decisive force in the technology industry and sectors beyond. COINcidentally, last week's news included a lot of stories about BitCoin, the decentralized, non-controlled currency. A lot of those stories were driven because of the stuff happening with Cyprus and the EU central banks. I first heard it talked about on the radio then saw articles popping up all over the Interwebs.
Silver and gold as well as other precious metals have long been seen as the truly stable, non-inflationary currency by many. I am not a serious student of Austrian economics, but I'm a fan of Ron Paul and have long wished we would get away from the Keynesian thought about currency and central banking. A lot of people "in my tribe" say gold and silver are the way to go. I agree with them, but why do we say that? For me it comes down to my lack of trust in the central bankers who pump 85 billion of new money into our economy out of thin air each month, thus destroying the value in our savings and salaries that seldom keep up with this inflation. But will gold and silver really stop them from doing that? It didn't stop Rome, who debased their own coins by diluting the purity as new coins were smelted/printed ;)
What would happen if a currency was totally decentralized and no government controlled it's creation? Is this the reality with the P2P BitCoin. Nothing stops a government or a private citizen from putting together a huge number of servers and Mining for coins. I don't totally understand this process, but it intrigues me to think about where we might end up in the future, and all driven from some pretty cool development.
Note: If you wish to discuss this post let's converse on Branch.

Saturday, March 30, 2013

Startups Are the New Nineties Garage Bands


It's not my title but I thought of it before finding this old article. Startups are popping up everywhere. So many people are involved with finding the next big thing. You have incubators all over the place hoping to be a part of the next thing and people wanting to make it big with their idea.

In the 90s everyone had a band or knew of someone in a band. You would have to find talented peeps to fill the different roles and then collaborate to get anything rolling. A few took off and we all know their names now.

Today, you can take your idea to something like Start Garden or an incubator and find peeps to be on your team. What I want to do with BuildItHub is allow anyone with some talent and some social grace to join the band. It might be for one song, a couple gigs or for the long haul, but that is what I want to allow. Just have to find out if others want to play along...

Thursday, March 28, 2013

Learning Ruby on Rails: Is it worth it?

Note: The following post might be me having my own geeky midlife crisis. After all, I am turning 38 this year. So maybe all the young hipsters out there are making me a bit envious. But, maybe it's not a crisis, and maybe the grass is really greener on the other side...

I've been toying around with the idea of learning another programming language. Being interested has not driven me to commit to another language on an actual project though. I think for me it comes down to doing what I know because it's fast, or at least faster than starting from scratch with all the new syntax and tools. Being a hopeful, evening and weekend entrepreneur, usually I'm trying to put a minimum viable product together as fast as I can. Necessity seems to be my driving force.

I've been a .net developer since 2001. When it first came out, or shortly after I had to choose if I'd be a .net or Java Dev. After the decision was made I never really desired to be anything else. I'm not one of those developers who thinks Bill Gates is the anti-Christ, though Balmer doesn't give me the warm fuzzies. I have not jumped on the M$ hate bandwagon, and actually have come to really love Windows 7 (Windows 8 will not be my next OS though). I've never been much of a fan of the console. In fact I'm quite fond of IDEs. Well, I'm fond of Visual Studio, as it's been my main tool of choice for over a decade.

Rails interests me because it seems to have quite a community of really excited craftsman around it. They seem to care about doing things right. By right I mean, as the website says, optimized for developer happiness and sustainable productivity. Supposedly you can build a highly maintainable site very quick [if you know what you're doing].

These new thoughts started a little over a year ago. I'd started doing a lot more front end development and have come to almost enjoy JavaScript. Once I started treating it like a real language, I realized the power that is there. Now something is happening within and I don't believe I'm the only .net develops out there feeling this way. I want to learn something new but a few things stand in my way from pulling the trigger. One - I'm learning to tolerate the console, but I have to admit I'm still not a fan. I know many will not take me seriously after that statement, but i have to be honest. Two - Ruby, Rails and lots of the tools are built around the Unix console being the main tool of choice so it seems the Mac is becoming the new developer machine. Macs are freaking expensive and my current employer isn't going to foot the bill at this time. I could try Ubuntu on my windows machine, but getting it all setup, configured and taking the time to learn the new OS could take me a while. That same while I could be finishing my next MVP in a language I'm pretty good with.

Is it worth the hassle? Am I just being lazy or am I being practical? One thing I am considering seriously is Node.js and Sails.js - Something about an all js and HTML stack really has me intrigued, but how hard will it be with a windows machine? Your thoughts and advice is welcome...

Wednesday, March 27, 2013

Why I love my job this year ;)

I want to start off by saying it's nice to have managers who are willing to try new things as long as they see the potential benefits.

Beginning this year we decided we would be very serial about our projects rather than try to multi-task on a bunch of different ones. This was because of this post ( http://spin.atomicobject.com/2012/10/24/getting-reschooled-in-project-management-how-to-plan-a-project-with-no-multi-tasking/ ) Basically we swarm a project and work on it until it's done.

Because of this serial dev process we are doing a ton of paired programming. In fact we are doing quite a bit of tri-programming (not sure what to really call it). The results have been amazing! Everyone is learning the code bases of all the projects. We are delivering in shorter amounts of time so departments can start experiencing ROI on their project. Our code is just better. It is easier to maintain, easier to grasp, and we are building our own set of standards and templates as we determine what matches our way of doing things.

The one downside for the business is they need to learn to wait in line. This is where our awesome management comes to the rescue. They actually say, "You will have to wait." Our business is very cool about this and I think it's because they see the things we have released and are totally digging those projects. Waiting in line is worth it if you're going to be getting a freaking cool set of tools that will make your job easier.

If anyone has any questions on how we did this I'd be happy to share.

Friday, March 22, 2013

Once upon a time...

Once upon a time too many great and wonderful technological inventions were lost to us. Every day, great thinkers, who didn't particularly consider themselves to be great thinkers, had many sparks of imagination come to them. Most of those sparks were passing; a few ignited into small flames. Some took on a life of their own and consumed the thinkers, who quickly started building their ideas into what they hoped would one day become reality. Sadly, for all of us, most of the ideas lacked something. For a few of them it was specific knowledge, for others it was money, but for a lot of them, it was simply a continued lack of feedback and support from others when the times got tough. One day a small group of thinkers and builders got together in one place and swore to themselves and to all the truly great thinkers and builders out there, that this would not continue to be the case. Because of that, they built a place where individuals could come with their ideas, talents and other resources, and build teams around the best of those ideas. Because of that, good ideas got better and those ideas became profitable endeavors for the members of those teams. Until finally we all benefited from the inventions that would have otherwise been lost as so many were before.

Saturday, March 2, 2013

Into the Realm of Elves (.net >> rails)

Introduction to My Journey

I'm biting the bullet and learning Rails today. I would be at GRDevDay but didn't get the ticket before they were sold out. So while you are all learning some cool stuff I will do the same. The latest version of the book "Agile Web Dev w/ Rails" just showed up on my kindle and I'm going to take a shot. Yesterday I tweeted...
Chadrick Mahaffey @chadrickm I feel like I'm a human venturing into a dark forest trying to follow elves (.net to #rails).
And if elves were real and we lived in some fantasy realm, Rails might seem to me like a strange magic (were talking high fantasy here) to us humans (.net developer using a windows machine). I'm some kind of explorer who knows there is amazing things to discover, but I'm a bit afraid of the journey. I did just watch Avatar with the family and perhaps that analogy would work as well. We will stick with fantasy for now. It will hopefully keep me entertained enough to continue writing the journey out.

I am developing alone today simply because I have not sought out a pair to enter this realm with yet. Perhaps I will find a native at some point who can take me deeper into the forest.

What version do I have?

I know I've installed Rails before. I had to at CodeMash for a pre-compiler event I went to. Let's see what I have.
$ gem list --local rails
So I have 3.2.9 and it appears I might not be able to get 4.0.0.beta1 using windows. So until I invest in a new maGIc book I'll be a bit behind the time, but this is fine for now.

Learning to Use Hand Incantations Again (cmd and SublimeText2)

Yeah, the elves are pretty hard core users of only hand incantations and the forest itself, where we outsiders have become dependent on our wands and scrying pools to do pretty much everything. It's not bad and I've been doing it more and more since using git rather than hg of late.

I love this Tome's advise for us humans when it comes to the IDE. "here's the point in the book where we recommend you sit down..." NO IDE?!? I knew that already. Not a huge surprise here but it is a big reason I have not gotten to this sooner.

I'm in the forest now. Time to summon something.

With a couple simple incantations I have summoned my first app and attempt to contact the natives.

OK - I'm on my way now ;)

Saturday, January 19, 2013

Silo is a four letter word...



So +Dan Tape  posted an article about a man from Verizon who outsources his development job to China and watches videos all day. My question is, what kind of corporate environment allows this to go unnoticed by coworkers? Major SILO development going on over at Verizon I guess... 

Tuesday, April 3, 2012

This looks like something right up my alley. Maybe we will see you there.

Kalamazoo X Conf

Wednesday, February 22, 2012

A New Metaphore - Epic Story to TV Series

I’m currently reading a book by Ka Wai Cheung called “The Developer’s Code: What Real Programmers Do”. In the chapter called “Metaphor” Cheung writes “...when I’m asked what I do, I often resort to analogy. Our industry is chock-full of them. It’s the way we describe our work to everyone else... metaphor has to become our meta-language. Not only is it how we connect the uniqueness of programming to the general public, but it’s often how we make decisions on how we approach our own software problems.” He goes on to explain how we borrow from traditional building when we speak of building software. We have roles such as engineers, architects, project managers and designers. We have borrowed our very identities from another industry. Some of that made a lot of sense when software releases were done over floppy disk or CD, but not today with the web the way it is. I wont quote the entire chapter, but he ends with the idea that, “Software development might be closer to writing a novel or composing music.” I love the writer analogy and I’ll probably overuse it so much in the future that it will become more harmful than helpful, but let’s have some fun with it.

There is a series of fictional books out by one of my favorite authors. Perhaps you have heard of George R. R. Martin, or perhaps you have heard of the HBO series that is based on his books called, “A Game of Thrones”. It has a very mature rating so be warned if you check it out. My new analogy for software developers and software projects in general is that of the epic book series turned TV series. Writers (Developers) take the original book (Business Processes) with the help of the director (Architects or Leads) and the original author (The Business), and they break it up into seasons and episodes. For now I like to think of the season as the current technologies a project will take advantage of. Each episode is a release with it’s minimum marketable features and these can and should happen much more often than we have allowed them to in the past. As Cheung says, we are on the web and people are now embracing iterative change much more than they use to. In all episodes there are lots of subplots or stories that make up the whole episode. Agile has already defined features as stories, so I’ll just stick with that for now.

Before I read this book and before this analogy, I started calling our sessions by season and episode (S3E2). It was just my funny way of keeping things interesting but now I’m going to rethink the significance of it. I think this is a way better description of our industry today than the bridge or skyscraper analogies of days gone by and as Brian and I co-author Luncht I’ll be thinking about it more and more.