Dreams and Thoughts

Most of my day is spent staring at the blinking cursor of my text editor. This is true for many people nowadays as most office work happens on the computer, but for programmers – the very same individuals whose creativeness are the building blocks for software – can’t seem to find a workflow that feels right. As a developer I find myself getting frustrated every time that I have to reach across my desk for a mouse, switch to a separate application to look up some documentation, or drop into a terminal window for some quick bash kung-fu. I am a firm believer of using the proper tool for the job, but I have been writing code for over ten years now and have yet to find something that fits the purpose.

Most web and application developers that I know are using proficient in many text editors. The editor that they are using is either a result of the product that they are working on, or past experience using a particular piece of technology (extension, script, plugin, etc) that makes the daily grind a little better. I rarely find a developer who doesn’t have a problem with some facet of the text editor that they are using, and many of which feel that they are stuck for one reason or another with a particular editor because of the feature set it offers.

One thing that seems to be a common theme among these editors is that they sit somewhere between a simple text editor, providing only basic functionality of text formatting, and a full-blown suite of tools which is offered by enterprise packages such as Microsoft’s Visual Studio which costs thousands of dollars and only works on the Windows platform. Each has its specific use case, and I would never suggest creating a Visual Studio project file to edit a README file using the Markdown syntax, but every time that I have the opportunity to use Visual Studio I always walk away feeling let down the next time I drop into Emacs.

A key feature that I think is necessary in a development environment is the ability for the software package to support live documentation. This means that I want to be able pull up a quick blurb about a particular API call that I am about to make, either be it in a standard library that ships with the language of my choice, or the application project that I am working on. The discoverability of documentation needs to be in depth, but not something which clutters my code window.

The editor software needs to be able to be extended on a per project basis. There are often cases where a particular set of tools is necessary for one web project, let’s say something like CodeIgniter which uses the Sparks package management system, and another application that is written with Ruby on Rails and using the RubyGems system for extensions. And it is not merely easy just to say that all PHP applications will use the mode for PHP, and all the Rails projects will use the mode for Ruby, because often there is a frontend component which shares context between the two and is written in a language such as JavaScript (or more recently, Clojure).

Testing each project now becomes an absolute pain in the ass. I may need to manage the version of Ruby that I am running, or perhaps bounce the Apache instances so that my new configuration is picked up, or even worse the web application needs to be executed from a browser, I need to tail a log file, and pray that the browser debugging software is updated. That’s way too many context switches.

I believe that there can be a much better way of handling the day to day workflow of software development. There is a simple solution to this problem that seems to have been overlooked with fancy editors designed to be visually pleasing on the Mac. What do you think your ideal development environment would be? All developers hate writing documentation, but it is the first that we reach for when we want to understand how to work with a library or call a standard API. We cry out aloud when our text editor doesn’t index the code that I am writing and provide autocomplete. And we bitch when extending the editor becomes a chore which sometimes rivals the problems we’re trying to solve.

There is a better way to handle this.

Apr
05

About a week or so ago I came across a blog post which redirected me to the Mozilla’s BrowserQuest project. The free multiplayer game, which is completely built with web technologies, was introduced as a demonstration of what we can expect to see in the upcoming years for web-centric game development. BrowserQuest was developed using a mixture of HTML5, CSS3, and Javascript (client and server) to create a multiplayer game that can be experienced wholly through an up-to-date web browser.

The first few days that  I was trying to play the game Mozilla’s servers must have been swamped. I was unable to actually get beyond the initial screen, but thankfully Mozilla posted the source code for both the client and server, completely written in Javascript and available on Github, so I was able to satisfy my technology curiosities. The past few years with the introduction of more powerful, freely available, open source Javascript engines such as Mozilla’s own SpiderMonkey and Google’s V8, have paved the way for a language which is interoperable with C/C++ to be easily embeddable and integrated with existing application systems. Node.js was made available to quickly build scalable event-driven servers that can power whole service-oriented backends, and this is precisely the same technology used in BrowserQuest.

This brings me back to my roots. When I was younger what brought me into the realm of programming was both web development, and text-based roleplaying games. Along with a few friends I ran what is commonly referred to as a MUD, or Multi-User Dungeon, a small application which ran on a remote machine allowing players to connect over the Internet. This game was completely driven by text; movement, combat, and storytelling were all expressed with text, sometimes an emphasis using bold and italic font styles, by the time that I got to the game coloring was available as well, but the game itself was completely driven by imagination.

I can see myself getting back involved in a community developing a game that is available for players to connect to, quest with their friends, and being there to generally provide an escape, an alternative, to the high-priced, resource demanding, massive multiplayer games that exist such as Star Wars and World of Warcraft. I can’t wait to see what the development community comes up with, and I hope that I find the time to participate in what I believe to be the reemerging platform that will hopefully spark a new generation of programmers willing to tinker, hack, and make some awesome art.

