jeshyr: Participating in #dw may cause you to end up leading a project team. (Dreamwidth - Project Leader)
Ricky Buchanan ([personal profile] jeshyr) wrote in [site community profile] dw_dev2012-02-24 07:12 pm
Entry tags:

Things Real Dreamwidth Programmers Do

Lots of new developers - including myself - are very nervous about screwing things up. Lots of old developers have told me not to worry, but I keep worrying. I don't want to seem stupid or break something important!

So I thought we could make a list of some wonderful hilarious things that Dreamwidth developers have done and still do. I've put the names of people who told me I could share these, but you can be sure that pretty much all of them make everybody around grin and admit that they do something very similar too, actually.

Our fearless leaders have commented on the topic when I told them I was making the list:

[staff profile] denise: you haven't arrived until you've made at least one mistake that brings the site to its knees ;)

[staff profile] mark, when told about this list's creation: if we're going to create a list of all the shit I've done over the years it will be a very long list.


Things Real Dreamwidth Programmers Do (Or Have Done)



Everybody: Spent ages searching for the bug, only to realise the file you're editing is not actually the same file you're running. [personal profile] fu managed to do this one while I was actually writing up this list, and not just on her Dreamhack but on Dreamwidth itself!

[personal profile] exor674 I STILL have to look at the TT docs every damn time I have to do things. and I mean the "how to make pages" not the scary "doing weird and obscure things in the plugins" (note: [personal profile] exor674 is the project head for TT conversion)

[personal profile] shadowspar: I spend a lot of time with 'perldoc -f <most-any-perl-function>'

[personal profile] azurelunatic: Forget to convert null entries to zeroes before doing mathematical operations that's likely to involve counting or dividing.

[staff profile] mark: the other day I oopsed a database and had to rebuild it. while debugging the slow page load thing, I installed something, that uninstalled MySQL :P

[personal profile] azurelunatic: And for my part, I totally submit suggestions all the time that are already logged in Bugzilla.

[staff profile] mark: when I was at Mozilla, I accidentally clobbered the database that contained the crash logs. i.e., every time Firefox crashes and you let it send in the crash log. this was at the Firefox 3 launch. I blew it away. no backups.

[staff profile] denise: like the time [staff profile] mark helped me troubleshoot my broken email for like three hours, only for me to discover the reason it wasn't working was because i'd let the domain registration lapse

[personal profile] azurelunatic: Forget to increment the serial number on the DNS file, and spend a half-hour cursing and weeping in class.


So next time you're feeling stupid, please remember that these things are all perfectly normal programmer behaviour:

  • Asking others for help

  • Forgetting how you did the same thing yesterday

  • Asking others for more help

  • Forgetting to restart Apache

  • Finding yourself looking up the same bit of Perl syntax for the 37th time

  • Forgetting to upload the file you edited

  • Making typos and not noticing

  • Forgetting to restart Apache again

  • Asking for help yet again


All of these are things that Mark, Denise, Fu, and all of our senior coders do on a regular basis, therefore we have proof they are totally normal and expected and no cause for shame or guilt.

If you care to, please share other silly things you've done in the comments!
dreamatdrew: (Ragabash)

Not on DW, but....

[personal profile] dreamatdrew 2012-02-24 08:29 am (UTC)(link)
I was writing a 'only let admin people log in' function for a mu*. I managed to write the test perfectly backwards, so that all the admin users (and only the admin users) were locked out of the server, and not noticed until it went live.

This is when I learned to backup binaries. Especially since it took about an hour to actually get the dang thing to recompile. Not to mention the bad shutdown of the server.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2012-02-24 08:36 am (UTC)(link)
Thanks for posting this, it's a super important message!

