Archive for November, 2007

Code Mountain

Wednesday, November 28th, 2007

I came up with an idea this afternoon for a source code visualizer for Enterprise solutions. Basically it would provide a source code cloud built from files and their dependencies. Each cloud would be a logical block (function, if-statement, loop, etc.) and the user would be able to zoom in/out to any level as needed. You would then work on an application as a whole rather than on a set of files. Everything would still be saved out to standard files, but the entire application would be accessible in a visual manner that wouldn’t require lots of commands to open and close said files.

Basically I want to be able to quickly move between parts of a project using the Mac OS X Expose feature, but without subjecting myself to Mac OS X. I also want seamless integration with VIM. CloudVIM if you will…

The app would also tie into another idea I had a while back: multi-history versioning for files.  Basically I want to be able to view the state of a file at any given point during my editing session, even if that means branching into multiple edit histories.  Combining these ideas into CloudVIM would allow a developer to easily navigate to any source code at any time within a specified timespan.  Coupled with SVN for storage this would provide a powerful debugging model I think.

We need a good use for 1TB hard disks anyway.

Dust Bunnies

Monday, November 26th, 2007

I exorcised the demons from my laptop over the Thanksgiving break.  Turns out that running an Athlon 64 at 2.0GHz with 3+ years of dust collection is a bad idea.  I had been forced to run everything with the power savings set to maximum (which under-clocks my CPU to 800MHz).  Running anything CPU intensive would ultimately lead to programs crashing as the poor CPU attempted not to DIAF.

Airspeed Velocity of an Un-Laden Swallow

Tuesday, November 20th, 2007

European: 24 mph

http://www.style.org/unladenswallow/

Megan (one of my co-workers) was repeating Monty Python lines this afternoon. Figured I’d dig up a proof of the airspeed velocity of an un-laden swallow from Google.

Anti-Viruses

Thursday, November 15th, 2007

I followed an article today on Warden, the anti-cheating software used by Blizzard Entertainment, Inc. which eventually lead me to http://en.wikipedia.org/wiki/Polymorphic_code. The brief synopsis there got me thinking about the way in which anti-virus software currently works. I’m reasonably convinced that writing monolithic packages to combat swarms of virii is a mis-guided idea.

So perhaps what we need is an immune system composed of anti-viruses. These programs would seek to wage war against viruses but in a manner that avoids the pitfalls of virus propagation (primarily DDOS outbreaks). They would actively seek out insecure systems and infect them with the cure and then altruistically de-activate themselves.

I’m certainly not the first person to suggest this (and I’m reasonably certain that all attempts at such a solution have failed thus far). But I am convinced that fighting viruses with anti-viruses is the best long-term strategy. Currently we have software packages which build huge lists of black-listed programs to guard against infections. There are a couple of problems with this approach: 1) it isn’t scalable, 2) they’re targetable, and 3) it only allows the cure to be applied after the fact.

Scalability

As the number of viruses in the wild continues to grow, the database for detection will also grow. Eventually there will be so many potential exploits that scanning your system for an infection will take days (even with improvements in system performance). The best way to combat this trend is to develop general-purpose anti-viruses which morph and adapt to combat new threats. The key here is that you’d be running smart agents which could achieve much greater efficiency than a scan-and-ban solution can.

Targeting

More recent virus scanners do implement ‘heuristic’ scanning modes, but they are still susceptible to the concerns I’ve listed above. In order to wreak havoc on your system, a virus-writer needs only to disable Symantec or McAfee and then he/she has free reign over your bits. By distributing the cure across multiple anti-virii we could make it harder for virus writers to create countermeasures (because they’d be subject to the same constraints that anti-virus companies are now – namely that they’d have to build a database of anti-viruses to de-activate).

Deployment

The biggest hurdle to anti-virii is deployment of the cure in an ethical, rationed manner (so the anti-virus doesn’t end up causing just as much harm as the virus it is neutralizing). I’ll have to think about that. It doesn’t matter what your intent is if the outcome is the same.

Links

Power Corrupts?

Wednesday, November 14th, 2007

Well I finally decided to extract my copy of Wordpress and get things rolling tonight. I spent a good number of hours a couple of weekends ago getting software updated on my dedicated server and removing the Plesk admin interface that had been pre-installed about 2 years ago. As I have been configuring my copy of Wordpress, I stopped to ponder why I need to have control over where I host my files…

It isn’t as though hosting my automagic musings on another server would really be all that bad. I wouldn’t have to manage the software updates or keep track of bugs and hackers. Yet despite the risk of screwing things up, I still prefer having control over my data. I pay a monthly hosting fee to have access to a linux system which I’m free to do with as I wish. I enjoy that freedom.

Short Version: Programmers <3 control.