A blog by Jacob
Recently I got a Chromebook, which has forced me to step up my search for a good web-based IDE. I only looked at the free-level capabilities, looking for something that would handle multiple projects and maximum flexibility. Here are my top three recommendations:
Koding provides a clean interface with a lot of flexibility. In particular, I like that they provide a full AWS virtual machine. This is particularly nice for those who want to do more than just code, but to design or experiment with an entire software stack. However, their interface is a little bit less like an IDE and more of just a terminal and editor connected to that virtual machine.
Cloud9 works more like a good IDE where you can set up a build and run tasks. But the build and run environments seem to work outside of your particular terminal environment, which makes their workflow different than it might be on other platforms.
Codeanywhere maybe be a good mix. For code editing it provides a little more than a text editor, and doesn’t want to control or own your project. You can actually keep your code external, and access it through (S)FTP, Google Drive, or Dropbox, and simply access it through code anywhere. But the still also give you a “DevBox” which is something like a VM. Additionally, Codeanywhere provides mobile apps (which I haven’t tried).
The problem with all of these is that they can’t access code that you don’t have on the Internet, for example, code in your private Intranet only. For that I found that I could quickly install the open source Codebox IDE on my private Intranet server.
Springpad is kind of like a mix between Evernote and Pinterest. It was a very clean personal organization site that I thought was pretty decent. Sadly, they announced this week that they are shutting down.
It is always a little sad when I see such a good product and many hours of innovation just die.
I’ve been looking for ways to write code inside a web browser. There are a number of offerings, and I plan on giving a serious look to the free ones.
So far, I’ve come across runnable.com, It seems like a good site to share code snippets that can be executed right on the site. Kind of like a YouTube-like site for sharing code. It isn’t the sort of site that you would want to code a large project, but good for sharing just a chunk of code that might be useful by others or useful for programming instruction.
Some of the things I am looking for when writing code in the cloud is the ability to import, export, run, and write code easily. I am especially looking for the ability to work along side my existing development practices on my home computer.
I’ve seen many software products have a version numbers in the form of:
Where X, Y, and Z are integers. For example, I’m using Linux 3.8.0.
Communicating a software version number is important because it communicates the fact that the same software title can be different between versions.
Unfortunately, when using X.Y.Z numbering, too many software publishers leaves the meaning out of the components of the version number. Often changes in X mean “big change”, changes in Y mean “medium change” and changes in Z mean “small change”. So software of version 3.2.1 is much better than version 1.2.3, but version 1.0.2 is only minimally better than version 1.0.1.
The problem with this is that it it is subjective. What a publisher considers a big change might not be important to a particular customer. What a publisher considers a small change might fix a show-stopping bug for another customer. When it takes someone’s judgement to decide the version number of the next release, your version numbering scheme is messed up.
When choosing a version numbering scheme it is important to remember how the version number will be used. Sometimes, a customer wants to know how old a software release is, in which case a date-based scheme might be appropariate. In many situations, a customer only wants to know if one version is newer than another version. In this case, I might suggest a simple numbering scheme where version 20 is newer than version 19 is newer than 18.
Firefox uses an X.Y scheme where X is the release number and Y indicates how many bugfix re-releases have been made. For example, Firefox 21.2 would indicate the second bugfix release for the 21st new feature release of Firefox.
When developing a software library, I like to use an X.Y.Z numbering scheme. If the API to the library is backwards incompatible, then X increments (and Y and Z reset to zero). If I add a new feature, then I increment Y (and Z is reset to zero), and I increment Z if I fix a bug. Consumers of my library can look at the version numbering to help them quickly decide whether or not they should update. If they see only Z change, then they should be able to get the only the bug fixes and improve stability. If they need to use a new feature, they should use a version with an incremented Y component. If the X component of the version changes, the library should not be updated until the developer has an opportunity to review the changes and adapt the consumer of the library.
If you are generating QR codes, you should try for a QR code that uses only uppercase characters, numbers, and some basic symbols. This way, the code only uses 5.5 bits per character. If you were to include lowercase characters, then you use 8 bits per character.
For example, encoding HTTP://SQUAREGALAXY.COM results in this image:
But encoding http://squaregalaxy.com (lowercase) results in this more complicated (harder to scan) image:
Posted in Technicalon Mar 15, 2013
In this year’s spring cleaning, Google was bold enough to kill off Google Reader, a product that they had been supporting for over 7 years. Considering Google’s lack of restraint in discontinuing even popular products, the list of Google services that may get cut next suddenly gets bigger:
Google Offers tries to play in an over-saturated market of daily deal sites. Google may decide to stop offering Offers directly, and role that functionality into Google Shopping.
Google Checkout plays better in some use cases than in others. Google may decide to refine the scope of Wallet/Checkout, perhaps restricting its use as a third party checkout system, where Paypal maintains a stronghold.
Google Finance hasn’t seen a significant update in many years. Being a non-essential componenet to the Google portfolio, Finance may find itself in the same situation of Reader with decreased usage and lack of profitability.
Google Toolbar for IE will likely see decreased usage because of IE 10 and Windows 8. Most Google fans will probably just use Google Chrome instead, leaving little motivation for Google to continue supporting Toolbar.
Google Picasa is an oddity. It doesn’t appear to fit well into any of Google’s main strategies. It is also one of Google’s few remaining desktop installed software offering. I don’t think Google will kill Picasa, but they may decide to sell it off to someone else.
Google Talk for Windows may go away as Google pushes people to use chat in Gmail, Google+, or mobile apps. Talk may service spring cleanings depending on how it plays into the Google Apps for Businesses strategy.
Google Voice allows you to have a single phone number that connects to all your phones. But with many people ditching land lines in favor of their (Android) phone, Google Voice is looking more and more obsolete.
Orkut probably still has quite the following in various geographies, but it seems odd that Google would want to continue two competing social platforms.
Google Alerts is a minor feature that isn’t very well used, so I could see it going away in favor of other Google efforts.
Google News is a lot like Google Reader, in that it aggregates articles from all sorts of other sites, and doesn’t contain any advertising. With more people being alerted to news from their social media sites, and with news providers requiring paid subscriptions for online access, discontinuing Google News would be about as bold as discontinuing Google reader.
Today Apple announced some new portable devices, perhaps most notably, the iPhone 5. Here are some of my thoughts about today’s announcement: