browsing posts by category:

Developers

Goodbye Cruel World  

by posted in Developers, Team
Feb 21

Mission Accomplished - Finishing the big server move in 2010

For those of you who don’t know Australian music very well Goodbye Cruel World is the title of the greatest hits album Brisbane band Custard released when they broke up. As most of the Envato community isn’t based in Australia, I’m guessing that covers most of you. Goodbye Cruel World also makes a pretty good title for the blog post where I say goodbye to Envato.

Continue Reading

Envato Sponsors Inaugural Course from The Intro  

by posted in Developers, News
Nov 24

The Intro

As you know, here at Envato we’re right into helping people learn new things, and we’re also pretty into the local tech community here in Melbourne. With that in mind, we’re extremely pleased to announce we’re getting behind the launch of the Melbourne based training/course collective The Intro by paying for everyone to attend Ben Schwarz‘s inaugural course Practical HTML5 for free.

We think it’s pretty amazing to see something set up to help share specialist knowledge in the Australian tech community and are really glad to help out. We highly recommend that if a course from The Intro comes your way that you check it out.

See the announcement over at The Intro for information on how to attend.

Code Retreat  

by posted in Developers
Jul 28

In December last year, Corey Haines ran a Code Retreat here in Melbourne. I was lucky enough to attend, and I have never improved my craft as a software developer so much in a single day.

Now I’m running one at Envato’s shiny new offices on Saturday, August 27th.

What on Earth is a Code Retreat?

It’s a day of deliberate practice, a chance to focus on software development techniques without the distraction of having to deliver real software.

When you have to deliver a product, you always cut corners. You don’t follow all the principles of good design, you don’t have 100% test coverage, you don’t do TDD rigourously. And that’s fine; you’re working within constraints.

But to get really good at any of those things you have to practice them without those constraints. You have to take them too far and see what happens.

A Code Retreat is a chance to do this, and share what you learn with others that are doing the same.

You can read more about Code Retreats here.

The Format of the Day

The day starts at 8:30 AM and goes to around 5:00 PM. It’s free, and Envato is putting on breakfast and lunch.

You’ll be working on a particular problem throughout the day (Conway’s Game of Life), in sessions of about 45 minutes. You’ll pair with somebody different in each session, and it’s up to each pair to decide what language they want to use.

Here’s the important bit: at the end of each session, you’ll delete your code. The only thing that you’ll take away from the session is what you’ve learnt. There’s no pressure to deliver a working product.

We’ll probably get through 5 or 6 sessions, but it depends on how people are feeling.

Registering

We’re opening 20 spots to start with, and we may add a few more later.

Registrations open at 10:00 AM on Tuesday, August 2nd, and it will be first come, best dressed.

Go here to register.

(If you miss out, fear not. There will be more Code Retreats in future!)

I hope to see you there!

Presentation at Dev Ops Melbourne March 2011  

by posted in Developers
Mar 23

On Tuesday March 22nd I presented at Dev Ops Melbourne on how we handle our infrastructure and deployments without an ops team. I think around 80 developers and ops guys (or sysadmins if you’re old fashioned in your terminology) attended.

I think the talk was pretty well received, but the main value for me was actually having to think hard about how we, the dev team, approach our work and put it into writing. The big thing I realised is that a lot of our flexibility in how we work comes from the strength of our relationship with the community. All the feedback we receive on the forums and helpful bug reports feed back into the dev team and help us get better.

Anyway, while the talk wasn’t recorded, there’s a copy of the slides just below for your reading pleasure.

Continue Reading

SafeShell  

by posted in Developers
Jan 11

Need to call out to shell commands to process user-submitted files from your Rails app? You should be using our safe_shell gem.

The Problem

Let’s say a friendly user has uploaded a file called “avatar.jpg”, and you’re using ImageMagick to find out about it. In your app you do:

info = `identify #{filename}`

That’ll expand to:

info = `identify avatar.jpg`

All good, right?

Now a malicious user comes along and uploads a file called “;rm -rf .”. Now your command expands to:

info = `identify;rm -rf .`

