Anything code related I want to retain.
Definitely the most popular page on my site, my Final Year Project was an ambitious plan to create a Game Boy Advance ↔ PC communications link that worked via USB. The project was a success, created using hobbyist electronics (a MicroChip™ PIC-chip and a more specialised by easily-obtained USB bus-interfacing chip). This basically involved assembling some hardware and then implementing the USB specification in a firmware which ran on this hardware.
All my code and notes area available, but by far the most popular area are the project report and it's accompanying disc content (complete source trees and such), the master schematic for the hardware and my project journal (which, though unorganised and hard to read, is very worth while when searching for answers about USB development).
So, if you are considering working on a USB device as a hobby or perhaps as an academic project, you may find some useful information in my USB project.
At the time of writing (Feb 2006) my project report is being downloaded 35 times per day on average.
I've written a rather lovely (PERL) script to rename my TV & Anime series either by copying'n'pasting from a website which lists the episode titles (such as AniDB or TV.com), by providing the script with the URL of the appropriate page on one of these sites, or by leaving it to search the sites it supports on your behalf and using whatever result it gets.
There are many examples of how this works and how to use this script on it's page.
Check it out: TV File renaming script.
I made a nifty Flash menu system for ChrisWhiteConservative.com1), it's so easy to use that I simply had to put it up here.
It was my first serious attempt of creating some ActionScript in Flash, and it worked quite well. There is some commented code to do nifty colour effects, but I didn't use them in the end. The menu data is fed to the script from a text file by the name of
menu.txt, which is placed in the root of the site (this can easily by altered in the ActionScript to be what ever you want). The menu from the site I made was as follows:
menu= Welcome! Information News;http://www.bbc.co.uk Theme People Meet Chris Video and Interview Biography Gallery Policies Personal Local National Interactive Forum;http://www.phpbb.com Quiz Competition Join Us Events Membership / Donate Contact www.Conservatives.com;http://www.Conservatives.com
For clarity, this only includes a few (harmless) links. As I hope it obvious, you simply indent child items under their parents, and you make links by adding a semi-colon (
;) and link at the end of a line. That's it. You update the
menu.txt file and the menu changes when it is next loaded (assuming you're browser didn't cache this file).
Grab the original Flash MX document (
.fla), Shockwave flash movie (
.swf) and sample menu (
menu.txt) file in this handy
.rar file, made using my, now legitamate, copy of WinRAR!
While I was webführer of www.animesoc.co.uk I created a modification for phpBB which extended the rank system which comes as standard to allow progression along multiple path: genres.
For instance you might have the following rank system:
|100 -||Outer Party||Contractor||Second Year|
|4000+||Big Brother||Chief Executive Officer||Chancellor|
Each of these genres has a different name for what is effectively the same social standing in the community, and each instance can have a different picture.
Check it out: phpBB Rank Genre MOD
Here's a handy replacement expression (i.e. substituting regular expression) you can use to convert a list into a lookup table.
In this particular instance, I wanted to convert the text-field “properties.area” into a lookup table “property_areas”, so this was the code to make the insert / update SQL.
From: ^(.*)$ to: INSERT INTO property_areas SET id=\i, area='\0';\nUPDATE properties SET area=\i WHERE area='\0';
This was used in Textpad (in POSIX mode), so I am not sure if the
“\i” is available in other flavours. It means “incremented sequential”, specifically it goes 1, 2, 3… in this case — once per line, so even though the above refers to
“\i” it is only incremented on each match, not each replacement.
Note: This is obsolete to me now, as I've become a VIM fiend!
Outputs some random escapes codes to move the terminal window, essentially causing it to “shake”.
#!/bin/bash for i in $(seq 90 100 | shuf); do for j in $(seq 90 100 | shuf); do echo -en "\e[3;$i;$j;t"; done done
Stuff I'd like to try one day, or did want to try when I wrote. If you attempt any of these I'd be interested in hearing from you! Email firstname.lastname@example.org
As I frequently switch between the black-on-white default colour scheme, and my night-time friendly white-on-black, many programs fall short of the accessibility requirements this places on them.
For instance, Process Explorer uses some odd grey colour as it's foreground when the background of a line is coloured (“highlighted”), however it uses white-on-black perfectly for ordinary rows. If I could manipulate the default colour values it fetches from windows when it starts-up, I'd be able to over come this.
Similarly I ought to be able to over come similar problems in other software.
I'm an avid gamer, and would love to work in the industry; to that end I enjoy tinking with ideas and concepts on things which I'd like to see in a game. Among other things I proposed a Narrative Summary Engine for RPGs as my final year project, before encoutering resource problems (i.e. a game to work with).
The ultimate goal of which was to generate an informative and engaging summary of what you did last time (story-wise) in the game, akin to how television shows reel the audience back into the mood of the last cliffhanger with, say, “Previously, on 24”. Many RPG games are fairly linear in what must be done (though often leaving the player free to go about it as indirectly as they like), so it ought to be possible to compute what must be done next and what the last major event was, and hence produce a summary which also hints at what must be done.
If I were a Games Master in an MMORPG, I'd definately errect a massive, overly luxurious and imposing temple to honour myself, and be sure to make an absolutely massive statue of myself/avatar the main attraction. The mere players wishing to complain would involuntarily humble themselves before it before their complaint is heard. The intended effect being humourous, not arrogant.
Also, this incredible temple would lie on the otherside of a very unimpressive, rickety, ivy-covered wooden door with a very small sign which reads “Complaints Department”, probably buried in an alley of a busy city-centre.
Write some ActionScript to create impact animation, given the angle/direction of impact.
This ought to basically create the appearance of a ripple propagating through the graphic/movie. Use this effect multiple times on the same object, with different scaling to achieve (possibly) better results.
If you see errors like this:
Error detected while processing /home/robmee01/.vim/plugin/cscope_maps.vim: line 42: cs_read_prompt EOF: No such file or directory E609: Cscope error: cscope: cannot read trailer offset from file cscope.out Press ENTER or type command to continue
It's probably because the header in cscope database files (
cscope.out) is space-delimited, and if the directory the database was created in contained spaces it won't parse correctly.
In Cygwin what
bash think the current directory is may be different. In my case I saw this:
robmee01@e100325 ~/Projects/pixmap_test_win32 $ head -n1 cscope.out cscope 15 /cygdrive/c/Documents and Settings/robmee01/My Documents/Visual Studio 2005/Projects/pixmap_test_win32 -q 0000002403 0000137225
(Note that my home directory is not in
Documents and Settings, but the default
I fixed this by replacing the path in
cscope.out with an equivalent path that does not contain spaces (it doesn't seem possible to escape spaces…) and fixed-up the “trailer offset” at the end of the line.
See the cscope toolman page and look at the section on “Symbol Database Format”.
The trailer offset is a byte-offset relative to the beginning of the file. Therefore, if you change the path in the header and make your file 20 bytes shorter, than your trailer offset should be reduced by 20 as well.
Eventually I'll update my
~/cscope_gen.sh script, or recompile cscope to parse over backslash escapes in the header line…
I came to this solution after reading this post.
Win32 console's don't support ANSI properly, which is just plain annoying. In PERL you can overcome this with the package from bribes.org and then adding the following line to the top of a script: