Old g95 (for the make use of)

I needed to compile a Windows g95 binary for someone. I have Win 7 in a VM on VirtualBox. I had the g95 install tree from a (quite old) back-up of a previous computer, but not a proper install.

The install tree looks like this:

C:\util>dir /s g95
 Volume in drive C has no label.
 Volume Serial Number is 8440-3CD9

 Directory of C:\util\g95

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
23/08/2012  09:42 AM              bin
23/08/2012  09:42 AM              doc
23/08/2012  09:42 AM              lib
23/08/2012  09:42 AM            55,782 uninstall-g95.exe
               1 File(s)         55,782 bytes

 Directory of C:\util\g95\bin

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
26/03/2008  11:49 AM           553,984 ar.exe
26/03/2008  11:49 AM           827,904 as.exe
17/06/2009  09:44 PM           123,046 g95.exe
26/03/2008  11:49 AM           782,848 ld.exe
28/12/2007  12:23 AM            15,964 mingwm10.dll
26/03/2008  11:49 AM           554,496 ranlib.exe
26/03/2008  11:49 AM           685,568 strip.exe
               7 File(s)      3,543,810 bytes

 Directory of C:\util\g95\doc

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
16/10/2004  09:36 PM            17,015 bg.gif
27/11/2004  03:51 AM            18,007 COPYING.txt
08/12/2005  06:19 AM            22,431 docs.html
23/11/2004  12:00 PM           107,122 g95.bmp
02/01/2007  01:59 AM           170,619 G95Manual.pdf
31/05/2008  06:59 AM            11,858 Readme.html
31/05/2008  07:00 AM             6,687 README.txt
               7 File(s)        353,739 bytes

 Directory of C:\util\g95\lib

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
28/12/2007  12:23 AM             2,192 crt1.o
28/12/2007  12:23 AM             2,288 crt2.o
28/12/2007  12:23 AM             1,239 dllcrt2.o
23/08/2012  09:42 AM              gcc-lib
22/10/2006  01:27 AM           408,608 libadvapi32.a
30/10/2005  11:13 AM           253,890 libgdi32.a
22/10/2006  01:27 AM           594,018 libkernel32.a
28/12/2007  12:23 AM               458 libm.a
28/12/2007  12:23 AM             7,514 libmingw32.a
28/12/2007  12:23 AM           267,880 libmingwex.a
28/12/2007  12:23 AM            82,558 libmoldname.a
28/12/2007  12:23 AM           503,692 libmsvcrt.a
22/10/2006  01:27 AM           128,262 libshell32.a
22/10/2006  01:27 AM           435,754 libuser32.a
30/10/2005  11:13 AM            82,086 libws2_32.a
              14 File(s)      2,770,439 bytes

 Directory of C:\util\g95\lib\gcc-lib

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
23/08/2012  09:42 AM              i686-pc-mingw32
               0 File(s)              0 bytes

 Directory of C:\util\g95\lib\gcc-lib\i686-pc-mingw32

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
23/08/2012  09:42 AM              4.0.4
               0 File(s)              0 bytes

 Directory of C:\util\g95\lib\gcc-lib\i686-pc-mingw32\4.0.4

23/08/2012  09:42 AM              .
23/08/2012  09:42 AM              ..
23/08/2012  09:42 AM             1,022 cc1.lnk
17/06/2009  09:44 PM         5,242,021 f951.exe
17/06/2009  09:44 PM           859,168 libf95.a
17/06/2009  09:44 PM            61,284 libgcc.a
               4 File(s)      6,163,495 bytes

     Total Files Listed:
              33 File(s)     12,887,265 bytes
              20 Dir(s)  42,207,707,136 bytes free

Now, all that is required to make this work is to set some environment variables. (Start → Control Panel → System → Advanced System Settings → Environment Variables).

First, I had to put some directories in the path, so I edit the PATH variable. It works if I have the path to the g95.exe binary and also to the f951.exe file. That is:

PATH=C:\util\g95\bin;c:\util\winvi;c:\util\g95\lib\gcc-lib\i686-pc-mingw32\4.0.4;[[INSERT REST OF PATH HERE]]

I’ve put [[INSERT REST OF PATH HERE]] at the back, but I’ve actually got the g95-related paths at the back (you want the most commonly used bits of the path at the front, not that it matters with modern fast coomputers). Then, I want to create a new variable called LIBRARY_PATH:


Now, I don’t know if I need all three directories in the LIBRARY_PATH, but it works so I am not complaining.

So to compile my tiny little program I can now type:

X:\Downloads\Brill_dir>g95 -o Brill.exe brillouin.f90

And it works. Is it statically linked? Well, on Linux, dynamically linked, compiled with GFortran, it’s about 68 kB. This binary is about 360 kB, so I sure hope it is statically linked!

Caveats: I have not tried anything fancier than this absolutely basic compile. It works. Compiling with the -static flag makes no difference to the size of the binary.


Can’t get far enough away:The Great Escape by Blur (An album a [[insert length of time here]])

It’s the mid 90s. Blur’s last album was Parklife. There’s a press beat-up pitting them against Oasis. The Great Escape first gets rave reviews and then there’s a backlash, some critics even repudiate their earlier laudatory comments. Blah blah blah.

Something borrowed, something blue.


Who cares? Let’s look at the album free of that context. It’s pretty good, but it’s not great. There are some really neat tunes on it — first ‘Country House’ and second ‘Charmless Man’, but they’re not alone. There are some songs that drag. There are quite a few that seem to shout at you between bursts of loud music-y noise. There’s one or two that are kind of touching (‘Yuko and Hiro’, ‘He Thought of Cars’) and a bunch that have a slightly judgemental, superior edge; not that some of the targets don’t earn it (‘Mr Robinson’s Quango’). It’s as if on Parklife Albarn was looking at ‘us (himself included)’ but here he’s looking at ‘them’, except it’s all too easy to be one of ‘them’ from his point of view. It’s witty, it’s tuneful, in some places it’s heartfelt, if sad or disappointed (I do like ‘The Universal’) but there’s a critical distance which gives the lyrical content a jaundiced edge and makes it an odd match for something that was so firmly categorised as pop (Well, Britpop) that it came to embody the term. It sounds like pop music, but the lyrics are not aiming to be popular. They’re not even aiming to be likeable. They are in general admirable (incisive, witty, that sort of thing), but I’m left with the impression of a librettist who’s a bit of a whiner.

Still, I’d not want to be without half a dozen of these tracks.  Knocking it back to 10 or 11 tracks might have been a good idea, keeping it a little tighter; but I suspect no two listeners would agree on which 4 or 3 tracks to cut.


To cut.

The incomplete Pete: Tragically, I was an only Twin by Peter Cook

Why this is subtitled ‘The Complete Peter Cook’ I don’t know. Unless it’s like an epithet, as in ‘you’re a complete twit’; I mean, Peter Cook was clearly a complete Peter Cook, but this book is not the complete Peter Cook, not even close. It admits as much itself. Anyway. If you don’t know, Peter Cook was the funniest man alive until he died, after which he became the funniest man dead, an even greater achievement. By the age of 30 he had had successful reviews in the West End and on Broadway, had starred in movies, started a nightclub and was owner of Private Eye, the satirical newspaper. By the time he was 40 we was kind of over it, and seemed to only bother to exert his still-remarkable talents when there was a point to prove or some pompous public figure to deflate. That his powers remained undimmed until his untimely, alcohol-fuelled death in 1995 is apparent. Perhaps the flood slowed to a meander, but even a cursory look (for example here, at Alan Latchley) shows that the brilliance was still there. John Cleese has come in second on lists of (Brit) ‘comedians’ comedian’ type polls, always to Cook, and he said that whereas it took he and his contemporaries six hours to produce a three minute sketch, it took Cook precisely three minutes, or so it seemed. More than one person has said he seemed to turn on a tap, tune in to some amazing stream of logical absurdity, and just let it flow.

<i>Tragically I was an Only Twin</i> by Peter Cook.

Tragically I was an Only Twin by Peter Cook.

