Archive for the 'Computing' Category

A Post!?

It’s only been 6 months or so since my last post, so now seems like a good time to upgrade. This semester is probably the most interesting set of classes I’ve had yet (CS-wise anyways). Robots and Society, which is an alternative to CS Ethics, is insanely interesting and we have some very interesting debates. I’m planning on writing my term paper about the ethics of strong AI, which will certainly be interesting. CS2200 (Systems and Networking) sparked an interest in Systems. That and my lukewarm reaction to Introduction to AI led me to move into Systems, which has a ton of interesting problems (parallelization is the big thing right now). Hopefully I’ll be able to take the Linux kernel class the next time it’s offered. I’m glad I took databases, it was extremely useful stuff to learn and I got a chance to really build something in PHP. I do want to play with Ruby, or some other functional language - maybe play with Rails and build a simple To Do list that I can’t seem to find anywhere (not one that’s simple or easy to use).

I’m also taking Advanced Operating Systems, we’re doing a lot of stuff with threading. I’ve got to build a multithreaded web server soon, which should be interesting - ironically, a single threaded web server that uses asynchronous IO (and some of the other kernel tricks) is usually faster. I’m also taking User Interface Design, which is vastly necessary - since most CS majors seem to think about interfaces as an afterthought, something years of using Apple’s interfaces then using something else has made abundantly clear. I do need to take algorithms soon though, since it is the core of CS. I can’t wait to graduate though, I want to go build something in the real world.

January Snow

It snowed recently, which was cool - other than the freezing temperatures. 30 Rock and the few episodes of Studio 60 I’ve seen were great - it’s sucks that Studio 60 was cancelled though. This writer’s strike sucks - give in soon you evil producers! I needs my Entourage and trashy TV. Lost starts tonight, I’m hoping for consistent awesomeness, but I should probably go in with low expectations after most of last season. Now to head off to a group meeting. Maybe I’ll post more often this year… maybe….

iPhone

I got an iPhone Friday at 8pm. No lines whatsoever at the AT&T store I went to in Watkinsville where I was visiting family. I literally bought the iPhone and walked out - it was really simple. Brought it back to my cousin’s place and got it setup (I didn’t have any issues with activation luckily). I’m fairly impressed with it - the interface is amazing and is everything I’ve come to expect from Apple. There’s a few issues I’ve encountered though - IMAP couldn’t see all of my mailboxes by default, so I had to set the IMAP Path Prefix in the settings. Safari isn’t blazing fast (on WiFi that is, its even slower (as expected) when using the EDGE cellular data network as well) and it crashes quite often and I’ve run into quite a few web sites that are broken (I can’t update my status on Facebook and I can’t enter text in the WordPress post writer for instance).

iPhone Closeup

The only learning curve has been getting used to the keyboard (which is quite intuitive and easy to use). Mail works intuitively and comes off as pretty well polished - it’s definitely better than a CrackBerry and any of the Palm OS devices I’ve had in the past. The phone just works, which is critical to me. The switch for vibrate/ring works wonderfully (no more ascending/descending beeps as I mute or unmute my phone). And the iPod portion is simply amazing - it’s intuitive, but far more powerful than a normal iPod (CoverFlow is great). Put simply, I love it. Though I will say - there’s a few things I want to see - MMS (I foresee a software update delivering this soon), iChat (it just makes sense on a portable phone), and a terminal for SSH (I’m not holding my breath on this one though).

Something Like TortoiseSVN For OS X At Last

SCPlugin in the Finder

I saw SCPlugin when I first discovered versioning, but it wasn’t compatible with the newer versions of Subversion as I recall. It hasn’t been updated in a long time, but I noticed a new version out on MacUpdate and had to check it out. When I was in CS2335, I used TortoiseSVN under Windows for all my C# coding and loved it. At last there’s something that has one of the two big things I really enjoyed from TortoiseSVN (GUI interface in the Finder). It still needs something like TortoiseMerge for dealing with conflicts, but still, this is a huge improvement over the command line or Quicksilver for me. There are icon overlays to indicate versioning status, that seems to be a bit buggy though, because as soon as I removed the .svn directory in the root of my homedir (since my entire homedir is, sadly, not versioned), it stopped working in a number of my working copies. Regardless, this is an amazing tool for anyone who uses Subversion on OS X and I look forward to further updates of SCPlugin.

Elliptic Curve Cryptography

The NSA has a really good article on why we should (technically some people are, but most people don’t create certificates with ECC signatures or implement it into their solutions) start moving towards elliptic curve cryptography. Basically - smaller keys with better security, which means less memory consumption and reduced bandwidth usage (which all translates into better performance).

OpenDNS and PhishTank

I’ve been meaning to check out OpenDNS for some time now and finally got around to it, in part thanks to Paul and WordPress developer Matt Mullenweg’s blog post. I’m only playing with it in my dorm right now (I set it up as my static DNS servers in my router and DHCP does the rest). It’s billed as a fast DNS service with typo-redirection and anti-phishing capabilities. It is fast, Tech’s DNS servers have been noticeably slow this semester when performing uncached lookups (they’re still fast when the lookup is cached though) and when I visited several sites that are notorious for being uncached lookups it zipped right along. The TLD typo (.comm -> com) works well and quickly (I will admit to making such mistakes from time to time). I haven’t done much with their phishing capabilities. Phishing hasn’t been an issue for me, but obviously it is for some people since we have billions of dollars disappearing as a result of identity theft, some of which occurs due to phishing.

OpenDNS Phishing Alert

