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:

Speed.

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.

PROJECT BUTTER (Jellybean)
  • Android 4.1 (Jellybean) - better frame rate, smoother animation
  • Available: Mid-July on devices
  • SDK is available today at developer.android.com
  • 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.
GOOGLE PLAY:
  • 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.
NEXUS  7 TABLET!
  • 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
PROJECT TUNGSTEN (NEXUS Q):
  • 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.