06 August 2014

Well, that was both nauseating and educational

Today, as I walked into a grocery store, I spotted a person whom I know (call them ‘Pan’ as a suitable acronym/handle) at the other end of an aisle.

They were dressed in a “power” colour and black, were (as always) so wrapped up in themselves that they were oblivious to everything outside their circle of interest, and were dominating a conversation with an older couple.

The husband was significantly taller than Pan, the wife significantly shorter. Pan hadn’t needed to assume an overbearing posture or anything like that, however the couple were reacting to Pan’s controlling actions as if they were puppets. The only important thing in the Universe to them at that that instant was obviously Pan.

This fits the character: to Pan, other people are only important in their appointed rôle (always, of which rôle they are completely unaware) of making Pan look good. That is all.

One of the (many) contradictions in Pan’s life is that they literally don’t care about others at all, other than that they appear to look good to said others. <shrug> I don’t know how this can be, and I very much wish that their actions had no effect on me or on those I care about.

Contra that, feelings like fear, love, anger or joy have no meaning at all for Pan beyond their use as methods for controlling others. Consequently, they have no conscience at all, and absolutely no sense of empathy.

Nausea? I remember having reacted like a puppet, in very much the same fashion.

Education? That massive disconnection from reality explains some of the apparently idiotic actions Pan has taken (legal documents applying only to premises outside their area of jurisdiction, false accusations of others having done the very things that Pan had already (and/or has since) done, painstakingly hammering false memories into the minds of innocents, that manner of thing).

As long as Pan can claim that they have taken certain actions, aspects of the situation like truth or integrity have no meaning; they are irrelevant to Pan, and so (by regal definition) irrelevant to all others. Pan can effectively get what they want, and hang the consequences, if any. The one-word term for this is bullying.’


Since angerhas no meaning for them, actions which are immediately potentially lethal (including to themselves) were not taken by Pan out of anger (although they willingly feign anger when it suits their purposes), they were taken in defence’ of a grandiose (and false) self-image.

Pan thinks that without said grandiose (and false) self-image, they have nothing and are nothing.

News Bulletin: as this self-image is a mirage (not real, not genuine at all) Pan has nothing and is nothing.

How someone who is (in emotional terms) completely heartless deals with this, I dont know. I strongly suspect that the answer is “not at all.”

01 November 2013

Equipment or Intelligence

A cowboy named Billy was overseeing his herd in a pasture in remote countryside one day, when suddenly a brand-new BMW drove towards him out of a cloud of dust.

The driver, a young man in a Brioni® suit, Gucci® shoes, RayBan® sunglasses and YSL® tie, leaned out of the window and asked the cowboy, “If I tell you exactly how many cows and calves you have in your herd, will you give me a calf?”

Billy looks at the man, who obviously is a yuppie, then looks at his peacefully grazing herd and calmly answers, “Sure, why not?”

The yuppie switches his car off, whips out his Dell® notebook computer, connects it to his Cingular RAZR V3® phone, calls up a GPS satellite to get an exact fix on his location, surfs to a NASA web page, where he feeds the location to another satellite that scans the area in an ultra-high-resolution photo.

The young man then opens the digital photo in Adobe Photoshop® and exports it to an image processing facility in Hamburg, Germany … within seconds, he received an email on his Palm Pilot® announcing that the image has been processed and the data stored.

He then accesses an MS-SQL® database through an ODBC-connected Excel® spreadsheet with email on his Blackberry® and, after a few minutes, receives a response.

Finally, he prints out a full-colour, 150-page report on his hi-tech, miniaturised hp LaserJet® printer, turns to the cowboy and says, “You have exactly 1,586 cows and calves.”

“That’s right. Well, I guess you can take one of my calves,” says Billy.

He watches the young man select one of the animals and looks on with amusement as the young man stuffs it into the trunk of his car.

Then Billy says to the young man, “Hey, if I can tell you exactly what your business is, will you give me back my calf?”

The young man thinks about it for a second then says, “Okay, why not?”

"You’re a Federal politician," says Billy.

“Wow! That’s correct,” says the yuppie, “but how did you guess that?”

“No guessing’s required.” answered the cowboy, “You showed up here even though nobody called you; you want to get paid for an answer I already knew, to a question I never asked. You used millions of dollars worth of equipment trying to show me how much smarter than me you are; and you don’t know a thing about how working people make a living – or about cows, for that matter.”

“This is a herd of sheep.”

“Now give me back my dog.”

