Fork me on GitHub

Updates from January, 2009 Toggle Comment Threads | Keyboard Shortcuts

  • britg 10:41 am on January 31, 2009 Permalink | Log in to leave a Comment
    Tags:   

    My Stream-of-Consciousness During the Google-ocalypes 

    This is my unfiltered and raw stream-of-consciousness during the event that I like to call the google-ocalypes.

    what is the pricing model for AWS EBS? …
    huh, that’s odd… some spammer must have taken over the results for ‘amazon web services pricing’ …
    no, the URL is correct. maybe someone hacked Amazon!!
    *search for ‘amazon.com’*
    yeah, someone definitely hacked amazon. I better write a blog post about this! eh, someone probably already has …
    my cat looks like Jabba the Hut…
    *search for ‘hacked amazon’*….
    hmm, all of these are marked as malware too. very odd…
    I’m hungry… eggs sound good for breakfast, maybe with a hot toasted english muffin…
    orange juice…
    *search for ‘google’* woah that’s marked as malware too!
    this definitely deserves a blog post…
    I bet TechCrunch has already written a post about it…
    *search for ‘techcrunch’* (note: I use google as my URL bar)…
    Shit! even that’s marked as malware…
    I’m definitely writing a blog post now…

     
  • britg 9:55 am on January 31, 2009 Permalink | Log in to leave a Comment
    Tags:   

    Google Results Showing Everything as Harmful 

    *UPDATE* Looks like it’s a worldwide thing: Google Flags Whole Internet As Malware

    Odd bug at the moment with Google search results. All results are showing up as “harmful to my computer.” Is this just me or are other people seeing this too?
    googlebug

     
  • britg 12:43 pm on January 30, 2009 Permalink | Log in to leave a Comment  

    An Expirement in Live Web Development Through Chatrooms 

    Shaun and I recently partnered with Darren over at OneBadWheel.com, a popular nascar site for fantasy players and stats junkies.  Now, I will be the first to admit that I am a complete NASCAR Noob.  You could present to me 10 pictures of the most famous and successful NASCAR drivers and I probably couldn’t name a single one.  But, this opportunity is really exciting for me because we’re going to get to develop the interface and gameplay for 3 fantasy NASCAR games.  Darren’s getting me up to speed quickly on the rules and nuances of NASCAR stats, and from a pure web development standpoint, fantasy games are just about as fun as it gets.

    One of the things we want to do is bring a lot of the “Web 2.0″ (I hate that term) leading-edge web tech to the world of NASCAR.  Shaun’s created a twitter account for OneBadWheel, we’re using a lot of ajax techniques and incorporating a lot of jQuery UI elements into the site and game design, and we’ve set up a Multi-User WordPress system for a bunch of NASCAR bloggers.

    Live Chat Experiment

    meeboWe are also expirementing with something that’s new (to me atleast) — I’ve put a meebo chatroom on the sidebar of every page billing it as a “direct line” to the developers of the site.    We’ve already had a few support questions or bugs through our wufoo support form (see! another web2.0 widget), but we’re literally pushing loads of new features every night trying to get it all in before the start of the NASCAR season (Feb 15th).  We want something more live, more immediate.  Enter the meebo chatroom.  Now, anyone (you don’t have to be signed up for meebo to participate) can shoot us a message.

    How will this experiment work out?  Who knows.  I think it’s a win-win to give it a try.  But what about user experience, you say.  Meebo’s infrastructure is robust, and we’re loading their chatroom last so I am not concerned with any kind of pageload issues.  There isn’t a discernable screen flash, or resizing of divs when meebo’s room loads, so I think usability is impacted very little.  Seems like the worst case here is if nobody uses the damn thing I wasted all this time writing a blog post!

    I’m excited to see how this experiment goes and I’ll be sure to update with another blog post.  I’ve embeded the chatroom below for anyone interested in joining the conversation:

     
  • britg 10:09 am on January 30, 2009 Permalink | Log in to leave a Comment
    Tags:   

    Love the new CakePHP API browser! 

    I’ll let the app itself do the talking, but just let me say that I love what the Cake team has done with the new API browser. The best part is the API generator is released as a plugin so we can all enjoy sexy APIs with our cake apps!

    cakeapi

     
  • britg 1:04 pm on January 27, 2009 Permalink | Log in to leave a Comment
    Tags: ie8,   

    Great, Another Internet Explorer 

    Just saw an article on ZDNet in which they benchmark the javascript performance of IE8 RC1 with other browsers. Sadly, it looks like Microsoft’s javascript engine doesn’t perform very well at all. Having moved to primarily javascript development, my first reaction is to take my face and plant it firmly in my palm.

    I’m sure Microsoft will try to make up for this lack of speed with extremely aggressive caching…

    IE8 RC1 javascript performance courtesy of ZDNet

    IE8 RC1 javascript performance courtesy of ZDNet

     
  • britg 9:22 am on January 27, 2009 Permalink | Log in to leave a Comment
    Tags: , ,   

    Three Cheers for CakePHP Backwards Compatibility 

    cake-logoI would make a horrible framework developer.  Why?  Because I don’t have the patience to put the effort into making my code backwards compatible (unless I really, really have to).  Thankfully, the developers of CakePHP are not like me.

    I just had cause to take an old client site that was built on CakePHP 1.0.x and move it over to a new platform with some upgrades in functionality.  Since we are most likely going to be developing a bunch of new features on the site I felt it was important to go ahead and upgrade the cake core libraries to the recently-released 1.2 — a task I was dreading from the moment I thought it.

    But, surprise surprise, the whole ordeal wasn’t an ordeal at all.  In fact was incredibly easy because the Cake devs made it a point to include backwards compatibility. As a result a lot of my legacy code could remain in place to be upgraded gradually.

    Take for instance the following gem.  I was a rough and tumble Cake developer back when I first wrote this and this format was actually never really acceptable in the first place, but it worked in 1.0.x:

    $this->Order_frame->findAll();
    // correct way to access the order_frames table: $this->OrderFrame->findAll();
    
    // in view
    echo $orderFrames['Order_frame']['type'];
    // correct way to access the data: $orderFrames['OrderFrame']['type'];
    

    Now, having used Cake for a couple of years I know the error of my ways. But, to my surprise, when I ran this legacy code locally on a fresh 1.2 core it worked. Huh? There was no way they would still support this ancient syntax! Heck, I dont think they ever supported it, really.

    Anyways, this is a long way of showing my appreciation to the CakePHP devs for building the framework with all the legacy code out there in mind.

     
  • britg 10:26 am on January 23, 2009 Permalink | Log in to leave a Comment
    Tags: , software,   

    Stackoverflow and Reputation Points 

    stackoverflow-logo-250I submitted my first question to stackoverflow the other day, and I must say the entire experience was extremely pleasant.  What is stackoverflow?  Well, many bill it as a newer and better experts-exchange.com but to even mention the two properties together is an insult to the people that built stackoverflow, their mothers, and their mother’s children, including them (so that’s a double insult!).

    It is a site where coders can share knowledge through question and answer with a heaping spoonfull of awesome added for good measure.  Here’s a list of ingredients in that awesome:

    • Open ID support
    • Reputation points
    • tagging
    • Badges!
    • A clean, simple, attractive design

    Is there a need to break down reputation by subject matter?

    The reputation points is perhaps what interests me the most.  Let’s face it, we’re a hierarchical society.  There are always going to be people at the top of a given field, and if you consider yourself a professional in that field you should know who those people are, even if you are one of them.

    Stackoverflow provides a good, quantitative measurement of the general expertise in the software development field.  No, it doesn’t replace resumes and body-of-work, and no it is not a perfect system by any means.  But, when you’re quickly looking for an answer to a software development question, you want and trust an answer from a person with a higher reputation score.

    But, is reputation too generic?  I would like to see the points split between the tags that a person is involved with.  There would still be an overall reputation, but when viewing someone’s profile I would like to see from which tags those reputation points came from.

    Stackoverflow's profile tag list

    Stackoverflow's profile tag list

    Stackoverflow already does this to a limitted degree, but from what I can tell, the number next to a person’s set of tags is simply the amount of times they’ve been associated with it.

    Take the image to the left for example.  I can tell this person has been associated with CouchDB five times, but without clicking through to each of the articles can I tell how much of his reputation is based on his knowledge of CouchDB?  I can infer this from the relative number of CouchDB tags to the rest of his tags, but I’m stupid and lazy and I don’t want to have to infer anything.

    As an asside, this person is Paul Davis – one of the most active members of the CouchDB community.

    Don’t missunderstand me here, I think stackoverflow is absolutely great.  So is their reputation system.  But, I think splitting up their reputation between the tags that a user is involved with would go a long way towards making this the defacto community and hub for  expert sex changes software development.

    What do you think?

     
  • britg 11:58 am on January 22, 2009 Permalink | Log in to leave a Comment
    Tags: humor, lists   

    Step 1: How to Concisely Convey Anything – Lists 

    • Pretty much everything belongs in lists
    • See the bullet after roman numeral IX

      See the bullet after roman numeral IX that is nested in Step 6.

    • Lists make any piece of information more digestible, readable, and hip
    • There are many types of lists, here is a list of types of lists:
      1. How To’s (like this one)
      2. How Not-To’s (not like this one)
      3. Laundry Lists
      4. A list of things that you need at the store that sells food and stuff (this needs a better name)
      5. Other
    • Sometimes it’s good to define the steps in your list, especially when it’s a how-to
    • Step 1 – see previous bullet
    • Step 2 – nesting lists is good
    • Step 3 – having a single item in a nested list is bad
      1. See step 2
      2. See Step 3
    • I. Many people think Romans are most famous for inventing the arch, but in actuallity their greatest contribution is the Roman Numeral
    • II. Roman numerals are easy – just remember it goes: one, eleven, one hundred eleven, etc. etc.
    • Step 6 – Making references to previous items in your list is helpful to people that are confused easily.
      • Assume that everyone is confused easily (see step 6)
      • IX.That is why you are making them a list (see all other steps, including this one)
    • Cut up your lists every once in a while with images – most people will only look at the pictures anyways
    • In Conclusion, lists are great because you don’t have to write closing paragraphs that summarize what you just said. If you feel you must bring closure to your list, you can always make a short conclusion list that summarized the other bullets in your main list. This is a controversial technique. Alternatively, the last item in your list can be simply “The End” – a technique borrowed from the film industry.
    • The End
     
  • britg 10:01 am on January 19, 2009 Permalink | Log in to leave a Comment
    Tags: , git svn, github, svn   

    Git-SVN is to SVN as TCP is to UDP 

    logoAll of my code nowadays lives in one of two places – my company’s private SVN repo, or on Github (awesome site and service, btw, but that’s for another post).  It wasn’t always this way; recently a friend of mine convinced me to make the jump onto git.  I was reluctant at first, just because I thought I was ‘in the groove,’ so to speak, with SVN.  But, after about 3 weeks of primarily using git, I have to agree with my friend when he says he can never go back to SVN.

    But what about all that existing code in my SVN repo?  Git has me covered with SVN bindings – git-svn – sweet! Unlike other apps that attempt to support legacy systems through half-assed functionality, my personal opinion is that git-svn is a better SVN client that svn.

    Git-SVN is a better SVN client

    Huh?  Well here’s how I think of it – git+svn is to SVN as TCP is to UDP.  TCP makes it simple to ensure that communication packets between a client and a server are complete and in the order that they were sent – an important foundation for something like the internet, where there is massive concurrence, congestion, and instability.  Take this quote from the wikipedia page on TCP and see if it sounds similar to working with your SVN repo:

    Due to network congestion, traffic load balancing, or other unpredictable network behavior, IP packets can be lost or delivered out of order. TCP detects these problems, requests retransmission of lost packets, rearranges out-of-order packets, and even helps minimize network congestion to reduce the occurrence of the other problems.

    Replace packets with commits and TCP with git in that statement , and you have a pretty good feel for git+svn as a client.  Sure, conflict resolution is possible in SVN, but it sucks.  Git-svn makes conflict resolution dead simple with git-svn dcommit (commit your git repo revisions to svn, while simultaneously updating your working copy), and git-svn rebase (fetch changes to the SVN repo, rewind your repo to apply changes, and then apply your edits on top).  For a full list, check out the git-svn manual.

    header

    Actually, git-svn = TCP+UDP

    The analogy isn’t perfect (in git’s favor) – as generally TCP is slower tha UDP, and TCP is only meant for 2-end communication.  But from my experience git+svn is much faster than svn, and since your working copy is really just a git repo – you can take advantage of the distributed qualities of git.  So really, the analogy should be: git-svn is like TCP and UDP combined!

    Anyways, don’t take my word for it – go try out git yourself!  The fact that you have an entire ecosystem built around your SVN repo is no excuse anymore.

     
  • britg 12:45 pm on January 17, 2009 Permalink | Log in to leave a Comment
    Tags: gmail, keyboard shortcuts   

    From Keyboard with Love Part 1: Gmail 

    russiawithlove1It’s a general rule in life that if you think you’re skilled or knowledgeable about something there is probably someone out there more so.  For instance, I consider myself really good at grammar – but I’m willing to bet someone, somewhere is gooder than me.  It’s just a fact, and I’m willing to accept that.

    That’s why it comes at no surprise to me that when I thought I was “in the know” about keyboard shortcuts and keyboard usage in general, I stumbled upon a whole new world of keyboard shortcut enthusiasts.  This is part 1 of my exploration of this brave new (sources tell me keyboard shortcuts have been around a long time) world.

    In this first installment I start out with an easy way to increase your productivity by using keyboard shortcuts in gmail.

    Using Keyboard shortcuts in Gmail to impress women

    Many people I know leave Gmail open all the time and are constantly checking, reading, and archiving/replying to emails.  Are you one of them  (not people I know, but people that leave Gmail open all the time)? If so, fortunately Google provides keyboard shortcuts to make all these tasks even easier and faster.

    picture-1

    Figure 1 - Visual guide to the complicated process of enabling keyboard shortcuts in Gmail

    Enable keyboard shortcuts by going to Settings (top right) -> General -> Keyboard shortcuts.  Bam you’re done.  Now when you check your email you have some features that other, uncool people (whom I refer to as the gmail prolitarians), don’t have!

    gmailarrowNotice the little arrow next to the first conversation in your inbox.  This indicates the current conversation on which your newly activated keyboard shortcuts will act.  Pressing j and k will move that arrow up and down the conversations, and pressing o will open them.  That’s about 60% of the functionality right there isn’t it?

    So, you’ve read the email and now you want to reply to it.  Easy.  Just press the r key (left of t and right of e)  and Gmail pops open it’s reply dialog ready for your input.

    Oh, while you’re inside a conversation, you can also press n and p to move up and down the messages in this current conversation.  Is the message you’re on closed?  Simply press o to open it.  And finally, to get out of the conversation and back to your inbox, press u.

    What is that, 90% of the functionality you normally use while checking mail?  You want to write a new email?  Press c.  There.  That’s got to cover at least 98% of the normal user’s functionality, right?

    For the other 2% check out this handy guide by google, cryptically titled Keyboard Shortcuts.

    That’s it for this installment!  Next up in reverse lexicological order, Google Reader for news, WordPress for writing, Quicksilver for everything, Ubiquity for everything in the browser, VIM for coding, and many more.  Stay tuned!

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel