Everything you wanted to know about FreebCode but were too embarassed to ask.
What's up with that name? FreebCode?
Where did you get the idea?
How does FreebCode work?
Doesn't this system have inherent disadvantages?
What are the advantages of FreebCode then?
Final Question. What's the story behind your constant usage of the word 'juxtapose' and the meaning of the banner image?
The prefix "Freeb" is just a fun sounding amalgam of Free and Busy, which is the foundation of what FreebCode does -- examine and juxtapose when you and your teammates are free and busy. Hopefully the "Code" is readilly apparent.
A lot of calendaring programs like MS Outlook utilize a similar concept of time resource allocation where individuals publish their "Free/Busy" schedules. Seriously. Open Outlook and you'll find that under all of your appointments you can specify whether you'll be Free, Busy, Tentative, or Out of Office. One of the more advanced functions of Outlook, if coupled with a departmental office e-mail server like MS Exchange allows people to invite each other for meetings and then have Outlook find a good meeting time.
This was the problem: A lot of my classmates don't use Outlook, a Pocket PC, or a Palm.
However, as university students, we have the advantage of having rather static weekly schedules. It was after perhaps after the 4th or 5th ridiculous back and forth scheduling marathon that the idea of FreebCode was born.
The concept is so simple I'm surprised it hasn't been done before.
An entire week is divided into 30 minute intervals. That works out to be 48 values in the course of one day or 336 values for an entire week. Each interval can have a value ranging from 0 to 3 representing increasing busy-ness.
In reality, a FreebCode in its pure form is just a string of numbers ranging from 0 to 3.
000000000000000000000000000000000000000000 000000000000000011113333222200000000000000 000000000000000000000000000000000000000000 001113322212232121111111111111111111111111 111111111333333333333333333333333322222222 222222222222222000000000000000000000000000 000000000000000000000000000000000000000000 000000000000000000000000000000000000000000
But there's no way you could easily copy and paste that around. So we use a bit of compression. We convert that string of numbers from a Base4 representation to a Base64 representation which is composed of letters, numbers, and punctuation which brings the string length down to one third of its original length(112 Chars). Even that compressed string can get a little unweildy, so we use Run-Length Encoding (RLE) to shorten long lengths of repeating characters (most often the letter 'A' because that represents "000" in Base4). The additional meta-information like your name and a closing "END" tag are conceptually borrowed from Genomic Stop Codons (to warn users of inadvertant truncation of a code) and you have your final FreebCode.
Oh definately. I'll list them off:
PROBLEM: The minimum resolution of time is 30 minutes and meetings can only begin and end on the half-hour. You might find a nice meeting time on the quarter-hour for example.
RESPONSE: I fought with this concept for awhile. I had another program design that would cater to individuals who DID use Outlook, a PocketPC or a Palm whereby they could export their next week's schedule and then their FreebCode would be dynamically updated in their e-mail signature. Ultimately, for the target audience I was shooting for, such a system would have limited who could have used FreebCode as well as been significantly more complicated to create. 30 minute intervals, especially since a majority of our courses begin and end on the half-hour was an effective compromise between simplicity and functionality.
I designed FreebCode to be immediately accessible and as simplistic as possible to support the comparison of schedules. FreebCode is going to make scheduling teams, especially large ones (7+ members) a lot easier. Even if no 100% ideal time is available, you'll have made a meeting time decision that you know for certain is the best one. The doubt and nagging suspicion that there maybe a better time-slot than the one we came up with bugs me with traditional scheduling. Of course, FreebCode is absurd to use for when you want to get together for dinner with someone. It's the large team meetings that this is designed for.
FreebCode is also inherently democratic. Everyone's schedules are equally represented and balanced against each other. Something I like about Web 2.0 technology philosophy (I know...I'm not using AJAX at all in this).
Finally, FreebCode is a cross-platform webapp. In fact, as long as you running FireFox on PC, Mac, or Linux, you can run FreebCode. It's an instant gratification and universally accessible program -- far more fun to program for than regular apps.
Both excellent questions, if I don't say so myself.
I learnt of juxtaposition from English poetry analysis back in high-school. Look up the definition of juxtapose -- it's relevant. Plus it just sounds cool.
As for the header banner, if you haven't already figured out, it's three schedules stacked upon each other. The thin strips at the top and bottom of the bar are coloured red, orange, yellow, and green depending on the amount of conflict in the schedules. It's all about the symbology.