High voltage rock and roll?

When you have a use for 4kV at up to 300mA, some of the microwave ovens so often discarded in solid-waste collection runs include these.


Driving the primary of a Tesla coil through a spark-gap (or maybe an IGBT-based switch) with one of these would lead to a really fancy-looking electric fence (modulate the pulses to make the fence play Orpheus In The Underworld, or perhaps add a MIDI interface?) which would be absolute death to any near-by electronic devices (iPhone becomes iFried or maybe even iPhirework?) however would also make a clearly visible security boundary...

Ignorance is...? Life-long shame

If you happen to be totally self-righteous and inwardly terrified that others might realise this and scorn you to oblivion, there is a very simple step you can take: realise that you’re not even fooling yourself, that we all make mistakes, that the huge mega-dose of shame you’re accumulating for yourself will be unbearable when it hits, and begin apologising.

What?

Yes, you really are a legend in your own mind. Only.

Apologise to yourself for never having had the integrity to confront this and begin dealing with it. Then pick out, identify, and apologise to yourself for each and every failing in your life. On each such occasion, forgive yourself for that flaw. This may take some time.

With that well underway, apologise to others. It can be a minor thing, to someone you barely know: it’s important to start somewhere.

Eventually, your life can be worth something. By building up your integrity, you’re approaching a time when the world is not so terrifying. Your ultimate goal may right now seem unapproachable, however genuine humility is achievable.

21 February 2013

This morning, I saw that old truism in action: “Avarice is the root of all kinds of evil.”

As I drove by the ANZAC park, just before the new(ish) Entertainment Centre here, I drove past a pigeon
(one of several) who had been unfortunate enough to fail in a space dispute with two tonnes of moving metal... and a Silver Gull which had been so intent on eating its part (as much as possible) of the unfortunate pigeon (a gull will eat anything which gives the appearance of having once been organic in nature, so this must have given it the appearance of a banquet) that it had also failed to notice a few tonnes of moving metal, and had actually become a new layer atop the pigeon. Feathers and all.

So... be sure that your immediate goal is worth the risk before withdrawing your focus from the surrounding issues...

11 February 2013

Backup often, starting now

“Backup regularly” has just had a new win.

Behold, a letter informing a creditor that there was no reason to believe that any of half a million dollars could be collected from a debtor who had gone through a mental breakdown etc.

Behold, another letter thanking a mother-in-law for providing the final payments on a house initially bought with half a million dollars “mistakenly” paid into their own accounts by said debtor, as they had so directed.

Oops!

Yes, some of the paperwork has “mysteriously” disappeared from separately kept, ordered files. The banks are obliged to keep records for long enough that said disappearance will not be permanent. If you find yourself in a hole, the obvious next step is to stop digging. Evidently, they didn’t.

Your sysadmin backing up often means that there are times when documents you have forged and forgotten to/been too careless or lazy to delete or overwrite by the time a backup happens may (have, in many cases) come back to haunt you.

I am becoming increasingly glad that honesty is my only policy. I have no pressing need to remember exactly what I said to anybody at any particular instant.

06 December 2012

Ingredients: avconv, ImageMagick, some images, a LibreOffice Writer doc, tiMIDIty, some shell scripting, DeVeDe.

Result: A video slideshow with neat fades from image to image & background music... zero ©opyright material involved anywhere.

ImageMagick scales images to 720x480 (saved as PNG for losslessness).

convert -gravity center -font "Sansation-Bold" -pointsize $PS \
        -draw "fill white text 0,0 \"$(cat 1.txt)\"" \
        transparent.png temporary-image-name.png


Make lettering,

convert -gravity center -font "Sansation-Bold" -pointsize $PS \
        -strokewidth 5 -draw "fill black text 0,0 \"$(cat 1.txt)\"" \

        -channel RGBA -blur 9x9 \
        transparent.png temporary-image-name.png

Make shadows behind lettering (for contrast). Blend all onto background image using composite ImageMagick command.

avconv -loop 1 -i image.png -target ntsc-dvd \
        -r 30 -b 2048k -crf 30 -t 10 video-chunk.mpeg


Show fixed image for ten seconds.

k=1
for i in $(seq 0 4 200); do
        j=$(printf %03d $i)

        convert -compose dissolve -define compose:args=${j} \
          background-image.png lettered-image.png \

          -composite temp-image${k}.png
        k=$(($k + 1))
done

Make a set of images fading from background to lettering.

