Climate strike!

On September 20th, 2019, Biotext, where I work, is joining the climate strike.

I congratulate the Biotext management for their wisdom and foresight.



SiPix pocket printer A6 on Windows 10 (64-bit)

There are 2 approaches — the Linux driver that uses GhostScript and suchlike, and the old Windows drivers. The old Windows drivers are too old — they work on XP, but not on Windows 10, and they do not work using compatibility settings in Windows 10, either.

This is hardly a surprise, but it was worth checking. Now, let’s try something using the Linux driver. The advantage of that method is that the Linux driver uses some tools (like GhostScript) to process the document into a file than can just be copied or catted/typed to the printer. See

Picture of the printer

Image from a flat bed scanner

I already have the Windows versions of GhostScript and MikTeX, so I have psresize and gs (as gswin64.exe and gswin64c.exe) installed. So in a CMD window, assuming we have a PostScript file to start with (it could be a word processor file printed to PostScript file, for example):

  1. Put the sipixa6.upp file where it can be found — say c:\gs\gs9.21\lib if that fits with your GhostScript install
  2. Make the .ps file a sensible size (psresize, whatever tool you like — A6 I guess)
  3. Enter command (assuming gs is in the path):
    C:\prompt>gswin64c.exe @sipixa6.upp -sPAPERSIZE=a6 -sOutputFile=file-to-print.bin -c quit
  4. This works to make the bin file
  5. Make sure the COMn port is configured as required — using Device Manage, set it to the
  6. Run the command: C:\prompt>type new.bin > com1:
  7. Seemed to work but fed a lot of blank paper out first; then batteries went flat!

Same method would probably work for DOS. The above is for a hardware IO port. It ought to work using a USB to DB(E)9 adapter, depending on the quality of the adapter.



A free Sanplé

Ever heard of a Sanplé 3000EL? I am guessing EL means electric.

looks like a black plastic suitcase

The case

front and above view of the machine

The Sanplé

Advertised as ‘keys stuck’ for free. Clearly otherwise in very good nick. I’d almost say perfect.

Plug in, turn on, verify that the belt is in good nick but the fluted rod cannot turn. Notice the first problem — return band is all over the place…

shows the loose return string

Spot the loose return string

Slip the band back into place; that seems to have fixed some of the problems, but the return still doe not work. Time to dismantle… undo screws in middle of feet and under carriage ends. Also undid the screws that that hold the plastic cover on the carriage and removed that.

Now, tilt and remove the top.

getting the top off

Once the bottom is removed, it is easy to tilt the top and get if off past the carriage.

With the top off; note the conventional ribbons rather than some custom cassette (see Brother 3912) — good. Very plasticky — the spool mountings, for example, are almost entirely plastic. I’d guess this is a very late example of an electric basket typewriter.

Another photo

General top view, sans case

Space bar works, return does not, nor do any letter keys — shaft is not turning. Looks like the return key is not releasing and the lug is not letting go of the end of the fluted shaft.

Photo of the right side of the machine

The tip of the screwdriver shows the stop that prevents the fluted rod from turning.

Following a trail of rods and levers shows that a sliding strip at the back is connected to the carriage stop. When the carriage returns, it should hit the stop, which disengages the lug in the picture above and allows the fluted rod to rotate. This is currently not happening. If I give the carriage a push, I can force it to work.

the sliding rod that disengages the return mechanism and lets the fluted rod rotate; it was sticky

The screwdriver points to the sliding rod that needed a light oil to slide properly.

Give the strip a drop of sewing machine oil and clean the carriage movement to make it move more easily so it can whack into the stop harder and so release the return more cleanly.

That sort of works; it looks like the return and draw bands could use more tension; or just a clean and some use. Gave some key points a thorough clean and a light oil, wiping off as much oil as I could after application. Yes, that seems to help. Works pretty well now.

