Wednesday, November 28, 2012

Is the Free Software business model really viable or just an idealistic pipe dream?

If you listen to Richard Stallman and his legions of followers, all it takes to make money while writing Free Software is to write quality software, give away the source code, and charge for associated services. But for something that sounds so easy, it's proven amazingly difficult for anyone to actually achieve and the question could be asked if making a living writing Free Software really viable or is it just the pipe dream of someone obsessed with a weird, redefined, view of 'freedom'?

Let me tell you a story. It's a story about a man I greatly admire and who might completely disagree with this post. But it's a story I believe needs to be told. It's the story of Bryan Lunduke.

For the last several years, Bryan wrote proprietary software. During this time, he made a decent living, was able to enjoy life, and easily support his wife and newborn baby. Then, Bryan had an on-air conversation with Richard Stallman on The Linux Action Show who basically told Bryan that he was destroying society and was a horrible human being because he didn't write Free Software.

A few weeks went by and Bryan announced an experiment. If he could raise $4,000 in one week, he would open source all of his software and abandon his evil ways. The community came together, met the goal, and Bryan delivered up the source code of his apps as promised.

Then, sales crashed. Hard. Over the remaining year, Bryan tried various tweaks to his experiment. He offered compiled binaries of his software, he did a pay what you want model, he even offered to license his source code under both the GPL and BSD licenses for a fee.  It didn't matter. In the end, Bryan was forced to all but abandon the company that he worked so hard to build and take a full time job.

Though this is a bit of a sad story, I think it illustrates the point I'm trying to make quite nicely. Here is a guy with a product that sold very well when it was proprietary, a platform to push his products on (The Linux Action Show) and a passionate community of fans who claimed they were ready for him to jump in and support his Free Software reformation.

Except they weren't. The very community that 'loves freedom' so much that they are willing to call someone immoral pretty much sees their job as done when they can convince someone to give up writing proprietary software. It doesn't matter if that persons kids starve, if they can't pay their bills, whatever, just as long as they don't write a single line of non-free code.

Am I the only one who sees how freaking insane this mindset is?  You want to talk about immoral? That's immoral! Hurting society? Good example of it right there!

Now there's a lot of speculation as to what Bryan could have done differently. First, the software was written in a proprietary language (Real Studio) that has a smaller development community than languages like C or Python. Also, he didn't really make the code all that accessible. Instead of saving the source as a Real Studio version control project, he exported as one giant XML file.  Lastly, after doing an initial commit to GitHub, he left town for several weeks leaving users to fend for themselves.

Yes, Bryan could have done things differently. But I want you to remember that this software was selling well when it was proprietary. He want on vacations. He took a while to answer emails. That didn't really effect sales all that much.  And source code is generally for other developers who shouldn't need as much handholding as average users do. In reality, sales shouldn't have slumped all that much.

I believe this shows that there is no currently viable way for a software developer to make money following a strict "Free Software" model. If everything is available, then that limits how much money you're going to make on your product. Bryan's experiment has failed and, to maybe a larger extent, I believe this is a failure of the community as well. This was a time when they could have shown that what they claim is possible actually is and they didn't.

In the end, I hope Bryan goes back to a proprietary model. Or he might think about adopting a hybrid model where the source code is 'auditable' but not redistributable. Either way,  I hope that he can regain his business if he wants and make it into the success it was before the experiment.

My takeaway: free software as a business model doesn't work. Nobody has been able to make it work. It's time we accept that reality and deal with it.

What Should a Beginning PHP Developer Learn?

I've been a software developer for a long time. A good part of that time has been spent using PHP and its associated technologies to build web applications (and a few console ones too). I started with PHP in its infancy and kind of organically grew with it, learning new technologies and methodologies as they came up. For me, it wasn't so much about keeping up as it was about just doing new projects and picking up what I needed as I needed it.

But I've been getting email from junior web developers who are surveying the PHP landscape with wide eyes and wondering where the heck they should begin. PHP is a near fully object oriented language now so that seems like the logical place to start. But there's also an amazing amount of code already written, and still being written, in the old functional style so maybe they should start there.  It all can be a rather confusing mess of code for someone just breaking in to the field. So this is my attempt to add some clarity to that first look. It's my attempt to give you a starting place from which you can grow as a developer.

So here it goes:

1. Learn OOP first - While I won't get into the whole 'OOP version functional' programming debate, I do believe that, like it or not, OOP will remain the dominate way to develop quality software for the forseeable future. Not only that but almost all of the new programing paradigms are being built on top of OO concepts and it's going to get increasingly difficult (impossible?) for you to get even an entry level job without at least a basic fimilarity with object oriented concepts.

2. Be comfortable with functional - Compared to well ordered and contained OO code, functional code can look like complete chaos. But the fact remains that there is still a lot of code being written and maintained in the functional style. You will probably be called upon to either extend or maintain such code during your career so you might as well get comfortable walking between the two worlds now. And, while I know it's almost impossible for the OO diehards out there to believe, there will even be times when you will choose to write new functional code over OO code.  Learn it, get comfortable with it.

3. Learn at least one major framework - MVC programming is the way of the future. Make sure you understand it well.  There are multiple MVC frameworks out there for PHP but, for the most part, they function similarly enough where if you learn one you can quickly and easily pick up the others as you need. Some might suggest you learn Zend, I don't. While Zend is a perfectly fine framework in itself, I've always found it much like throwing a 200 ton gorilla at a 50 pound problem. Most of your projects won't require Zend. They will require something like CakePHP, Symfony, or Code Igniter. These are easier to learn than Zend and will serve you better in your day to day job.

4. Learn another language - PHP is a fine language. But it's important that you learn how other languages do things differently than PHP. Take some time to learn Python or ASP.NET, or Ruby. Take note of how each of these languages differ from PHP and what you like or don't like about them or PHP in those regards. You'd be surprised how many times I've been stuck on understanding something PHP is doing and looking at hour Python does it clarifies it for me. Trust me, this is going to be an asset in your toolbox.

5. Learn a source control system - You'd be shocked how many web developers I talk to that don't even have a basic idea about how source control works. This will come back and kill you in the job market. Technical managers will string you up, your coworkers will despise you, and you will quickly get the label of 'clueless. incompetent, newbie' if you ignore this. It doesn't matter what system you learn, just learn one and make sure you understand it intimately.

And that's it! Those five things will get you started on your professional PHP journey and will serve you well as you develop your career. Sure, there are probably a million other things I could add to this list but those five seem to be the ones I see lacking in new developers the most. Learn them and they will serve you well.

What are your 'must learn' tips for new PHP developers?

Tuesday, November 27, 2012

New, Simple, Password Hashing API Coming in PHP 5.5

Everyone who writes web applications should know by now that hashing passwords is a necessity. Storing password in plain text in the database or using a simple MD5 or SHA256 has is simply not enough in the face of video cards that can make millions of guesses per second. Unfortunately, it's also a reality that we still see many high use, high profile sites either not hashing passwords at all or doing so in insecure ways.

Thankfully, PHP has come to the rescue with new password hashing functions built into 5.5 alpha. Now, properly hashing passwords couldn't be simpler:

$hash = password_hash($password, PASSWORD_DEFAULT); 
The above code creates a password hash using the default algorithm (bcrypt), the default load factor (10), and a random, automatically generated, salt. The algorithm and salt will be part of the resulting hash so there's no worries about what to do with them when you stick them in the database.

If you don't want to stick with the defaults (which might change in the future) you don't have to and you can specify both the hashing algorithm and the load very easily:

$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' = 12]); 

In the example above, we've specified that the hashing algorithm used is the BCRYPT algorithm and that the load is 12 instead of 10. This gives us a lot of flexibility when we're hashing our passwords and allows for fairly easy integration with your current security setup.

Verifying passwords is almost the same as it's always been. In fact, if anything, I think it's a little cleaner and easier

// Get the password from the user and the hash from the DB

if(password_verify($password, $hash){
    // password passed verification
    // password failed verification

The function returns true or false depending on if you have a match and makes creating and verifying secure hashes amazingly simple.

One thing that should also be noted is that you get the benefit of automatic hashing algorithm upgrades. When/if the PHP developers decide to change the default algorithm used to hash passwords to something other than BCRYPT, your new hashes will automatically be upgraded when you upgrade your PHP installation without the need to rewrite any code.

Overall, this is a really strong development and shows why PHP should still be a strong contender for a place in any web developers toolbox. And, with as simple as hashing and hash verification is, we'll hopefully start to see even inexperienced web developers start to take password security more seriously and avail themselves of, what I consider, one of the languages best new features.

Saturday, November 24, 2012

It's been years, but now you are mine

When I was 16 years old a friend of mine decided to start calling me "The Cajun Techie" since, well, I'm Cajun and work on computers and software. The name stuck and I've been known online as CajunTechie for the last 20 years. But one thing has always eluded me: a cool domain name.

Sure, I was able to get my last name ( but I never really thought that it was as cool as using my online moniker as my website. Finally, yesterday, by pure happen chance, I went to GoDaddy and put in as a domain name. Imagine my surprise when it was available! Honestly, I was way too excited about it and schoolgirl squeals may have been heard coming from my home office. Finally, after 20 years, I now have a home at

I can finally ditch the whole un-Google friendly (yuck) and I can have a proper domain with a proper blog.

*schoolgirl squeal*

Saturday, November 17, 2012

NetFlix finally (kinda) comes to Linux

I'm a diehard Linux user. Ninety-nine percent of everything I done is done on a machine running Xubuntu 12.04. But there still is that tiny little one-percent of things I do, where I can't quite escape the stranglehold of Windows. Mostly, that's playing video games and watching movies on NetFlix.

Thankfully, with the recent announcement that Steam is coming to Ubuntu, my worries about video games might be becoming a thing of the past and with the work Erich Hoover is doing to bring NetFlix to Linux, I might just find myself living in Linux Luxery Land full time before I know it.

For those who haven't hear, Hoover has created a PPA for Ubuntu the effectively brings NetFlix to Linux. Using his PPA, Ubuntu users can use NetFlix just as easily as their Windows and Mac cousins can. Until recently, Hoover's method relied on Wine which some users didn't like, but it seems the new patches he's been uploading may just take WINE completely out of the picture. Or at least hide it really well.

To find out more about how you can run NetFlix on your Ubuntu box, check out this story and find Hoovers PPA by clicking here.

Tuesday, November 13, 2012

An Open Appeal to Real Software

Dear Real Software,

Over the last few years, I've absolutely fallen crazy in love with your product, Real Studio. As an experienced, long time, independent, software developer, I've come to appreciate the huge amount of time it saves me over competing products like C++, C#, or even Java. Since I've started using Real Studio, I've come to rely on it more and more to allow me to deliver quality software on time and within budget.

But, alas, all is not well in Developerland for me. With the current energy around tablet computing, I want a piece of the action. There's money to be made and I want some of it. Unfortunately, if I'm to go after any of this money, I'm going to have to do it without the help of Real Studio. Why? Because RealStudio doesn't compile for the ARM architecture which is quickly becoming the dominant processors these amazing devices use.

I really am confused by Real's apparent lack of interest in tablet computing. When I ask about future ARM support on the mailing list, I'm usually greeted with 'maybe one day, when we get LLVMrunning and Cocoa support on the Mac up to snuff'. Why? While I understand many developers make their living writing Mac software and you definitely should put a good amount of effort into getting Cocoa right, you're letting the foundation of an entire new market pass you by and forcing those of us who want a piece of the tablet pie to make a hard but necessary decision: stick with RealStudio and wait until ARM support comes (if it comes) or move to something else for developing on ARM devices.

Personally, I'm choosing to wait, for now. But I'm not going to wait forever. If Real continues to show no interests in ARM then I'll be forced to separate my development time: Real Studio for desktop apps, something else for tablet apps. It's a decision I don't want to make, but I have to go with what pays the bills.

Lastly, I know you say 'just develop web apps using the Web Edition' but, let's face it, we all know it's not the same. Sometimes, a web app just doesn't cut it. Sometimes, only native will do. Telling people to build web apps is a lazy, thoughtless solution to a problem that shouldn't exists (or, at least, shouldn't exist much longer).

So consider this a friendly poke by a friend. You're missing a new market and forcing developers who hitched their train to your product to miss it as well. Some of us will stick by you for now and see where things go. But you can't expect us to watch dollar after dollar go to other developers for long before we make a move. Sadly, that move might be partially away from RealStudio.

Save the day, Real Software: work on bringing ARM support to your product before you and the developers who rely on you are left behind.

A Friend and A Fan

Tuesday, November 6, 2012

Seriously Reconsidering Instagram for Linux

A few days ago, I made a post saying that I was beginning work on a version of Instagram for Ubuntu. As a developer, I really like what I see coming out of Ubuntu and I'm putting a lot of my eggs in their basket. I realize that, if Ubuntu is going to take major market share, the platform is going to need good, solid, sexy, consumer applications similar to those that Windows and OS X have. I also realize that these apps, as more people seek refuge in Ubuntu from those other operating system, are going to be the primary driver of revenue for developers on that platform.

I'm a commercial developer. That means that, in order to do what I love, I need the apps I write to make money. That also means I have to be willing to walk away from an idea or project if I see it won't make money to support itself. Such is the case with Instagram for Linux.

Shortly after I posted my announcement, I saw a post by Chris Pirillo on Facebook talking about a Chrome extension for Instagram. I installed the extension and, I have to say, I really like it. In fact, it does everything I was planning for my application and does it very well. I also did some more research and found a good extension for Firefox. As such, I have to seriously consider if a desktop Instagram client is either needed or even viable.  My gut reaction is 'no' on both accounts.

So, for now, I'm going to put my client on hold and see how where the Chrome and Firefox extensions goes. If, at some point, they start to disappoint, I can always revive the project and move forward. If not, then we'll have the best of breed Instagram client in a browser extension.

I really was having fun developing this app too. Being pragmatic sucks sometimes :-)

Why I Did Not Vote for a Presidential Candidate this Election

For the first time in my voting life, I have chosen not to vote for President. While I did vote for a variety of state and local issues, I deliberately chose to leave no mark by either the name Mitt Romney or Barack Obama. I chose to do so, not because I don't believe it's my 'civic duty' to vote or anything like that. I chose to do so because I believe that I have an even higher civic duty to protect my country against harm and I believe both men are equally harmful.

I often hear 'well, I don't like either candidate but I voted for the lesser of two evils'. This year, I chose to not to vote for evil at all and, I must admit, it feels rather good.  Unfortunately, it didn't have to be this way. I could have had a third choice but the state in which I live (Oklahoma) has decided that my voice doesn't matter. Even though I have a constitutional right to vote my conscience, I am only allowed to vote for the two Presidential candidates that Oklahoma has decided to allow me to vote for. Hence, I simply chose to opt-out and not vote for either. I chose not to be part of the problem. I chose not to contribute to the destruction of my country.

Some will say that, since I didn't vote for President, I have no right to complain regardless of who wins. Think about this for a moment: if two people came to you and said 'one of us is going to ransack your house, choose which one will do it' would you choose either or neither? And, if you said 'neither' do you believe you should sit there and stay silent when one of them begins ransacking your home? Of course not! But that is exactly what the 'choose or stay silent' crowd is saying.

The truth is, since I am not part of the problem, believe both are equally bad choices, and am choosing 'neither', I feel I am in a great place to complain regardless of who wins and begins to screw things up. You might have chosen the lesser of two evils but you still chose evil. I chose not to vote for evil.

Yep, not voting for evil feels really good. Really good.

Thursday, November 1, 2012

AnonyMail 1.1.3 for Ubuntu Released

I've released AnonyMail 1.1.3 for Ubuntu.  AnonyMail is a small application that's available for Ubuntu (or any Linux that supports Gtk) and Microsoft Windows and allows you to send completely anonymous email to anyone anywhere.

While AnonyMail is not groundbreaking software, I wrote it because, as an activist, there are many times when I need to send mail quickly, easily, and anonymously. Most solutions, like TorMail, only meet one of those requirements and often require more work than it's worth just to send a single email. I hope AnonyMail addresses this and puts anonymity in the hands of the average user.

If you run Ubuntu, you can find it in the Software Center. Windows users can download it from here.

Saturday, October 27, 2012

Instagram Coming to Linux

For the most part, social software sucks. They all seem to be a clone of Facebook or Google+ and nobody is doing anything exciting with it. Except Instagram. Instagram is revolutionary and it's completely changing both the way and frequency that people are sharing pictures from their lives. But there's one thing that really sucks about Instagram: it's only available on iOS and Android and, as far as I know, the company has no plans to bring the program to desktop users.

That's why I'm excited to announce that I'm starting a project to bring Instagram to Linux. And by 'bring it to Linux' I don't mean some crappy app that barely works when it chooses to actually start up. I mean doing Instagram the right way; beautifully. The software has brought beauty into our lives, a Linux client featuring it should be equally beautiful.

I'm beginning work on FriendlyPhotos today and will make regular announcement via this blog as I progress. I'll have something soon so keep your eyes open for updated postings.  Oh, and just in case you're wondering, FriendlyPhoto's is not an Instagram official app. I have nothing to do with the people who make Instagram. I'm just a user who loves the program and wants to bring it to Linux.

Wednesday, October 24, 2012

Who Owns The Content You Buy?

Update: this issue has been solved and the woman in question has had her purchased content restored. However, that isn't the point. The idea that a company who sells you a product still has ultimate control over that product is the overriding issue that should concern us all.

It was a story that shocked many but really shouldn't have. Last week, online bookseller decided that a Norwegian woman was in violation of their terms of service and decided to terminate her Amazon account and wipe the books she had legally purchased off of her Kindle ereader device. Worse still, when the user challenged Amazon on the decision she was met with a complete unwillingness from the company to even tell her why they'd taken the drastic steps and was basically told that the issue was closed.

As I said, this story shouldn't surprise anyone. Amazon has been very upfront about their ability to remove things from your Kindle and has even exercised that power at least once, removing legally purchased copies of the George Orwell classic 1984 from users devices.  In that case, the book had been put up for sale accidentally and in violation of the publishers wishes. It was, in essence, a copyright issue. But this is different. This is Amazon saying that if you ever break their terms of service or do something they don't like, they can punish you by removing everything you've ever bought from them from your device.

The message here is clear: you might have bought your digital content legally and followed all the rules, but you don't own or control it. Amazon does.

Such is another example of the problems with Digital Rights Management. It gives whoever holds the rights to the content you own (or whoever they say can exercise those rights) complete control over your property. If I purchase something that I don't fully control then can I really say I own it? No. In reality, I am simply paying a fee to use it. I'm renting and there's no requirement for the entity who controls the content or device to treat me fairly. They can do whatever they want. If I don't like it, I can go elsewhere, maybe, but I'm going to have to start over because they control the content I currently own.

DRM isn't about expanding freedom or protecting rights. It's really about giving the rights holder control beyond anything they could have in the non-digital world. Imagine buying a physical book from Amazon and then having an Amazon representative show up at the door a few months later to repossess the book because you'd used it in an unauthorized way. That's insane! But that's exactly what Amazon did in this case. Why? Because they could. DRM gave them the power to do it.

It's events like this that make fighting the imposition of DRM on our digital content so important. It's time we reject DRM and the businesses who impose it upon us completely. We need to refuse to do business with these companies and refuse the purchase products that are encumbered with the technology.

We would never accept DRM in the real world, why the hell are we accepting it on our digital content and devices?

Wednesday, October 17, 2012

Think no one can listen to your Skype calls? Think again!

For many years, Skype has served as the workhorse of Internet telephony. Not only was it used by grandmas wanting to keep in touch with their grandchildren who lived thousands of miles away, but it was also used by security conscience dissidents in repressive regimes to communicate because it was widely known as untappable.  Last year, American software giant Microsoft bought Skype from the group who held IP rights to the system and it looks like they've made some subtle changes that may have rendered the software's legendary security a thing of the past.

As an article published in July by Slate magazine states, Microsoft has refused to say whether it can listen in to Skype calls or not. But the new Skype privacy policy seems to indicate that, under certain circumstances, Microsoft may provide law enforcement with personal information about you including the content of your communications. Microsoft has since come forward and admitted that they log ever single text message sent through Skype but it's reasonable, in light of other changes, to assume they might have access to substantially more.

Shortly after the acquisition, Microsoft began phasing out Skypes 'super nodes'. Super nodes are what, in essence, gave Skype the ability to punch through firewalls. But they also helped make Skype harder to tap. Over the course of a few months, Microsoft centralized Skype around a series of servers that replaced super nodes and implement other technology to keep Skype's firewall punching abilities active. Since we really don't know what all of those changes were, we can't say how vulnerable Skype has become but we can say this: Skyoe calls are most likely able to be listened to and Skype should no longer be trusted for secure, important, or sensitive, communications. Certainly nothing where life or death might be involved should ever be discussed over Skype.

Thankfully, there are alternatives for people looking for a truly secure alternative to Skype.  Personally, I run and recommend the Jitsi program.  Formally SIP Communicator, Jitsi offers users the ability to use a variety of networks (Google Talk. Yahoo, AIM, Facebook, SIP,. etc) while securing communications through those channels using strong encryption. So, while a normal text, voice, or video, call made using Google Talk is not secure, doing that same call through Jitsi using its built in encryption makes it so secure that even Google can't listen in to your calls. It's easy to use, runs on all platforms (it's written in Java) and installs in minutes.

In closing, I'd like to urge anyone who relies on Skype to stop doing so immediately. Especially for any kind of secure communication. Find something else but do not trust Skype with anything sensitive. It's too big of a risk to take and the stakes are simply too high.

Saturday, October 13, 2012

Break The Chains of Digital Rights Management

We've all run into it. Whether it's trying to play a favorite song we purchased on iTunes on an 'unapproved' device or trying to read an ebook on a device that doesn't support whatever locked down format that the publisher has decided to use, we've all encountered the scourge and chains that we lovingly call 'Digital Rights Management' or "DRM".

"Digital Rights Management" is really a bit of a misnomer. It's really not about managing your rights as much as it is about restricting them. DRM is all about taking control of our digital products out of our hands and placing it in the hands of strangers who's sole interest in controlling how we use those products is squeezing every last cent out of them. It's not enough that we've bought the product, they want more.

Unfortunately, this need to never miss a paying customer and never lose a dime is wreaking havoc on users. Many users have found themselves unable to play thousands of dollars worth of purchased music once they switched from Windows or Mac (which supports iTunes) to a free system like Linux. People who are more than willing to pay for content on NetFlix are being told 'we don't want your money' simply because they're running Linux and the studios fear that users might find a way to share their content and take away a few sales.

But it's worse than that. Disabled users are being shut out of entire realms of content simply because they don't use approved devices. Ask your sight impaired friends about their experiences buying commercial ebooks online. You're likely to hear many stories similar to this one.  While DRM sounds like a 'good idea', the actual implementation is harming innocent people, costing content providers money, and hurting society as a whole.

"But Anthony", I hear you say, "how will content creators make any money if they don't use DRM? Everyone will simply go and download the book from The Pirate Bay". Ask bestselling sci-fi author and digital rights activist Cory Doctorow how he makes money? Copies of all of his books available for free download on his website. He also sells them on Amazon and Barnes and Noble and, you know what? People buy them. Users are more than willing to pay for good content. But we don't want to be made to feel like we're criminals before we've even bought a product.  Regardless of what the big DRM advocates think, most of us don't want to "pirate" their content. We want to control what we purchase.

The current climate surrounding DRM and related technologies pits consumers against content and device creators. But the tide is slowly changing. Thanks to efforts of organizations like The Free Software Foundation and the campaigns they run like Defective By Design, users are revolting against the arbitray demands to control their machines and purchases by content creators. They're refusing to purchase DRM restricted music, books, and software. They're writing letters to their Member of Parliment of Congressman and expressing their feelings about being treated like a criminal and, slowly, the culture is starting to change. Slowly.

So what can you do to help speed the change along? Stop accepting being treated like a criminal by the people you buy from. Stop giving your money for the people who will turn on you and put you in jail for the slightest misstep. You deserve better! You're the customer; you're King! Start acting like it. If a company wants to tell you how you can use what you can purchase from them make a clear and simple decision: don't do business with that company. More importantly, let the company know that you are not doing business with them and why. Write and email or make a phone call. Don't let them off the hook for abusing their customers. Don't give them your hard earned money!

Also consider educating others. You don't have to be militant about it like some in the movement are. Just reach out to friends and collegues when you seem them using or buying restricted items and let them know they have a choice. When you're in the store and see someone struggling to find the money to purchase Microsoft Office,. speak up and point them to LibreOffice or OpenOffice ;and tell them the benefits beyond costs.

All of us can do something to help bring this lunacy to an end. It's just about standing up and realizing that companies are not doing you a favor by providing products to you. You are King/Queen! Start acting like it!

Thursday, October 11, 2012

Taking the plunge and writing a book

Most of my life, I've dreamed of being a writer. When I was a child, I spent untold hours toiling away at simple stories that my family was gracious enough to read and dutifully oooh and ahhh over. As I moved into adulthood and got into technology, my passion for writing hasn't changed and I've finally decided to combine both of my passions, writing and technology, and write a book.

My upcoming book, 'Hacker' will be an exploratory fictional journey into what happens when governments and corporations destroy privacy and how a small team of committed people working in the shadows can help level the playing field.  It's a journey into what-if world of unintended consequences and I'm having a blast writing it.

I'm also finding the process of writing a book very different than blogging. When I blog, I often have typo's, horribly written and weak sentances, and a lot of stuff that just doesn't make sense. As I work on Hacker, I'm finding myself having to be much more dutiful and careful and it's teaching me to pay more attention to the process of writing.

So that's that. Look for the book in January 2013 and will be self-published on both Amazon (Kindle version) and LuLu (paperback version). It will be released under the Creative Commons license.

Tuesday, October 9, 2012

The Web is Changing. WebPlatform is Documenting It

There are a lot of bad web developers out there. No, I'm not talking about people creating ugly sites, I'm talking about people creating sites that simply don't work or barely work.  Bad code seems to be a sad causality of everything moving to the browser. It's made programming immensely easier and simpler but it's also enabled really bad programmers to write really bad code.

A new initiative between some of the heavy hitters in the tech industry (Microsoft, Google, Apple, Mozilla, etc) aims to change that. is a site that provides tutorials, sample code, chat with other developers, and other things and has the goal of 'documenting the web' and providing web developers with the tools they need to write better code.

I spent some time on the site last night and, I have to say, it's pretty great. Their JavaScript tutorials cover just about everything a developer needs to know, and their HTML5 documentation is easy to understand, accessible to all skill levels, and very well written. It all comes together nicely into a site that should be the de-facto starting point for anyone getting started in web development or even those who've worked in the field a while but want to beef up on their coding chops and, maybe, learn something new

Sites like this are important. With more and more 'traditional' applications moving to the web and mobile and with major operating systems like Windows 8 and Ubuntu integrating web applications right into the desktop, strong web development skills are going to become the deciding factor that either enables developers to continue to develop for these systems or locks them out completely.

It's not your fathers Internet anymore. Everything is changing. WebPlatform seems to be ready to document it all.

Thursday, September 27, 2012

Can Ubuntu Survive Long-Term?

I've always been a fan of Ubuntu. While I started my Linux journey on RedHat,  I completely fell in love with Ubuntu from it's earliest days. This was a distro for the average Joe. This was a distro I could show my grandmother. This was a distro that would finally tip the scale into Linux's favor once and for all. Why would anyone want to use Windows or Mac when they had a fast, stable, secure, alternative in Ubuntu?

But the years have shown that quite a few people still do want to use Mac and Windows and that Linux adoption, pushed forward by Ubuntu, hasn't taken off the way I thought it would. But recent movement in the Linux community, and particularly around Ubuntu, have reawakened my hope that Ubuntu is a viable desktop for the future.

Of course, the big item on everyone's "Ubuntu is going to survive" list is Steam. Earlier this year, popular video game maker Valve announced that it would offer a Steam client for Linux. Well, specifically for Ubuntu.  For a platform that has been historically viewed as not for gaming and pretty much ignored by game makers, this is huge news. It means that game makers are now taking Linux seriously and seeing it as a viable platform that can support their products.

For their part, Linux users have stepped up as well. Several video game related Kickstarter projects have quickly and easily met their goals, the Humble Indie Bundle routinely makes more from Linux than any other platform, and Linux users have shown they are definitely willing to put their money where their mouth is to support good software. The anti-profit attitude that was the albatross around Linux's neck for so long is gone.

But what about grandma? Can Ubuntu really penetrate the home market to any large degree? Will it ever be commonplace to walk into a home and see an Ubuntu PC sitting on a desk? I believe the answer is a resounding yes.  Ubuntu has everything that most home users need to accomplish their daily tasks and still not be shut out from communicating with their counterparts in the Mac and Windows worlds.  The software is there, the operating system is becoming more and more intuitive, and Mark Shuttleworth might just see his 400,000,000 users after all.

Overall, I think Ubuntu is a contender. For as much as I complain about the Unity Desktop, it's one of the things I believe Canonical did right. They realized that they're not really designing a desktop for hard core Linux users; those users have probably gone to other distros. Instead, they are designing a desktop for users who are seeking refuge from the crazy and weirdly changing world of Windows and Mac. They are designing a desktop for mom, and dad, and grandma, and your little 12 year old sister. That's going to be the future of Ubuntu and that's who they should focus on.

In my mind, that's not a bad thing. Ubuntu's survival benefits us all. While I might not always like where they take the distro, I will always be a fan because they are doing more than just about anyone else to get Linux into the hands of the masses.

So the pundits say that the Linux desktop is dead. LONG LIVE THE LINUX DESKTOP!

Wednesday, September 26, 2012

Teaching privacy to the masses

I'm a privacy advocate. Moreover, I often professionally instruct people on how to protect their privacy both online and off. Unfortunately, it's a pretty fluid thing. What works now might be completely upended by new research or technology and, so, privacy remains a constant battle.  Because it's a battle that involves sometimes complex tools, the average person has, for the most part, given up. They take basic precautions to stop the most obvious intrusions but they stop at the things that require what they perceive to be a lot of work or a high learning curve.

Enter 'cryptoparties'.

Cryptoparties are pretty awesome. The idea is based on the concept of meetups and user groups. A small group of people get together to discuss encryption, privacy, and their related technologies, and to help each other learn how to use the commonly used tools. It's an open-ended environment where everyone's skill level is accepted and newbies and pro's mix together in a relaxed setting that allows information to flow freely.

And, as governments around the world tighten their grip on online communication and ramp up offline citizen survelliance, cryptoparties are exploding. Some parties report 50-75 people routinely attending these meetups and the number seems to be growing as word of them spreads.

This may well be they way to introduce ordinary citizens to cryptography and privacy. It's not intimidating, it's not overwhelming, and it comes in easily digestible chunks that even the most technologically inept person can understand. It's something that's been a long time coming.

If you're interested in seeing if there are any cryptoparties in your area or if you might be interested in starting one, pop on over to and check it out. It's cheap (free) and very easy to participate in. Best of all, everyone is welcome.

Friday, September 14, 2012

App Stores Revisited

In this post from August, I laid out my reasons for avoiding app stores like the ones on Mac, Windows 8, and Ubuntu.   There's a number of reasons why app stores are bad and there are a number of good reasons why developers should avoid them as much as they can.   But being a pragamatist, I also realize that, as independent developers, we have to feed ourselves. Sometimes, that means doing things that we find a but unsavory and making hard compromises in order to put food on the table and live a decent life.

App stores are one of those things.

I've got a few applications that I sell through services like GumRoad and, I have to say, it's tough. More and users are turning exclusively to app stores to find everything from small, free, utility software to major applications like PhotoShop and Quicken. Additionally, users are (incorrectly) begining to equate app store inclusion with security; if you're not in the app store, you can't be trusted but if you are, everything is alright. The sad fact is that we can rage against the machine as much as we want, we can blame users ineptitude at using their computers, we can shake our fist at the heavens but, at the end of the day, it's all about money and putting food on the table.

After selling software for over 10 years without being in an app store (for a good part of that time, they didn't exist), I'm not convinced that an independent developer must be in an app store to succeed. There's simply no way around it.  I continue to hate the idea and I think it's harmful to independent developer like myself, but it is what it is and I will be paying my $99 to Apple and Microsoft to be part of the club.

Times are changing for both users and developers. We either have to change with them or be left in the dust. It's time to pick our battles. I'm not choosing to die on this hill.

Thursday, September 6, 2012

Why the Bitcoin community needs standards

It seems like nary a week goes by without us hearing about the latest 'Bitcoin hack' story.  Bitcoin, a form of anonymous digital cash developed a few years ago, is hot and valuable and digital thieves want their slice of it. What the thieves don't realize though is that, by hacking sites related to Bitcoin, they are helping to shake the public's trust in the currency and costing themselves money by devaluing it.

So the question on everyone's mind now is 'how do we protect Bitcoin'?   But I don't believe this is the question we should be asking. When a bank is robbed, do we see endless stories about "US Dollar Hacked!" or questions about "How do we protect the US Dollar" (or whatever regional currency is in use)? Of course not! People don't lose faith in a currency when a bank is robbed because they realize the problem isn't with the currency but, rather, with the bank 

It's the same with Bitcoin. When an exchange like MtGox is hacked or a scam happens, it doesn't show a flaw with the currency. It shows a flaw in the security model of the organization that was hacked. And these are flaws that have been seen before and addressed. Banks dealt with these issues long before Bitcoin existed and they have good practices in place to handle them.

So how do we protect Bitcoin? First, we realize that the problem lies not with the currency but with the community. The community trusts people and there is currently no real way to validate that trust besides reputation on the BitcoinTalk forum. We need more. Much more.

What we need is for a group of trusted community members to come together and develop standards of security that anyone wanting to accept or store Bitcoins should follow. Then, we need the community to refuse to do business with anyone who doesn't follow those standards.  These practices could easily be patterned after those the banking industry uses and the problem would be mostly solved. It's really not that hard.

Next, we need public education. The fact that any of us hear 'did you hear Bitcoin was hacked" every now and then shows public ignorance that needs to be addressed. Every time we hear this we need to use it as a means of education. Explain to the person that Bitcoin was not hacked and is safe. Instead, a bank was robbed or a store that had Bitcoins was robbed. Put it in ways they can understand. It's the only way to start breaking through some of the fear and stigma surrounding Bitcoin and it's our duty as the community to do it.

Bitcoin is safe and reletively unhackable. The problem lies in the community. Thankfully, it's a problem we can fix. Indeed, it has already been fixed by a sister industry. Now, we just need to copy it.

Wednesday, September 5, 2012

URGENT: Help Gary Johnson get on the ballot on September 5!

URGENT: If you are in Oklahoma (or willing to drive to Oklahoma City) we need you TODAY (Wednesday). Attorney Jim Linger will be presenting our case for ballot access to the Oklahoma Supreme Court at 1:00pm CST. We're asking everyone who can to show up in support of Gary and Jim.

The Court is located at:

2100 N. Lincoln Blvd #4
Oklahoma City, Oklahoma

Once you're there, you'll need to ask which room the hearing is in but any court personnel should be able to send you in the right direction. Let's show that our voices will not be silenced and that we are behind Gary 100%.

Monday, September 3, 2012

Why Miguel de Icazza is wrong about the death of the Linux desktop

I have to say that I'm a bit put off by Miguel de Icaza and his statements about the death of the desktop. To be honest, his proclamation of the death of the desktop is so 'link baitish' that I have to wonder if he didn't do it just for that reason: publicity.

Miguel isn't an idiot and he's been around the Linux community long enough to know that 'Desktop Linux is Dead!' stories come out about once a year. They always cause a stir when they do and gets whoever said them a ton of publicity. With his star fading and nothing really exciting to keep it bright, is it so tough to believe that Miguel saw making a proclamation of his own an easy way to a little attention?

Don't get me wrong: he had good points. In fact, anyone who isn't an absolute rabid fanboy would admit that most of his points are valid. But Miguel misses the main reason people use Linux in the first place and _why_ they're willing to put up with the very annoyances he cited:

People love freedom.

People who use Linux realize that they'll have to make sacrifices. They realize that, sometimes, things break. They realize that, sometimes, hardware simply stops working after an upgrade. But they're willing to put up with it because Linux offers them freedom.  Of course, Windows and OS X suffer from these same issues but there's a major difference: users make the same sacrifices but get nothing in return. No freedom. No configurability. Nothing. Just a high priced piece of underpowered hardware.

I'm not trying to trash OS X here. For the crowd that uses it, it's probably fine. For people who value freedom, configuration, and control, it's not acceptable. Miguel has been using Mac for such a long time that I think he's forgotten why people love and use Linux in the first place. He's forgotten the passion of the community.  He's also probably not noticed how _good_ Linux is getting lately.

Distro's like Ubuntu are innovating at a much faster rate than OS X. They aren't' locking themselves down, they aren't putting all sorts of restrictions on their users. They're just working on making a killer desktop experience. And if you buy your system from a good vendor like , hardware compatibility issues are pretty much non-existent.

Miguel also talks about "switchers"; those coming from another OS like Windows.  Sure, Mac used to have the upper hand here. Less than two years ago, I would _never_ have recommended Linux to my newbie friends and family. I would have recommended OS X. But that's changed. Now, I routinely recommend Linux and you know what? For the most part, they _love it_. They love that they can set it up, learn at their own pace, configure it just to how they like it. They love how much software is available, how helpful the community is, and how beautiful the desktop has become. I haven't recommended OS X in months now and I don't see myself ever recommending it again unless companies like RedHat or Canonical really screw up and trash their systems.

Personally, I respect de Icazza but I think he's out of touch and not driven by the same values that a lot of people in the Linux community are. I'd challenge him to ditch his Mac for a month and work purely in something like Ubuntu Unity or even KDE then come back and tell us how he still prefers OS X. I suspect his view might change a little bit if he did.

Miguel does raise some interesting points that the community needs to address. We need to work harder, we need to constantly innovate, and we need to face the issues he brought up head on. If we do, desktop Linux will have a long and happy life and, who knows, we might even see de Icazza become a fan again.

Saturday, August 25, 2012

The Home and Property Ownership Myth

People take great pride in the things they own. How many times do we hear 'it's mine' as a neighbor gleefully  shows us their paid off car or home?  For decades, part of what was known as "The American Dream" was to own a piece of land and the house that sat on it. To be beholden to none and self-sufficient. It's a great dream and one that many people have worked very hard to provide for themselves and their families.

Unfortunately, it's entirely false.

Home and land ownership, at least in the United States and other 'developed' countries in the West, is a complete myth. It's a myth that has been carefully cultivated and sculpted to deceive in order to keep people captured within the system,  but it's a myth nonetheless. And the thing that scares those who perpetuate the myth the most right now is that people are waking up to the lies they've been told.

Let me explain...

The concept of 'owning' something is actually pretty simple: it means that I have something that I have either paid for or have been given that cannot be taken away from me without fraud or force. If I go to the jewelry store and buy a diamond ring, I own it; it's mine. Sure, you can knock me over the head and steal it from me or you can trick me into giving it to you, but that doesn't change the ownership, just the possession. You possess the diamond ring, but you don't legitimately own it because it wasn't an honest gift, trade, or sale.

Now let's look at property ownership. Let's say I take my hard earned money and go and buy an acre of land and  build a house on it.  I pay for both the land and the house in full and no part of it is financed. Would you say I own my property? Most would and it would be a logical answer.  But I would posit that I do notown my land and, am instead, purchasing the right to use it for an indefinite amount of time. At some point, someone may decide that they have the right to come and take the land that I paid for in full away from me and there is, sadly, not much I can do about it.  The aggressor I'm speaking of is, of course, the government and the tool they use to justify the force (and some might say outright fraud) is taxes.

See, paying for my property doesn't really mean I can keep it forever. It means only that I can use it as long as I meet certain 'demands' set forth by my local, state, and federal government. If I violate those demands my land, the land I paid for, can be taken away.  It's kind of like the mafia saying you can keep your store as long as you pay them protection money. Except the government has bigger guns and can put you in jail.

So, in the end, I can't really say I own my property. If I am paying someone for the right to continue to use something then I don't own it, they do. So really, taken to its logical conclusion, even when you pay for your land in full, the government still owns it. You're just buying permission to use it.

Taxes are used almost daily to take away property from peaceful people.  These people aren't criminals or thugs, but may be those who've fallen on hard times and find that they simply can't meet the financial demands of the state anymore. It doesn't matter if those people have 'owned' their home or business for 50 years, it can be taken away from them with the simple stroke of a pen from a judge.

Of course, this ownership myth runs deeply througout the rest of our lives as well. It extends to our labor, our money, and even our time. There's really no part of our lives that the government hasn't exerted some measure of ownership over by fiat. You might ask 'how can they do that?'. It's simple. It's the same way the mafia 'can' do it: they are more powerful than you.

How can the do it? They out gun you. Why do they do it? Because they can.

How can we call ourselves a free society when private citizens right to ownership is so restricted? If you think about it, how much do you really own? By that, I mean how much do you possess that cannot be taken away from you if the government desires. Precious little, right? Is that in line with what you believe a free society should look like? Is it reasonable? Is it fair?

In the end, it's time for us to start rethinking the way we interact with and react to government claims of supremcy in our lives. As long as we continually allow them to assert more and more ownership over both ourselves and our property, the easier it will be to control us. And that's what it really comes down to: control. If you control my assets, my labor, my property, my healthcare, you control me.

Personally, that is not the kind of society I want to live in and I bet it's not the kind you want to live in either. The question, then, is what are we going to do about it?

Thursday, August 23, 2012

Why I'm avoiding the App Stores

For the last few years, I've avoided developing applications for the iPhone. I developed for the Mac, I developed for Windows, I developed for Linux and even Android and Windows Mobile. But I steadfastly refused to write a single line of code for the iPhone. Don't get me wrong, it's not because I hate the iPhone. In fact, I think it's a lovely device that offers developers like me an amazing income opportunity. I avoid the App Store for something more fundamental than that: freedom.

Apple is one of the most demanding companies to work with as a software developer. In their quest for the mythical 'perfect' user experience, they define almost where every pixel of your user interface should fall and impose arbitrary restrictions that change from time to time with little to no reasons given.

I can't work with a company like that. I can't develop software for a company that seeks to control its users and developers to that degree. Apple has become the big bad boogyman that Microsoft once was and, unfortunately, it seems to be dragging the industry along with it.

App stores are the future on both the desktop and the mobile device. Users are quickly being trained that 'if it doesn't come from an app store, it's bad'. This is rather unfortunate for those of us who, for moral or philisophical reasons, want to avoid app stores while still offering our users great software. It's unfair to both users and developers.

For my part, I'm writing mostly web applications tailored to devices. Thanks to a plethora of open and (mostly) free tools, I can write web applications that look and perform almost no differently than native ones. Thanks to HTML5, mobile web developers are becoming first class citizens and we can eschew paying our tithes to the app stores. How long will this continue is anyone's guess. Companies want control of their users and the developer communities surrounding their devices. But, for right now, we've got it pretty good and it seems to be getting better.

So what can users and developers do? Ultimately, very little. Companies like Microsoft and Apple have shown they are willing to force users into specific models regardless of how unsightly and uncomfortable it might be. But user pushback might still have some value. In the end, web applications may never quite have the same access that native apps do and that's robbing the users of control of their device and the software that runs on it. Users should make it clear to device manufacturers that they want choice. There's nothing wrong with having an app store. But give users the freedom to install software from any source; not just the app store.

Users like you are the only hope the industry has of breaking this rush towards an app store run world. The only question is how hard are you willing to push back?

Wednesday, August 22, 2012

Will a lower Kinect price score new customers form Microsoft?

So Microsoft has decided to lower the price of their popular Kinect device from $199.99 to $109.99 in an effort to move more product and introduce new people and markets to this remarkable piece of hardware. I admit, the Kinect is pretty darn cool. And Microsoft has done an amazing job at getting the message out that 'the Kinect isn't just for playing games! You can use it in stuff like brain surgery'. That makes it even cooler. But is that cool enough to pull in new buyers at the lower price?

Not many, I predict.

At this point, pretty much everyone who owns an XBOX 360 has a Kinect. $199.99 wasn't too bad a price for what you got and the market seems pretty saturated. The real untapped (and growable) market is science and academics. Remember when I said above that the Kinect could be used in brain surgery? I wasn't kidding. Doctors have developed software to use the Kinect in various ways in the operating room and there are some pretty cool scientific uses outside of the medical community as well.

But here's the problem: academia and medicine (especially medical research) seems to be moving more and more towards Linux. The Kinect doesn't work with Linux. Yeah, there are a few hacky implementations that kinda-sorta get it to work but nobody doing serious research using Linux is going to get a Kinect. It's just not feasible.

So, in its true form, Microsoft is still alienating a whole segment of the market. These people don't care about price. Even if the Kinect were free they still wouldn't get one because it's a "Windows or Nothing" type of deal. With all the excitement around Microsoft seemingly embracing so much of open source and Linux, it's really sad to see them still clinging to the 'our way or the highway' mentality. It's time Microsoft wake up and realize that not everything has to be tied to Windows. The company could double their revenue tomorrow if they allowed more of their hardware to function on Linux or Mac. People want it, they just can't have it.

Shortly after the Soviet Union fell from Communism, there was a saying about the 'new' Russia: the new Russia looks a lot like the old Russia. Unfortunately, the same is true for the 'new' Microsoft. It sure looks a lot like the old one. And that, my friends, is really sad.

Monday, August 13, 2012

Want to send completely anonymous email? You need this!

I've been working on a little program for Windows, Mac, Linux, and Android called AnonyMail. AnonyMail is not the most revolutionary software you'll ever find in your life. It's not going to shift any paradigms or change the face of any industries. But it does one thing really well: it allows you to send completely anonymous email.

Let's face it, there are many reasons why you might want to send anonymous email. Maybe you're a corporate or government whistleblower with a hot item to share or maybe you're just love struck and too shy to confess your feelings to your crush. Whatever your reasons, AnonyMail is probably for you.

Want to pick it up? Great! For a limited time you can get it for only $2.99 and it doesn't require any activation once you buy it. You can find out more about the program or purchase it by going to this website. And, as always, if you've got feedback for me, shoot me an email!

Thursday, July 19, 2012

How much do you value your privacy?

I've got a close friend to whom I regularly send information about privacy issues.  Usually, we have a decent discussion about what I sent but almost all of our discussions end with him saying 'oh well, what can we do? It's happening and it's going to continue to happen so we might as well accept it'.   The implication, of course, is that we're all just powerless victims of government and corporations and all we can do is sit by and feel bad while they rape our privacy.  In reality, what people who adopt this defeatist stance usually mean is 'we can't do anything easy to stop it'. They're lazy.

I think the decision to take the necessary steps to protect yourself comes down to the question "how much do you really value your privacy?" Do you value it more than the minimal effort you'd have to expend to protect it? From the attitude of people like my friend, I'd have to say that most people probably don't.  Most people would really like for corporations and government not to violate their privacy but they aren't willing to actually do anything to prevent it.  They continue to use services that sell them out because they're easy. In some cases they even give their money to companies that violate their privacy for the "privilege" of having their privacy removed.

With the pervasiveness of the 'I can't do anything' attitude, you'd think actually doing something would require a Herculean effort. It doesn't. In a few hours, almost anyone can have a home server set up that handles email, social networking, anonymous web surfing, and much more. And if it's set up right they can also take advantage of it when away from home and on an untrusted computer.  Why don't people do that?

Laziness. It's not a technical problem. You can actually download pre-built solutions that you just have to click-click through to install. And if they can't do it themselves, they can usually pay a neighborhood kid or a local IT person to set it up for them.  These solutions fail miserably because people are too lazy to use them. They don't want to change their habits. They don't want to add one extra hoop to gain 20 levels of privacy. It's not worth it to them.

So every time I hear someone say 'I can't do anything' I immediately hear 'I don't care enough about my privacy to do anything'. That's what it really means.  So please, don't waste your breath in telling me there's nothing we can do to protect our privacy and still live in the real world. There's plenty you can do if you spend a few moments thinking before you act and if you're willing to put a little extra effort into protecting yourself.

It's time people take privacy seriously. And it's time we stop talking about it and start actually protecting it. How seriously do you take your privacy?  In the next few blog posts, I'm going to detail ways to protect yourself both in the digital and real world. It doesn't take much and you might find yourself inspired to act.

Wednesday, July 18, 2012

Bryan Lunduke packs his open source business model in for greener pastures

I was quite sad to read that +Bryan Lunduke announced that he was returning to the closed source model for all future development of his products. For those of you who followed it, Bryan has been doing an experiment in open sourcing all of his products and charging only for binaries. While initial response seemed good, donations seem to have tapered off until he could no longer afford to continue under the open source model. 

Some might see this as a failure; as proof that open source simply isn't a viable business model. I don't. I think it shows that there are many challenges to making a living doing open source development including user attitudes, the economy, and niche markets, but I definitely don't think it's a failure or proves that it can't be done.

I'm quite bummed out to see this experiment not take off like we thought it would. Bryan writes good software, has a huge platform to push that software (he's co-host of the Linux Action Show with +Chris Fisher), and pimps the hell out of his stuff.  This result was definitely not from his dedication or hard work.

That said, I think that focusing on the consumer market to make money is a losing proposition. Ordinary users generally won't pay money for software if they don't have to. And if the do have to, then they are generally not going to continually pay money for software they already own. The way forward, IMHO, is the corporate world. Make a product that the corporate world wants, open source it, charge for binaries, and charge for support. Sure, you won't make as much as if you just outright charged for the closed source product but, I believe,  you can make a living off of it.

So good luck in the future, Bryan. You made a good run, did a very cool experiment, and we all will learn from it. The old adage of 'you gotta do what you gotta do' applies here. A man has to feed his family. There's no shame in closed source.

Friday, June 29, 2012

How to feed yourself while writing open source software

About a month ago, Bryan Lunduke, a popular blogger and one of the hosts of The Linux Action Show, announced his desire to open source the software he wrote. Lunduke has released several popular software titles including Illumination Software Creator, 2299 The Game, and Linux Tycoon, all of which were released under a proprietary license.

Lunduke's goal was simple: generate at least $4,000 U.S. per month while he readily wrote, updated, and gave away his source code. At first, it seemed like it would work swimmingly. Lunduke met his initial funding goal in only 8 days and, as promised, placed all of his source code on GitHub. But, from there, things started to get iffy.

This week, in a series of posts to his blog, Lunduke announced that donations had fallen sharply and that he was seriously concerned.  He also announced he was making some changes to his model (an experiment, really, so we could have expected changes) to encourage people to donate. One of the most exciting changes in my opinion is his decision to sell the binaries of his software while continuing to give away the source code for free.

Personally, I think it's a brilliant idea and one that every single open source developer should consider as a way to generate continued revenue. It also allows you to live in the best of both worlds: (hopefully) making enough money by selling your software to feed your family while still giving back to the community. If there is an 'open source business model' I think this should be it.

Lunduke is innovating here. He's putting his money (and livelihood) where his mouth is in order to find or establish a solid open source business model. I commend him for it and I think we all should be this brave.

Good luck, Bryan. We're watching and cheering you on. And, hopefully, we're also buying and donating too!

Thursday, June 28, 2012

Why you should use RealStudio instead of what you're using now to develop new software

People are often surprised when I tell them I use RealStudio for a good majority of my development projects. Many people see it as a 'toy' language that's not really suitable for professional level work. Plus, why would someone pay to use a development tool when there is a plethora of free tools available?  While I admit that I've experienced my frustrations with RealStudio in the past (and I'll probably experience more in the future), there's one thing that keeps me coming back:


As a professional software developer, I value my time. My clients pay for my time so they value it too. And they don't want to pay me to muck around with tools, doing things that don't really contribute to developing their applications. They're hiring me to write code and, mostly, anything that's not actually writing code is a waste of time to them.

That's why I love RealStudio. It simply gets out of the way and allows me to do 99% of the things I need to do quickly and easily and it allows me to write cross platform code faster than any other tool.. Sure, I could mess around with Java or C++. I'm a good programmer in both languages. But I could have massive code written in RealStudio by the time I've finished setting up a project in one of those languages. Why would I waste my clients time like that?

Now, don't get me wrong: RealStudio isn't perfect for everything. For example, if you're writing system level tools or a mobile application, you're going to have to look elsewhere. But those developers already have good tools that they are very familiar with. For those of us engaged in the rest of the industry, there's usually no need for a beefy toolkit that gets in the way.

Have I piqued your interest? Do you want to write code in blazing fast time? Good! Now it's time to take the next step and download the 30 day evaluation of RealStudio. I guarantee, if you take time to learn the language you will never want to go back to your old languages again.

Wednesday, June 27, 2012

Highlights from the Google IO Keynote

Watching the Google IO keynote right now. Here are some highlights as they happen. Will flesh out details as we go.

  • Android 4.1 (Jellybean) - better frame rate, smoother animation
  • Available: Mid-July on devices
  • SDK is available today at
  • Android PDK (for hardware developers) available soon
  • Offline typing, very accurate, no need to be online to use it.
  • New languages
  • Camera Photos now have filmstrip view, phones are recoverable
  • Android Beam is better. More than 1 million NFC devices per week.
    • Tap to share contacts
    •  Tap to pair with Bluetooth devices
  • Tight integration with Google+
  • Search
    • Better search, presenting more information by default to the user using Knowledge Graph
    • Voice search is faster, more user friendly, and more accurate
    • Google Now: Smarter search based on current conditions and known information from the web. Will tailor information based on GPS location, calender, and past search. Updated in real time. Will watch your calender and tell you when to leave in order for local mass transit to arrive on time, will guide you to airport terminals to arrives in time for flight, and will update you in real time on your favorite sports team.
  • More than 600,000 apps currently in Play.
  • 20 Billion app installs across Google Play so far
  • 1.5 Billion apps installer per month
  • App encryption. Paid apps are encrypted to the device ID in Jellybean forward
  • Smart APK update: no more downloading the who APK ever time an app is updated. Only the updated parts will be download. Supported from Gingerbread and above automatically!
  • Movie and Television episode Purchasing. Now you can own your content instead of just renting it! Starts today.
  • Magazines! Buy single issues of popular magazines or whole subscriptions. Will offer 14 day free trial.
  • Google Play tight integration
  • 7" tablet designed by Google and Asus
  • Display: 1280x800 HD Display
  • Architecture: Tegra 3 chipset with a quad core CPU and a 12 core GPU!
  • Front facing camera
  • Battery life is up to 9 hours of video playback and 300 hours standby
  • Weight is only 340 grams!
  • Interactive content for magazine reading on Google Play
  • HD Video is stunningly clear
  • Google Chrome is the default browser on tablet
  • Compass Mode (look inside businesses) is hooked up to the Gyroscope for more realistic experience
  • Offline maps for use when you don't have a connection
  • Google Currents enables quick translation of great content into multiple languages
  • Games can take full advantage of the 12 GPU cores for a console like gaming experience
  • Available today at $199. Includes $25 credit to spend in the Google Play store + free content
  • Orders ship in mid-July
  • Small, Android powered computer
  • Tightly integrates with Google Play
  • Use your mobile device to control it. Streams content from Google Play
  • Based on the OMAP 4460 (same chip as the Nexus)
  • Plug into your speakers and television. Optical digital audio + micro HDMI, dual band wifi + ethernet, NFC, MicroUSB port and fully configurable (hackable)
  • Socially connected allows your friends to add content from their devices
  • Choose your screen: allows you to select which screen you want your content played on. Will pick up where you left off.
  • Preorders available today for $299. Ships in July
End of Keynote

Tuesday, June 26, 2012

Google I/O starts TOMORROW!

So I'm probably a little more excited about Google I/O than I should be considering that I won't actually be attending it this year.  Time constraints, projects, other stuff, keeps me here in Oklahoma instead of sitting at the feet of the great ones soaking up all the new hotness that will be Google services and products over the next year.  But that doesn't stop me from feeling that surge of excitement - the same surge of excitement I feel every year around I/O time. It's like something electric is in the air. Everyone is excited; everyone is pumped and ready to pop with anticipation.

I'll be watching a lot of the conference being streamed online starting tomorrow. I've heard a few rumors about what Google's going to announce (including it's latest update to Android which MAY NOT BE 5.0) and possibly a Nexus tablet. I'm really hoping they announce some cool stuff around HTML5 and Android and, maybe some new web API's we've all been waiting for.

Whatever they announce, I'm excited. Sure, I've got my problems with Google but it's hard not to get excited when I/O time is here.

What are YOU most looking forward to?

Saturday, June 23, 2012

Find the distance between two GPS coordinates using PHP

I've been working on a few mobile applications lately that need to find the distance between two GPS coordinates (usually, the local user of the application and others who may or may not be within a certain distance of the local user). Since most of my mobile apps are built on top of Phonegap, I use a PHP script on the remote server to calculate the distances.

For a while now, I've been using a really cluncky method that was usually off by several hundred (and once or twice, at least a thousand) feet and I've been searching for a better way to do it. Thanks to this blog entry, I now have that better way.

Anyone even remotely familiar with PHP should be able to understand the code below and modify it for their own purposes. I'm sharing it because I hope it saves someone a bit of time.

$earth_radius = 3960.00; # in miles
$lat_1 = "47.117828";
$lon_1 = "-88.545625";
$lat_2 = "47.122223";
$lon_2 = "-88.568781";
$delta_lat = $lat_2 - $lat_1 ;
$delta_lon = $lon_2 - $lon_1 ;
# Spherical Law of Cosines
function distance_slc($lat1, $lon1, $lat2, $lon2) {
  global $earth_radius;
  global $delta_lat;
  global $delta_lon;
  $distance  = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($delta_lon)) ;
  $distance  = acos($distance);
  $distance  = rad2deg($distance);
  $distance  = $distance * 60 * 1.1515;
  $distance  = round($distance, 4);
  return $distance;

# Example Usage
$myDistance = distance_slc($lat_1, $lon_1, $lat_2, $lon_2);

Monday, June 18, 2012

Skype 4 finally released on Linux; thoroughly disappoints

You could say Linux users had high expectations. After going for more than 3 years without an update to Skype on Linux, Microsoft titillated users a few weeks ago by saying they were excited about a big new update for the program.

Disappointed is a nice way to describe how most users probably felt.

In the end, about all you can say about the new version is that 'it's pretty'.  Visually, it's a bit more appealing than previous versions of Skype and it's nice to have Microsoft actually supporting Linux, unlike Skype's previous owners who let it languish around un-updated for 3 years, but that's about it. There's nothing useful in the update at all.  Not even for its most requested feature on Linux: support for group video chat. That's something the Windows version has had forever. It's not even that hard to do and yet Microsoft chose not to include it in this update.

I hope this was a goodwill gesture from the company to tell us "we're supporting Linux! Expect more' but something tells me we might be looking at a looooong road when it comes to Skype on Linux. We will forever be the bastard stepchildren of the Internet.

In the meantime, I'm happily using Jitsi!

Wednesday, June 6, 2012

Can open source software be funded through donations?

Bryan Lunduke
I've heard it before and I'm sure I'll hear it again: you can't make money writing open source software. Looking at the stats for contributions to popular open source projects, one would have to agree. For example, the developer of Ardour, the popular open source audio editing package, pulls in less than $2,000 a month and has to supplement his income by doing other consulting. It's enough to drive an open source die hard back into the arms of writing proprietary software.

But maybe they're all doing it wrong. Bryan Lunduke, host of The Linux Action Show and owner of Radical Breeze Software, wanted to find out if an open source developer could indeed survive on contributions alone. So he set a goal: if in one week he reached $4,000 in donations, he'd open source ALL of his software. One week later, he's reached $4,001 and is making good on his promise.

This shows that it can be done. Now, granted, $4,000 isn't a lot of money and it would be kind of hard for a developer with a family to survive on but it was done in ONE WEEK and is just a start. Is it sustainable? We'll see. But, for now, the point was proven that it can be done and we're getting some GREAT software put into the open source ecosystem because of the generosity of people like YOU - people who believe in free and open source software. Now, there's no excuse for the rest of us to keep releasing proprietary software.