avconv -i temp-image%d.png -target ntsc-dvd \
        -r 30 -b 2048k -crf 30 video-chunk.mpeg

Build a video clip fading from background image to lettering.

Use timidity to turn MIDI into WAVe files. Use sox to fade WAVe files in/out, concatenate to make a sound-track.

Now concatenate all video clips in order, feed the concatenated (MPEG2) clip to avconv with an audio track, feed the result to DeVeDe, burn video DVD.

Tomorrow’s micro-project will be to bolt the whole lot together into a single script. Save Writer doc as HTML, run script, do other stuff while the whole lot is auto-assembled. Being a Lego® kid seems to have no end.

20 November 2012

This will probably make it more difficult for Micro$oft to shamelessly swipe Android features fast enough to give the appearance of keeping up, as they evidently did prior to releasing Windows 8.

Hmmm... that would be really worth my exploring in particular for one child for whom I could most definitely adjust software in order to simplify their reconciliation of an unconventional approach with the unreasonable demands of specific others who regard that approach as defective (& would write that false assumption into all of their interaction)... except that those same others would suspect me of altering the software to report location information on the device & all manner of other delusional rubbish which I have never had the will nor intention of ever doing.

If I could deal with the others frankly, the message would be “The whole world does not think like you do. Your self-image may be staggeringly grandiose yet highly fragile, leading you to regard any lack of instant compliance with your tiniest whim to be a form of attack (so ‘justifying’ you attacking back), however ours typically is not warped that way.

“If you ever realise that essentially all of your problems are the result of your own choices & own actions, then take genuine responsibility for your actions, your life may no longer suck; you may no longer ‘need’ to cry yourself to sleep over ‘irreconcilable’ sadness about those imagined attacks, you will be able to stop hurting others (& yourself), & so get on with your life.

“Start now. Why continue to live in a self-imposed Hell? Why go to the trouble of wrecking the lives of others in order to protect yourself from ‘attacks’ which exist in your imagination only? Instead: change. The choice is yours.”

If I did deal with them so frankly, that honesty would be once again used as a weapon with which to damage other people in a futile effort to use tall-poppy syndrome as a twisted kind of self-improvement method.

Happily, I can contribute some changes anyway as they will be useful to others who face the same kinds of obstacles in their search for a better life for themselves & for others.

That matches the Golden Rule, which amounts to combating destructive sourness with goodwill & constructivism rather than with more futile sourness.

It also matches the FOSS philosophy of making useful improvements available to all, with no control/avarice booby-traps in the terms at all (a good recent example of that lives here).

So much to do, yet only 86,400 seconds in each day to do it all!

22 October 2012

OK, so I was a Lego® kid...

Problem: a LibreOffice Writer document (pasted in from from a web page a while ago) has the original URL in every footnote link... which doesn’t make for such an enjoyable off-line reading experience after has been PDFed.

If this was an MS-Word document? 
“Raise hands in air, exit stage left, screaming...”
However, we are dealing with Free/OpenSource Software here, so... fire up Konsole...

cd Documents
mkdir XYZZY
cd XYZZY
unzip ../original_document.odt
vi content.xml
:s_originalURLuptothehash__g
ZZ
zip ../new_document.odt $(find .)
rm -rf XYZZY

Done.

