Victor Quinn

Software architect and Node.js expert. Specializing in scalable systems. Lover of craft beer. VP of Engineering @SocialRadar Building @LocationKit

Page 2


Thoughts on Opera Next

I have been using Opera Next 18.0 as my primary browser for the past few weeks. This is the first version of Opera with the guts of Chromium.

icon-opera-next-2013.png

I should mention, for the unfamiliar, Opera Next is essentially the Beta version of the Opera browser. It is pre-release software and thus not fully complete yet. Chrome has a similar beta build called Canary.

So please understand that I’m discussing a not entirely finished product. My thoughts:

One of my motivators for trying it out is that under the hood Opera Next is now using Blink, the rendering engine Google forked from Webkit.

I’ve used Opera as my main browser in the past, but usually ended up moving back to Safari or Chrome because its own Presto rendering engine tended to be a bit quirky. No more.

With Blink they’re literally using the same engine as Chrome so those quirks are a thing of the past.

That and

Continue reading →


Emacs: Prevent autosave mess

Emacs will create backup files for you. By default, it will do so after every 300 characters you type. 1

It does so by creating a new file with the same filename as the one you were editing, but wrapping it in # characters.

So if you were editing mycoolfile.js, after changing 300 characters, you’d have a file named #mycoolfile.js# in that same directory.

This can get really annoying when dealing with version control.

Here are a few methods of dealing with those files to make things a bit more manageable:

 1. Add [#]*[#] to your global .gitignore file

You can do it on per repository basis, and that works, but only for the specific repo you added it to.

A better solution is to create a global .gitignore file and add

[#]*[#] to that file so they are ignored globally by git.

To do so, create a global .gitignore file (if you don’t have one already):

git config --global

Continue reading →


Accent Color

 Or, a tale in which one nerd spends far too long picking a Color for his blog with journeys into some fun bits of hexadecimal numbers, math, and programming.

 Joining Svbtle

I recently joined the ranks of Svbtle with this blog.

I did so for many reasons, but here are the highlights:

  • I’ve long been a big fan of Dustin Curtis and his design chops
  • I got tired of maintaining my own blog
  • My old blog was in Jekyll which made editing it on a smartphone a no go
  • I find the design clean and brilliant
  • I tried a handful of others and this was my clear favorite

Thankfully, Svbtle takes care of most things for me, with choices I would have made myself.

The one main decision left to me for the look and feel was my Accent Color and I wanted to choose a great, unique one.

 Vibrant Colors

Anyone who knows me well knows I’m a huge fan of vibrant colors. I ride a bright yellow motorcycle, the

Continue reading →


Gobbledygook: a poem

Gobbledygook, gobbledygook,

Here I sit with my head in a book,

The pages have words and numbers and stuff,

But somehow I wish they weren’t so tough.

So quantum mechanics here I come,

With all of my smart and none of my dumb!

written in Fall 2003 when I was first studying Quantum

Continue reading →


JavaScript: arguments explained

In JavaScript, each function has access to a special variable named arguments which represents any arguments which were used when calling that function.

You don’t have to define or declare arguments, it’s just already there and accessible inside the body of any JavaScript function.

This can lead to some very powerful behavior as you can write a function signature that includes only 1 argument, call the function with more, and have access to those additional arguments. For example:

var hello_name = function(first) {
    return "Hello " + first + " " + arguments[1] + " " + arguments[2];
};

hello_name("Victor", "James", "Quinn");

// Will return
"Hello Victor James Quinn"

Notice how hello_name() only has one argument declared on it, but was called with 3 and it handled all of them! Very cool! (though confusing, I certainly don’t suggest this is a good use of arguments in a case like

Continue reading →


Want to Work for a Startup? Contribute to Open Source!

Our CEO at SocialRadar, @michaelchasen just tweeted an article entitled “Want to work for a startup?” which had 5 great tips for getting hired at a startup.

I’d like to get up on my virtual soapbox here and suggest that there be one addition:

 6. Contribute to Open Source

This assumes you want to join a startup on the technical side of course, but few things will get you more noticed and be more impressive to the hiring engineers at a startup than contributing to open source.

Whether you are creating a library from scratch or helping on an existing one, contributing to open source shows how you can collaborate, will get your name out there, provides a potential employer with a code sample, and shows you have the motivation to build something outside of work.

Before I joined SocialRadar I wrote a small utility library for generating random stuff I called Chance. I wrote it from

Continue reading →


Deploy Coffeescript Node App to Heroku

So you’ve got a cool node app written in Coffeescript and you want to deploy it to
Heroku?

Seems like it should be easy these days, right?

Not so much. Well, let’s be honest, we’re in the future, you don’t have to manually
manage servers, etc. (Thank you Heroku!) but deploying a Coffeescript app is still
no small task as there are a bunch of gotchas. Hopefully this will help.

 Structure of Coffeescript node app

The following instructions assume you have the following rough structure
to your application:

/
|-- package.json
|-- Procfile
+-- src
     |-- app.coffee

The general idea here is that your app source .coffee files will live in the
/src directory and when they’re pushed to Heroku, they’ll magically
be compiled into the /target directory as js files.

This has the nice fringe benefit as it means this compilation from coffee to js happens just once with each push.

So after

Continue reading →


Alfred 2 and Emacs

Long story short, Alfred 2 and Emacs installed via Homebrew don’t exactly play along nicely. Alfred 2 doesn’t like to follow symlinks so it won’t open Emacs.

For more info, see here

I had just posted on GetSatisfaction then realized that the new (awesome!)
workflows would allow me to fix this myself before they intervened.

Note, this workflow assumes that you’ve installed the latest Emacs from Homebrew with the cocoa flag (24.3 as of this writing):

brew install emacs --cocoa

If you’ve got Emacs but the wrong version, update it with:

brew update
brew upgrade emacs --cocoa

Or simply edit my workflow and update it to use the latest path.

Download my Alfred 2 workflow here

Continue reading →


Convert .png to .eps on Mac

This is one of those tips that seems almost too easy to be true.

My resume and cover letters are written in LaTeX. LaTeX is a typesetting system often used for creating technical documents as it is particularly good at creating complex documents including scientific equations. I have been using it for a few years to draft documents both because it gives me a lot of control over the output and so that I could prepare myself for working with technical documents such as patents which are likely be written in LaTeX.

I wanted to include my signature in a cover letter. In order to do so in LaTeX, it required a graphic in .eps format. However, my signature was a .png image. I searched for awhile until I came across the answer which was so simple I felt silly for not knowing it.

I thought it may prove useful to someone else. This is a command line trick, so if you are not familiar with a

Continue reading →


Solved: git svn Broken in Mavericks (or Mountain Lion)

I used git to connect to my employer’s subversion server. I was using a package called git-svn which includes connectors between the two systems. Upon upgrading to the Mavericks, git svn stopped working. The solution follows.

 Install Xcode

First, install the latest version of Xcode. An interesting note is that in the move from Lion to Mountain Lion, Apple decided to move it from its former home in /Developer/Xcode to /Applications/Xcode. This was the root source of many of the issues as many of the utilities were searching in the wrong place for the appropriate binaries.

 Install Xcode Command Line Tools

Another change they’ve made is that the command line tools are no longer installed by default. Pre-Mountain Lion they were included with Xcode with no additional installation necessary. To install the command line tools, launch Xcode, open the Preferences, and switch to the Downloads

Continue reading →