Many of us “formally trained” developers tend to put an engineering mindset to many of the problems in our life, and this is exactly what I did when I took a look back on my own personal productivity issues. I was beginning to notice that much of my day was filled with distractions. Many of them are valid, but a good chunk of them could be managed much, much better. If you’re productivity is anything like mine it comes in spurts: the beginning of the day you’re cruising with two or three cups of coffee in you, and about an hour before lunchtime everything starts to slow down only to pick up at around 3:45pm. For the next two and a half hours you actually get some work done.
I’ve always had a problem with distractions during work. Many people tend to have the problem where they’ll answer personal e-mails, cruise around on Facebook, or tap away on their phone. I do all of that, but it never became a problem where I had reassess my strategy of getting shit done at work. I am a news junkie. And just like any other junkie, my habit can become compulsive and often lead to me wasting a lot of time on lurking. When you give them a medium that literally includes live news feeds from all around the world, well, I make a habit of spending my time reading. Reading. And reading. It could be about sports, politics, jubilation, world turmoil or even the fall (and eventual rise) of orange juice options.
At the time of this writing it is roughly four thirty in the morning and I am cruising news websites because I can’t sleep. But during the hours of work this can absolutely become a problem. One of the ways that I have been able to manage it is by spending a good chunk of time in the morning (and evening) on the bus ride reading news digitally. This gives me my fix for the day and doesn’t affect work productivity. Being of the engineering mindset I’m always looking for that optimum solution for being productive at work. How do you manage your action items? Do you plan your day out on paper, use colored post-it notes based on priority, an old fashioned to-do list, or are you the type of person that doesn’t need a mechanism to get shit done?
For me I’d definitely be in favor of software that allowed me to track to-do items across multiple environments (Windows, iPad, Android, Mac) and have found that Google’s Task API gives me the ability to do this seamlessly. But I haven’t yet found a proper front-end that is clean and intuitive to use. On the Mac side the Things software has been around for awhile, but charges for the application usage on multiple platforms. They seem to have solved the issue elegantly, but I am also looking for integration with my Google services which doesn’t seem to be there yet. And I also have that pesky Windows and Android to think about. Not to mention it is just damn expensive.
Maybe the answer is that there isn’t anything yet that’ll let me organize my priorities digitally, but I have a hard time believing that. What are your experiences?
Two years ago (tomorrow) I started my first day as a temporary contractor at Bloomberg, and at the end of February I was brought on full-time. Since then I’ve been able to work with an amazing bunch of people, and without them I’d surely be in a gutter somewhere clutching an empty bottle of Odesse vodka. Instead I am occasionally in the gutter, which is usually directly related to drinking with John Crepezzi or Kenny Katzgrau, but at least I have moved on to some finer whiskey. Of course when I’m not in the gutter I have a well stocked shelf of various spirits. The goal is to eventually be sipping Johnny Walker Blue on a nearly regular basis.
Some shout outs: Becks, Shiran, Adam F., Amy, Renée, Rahul, Adam L., and of course my amigo that is soon to be on his way back from a long overdue vacation, Peter. For those of you that I forgot its probably because we haven’t drank in some time. I think its time to remedy that situation!
The past couple of years I’ve been doing this whole near year’s resolution thing. I don’t necessarily agree with it in principle, because the fact of the matter is that most people (including myself) do not stick with their goals throughout the year. There are often life changes that impact the feasibility of them, and sometimes the goals themselves are life changes that are not possible. The majority of my goals this year are redundant, but to continue with tradition and be able to look back on them next year will be nice. So, here we go:
Travel to Europe at some point during the year. Possibly California and Washington state.
This was a goal last year that I wasn’t able to achieve. There was a loose plan to travel with a friend through Europe, but we were unable to get our schedules together. This upcoming year I already have plans to see Germany in September, and possibly London in February, although both aren’t booked yet. I modified this from last year as I want to go to Europe, and I don’t consider Mexico or Canada abroad. Last year I made several trips to Boston, went to Virginia to see a friend, upstate New York, and took a week long trip to Indiana. In addition to going to Europe I would like to see the west coast, but we’ll see about that one.
Make the decision to go to graduate school, and take the GRE.
It has always been “in the plan” to go to graduate school, but I’m still up in the air if I want to go for something that is in the field of software engineering, for literature or possibly even a business administration degree. I am leaning towards going back to school for an MBA as it seems more aligned with my long term goals, and I can always go back to get the others later if I am bored.
Keep eating healthy, be more active, and ride the bicycle more.
Last year I was able to achieve part of this goal and I lost a little over forty pounds just by changing my eating habits. Since I enjoy cooking I want to learn more about nutrition, eating healthy, and how to cook up some meals quickly at the end of the day. The activity part is where I need to focus on since I’ve done the diet pretty well. I was in a softball league in the spring of last year, rode the bicycle a little in the spring months, and did some hiking. I am considering martial arts if I am able to find something that jives with my schedule. I was able to do this all last year without going to a gym, and I’d like to continue on the same path.
Write more words, play more video games and enjoy life.
I would say that this was mostly a success. I started posting on this blog for a semi-regular basis, and at one point started drafting notes for a science fiction novel I’ve been itching to write for nigh on a decade now. The past couple of months I’ve been playing Battlefield 3 with some old friends, and the same ones are trying to get me to sell my soul and play some Star Wars: Old Republic, but I am pushing back.
Learn the guitar well enough to jam out with some friends.
Over the Thanksgiving break I went down to see a friend in Virginia, and we both picked up Rocksmith for a song. I started learning the guitar by playing this video game, and found out that my MacBook makes a really great amplifier with GarageBand. I’ve always wanted to get back into music, and my goal is to get decent enough so that I am able to have some fun with friends that jam often.
I figured since I am already working on these goals it makes sense to include them so I can show some progress this time next year. Because life changes very often I don’t see a point to include something that is out of reach, or will require a huge dedication of time that I am not certain I can allocate. Next year, as long as the apocalypse doesn’t happen, I am hoping to be able to continue the tradition and add some more goals (as well as check some off).
It seems to be the popular opinion that the Blu-ray disc format was a complete failure, and we’re on the verge of completely going digital for everything that we consume: music, movies, and video games often the primary candidates being associated with this philosophy. Of course, it is very hard to argue against that. The past decade we have seen digital distribution systems which deliver video games directly to your personal computer. Your game library is now completely “in the cloud” and immune from hard disk failure. We saw iTunes rise to the top of ladder when it comes to purchasing music digitally, and whole host of others for streaming live music to your devices over the Internet. How can anyone forget the gorilla in the room: Netflix video streaming services make up for approximately thirty-two percent of all U.S. Internet traffic during peak hours.
Given everything above it is very hard to argue against physical mediums going the way of Betamax. Lately the talk has mostly been about the Blu-ray disc format, mainly due to the competition when it was first introduced with HD-DVD, but now because the pressure has been turned on with streaming services like Hulu and Netflix. But if you look at the trends in consumer devices, especially television purchasing, you can see that many people that did not buy high definition sets last decade are going out to purchase them now, and they’re looking specifically at 3D high definition set ups. Right now the only consumer disc format to support 3D is Blu-ray, which requires the use of high resolution (bitrate) audio.
If consumers want that crisp, clear, high definition video with surround sound, they’re not going to be able to get it over your standard Internet connection in the United States. In order to stream Netflix at 720p with high definition audio you’ll need at least a 5 megabit/second Internet connection. My Comcast Internet connection is the lowest tier available, as far as I know, which I measured at roughly 25 megabit/second to east coast data centers. The average speed for broadband in the United States is well under that threshold, pegged at 4 megabit/second, which would allow you to stream the “medium quality” from Netflix. Remember we’re only talking about 720p here, delivering content at 1080p would require much more bandwidth than that, but the average speed here is already struggling to deliver what consumers expect.
If that wasn’t enough the cable broadband providers across the United States are beginning to look towards changing their pricing models to reflect how Internet video distribution is cutting into their cable television subscriptions. That means you’ll be paying more money for your pipe, and have a cap on it before you’ll end up being charged more (usually by the 10GB increment) to fully utilize Internet streaming.
This summer Netflix announced the plan to split their DVD video service into a separate entity, and due to rising costs of the content they are now providing Netflix was also forced to increase the subscription service rates by 60%. These changes resulted in a consumer backlash and Wall Street punished the stock with a drop of more than 70% since July. Reed Hastings, Netflix CEO, tried to provide an explanation and give a half-hearted apology, but ultimately it turned out to be more of an excuse.
Ideally it would be amazing to stream high definition audio and video over the Internet with full clarity. This obviously is the future, but we’re only at the beginning of exploring this technology. In the coming years we’re going to realize higher bandwidth through the local Internet providers which will give services such as Hulu and Netflix the capability of delivering video streams surpassing even the highest quality that televisions support now. But don’t get it in your head that you’ll be throwing away your video discs anytime in the near future, at least if you care anything about surround sound, high definition video, and finally being able to own Star Wars in a quality format.
A very close friend of mine released a new type of pastebin that has some very fancy features that really make it shine over any other interpretation on this type of idea. The client, which is written in Ruby and open source, is quickly installed through the use of the standard Ruby Gem installation approach. At this point you can immediately echo any code that you wish into the haste command on the terminal and it will be pushed up to a node.js powered backend which stores it, syntax highlighted, and returns a URL back down to you.
The web interface is simplistic, yet beautifully crafted to allow for inline text editing right in your web browser. Shortcut commands exist to create a new piece of code, save one, and tweet it immediately. In a single day it has climbed among the top spot on Hacker News, and is already getting some very constructive feedback. The fact that both the server and the client are open source allow for internal implementations to be rolled out without any worry to proprietary code being leaked to the outside.
I know he’ll be reading this post so I’ll gripe a little, and give my wish list:
You may have noticed that there are several websites now that included integration with social networking websites such as Facebook, Google Plus and Twitter. These small buttons allow your user’s to share content instantly with their friends. Depending on which you’re including on your site it’ll show up differently, and each has a separate process to include them on your blog’s pages. Since I am using WordPress I will explain how to do this, but if you follow the example it should work in the broad case as well.
This functionality is provided by using meta information that is stored on the user’s browser. Unless you decide to do something nefarious, you do not have to their data by merely adding these buttons, but it does expose your user’s to a potential security risk. There are browser plugins that allow them to turn off this functionality if they have it enabled. If you’re comfortable with all this, then go on ahead and follow the instructions.
A useful wizard is available that provides you with both the XHTML and Javascript necessary to make this functionality work correctly on your site. The Javascript code snippet provides the bridge between the user’s browser and the Facebook social graph that this is using in the background. There are a few routes regarding how to implement it, I chose the HTML5 approach which asked me to add a schema namespace to the HTML element, and then used the custom like button element that is provided to display it.
Javascript snippet Place this after your BODY element
<script src="//connect.facebook.net/en_US/all.js"></script> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=309698452382243"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script>
HTML element Place this where you want the button to appear.
<fb:like href="http://example.com" send="true" layout="button_count" show_faces="true" action="recommend" font="lucida grande" display="inline"></fb:like>
You will be given the exact HTML element tag that you should use based upon your wizard settings. If you want to use this dynamically in the WordPress Loop to display under each post you’ll have to use a PHP function the_permalink(); which will return the URI to the page in question. This can also be done on the single pages if you so desire. One last step is to include meta information at the top of each page to let Facebook know how the post should be described in the user’s activity feed. This is very straight forward and simple. An optional title element should be used on individual pages. Categories can be selected through the wizard.
Meta information Place this in the HEAD element
<meta property="og:type" content="blog" /> <meta property="og:site_name" content="Thoughtless Banter" /> <meta property="fb:admins" content="199800257" />
The Google Plus approach is very similar, and doesn’t require any meta information tags. When a user decides to “+1″ any of your posts they will in a special location on that user’s profile, and in any the subscriber’s feeds as well. You’ll need to include a Javascript snippet, like above, and a special HTML tag element. You can add all of this below the Facebook directives if you desire.
Javascript snippet Place this after the BODY element.
<script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script>
HTML element tag Place this where you wish the button to appear.
<g:plusone href="http://example.com" size="medium" annotation="inline"></g:plusone>
Finally, the Twitter button is the easiest to place, and they once again provide a wizard for you to change the colors of the background, design, and number of tweets you wish to show (if you do not just want a button, but rather the feed itself). This one-liner can be placed anywhere you want the button to appear.
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://thoughtlessbanter.com/2011/11/23/furniture-for-men/" data-text="Furniture For Men" data-count="horizontal" data-via="johnbellone">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js">
That should basically the gist of how to get this functionality working on your website. Facebook offers more comprehensive widgets that take advantage of the social graph to display photos, and even information about user’s actions on your page. There is beta examples of how to post directly to the new Facebook Timeline feature that will be rolling out to your profile shortly. As more and more of these snippets become available you should consider both the advantages and the disadvantages of using them. I know that many user’s are worried about privacy and tracking that all the social sites are beginning to do. It is quite possible in the future that this type of functionality will be opt-in rather than opt-out and it may not work with the breadth of your user’s without their explicit consent. So be wary designing your website around these widgets specifically.
In the past I have had some problems with shared hosting services mainly due to the speed and limited functionality that was offered through their control panel interfaces. This one in particular used that famous cPanel garbage that got popular when most administrators didn’t know a lick about using Linux. A few years ago there was this whole “cloud” term that was passed around like the town slut. What this basically means is distributed, always-on, fault-tolerant, all those terms that your rockstar network engineer has thrown at you but really doesn’t know anything about. What it gives us neophyte administrators is a cheap, virtual Linux server that we can configure to our own liking.
This meant that I was no longer tethered to the limitations of the infrastructure provided by the website. My previous host got swallowed up by Rackspace and went to shit. A few months ago someone told me about Linnode as it is a local Jersey business, so I started to check them out, and finally bit the bullet today and started the migration process from my old host to this brand spanking-new piece of iron. It took me about an hour and a half to get the blog post that you’re reading up and going. Not too shabby.
I’d like to reminisce for a moment: I remember way back when I had to work with someone that was paying hundreds of dollars a month for hosting to get ten megabytes and a subdomain for their account to start a video game portal in the late nineties. These bastards were being charged, by the subdomain, some absurd amount by the web host to set up a few DNS records. Now, mind you, it took sometimes several days for DNS to propagate across the Internet back then. I was able to accomplish this feat in the matter of about fifteen minutes, and ironically enough, the last machine that I had access to to actually receive the DNS update was my previous virtual host. Bastards.
So if you’re going to take the leap to virtual cloud hosting, give Jersey some love and set it up on Linnode.com, and by clicking on that link you’ll give me a free credit for $20 if you sign up for three months. Not going to lie, I completely wrote this post to hopefully get two or three of you poor schmucks to get me a month of free hosting. But hell, I’m going to be posting more set up information regarding my LAMP stack in the upcoming day or so. Free consulting as far as I am concerned.
As always, go fuck yourself.