Kudos to Google Plus for Phrasing

The Liberated Software blog would like to express great pleasure in the name that Google+ gives to the process by which you can download your account’s data to your local computer.

image

People Jeff Hates – My Blog of (Mostly) Lies

A few weeks ago while discussing a tech issue with my officemate (@thomaslangston), I realized that the best way to convey my thought was to draw it on our whiteboard in Venn diagram form.

We were discussing the issue of mobile location tracking that had just made it into headline news as something that seemed to be universally agreed upon as “bad,” yet I was convinced that there had to be some subset of those complaining people that also use social location services such as Foursquare.  I determined that whoever that subset is, should it exist, is worthy of my hatred.  Thusly, the center, overlapping piece of the Venn diagram in this instance was labeled “People Jeff Hates.”

Now I want to be clear on this point: I’m not a hateful person.  I might curse and use a certain finger at other drivers in traffic on occasion, but really, I’m a pretty agreeable guy.  That’s why we got a good laugh out of the overlap of “People Jeff Hates.”  I’m just not hateful.

The diagram stayed on our whiteboard for a couple of weeks until one day, in another conversation with the same officemate, I realized that I could comically make my point yet again simply by erasing the two outer labels (“People complaining about location tracking”, and “People who use Foursquare”) and replace them with new labels that were relevant to the current conversation.  The humorous bit, again, was that the overlap in the center remained “People Jeff Hates.”

Now that two of these diagrams had been thought up, it became a game to think of more.  The challenge for me is like I said- I’m just not a hateful person.  But, after much effort, I was able to come up with several more ideas, almost entirely tech themed.

Next thing I know, my coworker is drawing them crudely in Gimp and creating a blog for them to live on.  And that’s how People Jeff Hates came into being.

It gets updated each week on Wednesdays and now holds a couple months’ worth of content.  I only have a few more weeks’ worth thought up so I’ll have to go think up more people to hate.  I’ll likely have to occasionally break from the tech-theme and I may even mix it up with some non-Venn diagrams, but we’ll just have to wait and see.

I Taught Object-Oriented Programming in C++ This Semester

As I type this, my students are hard at work on their final OOP in C++ exam.  Without exception (pun intended), I think all of them are going to do well.  They’ve learned a lot this semester and pleasantly surprised me with some truly creative code and ideas.

When I was in school, I had but a handful of I.T. professors that I thought were worth very much.  This isn’t a poor reflection on the schools I’ve attended, but a reflection on my cockiness as a young student who, since the age of 13, spent weekends studying code rather than going out with friends. 

That small handful of professors that did stand out though were amazing.  They helped me leap hurdles.  I knew to keep in touch with them.

A year or so ago, I was invited to be part of a curriculum advisory committee regarding Information Technology courses at the community college I attended for one year nearly a decade ago.  That allowed me to maintain a friendship with one of my professors while networking with several more.  In the Fall of last year, they called on me to see if I would be interested in teaching a section of the OOP in C++ course, with a small intro to C# at the end of the semester.

I’d spent years taking classes and always wondered how I would do if I were on the other side of the podium and presenting these topics, which I adore, to a group of eager (okay, maybe some apathetic) students.  I told them I would do it.

Now the Spring semester has flown by and my small class sits taking their final exam.  I’m amazed at how quickly this has all passed. 

I am unable to testify as to whether or not I have been any good at teaching.  My students started my class with a basic understanding of programming and they are leaving with a deeper understanding.  By this measure, I must have done alright.  I’ll leave it to their judgment to determine my qualifications.

What I can say though is that it was fun.  It was really fun.  Seriously, I just got paid to spend time every week working with some local budding developers and help them figure out Object-Oriented Programming!  This has been every bit as fun and gratifying to me as I had hoped.  The school has invited me to teach the same course again next Fall and I look forward to meeting my next class of students.

Flash Hatred Seems Very Unfortunate

Lately it seems as if the whole tech world has gone anti-Flash and I really don’t think it wise.  Apple is leading the charge and plenty of users seem to be following.  But why?  Flash used to be pretty well accepted and the ability to create Flash apps and code ActionScript used to be pretty well coveted.

From my perspective, doing some light Googling and talking with my tech coworkers and friends, it all started after Adobe bought Macromedia.  Once Adobe held the reigns of Flash, the subsequent version of the Flash player didn’t perform well under MacOS.  Apple users quickly began hating Flash implementations because they ran slowly and hogged their system’s resources.  I would probably hate that too, but since I don’t own a Mac, I really don’t care.  Linux has had a fair share of difficulties running Flash, but those have largely been taken care of now.

