Quozl's Open SourceQuozl works in outback Australia as a firmware and test engineer for a non-profit in Miami that makes laptops for children, and for a business as a systems administrator.Quozl worked on Open Firmware (IEEE 1275-1994), which uses the Forth programming language. For many years Quozl maintained the version that is used on the One Laptop per Child computers, the most complete and extensive version ever.
|
|
See Mitch Bradley's C Forth repository on GitHub.
(19 November 2022) |
Prepare the host computer;
Use different addresses if required. What it looks like on the host computer
using channel 9 Using interface ppp0 Connect: ppp0 <--> /dev/ttyUSB0 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa67760f> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xa67760f> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] sent [LCP EchoReq id=0x0 magic=0x25b9b80a] sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x25b9b80a> <pcomp> <accomp>] rcvd [LCP EchoReq id=0x0 magic=0xa67760f] sent [LCP EchoRep id=0x0 magic=0x25b9b80a] rcvd [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] sent [CCP ConfAck id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 10.1.0.1>] sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 10.1.0.1>] rcvd [LCP EchoRep id=0x0 magic=0xa67760f] rcvd [CCP ConfAck id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] Deflate (15) compression enabled rcvd [IPCP ConfNak id=0x1 <addr 10.1.0.2>] sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 10.1.0.2>] rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 10.1.0.2>] local IP address 10.1.0.2 remote IP address 10.1.0.1 Script /etc/ppp/ip-up started (pid 80399) Script /etc/ppp/ip-up finished (pid 80399), status = 0x0 (25 September 2022) |
Do you need his help? Quozl does engineering mentoring, product management, software and firmware engineering, code reviews, quality assurance, testing, and teaching. Or would you like to conserve native regrowth forest? Quozl helps manage a few million trees in outback Australia, and the project could do with some funding. Contact quozl at laptop dot org. Thanks!
(17 April 2022) |
And this is just one target that C Forth supports; the target for a host-based serial device test harness.
(12 March 2022) |
(9 December 2021) |
(6 December 2016) |
(20 October 2016) |
(11 August 2014) |
(31 August 2013) |
Here's where it gets complicated. Your team starts with ten planets. Each player flies a starship. You shoot at enemy ships with torpedos and phasers. You fly to, scan and bomb enemy planets to deny their use by the enemy team. You protect your own planets by preventing the enemy from reaching them.
(23 October 2012) |
Pick your flavour. If you've never played, try: But if you are a regular, try:
(18 October 2011) |
(18 June 2011) |
|
(2 September 2010) |
Yet they don't actually need to be on all the time. A quick hack is done to have a Python script turn on a bank of gadget chargers, and turn them off under automated control.
(5 February 2010) |
Here's a quick attempt to bring things into the current century ... the task is to get a ping(8) between two computers using two handheld amateur radio transceivers.
(24 December 2009) |
(1 September 2009) |
(12 August 2009) |
Quozl had to fix it. Publishing it in case somebody needs it. Check out the change from k74.c to k74-ppdev.c in my repository.
(19 May 2009) |
(18 May 2009) |
(17 May 2009) |
(31 October 2008) |
(15 October 2008) |
(14 October 2008) |
(08 August 2008) |
Some of the changes are:
(16 July 2008) |
(8 July 2008) |
Quozl had packaged Xtank 1.3f for Debian GNU/Linux 3.0 (Woody) back in 2001, and for 3.1 (Sarge) in 2004, modified for 800x600 monitors. Now contributions are encouraged against the source repository ... there are a few opportunities to fix things ... the threading, the robot programs. The 800x600 style 2004 binaries: add the following line to your /etc/apt/sources.list file:
... and then
(7 July 2008) |
But in a reactive role, where most of the time is spent responding to one interrupt after another, one needs a way to service these human interrupts. Most people seem to do it with telephone ringers, text message alert tones, pagers, or popup windows. Focus stealing is annoying. Lose of concentration more so. Hence the TCP/IP Distributed LED Mimic Panel, consisting of an array of eight LEDs driven from a parallel port that sits on the desk, and a set of spare computers around the house with displays that show a graphical version of the same panel.
(16 April 2008) |
(12 February 2008) |
(27 December 2007) |
(5 December 2007) |
Think of a node with a keyboard, and any number of nodes without keyboard, connected via network. The operator types a message, which appears on their node during composition, then when the commit key (TAB) is pressed the message appears on all other nodes. Additional features:
(19 October 2007) |
(14 October 2007) |
Because the project is expressed as text, it is easy to integrate it with project source control systems. TaskJuggler can run in a script to update a project web page. It will even generate its own Makefile if you want. Keep it in mind for next time you need to plan something.
(24 August 2007) |
Now it makes a sound where the pitch is related to the time it takes for an ICMP Echo Request packet (ping) to be returned as an Echo Reply. By default, the pings are at about 20 times per second, set by the length of the sound samples. Such rapid feedback makes it easier to learn where wireless coverage is good, or bad. It can also be used for reporting the health of an internet connection, using the --noflood option, but the output may be irregular because the PCM device is not being fed at the speed it desires.
(26 July 2007) |
While you are there, the pub does liquids and foods, and the best coffee is from the reasonably modern vending machine in the hardware store. One of those automatic ones that grind real beans. Tooraweenah is roughly half way between Gilgandra and Coonabarabran, on the Newell Highway, New South Wales, Australia.
(20 July 2007) |
Update: more batteries added.
(2 April 2007) |
(9 January 2007) |
(18 September 2006) |
(11 September 2006) |
(2 September 2006) |
(12 August 2006) |
Quozl has written a graphical user interface for the PPTP Client project for which he is release engineer. Built using Glade and PHP-GTK, the program allows the configuration and management of PPTP tunnels.
(22 February 2006) |
Security update for tcpxd, version 1.4 fixes a vulnerability to crafted reverse DNS names. Quozl had checked out netcat and numerous other TCP/IP relays, but none had all the features he needed, so he rolled his own. This one is optimised for minimal process count and maximum performance for X connections.
(20 February 2006) |
Have you ever felt that no .deb should ever have to be downloaded more than once? apt-walkabout is an APT package cache on a pen drive, or any other removable media. apt-walkabout helps you to upgrade non-connected or low-speed linked Debian systems; be they yours or someone elses that you visit. It's just a few shell scripts; but it's the idea that counts.
(25 October 2005) |
for use with kernel 2.6.9 and later, with setkeycodes, which enables the keys otherwise not known by the kernel, for Intel Linux, for Alpha Linux. To use an xmodmap file, give it to the xmodmap program as the first argument. For example, add xmodmap lk450.xmodmap to your .xsession file. Why bother? It lets Quozl run emacs in EDT emulation mode, allowing his source editing to follow hindbrain original programming, without having to learn new keystrokes just to get going.
(14 September 2005) |
(3 August 2005) |
Update: a schematic diagram for the project. (12 June 2005) |
(9 June 2005) |
(2 November 2004) |
(17 July 2004) |
Quozl wrote a prepaid accounting system for the Gilgandra Community Technology Centre, which is used by the staff and the customers of the centre to track time spent. It uses the Linux system accounting files to generate usage transactions, stored in a plain text database. Based on PHP, the system also provides up to the minute account balances and accepts payments and charges.
(21 June 2004) |
(7 May 2004) |
(13 April 2004) |
(8 February 2004) |
(12 October 2003) |
(15 May 2003) |
(23 December 2002) |
(22 December 2002) |
(6 December 2002) |
(16 July 2002) |
(26 March 2002) |
(25 March 2002) |
Update: released source code for the microcontroller program under the GNU Public License.
(13 January 2002) |
(16 December 2001) |
Stable release 1.0, two years after initial development release.
(26 November 2001) |
Update: adjustments for higher sampling rates, and a schematic contributed by a reader.
(19 October 2001) |
Quozl wrote an issue tracking system for the Gilgandra Community Technology Centre, which is used by the staff and the technical volunteers to track technical issues. Uses PHP and a plain text database. (4 September 2001) |
(23 April 2001) |
(3 April 2001) |
(5 March 2001) |
(3 March 2001) |
(20 February 2001) |
(11 December 2000) |
(10 December 2000) |
(17 November 2000) |
(The function kd_mksound() from drivers/char/vt.c was used. This function starts the tone generation and normally schedules a timer to turn it off. Since the timers do not run at this point, the duration of the tones had to be set using msleep() macro calls.) Since writing this, Quozl has been told that it could have been done in a process executed after the disks are unmounted. Oh well. Not half as much fun! Here's how, on Debian ...
(14 November 2000) |
(29 December 1999) |
(11 July 1999) |
(7 July 1999) |
(18 February 1999) |
(1 February 1999) |
Choose your closest copy. My thanks to Linux Australia and Real Time Enterprises for providing places to put this page.
|