Server Downtime    Posted:


I just wanted to take a minute to apologize to any of my numerous loyal visitors (can you tell I'm being sarcastic?) who were disappointed to find my site down for the past few days. My web server had some problems, and I simply did not have the time to bring the site back up properly until today. That is all :)

Comments

Lots Of Happenings    Posted:


Yay! First post in nearly 4 months! I feel kinda bad for leaving my April Fools Day joke on the front page for such a long time, but lucky for me my blog isn't very popular! I could have found myself in a world of hurt.

I'd like to give you all a quick update on what's been going on in my life that somewhat justifies a 4-month window of no blog posts. First of all, we had 25% of our backend development team (1 person, leaving 3 developers) get fired earlier in the year, so the workload at my day job got to be a bit heavier.

Second, my wife and I were pregnant with identical twin girls. It was a relatively high-risk pregnancy, so we spent many days in the hospital for checkups and whatnot. The doctors gave her somewhat strict bed rest orders, and I worked from home since the beginning of July (my job is awesome that way) so I could keep and eye on my wife and help with our soon-to-be two year old son.

Third, we had our identical twin girls this past Tuesday. They arrived at 9:25 and 9:27, and their names are Claire and Jane. Claire weighed 5 lb 3 oz, and Jane weighed 4 lb 14 oz. As expected, they lost a bit of weight at the beginning, but they're starting to gain weight again. My wife and the girls are all doing very well.

My son, on the other hand, is starting to realize that his world is changing quite drastically. We're trying to give him as much attention as we can, but it's definitely not the amount that he's used to. He seems to do very well with his new baby sisters, but there have already been several episodes where he just breaks down. It's sad.

I have a few days of leave and vacation that I'll be taking to help get everything settle at home. The girls are still in the "let's sleep all day and night until we're hungry" sort of phase (which is quite awesome), and my wife is up most of the night with them. That means the only person who doesn't sleep a ton during the day is my son, so we get some good father/son time.

Anyway, on to the nerdy stuff. Since I find myself with a couple hours of downtime here and there, I plan to do a bug-smashing ticket-resolving spree. Just as my blog has sat dormant for months, so have many of my side projects. Now is the time to change that!

Comments

Incompetent Secretaries    Posted:


Attention!

This is an opinionated rant. If you're offended, that's your problem. Feel free to leave comments about your hurt feelings.

Attention!

To the secretary/assistant: If you're reading this, I truly apologize for any offense you may take from my article. If you're new to the job, I'll apologize again--it's not always easy to hit the ground running. I'm just trying to understand the world a bit better than I did when I woke up this morning.

Several weeks ago, I received an email from the secretary/assistant of my Computer Information Technology department chairperson. This email contained a request for me, as a student graduating with a degree in CIT, to fill out a survey to gauge how well the program is functioning from my perspective.

Attached to said email was a Microsoft Excel spreadsheet, formatted for Excel 2007. As an avid Linux user and open-source advocate, I am appalled when I encounter simple files that are not formatted in what could be considered the "lowest common denominator" format, especially when they come from my CIT department. So many other formats would have worked just fine: .doc, .xls, .rtf, .txt, and even the infamous PDF with editable form fields. Come on folks...

Anyway, it's not so revolting to me when other departments send out such abominations. But when the files come from a department which teaches and encourages the use of Linux and whatnot, there seems to be a problem. Several full-time CIT professors even refuse to use Windows and instead choose to use a Macintosh. Yeah, sure, our university requires that students have Microsoft Office for a lot of classes, and they still provide computer labs with the software if we're too poor (or opinionated, like me) to buy it ourselves.

After getting over my own self-righteousness about file formats, I decided to download the spreadsheet anyway. I opened it up in my trusty OpenOffice and filled in the appropriate details. When it came time to save the file with my responses, I opted for OpenOffice's default spreadsheet format: ODS. In my mind, I figured that this individual, the secretary/assistant to the department chairperson, must have access to something that can at least read ODS files.

Well, I mailed off the survey last night. This morning I received the following response from the department chairperson himself:

I dont know what program you used but it is not working with my computer.If you could save it in another program and send it to me again as soon as possible that would be great. Thanks so much

There's something to be said about a CIT department chairperson, the official representative of the program, who is unaware of the ODS format. There's no excuse for that. I like the department chairperson, so I won't rag on him much. Instead, I'll rag on his little helper. When I returned home from class today, I found this email in my inbox, from the secretary/assistant:

I have an hp computer and my windows programs are 2007. If you could change something on the file that would make it so i can read it that would be very helpful.

Wow. Seriously? Apparently it makes a difference in this person's mind that their computer is an "hp" (so is mine). And the "windows programs are 2007," eh... What an ambiguous statement. I sure hope this individual is not a CIT major, minor, or in any other way affiliated with technology.

My question to you is this: how often do you encounter individuals who are blatantly incompetent to be fulfilling the duties with which they have been tasked? I mean, shouldn't there be some reasonable expectation that a person working in a position, such as this secretary/assistant, have some (even rudimentary) working knowledge of the industry in which they are employed? Or am I simply expecting too much from my peers? Am I asking too much of this poor individual who is the target of today's rant?

If I am not alone in my frustration, please speak up. Please also let me know if I am just being cruel and unusual.

Oh, and if you're wondering, I am going to send the survey back in a format that is more portable... I'm not that mean, despite what you might think after reading this article.

Comments

Announcing django-ittybitty 0.1.0-pre2    Posted:


I'd like to take this opportunity to officially announce my latest little side project: django-ittybitty! Some of you out there might not find this to be a useful application, but I hope others will enjoy it.

Many of you are familiar with the URL-shortening sites like http://tinyurl.com/, http://is.gd/, http://cli.gs/, and whole slew of others. These sites are all fine and dandy, right? Wrong! What happens when those sites have downtime and potential visitors to your site never get to your site because the URL-shortening site is down? You lose traffic. That's not good, in case you were unsure about it.

That is why I made this application. It allows you to have short URLs for any and every page on your Django site. No more need to rely on 3rd party servers to translate short URLs to real URLs on your site. So long as your pony-powered site is up and running, your visitors will be able to use URLs generated by this application to get anywhere on your site. All you need to do to make this work is download and install the application, add a middleware class to your MIDDLEWARE_CLASSES, and then use a simple template tag to generate a short URL for any given page.

django-ittybitty will keep track of the number of times a particular "itty bitty URL" has been used to access your site. I suppose some people will find that useful, but it's hardly a true metric for your "most popular" pages.

The algorithm behind this application is very simple, but it can potentially handle around 18,446,744,073,709,551,615 shortened URLs in 64 characters or fewer, neglecting the 'http://www.....' for your site (good luck getting your database to play well with that many records, much less storing them on a server :)).