The document new_document now has the URLs sans host & path (http://www.frednurk.ufo/in/this/dir/filename.htm#65535 becomes #65535).

06 October 2012

So... a DVD needed a prequel video by way of brief introduction... what to do? The basic problem solving process is to break a problem down & solve each smaller piece separately, so...

Using GIMP, annotate a brief set of explicatory slides.

Using Imagination, turn those slides into a silent video clip.


Using Audacity, record a narration while the slideshow video clip is playing. Select a no-speaking part of that recording, axe all of the noise.

Using tiMIDIty, fabricate some gentle classic background music.

Using SoX, fade the music in, blend it with the narration, fade it out at the end.

Using avconv (part of libav), tack the resulting sound-stream onto the silent video clip.

Using DeVeDe, morph that & the main video clips into a standard video DVD.

Every single byte of that is FOSS. Total cost of entire production: $0. Some selfish sucker will find a way to botch this system. It works too well for the Pagan god Murphy to avoid interfering with.

06 September 2012

A rut is a grave with the ends kicked out

If this is you, now is the time to realise that all of your problems are the result of your own choices & own actions, admit that you cannot make it any better, & turn to others for real help.

The number of people recorded as entering remission without first acknowledging this essential hopelessness is zero.

None.

Nada.

Zippo.

The single most difficult part of any task is to begin. People who procrastinate never seem to quite get around to doing anything about ending their procrastination. So pick up a pen now, & write a list like this one (continue listing, don’t end at four):
  • Counsellor
  • Psychologist
  • Support group
  • HeadSpace
Now grab the Yellow Pages & look up at least three of each, writing the numbers down. When trading hours next happen, call to find out what constructive things can be done to end the embarrassment & futility.

28 August 2012

Planets, the Quixotic, unexpected Rage

Planets — Hmmm... this one looks a bit inevitable... & seems somewhat unchangeable as it involves no politics, religion or finance that I can make out.

Quixotic — it never ceases to amaze me & please me when I run across those who have landed in circumstances with arbitrary limits, such as a job or a restrictive social group, yet in various ways they expose their greatness.

Your character is defined by how you treat people who can do nothing for you, & so very many people, while not in situations where this is absolutely clear, betray their greatness by how other people (& often also animals) both treat them, & react to others in their presence. If you are sure that nobody notices what you do, think again. They may simply not have expressed their understanding, yet that does not define it as absent.

Rage — adding a few small clues has suddenly made the reasons for me being physically attacked without warning (a handful of years ago) much more apparent.

28 July 2012

Grumble, grumble... A post vanished in an instant while I was in the process of adding a comment... thank you, Anonymous, your suggested bitmap changes have been integrated.

/*
 * display text using a 5x7 bitmap font in ASCII letters
 */
static unsigned char font [] [5] = { 
        { 0x00,0x00,0x00,0x00,0x00 },   //   0x20 32
        { 0x00,0x00,0x6f,0x00,0x00 },   // ! 0x21 33
        { 0x00,0x07,0x00,0x07,0x00 },   // " 0x22 34
        { 0x14,0x7f,0x14,0x7f,0x14 },   // # 0x23 35
//      { 0x00,0x07,0x04,0x1e,0x00 },   // $ 0x24 36
        { 0x2e,0x2a,0xff,0x2a,0x3a },   // $ 0x24 36
        { 0x23,0x13,0x08,0x64,0x62 },   // % 0x25 37
        { 0x36,0x49,0x56,0x20,0x50 },   // & 0x26 38
        { 0x00,0x00,0x07,0x00,0x00 },   // ' 0x27 39
        { 0x00,0x1c,0x22,0x41,0x00 },   // ( 0x28 40
        { 0x00,0x41,0x22,0x1c,0x00 },   // ) 0x29 41
        { 0x14,0x08,0x3e,0x08,0x14 },   // * 0x2a 42
        { 0x08,0x08,0x3e,0x08,0x08 },   // + 0x2b 43
        { 0x00,0x50,0x30,0x00,0x00 },   // , 0x2c 44
        { 0x08,0x08,0x08,0x08,0x08 },   // - 0x2d 45
        { 0x00,0x60,0x60,0x00,0x00 },   // . 0x2e 46
        { 0x20,0x10,0x08,0x04,0x02 },   // / 0x2f 47
        { 0x3e,0x51,0x49,0x45,0x3e },   // 0 0x30 48
        { 0x00,0x42,0x7f,0x40,0x00 },   // 1 0x31 49
        { 0x42,0x61,0x51,0x49,0x46 },   // 2 0x32 50
        { 0x21,0x41,0x45,0x4b,0x31 },   // 3 0x33 51
        { 0x18,0x14,0x12,0x7f,0x10 },   // 4 0x34 52
        { 0x27,0x45,0x45,0x45,0x39 },   // 5 0x35 53
        { 0x3c,0x4a,0x49,0x49,0x30 },   // 6 0x36 54
        { 0x01,0x71,0x09,0x05,0x03 },   // 7 0x37 55
        { 0x36,0x49,0x49,0x49,0x36 },   // 8 0x38 56
        { 0x06,0x49,0x49,0x29,0x1e },   // 9 0x39 57
        { 0x00,0x36,0x36,0x00,0x00 },   // : 0x3a 58
        { 0x00,0x56,0x36,0x00,0x00 },   // ; 0x3b 59
        { 0x08,0x14,0x22,0x41,0x00 },   // < 0x3c 60
        { 0x14,0x14,0x14,0x14,0x14 },   // = 0x3d 61
        { 0x00,0x41,0x22,0x14,0x08 },   // > 0x3e 62
        { 0x02,0x01,0x51,0x09,0x06 },   // ? 0x3f 63
        { 0x3e,0x41,0x5d,0x49,0x4e },   // @ 0x40 64
        { 0x7e,0x09,0x09,0x09,0x7e },   // A 0x41 65
        { 0x7f,0x49,0x49,0x49,0x36 },   // B 0x42 66
        { 0x3e,0x41,0x41,0x41,0x22 },   // C 0x43 67
        { 0x7f,0x41,0x41,0x41,0x3e },   // D 0x44 68
        { 0x7f,0x49,0x49,0x49,0x41 },   // E 0x45 69
        { 0x7f,0x09,0x09,0x09,0x01 },   // F 0x46 70
        { 0x3e,0x41,0x49,0x49,0x7a },   // G 0x47 71
        { 0x7f,0x08,0x08,0x08,0x7f },   // H 0x48 72
        { 0x00,0x41,0x7f,0x41,0x00 },   // I 0x49 73
        { 0x20,0x40,0x41,0x3f,0x01 },   // J 0x4a 74
        { 0x7f,0x08,0x14,0x22,0x41 },   // K 0x4b 75
        { 0x7f,0x40,0x40,0x40,0x40 },   // L 0x4c 76
        { 0x7f,0x02,0x0c,0x02,0x7f },   // M 0x4d 77
        { 0x7f,0x04,0x08,0x10,0x7f },   // N 0x4e 78
        { 0x3e,0x41,0x41,0x41,0x3e },   // O 0x4f 79
        { 0x7f,0x09,0x09,0x09,0x06 },   // P 0x50 80
        { 0x3e,0x41,0x51,0x21,0x5e },   // Q 0x51 81
        { 0x7f,0x09,0x19,0x29,0x46 },   // R 0x52 82
        { 0x46,0x49,0x49,0x49,0x31 },   // S 0x53 83
        { 0x01,0x01,0x7f,0x01,0x01 },   // T 0x54 84
        { 0x3f,0x40,0x40,0x40,0x3f },   // U 0x55 85
        { 0x0f,0x30,0x40,0x30,0x0f },   // V 0x56 86
        { 0x3f,0x40,0x30,0x40,0x3f },   // W 0x57 87
        { 0x63,0x14,0x08,0x14,0x63 },   // X 0x58 88
        { 0x07,0x08,0x70,0x08,0x07 },   // Y 0x59 89
        { 0x61,0x51,0x49,0x45,0x43 },   // Z 0x5a 90
//      { 0x3c,0x4a,0x49,0x29,0x1e },   // [ 0x5b 91
        { 0x00,0x00,0x7f,0x41,0x00 },   // [ 0x5b 91
        { 0x02,0x04,0x08,0x10,0x20 },   // \ 0x5c 92
        { 0x00,0x41,0x7f,0x00,0x00 },   // ] 0x5d 93
        { 0x04,0x02,0x01,0x02,0x04 },   // ^ 0x5e 94
        { 0x40,0x40,0x40,0x40,0x40 },   // _ 0x5f 95
        { 0x00,0x00,0x03,0x04,0x00 },   // ` 0x60 96
        { 0x20,0x54,0x54,0x54,0x78 },   // a 0x61 97
        { 0x7f,0x48,0x44,0x44,0x38 },   // b 0x62 98
//      { 0x38,0x44,0x44,0x44,0x20 },   // c 0x63 99
        { 0x38,0x44,0x44,0x44,0x44 },   // c 0x63 99
        { 0x38,0x44,0x44,0x48,0x7f },   // d 0x64 100
        { 0x38,0x54,0x54,0x54,0x18 },   // e 0x65 101
        { 0x08,0x7e,0x09,0x01,0x02 },   // f 0x66 102
        { 0x0c,0x52,0x52,0x52,0x3e },   // g 0x67 103
        { 0x7f,0x08,0x04,0x04,0x78 },   // h 0x68 104
        { 0x00,0x44,0x7d,0x40,0x00 },   // i 0x69 105
        { 0x20,0x40,0x44,0x3d,0x00 },   // j 0x6a 106
        { 0x00,0x7f,0x10,0x28,0x44 },   // k 0x6b 107
        { 0x00,0x41,0x7f,0x40,0x00 },   // l 0x6c 108
        { 0x7c,0x04,0x18,0x04,0x78 },   // m 0x6d 109
        { 0x7c,0x08,0x04,0x04,0x78 },   // n 0x6e 110
        { 0x38,0x44,0x44,0x44,0x38 },   // o 0x6f 111
        { 0x7c,0x14,0x14,0x14,0x08 },   // p 0x70 112
//      { 0x08,0x14,0x14,0x18,0x7c },   // q 0x71 113
        { 0x08,0x14,0x14,0x14,0x7c },   // q 0x71 113
        { 0x7c,0x08,0x04,0x04,0x08 },   // r 0x72 114
        { 0x48,0x54,0x54,0x54,0x20 },   // s 0x73 115
        { 0x04,0x3f,0x44,0x40,0x20 },   // t 0x74 116
        { 0x3c,0x40,0x40,0x20,0x7c },   // u 0x75 117
        { 0x1c,0x20,0x40,0x20,0x1c },   // v 0x76 118
        { 0x3c,0x40,0x30,0x40,0x3c },   // w 0x77 119
        { 0x44,0x28,0x10,0x28,0x44 },   // x 0x78 120
        { 0x0c,0x50,0x50,0x50,0x3c },   // y 0x79 121
        { 0x44,0x64,0x54,0x4c,0x44 },   // z 0x7a 122
        { 0x00,0x08,0x36,0x41,0x41 },   // { 0x7b 123
        { 0x00,0x00,0x7f,0x00,0x00 },   // | 0x7c 124
        { 0x41,0x41,0x36,0x08,0x00 },   // } 0x7d 125
//      { 0x04,0x02,0x04,0x08,0x04 },   // ~ 0x7e 126
        { 0x08,0x0c,0x08,0x18,0x08 }    // ~ 0x7e 126
};

int main (int argc, char ** argv) {
        int arg, chr, col, shift;
        char c, * p;
        unsigned char * bits;

        for (arg = 1; arg < argc; ++ arg) {
                for (shift = 1; shift < 128; shift <<= 1) {
                        p = argv [arg];
                        while (c = * p ++) {
                                bits = font [c - ' '];
                                for (col = 0; col < 5; col ++) {
                                        putchar ((bits [col] & shift) ? '#' : '_');
                                }
                                putchar (' ');
                        }
                        putchar ('\n');
                }
                putchar ('\n');
        }
        return 0;
};

/* end: font.c */

27 July 2012

On the way in from Mount Barker...

...I ran across a few distractions, a glimpse of which is/are included here:








Much else there & in Barker, had a chat to the postal pixies, apparently they’ve had another Mt Barker 6324 postie actually come in & work there before.
All day transport ticket here is $3.80 rather than $3.20, much of a muchness.

5x7 text dot-matrix in five minutes...

This is a fairly primitive toy I threw together today for a specific purpose, published in case it’s any use to others... feed it a list of words as command arguments, which it will then display as a 5x7 ASCII dotmatrix with ‘#’ as a dot & ‘_’ as a blank.

/*
 * display text using a 5x7 bitmap font in ASCII letters
 */
static unsigned char font [] [5] = { 
        { 0x00,0x00,0x00,0x00,0x00 },   //   0x20 32
        { 0x00,0x00,0x6f,0x00,0x00 },   // ! 0x21 33
        { 0x00,0x07,0x00,0x07,0x00 },   // " 0x22 34
        { 0x14,0x7f,0x14,0x7f,0x14 },   // # 0x23 35
        { 0x00,0x07,0x04,0x1e,0x00 },   // $ 0x24 36
        { 0x23,0x13,0x08,0x64,0x62 },   // % 0x25 37
        { 0x36,0x49,0x56,0x20,0x50 },   // & 0x26 38
        { 0x00,0x00,0x07,0x00,0x00 },   // ' 0x27 39
        { 0x00,0x1c,0x22,0x41,0x00 },   // ( 0x28 40
        { 0x00,0x41,0x22,0x1c,0x00 },   // ) 0x29 41
        { 0x14,0x08,0x3e,0x08,0x14 },   // * 0x2a 42
        { 0x08,0x08,0x3e,0x08,0x08 },   // + 0x2b 43
        { 0x00,0x50,0x30,0x00,0x00 },   // , 0x2c 44
        { 0x08,0x08,0x08,0x08,0x08 },   // - 0x2d 45
        { 0x00,0x60,0x60,0x00,0x00 },   // . 0x2e 46
        { 0x20,0x10,0x08,0x04,0x02 },   // / 0x2f 47
        { 0x3e,0x51,0x49,0x45,0x3e },   // 0 0x30 48
        { 0x00,0x42,0x7f,0x40,0x00 },   // 1 0x31 49
        { 0x42,0x61,0x51,0x49,0x46 },   // 2 0x32 50
        { 0x21,0x41,0x45,0x4b,0x31 },   // 3 0x33 51
        { 0x18,0x14,0x12,0x7f,0x10 },   // 4 0x34 52
        { 0x27,0x45,0x45,0x45,0x39 },   // 5 0x35 53
        { 0x3c,0x4a,0x49,0x49,0x30 },   // 6 0x36 54
        { 0x01,0x71,0x09,0x05,0x03 },   // 7 0x37 55
        { 0x36,0x49,0x49,0x49,0x36 },   // 8 0x38 56
        { 0x06,0x49,0x49,0x29,0x1e },   // 9 0x39 57
        { 0x00,0x36,0x36,0x00,0x00 },   // : 0x3a 58
        { 0x00,0x56,0x36,0x00,0x00 },   // ; 0x3b 59
        { 0x08,0x14,0x22,0x41,0x00 },   // < 0x3c 60
        { 0x14,0x14,0x14,0x14,0x14 },   // = 0x3d 61
        { 0x00,0x41,0x22,0x14,0x08 },   // > 0x3e 62
        { 0x02,0x01,0x51,0x09,0x06 },   // ? 0x3f 63
        { 0x3e,0x41,0x5d,0x49,0x4e },   // @ 0x40 64
        { 0x7e,0x09,0x09,0x09,0x7e },   // A 0x41 65
        { 0x7f,0x49,0x49,0x49,0x36 },   // B 0x42 66
        { 0x3e,0x41,0x41,0x41,0x22 },   // C 0x43 67
        { 0x7f,0x41,0x41,0x41,0x3e },   // D 0x44 68
        { 0x7f,0x49,0x49,0x49,0x41 },   // E 0x45 69
        { 0x7f,0x09,0x09,0x09,0x01 },   // F 0x46 70
        { 0x3e,0x41,0x49,0x49,0x7a },   // G 0x47 71
        { 0x7f,0x08,0x08,0x08,0x7f },   // H 0x48 72
        { 0x00,0x41,0x7f,0x41,0x00 },   // I 0x49 73
        { 0x20,0x40,0x41,0x3f,0x01 },   // J 0x4a 74
        { 0x7f,0x08,0x14,0x22,0x41 },   // K 0x4b 75
        { 0x7f,0x40,0x40,0x40,0x40 },   // L 0x4c 76
        { 0x7f,0x02,0x0c,0x02,0x7f },   // M 0x4d 77
        { 0x7f,0x04,0x08,0x10,0x7f },   // N 0x4e 78
        { 0x3e,0x41,0x41,0x41,0x3e },   // O 0x4f 79
        { 0x7f,0x09,0x09,0x09,0x06 },   // P 0x50 80
        { 0x3e,0x41,0x51,0x21,0x5e },   // Q 0x51 81
        { 0x7f,0x09,0x19,0x29,0x46 },   // R 0x52 82
        { 0x46,0x49,0x49,0x49,0x31 },   // S 0x53 83
        { 0x01,0x01,0x7f,0x01,0x01 },   // T 0x54 84
        { 0x3f,0x40,0x40,0x40,0x3f },   // U 0x55 85
        { 0x0f,0x30,0x40,0x30,0x0f },   // V 0x56 86
        { 0x3f,0x40,0x30,0x40,0x3f },   // W 0x57 87
        { 0x63,0x14,0x08,0x14,0x63 },   // X 0x58 88
        { 0x07,0x08,0x70,0x08,0x07 },   // Y 0x59 89
        { 0x61,0x51,0x49,0x45,0x43 },   // Z 0x5a 90
        { 0x3c,0x4a,0x49,0x29,0x1e },   // [ 0x5b 91
        { 0x02,0x04,0x08,0x10,0x20 },   // \ 0x5c 92
        { 0x00,0x41,0x7f,0x00,0x00 },   // ] 0x5d 93
        { 0x04,0x02,0x01,0x02,0x04 },   // ^ 0x5e 94
        { 0x40,0x40,0x40,0x40,0x40 },   // _ 0x5f 95
        { 0x00,0x00,0x03,0x04,0x00 },   // ` 0x60 96
        { 0x20,0x54,0x54,0x54,0x78 },   // a 0x61 97
        { 0x7f,0x48,0x44,0x44,0x38 },   // b 0x62 98
        { 0x38,0x44,0x44,0x44,0x20 },   // c 0x63 99
        { 0x38,0x44,0x44,0x48,0x7f },   // d 0x64 100
        { 0x38,0x54,0x54,0x54,0x18 },   // e 0x65 101
        { 0x08,0x7e,0x09,0x01,0x02 },   // f 0x66 102
        { 0x0c,0x52,0x52,0x52,0x3e },   // g 0x67 103
        { 0x7f,0x08,0x04,0x04,0x78 },   // h 0x68 104
        { 0x00,0x44,0x7d,0x40,0x00 },   // i 0x69 105
        { 0x20,0x40,0x44,0x3d,0x00 },   // j 0x6a 106
        { 0x00,0x7f,0x10,0x28,0x44 },   // k 0x6b 107
        { 0x00,0x41,0x7f,0x40,0x00 },   // l 0x6c 108
        { 0x7c,0x04,0x18,0x04,0x78 },   // m 0x6d 109
        { 0x7c,0x08,0x04,0x04,0x78 },   // n 0x6e 110
        { 0x38,0x44,0x44,0x44,0x38 },   // o 0x6f 111
        { 0x7c,0x14,0x14,0x14,0x08 },   // p 0x70 112
        { 0x08,0x14,0x14,0x18,0x7c },   // q 0x71 113
        { 0x7c,0x08,0x04,0x04,0x08 },   // r 0x72 114
        { 0x48,0x54,0x54,0x54,0x20 },   // s 0x73 115
        { 0x04,0x3f,0x44,0x40,0x20 },   // t 0x74 116
        { 0x3c,0x40,0x40,0x20,0x7c },   // u 0x75 117
        { 0x1c,0x20,0x40,0x20,0x1c },   // v 0x76 118
        { 0x3c,0x40,0x30,0x40,0x3c },   // w 0x77 119
        { 0x44,0x28,0x10,0x28,0x44 },   // x 0x78 120
        { 0x0c,0x50,0x50,0x50,0x3c },   // y 0x79 121
        { 0x44,0x64,0x54,0x4c,0x44 },   // z 0x7a 122
        { 0x00,0x08,0x36,0x41,0x41 },   // { 0x7b 123
        { 0x00,0x00,0x7f,0x00,0x00 },   // | 0x7c 124
        { 0x41,0x41,0x36,0x08,0x00 },   // } 0x7d 125
        { 0x04,0x02,0x04,0x08,0x04 },   // ~ 0x7e 126
};

int main (int argc, char ** argv) {
        int arg, chr, col, shift;
        char c, * p;
        unsigned char * bits;

        for (arg = 1; arg < argc; ++ arg) {
                for (shift = 1; shift < 128; shift <<= 1) {
                        p = argv [arg];
                        while (c = * p ++) {
                                bits = font [c - ' '];
                                for (col = 0; col < 5; col ++) {
                                        putchar ((bits [col] & shift) ? '#' : '_');
                                }
                                putchar (' ');
                        }
                        putchar ('\n');
                }
                putchar ('\n');
        }
        return 0;
};

/* end: font.c */

05 May 2012

...more history...

I’m pleased to note that you can lose your Internet connection partway through upgrading Oneiric Ocelot Kubuntu to Precise Pangolin at the point where the GUI doesn’t actually work, then reboot it into text mode (RunLevel 1), bring up a network connection by hand, apt-get upgrade then hand-install the numerous things it held back on... (dpkg does an interactive dance routine a few times, catching up on half-done things) & it all works!

Better than that, the final recompile of dvdauthor is not suffering the lack-of-menu-backgrounds in the final product when invoked via devede which several previous versions did.

thought for the day... a few years ago

I am in the habit of collecting knowledge. In walk-a-mile see-a-mile mode, I can just about glimpse — in the very farthest distance — hints of the horizons of mortal knowledge.

In short words, we don’t know nuffin’! :-)

20 April 2012

Geekness is heritable

This realisation came last Friday when my 11yo daughter took 394 fairly good photographs in under 43 minutes, mostly on the AirWalk near the Huon River.

Her interest then turned to jumping at exactly the right pace (on the end of the walkway pictured above) to cause adult tourists (on the more stable sections) to grip the handrails fearfully as her 40kg got the whole thing oscillating in a matter of seconds.

Not as overt as her brother’s technicality, yet the source is obvious.