Monday, May 27, 2013

Week Three

After noting down a few reactions to my first week back at work, maybe it's a good idea to continue in that direction for a while. I finished my third week at work this Friday, and am enjoying a federal holiday off today. I've moved from filling out worksheets to explore the systems they support to starting to support their systems.

This week began with abuse, copyright, phishing and spam incident handling, and progressed by the end of the week to active user requests (the bread and butter of what I will be doing for some time). It was funny in that I was able to shut down a site for phishing on Thursday afternoon, and assist the admin in restoring it on Friday.

The only really funny part, is having to adjust to all these servers sitting in a datacenter in downtown chicago, set to local time for the admins scattered around the globe. At 1PM on Friday in the central US, it's half past midnight in Mumbai the next morning. Staring at timestamps gets to be great fun when you always have to ask the system what time it is to make any inferences about the past.

I have started to notice the sound of phones ringing, for a while I was under the impression that it seldom happened, since it was deafeningly silent for the most part in the office. As I get more of a handle on what happens there, I think I start to notice it happening more as well.

The danger of simple surface syntax hiding a complicated model beneath

Getting back into the python pool, I am often bitten by nuisance features, most of them having to do with 'readable' syntax... or just syntax at all.
For example, writing a gcd method today, I wanted to say:
while b is not 0:
Which has the rather readable quality of saying exactly what I would say if I were to explain what I wanted in English, and the subtle disadvantage that it relies on object identity rather than numerical equivalence. Then I had the unfortunate wakeup call that fairly small numbers are long in python, and that the difference of two longs is long, and that these upcast variable types are not downcast to int when they come into range again. Coming from a lisp world where numbers don't play these games, and in fact
 (type-of (- 10 10))
answers bit, this was a bit of a shock. So
1L - 1L = 0L
and
 0L is not 0
is true, which is really not what I meant! I had to read the error, saying something about division by long zero, which didn't seem clear at all to me, and figure out where in the 'simple' number handling system this problem was popping up. Good times.

Friday, May 17, 2013

Week One

So week one was at the same time exhilarating and exhausting. It's been a long time since I was expected to be in one place for more then a few hours at a time. It's been years since I had my supervisors nearby, so learning to behave again is a great experience.

They started three new people on the same day, and set us all to the same tasks. I have this inkling that there's a bit of selection going on here, but I think I may be paranoid. We all sit at our own terminals in the middle of the room, and step through various configuration and repair options.

I registered a domain name (my old one, djuber.com, has now been purchased by some uber-dj to promote his gigs) beta-reduction.com. My webserver is completely hosed after all the changes I had to make to the server in the course of the administration worksheets. On the plus side, the email works, so sending to me at that domain will work. I'm not horribly sad about the misconfiguration, since at its pinnacle the page displayed a nearly empty wordpress blog. My only regret is looking incompetent because my server doesn't work and I haven't rescued it. At least no one around me seems to be doing much better. When they say they're done, and I ask how they did something, it looks like they just cut a few corners.

I have gotten a little better at using find (I never used flags with that before) and fgrep.

Next on my list of conquests will be chewing through the rather long gawk manual (my pdf version is just shy of 500 pages, and the chapter "Practical awk Programs" begins on page 245). Awk and Sed have been tools I've been putting off learning to use for too long. Additionally, I want to get through the Advanced Bash Scripting Guide. Then I will be an admin's admin.