It didn’t help Flash’s case that so many developers were using it to create some of the most annoying ads ever conceived.  The stupid dancing silhouettes and pre-animated renderings that became the inexplicable staple of a certain debt management company were some of the worst ads ever inflicted upon mankind.  You can get around them with simple ad-blocking plugins for the prominent browsers, so I really don’t see why I should care about these either.

Plugin development didn’t stop at ad-blocking though.  It has extended into Flash blocking plugins that only allow the Flash object to run once the user has clicked on its region of the page, thereby acknowledging that it is OK to run this Flash app.  Since major sites such as YouTube, Hulu, Shacknews, IGN, and many others that I frequent based their core content on Flash video streaming and user interface, I just don’t see the point in having to make an extra mouse click for each piece of content I want to see.  So again, I just don’t care to deal with this.

For most of its life, Flash had little competition.  Its primary original competitor was Shockwave, which just happened to also be developed by Macromedia.  Things have changed though in recent years with the advent of several alternatives:

1.  Microsoft Silverlight is a direct rival and has the advantage of letting .Net developers make use of it without having to learn a new language. (Flash –> ActionScript ; Silverlight –> All .Net languages)

2.  The rise of sophisticated UI-centric JavaScript libraries, such as jQuery and many others has removed the need for the dynamic controls that Flash traditionally provided.

3.  JavaFX is another competitor released in the last couple of years by Sun.  Its goal is to provide a Java based alternative to Flash and Silverlight.

4.  HTML 5 is on the rise and will be replacing many of the video streaming Flash apps.  YouTube is currently beta testing the HTML 5 version of their site and player.  It’s pretty nice actually.

But the worst blow Flash has been dealt is from Apple.  The iPhone, iPod Touch, and iPad all prohibit Flash from running.  This is partially to ensure that native applications running on the iPhone are governed by the App Store nazis.  The result though is that there are now millions of people browsing the web that can not run Flash. 

Web developers have had to create mobile versions of their sites so that non-Flash-enabled phones can still make use of their functionality.  As more and more sites lean away from Flash and toward alternatives, such as the soon-to-be prevalent HTML 5, the need for Flash and Flash developers will continue to dwindle.

I actually am very disappointed by this.  Through the years, I’ve played with several versions of Flash, although I’ve never deployed any of my work to production web.  Well, a few tests here and there, but nothing that ever made me or my company any money.  But I enjoyed it; I enjoyed the simple but deep language of ActionScript, only lamenting that the code seemed to be distributed in all sorts of corners of my app on the timeline.  Calling web services couldn’t be simpler and Flash doesn’t force you into asynchronous calls the way Silverlight does; I like having the option to go either way.

What I see happening is that a company with a well established product that has a history nearly as long as the web itself is being forced into defeat because it didn’t provide an efficient client to another company’s OS.  An OS that has less than 10% of market share

Please comment on this post if you disagree with me, but I can’t help but see this as a shame.

Trying out the Windows Live Writer

This blog entry is entirely written using the Windows Live Writer.  The app is part of the Windows Live offering and is pretty easily installed after a quick Google search.

I was initially just trying to install Windows Movie Maker.  I wanted to custom edit a handful of the MIX10 session videos so that I could present them to the C++ class I teach at Southwest Tennessee Community College.  It seems like a nice idea to edit just the clips of the two or three videos I want to present into a single WMV file to play in class and potentially distribute to my students.

Until now I didn’t realize that Windows Movie Maker was not installed out-of-the-box on my Windows 7 system.  It was my quick Google search that lead me to the Windows Live Writer app that installs with Movie Maker and other Live applications.

I’m actually yet to run movie maker because I wanted to try this application out so badly.  Once I ran Writer, it prompted me for my blog URL and login info.  It pulled down all the appropriate fonts and CSS stylings and is letting me type this post in a pretty clean and generic looking window rather than with the nice-ish, but clunky editor provided on the WordPress site.

Now I’m realizing that I’m currently writing a blog post about the blog post I’m writing.  This is all a bit meta so I think I’ll end it here.  Let’s see what happens when I click this “Publish” button…

Iterating Over Increasingly More Interesting Data

While talking with a coworker yesterday I think I accidentally summed up a career spent in software development in a single sentence.  What I said was that I feel like as technology has evolved from platform to platform, programming model to programming model, all we’re really doing is iterating over increasingly more interesting data.

