by Matt Brennan

Fun with malicious email attachments

So, I got an email purporting to be from “FedEx International Economy”, a “Delivery Notification”. “Hmm.”, I thought. “What have I ordered? Waaait a minute…”

Attached was a zip. In the zip, a heavily obfuscated Javascript file.

Read more…
by Matt Brennan

Github releases atom feed

So, I found myself wanting to automate the “shameless plug” stage of releasing open source software. npm doesn’t (yet) have feeds for updates and releases, so that left Github. It’s got feeds for releases of each particular repo, and a firehose of a user’s public activity, but nothing in between. Until now.

Read more…
by Matt Brennan

Minimum Viable Productivity

You’ve been there. The crushing weight of your to-do list. The Twitter → Facebook → Reddit loop. The existential despair.

Ask yourself:

What’s the least I can do to be productive?

- You

Well?

Whittle down your inbox? Great. Do it.

Wash up that one pot that’s taking up the entire worksurface? It’s not even that dirty.

Pump your bike tyres up? Reply to that bug report? Commit a one-line fix? Easy.

Suddenly, everything seems not so bad after all. Everything flows that bit easier. It’s like the foot-in-the-door sales technique, except for good not evil.

by Matt Brennan

Risk dice

I made a thing. It rolls dice so you don’t have to. It lets you throw Risk battles with ludicrous numbers of dice, which probably speeds the game up.

It’s a library:

<pre>npm install risk-dice</pre>

And an app.

by Matt Brennan

Chinese Barbecue Pork

I still can’t believe how good this pork turned out. So, we get a fortnightly box of organic meat from Abel & Cole. And it’s delicious, but then every so often we get pork steaks, and end up turning them into something resembling shoe leather with paprika. Now, don’t get me wrong, it’s damn good shoe leather. Turns out I could do better.

This takes half an hour to cook but the pork’s juicier if you marinate it for a couple of hours (or even overnight). Plan accordingly.

Read more…
by Matt Brennan

Microcord

In this manual will be found a description of the construction of the camera, and the simple instructions necessary to operate the instrument. The manual does not purport to be a treatise on twin-lens photography but we hope that the information provided will prove of value to the newcomers to twin-lens photography and enable them from the very commencement to produce first class negatives.

by Matt Brennan

Livewire 0.6 released

Livewire 0.6 has been released, containing a breaking change: HTTP request body parsing is no longer included in the core. It’s been split out into its own module, Corps, rebuilt on plain Highland, and gained a new feature: content type sniffing.

by Matt Brennan

Building a simple REST API with Livewire

This post is adapted from Modulus’ excellent introduction to HAPI.

I might have mentioned Livewire around here a couple of times. Livewire is my little (and getting littler) HTTP router with a functional bent, for Node.js. Since 0.5, released this weekend, it’s been based on Highland, a high-level streams library.

Read more…
by Matt Brennan

Sodor

I’m pretty psyched about this. First, some background. As you may know, I’ve been working on an MVC framework on and off for the last four years. Mostly off. It’s called Gusto, apart from when it’s called Struct or Juego. It’s never been anywhere close to ready, and in the last four years I’ve kind of grown up as a programmer and gotten a bit disillusioned with the whole MVC thing. Also frameworks. So fuck MVC. Also frameworks. And that’s a blog post for another time.

Read more…
by Matt Brennan

Rain

Welp, that’s twice in a week it’s rained for exactly 15 minutes, starting as soon as I get on my bike and ending when I get off.

Don’t cycle in the rain, kids.

  1. You get wet.
  2. Really wet.
  3. You can’t see.
  4. No-one can see you.
  5. Your brakes hardly work.
  6. Your bell doesn’t work.
  7. It’s cold.
  8. It’s dark.
  9. You get wet.
  10. You’re the only one with a mudguard, so you get sprayed anyway.
  11. Umbrellas.

I’m just going to sit here and steam slightly.

by Matt Brennan

Quick recipe: Burger sauce

10:5:1 mayo:ketchup:mustard, add something punchy like Tabasco or Henderson’s Relish or lemon juice or capers and maybe some honey.

by Matt Brennan

Changing Alfred's hat

Love Alfred but not the hat icon? Simply replace /Applications/Alfred.app/Contents/Frameworks/Alfred Framework.framework/Resources/alfredhat.png and it’s done. Don’t even need to restart it. Enjoy!

Icon from Elementary by Daniel Foré.

by Matt Brennan

Livewire 0.4

Livewire is 0.4. It’s been bitten by a radioactive unicorn and has all kinds of new Fantasy Land-begotten superpowers.

route (-> not-found '404'), [
	get '/' -> ok 'hello world'
	post '/user/:id' (req)->
		{id} = req.params
		params <- flat-map body.query req
		<- flat-map dev-result do ->
			user <- flat-map User.find-by-id id
			user.update params{name, email}
		redirect "/user/#id"
]
Read more…
by Matt Brennan

Making change

How do we make money into change?

It’s nice to know what’s the biggest coint fits in an amount.

fit = (coins, amt)-->
	maximum filter (<= amt), coins
Read more…
by Matt Brennan

Moving Home

What do you hear, Starbuck?

153 has moved. 153 has a new look. 153 is probably broken.