WHS: Programming projects
Projects
- To come: wsh, w-shell, not really a shell but a a different programming language :) More rigorous, more intuitive and my plan is at the same time to make it a replacement for 'make'.
- Possibly to come: my small library to do console IO, utf-8 capable, without using curses to set colours, make text bold or underlined, move the cursor, get text input, write text to screen, including wrapping text within a box cutting off where appropriate (so between words at the right part, perhaps I will add word splitting too, and/or filling text with spaces to line up the end of text at the end of the box). I dislike curses for being unclear and way too big... I'm also working on a dialog type utility with these terminal functions. dialog is just unintuitive with the 2 highlighted sections, I always disliked that. Perhaps it would be useful to release this stuff, but at the moment I'm working on this for use in my own programs.
Patches
- ls alpha-numeric sorting, patch for FreeBSD, I will check what changes might be needed to for utf-8, from a cursory examination it should just work except for the choice of whether alpha or numbers are first (assuming all non ASCII unicode characters are used as alpha). I will look into this soon.
It's easy to incorporate this sort into the code of 'ls' from other operating systems or into other programs that want to use such a sort order.
- To come: I intend to make some changes to Osmand for Android, to make it more useful as a bike navigation tool.
Possible projects
- Afterstep 1.0 window manager improved, I still use Afterstep 1.0 (I dislike the later versions which should have been named something else). Perhaps use a bowman style too. Minimal but classy is what I like, in everything. I don't like bloat, slowness, nor ugliness in widgets (I made some of the widget buttons for a post 1.0 development version, was it 1.8? (I can't find my emails about it...) similar to the usual window widgets on the title bar but including a horziontal line and others). These seem no longer used in current Afterstep versions. Screenshots of these later versions look ugly and the program itself is bloated). Perhaps along this an xterm with NextStep style scrollbar etc.
Old projects
I'm thinking about whether the put up the following old projects on this page...
- An old project from ca. 1999 or 2000 IIRC, that I could put on my website: I made a program to calculate all possible sequences of quarter turns on the Rubik's cube that only affect the top layer. Result: 19 quarter turns are needed.
I made a similar program in 1985 on a BBC micro going to ca. 11 quarter turns (with some limitations, otherwise I think it was 10). I made the program on my PC to conclude this project which I was unable to complete on my BBC micro due to speed (and I could definitely not store all possible sequences, not even all possible possible permutations of the blocks on the upper layer) and at the same time to see how much faster the program was in C on a pentium pro 200 compared to assembler on the 6502-2MHz. The raw speed factor was about 500 times... The actual speed factor a lot higher due to introducing cutoff tests and tables (I don't think I used cutoffs or just a very small number in my original 6502 asm program) The speed of the probram on the PC was influenced a lot by optimisations in the IO code. I was running this on a harddisk of 7.6GB and the results of the 18 turn calculations only just fit on the partition I used for FreeBSD, with files larger than 2GB... In looking at the results of such files I came across a bug in tail on FreeBSD which didn't work on files larger than 2 GB ;-)) So it put out a lot of text and adding it up and not writing small bits to disk improved the program's speed a lot! This showed me how slow stdio was... Other optimisations to make the program faster turned out to be just about useless except for algorithmic improvements. Calculation time was at first 60 days, which was shared between 2 PCs, one with a ppro 200, another with a k6-233 which was slightly faster for this program. Then when I combined and checked all the result files I found a bug in the program, the results didn't make sense! I had used manually made cutoff tables in the program to restrict what would be searched and found a fault in one of those tables... 60 days of calculating down the drain... To make sure the others were OK I then made a program to check the cutoffs and realised I could create cutoff tables using this verification program. These algorithmic improvements speeded up the program enormously, calculation time went down from ca. 60 days to less than 2 days...
- I should revive my Descent port to unix.
- Perhaps along with that update my gsi sound server and libraries for both server and in-program use (as a thread), and make the Midi playing work as there were a few little problems with that.
- I could also revive a few other games such as hexplode, and possibly port my old reversi BBC micro program from 6502 asm to FreeBSD/X11 (actually, I have it largely ready already in C with nice display, I will have a look at what needs to be done to update it to make it fully functional), but I think it would be more interesting to release this for Android.
- Some graphics demos.
Various experiences and views on software
Copyright
See the descriptions of the programs. Contact me if you have any questions.
Well, mostly valid :) And no Flash, no Java, for a fast website... This site is made using open source software, in particular FreeBSD.
Last modified: Fri Feb 21 11:48:02 CET 2014