When I first started writing code in QBasic in highschool, I was iterating over arrays of ints and strings that had some relevance to the text-based games I was writing.  In college I learned OOP and was iterating over my own new data types such as “words”, which were strings that could be associated with a proper spelling and corrected accordingly.  In my first job as a professional software developer I was iterating over residential and commercial addresses in a G.I.S. system in order to more effeciently map routes for waste collection services.

Since then I’ve iterated over financial transactions, packages awaiting shipment confirmation, tickets being purchased for concerts, and a thousand other objects of more and more interesting classes.

I don’t really have any conclusion to take away from this, only that I wonder what we’ll be iterating over next.

Guinea Pigs at Last

I just realized that the byline of this blog has always carried with it the promise of guinea pigs and that so far I have delivered very little content pertaining to the little guys.  So here you are.

These are my 3 little piglets.  Butters and Oreo are brothers, and Copernicus is their proud mother.  She was sold to me under the false pretence of being male, and hence the gender confusion in her name.  But it turns out the name suits her just fine and her babies couldn’t be more fun.

And there we have it; the occasional guinea pig.

CERN’s Large Hadron Collider Starts Up Next Month

I don’t know about you, but I’m pretty pumped to hear how the first test of the Large Hadron Collider at CERN goes on September 10th.  I just read the news here.

For those of you unfamiliar, CERN is the European Organization for Nuclear Research.  Don’t let the acronym fool you, its just not abbreviated in English.  CERN is the place that cool things like the World Wide Web were created.  And it’s going to be the place that gives mankind its next glimpse into the origins of the entire universe.

There is currently a lawsuit in the works to prevent the collider for going live, for fear that it could destroy the world.  I think the popular theory is that it would create a small black hole capable of absorbing and crushing the entire planet down to the size of a hydrogen atom.  Serious scientists dismiss this notion and I’m inclined to trust their judgement. 

On a side note, there is a terrific book called Flash Forward by one of my favorite sci-fi authors of all time, Robert J. Sawyer, which takes place in and around CERN in the not too distant future.  The plot revolves around an experiment that is run in the very same Large Hadron Collider that goes live next month.  In the book, the experiment is a failure, but has the side effect of transporting every person on the planet’s consciousnesses 21 years into the future for about 2 minutes, then returns them to the present.  The rest of the story discusses the idea of fate, and if we are destined to live out those same 2 minutes we caught a glimpse of 21 years in the future.  I highly recommend this book to anyone who reads at all; it is truly wonderful.

So here’s to CERN, may all your colliding go well!

Telling a Story with Code

Warning:  Esoteric Nerd Thoughts Ensue

An idea has been forming in my tiny little mind for the last week or so pertaining to a combination of the evolution that code goes through within a single application during its development and the evolution that a narrative story and its characters go through as the reader partakes.  That sentence came out longer than I wanted it to, so let me simplify.

When writing software from scratch, the code that makes up that software changes during its development.  A developer will start to solve one bit of the requirements using one method, but then switch off to favor a different method once another requirement presents itself as problematic to integrate with.  Test Driven Development practices are one terrific way to make your code evolve in directions you wouldn’t have previously considered.

Similarly, any well written story, fiction or non, typically involves the evolution of the characters in it as they progress from some pre-condition to some post-condition due to the direction the drama takes.

So my idea: what if we combined these?  I’m wondering if there is a way to combine the story telling aspect of prose narrative with the code deciphering aspect of working on a software project.  While reading through an existing app’s code to figure out how its running under the hood, I scan through class definitions and functions, following Visual Studio’s “Go To Definition” option through as many turns as possible.  Code has many of the same elements that spoken/written languages have.  There are objects that serve as subjects, functions that serve as verbs, properties that serve as adjectives. 

I think this is possible…  A narrative tale told through code would have to be completely nonlinear as the “reader” would have the ability to open all source files at the beginning and read wherever he so chooses.  The trick to the story telling is to architect the code in such a way that you guide at least a majority of your readers through the dependancy structure in such a way that each function they read will make them want to follow the logic further to see what the next method or object is doing.  The comments in the code themselves could even become a form of meta communication that could be a layer of story of its own.

I want to try this.  If I’m successful I’ll publish the code as open source and let other nerds partake.  Now I just have to think of a plotline that can be expressed in C#…

.Net 3.5 SP1 (Beta) Installation FAIL

I have successfully installed this service pack beta on multiple machines, however my office desktop today gave me this puzzling error:

Installation Fail

After pressing Retry a couple of times, the setup completed successfully.  Weird.

Follow

Get every new post delivered to your Inbox.