The other service the OpenDNS people rolled out today is their PhishTank service. It’s essentially a user-driven phishing URL submission service that relies on the community to verify phishing URLs. It’s got a great interface and what looks to have a good API. They’re working on plugins for SpamAssassin and Thunderbird, which will make this service useful beyond its use in OpenDNS (the plugins are what really interest me). There’s talk of using it with antispam plugins for blogging comment spam, à la Akismet. One thing they’ll have to do is make it incredibly simple to submit phishing URLs with their plugins (One click submission in your email client is almost a must), otherwise this service will quickly become useless (user driven services are useless if they’re not easy to use and no one ever submits content).

There are already services that do URL blacklists (Spamhaus does phishing and spam), the issue that has arisen from time to time is that these services aren’t very democratic and from time to time there have been abuses (a lot of people use these services (or their ISPs use them) to filter junkmail and as such they hold a lot of sway over what people ultimately see in their mailbox). That’s not to say that a democratic system is immune to such abuses, but it should be easier to rectify issues that come up when others can verify the validity of your claims without waiting for a select few to “get around to it.” I’ll be interested in the statistics on false positives, percent of phishing emails caught (emails that trigger PhishTank / actual phishing emails), and such when the project has gone on long enough to get good information on its real usefulness.

GT Webmail

GT Webmail Preview

This week hasn’t been very busy, so I finally did something I’ve been interested in doing for awhile - I setup a webmail client for Georgia Tech’s email. Tech’s webmail system is simply put - disgusting. Using folders to organize and archive email is a joke and simply isn’t practical. The interface is fairly ghetto as well. So how does this all work? Essentially, I’m using SVN builds (developer releases basically) of an awesome webmail project called Roundcube that I’ve configured to connect to Tech’s IMAP server (IMAP is a way of getting email while keeping it on the server). I’ve changed a few of the the defaults to settings I think people would prefer more (12 hour clock with relative dates (Today, yesterday, etc.) vs 24 hour clock with abbreviated days). I’ve setup LDAP lookups against Georgia Tech’s directory server, so if you go into the address book, you can lookup an email address based on someone’s name. Logging in is simple, just use your GT account and password, you don’t need to type in your email address to login. The only thing you really have to do is the first time you login, go to Personal Settings (top right) and go to Identities and set your email address to whatever your address is (either your GT alias or leave it as your mail.gatech.edu address) - I’ve set it up to guess your email address by using your GT login + @mail.gatech.edu. This should work for most people, except for freshmen who I believe get an alias style address as their default along with a non-gtg style account. You can create folders under Personal Settings using the Folder area (And there’s only three areas in the Personal Settings area, so it isn’t bloated with options) to help organize and archive your mail. And since this is all done using IMAP, the folders and mail you move there will be accessible anywhere (Mail, Outlook, Thunderbird, Eudora (*cringes*), or even under Tech’s webmail if for some reason you don’t like this solution). I’ve been using Roundcube for almost a year on my personal domain and I hope you’ll enjoy it as much as I have. Give it a try!

Update 9/9/06: I’ve deployed Lighttpd to improve performance. Lighttpd is a (great) webserver, which is what serves webpages to your browser. I’m using a stripped down version of PHP (a programming language for web applications that Roundcube uses) in combination with FastCGI in my lighttpd implementation. I’m running it on port 8080 (https://gtwebmail.net:8080, however simply typing gtwebmail.net will redirect you to the right place) since Apache (another very popular webserver) still has to serve my other websites on the normal web port (port 80, which browsers simple hide from you to keep things simple). My non-scientific tests have determined that is a bit faster than before. Another advantage is that lighttpd handles heavier loads (lots of people connected) much better than Apache does, so if this ever gets popular it should hold up fairly well in terms of speed.

Update 9/20/06: The latest SVN builds include an HTML email composer. It’s using TinyMCE, so it pukes (buttons don’t work, but keyboard shortcuts do if you want to go that route) on Safari - but it’s great in Firefox & Internet Explorer. You can enable it under Personal Settings. You can setup an HTML signature under your Identity (Personal Settings) if you want to (I stuck in my standard CSS/HTML sig). I’ve also installed XCache as a PHP extension. XCache is a PHP Opcode Accelerator (”Makes things go faster”), but it hasn’t made any big difference to me which made things go noticeably faster once it got its cache built up. I’m also going to try and make it so you can access different accounts (Like your CoC email, I think you get an engineering account if you’re an engineer, and so forth) via a server pop up menu at login. There’s two issues with enabling this that are problematic, so I might try my hand at playing with the PHP code to make it work.

Update 10/04/06: So I finally juggled around the lighttpd.conf and httpd.conf files (Lighttpd and Apache web server configuration files) and there’s no longer a need for serving up GTWebmail on port 8080 (although I’ll be leaving it on with a redirect for now while people update bookmarks, etc.). This means that https://gtwebmail.net is where you’ll wind up (none of that :8080 stuff) no matter what you type in for gtwebmail.net. That port 8080 stuff probably just confused people when they saw it anyways, good riddance. And now back to my previously scheduled CS2335 project.

As of this post, I’ve shut down the lighttpd instance running GTWebmail.net and deleted the database of user preferences (along with the user it was run under) - so everything for GTWebmail has been deleted. I hope you enjoyed it.

Vim > Emacs

Vim > Emacs. End of story.
Also: Real coding at last (Assembly sucks!). A true compiled language at that too - C!

A Simple Statistics Problem

There’s a really good article that looks at why NSA Domestic Spying program is a huge waste of money and time from a statistical point of view, without even going into a discussion about the blatant invasion of privacy. Bottom line: data mining doesn’t work when you’re looking for a needle in an incredibly large haystack. But hey, it’s great for spying on reporters.

MacBook!

Photos thanks to Paul
Update later (Maybe from IE6!)

Tabbed iChat At Last

Not from Apple unfortunately. But either way, Chax is quite awesome. It’s got a few other good features I’m using- custom font sizes for the buddy list, auto away messages, etc.