The typing feel is very light once it works. The keys respond well, the sound is not too loud, and the alignment is adequate though no more. The electric return is slow. Perhaps the springs have got old and soft, I don’t know. But otherwise it seems to perform well. There is a lug on the right for attaching a spring, but it’s not clear where it would go. There’s no exclamation mark — I guess we use a single quote ‘ and backspace and a stop . to get !

A sort of distorted 70 or 10 with a back-to-back A and R below.

The symbol on the typebars

Because the return spring seems too weak, when I hit return close to the start of a line, the carriage does not get up enough speed to actuate the return release, ad the thing jams up. The solution is to tug on the carriage end to trip the release. If you’re too slow, the drive band may slip off … this seems to be improving with use.

I can’t find out much about it. There are no identifying marks on the chassis anywhere (that I can find). Is it a Citizen? Nakajima? I’ve no idea, though the repeat spacer makes it look like a cheaper Brother (were Brothers ever this plasticky?). On the typebars, between the upper and lower case letters, is a thing that could be a 10 or a 70, but looks more like a tent peg followed by a high o, and below that what looks like an underlined AR with the letters merged, kind of like they’re back to back. Apart from the badge on the casing and the serial number on the back:

Made in Japan, Ser. No. 006375

that’s it. No more. For free, it’s very nice. Still a bit gummy, though.

Oh, and here’s the character set, though low quality — I’ve not yet replaced the ribbon and so the type was very faint and the scan was very noisy. I’ve used ImageJ to increase the contrast, and it’s still not very good. Nothing interesting in this font.

The character set of the Sanplé 3000EL

Free! Free at last!

Add a launcher to the Applications menu in MATE desktop

I want to make a little script to launch Alpine in a Unicode terminal, since I mostly use mrxvt, which is non-Unicode.

mate-terminal seems useful.

First, set up a custom profile:
Launch mate-terminal

$ mate-terminal &

At the top of the terminal window, choose Edit -> Profiles …
Name: Alpine
Base on: Default


The dialogue to create a mate-terminal profile

Create! Choose the elements — fonts and suchlike. The tabs are:

  • General
  • Title and command
  • Colours
  • Background
  • Scrolling
  • Compatibility

I chose a big font and a largish screen. Set title to ‘Alpine’.

In Title and command chose ‘Run a custom command’ and put alpine, then when command exits I want to Exit the terminal.

OK, that’s done.


$ man mate-terminal



as a command line switch. We could use the -e switch to launch alpine, but we’ve used the profile instead. So:

$ mate-terminal --hide-menubar --profile=Alpine
another screenshot

Alpine as launched by calling mate-terminal from the command line

Very nice.

We could create a script, say myalpine:

$ cat myalpine
mate-terminal --hide-menubar --profile=Alpine
$ chmod +x ~/bin/myalpine

Now, what about a launcher for it? I am using MATE

Applications -> Accessories -> Main menu

(May be elsewhere in the menu tree.)

Choose Internet

New Item

yet another useless screenshot

The mate menu editor dialogue

Name: Alpine
Command: (to insert this, it’s easiest to browse to ~/bin for myalpine)
Add comment: My mail

What about an icon?

I Googled ‘icon for alpine mail’ but no satisfaction.

OK, make a quick and lousy icon — just a pixel-painted png file for now, something of a place-holder:

A green mountain (or is it the top of a pine tree?) with snow on it

My 5 minute icon for Alpine

Feel free to grab and use!

Click on the icon space and choose the new file.

The new icon/launcher shows up in Applications -> Other, not in Internet. It works, but it is in the wrong place.

How do I move it? That’s far from clear. I can look for the underlying file instead of using a GUI.

(It might also be called mozo-made.desktop) It shows up in my home directory as:


Which looks like this:

[Desktop Entry]
Comment=My Mail

Now, I need to make a change. If I look at the same kind of file for some application in the Internet group, say Firefox, I find:


And I see


So how about adding ‘Categories=Network;Email;’ to the alacarte-made-2.desktop file?



screen shot, of course

The menu with Alpine in the right place

OK, so that’s how to add it to my menu system. Even the icon does not look too bad for a quick job! I think I’ll keep it.

