Posts Tagged work

Is my calendar broken?

“One reason programmers dislike meetings so much is that they’re on a different type of schedule from other people. Meetings cost them more.”

I’ve been spending some time recently trying to convince people to leave me alone.

I’m not a recluse, I’m a programmer.

I get depressed watching entire days slide by knowing that I’ve accomplished nothing. Well… nothing on my schedule. I accomplish plenty of things on other people’s calendars, but I just can’t seem to find the time to dedicate to the projects that I take the time to plan.

It turns out that my calendar is broken.

I’ve complained numerous times that I need blocks of uninterrupted time to accomplish things. I’ve pointed out how a phone call or a random drive-by (personal requests for my time) can totally kill my productivity.

It turns out that I’m right.

“…programmers and writers… generally prefer to use time in units of half a day at least. You can’t write or program well in units of an hour. That’s barely enough time to get started.

When you’re operating on the [programmer's] schedule, meetings are a disaster. A single meeting can blow a whole afternoon, by breaking it into two pieces each too small to do anything hard in.”

One option is to insist on chunks of time during the week in which I must be left alone. All calls go to voice mail and visitors are stopped at the door. Productivity would soar!

Another option is to just do mediocre work. Accept the dozens of interruptions each day and do just enough to get to the end of the day.

I can’t do that though. I love my job..

I just wish I’d be left alone long enough to do it.


Quotes from: Maker’s Schedule, Manager’s Schedule, By Paul Graham

Tags: , ,

Say “Hello” to my little friend.

About a year ago I scavenged a “to-be-decommissioned” PC out of our closet here at work and installed Ubuntu Server on it.  I stuck it under my desk and proceeded to familiarize myself with some administration tasks.

I installed a LAMP stack and moved my web development stuff over to the new box.

Then I set up a bunch of disorganised CRON jobs to back-up all my files.

I installed SAMBA and set about connecting to our Windows Server.

Then I found instructions online about how to connect to a Novell server, so I created a bunch of mount points and wrote a couple scripts to access our Novell server.

doesn't look like much, does it?

doesn't look like much, does it?

Shortly thereafter, I wrote some new scripts to do some routine nightly file maintenance between our Novell network and our Windows network.

I had an old legacy MS Access application that was giving me fits and I wanted to upsize it to something a bit more robust – so I ported it into MySQL.

Then I wrote a web front end for it.

Then I had an idea to create a corporate help-desk application that would allow users to fill out a form online and submit work requests to our department.  Simple, but effective.

One day we were overrun with viruses (annoyances, actually) that our current corporate anti-virus wasn’t aware of yet.  So I installed Avast Antivirus on the linux box and spent a couple weeks cleaning up flash drives, memory cards and external media of all sorts until the corporate AV got updated with the new virus signatures.

Most recently,  I’ve embarked on another we-based front-end to a older application.  Sticking it on the web will save tons of money on paper alone.

While modifying my cron jobs to backup the most recent project files, I began to remember this machine’s humble beginnings.  Destined for the trash heap, linux breathed new life into an old machine and turned it into a little workhorse.

Eventually, I’m going to need to move my files onto a larger, more secure machine, but I think I’ll keep this little baby around long after that.

Tags: , , ,

So how was your day?

So this morning I was rearranging my desk at work.  I find that I do this whenever I’m overwhelmed with a ton of projects and don’t know which one to work on and which ones to ignore.

Anyway, while re-routing the cables under my desk I lean way over to the cable pass-through and hear a rrriiippp! (Actually, more of a rriipp!)

Damn it.  I split my pants!  Right under the fly I had created a space I could pass a quarter through.  Not having any change, I wondered what to do next.

Well, I had to finish reconnecting my desk – because nothing was plugged in.  So I did that.  Carefully.  Every bend, stretch or lean threatened to expand the hole and expose my bean bag.

Afterwards, I started wondering where I could get one of those traveller’s sewing kits you see in hotel rooms.  Trying the obvious answer first, I strolled over to the Mariott and Bingo!  I found a sewing kit in their Gift Shop.

Returning to work, I had to find a handicapped bathroom (since they’re huge and they have a door that locks).

Next thing I know, I’m standing in the restroom in my underwear threading a needle with yellow thread. (Tan pants – the closest color I had was yellow)  Good thing there was a mirror.  I looked fantastic.

About five minutes later I’m ready to cut the thread and put my pants back on.  Not having scissors, I grab the needle and attempt to cut the thread with my teeth.  Pulling the thread taut and getting ready to bite *SNAP* the needle breaks!  What a piece of crap!  I’m glad I was done with my sewing job.

I pull my pants back on and stuff the other spools of thread in my pocket.  It’s not pretty, but I’m not worried about anyone seeing my mending job.  And now I’m not worried about my nuts falling out either.

It’s time to buy new pants.

After that, my day got better.

Tags:

A crapton!

I learned a new word today: Crapton.  As in:

There is so much good candy here — literally, a crapton of it — that I had to resort to the immediately-available cellphone camera.

Like trick-or-treating for the insane!

Ironically, I also recently accumulated a crapton of something.  This morning was the Health Fair at work.  I got my glucose tested (216 after breakfast – not bad), my cholesterol (178 – good), my blood pressure (138/90 – high normal) and my BMI (unprintable here).  I felt bad that all these nice people were providing  all these services, so I was compelled to take whatever it was they were offering.

Laying it all out on my desk it looks like a horrible mess.

Tags: ,

Brain Dump: :Programming on a Full Brain

“It helps to remind those who think of programming as a
“cushy job” that programmer burnout rates are high,
programmer divorce rates extraordinary, programmer work
hours are obscene, programmer job security is next to
non-existent, programmers come home from long work weeks of
programming to spend hours more in unpaid self-training to
keep up with a field that abandons those who stop learning
for even six months.” – Found on USENET

I like my job. Remember that.

Right now at work I’m juggling three projects, assisting on a forth and preparing for a fifth. Add to the mix an endless parade of requests and email and phone calls and the fact that I haven’t had an official vacation (more than two consecutive days) in just over a year and you’ve got the recipe for programmer burnout.

There was a time just today where right in the middle of writing some code, I completely blanked out and could not remember what I was doing. I’d forgotten which project I was working on and even forgot which language I was writing in. Luckily, my phone rang before I could regain my senses and before I knew it I had agreed to donate a large chunk of any future free time to providing yet another solution for yet another department (although, the programmer in me saw that this re-engineering job, while not offically a “Project”, really needs to be done. The way they get their data and process it currently borders on ridiculous… must fix that.)

The problem I run into is that it feels so good to solve problems. I love knowing that I’m the one responsible for changing the way entire groups of people do business during the day. It’s especially nice to hear, “Hey, thanks. That [program/database/template/spreadsheet/webpage] you made has helped me so much.” or “What used to take us all day now takes us an hour!” and just the occasional “You Da Man!” is nice too. That kind of encouragement makes me want to keep doing what I’m doing.

So I accept another project…
…and help out with somebody else’s project.
…and promise to meet a tight deadline.
…and return the phone call I know is a request for more work.
…and keep going to work day after day.

I like my job.

But I need a break.

Tags:

School Days – Part 3. The Whole Shebang.

I’m back in class again. Advanced Web Development using Visual Studio .NET.

I’m not keeping a nice daily diary like I did for the last two classes for a couple of reasons:

  1. I hate this class.
  2. It’s only a three-day class so it’s even more accelerated than the last two.
  3. I don’t understand anything enough to try to describe what we’re doing in class.
  4. I have homework. Lots of it.
  5. Did I mention that I hate this class?

When I came home yesterday I seriously debated whether or not I was even going to go back today. Today, I almost didn’t come back from lunch.

I have the same teacher that I had for the first class and the experience has been similar. I don’t feel like I’m learning anything. My work at my real job is piling up (as evidenced by my bulging work email-inbox), and the whole experience is leaving me burnt-out and frustrated.

At least I got another giant book (although not as big as the last two) to stick on my shelf at work and fantasize about one day being able to go through and learn from at my leisure.

Tags: ,

Apocalyptic Mumblings

6666606

…This calls for wisdom: let him who hath understanding reckon the neighbor of the beast, for it is a street number. Its number is six hundred and sixty-eight.

I’m so disappointed. I expected today to culminate with a red sky and flames and sulfur and acne and boogers and blood and pus and traffic tie-ups and wailing and gnashing of teeth. Instead I get a letter from my land lord saying he’s raising our rent in July. Some prophesies aren’t all they’re cracked up to be.

Phishing for Idiots
So I applied for a new credit card a few weeks ago. I wanted to see if I can maybe transfer the balance on our existing Visa to a new 0% card and pay it off a little faster and lot cheaper. So the other day we get a response that says:

…one of our top priorities is to ensure that the named applicant is in fact the person applying for credit… [Please] provide us with a copy of your most recent documentation for the items noted below:

Proof of residence
photocopy of your social security card

Yeah, right. I understand that anybody can apply for credit in someone else’s name if they get a hold of the other person’s social security number, but asking me to send a copy of the card through the mail? Sure… and I’ll enclose $20 in cash to help speed things along. There’s gotta be a better way to prove that I’m really me.

Yeah… We’re gonna need you to go ahead and come in on Saturday…Mr. Lumberg
So I spent my entire Saturday at work. What I thought might be maybe a half-day’s work turned into a day and a half. Literally. Carrie and Ashley were shopping at the mall and late afternoon they dropped by to see if I was almost done. I was not. Since I had the car and the mall was closing – they were stuck in my office until I was able to leave. Long story short – they watched “Office Space” on the DVD player in my work computer and had a snack of soda and chips from the vending machine before I was finally finished. Just about 8:30pm we headed out to dinner. It was a long day. But I have to admit, I have the coolest boss in the world.

Tags: ,

School Days – ASP.NET Day 5

Final Day.

Today we finished up the giant coursebook (everything except the final “Review” chapter) and ended the day early with our biggest lab yet.

Today’s focus was on Configuring, Optimizing, and Deploying web applications using Visual Studio .NET We spent a fair amount of time learning to optimize the cache to speed up operations on the server side and make applications peppier and more user-friendly. We also got into Security and Authentication. A lot of the authentication chapter seemed pretty familiar because I’ve had plenty of experience on secure websites (Amazon, Gmail, Newegg …etc) but now I understand why those sites sometimes seem so slow or time out altogether. There’s a lot of communication going on behind the scenes of a secure transaction! Add to the mass of communication a little network lag or a flaky hard drive in a server farm and you end up staring at an hourglass for five minutes while waiting to checkout. While the hardware can never be perfect all the time – the other concepts we touched on today can help prevent us from building a problem into the software.

Just before we started our last lab the teacher handed out the course evaluation cards. I submitted a much better evaluation of this course than last time because I really enjoyed being in this class and feel like I really learned something useful. Unfortunately, he said he’s pretty booked up over the next few months and he won’t be teaching again all summer, (I have two more classes this summer and that means I might get the teacher from my dreaded first class again! *shudder*) so he put his personal email address up on the overhead and passed around a sheet for us to give him our email addresses. He said that he likes to be able to pass along special deals or tips or interesting web sites to his former students and all he needs is to add us to the list. He mentioned that he always reads his email but warned us that with his schedule, he can’t promise he’ll be able to answer in a timely fashion.

All-in-all, it was another success. Depending on my ability to convince my boss (and her boss) to get me a copy of Visual Studio so I can prove I learned something, of course.

P.S. The next class is ‘Advanced Web Application Development Using Microsoft ASP.NET’ and it’s in TWO WEEKS!! It’s only a three day class, but I’d better re-read my notes and go over that giant coursebook again. I bet I’m gonna need it.

Tags: ,

School Days – ASP.NET Day 4

Well, today I’m back to school after the holiday weekend.

We accelerated a tiny bit today because tomorrow is the final day of class. As luck would have it, today we covered XML and web services. XML is yet another in a series of languages I’ve heard of but have had no real experience working with. XML is special because it’s so extensible (which means it’s very flexible and powerful and that if you think you know all about XML – you’re wrong) Our teacher said that he could easily teach a five day course on just XML, so today’s lessons would only gloss over the parts which we’d be covering in our labs.

I have to admit I was intrigued by the lessons though. Throughout the course of the lecture, the teacher kept using me and my job as a specific example of something XML is well suited for. He made up examples using the data that I have to deal with at work everyday and gave me some really great ideas for things to try to implement when I get back to the office (if I can somehow get my hands on a copy of Visual Studio). Around the office I’m always saying that “if I have to do it more than twice, I’ll write a program to do it for me”. XML and web services could make a lot of data-sharing and read-only lookup applications much nicer and easier to support.

Speaking of ease of support, today I spent a lot of time trying to straighten out a problem with the webpage at work via email. Between listening to the lecture and plowing through labs I was constantly checking my work email for responses to questions and fixes. I got everything fixed finally but I’m dreading the pile of work waiting for me when I get back to work.

We wrapped up today talking about UDDI(Universal Description, Discovery, and Integration) which allows people to publish web services and the documentation for using them over the internet. There are web services for stock quotes, weather, finance calculators and tons more. The one the teacher demonstrated today was a little less useful, but way more fun… Bork Bork Bork (Type in a phrase and click ‘Invoke’ to have your phrase translated to ‘Swedish Chef’ – funny, huh? Ok…not really, but it shows how you can use a service somebody else wrote in your own webpage in just about two lines of code.)

Tomorrow’s the last day and there’s only three more chapters to go.

Wish me luck.

Tags: ,

School Days – ASP.NET Day 3

“VBScript is dead on the client side.”

Our teacher has some very definite opinions on certain technologies and the right tool to use for certain jobs. With computers getting more powerful everyday and memory prices falling it’s becoming more and more practical to distribute some of the work of a web application to the client. In other words, nowadays when you click on a button or fill in a text box on a web page – it might be your computer that’s making sure the phone number you entered is really a phone number or the password you made up has more than 6 letters in it.

Using .NET gives you the ability to use almost any language on the server side to develop your applications. For instance, we are using VB.NET, but like I mentioned yesterday, our coursebooks have samples for all the exercises written in C# also. But you can use almost any language. Using a variety of languages allows a programmer to do really powerful things on server level in record time. Programming in the language you are most comfortable with has definite advantages.

Ok…but what the hell does that have to do with vbscript, right?

With web applications becoming more and more complex it’s nice to be able to have the client computer do some processing so the server doesn’t have to do it all. Unfortunately, the client computer is almost always connecting to the application with a web browser and the language choice for browsers is somewhat limited. According to our teacher, JavaScript is the way to go. It’s fast and popular and robust and has syntax similar to C (or was that C++?).

The problem, of course, is that I don’t know JavaScript.

Damn.

Today I learned that I have a whole lot more learning to do.

On the other hand, tonight I was able to install Visual Web Developer 2005 Express (Microsoft’s scaled-down, free version of Visual Studio) and successfully created a totally useless web application that adds two numbers together when I click a button. It’s pointless and ugly, but dammit, I did it.

I’m on my way.

Tags: ,

School Days – ASP.NET Day 2

I know he’s the teacher and everything, but how the hell does he know all this stuff? Watching the teacher do demonstrations (which he totally makes up on the spot instead of using the examples in the book) reminds me of how I felt the first time I wrote a basic program and watched amazed as it did what I told it to do. Before I was comfortable with the language and the syntax, viewing a program listing was like reading some arcane spell. The fact that I was able to talk to the computer, in it’s language, amazed me. It still does.

Today, I was once again reminded of some big holes in my formal education. Being self-taught can be a huge ego boost, but missing out on fundamentals can make putting things together later on a lot rougher.

The thorn in my side once again is object orientation. The rest I’ll grasp eventually with enough repetition. I just can’t wrap my head around ‘classes’ and ‘namespaces’ and the difference between a ‘function’ and ‘subroutine’ (they look the same to me) and don’t ask me about ‘custom procedures’. When the teacher is typing away and we’re watching on the overhead projector, everything makes total sense. I can follow it all. But when it comes time for me to do it on my own, I freeze up. What was the constructor of the Lab23990 class again? What’s the syntax to iterate through every member of the Benefits collection? AAARRGGHH! To make matters worse, our coursebooks show each example written in both VisualBasic and C# and I’m convinced that they pay someone to purposely come up with the most ambiguous variable and class names they can think of.

The light at the end of this tunnel, however, is that if I can convince my boss to buy Visual Studio for my use at work, I have plenty of reference material and some absolutely great ideas for some new web applications and cleaning up old ones. And the ability to use Visual Studio at my leisure to write, screw-up, debug and deploy applications will help me to finally tackle the object orientation concept.

I might not seem like it, but… I’m having fun.

Tags: ,

School Days – ASP.NET Day 1

Today began the second round of classes I get to go to for work.

This section covers ASP.NET and from what I can tell it promises to be way more useful and interesting than my last class.

After only one day, I can tell that the teacher for round-two has actually taught before. He’s pleasant, funny and doesn’t just read us the book like the last guy did.

We spent today kind of reviewing some of the concepts from last class, and this time I understood it. I’m sure the combination of a better teaching style and a framework that I think I’ll actually use at work (a lot more web, database and browser stuff) naturally makes it more interesting.

The day ended early (sweet!) with a discussion on open-source applications (ruby on rails, Apache, php) vs Microsoft and their applications (ASP.NET, IIS). Of course, we’re being taught Microsoft technology (and thus, our teacher is pro-Microsoft) but our teacher is familiar with the open-source equivilents and isn’t afraid to bash Microsoft on some controversial concepts. We all had an opinion one way or the other, although nobody defended either side very strongly. All-in-all, it was fun to talk with people who knew what I was talking about for a change.

I’m ready for tomorrow.

Tags: ,

It Was Ten Years Ago Today

Ten Years ago today I started a new job.

No, not the job I have now. My previous job. I worked maintenance for an apartment building. One whole building and the 150+ suites inside it were my responsibility. Hauling garbage, plunging toilets, cleaning carpets, unclogging garbage disposals…all in a days work. The money was as bad as it can be when part of your compensation is a free apartment. I was chained to a pager (literally – well, it was little tiny chain to keep in on my belt – but it was a chain) that only went off when I was trying to eat, sleep or shit. My marriage suffered and I spent a lot of time drinking. Too much coffee in the mornings and too much beer (and other, far more poisonous brews) at night. It was my second maintenance job (the previous lasting almost five years)and I was beginning to doubt the promise I made myself that I was only going to do this until something better came along. I was stuck. And there was no end in sight.

Eight years ago today I quit that job.

Yep, I worked there exactly two years to the day. I caught a break and I’ll admit I was the luckiest son-of-a-bitch in the world. I got the interview for my current job. I was accepted. I was scared. I was afraid to try something new but I also knew that if I didn’t I most likely never would. I’d be stuck wondering what would have been. I’d wake up every day and hate my job. That’s no way to go through life.

Eight years ago this Thursday I started my current job.

Now I’m happy to go to work in the mornings. Everyday I remind myself how things used to be and how things could have been. This is the longest period of time I’ve stayed employed at the same place. I have a career now. Not a job. I took the chance and it paid off.

How much has changed in ten years? All of it. Every last thing. And today reminded me of that.

Tags:

Just Like Downtown

Every payday for the last few months I’ve been walking to the bank at lunch. I get some cash for our Westside Market trip on Saturday and a roll of quarters for laundry at home. I also get myself a little lunch money and treat myself to a lunch in the big city.

Don’t get me wrong, I don’t think I’d enjoy dining alone everyday. Once every couple weeks, however, is kind of cool. Lunch is usually a couple slices of pizza from Sgt. Pepperoni’s in the Arcade, but sometimes it’s an Italian Sub from Quizno’s or a Ham ‘n Turkey from Subway. Whatever is on the menu, the atmosphere is the real attraction.

Since I don’t have anybody to talk to I find myself spending a lot more time looking around and just watching things. People mostly.

Like the three guys dressed alike with little nametags on their shirts. You can tell that two of them wanted to go to lunch and the third guy just tagged along.

Or the lady that’s obviously waiting for someone. She’s got her food wrapped up in front of her and she’s reading a book. I can tell she’s hoping like hell that the person she’s waiting for shows up before her lunch gets cold. Or warm.

Outside, there’s the army of businesswomen marching around in their business dresses and sneakers. If they’re anything like the women I work with – their nice work shoes are kicked haphazardly under their desk back at the office.

Today there was a guy wearing one of those sandwich boards with scripture written all over it. He had a megaphone and kept reciting verses from the Bible. Just walking down the sidewalk. Middle of lunch-hour. A few people crossed the street to avoid him, but most people just kept on doing what they were doing. For them it was just another day.

Another day downtown.

Tags:

School Days – .NET Day 5

Graduation day!!

Today dragged by slowly. Mostly, I’m sure, because we all knew it was the last day. Our teacher was determined to get us through the end of the textbook so ahead we went.

We finished up “web services” and moved on to “threading and asynchronous programming”. Don’t feel bad – I sat through the lecture and labs and I’m still not sure what it means. Something about Windows’ ability to perform two or more tasks at once and how to control everything while it’s happening. It was complex and not helped by the fact that we all agreed that it’s a concept we probably won’t use when developing applications at work.

Lastly, we got into ADO.NET. Cool. Database connectivity and programming. This is what I do everyday at work (well, not exactly in this manner – ADO.NET is much nicer and more advanced). Unfortunately, it was a small chapter and only intended as an introduction to ADO.NET I will actually be attending another class in June that is five days of only ADO.NET.

At least the class ended on a good note. There were no sad goodbyes or pictures and no graduation march. (We didn’t even get our certificates – the teacher couldn’t find them) Our certificates will be mailed to us. Just before the end of the class we were given a business card with instructions on how to login and fill out a survey about how much we liked the class and what we thought we got out of it. I was fair, finding a balance between the fact that the teacher taught at high-speed and the fact that we all didn’t necessarily have all the prerequisites to be there in the first place.

All in all, my first experience with Corporate College was pretty cool. I enjoyed it more than a typical day at work, so that’s saying something. I’m looking forward to going back in June and hopefully will be more prepared. Until then I have to spend some time working what I learned into my everyday jobs or it will all have been for nothing.

Tags: ,