Project Ideas

This page includes ideas that came through my head with the thought to implement them. Most of the times they just fade before I get a chance to do anything about it, I hope to use this page to keep them around for the time that I'll have the inclination and time to work on them.

Car MP3 machine

This unit is to be mounted in the car in place of a cd-changer and be used to play mp3's, it should be voice-controlled and IR-remote controlled. It should have an easy way to update the songs, The easiest way to achieve it is by having the hard-disk in a removable drawer.

Home movie recorder

This unit is modeled after the Tivo unit, and is to be a digital version of the video machine, features should include the ability to set a recording in advance and the ability to start viewing a movie that is being recorded from the start so that if the beginning is lost, one can start from the beginning while the movie run is being recorded.

Things to consider, since it will have a tv-in and tv-out it will act as a buffer on the line between the antenna and the tv, it will be cool to have it add a channel like a video does and not completely assert itself over the television. Another thing that can be of use is to have IR-control over the tv from this unit, so that a single control can be used for the tv/recorder set.

It will require a black casing for the computer, preferably in some slim case that will look like a stereo unit, it can have a CD-Rom or DVD-Rom drive to view offline recorded movies, in DVD, VCD or DivX formats. It should also feature a network connection so as to allow the offloading of recorded movies to a computer over the network in order to be burned in VCD/DivX format. Possibly one can connect a CD-RW to the device to have it create the movies itself.

Home movie recorder - touchscreen controller

Control the Home Movie Recorder, get a touchscreen machine to control by using infra-red or something of the kind. This can show the programs as a menu on the touchscreen and allow easy control of the HMR.

Links:

For all of this ideas, the following links might be usefull:

A learning Ad remover

There is a learning ad-remover based on the work of Nick Kushmerik "Learning to remove internet advertisements", in Proceedings of the Third International Conference on Autonomous Agents (Seattle 1999), pp. 175--181, (1999).

One thing that is needed to make it even better is to make it a constant learner, so that when something is not identified as an ad, the user can point to it and the system will learn about it, ditto for non-ads that are removed mistakenly.

The current method of its work is that it learns once from a set of examples and then it is working, in order to teach it additional stuff, it needs to be added to the example set and then the learning process needs to start anew.

Optimization by reordering executables

The idea is to optimize executables by reordering them inside and out, this is expected to give improvement by giving a better utilization of memory caches.

This bottleneck is usually in memory, especially with new faster processors the memory becomes the slowest part, memory is accessed through faster (and more expensive) caches, improved cache utilization both the L1 and L2 caches could result in improved performance, especially for memory hungry programs.

The possible options include reoreding functions so that less used functions are placed in far flung places where they do not get in between more used functions, this could also help to improve loading time as most modern OSes will only load needed pages and so if some functions are only rarely used (think error handling), they will not even be loaded to memory.

Another thing to consider is reordering of code inside functions, such that less used pieces of code are at the end of the function, this could improve L1 cache since it usually gets loaded in blocks of 16 bytes and not needing to load the later parts of some function will improve cache hits on L1 cache.

Links:

Wired House