This book samples most of the more significant corners of Cook’s career. From before Beyond the Fringe (he was writing West End shows for Kenneth Williams while still an undergraduate, sharing the writing duties with Harold Pinter and others), through the Fringe, through Not Only…  But Also… and Private Eye, on to the depths of Derek and Clive and the last flashes of genius. The book is… amusing. Very funny in a few places. Would it have been as funny were I not familiar with his work? I don’t know. I’ve heard or seen quite a few of these pieces, especially the Pete and Dud and Beyond the Fringe stuff, so I hear the words in my mind’s version of his voice. Most of what he wrote was not written to be read. Indeed, there are often no ‘standard’ written versions at all. Some of the sketches reproduced here were taken from scripts but many were transcribed, because he would improvise and invent. He got bored with fixed material and would change it every night during a run on stage, though there were ‘bits’ that tended to stay.

The book is uneven, of course, because it is a book of bits, (though not bits of a book). Often the funniest stuff is the stuff that works least well on paper. Pete and Dud in the Art Gallery needs to be seen — or at least heard. Even though there are relatively few visual gags and the sketch is essentially a conversation, the gleam in Peter’s eye as he tries to make Dudley corpse, the little smile when he says, “you didn’t spit sandwich at him, did you?” or whatever it is; only when you can see those things does the relationship really come alive and then the lines come to life. The brilliance can be seen on the page, but not fully appreciated without the video. You tube, it’s all there these days.

The Private Eye stuff I did not much like. That and Derek and Clive are probably the low points. I know Cook and Moore busted boundaries and pushed back the borders of the possible with Derek and Clive. I know some people think it’s great. I don’t. The rudeness does not bother me, but the nastiness and the lack of actual humour does. This book does a decent job of selecting the few bits of Derek and Clive that are actually (mildly) witty. It always seems to me that if an artist is going to throw off strictures, if they are not going to be bound, then they need to be better than usual. Just busting limits is not funny of itself. Shocked people might titter nervously, but a good comic is, I think, not aiming for that laugh. Broaching topics and images that have been taboo is all well and good, but that needs to be a path to something. It needs to say something that is worth saying that could not be said otherwise, or at least make a joke that could not be made otherwise. It needs to be more than ‘aren’t we shocking! Tee hee hee!’ Derek and Clive fails as comedy for the simple reason that it is not funny; there were some jokes and as I said this does a decent job of picking them out. That work was the end of Cook’s partnership with Moore. He was relentlessly nasty to Moore during the taping of the last album, and drove him away. Moore was breaking into Hollywood at that time and was soon to star in 10 and Arthur, and he never worked with Cook again, apart from bringing out some old material for Galas and the like.

The work does noticeably thin out after 1980. Cook was only in his early 40s at that stage, but decided to slow down lest he fulfil his potential. You might know him as the ‘Impressive Clergyman’ in The Princess Bride, who talks endlessly about ‘twoo wuv’, as Nigel in Supergirl (unlikely — no one likes that movie. I’ve not seen it) or … no, he’s pretty much invisible these days if you don’t go looking for him.

This book is not the place to start. But for the Cook fan it’s a nice little compendium.


Inessential, but funny.

World ‘World Day’ Day — you know it makes sense.

Every day seems to be World Something Day. Today is World Meteorological Day. Tomorrow will be something else, and the day after something else again. And those are just the UN sanctioned ones.

I think we need to have a day to honour all the people that get together and organise topic-based days. It takes a lot of coordination and determination to make sure that everything finds its right place. You don’t want World Dog Day and World Cat Day occurring at once, or you’ll just have lots of trouble in lots of parks around the world. You probably don’t want World Chocolate Day and World Diabetes Day to coincide. Or International Women’s Collaboration Brew Day to clash with Alcohol Awareness Month.

So, when should we schedule World World Day Day, a day organised in honour of all those people who spend their time organising days in honour of people? Somewhere near Administrative Professionals’ Day, perhaps.

Organising an event like that would be a good use of someone’s time. Maybe we could have a day to celebrate them.


Fleas and so on.


Three finger salute killed a monitor

OK, weird stuff.

I have to use Windows (7) as well as RHEL at work. So I am used to hitting Ctrl-Alt-Del on the Windows lock screen to get the password dialogue to unlock the computer. Accidentally did it on RHEL 6


$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)

$ uname -r


and now the monitor has stopped working! Very weird. I get a few seconds of vision when I turn the monitor on, or when I unplug it and plug it in again, but then it goes black again. I was running the monitor on a VGA cable. The DVI output is working fine, when I test with a second monitor, but does not work on the one that I was using on the VGA cable, and neither does VGA output. It’s like the monitor is going to sleep in only a few seconds. What’s more, even the monitor menu only flashes up and vanishes. It’s like the monitor itself has been screwed up. Like the three-finger salute rewrote the monitor firmware…?

The sort of monitor that was damaged. I don't know if the problem is model-specific.

The sort of monitor that was damaged. I don’t know if the problem is model-specific.

Even the ‘check signal cable’ message on the screwed up monitor only flashes up for a second… seems like three finger salute on the Linux unlock screen has somehow fried my monitor! (Samsung SyncMaster 950B). Very odd.

Plugged faulty monitor into Windows 7 box and rebooted Windows. Absolutely nothing.

So, yes, the monitor has been screwed up by using Ctrl-Alt-Del on RHEL 6.


An album a week (ha ha) #16: Goats Head Stew: A few nuggets amidst the gunge.

Goats Head Soup is a strange album. After what must have felt like eternity putting Exile together in Keith’s basement, who could blame the Stones for retreating to Jamaica and knocking out ten tracks pretty quickly? They were coming off one of the great runs in popular music history, four studio albums and their best live album, a dozen sides  that have a permanent pace in rock history.  And then it was job done, I reckon, ‘cos this album sure sounds like they weren’t too fussed. It’s all over the place. So much so that the only way to look at it is track by track. So here they are:

1. Dancing With Mr D
2. 100 Years Ago
3. Coming Down Again
4. Doo Doo Doo Doo Doo (Heartbreaker)
5. Angie
6. Silver Train
7. Hide Your Love
8. Winter
9. Can You Hear the Music
10. Star Star

1. Dancing With Mr D

Starts with a certain slow menace, and then goes on and on and wears out its welcome. When you listen to the opener on Exile, ‘Rocks Off’, there’s just so much music and musicality in the first minute. Here there’s one or two ideas and they’re stretched out to five minutes. Hit the skip button? At least half the time.

2. 100 Years Ago

This one is like they had bits of three or four songs and just concatenated them to make one. It’s not boring. It starts off kind of jaunty and tuneful, then loses me when Mick tells me to call him ‘lazy bones’ before heading into some pretty much unconnected jam. Kind of entertaining, but not really a song as such. I like the bit about ‘bad red wine’. Hit the skip button? When I’m impatient.

3. Coming Down Again

‘Being hungry, it ain’t no crime’, Keith sings. Unless maybe you’re hungry for a hit of smack and your prioritizing of drugs over music is causing you to let your band-mates down… Having said that, he’s not singing about that kind of hunger in that song, and this is one of three pretty good slower tracks on the album. It feels like it was composed rather than flanged together. First track on the album that suggests maybe it’s not going to be a complete waste of time. Hit the skip button? Not usually.

4. Doo Doo Doo Doo Doo (Heartbreaker)

Groovy funky doo doo doo doo doo etc. First track with a bit of energy, and one of only three on the whole album. A pretty solid second single, and really the only candidate. The menace here is kind of theoretical where on ‘Gimme Shelter’ or ‘Midnight Rambler’ it was actually felt, but the song comes along just in time to raise the pulse just enough to get you through the next track. Hit the skip button? Rarely if ever.

5. Angie

The big single. I read somewhere this album has sold more than 6 million copies. More than Exile, more than Beggar’s Banquet. And a big #1 hit is exactly (and solely) why. Radio play gets the sales to go beyond the fanbase. ‘Angie’ is a great tune. Not exactly fun. Nothing so far has been lyrically uplifting. Even ‘100 Years Ago’ suggests it’s sometimes wise to not grow up. But the tune is lovely and the vocals a good example of Jagger’s mannered delivery at its best. Hit skip? Rarely.

6. Silver Train

This is like lite imitation of a typical Exile track. ‘All Down the Line’ being the obvious one. The guitars honk away nicely and Jagger slurs his way through lyrics about anonymous sex, good solid Stones subject matter. Vocal hooks, a chunky tune, non-negative subject matter. One of the better ones. Hit skip? Nope.

7. Hide Your Love

I listened to this two days ago and I can hardly remember anything about it except that I was keen for it to end. This is one of (at least) three tracks that seem to have been stuck on to get the track listing up to 10 and the play time up over 40 minutes, the other two being ‘100 Years Ago’ and ‘Can You Hear the Music’. Skip? Yes.

8. Winter

This is the third tuneful, carefully-composed ballad n the album. Nice guitar work from Mick Taylor, well aimed vocal from Jagger. Cheerful? Well, it’s gonna be a long hot summer and the light of love will be burning bright, so it’s not all bad. Skip? Only if you’re after the danceable ones.

9. Can You Hear the Music

Man, what is this crap? Some kind of rehabilitated reject from Satanic Majesties? I can’t hear much music worth hearing on this track. Skip? How fast can I hit the button?

10. Star Star

The famously rude song that is called ‘Starfucker’ on bootlegs. Energy! Riffs! Humour! Good god, are we on the same album? Yes, it’s rude and kind of cheesy, but it’s also a rollicking rock ‘n’ roll song in the Chuck Berry tradition. Skip? Not usually.

So where does that leave us? Three rejects, plus ‘Mr D’ which is on the cusp, and half a dozen solid tracks, half ballads. Of these, ‘Angie’ is the only one in the Stones canon. Stacked up against the previous four albums of course it comes up short. But most albums by most acts would. Tackled 40+ years later, free of context, it’s really not bad. There are flashes of the brilliance of years before, as indeed there have been ever since. It is better than the album after it, It’s Only Rock ‘n’ Roll, which probably has fewer dogs on it but is more consistently mediocre. Does anyone but a Stones fan ‘need’ it? (I say ‘need’ in quotes because nobody needs pop songs to live.) No, but it’s worth a listen. I’m rather a fan of Keith’s vocal efforts, and ‘Coming Down Again’ is a good one. I listen to it more than I thought I would. Well, I listen to around 65% of it, anyway.


Think I’m gonna get on down, oh yeah.

The Sharp MZ-721 font in a terminal emulator

Long ago I made a LaTeX font out of the character glyphs from the Sharp MZ-721 8-bit microcomputer. Then I made a font for use in a terminal emulator. How did I do it? From the below, I seem to have used the pk file generated when the font was used in LaTeX, then realised I could go direct from the original Sharp character ROM. I made a bdf file, which is an old but usable format. You can download it from here, and the crap below will help you install it if you need help. But you can google ‘installing bdf fonts’ and get something more useful. And edit the fonts to make them better. Or not,. whatever.

I don’t remember any details. Here is the contents of a ‘note to self’ file I wrote at the time…


Installed gbdfed for AMD64 by downloading the following package:

Package: gbdfed (1.5-1.1)


squeeze (oldoldstable) (x11): X11 font editor 1.5-1.1: amd64 armel i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc


$ sudo dpkg -i gbdfed_1.5-1.1_amd64.deb

and it seems to work. Opened the pk file for the first MZ font and then saved as bdf. That is all so far.

How to use a BDF font file…

move it to

$ cd .fonts
$ mkfontdir
$ cd mz
$ mkfontdir
$ chmod 644 *
$ xset fp+ $HOME/.fonts/mz
$ xset fp rehash

If I go to the.fonts/mz and type

xterm -fn -unknown-mz7cgint-medium-r-normal–83-100-600-600-p-530-fontspecific-0

it works but the font is enormous, since it is just mapped directly as
a 600x600 bitmap.  Needs to be resized... look at gbdfed again

OK, changed font ascent, x-ren and y-resn in properties to 24 instead of 600.

No diff.  Set point size to 12.

OK, use xfontsel to get an idea of sensible parameters.

Still too big --- maybe go back to metafont and try as low res device:
$ mf '\mode=epsfast; input MZ7CGint'

$ gftopk  MZ7CGint.60gf

open and save with no modifications. Move it to… ~/.fonts/mz/MZ7CGint.bdf


$ mkfontdir
$ xset fp rehash
$ cat fonts.dir
$ xterm -fn -unknown-mz7cgint-medium-r-normal--10-100-60-72-p-60-fontspecific-0

and all good. Note that I had to delete all coloured pixels in char20 (hex) since it was filling up the screen with triangles. Note also that this mode proved a bit small… went and had another look at ftp://ftp.tex.ac.uk/tex-archive/fonts/modes/modes.mf and picked a mode a bit bigger, say about 100dpi…

$ mf '\mode=nextscrn; input MZ7CGint'

works pretty well. Font could do with some more leading. Play in font editor…
Problem is that we have an 8×8 font in a number of boxes that is not a multiple of 8. What other modes are there…

96 dpi? (atarins) — odd choices of blackened pixels.
120 (onetz)? — odd choices of blackened pixels.
120×144 (epswlo) — odd choices of blackened pixels.
144dpi lasf — odd choices of blackened pixels.
72×120 is epsdrft — nope
laserjet 300 dpi — nope
hifax 200dpi — looks great, but will font be huge?

Yes, it looks huge but works really well. Now, can we downsize it?

Now, fontforge can open the bdf file… That means one can make a PostScript font or similar… (maybe one day…)

$ sudo apt-get install bdfresize

$ bdfresize -f1/2 MZ7CGint.bdf > MZ7CGinthalf.bdf

OK, but not ideal. Problems with cursor not present when on a blank space… How is cursor chosen?

Anyway, the threequart(er) size one also looks excellent, since 24 and 28 have 4 as a common factor.


The cursor seems to be the empty space drawn in reverse, but it does not work here.

See ~/bin/mzterm … heh heh heh.

 cat  ~/bin/mzterm

rxvt -g 88x50 -cr white -pr white -bd blue -fg white -bg black -fn -unknown-mz7int1-medium-r-normal--16-160-72-72-c-240-fontspecific-0
#rxvt -g 88x50 -cr white -pr white -bd blue -fg white -bg black -fn -unknown-mz7cgintt-medium-r-normal--18-63-200-200-p-107-fontspecific-0 -e clearsh
#rxvt -cr white -pr white -bd blue -fg white -bg black -fn -unknown-mz7cgint-medium-r-normal--21-75-200-200-p-128-fontspecific-0 -e clearsh
#rxvt -cr white -pr white -bd blue -fg white -bg blue -fn -unknown-mz7cgint-medium-r-normal--21-75-200-200-p-128-fontspecific-0 -e clearsh
#xterm  -sb -leftbar -cr white -bd blue -fg white -bg blue -g 88x50 -fn -unknown-mz7int1-medium-r-normal--16-160-72-72-c-240-fontspecific-0

Still no cursor, though… don’t know why.

gdbfed can open the MZ-700 ROM directly as a console font…doofus.

Just need to put in an average width… BUT, the encoding is of course all over the shop.

Step 1 is to put out first half of the ROM to MZ7int1.ROM
Step 2 is to open this in gbdfed (console font)
Step 3 is to re-encode correctly:

$ mv MZ7int1.bdf MZ7int1_recode.bdf

Then change the encoding number in the file. I can’t be bothered right now. Easiest would be to use the re-encoding table I put into the C file for mz2mf to make the tex font… Done.

OK, play with scale of it using bdfresize — just 2 3 4x for now Done.

OK, these are the better fonts. No need to go via LaTeX. Just note it as possible and move on! Descenders are getting chopped off by the next line, but I don’t really care.

mzterm launches a terminal widow using the font. It is cute to do the white on blue look like the old machine, but directory names don’t look too good…

Translated all glyphs by 2 in Y to try to increase leading.

Copy to ~/.fonts/mz then cd there and mkfontdir etc

And here’s a picture….


Ugly or what? The old Sharp defaulted to white on blue, so how about this:

$ xterm -sb -leftbar -cr white -bd blue -fg white -bg blue -g 88x50 -fn -unknown-mz7int1-medium-r-normal--16-160-72-72-c-240-fontspecific-0 &


Oh, enough wastage.


Word madness: Can’t save, won’t save. ‘A file error has occurred’

Word's useless error message. Notice the 'Was this information helpful'. What do you think?

Word’s useless error message. Notice the ‘Was this information helpful’. What do you think?


Got this error, and they had the temerity to ask me if it was helpful. Pricks. Anyway. Could not save to new name. Could not save to external media. Could not save elsewhere on C:. In short, could not save.



One bit of advice I have read is to wait till Word does an autosave, then kill Word using task manager. Then when Word is restarted it will give an option to rescue the file. Sounds dangerous to me. Waited but save did not come.

First thing I did was print to PDF with all track changes and everything visible so I would at least have a record of what the file looked like.

Then created a new blank file. Tested that it could be saved. Yes. And in the same folder as the original file. (I knew that should be OK since I printed to PDF into the same folder).

Went to file I wanted to rescue, with track changes visible and all comments visible. Ctrl-A, Ctrl-C
Went to new empty doc and pasted. Got text and comments but not the track changes information. Well, that is still useful as a backup.


Now, it should be possible to make a copy with track changes information.


Another handy way to copy the text is to use the spike. Word users are so familiar with using the Clipboard to cut, copy, and paste information that we often forget about the spike. This is an area of Word that acts like a secondary Clipboard, with some significant differences. (You can learn more about the spike in other issues of WordTips or in Word’s online Help.) To use the spike to copy and paste text with Track Changes markings intact, follow these steps:

  1. In the source document, select the text you want to copy.
  2. Press Ctrl+F3. The text is cut from the document and placed on the spike. (If you wanted to copy, not cut, then immediately press Ctrl+Z to undo the cut. The selected text still remains on the spike.)
  3. In the target document, place the insertion point where you want the text inserted.
  4. Make sure that Track Changes is turned off in the target document.
  5. Press Shift+Ctrl+F3 to clear the spike and insert the spike’s text into your document.

So I went to source document ant hit Ctrl-A, then Ctrl-F3.

Opened blank with same template, track changes turned off (it is by default I think).


But does not save! The problems have come with it!

So that does not help.

Now, if I turn off track changes and accept all changes, I can save the document – so it is a bug somewhere in Word’s track changes code.
If the problem occurs again, can try the spike method with the different aspects of track changes turned on and off, to narrow it down.

So no satisfactory solution discovered. I do not know what change I put in that caused the issue, and it has never occurred before. So… I dunno. The above ideas are just partial solutions.


Solutions to problems nobody asks about.

Horrible errors on my Linux box.

Horrible errors on my Linux box. When trying to boot up. I mean, eventually it did boot, but this was not good:

Feb 27 15:17:00 lauequad kernel: [21057.921922] ata2.00: cmd 25/00:08:00:08:c3/00:00:16:00:00/e0 tag 0 dma 4096 in
Feb 27 15:17:00 lauequad kernel: [21057.921923]          res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x14 (ATA bus error)
Feb 27 15:17:00 lauequad kernel: [21057.921924] ata2.00: status: { DRDY }
Feb 27 15:17:00 lauequad kernel: [21057.921932] ata2.00: hard resetting link
Feb 27 15:17:01 lauequad kernel: [21058.643829] ata2.01: hard resetting link
Feb 27 15:17:01 lauequad /USR/SBIN/CRON[6290]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 27 15:17:01 lauequad kernel: [21059.118482] ata2.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
Feb 27 15:17:01 lauequad kernel: [21059.118493] ata2.01: SATA link down (SStatus 0 SControl 300)
Feb 27 15:17:01 lauequad kernel: [21059.226065] ata2.00: configured for UDMA/33
Feb 27 15:17:01 lauequad kernel: [21059.250462] ata2.00: device reported invalid CHS sector 0
Feb 27 15:17:01 lauequad kernel: [21059.250466] ata2: EH complete
Feb 27 15:17:32 lauequad kernel: [21089.830651] ata2: lost interrupt (Status 0x50)
Feb 27 15:17:32 lauequad kernel: [21089.830669] ata2.00: exception Emask 0x52 SAct 0x0 SErr 0x58d0c02 action 0xe frozen
Feb 27 15:17:32 lauequad kernel: [21089.830672] ata2.00: SError: { RecovComm Proto HostInt PHYRdyChg CommWake 10B8B LinkSeq TrStaTrns DevExch }
Feb 27 15:17:32 lauequad kernel: [21089.830674] ata2.00: failed command: READ DMA EXT
Feb 27 15:17:32 lauequad kernel: [21089.830677] ata2.00: cmd 25/00:08:00:08:c3/00:00:16:00:00/e0 tag 0 dma 4096 in
Feb 27 15:17:32 lauequad kernel: [21089.830678]          res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x56 (ATA bus error)
Feb 27 15:17:32 lauequad kernel: [21089.830679] ata2.00: status: { DRDY }

