main page

This page is intended to serve as a place where I can informally dump thoughts for projects that I'd like to see done at some point, be they hardware, software, or socially oriented. Do what you wish with the ideas. If something you see here interests you or inspires you, then run with it. If you do end up doing something interesting with anything you see here, then I'd really appreciate an email describing what you were able to do. Enjoy!

Local IP caching
This is something I'd really like to see done. It'd be great to go to sites and have the resolved IP of the domain cached in a file so that I don't have to re-request IPs from the DNS everytime I reboot or occasionally switch off my system. I think the best way to do this would be to intercept outgoing requests from OTInetQuery() calls (at least in Open Transport), and perform the lookup locally first before deferring to an external name server if the IP for the domain isn't located. Other cool features to have would include cache expiration, and periodic accuracy checks of the list, reverse resolving the IP table to make sure that it's current.

Advertising banner filtering / animated gif restriction:
As I'm stuck in a dorm that doesn't have Ethernet access, the only connection my laptop has to the outside world is via a 28.8 modem, over an outdated phone system.
This makes moving around on the web rather slow, especially when I have to contend with bandwidth wasters like advertising banners and animated gifs. If you've been following my quasi-diary entries back on the main page, then you know that I've been learning how to program using Open Transport on the Macintosh, and that I've been aquiring a more in depth knowledge of the socket API, and the TCP and UDP protocols in general. Learning more about the underlying protocols gave me an idea for speeding up page loads. I've noticed that more and more, sites are relying on dedicated subnets to serve ads to other pages ( and are two examples that come to mind).
It seems like it would be fairly trivial to compile a list of ad servers, place them in a text file, and write a program that prevents connections being established with these servers, thereby preventing them from loading ads and banners which slow down load times. The list of servers would be plain text, and user editable, and it'd be possible to specify specific port numbers to block (eg. 80, which is the default http port) , while allowing connections to ports like 22, 23, and 25, which are the default telnet, ssh and mail ports.
I'd also really like to see a method developed for blanket blocking of animated GIF files, maybe by allowing only the first image in the series to load? It'd also stop the annoying churning of my hard drive as it pushes through the downloaded frames while they're in cache.

Context sensitive image caching:
Context sensitive permanent caching is another idea that's been floating around inside my head lately. Sites like Slashdot use a series of standardized images to denote news topics. While the images present on the page on any given day change, the image filenames do not, and the images are reused frequently. Since I visit the site a lot, it'd be really nice to not have to download the news icons for that day every time I visit the site. I'd like to develop a context sensitive permanent cache for images of this nature. Such a program might work in the following fashion. Any image that you'd like to cache permanently can be clicked upon in the browser, and included in the submenu that comes up is a 'Context Cache this image' option. After clicking on this option, you are offered several caching options, which are themselves context sensitive, and may change depending on the URL of the image. The options menu may look something like this:
Obviously, a fair degree of intelligence and knowledge about a particular site is required for effective use of the tool. However, good use of it could successfully reduce pointless reloads of standard eye candy on large sites. I'd like to have an advanced option that would allow use of regexps for more complex cache loading/decision making.

Meta-Level Neural Networks:
Onto a completely different topic.. I've been thinking about meta-level neural networks a lot lately, that is, neural networks than encode information on more than one level. For instance, a single conversation may have relations to several other conversations. Within a single conversation, there may be related topics. Within those topics, there are related sentences, and within those sentences, related words. Within those words are related characters. Linking all of this information together using a connectionist activation based model could be exceedingly interesting, especially in the context of fault tolerant parsing. A major caveat of most artificial intelligence and natural language processing systems is that they are intolerant of entry faults, and that they cannot perform context sensitive interpretation on their input. This meta level approach could be a good way to further contextual understanding by artificial intelligence and parsing systems.

about me | projects | music | trashing | "art" | links | contact | work | ideas | code | changes