Nov
28
Posted by JB at 7:35 pm

image

I do not plan to make a frequent habit of this, but I had to try out the WordPress application for Android. The last time I remember using the mobile version was posting via an email sent to a special address that was set up for the blog. That particular medium for blogging wasn’t half bad, but I found that formatting was less than stellar.

You can often tell that I do not go back and edit ny posts unless there is some kind of obvious oversight. Previously, I had cats like Daniel Boston and Kenny Katzgrau for that jazz, it wasn’t my job in those days, and I don’t really care for it now. Kudos to those two for taking my midnight ramblings and making them legible for newspaper print.

Lately I have been trying to get back to my roots as a writer, and entrepreneur, because I feel connected much more to those industries than where I see myself now. Ideally they would both intersect, with some code and software involved, but sometimes that’s not what is in the cards for you.

I would love to be able to provide wisdom to today’s youth with the coined phrase of “take the road less travelled,” but I prefer to tell them to make money, get drunk, and party like a fucking rockstar. If anyone complains, screw them, you only live once, and be sure to write their asses off when you make your fortune.

Just remember that your fortune and legacy doesn’t always need to be valued by your monetary worth.

Sent from my Android.

Jul
26
Posted by JB at 11:08 pm

At some point near the end of last week I decided to try out this new fangled operating system that Apple has been toting for the better part of the year. I used their Mac App Store but within the first few minutes I ran into some issues that should have been a forewarning to spending the time to be an early adopter of Lion.

Earlier in the year I installed a developer preview of Lion which did not seem to include too many features. In fact, I did not even remember that I installed this, and when it came to the Mac App Store at first it believed that I already had Lion installed. After some searching through Google and forum posts I was able to figure out how to reset the Mac App Store and get Lion downloaded. The installer kicked off without any problems. This is when the proverbial shit hit the fan.

I was greeted with a failure message that basically told me jack squat. My disk was corrupt and unable to be repaired by the Lion installation image (or the bundled Disk Utility program). This was a real problem. After some quick searching some fellow patrons suggested trying a repair installation with the original Snow Leopard installation disk. I tried this and was met with a little success – I was now greeted with a seemingly updated installer that included Safari and an updated version of Disk Utility. But to no avail was I able to actually get Lion installed on the disk. My laptop was effectively a brick.

Since I was actually busy this weekend (riding the Monster around New Jersey) I decided that I would make an appointment to see the “Genius” bar at the heralded 5th Avenue Apple Store in New York City. This was a big mistake. Despite making the appointment an hour and a half ahead, arriving fifteen minutes before my appointment, it took them a full hour to actually see me. Not the best service thus far. The “Genius” that I met with was baffled at the problem claiming to never have seen the installation do this to a laptop. Great.

What really complicated the matter was that I was using FileVault to encrypt my home directory just in case my laptop got stolen. If it wasn’t for this fact I would have merely copied all of my music, photos, and documents over from the directory to an intermediate storage device. After completing the re-installation of Lion I could copy it over and all is good. But, rightfully so, this was not the way to actually complete the measure.

Now I am writing this without actually attempting to open up the encrypted sparsebundle that my data is stored in. I have a copy on an external drive that I mounted in the Lion installer, and copied over the files from the Terminal application. The actual Lion installation (after using Disk Utility to erase my main disk) went smoothly without a hitch. All of my applications were installed and ready to go after about an hour and a half.

The only thing that remains right now is getting the sparsebundle mounted unencrypted so I can extract the data, and figuring out why my instructions for using a third party device to backup with Time Machine don’t work. It is looking like that Apple is requiring the use of AFP protocol for Time Machine backups. This won’t be too much of a problem as the open source netatalk solves this for all of you Linux users, but for people using an integrated device that runs a stripped down version of Linux it may be a little bit of a pain to get this on the device. Nevertheless, I am on the problem.

Mar
29
Posted by JB at 9:43 pm

After talking about it for several years now, telling my friends (and family) that I would eventually get around to doing it, and working through some good times (and hard ones) to get it ready, I am both happy and relieved to flip the switch for registration on the Type Aloud. I spent the night putting the final touches on the release candidate while watching Arnold bust some ass in Eraser.

Type Aloud has been a dream of mine for at least four years now. I envisioned a writing and reading community where people will not only be able to share their stories (and poems) but also get collaborative feedback for both editing, and hopefully, print publishing. Some of the most intriguing writing I have read came from people that were not published professionally. I look forward to being able to read (and write!) much more than I have in the past with this service. My primary goal is not to be profitable: Type Aloud is a service that I want to use myself. I am a lucky man if I am able to break even.