Computers, servers, web sites, and all the assorted technical bits and bobs that make them are hard. Asking for help, needing help, getting help, and offering help are totally normal and expected. (It's actually strange if you never need help.)

And as an aside, Dreamwidth development is not run like most other projects. We value contributors over contributions. This web site is about the people, not the lines of code. I have a personal dislike of the word meritocracy because of all the baggage it has and the way people use it as an excuse to demean and discourage. Not here.

If you keep that thought front and center -- people first! -- the rest of it starts to fall into place. We're a team and we will support each other. That's what's important here.
azurelunatic: Vivid pink Alaskan wild rose. (Default)

[personal profile] azurelunatic 2012-02-24 08:53 am (UTC)(link)
Sometimes whole *teams* of developers and beta testers and regular users overlook some weird interaction that's only obvious once you're looking at it from the correct angle, and afterwards leaves people smacking their foreheads and going "HOW IN THE NAME OF ------- DID I MISS THAT. HOW." If you're lucky, it's not an enormous security hole. If you're lucky, even if it is, no one will have exploited it before it can be fixed.

The lesson to be learned here is, if you notice something that you think is so blatantly obvious that surely someone else has noticed it, but no one has mentioned it, feel free to bring it up and don't be shy about it. Sometimes you may be the lucky one to examine it from the correct perspective to spot the possible problem or adverse interaction.

Dreamwidth development culture is at least mildly unusual in that reporting bugs tends to get greeted with glee (more things getting fixed means fewer things broken!) rather than woe (more things to fix, dammit!) as some projects do.
momijizukamori: Green icon with white text - 'I do believe in phosphorylation! I do!' with a string of DNA basepairs on the bottom (Default)

[personal profile] momijizukamori 2012-02-24 08:58 am (UTC)(link)
I am a babydev and managed to screw something up on my second patch *g* This? YEP. That would be mostly my fault. I could have sworn I'd accounted for the closing div needed for odd numbers of icons, but nope, apparently not.

(We'll see if any bug reports come in for my other patch, which was a style)
qem_chibati: Coloured picture of Killua from hunter x hunter, with the symbol of Qem in the corner. (A cat made from Q, E, M) (Default)

[personal profile] qem_chibati 2012-02-24 10:45 am (UTC)(link)
Forgetting to restart Apache again

^- Even from a non-dreamwidth perspective this can never be said enough.

Shut up and reboot works wonders for jails/servers too sometimes. @_@;;


(I broke the DNS for my work place, following instructions for what should of been a routine job [so routine that they didn't update the instructions TO NEVER, EVER RUN THAT SCRIPT! or um, do what they have done now, and deleted the script from the server.] This effectively meant, that I broke the internet. Fortunately it could be restored! ... By someone else. :( )
princessofgeeks: (BN3inBlack by heartagram)

[personal profile] princessofgeeks 2012-02-24 01:56 pm (UTC)(link)
I am not a programmer, nor do I play one on TV, but I just wanted to thank you for posting this and tell you that it cheered me up a lot.

I tend to idealize and idolize, and this is actually quite an encouraging thing to be reminded of here.

Thanks again.
deborah: the Library of Congress cataloging numbers for children's literature, technology, and library science (Default)

[personal profile] deborah 2012-02-24 03:21 pm (UTC)(link)
my favorite interview question to ask to an applicant is "talk about something you've done that was a total screwup," because I figure anyone who can't answer that question either have no experience or is lying. :D (also it is useful to see how people learn from what they did wrong.)

My favorite massive mistake that I made was typing "rm -r .*" as root. This was back in the day, on an old Ultrix machine, before systems got smart enough to recognize that it was dangerous for ".*" to (correctly, according to regular expression specification) expand to "../*, ../../*, ../../../*, ...".

For non-UNIX geeks, what this means is that I was trying to delete a few files that began with ".", and ended up deleting the entire operating system.
alierak: (Default)

[personal profile] alierak 2012-02-24 04:50 pm (UTC)(link)
Probably the thing I remember most clearly was a little screwup with moving files on the first unix box I ever administered. Fixing it turned out to be a big deal that I now remember as "the mating of the dinosaurs". There's a very brief reference to it here:

"Within a week I'd figured out how to boot it single-user and normally, how to get around in SunOS and the boot monitor, how to make it unbootable by moving /sbin to a different partition, how to restore it by lugging the disk over to a friend's place and connecting it to his Sun 3/260 one night."

I think we were concerned about how little space there was in the root partition and wanted to try moving something to another partition. Not exactly familiar with the boot process, and how the OS would be needing to load a few important files like /sbin/init before it could even get to the point where it could mount other partitions... I probably moved /sbin and left a symlink. Geez.

So, the external disk was this 80-pound VME chassis, an SMD disk I think? It showed up as xy-something under SunOS. Anyway, it took some doing to find someone with compatible hardware, muscle the disk across campus, and then devise and execute a recovery plan in a living room full of loud people. Mounting my disk's partitions on temporary mount points on someone else's server, booted from their internal disk, so I could move the files back. Seems simple enough now!
owl: text editor with code, captioned "life would be easier if I had the source code" (source code)

[personal profile] owl 2012-02-24 07:36 pm (UTC)(link)
The old "edit the config file for deployment, leave the local one untouched and then can't work out why it's not working in your sandbox" is classic.

Databases are the worst because anything is so hard to undo. Back when I was a grad, I kicked off a batch job in production which meant that the table was locked and no updates or inserts would work - for two hours in business hours.

Then just this week I ran an update, cleverly commented out the WHERE clause and updated all 500 rows instead of the 1 I intended. Luckily this was in dev this time.
janinedog: (Default)

[personal profile] janinedog 2012-02-24 10:04 pm (UTC)(link)
I honestly don't remember exactly what the problem was, but I was responsible for the bug that caused DW to have to do a second seed account sale when the site went into open beta (there was only supposed to be one). There was something that prevented a large number of users from buying seed accounts (I think it may have been people who were creating brand new accounts, as opposed to those who had accounts already but were upgrading), so we felt that we had to give those people another chance by doing another sale. Oops.
matgb: Artwork of 19th century upper class anarchist, text: MatGB (Default)

[personal profile] matgb 2012-02-25 01:58 am (UTC)(link)
About 6 years ago I rebuilt a wordpress theme from scratch to suit my style and for a few other people, this was back when a) I was learning PHP and b) wordpress themes were hard to come by and a PITA to hack in any way.

Spent ages on it, checked it in multiple browsers, got it all going really well. I loved it, it was brilliant.

Put it live on my site and several people reported weird problems that I could not replicate. Eventually a friend installed it on his blog and went through it line by line.

There were a few JS calls that I'd overlooked. They were calling some Flash files that did some weird font glittery things to anything within an H1, H2 or H3 tag.

I couldn't find it, couldn't replicate it, couldn't see it. Then I remembered something.

At the time I was living in a rented flat that had old wiring, broadband wasn't an option, so I was on a 56K dial up. So I had, deliberately, uninstalled Flash, completely, from my machine.

The entire theme didn't work on any machine that had Flash on it, because I'd forgotten to check it with a standard configuration. Took me ages to fix it, had to learn the basics of JS in order to only call the bits I wanted, not the Flash.
thorfinn: <user name="seedy_girl"> and <user name="thorfinn"> (Default)

Tests passed first time = Freakout

[personal profile] thorfinn 2012-02-27 06:42 am (UTC)(link)
After nearly 20 years doing this programming game professionally, in the last 10 years or so, I've been in the habit of writing an automated test suite right along with whatever code I'm writing.

If that test suite and the new code I've written work first time, I'm immediately freaked out and stare at the code suspiciously a few times before believing I wrote both the code and the test suite correctly. Usually I then frob the code so it's wrong, run the test suite to make sure, then frob it back.

That freakout probably tells you how rare it is to get code right first time. :-)

As far as silly things done goes... This morning's was wondering why work people haven't got my email telling them I'm working from home today when it's sitting there right in my outbox because I haven't turned on the secure tunnel to the work email server...
(reply from suspended user) (Show 0 comments)
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)

[staff profile] denise 2012-03-23 05:52 pm (UTC)(link)
[personal profile] geekosaur suggests adding, quoting something [personal profile] batrachian said: "printing the 'things real DW programmers do' list and sticking it to one's desk as brainweasel repellant"!

(I will confess to having come back and looked at this post a few times myself for encouragement!)
gchick: Small furry animal wearing a tin-foil hat (Default)

[personal profile] gchick 2012-03-23 05:58 pm (UTC)(link)
Just the other day I was working on a WordPress patch to update some things to the new version of an internal API.

Made some changes, saved, looks like we're on the right track, finished up all my changes. Saved. Reloaded the browser. Deprecated notices referring to the old version. Saved again, just in case I forgot to save the first time. Reloaded again. Still getting notices.

Went back to the editor, hand-combed through every damned closing bracket and semicolon to find what I forgot. Nothing. Reload. Still notices.

Sighed HARD. Reverted all my work. Redid it.

Realized that the test install I was working on was actually the NEXT TAB OVER.