Uh oh. Because the backtick operator forks a shell, and the shell parses the command, this will happily do exactly what you don’t want it to. Bye bye anything your in your Rails app that can be deleted.

So what’s the answer?

Continue Reading

Rebasing Merge Commits in Git  

by posted in Developers
Jan 11

I’m one of the devs here at Envato, and this is my first post to the Notes blog. Having found myself in a role I would cautiously describe as ‘resident Git expert’, it’s only fitting that my first post would be about a fairly technical aspect of working with Git in a team environment.

The TL;DR version is this: When rebasing, always use the -p flag,

First, though, a small diversion – why rebase is part of my normal git workflow.
Continue Reading

Meet the Staff: The Marketplace Dev Team  

by posted in Developers, Team
Nov 15

For the next instalment in our “what the hell does the dev team do series” we thought we’d actually tell you who the dev team is. We decided to do things a little differently for our meet the team post, and we all pulled names out of a hat to find out who’s profile we were writing. So here you go, the guys who put in the hard yards to create the marketplaces you all know and love.

Marketplace Dev Team

ErinErin

Erin Francis is a state cycling champion and a damn fine coder. He’s got a firm handshake, a magnificent haircut, a Flying V ukulele and a set of pearly-whites that’ve make senile men cry with joy. He moved to Envato two years ago, and we just wouldn’t be the same company without him. He’s an all-rounder who can pull off any fashion accessory. Transition lenses effortlessly show us both sides of his personality, as do his school shoes-with-casual-shorts combination. Yes, school’s definitely out for our gold-standard search expert.

Erin enjoys collecting bikes, playing video games and finding a cheaper way to do everything. On his off-hours, he picks up the slack wherever he can, be it staying back late to finish a redesign, organising the office networks, or even organising affordable food for the hungry Envato staff.

In fact, organising is Erin’s favourite thing. It’s part of everything he does. He organises our extremely profitable inter-office milk bar. He organises the strictly-not-for-profit sandwich club. He organises free beer on fridays. He organises rotas. He organises work-wheels. He organises my poker chips even though he’s not supposed to touch them. He gets his red blood cells to line up in a big row throughout his circulatory system each night before he goes to sleep, where he organises his many thoughts into clear, perfectly formed epiphanies.

Erin’s an environmentalist, a communist and an Australian icon – a Dame Edna for our times. If anyone thinks different, they can call him on 1800 CORRECT ERIN and tell him what they think of him. I’m not stopping you.
Written By James
Continue Reading

What Does The Dev Team Do All Day?  

by posted in Developers
Nov 1

So the other week one of our users did a bit of wondering out loud in the comments, wondering what exactly so many developers do with all their time working on the Envato Marketplace. We were a little hurt that someone thought we only exist to jack up rates :(

Still, we can’t really blame him, we’ve never _really_ explained what goes on behind the scenes at Envato. I’m expecting we’re going to drag this out over a few posts over the next couple of weeks. In this post, I just wanted to briefly explain some of the hidden complexity behind the Envato Marketplaces. In many ways, the marketplace (that’s what we devs call it, “the marketplace”, all lower caps because we’re lazy typists) is like an iceberg. What the end customers see is just a shiny little protrusion popping out the top of the water, the really dangerous bits are submerged, ready to take a giant chunk out of your unsinkable ship, and much later be turned into a teen heart-throb type of movie. I may have taken that a little too far. Continue Reading

Tagged:

Presenting Lazy Loading Controller Instance Variables  

by posted in Developers
Oct 25

Here’s a video from way back in the archives. At the October 2009 meeting of the Melbourne Ruby and Rails User group I did a presentation on a lazy evaluation tool we created to help deal with the extra complexity all our view caching was adding to our Marketplace app.

Continue Reading

Tagged: ,

Marketplace API Version 2  

by posted in Developers
Aug 27

Good news sports-fans! We’ve decided to stabilise the current bleeding edge version of the Marketplace API and mark it as version 2. This change is effective from today. We’ve got some exciting new API changes coming up over the next month or two, but before we start working on them we wanted to make sure we lock off the API as it is now so all the cool things people have built so far don’t break.

Continue Reading