One comment: The command line in myalpine can be used to set the geometry and position of the initial Alpine window. For example:

$ cat ~/bin/myalpine
#! /bin/bash
mate-terminal --hide-menubar --profile=Alpine --geometry=88x26+50+50

Which gives 88 columns, 26 rows and puts the window 50 pixels in from the left and down from the top of the screen.


LaTeX — box several paragraphs of text tightly

I found that for some reason an fbox around a minipage did not work for me — it did away with the paragraphing and turned it into one giant line. So instead I did this:




% Set width of minipage (minpagw) to length of longest line by using
% the line as as argument to \settowidth

\settowidth{\minpagw}{This is definitely the longest line, for sure.}

      Not the longest.

      New paragraph, but not longest line.

      This is definitely the longest line, for sure.

      This isn't

      Nor is this.


Which gives this:

screen grab showing a black box tight around the text.

Boxed text, multiple paragraphs, tight box.

As requested.

Sharp MZ-700 fonts in virtual terminal

Virtual terminals need PSF fonts.

The DSPACE archive contains virtual terminal versions of some BDF (xterm) fonts based on the character glyphs that came in the ROM of the Sharp MZ-700 series of microcomputers in the early 1980s.

Construction of the BDF fonts is explained elsewhere (; they were converted to PSF by opening in gbdfed and exporting to PSFU. Nothing fancy.

The files are all just versions of the same font, but in different sizes. Note that outside of the US keyboard characters, the encoding is a bit random!


They could be copied to wherever your *.psf and *.psfu files live on your system, but the easiest way to test them out, at least on Debian (untried elsewhere!) is simply to use setfont. For example:

$ setfont MZ7int1_recode_double.psfu

The character set is shown here:

The character set -- US keyboard

The glyph positions outside of the US keyboard characters are not all good. I really need to do something about that… the drawing characters especially would be better in the right slots, since ncurses applications would work a lot better.


Parcel tracking scam

So I get an SMS saying that “We tried to deliver your package but there is no postage” — from ‘Info’.

It game me a URL. I went to a Linux box and typed in the URL, and got this:

Track and trace scam

And the URL expanded into:

Do not enter any payment details into this website! They want your credit card details!


ex-X: Linux without X windows

What works without X?

Screen shot of WordGrinder runnin in FBterm with a very big Glass TTY VT220 font.

Green on black is easy on the eyes!

Here is a screenshot of the Glass TTY VT220 font. Not sure how to grab a screen while inside the program, though. This was grabbed by exiting then running:

$ fbcat > screen.ppm
  • w3m with w3m-img (web browser)
  • cmatrix (screen saver —  actually works in any terminal)
cmatrix -- green letters cascading down the screen

cmatrix at work

  • Alpine (mail)
  • acpi (battery status)
  • shutdown -h now (don’t use sudo halt)
  • alsamixer (to set volume)
  • ogg123 and mpg123 (music player)
  • apt-cache search <searchterm> (find Debian packages without synaptic)
  • gnuplot-nox (plotting)
  • vim (of course)
  • DOSBox (uses SDL, so works too. That means you can run Windows 3.1 on Linux without running X. Fiddling with the config file lets it run fullscreen. The main trick is that usescancodes=false MUST be selected in the dosbox.conf file, or there’s a good chance it will misread the keyboard, preventing you from typing any commands or even using Alt+Ctrl+Fn to change virtual terms. This may force a hard reset.)
  • twin — text-mode window manager (
  • tty-clock
  • cal/ncal/calendar
  • bastet (tetris…)
  • freesweep (minesweeper)
  • sopwith (sopwith)
  • sc (spreadsheet)

LaTeX plus fbgs works perfectly well for writing documents. If Vim is set up to allow compiling and viewing from within Vim, then LaTeX works really seamlessly. I added a command to my .vimrc:

cat ~/.vimrc

syntax enable

command L !latex %
command B ! %
command V ! %
command A ! %
command D ! %
command G ! %
command M ! %
command F ! %
command I ! %
command PP ! %
command PDF !pdflatex %
command W !wc %
command XF !xfig &
command T ! %
command WT ! %
command VT ! %
command FB ! %

So within Vim in command mode I run :L to LaTeX a file (makes the dvi) then :D to make the PostScript and  :FB to view it in the framebuffer viewer. When I exit the viewer, I drop back into Vim. Could also run fbgs in a second virtual term.

$ cat ~/bin/

NM=`basename $1 .tex`.ps
fbgs -r 300 $NM

Or we can go totally text and view the output of dvi2tty; this script runs dvi2tty then views the result:

NM=`basename $1 .tex`.tty
IM=`basename $1 .tex`.dvi
dvi2tty -w80 $IM > $NM
echo Created $NM, piping into view
sleep 2s
view $NM

Ahh… it’s like being in DOS.

Alpine after update to Debian 10

Suddenly, Alpine is asking me for a master password to unlock the password file. And then after I defined one, it did not work, though to be fair maybe I mistyped it and that password was not what I thought it was.

Went here:

And in a terminal, went to


and issued the following command, as instructed:

$ openssl req -x509 -newkey rsa:4096 -keyout MasterPassword.key -out MasterPassword.crt -days 10000 -nodes

Then ran Alpine and did as was told, including going into (S)etup Co(L)lections and added /novalidate-cert to the end of the line.

And that seemed to work pretty well.


Using multiple news servers (NNTP) through Alpine and tin

I was trying to set up tin to read Gmane and Usenet. They don’t cover the same territory.

In the end, I found that I just need to have two different configurations for tin.

I went:

$ vim ~/.tin/newsrctable

and made it look like this:

$ cat ~/.tin/newsrctable .newsrc.gmane gmane .newsrc es

So now the list of subscribed Gmane groups will be written to ~/.newsrc.gmane, not .newsrc

I also created ~/.newsauth to hold the authentication information for

$ cat .newsauth PASSWORD USERNAME

(See here for setting up access to eternal-september.)

I then created 2 little scripts and put them in ~/bin:

$ cat ~/bin/myes
tin -r -A -g es

$ cat ~/bin/mygmane
tin -r -g gmane

So, the first says:

-r = read a remote news server

-A = get authentication information — if ~/.newsauth is present, use that, otherwise prompt the user

-g es = look up entry ‘es’ in ~/.tin/newsrctable

The Gmane one is much the same but does not need authentication.

This seems to work.

Copied .newsrc and .newsrc.gmane to backups then tried to get it to work in Alpine.

In Alpine, I went (S)etup (C)onfig and checked ‘Enable Multiple Newsrcs’, then went to (S)etup Co(L)lections and (A)dded the following:

Nickname : EternalSeptember
Server :
Path : #news.
View :


Nickname : Gmane
Server :
Path : #news.
View :

Then went to Folder List and under EternalSeptember chose:

[Select Here to See Expanded List]

This asked me if I wanted to rename .newsrc. I said yes and it renamed it to ‘‘. It then showed my subscribed groups — good!

But when I went to expand Gmane, .newsrc was gone (having been renamed) and it found nothing, even though I have the .newsrc.gmane from tin — because why would Alpine know to look for that file? So, I tricked it. I exited Alpine and typed:

$ cp ~/.newsrc.gmane ~/.newsrc

The opened Alpine again, and went straight to the Gmane list and expand it. It went to the default file for the list of groups — .newsrc — and then asked me if I wanted to rename it. I said yes.

So now I have 2 .newsrc files, one for each NNTP server:

But, the original .newsrc files I set up using tin have been renamed away. But that is OK. I can now edit


and change the names in that file to match the ones created by Alpine. That way, I can read mail in either application — handy, since Alpine aggregates but tin is better for managing subscriptions. So here is ~/.tin/newsrctable:

$ tail -4 ~/.tin/newsrctable .newsrc.gmane gmane .newsrc es gmane es</.pre>

And that’s the way to access some slowly dying bits of the internet.

Next, I suppose, is Gopherspace.