For more information, please check out the project pages and enjoy:

For those who are interested, here are some code samples for how to use django-ittybitty:

{% extends 'base.html' %}
{% load ittybitty_tags %}

{% block content %}
<a href="{% ittybitty_url %}">Link to this page!</a>
{% endblock %}

or:

{% extends 'base.html' %}
{% load ittybitty_tags %}

{% block content %}
{% ittybitty_url as ittybitty %}
<a href="{{ ittybitty.get_shortcut }}">Link to this page!</a>
{% endblock %}

or:

{% extends 'base.html' %}
{% load ittybitty_tags %}

{% block content %}
{% ittybitty_url as ittybitty %}
{% with ittybitty.get_shortcut as short_url %}
<a href="{{ short_url }}">Link to this page!</a>
<a href="{{ short_url }}">Link to this page again!</a>
<a href="{{ short_url }}">Link to this page one more time!</a>
{% endwith %}
{% endblock %}

Enjoy!

Comments

Downtime and django-tracking 0.2.7    Posted:


The Foul Side

Some of you may have noticed the ~11 hours of intermittent downtime that codekoala.com experienced from early on the 24th of January to just a little while ago. I was doing some work on my django-tracking application, which somehow seemed to break my site. CodeKoala.com uses PostgreSQL as the database backend, and as soon as I tried to apply the changes to django-tracking to my site, everything just seemed to die.

The weird thing was that the site would work if I put it on a sqlite or MySQL backend. I didn't change the database schema at all as part of my changes to django-tracking, so it made absolutely no sense. I was in touch with WebFaction's awesome support squad for a good deal of today trying to get things sorted out. We tried just about everything we could think of, short of porting the entire site to a different backend or restoring a recent backup.

Just as things were looking very grim, I tried this command: ./manage.py reset tracking. Voilà! The site started working again. I guess I just had some super funky junk in my tracking application's tables.

On the Brighter Side

As a result of all this work and toil, you all can now enjoy django-tracking 0.2.7! There were a lot of minor code optimizations that went into this release. The biggest change, however, is the fancy "active users map" that you see here.

This feature allows you to display a map of where your recently active users are likely to be based upon their IP address. A list is also available below the map with displays further information about each active visitor. The page updates itself every 5 seconds or so, which means that if a visitor hasn't been active for 10 minutes (or whatever your timeout happens to be), their marker will disappear from the map and their entry in the last will go away too! Pretty dang fancy if you ask me!

If you're interested in downloading and using django-tracking, please check out the links at the end of the article. The Google Code link explains what you need to do and how to configure things.

So folks!! Please play with it!

Comments

Downtime...    Posted:


As some of you may have noticed, my Web host is having brain farts all over the place lately. None of my sites are very usable thanks to the poor quality of service and support on the part of my host right now. The problems seem to have begun around noon on Friday, September 19th. The symptoms include random HTTP 500 (internal server error) messages or extremely long load times.

I'm in the process of switching to a host that is more reliable. This new host is perhaps one of the best in the industry according to all of the reviews that I've read. Let's hope I have better luck there.

Comments