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:
denise: you haven't arrived until you've made at least one mistake that brings the site to its knees ;)
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.
Everybody: Spent ages searching for the bug, only to realise the file you're editing is not actually the same file you're running.
fu managed to do this one while I was actually writing up this list, and not just on her Dreamhack but on Dreamwidth itself!
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:
exor674 is the project head for TT conversion)
shadowspar: I spend a lot of time with 'perldoc -f <most-any-perl-function>'
azurelunatic: Forget to convert null entries to zeroes before doing mathematical operations that's likely to involve counting or dividing.
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
azurelunatic: And for my part, I totally submit suggestions all the time that are already logged in Bugzilla.
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.
denise: like the time
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
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:
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!
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]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
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]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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!
Not on DW, but....
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.
Re: Not on DW, but....
Re: Not on DW, but....
no subject
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.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
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.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(We'll see if any bug reports come in for my other patch, which was a style)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
^- 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. :( )
(no subject)
no subject
I tend to idealize and idolize, and this is actually quite an encouraging thing to be reminded of here.
Thanks again.
no subject
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.
(no subject)
(no subject)
(no subject)
no subject
"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!
(no subject)
(no subject)
no subject
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.
no subject
(no subject)
(no subject)
(no subject)
no subject
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.
Tests passed first time = Freakout
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...
Re: Tests passed first time = Freakout
Re: Tests passed first time = Freakout
no subject
(I will confess to having come back and looked at this post a few times myself for encouragement!)
(no subject)
no subject
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.
(no subject)