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.
- MP3Car - A project with various parts.
- EMpeg - A commercial unit.
- Highway MP3 - Commercial units.
- iPaq car MP3
- Someone's implementation of speech recognition
- Technical information for car electronics installation
- MP3 Public
- MP3ar
- MP3 machine
- Unsorted 2
- Unsorted 3
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.
- Video Disk Recorder
- Building an MP3/DVD Box for the Home Audio System - A slashdot article
- Acer NT-150 Set-top Box - A useful place for info and a possible machine
- Slashdot story with PVR info
- VCR HOWTO
- From slashdot
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.
- The article (Compressed Postscript)
- Artices author homepage
- AdGatherer
- AdEater
- Muffin - An HTTP proxy in Java.
- More Web Filtering bookmarks
- DMoz filtering bookmarks
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:
- Utilizing binutils
- Manual page for G_LinkOptimization
- IBM journal - See reference to "Trace-directed program restructuring for AIX executables"
- FDPR - Feedback Directed Program Restructuring - an implementation of the idea by IBM
- Profile-directed restructuring of operating system code
- I-cache performance tuning - Summary request for tools and papers regarding instruction cache performance tuning.
- Profile guided code positioning
- Using profile information to assist classic code optimizations
- Cache and Memory Hierarchy Design: A Performance-Directed Approach
- Compile-Time Instruction Cache Optimizations
- Improving Instruction Cache Behavior by Reducing Cache Pollution
- Performance Impact of Code and Data Placement on the IBM
- Article at IBM
- Implementation description for OS/2 executables
Wired House
- "The Myriad Ways of Wiring Your Home?" - This is a Slashdot discussion on wiring your house - tips, tricks and neat ideas.
- Quest for a practical geek house - Story on Kuro5hin
- Geek House - Story on Salon
