The Daily WTF

The Daily WTF is a forum style website, but is actually a blog where you can see, every day, examples of the funniest “design patterns” and code you have ever seen. Code samples that will truly make you go “WTF??!!” to the point of disbelief that anyone actually wrote them.

Miranda IM

Miranda Instant Messenger is the IM software I use. I like it for quite a few reasons:

  1. It connects to almost any protocol there is.
  2. It has a small footprint, both on your computer’s hard drive and in its memory.
  3. It is extensible, in the sense that its architecture is plugin-based, which lets you extend the program in many ways, and even replace “built-in” functionality with your own.

People have done wonderful and unexpected things with this program, as you can see by browsing Miranda IM’s plugin database.

I started using Miranda IM when I started working for Motorola. At the time, the firewall only allowed the official Yahoo! Messenger client to go through (as it falls back to HTTP when direct connection cannot be established with Yahoo!’s servers). So I decided to write the Relay Plugin for Miranda, which uses Miranda’s multi-protocol capabilities to act as a relay between protocols. Something like this:

Me at work, connected to Yahoo! < ———–> Miranda IM at home with the Relay plugin, connected to Yahoo! and MSN < ———–> My friends on MSN

The Relay plugin also motivated other people to create relay-like plugins, like mBot Relay agent plugin, forward plugin and yaRelay plugin. This actually makes me kind of proud.

I think this plugin is great, but it is now outdated since the intoduction of the Miranda scripting plugin, which spawned the creation of Web Miranda (also a plugin) and now you basically can have Miranda working from anywhere in the world using nothing but a web browser.

I continued to develop for Miranda, though. After experimenting with TAPI3, I put Caller ID into a plugin and created the Caller ID plugin. The cool thing about this plugin is that it uses my own Relay plugin to tell me when someone calls in. So when I’m at work and someone calls my apartment, my computer at home IMs me about it with the number. A neat trick to show your geek friends, that’s for sure.

Problems with Hebrew

I was going to post some stuff today in Hebrew, but unfortunately I have problems with the blog at home, which is supposed to be an exact copy of this blog.

The problem is that I can’t add posts in Hebrew. They come out all with question marks. It’s very strange, because the same blog exactly works on this server.

Nevermind. I’ve tried to mess with it for too long. I’ll post in English until I figure it out.

Raymond Chen’s blog

Raymond Chen is a evil empire Microsoft employee. His blog is very popular among developers, or at least that’s the impression I get. However, it is not only a development blog. Raymond, being a Microsoft veteran, has many interesting and amusing stories about Microsoft’s early days, Interesting observations and, of course, a lot (and I mean a lot!) of useful developer lessons which he passes on in a concise way. He occasionally whines about stuff, but that’s ok too (about that last link – I think that Google introduced a great UI for their map service. So if I’m looking for a place that Google already has data for in “Google Maps” then that’s where I’ll go).

The story on how I found John Stone’s website

I told you a little about John Stone in my first post and now I would like to tell you the story on how I got to his website.

You know those stupid emails you get at work? Usually there are images or movie clips in them, but sometimes there are links. Before I started working out I got one of those links. The message subject was “Look… this guy doesn’t change his underwear every day”. I knew it was stupid the moment I read the subject line, but I had to check out the link and see how they can tell. I only looked at it for a second, closed the browser’s window and deleted the email message.

However, the picture of the guy who has made the change got stuck in my mind, and when I started working out I also started to look for sources of motivation and inspiration. So naturally, I went to Google and looked for the guy who doesn’t change his shorts every day. And indeed I found John Stone’s FAQ, which is hilarious because it contains answers to all the questions from people who think John is fake. Unfortunately, since John is not updating pictures daily anymore, the answer to the boxer changing isn’t there either.

So that’s it. I’m thinking of emailing John with this story (and a huge thank you), but I’m not sure I’ll do that. Oh, and one more thing… the answer to “Why do you wear the same shorts two days in a row” was “Because sometimes I shower before I take my picture and sometimes after.” That simple, but I’m sure some people still don’t believe it.

Current Workout Schedule

Here’s my current weekly workout schedule:

Sunday: HIIT #1 on an elliptical; Pilates.
Monday: HIIT #1 on an elliptical + 20 minute run at 85% MHR; Yoga.
Tuesday: Muscles: chest, legs, triceps; Pilates.
Wednesday: HIIT #2 on an elliptical; Muscles: shoulders, biceps, upper-back.
Thursday: HIIT #2 on an elliptical + 20 minutes run at 85% MHR; Muscles: chest, legs, triceps.
Friday: Muscles: shoulders, biceps, upper-back; Yoga.
Saturday: Rest!

HIIT #1 is:
3 minutes warmup
1 minute at 60% effort
1 minute at 70% effort
1 minute at 80% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 70% effort
1 minute at 80% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 70% effort
1 minute at 80% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 70% effort
1 minute at 80% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 70% effort
1 minute at 80% effort
1 minute at 100% effort
2 minutes cooldown
(total of 25 minutes)

HIIT #2 is:
3 minutes warmup
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 90% effort
1 minute at 60% effort
1 minute at 100% effort
2 minutes cooldown
(total of 25 minutes)

UQAN – Universal Questions and Answers Network

UQAN (pronounced you-kuan), Universal Questions and Answers Network, is an old idea of mine, which never came to be.

It is best explained by an example. Let’s say you install a UQAN client on your computer. There are two use cases:

1. You have a question – you write your question, categorize it (tag it, if you want to use current geek slang) and submit it. After a while (hopefully a very short time) you get answers back from people who are currently online and thought they have the correct answer.

2. A question by someone else arrives to you – in the UQAN client you can specify areas (categories) in which you think you’re capable of assisting other people. Once a person asks a question, it can pop up on your desktop and you may answer it. You can, of course, dismiss it or look at other responders’ answers to see if there’s spam there or if someone got the right answer already (in those cases you can rate these answers as correct/wrong/spam/whatever).

Since so many people are connected at any given moment, and there is so much knowledge available, I thought this would be like support forums on steroids – you don’t have to wait so long to get your answers. I also thought communities or companies could setup local QANs for members/employees. But, I just didn’t get to implementing it. Like all my ideas – maybe it will happen in the future.

KeyboardAccess For IE

KeyboardAccess For IE was my first open source project. I wanted to implement it even before I knew how.

The idea of this project was to create an alternative way to browse the web. After installing this Internet Explorer plugin (called a BHO in Microsoft jargon), by clicking the keypad’s ‘+’ key in a web page, all the links on the page get numbers, and you can choose the link you want to open by entering its number in the dialog that pops up.

Generally speaking, it works. It even lets you focus on form elements like text boxes and puts numbers on image maps (this feature I was especially proud of). However, it doesn’t catch all the links, since sometimes the numbering is hidden by other page elements, and of course Flash links are simply not accessible through the HTML DOM.

So after a while I stopped developing it, because it wasn’t as popular as I had hoped, and I currently use Firefox as my browser. I still think it’s a good idea, so maybe I’ll develop it as an extension to Firefox.