Category Archives: Software

Keeping clean

A week or so ago James Coglan tweeted this:

It reflects perfectly why I didn’t get too much into Python other than writing isolated scripts that worked well with themselves and didn’t require extra packages, because installing them was a pain and different in each system (compiling, package managers, other package managers, eggs, pip, bla, bla). And then there was the virtualenv solution, but that adds another layer of managing that I have to deal with. I just want to get things done and be able to distribute them in a manner that makes it easy for other people to use my software.

This reminded me that I had to spend a whole afternoon a while ago trying to make some brew-installed packages operate in harmony with other libraries/binaries in my system. It was so tedious and fuzzy I can’t even remember what the problem was actually. Just the notion that installing all the software and making it all available into a global scope === bad, because different versions will require other different versions. And either everything works in harmony and life is beautiful, or you spent a rainy afternoon feeling miserable because of the weather and the incompatible binaries.
Continue reading

lute

I found this little development server built with node.js and I thought I’d recommend it to you since it fixes most of the annoyances I have with the traditional SimpleHTTPServer Python solution. You can install it globally with:

npm install -g lute

And then you can enjoy…

1) Automatic port management

It will find a new available port if the default is in use, so you don’t have to manually manage this, which can be cumbersome when you need to have several local servers running at the same time. Just type

lute

and TA-DA! you get a local server with autoassigned port, serving the files in the current directory.

Or you can also force it to use an specific port:

lute -p 3030

2) It can trigger the ‘open’ action in your browser

You can write this on your command line

lute open

and it will open localhost at whatever port it found, using your default browser.

3) Automatically injects livereload in your scripts

This can be both a blessing and an annoyance–it is not playing too well with HTML imports:

A call to document.write() from an asynchronously-loaded external script was ignored.

An issue has been diligently filed.

If you’re not using HTML imports you will be able to enjoy changing things on your code and getting them instantly autoreloaded in the browser–so you can save a few keystrokes!

Irssi

I keep going to conferences, getting promo credit coupons for Digital Ocean and never actually using them because I find the coupons long after they have expired–when I finally decide to unpack my suitcase, hah!

This time it was different: instead of doing what I had to do, I decided to procrastinate by unpacking and being tidy. And I found the latest coupon which I got at LXJS, and which expired tomorrow (well, technically it is today already).

I felt a little guilty at this point since I had been chatting (meatspacing!) with their evangelist John Edgar for so long and finally met him at Amsterdam, and I also had met the mighty Mikeal Rogers –who also works as evangelist there– twice, at ScotlandJS and JSConf, and I still hadn’t tried their product! :-)

So today was the first time I used Digital Ocean as a developer (been using their services via Meatspaces chat for mooonths), and I must say the experience has been pretty quick and smooth. Yay!

I can’t talk about performance yet, since the most I’ve done is installing irssi and tmux to have a sort of seemingly-not-entirely-in-the-cloud irccloud experience. I’ve learnt three things today:

  1. how to switch irssi windows in Mac (ESC+number instead of ALT+number)
  2. tmux attaching and detaching and a bit of all that
  3. and finally, I realised that irssi was the program the cool linux kids at the Uni were using to talk to us mIRC users in lousy Windows 3.1 machines. They would come with their bootable distro-in-a-floppy and totally ignore Windows and do all their things in text mode

It’s funny to realise, so many years after. Maybe I’ll be a bit cooler now :D

Feel free to use this sponsored link to subscribe to Digital Ocean so I can keep trying to be cooler within their infrastructure :-P

Inspecting the Web Audio Vocoder demo with Firefox’s new Web Audio inspector

I wanted to understand how the Web Audio Vocoder demo by Chris Wilson worked but I didn’t feel like reading the whole code upfront, so I decided to open it using the new Web Audio inspector that you can find in Firefox Nightly.

The Web Audio inspector will render a graph with all the nodes in the current Audio Context, so it’s ideal to get a feel for the vocoder’s internal structure.

And the structure is PRETTY COMPLEX, as you can see in this massive GIF:

web audio vocoder inspected with the web audio inspector in Firefox

Here’s the Vocoder code, just in case you want to read it too!

Full credits for the Audio Inspector go to Jordan Santell, also of Dancer.js fame! :-)

E-mail management tricks that will change your life FOREVER

One of the first things that someone told me shortly after I joined Mozilla was:

I wonder how long until you stop reading all the emails we get.

I was like: oh come on, how could you not read your emails?

But then I started to subscribe to bugs, mailing lists and get involved in STUFF, and guess what happened? Lots of emails, and lots of stress because it never ends! And it’s so hard to separate the important stuff, right?

Well, I’m here to share with you my exquisite set of rules for managing email that will totally change your life.

First things first: make folders for mailing lists, and set rules to direct those messages to those folders. You don’t want these things in your inbox.

For example, I have a folder for all bugzilla-related notifications, then various folders for various mailing lists I follow.

A tip on bugzilla: if you use it, you might want to modify a couple of settings so you get less emails:

Bugzilla email settings

Basically I just want to know when I’m assigned or CC’ed to a bug, when it is closed/resolved or when comments or attachments are added. I don’t want to know when someone CC’s themselves, for example.

Create a folder called “LO-PRI” or similar, and set up rules to move there things that you hardly look at, but might want to look at if you finished all your work and were really bored. For example, build notification emails, or very high noise to ratio mailing lists that don’t deserve their own folder. Usually I just look at the subjects for these and quickly delete all.

Now comes the best trick–and this is what changes lives forever:

  1. create a new folder where things that might not be directly relevant to you go. Mine is called “potentially irrelevant”. I know, that name is amusing. Brings me to giggles every time I see it.
  2. set up a new rule where anything that doesn’t have your email in the To: field goes to this sort of catch-up folder

In my case the rule is “anything that doesn’t contain my email address, or my alias, or my team email address”, so change accordingly.

Once you’ve built all this complex system of filters and rules you should end up with a way leaner inbox, and can actually use it to keep track of things that need to be done, instead of spending half of your day managing your inbox.

And if this filtering isn’t aggressive enough for you, there’s always…

DELETE

Delete.
Delete.
Delete.
Delete. Delete. Delete.