For those of you that consider yourselves an amateur writer, or anyone who has the itch to tell a good story, please head on over to Type Aloud where you can sign up and begin writing! Over the next couple of weeks I am going to start posting some of my own work, and I will be (trying) to get some local writers to do the same. The more, the merrier.

Now its time for me to go to bed.

Mar
02

Today was a very long day, and I expected tonight to be quite the norm lately (uneventful) but spending a little time tonight reflecting actually has turned out to be something, at least that I think, will make me better in the short term. The past couple of months have been a wild ride for many reasons (there really are many) stemming from relationships, to work and even friendships dwindling and being replaced by other, more important social relationships. I usually write my thoughts in a little black book that hopefully will be burnt in the not-so-distant future, but I’ve told myself lately in order to promote Type Aloud I need to do a little more to get people to be interested in the person behind the website, if that sounds like a crock of shit or not.

One thing that I have not (ever, really) been afraid of is to state my opinion. I don’t pride myself in being an idiot; I know when to keep my mouth shut even when I shouldn’t, but I also know when people need to hear what I have to say. Just more lately the person on the other end of my verbal sparring tended to push back without realizing that I was merely giving advice and not trying to start World War III. There are just times in life that you need to hear the bitter, brutal, honest truth and sometimes you really only listen to it from people that you trust. There are other times that you are too stubborn to listen at all, and then you tend to get bitten in the ass.

I have been called several names by people that do not really know me. Some people call me a nerd, a geek, very few people call me a genius, but I tend to hear the utterance of asshole more than all of them. I know that I can be an asshole if I want to be, but I believe that it boils down to people not quite understanding where I am coming from. My view on the world is quite abysmal; I am not what I would describe as religious person, and I generally do not really have any faith in the human race as a whole. Really, how could I? The world is full of death, famine, war and generally a bunch of unhappy people that are content with being exactly that: unhappy.

If I am bothered by something I am damn well going to voice my opinion. Now, I am lucky enough to live in a part of the world where I am not going to be castrated for doing so, but even those around me tend to complain and bitch more often than not. My commute home from work I hear (and see) people that have given up on life. They are tired, hopeless, shell of human beings who go through the motions because they feel as-if there is nothing left for them to live for. This is the kind of shit that makes me sick. I think one of the only things I enjoyed about not being in the city landscape is that there are generally less people, and a smaller sample of people meant that you saw a less amount of unhappy souls.

This is partially the reason why I started Type Aloud; some of the best memories I have are those where my nose was stuffed in some book. I can also admit that I did what most kids do and leafed through the pages until the end because I did not want to read the whole book if it bored me. Shit, I still do that with novels that I purchase because I realize three-quarters of the way through that it is a piece of crap. There is just a part of me that needs to know the ending of a story in order to sleep at night.

For me, Type Aloud represents a place that all of these sad souls can come home and lose themselves for a few hours in reading. Despite the people in my life that are causing problems, think that I am an asshole, or otherwise have ill feelings towards me and mine: I always have the people who spend their time and effort writing their pains, wonders and dreams onto digital parchment. That’s the kind of life that I hope for.

Mar
01
Posted by JB at 11:06 pm

Well, tomorrow is officially the day that Apple is going to update the iPad. Many of these tech blogging sites are wondering if we’re going to possibly see a Thunderbolt (Light Peak) port on the iPad, or will we be seeing a SD card reader, perhaps dual cameras or how about that brand spanking new Retina display that the iPhone has been sporting for over a year? All of this shit would be absolutely great, but as someone that doesn’t own an iPad (and doesn’t plan on buying one in the near future, sans possibly developing applications) I am looking forward to one thing, and one thing only: the possibility that tomorrow we may finally see an iTunes cloud streaming service.

It is a widely known fact that Apple has been purchasing some real estate in North Carolina to house a massive data center to what they’ve told investors is for their expanding cloud services division. For the past couple of years Apple has been trying to get people to pay $100 per year for MobileMe when you can get the same services, with nearly the same Mac integration, for absolutely free from Google. Apple told its investors that this new data center is going to be strictly for MobileMe and iTunes; pray tell what exactly does iTunes need a billion dollar data center for on the east coast? MobileMe sure as hell doesn’t need it; the service is crap, and most people only pay for it because they forget to take it off their credit card after the first three months they’ve owned a new Mac.

Another point of interest is that Apple purchased Lala, a music streaming startup, and has done absolutely nothing with the service to date. Steve Jobs sure as hell does not buy companies unless he plans on using their technologies, because otherwise they would just roll their own. You can bet your dollars that tomorrow we’re going to see three things: a brand new iPad, without a Retina display, with two cameras, a bumped up processor and memory; a new take on the MobileMe offering, most likely free and including some kind of premium services ala Dropbox storage; and a cloud streaming service powered buy the Lala purchase.

If we’re lucky iTunes catalog streaming from the cloud. That would absolutely make my year. And I am about to launch a a website myself!