Except they were all nicely coloured and arranged by vim’s syntax highlighting.


This was in the file /var/log/syslog

Freakin’ scary. I thought one of my hard drives was on the way out. Fortunately it’s not my main drive, the one that houses / and /home, but it’s the second drive which mounts at /home/username/Music.

So, I thought maybe the drive was on the way out. My back ups were up to date, but I noticed that when I want to have a look in ~/Music, there were some files that were corrupt. On boot the messages included one telling me to run fsck on /dev/sdb1 (the Music partition) and then dropping me into a shell, and then fsck told me it could not fix the drive…


Double-checked my backups were current, then unmounted the partition and used gparted to reformat it freshly as ext4. Started to copy the files across from the backup.

Stopped. Could not access the drive.


Remembered an old POST OF MY OWN.

SATA cable plugs sure do wiggle in their sockets. A lot more than old IDE ribbon cables.

Powered down. Removed power cable. Opened case. Noted which SATA cables went from which socket on the motherboard to which drive. Removed them all, blew some dry air into the plugs and cable ends. Replaced the cables and gave them a good wiggle, then left them, making sure they were not getting tugged out or sideways by tension but were square in the sockets. This involved rerouting some cables so they were more comfortable, and tying a bunch of unused power plugs up out of the way.

Reboot. No error messages. Mount back up drive. Copy 240+ GB of backups onto blank drive. All faultless. Seems to work perfectly.

Take home message: SATA cables are fussy and can cause problems that might look like something worse.

Something worse.

What services don’t you need on your Debian Linux box? sysv-rc-conf

Note to self:

On my Debian box there’s a bunch of stuff installed by default that I don’t need ‘cos it’s a workstation not a server. Anything that allows remote access, anything that talks to bluetooth, all that can be turned off, and it’s better to turn it off if you don’t need it, both for security reasons and boot time reasons. The easiest way to manage that on a Debian-based system is to install sysv-rc-conf, then run it as root and uncheck the boxes you don’t need by hitting the space bar. Anything beginning with ‘r’ is worth looking at, since that often means ‘remote’ and is likely to offer security issues. A lot of Linux stuff kind of assumes you’re running as a server, so there’ll be tools that allow access to network drives (nfs) and manage ports (portmap), and if your machine is a workstation in a home office, like mine, some or all that stuff is pointless and ought to be removed. I don’t need a webserver. Sometimes a good way to do it is uninstall the relevant packages. For example

$ sudo apt-get --purge remove nfs-kernel-server nfs-common portmap
$ sudo apt-get autoremove

But as noted, things can be left installed and just turned off. One easy way to do this is by installing sysv-rc-conf. This will control whether things get activated at startup. Makes it easy to manage services and only run what you want.

$ sudo apt-get install sysv-rc-conf
$ sysv-rc-conf
Arbitrary screen grab.

Arbitrary screen grab.

Anyway, you choose what you want to be activated at each different runlevel. It might be worth reading about runlevels a little but, but if there’s something you know you don’t want, just turn it off at all runlevels. (They are the 1 2 3 4 5 0 6 S labels across the top.)

You can also check out rcconf.

End reminder.