tag:blogger.com,1999:blog-62220869299136022052024-03-05T16:32:20.702-08:00Lakeland DeveloperA collection of notes about things that interest me, projects I'm working on and about being a developer.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-6222086929913602205.post-40048896924205922732013-04-30T14:25:00.001-07:002013-05-07T00:13:34.038-07:00GBNA & LINAS Development Remembered<div align="center">
British Gas Research & Development Centre, Loughborough <br />BG Technology plc <br />March 1996 - November 1999</div>
After I left the University of Luton around Christmas 1995 I moved up to Manchester to be with my then girlfriend Naomi. It was a bad time of year to be looking for work (traditionally January is a write-off trying to find contract software development work) but eventually I ended up with two offers: one as a Systems Administrator for the University of Cambridge Engineering School and one as a contract software developer for British Gas at their Loughborough research centre site. It was a tricky decision as I loved the academic environment but in the end I decided to go for the money (the difference was quite significant). <br />
The research centre was a very impressive building with a large atrium entrance (containing for a while LPG converted cars if I remember correctly) and what seemed to be an endless maze of offices and labs. When there first thing in the morning or last thing at night when it was partially lit it always reminded me of playing Doom with eerie corridors and dark offices. <br />
My interview was with Tracie Withers and Howard Hughes. I was presented at one point with a sample sheet of C code and asked to find faults. I found more faults than had been initially identified which I think must have impressed.<br />
I had a week or so's handover from Howard who I was basically replacing. If I remember correctly he was moving to Scotland. Day to day development to start with was between myself and Tracie and possibly also John Lloyd (my memory is a little sketchy here). Simon Taylor was our manager. <br />
<a href="http://wickensonline.co.uk/gbna-terminal-window.png" target="_blank"><img height="548" src="http://wickensonline.co.uk/gbna-terminal-window.png" style="display: block; float: none; margin-left: auto; margin-right: auto;" width="640" /></a><br />
The team I worked with was primarily concerned with on-going development of a product called GBNA. This was a C & Motif based graphical tool running under the X-Window System for the analysis of low-pressure gas pipe networks. The code relied on an embedded FORTRAN engine called Pegasus developed in the early 1980s which used Hardy Cross analysis and smooth pipe flow laws to determine pressures and flows in the network. The code supported plotting via HPGL output and also supported large A0 digitising tablets for scanning in new developments. I spent a good few days of my early time on the project both reformatting the source code and removing compiler warnings. The XDesigner tool was used to layout the GUI graphically - the result was automatically generated files containing all the Motif code to present the application GUI.<br />
<a href="http://www.wickensonline.co.uk/gbna-new-worcestor.png" target="_blank"><img height="512" src="http://www.wickensonline.co.uk/gbna-new-worcestor.png" style="display: block; float: none; margin-left: auto; margin-right: auto;" width="640" /></a><br />
Development of GBNA was done using Solaris Sparc workstations. Transco and British Gas however were primarily a DEC site so for delivery the software was re-compiled on Alpha workstations. I don't remember seeing a VAX although the conditionals in the code were always 'VAX' rather than 'VMS' or 'OpenVMS'. The office system relied on the venerable DEC product ALL-IN-1 for most of the time I was there although towards the end it was replaced with Lotus Notes (and for some systems SAP) which didn't meet with great approval from colleagues who could see the benefits of such a mature product as ALL-IN-1. We used Fujitsu/ICL computers which had keyboards supplied with the special WPS/PLUS key legends required for ALL-IN-1.<br />
<div align="center">
<a href="http://wickensonline.co.uk/gbna-palette-pipes-flow.png" target="_blank"><img height="523" src="http://wickensonline.co.uk/gbna-palette-pipes-flow.png" width="640" /></a></div>
The team slowly expanded. Things got interesting at some point after Steve Limb arrived when talk turned to a large-area version of GBNA that could handle the entire London low-pressure regime network. The team worked together to produce a prototype that divided large networks into square geographic tiles which were then stitched together for analysis purposes.<br />
The C codebase for GBNA (at one point in time when I did a search for authors) contained the following authors:<br />
<ul>
<li>A. Corner</li>
<li>Alan Backhouse</li>
<li>Graham Kirsopp (contract staff)</li>
<li>Howard Hughes (contract staff)</li>
<li>John Lloyd</li>
<li>M.A.Hood (contractor)</li>
<li>Mark Wickens (contract staff)</li>
<li>Mike Smith</li>
<li>P. Nicholson</li>
<li>Pete Ranson (contract staff)</li>
<li>Sarah Morley</li>
<li>Steve Limb (contract staff)</li>
<li>Tracie Withers</li>
</ul>
Of these developers I personally worked with Graham, Howard, John, Mike, Pete, Steve and Tracie. Sarah wasn't on the GBNA team when I joined but I did know her.<br />
<div align="center">
<a href="http://wickensonline.co.uk/gbna-palette-source-by-flow.png" target="_blank"><img height="524" src="http://wickensonline.co.uk/gbna-palette-source-by-flow.png" width="640" /></a></div>
Graham was funny - whenever he'd get something to work you'd hear a muffed 'YES' and see his hand punch in the air. Pete worked on and off as required on GBNA - he had come from a job developing software to do with satellites which always sounded really cool.<br />
There were several software development groups. Phil Hindley worked in another group but sat with us at lunch and provided a constant source of amusement with his dour outlook on life and his view of contractors. Once over lunch I'd had enough of the 'your life being a contractor is better than mine as a permie' attitude so we broke down how much a contractor earned in reality compared with a 'permie' (taking into account lack of sick pay, holidays, healthcare, pension contributions etc.) and found the gap to not be amazingly huge. I think with Phil the sticking point of the conversation was always his unwillingness to travel and live away from home which is pretty much a requirement for a contractor. After this conversation we got less hassle from him! It also taught me early on about the view that permies can have of contractors and develop a coping mechanism. Whenever I started getting hassle I'd always ask the question 'so why aren't you a contractor if it's so great?' - typically this would bring the conversation to an abrupt halt.<br />
<div align="center">
<a href="http://wickensonline.co.uk/gbna-with-pipe-parameters.png" target="_blank"><img height="522" src="http://wickensonline.co.uk/gbna-with-pipe-parameters.png" width="640" /></a></div>
We didn't get many trips out of the office. I remember one time when I did have a trip I was destined for the Peterborough Transco office to debug an issue with plotting. I had started to ride motorbikes around this time, for the first time, and was still in the love-affair stage. It looked like it was going to be a great day on the bike till I stepped outside and nearly fell on my backside - the driveway was covered in ice. To say I was disappointed was an understatement. I ended up going in the Jeep and at one point realised I'd made the right choice when I found myself sliding sideways down a road at 30 mph.<br />
<a href="http://wickensonline.co.uk/gbna-background.png" target="_blank"><img height="524" src="http://wickensonline.co.uk/gbna-background.png" style="display: block; float: none; margin-left: auto; margin-right: auto;" width="640" /></a><br />
I also visited the Hinkley Transco office a couple of times. We got visits from John Scrivener who was one of our main contacts with regard to new requirements. He seemed to spend a significant amount of time on the motorway between Transco regional offices - he was based out of the Slough office.<br />
Mike Smith joined the team as a permanent member of staff and team lead before I left and was a thoroughly nice bloke. I remember him having trouble with his Vauxhall Carlton - the rear axle was shot which I think was how a great many of these cars finally met their end. There were several rounds of redundancies whilst I was there which always made me feel sorry for those on their way out - for a while it was customary to hear rounds of applause on a Friday afternoon - an altogether sad sound. Over time the occupation of offices clearly diminished.<br />
Around the two year mark I'd decided that my future lied along a different path with the new up-and-coming language Java. I'd treated myself to a one-week residential coding course. When I left British Gas I spent three months at Thames Water in Swindon debugging a call centre application. It was written in Java 1.1 and ran incredibly slowly compared to the mainframe based application it was designed to replace. The architecture was amazingly complex especially when it came to the inheritance hierarchy. Development was using IBM's VisualAge for Java which I developed a real love-hate relationship for. When it worked it was brilliant but it was buggy and tended to crash leaving you to have to spend hours creating a new workspace with the codebase you were working on. <br />
In the meantime Steve Limb and I formed a company called MAST in anticipation of negotiations between British Gas and ourselves coming to fruition. The task was to re-engineer Pegasus as a Java application and also to improve performance. Analysis times using the Large Area version of GBNA were unacceptable. The goal was set for an eight-fold increase in speed. <br />
Steve undertook the majority of work on the engine itself finding that the richer availability of appropriate data structures in Java (the engine breaks a gas network down into a tree structure and series of loops) compared with the FORTRAN implementation where everything was effectively stored in arrays and linked lists enabled him to improve efficiency of analysis markedly. I worked on the graphical front end and ancillary components to provide a prototype. At the end of six weeks we had fulfilled the rigorous requirements set down and presented the demo to Transco. I was very (perhaps a little too) enthusiastic about the potential for visualization using the new facilities available in Java for graphical presentation.<br />
Unfortunately around this time BG plc purchased Stoner software who were based in the USA and as part of their portfolio provided a similar product to GBNA. Both Steve and I moved on to work for other companies. <br />
I had noted at some point in the past that British Gas had closed down the Ashby Road site and it would appear that it is now the Loughborough University Science Park - having recently contacted Graham Kirsopp he confirmed that he has been back to the site to work for an energy-related company.<br />
I've also found that it would appear that National Grid is now responsible for the low-pressure gas network in the UK. There are indications, contrary to my assumptions, that GBNA and LINAS are still being used operationally. This is great to know - too often software that you work on as a contractor eventually ends up not being used.<br />
Footnote: the GBNA icon looks like this:<br />
<img src="http://wickensonline.co.uk/gbna-icon.png" /><br />
Do you recognise the feline? It’s Jonesy the cat from the movie Alien, originally captured using an Amiga Genlock by my friend <a href="http://retrocosm.net/author/aliennerd/" target="_blank">Aliennerd</a>.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com1tag:blogger.com,1999:blog-6222086929913602205.post-15940502466369766412012-04-13T10:00:00.001-07:002012-04-14T10:09:04.282-07:00Thought I'd give Blogsy a try<div class="separator" style="clear: both; text-align: right;"><a href="http://www.logitech.com/assets/36834/7/logitech-tablet-keyboard-for-ipad.png" target="_blank" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br></a></div><div class="separator" style="clear: both; text-align: right;"><a href="http://www-bgr-com.vimg.net/wp-content/uploads/2012/03/Apple-new-ipad.jpg" target="_blank" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img src="http://www-bgr-com.vimg.net/wp-content/uploads/2012/03/Apple-new-ipad.jpg" id="blogsy-1334423333231.6118" class="alignright" alt="" width="200" height="131"></a></div><p>I've just got one of the new ipads, and very nice it is too. I bought a Logitech keyboard which works great and would lend itself nicely to blogging on the move. However, I wasn't sure which software to use but after a quick search found that there is really only one serious contender, Blogsy.</p><div class="separator" style="clear: both; text-align: left;"><a href="http://www.logitech.com/assets/36834/7/logitech-tablet-keyboard-for-ipad.png" target="_blank" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img src="http://www.logitech.com/assets/36834/7/logitech-tablet-keyboard-for-ipad.png" id="blogsy-1334423333244.731" class="alignleft" alt="Logitech iPad keyboard" width="200" height="220"></a></div><p>So we'll see how this post comes out!</p><p> Not sure how the text wrapping will work with this image, but it does appear to now be honouring the settings applied. It would be nice if it wasn't so fiddley!</p><p>Now to see if I can update the post once it's already been published. </p><p>Yes, that's working nicely.</p><div class="separator" style="clear: both; text-align: right;"><a href="http://graphics8.nytimes.com/images/2012/01/09/arts/09word/09word-blog480.jpg" target="_blank" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img src="http://graphics8.nytimes.com/images/2012/01/09/arts/09word/09word-blog480.jpg" id="blogsy-1334423333259.0288" class="alignright" alt="" width="200" height="134"></a></div><p> I emailed Matthew Kirschenbaum yesterday - he's an author working on a book called the Literary History of Word Processing. You can read more about it <a href="http://www.nytimes.com/2011/12/26/books/a-literary-history-of-word-processing.html?pagewanted=all" target="_self" title="">here</a>.</p><p>I occasionally use <a href="http://en.wikipedia.org/wiki/ALL-IN-1" target="_self" title="">ALL-IN-1</a> which was Digital Equipment corporations Office Automation product, originally written by Skip Walter, John Churin and Marty Skinner. I thought Matthew might want to get in touch with Skip to see if there were any nice anecdotes, given that ALL-IN-1 was a $1 billion/year product for 18 years in a row. Skip maintains an excellent blog <a href="http://skipwalter.net/" target="_self" title="">here</a>.</p>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-67226955860503574922011-03-01T23:25:00.000-08:002011-03-01T23:28:02.565-08:00HP LK464 XModmap OpenVMS Keyboard Map for Ubuntu LinuxSave the following entries to a file, for example .xmodmap-lk464, then run<br /><br />$ xmodmap .xmodmap-lk464<br /><br />File contents:<br /><br />keycode 9=grave asciitilde<br />keycode 49 = less greater<br />keycode 199 = KP_F1<br />keycode 200 = KP_F2<br />keycode 201 = KP_F3<br />keycode 202 = KP_F4<br />keycode 110 = Find<br />keycode 115 = Select<br />keycode 191 = F13<br />keycode 192 = F14<br />keycode 142 = F16<br />keycode 195 = F17<br />keycode 196 = F18<br />keycode 197 = F19<br />keycode 198 = F20<br />keycode 108 = Alt_R<br />keycode 90 = KP_0<br />keycode 87 = KP_1<br />keycode 88 = KP_2<br />keycode 89 = KP_3<br />keycode 83 = KP_4<br />keycode 84 = KP_5<br />keycode 85 = KP_6<br />keycode 79 = KP_7<br />keycode 80 = KP_8<br />keycode 81 = KP_9<br />keycode 91 = KP_Decimal<br />keycode 129 = KP_Separator<br />keycode 22 = Delete<br />keycode 119 = 0x1000FF00Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-22818188125233267662010-08-13T15:02:00.001-07:002010-08-13T15:19:12.908-07:00Successful install of OpenBSD 4.7 on a SPARCbook 3Here is the proof:<br /><pre><br />ZS is initialized <br />OBP CRC check: OK <br />Clearing TLB Entries <br />Initializing Tsunami Cache <br />Probing for RAM @ 0x06000000 <br />Probing for RAM @ 0x04000000 <br />Probing for RAM @ 0x02000000 <br />Top RAM bank @ 0x02000000 <br />Available Memory 0x04000000 <br />Context Table allocated, Available Memory 0x03ffc000 <br />RAMsize allocated, Available Memory 0x03fec000 <br />Level 1 Table allocated, Available Memory 0x03febc00 <br />Mapping RAM @ 0xffef0000 <br />RAMbase --> RAMsize mapped, Available Memory 0x03feba00 <br />Mapping ROM @ 0xffd00000 <br />ROMbase --> ROMsize mapped, Available Memory 0x03feb800 <br />Mapping ROM @ 0x00000000 <br />0 --> ROMsize mapped, Available Memory 0x03feb500 <br />Available Memory 0x03feb000 <br /> <br />ttya initialized <br />Probing Memory Bank #0 32 Megabytes <br />Probing Memory Bank #1 32 Megabytes <br />Probing Memory Bank #2 Nothing there <br />Probing Memory Bank #3 Nothing there <br />Incorrect configuration checksum; <br />Setting NVRAM parameters to default values. <br />Setting diag-switch? NVRAM parameter to true <br />Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 p9000 <br />Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 espdma esp sd st SUNW,bpp led <br />Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 ts102 <br />Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 SUNW,DBRIs3 <br />Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there <br /> <br />ZS is initialized <br />OBP CRC check: OK <br />Clearing TLB Entries <br />Initializing Tsunami Cache <br />Probing for RAM @ 0x06000000 <br />Probing for RAM @ 0x04000000 <br />Probing for RAM @ 0x02000000 <br />Top RAM bank @ 0x02000000 <br />Available Memory 0x04000000 <br />Context Table allocated, Available Memory 0x03ffc000 <br />RAMsize allocated, Available Memory 0x03fec000 <br />Level 1 Table allocated, Available Memory 0x03febc00 <br />Mapping RAM @ 0xffef0000 <br />RAMbase --> RAMsize mapped, Available Memory 0x03feba00 <br />Mapping ROM @ 0xffd00000 <br />ROMbase --> ROMsize mapped, Available Memory 0x03feb800 <br />Mapping ROM @ 0x00000000 <br />0 --> ROMsize mapped, Available Memory 0x03feb500 <br />Available Memory 0x03feb000 <br /> <br />ttya initialized <br />Probing Memory Bank #0 32 Megabytes <br />Probing Memory Bank #1 32 Megabytes <br />Probing Memory Bank #2 Nothing there <br />Probing Memory Bank #3 Nothing there <br />Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 p9000 <br />Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 espdma esp sd st SUNW,bpp led <br />Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 ts102 <br />Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 SUNW,DBRIs3 <br />Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there <br />Tadpole S3 SPARCbook, Keyboard Present <br />ROM Rev. 2.9 V1.00 <br />64 MB memory installed, Serial #10690881. <br />Ethernet address 0:0:83:a3:21:41, Host ID: 80a32141. <br /> <br />Spinning discs down .. done <br />Boot device: /iommu/sbus/ledma@4,8400010/le@4,8c00000 File and args: <br />Automatic network cable selection succeeded : Using AUI Ethernet Interface <br /> <br />Type help for more information <br />ok boot /iommu/sbus/espdma@4,8400000/esp/sd@5,0 bsd <br />Boot device: /iommu/sbus/espdma@4,8400000/esp/sd@5,0 File and args: bsd <br />>> OpenBSD BOOT 2.3 <br />Booting bsd @ 0x4000 <br />3145804+437948 [52+149536+131969] <br />[ using 281932 bytes of bsd ELF symbol table ] <br />console is ttya <br />Copyright (c) 1982, 1986, 1989, 1991, 1993 <br /> The Regents of the University of California. All rights reserved. <br />Copyright (c) 1995-2010 OpenBSD. All rights reserved. http://www.OpenBSD.org <br /> <br />OpenBSD 4.7 (GENERIC) #152: Fri Mar 19 02:33:48 MDT 2010 <br /> deraadt@sparc.openbsd.org:/usr/src/sys/arch/sparc/compile/GENERIC <br />real mem = 66699264 (63MB) <br />avail mem = 59355136 (56MB) <br />mainbus0 at root: Tadpole_S3 <br />cpu0 at mainbus0: TMS390S10 @ 50 MHz, on-chip FPU <br />cpu0: physical 4K instruction (32 b/l), 2K data (16 b/l) cache enabled <br />obio0 at mainbus0 <br />clock0 at obio0 addr 0x71200000: mk48t08 (eeprom) <br />timer0 at obio0 addr 0x71d00000 delay constant 23 <br />zs0 at obio0 addr 0x71100000 pri 12, softpri 6 <br />zstty0 at zs0 channel 0: console <br />zstty1 at zs0 channel 1 <br />zs1 at obio0 addr 0x71000000 pri 12, softpri 6 <br />zskbd0 at zs1 channel 0: keyboard, type 5, layout 0x2e <br />wskbd0 at zskbd0 mux 1 <br />zsms0 at zs1 channel 1 <br />wsmouse0 at zsms0 mux 0 <br />slavioconfig at obio0 addr 0x71800000 not configured <br />auxreg0 at obio0 addr 0x71900000 <br />auxreg1 at obio0 addr 0x71910000 <br />tctrl0 at obio0 addr 0x42000020 pri 11 <br />tctrl0: main power available, lid down <br />clk-ctrl at obio0 addr 0x713c0000 not configured <br />btcham0 at obio0 addr 0x71380000: id 0x3a, revision 0xa0 <br />com0 at obio0 addr 0x713a0000 pri 13: ns16550a, 16 byte fifo <br />com0: probed fifo depth: 0 bytes <br />iommu0 at mainbus0 addr 0x10000000: version 0x1/0x4, page-size 4096, range 64MB <br />sbus0 at iommu0: clock = 25 MHz <br />"p9000" at sbus0 class display slot 0 offset 0x100000 not configured <br />dma0 at sbus0 slot 4 offset 0x8400000: rev 2 <br />esp0 at dma0 offset 0x8800000 pri 4: ESP200, 40MHz <br />scsibus0 at esp0: 8 targets, initiator 7 <br />probe(esp0:3:0): max sync rate 10.00MB/s <br />sd0 at scsibus0 targ 3 lun 0: <IBM, DVAS-2810, S120> SCSI2 0/direct fixed <br />sd0: drive offline <br />sd1 at scsibus0 targ 5 lun 0: <QUANTUM, FIREBALL_TM3200S, 300X> SCSI2 0/direct d<br />sd1: 3067MB, 512 bytes/sec, 6281856 sec total <br />cd0 at scsibus0 targ 6 lun 0: <PLEXTOR, CD-ROM PX-40TS, 1.12> SCSI2 5/cdrom reme<br />bpp0 at sbus0 slot 4 offset 0xc800000: DMA2 <br />ledma0 at sbus0 slot 4 offset 0x8400010: rev 2 <br />le0 at ledma0 offset 0x8c00000 pri 6: address 00:00:83:a3:21:41 <br />le0: 16 receive buffers, 4 transmit buffers <br />tslot0 at sbus0 slot 1 offset 0x2000000 pri 11: 2 slots <br />pcmcia0 at tslot0 socket 0 <br />pcmcia1 at tslot0 socket 1 <br />"SUNW,DBRIs3" at sbus0 class ISDN slot 2 offset 0x40 not configured <br />vscsi0 at root <br />scsibus1 at vscsi0: 256 targets <br />softraid0 at root <br />bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@4,8400000/esp@4,8800000/sd@50<br />root on sd1a swap on sd1b dump on sd1b <br />WARNING: / was not properly unmounted <br />Automatic boot in progress: starting file system checks. <br />/dev/rsd1a: 2695 files, 32121 used, 810934 free (78 frags, 101357 blocks, 0.0% )<br />/dev/rsd1a: MARKING FILE SYSTEM CLEAN <br />/dev/rsd1e: 9 files, 8 used, 164293 free (21 frags, 20534 blocks, 0.0% fragment)<br />/dev/rsd1e: MARKING FILE SYSTEM CLEAN <br />/dev/rsd1d: 22231 files, 288694 used, 569387 free (1787 frags, 70950 blocks, 0.)<br />/dev/rsd1d: MARKING FILE SYSTEM CLEAN <br />setting tty flags <br />pf enabled <br />starting network <br />starting system logger <br />starting initial daemons: ntpd. <br />savecore: no core dump <br />checking quotas: done. <br />building ps databases: kvm dev. <br />clearing /tmp <br />starting pre-securelevel daemons:. <br />setting kernel security level: kern.securelevel: 0 -> 1 <br />creating runtime link editor directory cache. <br />preserving editor files. <br />ssh-keygen: generating new DSA host key... <br />ssh-keygen: generating new RSA host key... done. <br />ssh-keygen: generating new RSA1 host key... done. <br />starting network daemons: sshd sendmail inetd. <br />starting local daemons:. <br />standard daemons: cron. <br />Thu Dec 31 12:09:33 GMT 1987 <br /> <br />OpenBSD/sparc (tadpole.hecnet.eu) (console) <br /> <br />login: <br /><br /></pre>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-40470583422123175742010-08-05T12:58:00.000-07:002010-08-05T13:13:43.499-07:00Epson Geneva PX-8 Portable Computer Serial RS/232 CableThought it was worth posting this as there doesn't appear to be a reference for how to wire up a serial cable or RS/232 cable for the Epson PX-8 Mini DIN-8 to a PC DB9 female connector.<br /><table border="0"><tbody><tr><th>PX-8</th><th>PC-DB9</th></tr><tr><td>1</td><td>5</td></tr><tr><td>2</td><td>2</td></tr><tr><td>3</td><td>3</td></tr><tr><td>4,5</td><td>1</td></tr><tr><td>6</td><td>4</td></tr><tr><td>7</td><td>6</td></tr><tr><td>8</td><td>7,8</td></tr><br /></tbody><br /></table>If the cable you're using contains a CG/E Common Ground wire you can connect this to the shell of the DB9. It's best to scratch the shell just above the connections then solder the wire directly onto the shell.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-25513607917698299922009-11-21T11:53:00.000-08:002009-11-21T11:55:09.568-08:00DEC Legacy Event, April 17th & 18th 2010, Windermere, UK<p>I am organising a DEC Legacy Event on the 17th & 18th April 2010 in Windermere, UK.</p> <p>The event's purpose is to bring together people with an interest in the company Digital Equipment Corporation and their legacy of hardware, software and ethos. I am hoping to attract people willing to exhibit their DEC computer hardware and software at the event. There will be tables setup around the main hall on which equipment can be presented.</p> <p>Whilst the format for the event is still fluid, I envisage that it will involve a mixture of the following:</p> <ul><li>Walkabout sessions giving the opportunity to talk to owners of DEC hardware and to 'have a play'</li><li>Demonstrations of equipment or software by their owners (languages, applications, games etc)</li><li>Sit down presentations about specific topics of interest</li><li>A programming competition (if there is enough interest)</li><li>Buy & sell hardware, software, relevant items</li><li>Raffle (with suitably themed items) on behalf of the National Museum of Computing</li></ul>For more information please visit the webpage at: <a href="http://declegacy.org.uk/">http://declegacy.org.uk</a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-25536433782419147202009-10-03T14:02:00.000-07:002009-10-03T16:29:43.214-07:00The Home Network<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghoFhr-f2Sfrkrr9qCJAw0-PoORMsSzNGJX2UruCEQBD7IoSUyfcZCP0XtoPTTxpiFv8bd3gYnnzwlgCy5fnEcneiLWjdrI_vLpi5Qa5X08fjDWnEHjwA3XYOItyqZsBxukdAeZk5huTzq/s1600-h/homenet.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 349px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghoFhr-f2Sfrkrr9qCJAw0-PoORMsSzNGJX2UruCEQBD7IoSUyfcZCP0XtoPTTxpiFv8bd3gYnnzwlgCy5fnEcneiLWjdrI_vLpi5Qa5X08fjDWnEHjwA3XYOItyqZsBxukdAeZk5huTzq/s400/homenet.png" alt="" id="BLOGGER_PHOTO_ID_5388519985476338050" border="0" /></a><br /><br />This is when you know it's time to 'consolidate'.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-16285911471145599442009-09-23T11:58:00.000-07:002009-09-23T13:03:01.350-07:00Simple Volume Shadowing of the System Disk under OpenVMSI am not an OpenVMS expert. I had to read the manual a couple of times and consult with the <a href="http://www.hoffmanlabs.com/">Hoff</a> to get the commands sorted to do this, so hopefully it will save you some time.<br /><br />Volume Shadowing on OpenVMS at it's very simplest can be used to provide RAID-1 mirroring using two or more locally attached hard drives. In my case I have a single hard drive (<span style="font-style: italic;">DKA300:</span>) which acts as my system and data disk. I wanted a complete hot mirror of this drive in case of hardware failure. I have used two identical drives to do this.<br /><br />If you are an OpenVMS hobbyist you will have the license required for volume shadowing. You can easily check:<br /><pre class="brush:bash"><br />$ SHOW LICENSE VOLSHAD<br />Active licenses on node ORAC:<br /><br />------- Product ID -------- ---- Rating ----- -- Version --<br />Product Producer Units Avail Activ Version Release Termination<br />VOLSHAD DEC 0 0 100 0.0 (none) 16-OCT-2009<br /></pre><br />You then need to setup the system parameters so that when you reboot OpenVMS your current system disk is included in a shadow set to which another drive (or drives) can then be added. Edit the file <span style="font-weight: bold;">SYS$SYSTEM:MODPARAMS.DAT</span> and add the following lines:<br /><pre class="brush:bash"><br />ALLOCLASS=100<br />SHADOWING=2<br />SHADOW_SYS_DISK=1<br />SHADOW_SYS_UNIT=0<br /></pre><br />A sensible value for <span style="font-weight: bold;">ALLOCLASS</span> is <span style="font-style: italic;">100</span>, but it can be anything from 1 to 255. If you have previously added the box to a cluster this parameter may already be defined. <span style="font-weight: bold;">SHADOWING</span> must be <span style="font-style: italic;">2</span> to enable shadowing. <span style="font-weight: bold;">SHADOW_SYS_DISK</span> must be <span style="font-style: italic;">1</span> to enable shadowing for the system disk, and <span style="font-weight: bold;">SHADOW_SYS_UNIT</span> defines the virtual unit number which is appended to the virtual drive name <span style="font-weight: bold;">DUAx</span>:<br /><br />You then need to run <span style="font-weight: bold;">AUTOGEN</span> to save these parameters. I used the following two commands:<br /><pre class="brush:bash"><br />$ @SYS$UPDATE:AUTOGEN SAVPARAMS GENPARAMS<br />$ @SYS$UPDATE:AUTOGEN GENPARAMS REBOOT<br /></pre><br />The second command may fail on errors, if this is the case and you are happy to proceed add the keyword <span style="font-weight: bold;">FEEDBACK</span> to the end.<br /><br />This will reboot the system and (hopefully) when it's started up you should see the virtual unit when you run the <span style="font-weight: bold;">SHOW DEVICE</span> command:<br /><pre class="brush:bash"><br />$ show dev d<br /><br />Device Device Error Volume Free Trans Mnt<br />Name Status Count Label Blocks Count Cnt<br />DSA0: Mounted 0 OVMSVAXSYS 16637880 337 1<br />$100$DKA200: (ORAC) Online wrtlck 0<br />$100$DKA300: (ORAC) ShadowSetMember 0 (member of DSA0:)<br /></pre><br />To add a new member to the volume set use the <span style="font-weight: bold;">MOUNT</span> command, like this:<br /><br />MOUNT/CONFIRM/SYSTEM <span style="font-style: italic;">DSA0:</span> /SHADOW=(<span style="font-style: italic;">$100$DKA300</span>,<span style="font-style: italic;">$100$DKA400</span>) OVMSVAXSYS<br /><br />This command specifies the existing system disk <span style="font-style: italic;">$100$DKA300</span> and the new disk <span style="font-style: italic;">$100$DKA400</span>. You will need to confirm that you want to overwrite the contents of the new drive. The command initiates a copy of the data on the system disk to the new drive. <span style="font-weight: bold;">SHOW DEVICE</span> will indicate the copy progress:<br /><pre class="brush:bash"><br />$ show dev d<br /><br />Device Device Error Volume Free Trans Mnt<br />Name Status Count Label Blocks Count Cnt<br />DSA0: Mounted 0 OVMSVAXSYS 16637880 337 1<br />$100$DKA200: (ORAC) Online wrtlck 0<br />$100$DKA300: (ORAC) ShadowSetMember 0 (member of DSA0:)<br />$100$DKA400: (ORAC) ShadowCopying 0 (copy trgt DSA0: 43% copied)<br /></pre><br />After the copy is complete the two shadow set members will contain identical data, so that if one of the drives should fail it can be replaced without losing any data.<br /><br />I encourage you to consult the <a href="http://h71000.www7.hp.com/doc/73final/5423/5423pro.html">Volume Shadowing for OpenVMS manual</a> for more information.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-63914826071935795632009-09-06T03:06:00.001-07:002009-09-06T03:31:22.718-07:00VAX APL LK201 KeyboardFrom the <a href="http://www.softwarepreservation.org/projects/apl/book/199106_VAX%20APL%20Users%20Guide_AA-P142E-TE.pdf/view">VAX APL Users Guide</a> page 1-3 comes an image of the LK201-EC variant with APL keycaps:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYzafrJoeF5kE2q_cH0GKspFPh9d1-G2xTKus8RpfQNHcwmLWqFP9fIlv6wxL6c2YBDjQtQHWxDGIRENQCgG6RiL3Kn1IKqX3Tt0n3HPgy0QJvXVf3M_awGRGqx4DtNZzwnbJ1Ub-KBI4B/s1600-h/lk201-ec.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 139px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYzafrJoeF5kE2q_cH0GKspFPh9d1-G2xTKus8RpfQNHcwmLWqFP9fIlv6wxL6c2YBDjQtQHWxDGIRENQCgG6RiL3Kn1IKqX3Tt0n3HPgy0QJvXVf3M_awGRGqx4DtNZzwnbJ1Ub-KBI4B/s400/lk201-ec.jpg" alt="" id="BLOGGER_PHOTO_ID_5378297464317474962" border="0" /></a><br /><br />With this image as a reference I designed a set of replacement keycaps for an existing LK201 using the Open Office Drawing tool (<a href="http://www.wickensonline.co.uk/images/apl-dec-overlay-v6.odg">source file</a>) and the excellent Simpl APL Unicode Font:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQkyZJkO0-LRqUDD3CRP278J0hwJ0MpYTcyOFlRNy5bfMeLIWimFkOaxt-S9NwBNLA4xAj4ZCPFXa60LQCYhg1w-i4GcPmFfPPl1he8VEHnPekNY7pgqoRNdtv1xzhuPF0XYYw8SowWNo2/s1600-h/apl-dec-overlay-v6.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 126px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQkyZJkO0-LRqUDD3CRP278J0hwJ0MpYTcyOFlRNy5bfMeLIWimFkOaxt-S9NwBNLA4xAj4ZCPFXa60LQCYhg1w-i4GcPmFfPPl1he8VEHnPekNY7pgqoRNdtv1xzhuPF0XYYw8SowWNo2/s400/apl-dec-overlay-v6.png" alt="" id="BLOGGER_PHOTO_ID_5378297839420344978" border="0" /></a><br />These were printed out using a laser printer on the self-adhesive transparency paper provided as part of the <a href="http://hooleon.com/miva/merchant.mvc?Screen=PROD&Product_Code=OV-0576&Category_Code=A-KBMYO&Product_Count=2">Hooleon Keyboard Sticker Label Making Kit</a>. These were then cut out using a scalpel and mounted on backing stickers which are opaque. A final top sticker adds a textured finish and protects the printed label.This is the resulting keyboard:<br /><br />Left Hand Side:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqBhw5mKZRKOaI4oAGLQ1oFaAUHkpK59FWevaBWn4XCIlqEBH-8pEdSVuvxPZDR9NhQKu-GnTplhEpGMLIj68t_uTWc04tfvX_IUg2p3jcr2aG0OY3xHcckxSj_AaC0GJc3t9C9yauGfI9/s1600-h/vax-lk201-apl-lhs.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqBhw5mKZRKOaI4oAGLQ1oFaAUHkpK59FWevaBWn4XCIlqEBH-8pEdSVuvxPZDR9NhQKu-GnTplhEpGMLIj68t_uTWc04tfvX_IUg2p3jcr2aG0OY3xHcckxSj_AaC0GJc3t9C9yauGfI9/s400/vax-lk201-apl-lhs.jpg" alt="" id="BLOGGER_PHOTO_ID_5378298512848533794" border="0" /></a><br />Right Hand Side:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS4yql4ockhfxKNH4BjctPkicfiK9_vSzAIQHp7wuPdxVMrPpv-qtwTZ3YesUCi3qo_G2mGVRiRgAQadS1gNgiGiXs715wGOvnCdx66ddxspEERDs56Z9V4iaH3DPnyusTF9uM-B5mJcxG/s1600-h/vax-lk201-apl-rhs.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS4yql4ockhfxKNH4BjctPkicfiK9_vSzAIQHp7wuPdxVMrPpv-qtwTZ3YesUCi3qo_G2mGVRiRgAQadS1gNgiGiXs715wGOvnCdx66ddxspEERDs56Z9V4iaH3DPnyusTF9uM-B5mJcxG/s400/vax-lk201-apl-rhs.jpg" alt="" id="BLOGGER_PHOTO_ID_5378298655861091490" border="0" /></a><br />I've also uploaded a <a href="http://www.youtube.com/watch?v=zqtWqmEmqEA">short video</a> to YouTube demonstrating how you interact with VAX APL V4.0 using this keyboard together with a VT320 terminal.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-20781163739526670052009-08-12T14:22:00.000-07:002009-09-23T14:02:02.846-07:00Embedding the SimPL APL font on a web page using CufónI came across <a href="http://cufon.shoqolate.com/generate/">Cufón</a> a while ago whilst browsing the excellent <a href="http://net.tutsplus.com/">nettuts+</a> website.<br /><br />Having started coding in <a href="http://en.wikipedia.org/wiki/APL_%28programming_language%29">APL</a> I was wondering about the best way to present developed code on my blog. One option is to use my java transcoding technique to load my <a href="http://www.soliton.com/solutions-linux.html">Soliton Sharp APL</a> code into <a href="http://www.jedit.org">jEdit</a> (my favourite editor) using my <a href="http://www.wickensonline.co.uk/apl-transcoding.html">custom character set transcoder</a> to convert the <a href="http://www.wickensonline.co.uk/apl/aplcharset.png">custom eight-bit ASCII encoding</a> used by Soliton into standard Unicode APL characters.<br /><br />Cufón allows you to embed any arbitrary truetype font or fonts into a webpage via javascript and then use the font directly within the html by replacing a standard html tag. You can either download the utility or use their website to process a truetype font located on your hard disk to generate a javascript file containing your selected truetype glyphs. The generated file in this example is <a href="http://www.wickensonline.co.uk/styles/simpl_400.font.js">simpl_400.font.js</a> (see code below).<br /><br />I chose the excellent free font created by Phil Chasney called <a href="http://www.vector.org.uk/resource/simpl02.zip">SImPL</a> to embed within this blog.<br /><br />The code required within the head tag of this page to embed the font is very simple:<br /><pre><br /> <script src="http://www.wickensonline.co.uk/styles/cufon-yui.js" type="text/javascript"></script><br /> <script src="http://www.wickensonline.co.uk/styles/simpl_400.font.js" type="text/javascript"></script><br /> <script type="text/javascript"><br /> Cufon.replace('h1');<br /> </script><br /></pre><br /><br />The results can be seen with the following APL characters above ASCII location 127 in the SOLITON-APL encoding:<br /><h1><br />¨¯≤≥≠∨×⍪⌹∵⌿<br />⍲¡€£¥¬⍱⌻⍂≡⌷¿<br />⍺⊥∩⌊∊∇∆⍳∘⎕∣⊤○<br />⍴⌈↓∪⍵⊃↑⊂⊢⍀⊣÷<br />⌶⊖⍎⍝⍷⍫⍒⍋⍸⍤⍞⍕⍥<br />⍟⍉⌽⍧←⍙→⋄<br /></h1><br /><br />and an example of some APL code: <br /><h1><br /> ∇mbrt1[⎕]∇<br />[0] z←mbrt1<br />[1] rrz←(0.1×⍳21)−1 ⍝ array from ¯1 to +1 stepsize 0.1<br />[2] iiz←(0.1×⍳21)−1 ⍝ array from ¯1 to +1 stepsize 0.1<br /><br /> <br /> ∇cmplsq[⎕]∇<br />[0] z← cmplsq ⍵<br />[1] <br />[2] ⍝ Function: Complex Square<br />[3] ⍝ Perform a complex square of the argument ⍵, returning array r,i in z<br />[4] <br />[5] r←⍵[0] ⍝ extract real part into r<br />[6] i←⍵[1] ⍝ extract imaginary part into i<br />[7] rn←(r⋆2)−(i⋆2) ⍝ real result<br />[8] in←r×i×2 ⍝ imaginary result<br />[9] z←rn,in ⍝ z is array of real and imaginary results<br /></h1>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com2tag:blogger.com,1999:blog-6222086929913602205.post-15083366412082224442009-08-08T01:26:00.001-07:002009-08-08T01:32:27.641-07:00DIGITAL and Alpha Powered LogosI created a couple of high-resolution logos for <a href="http://www.wickensonline.co.uk/images/declogo-2-red-compressed.png">DIGITAL</a> and <a href="http://www.wickensonline.co.uk/images/alpha-powered-compressed.png">Alpha Powered</a> from existing sources with transparent backgrounds as PNG files that someone might find useful! Below are two scaled images - be sure to use the links above to get the full resolution version.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/images/declogo-2-red-compressed-small.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 95px;" src="http://www.wickensonline.co.uk/images/declogo-2-red-compressed-small.png" alt="" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/images/alpha-powered-compressed-small.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://www.wickensonline.co.uk/images/alpha-powered-compressed-small.png" alt="" border="0" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-17483946753138742092009-08-08T00:48:00.000-07:002009-08-08T01:23:50.439-07:00Retrochallenge 2009 Summer Challenge EntryI participate in <a href="http://retrochallenge.net/">retrochallenge</a> - a convenient excuse to utilise retro technology for a month. For the summer 2009 challenge I coded up a fractal generator in <a href="http://en.wikipedia.org/wiki/VAX_Macro">VAX Macro-32</a>. You can check out the challenge blog at <a href="http://www.wickensonline.co.uk/rc2009sc">http://www.wickensonline.co.uk/rc2009sc</a>. I produce this blog on my main website because it is created using <a href="http://www.wickensonline.co.uk/retro/allin1.html">ALLIN1</a> on the VAX by a set of scripts I created for my <a href="http://www.wickensonline.co.uk/retro">winter warmup 2009 entry</a>.<br /><br />One of the <a href="http://www.wickensonline.co.uk/rc2009sc/images-2.html">images </a>I produced has been used by the competition organiser for the winners mousemat. It can also be ordered in t-shirt format from <a href="http://www.cafepress.co.uk/Retrochallenge">cafepress</a>.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVFur_tS_KKjy-yTQ5Dipu-AMLgJg-X5dD5o8oZDLOjJC5hUZIsqArHWhfCLrqHyaiSxQQhnwh_GAFfIURu5Nq5c_DjUILU33TdSbYGrXJXWNtrwkgbTGMWfn2ReOQhMg_wIdzqm4RniMX/s1600-h/retrochallenge-mouse-mat.jpeg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVFur_tS_KKjy-yTQ5Dipu-AMLgJg-X5dD5o8oZDLOjJC5hUZIsqArHWhfCLrqHyaiSxQQhnwh_GAFfIURu5Nq5c_DjUILU33TdSbYGrXJXWNtrwkgbTGMWfn2ReOQhMg_wIdzqm4RniMX/s400/retrochallenge-mouse-mat.jpeg" alt="" id="BLOGGER_PHOTO_ID_5367499295125135858" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/images/mbrt1c-small.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://www.wickensonline.co.uk/images/mbrt1c-small.jpg" alt="" border="0" /></a><br />The above image is also available at <a href="http://www.wickensonline.co.uk/images/mbrt1c.jpg">4800x4800 resolution</a>, which shows the recursive nature of the image much more clearly.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-34302808157221108142009-08-07T23:50:00.001-07:002009-08-10T01:49:20.105-07:00Transcoding AVCHD into DVD and Web Formats using the Command Line under LinuxI needed a way of transcoding output from my <a href="http://www.panasonic.co.uk/html/en_GB/Products/Camcorders/HD+Camcorders/HDC-HS300/Overview/1972809/index.html">Panasonic HDC-HS300</a> into a DVD and web viewable format under linux. There are webpages out there that tell you how to do it, but I had to edit some of the scripts to perform this task automatically from the command line.<br /><br />I've created two scripts, <span style="font-family:courier new;">convert-mts-dvd.sh</span> and <span style="font-family:courier new;">convert-mts-web.sh</span> which can be downloaded in the archive <a href="http://www.wickensonline.co.uk/convert-mts.tgz"><span style="font-family:courier new;">convert-mts.tgz</span></a>. The scripts unpack into a <span style="font-family:courier new;">bin </span>directory.<br /><br />In order to use the scripts you need to ensure you have the latest version of mplayer installed. My version reports:<br /><br /><span style="font-family:courier new;">MPlayer SVN-r29328-4.3 (C) 2000-2009 MPlayer Team</span><br /><br />so I would suggest this version or later. The packaged version in the OpenSUSE 11.0 repository is not recent enough - I downloaded the latest source code using subversion and built it locally. The following commands download the latest version, configure and build it to <span style="font-family:courier new;">/usr/local</span>. The mplayer binary can then be found under <span style="font-family:courier new;">/usr/local/bin</span> so the last command ensures that you pick that version up in preference to a pre-packaged version that might be installed under <span style="font-family:courier new;">/usr/bin</span> for example.<br /><pre class="brush: bash"><br />svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer<br />cd mplayer<br />svn update<br />./configure --prefix=/usr/local/<br />make install<br />export PATH=/usr/local/bin:$PATH<br /></pre>The <span style="font-family:courier new;">convert-mts-dvd.sh</span> script is used to convert your HD video into DVD quality, suitable for directly burning to a DVD (for example using my command line tools described in a previous blog post). It contains the following commands:<br /><pre class="brush: bash">rm -rf dvd/*<br />mkdir dvd<br />for f in *.mts<br />do<br />echo $f<br />mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,hh<br />arddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=55<br />000:keyint=15:aspect=16/9:threads=4 $f -ofps 25 -fps 50 -o dvd/`basename $f .mts<br />`.mpg -demuxer lavf >>`basename $f .mts`.log 2>&1 &<br />done<br />wait<br /></pre>Once you have this command on your path, cd to a directory containing the files you wish to convert (which have the extension <span style="font-family:courier new;">.mts</span>) and run the command. Note that with the Panasonic Camcorder you can copy the files directly off the camera - you don't need to use the Windows utility provided. It will create a sub-directory called <span style="font-family:courier new;">dvd</span> and proceed to convert all the <span style="font-family:courier new;">.mts</span> files into DVD format. It creates a log file for each of the converted files giving any output or error messages.<br /><br />Note the ampersand on the end and the wait command - this script is multi-threaded and will utilise all cores on a mult-core processor. I did some experimentation with versions of this script and found that on a machine with a decent amount of memory the most efficient way of transcoding the videos was to spawn off all the transcode commands at the same time, even when transcoding several tens of mpeg. On my quad-core machine this command completes the process almost exactly four times quicker than processing the command sequentially.<br /><br />The only disadvantage of spawning all the transcodes at once is that you might impact other processes on the box (I noticed that video streaming would be interrupted for example). You could always use the <span style="font-family:courier new;">nice</span> command infront of the call to <span style="font-family:courier new;">mencoder</span> to run it at a lower priority, giving preference to existing tasks.<br /><br />The <span style="font-family:courier new;">convert-mts-web.sh</span> provides the appropriate command line arguments for generating a video size 360x288 - it creates a directory called <span style="font-family:courier new;">web</span> <span style="font-family:courier new;"></span>and places the transcoded video files there.<br /><pre class="brush:bash"><br />rm -rf web/*<br />mkdir web<br />for f in *.mts<br />do<br />echo $f<br />mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=360:288,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=1250:vbitrate=625:keyint=15:aspect=16/9:threads=4 $f -ofps 25 -fps 50 -o web/`basename $f .mts`.mpg -demuxer lavf >>`basename $f .mts`.log 2>&1 &<br />done<br />wait<br /></pre>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-91442124494000748342009-08-07T23:25:00.000-07:002009-08-10T01:47:47.874-07:00Automatic Video DVD Creation under Linux using command line toolsDoing DVD creation properly is a pain. Firstly, you have to master a GUI creation tool. Secondly, every DVD you create seems to involve too much manual work. Wouldn't it be nice if you could just throw a load of mpeg files into a directory and run a couple of commands.<br /><br />I couldn't find anything out there to fit the bill, so I rolled my own. You can download everything you need in <a style="font-family: courier new;" href="http://www.wickensonline.co.uk/dvd-create.tgz">dvd-create.tgz</a><br /><br />The prerequisites are the <span style="font-family:courier new;">dvdauthor,</span> <span style="font-family:courier new;">cdrtools </span>and <span style="font-family:courier new;">MPlayer</span> packages. Use your linux distros' package manager to ensure they are installed and up-to-date.<br /><br />Unpacking <span style="font-family:courier new;">dvd-create.tgz</span> gives you a directory <span style="font-family:courier new;">dvd-create</span>. Within the directory are three main control scripts: <span style="font-family:courier new;">create.sh</span>, <span style="font-family:courier new;">burn.sh</span> and <span style="font-family:courier new;">play.sh</span>.<br /><br />Start by copying the mpeg files you want on your DVD into the <span style="font-family:courier new;">dvd-create</span> directory. The files will appear on the DVD in alphabetical order, so if required rename (or numerically prefix) them so that the directory listing shows them in the correct order. Then use the <span style="font-family:courier new;">create.sh</span> script to process the mpeg files, generate a <span style="font-family:courier new;">dvd.xml</span> control script for <span style="font-family:courier new;">dvdauthor </span>then run <span style="font-family:courier new;">dvdauthor </span>to create the DVD structure within the subdirectory <span style="font-family:courier new;">dvd</span>.<br /><pre class="brush: bash"><br />#!/bin/bash<br />rm -f dvd.xml dvd-body.xml<br />chapter=$(( 0 ))<br />for f in *.mpg<br />do<br />echo " <vob file="\"$f\"" chapters="\"$chapter,0\"/">" >> dvd-body.xml<br />chapter=$(( $chapter+1 ))<br />done<br />cat dvd-head.xml dvd-body.xml dvd-foot.xml > dvd.xml<br />dvdauthor -o dvd -x dvd.xml<br /></vob></pre>The second step is to burn the generated DVD structure to a DVD using the <span style="font-family:courier new;">burn.sh</span> script. If you dvd device is not located at <span style="font-family:courier new;">/dev/cdrom</span> you will need to edit the script to use the appropriate device.<br /><pre class="brush: bash"><br />#!/bin/bash<br />growisofs -dvd-compat -Z /dev/cdrom -dvd-video ./dvd/<br /></pre><br />The last step is to test the DVD you've just created using the play script, <span style="font-family:courier new;">play.sh</span>. This fires up the <span style="font-family:courier new;">mplayer </span>media player to view the contents of the freshly created DVD.<br /><pre class="brush: bash"><br />#!/bin/bash<br />mplayer dvd:// -dvd-device ./dvd<br /></pre><br />How quick was that!Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-31689612069798638292009-08-07T13:34:00.000-07:002009-08-07T23:06:51.852-07:00Monitor your ADSL Connection for Outages & UptimeI had the misfortune of choosing demon as my ISP and for the first couple of months managed to exceed my fair use policy and experience extended outages. In an effort to document my issues I wrote a couple of scripts on a NetBSD box that monitor the connection and automatically create a graph using gnuplot of the uptime. <br /><br />The scripts are driven by a crontab script:<br /><pre class="brush:bash"><br /> $ crontab -l<br /> SHELL=/bin/sh<br /> MAILTO=msw<br /> @hourly /home/msw/router/getstats<br /> 5,10,15,20,25,30,35,40,45,50,55 * * * * /home/msw/router/ping-internet.sh<br /> 5,10,15,20,25,30,35,40,45,50,55 * * * * /home/msw/router/plot-stats.sh<br /> 0,15,30,45 * * * * /home/msw/router/upload-stats.sh<br /></pre><br />Every five minutes the <b>ping-internet.sh</b> script attempts to ping one of the demon nameservers using its' IP address:<br /><pre class="brush:bash"><br /> #!/usr/pkg/bin/bash<br /> LOGFILE=/home/msw/router/ping-stats.txt<br /> TIME="`date +%C%y%m%d%H%M`"<br /> /sbin/ping -c 1 158.152.1.58 > /dev/null 2>&1<br /> if [ "$?" == "0" ]<br /> then<br /> STATUS=1<br /> else<br /> STATUS=0<br /> fi<br /> echo "$TIME $STATUS" >> $LOGFILE<br /></pre><br />This generates a line in the LOGFILE which looks like this:<br /><pre class="brush:bash"><br /> 200907091945 1<br /> 200907091950 1<br /> 200907091955 1<br /> 200907092005 1<br /> 200907092010 1<br /> 200907092015 1<br /> 200907092020 1<br /> 200907092025 1<br /> 200907092030 1<br /> 200907092035 1<br /></pre><br />where the first number is the date and time and the second number is a '1' if the ping was successful, or a '0' if it was not.<br /><br />The <b>plot-stats.sh</b> script turns these numbers into a nice graph with the help of GnuPlot then puts the resulting jpeg onto the local apache webserver:<br /><pre class="brush:bash"><br /> #!/usr/pkg/bin/bash<br /> sleep 30<br /> export PATH=/bin:/sbin:/usr/pkg/bin<br /> export RS=/home/msw/router<br /> export HTDOCS=/usr/pkg/share/httpd/htdocs<br /> export STATS_FILE=$RS/ping-stats.txt<br /> export JPG_FILE=ping-stats.jpg<br /> export SHARE_DIR=/usr/local/archive<br /> export HTTPD_DIR=/usr/pkg/share/httpd/htdocs<br /> cp $STATS_FILE $RS/ping-stats-copy.txt<br /> gnuplot $RS/plot-stats.gnuplot > $SHARE_DIR/$JPG_FILE<br /> cp $SHARE_DIR/$JPG_FILE $HTTPD_DIR<br /></pre><br />The gnuplot script <b>plot-stats.gnuplot</b> that works the magic:<br /><pre class="brush:bash"><br /> set terminal jpeg large size 1024, 600<br /> #set terminal dumb<br /> set title "Demon Internet HomeOffice 8000, hostname: waldo"<br /> set lmargin 10<br /> set rmargin 10<br /> set tmargin 5<br /> set bmargin 8<br /> set xdata time<br /> set format x "%d/%m"<br /> set xlabel "Date, 2009" offset 0,-2<br /> set ylabel "ADSL Status"<br /> set yrange [-1:2]<br /> set ytics 0,1,1 ("Off" 0, "On" 1)<br /> set mxtics 6<br /> set timefmt "%Y%m%d%H%M%S"<br /> plot "/home/msw/router/ping-stats-copy.txt" using 1:2 with lines title<br /> "Status at `date`"<br /> #set title "ADSL status" offset 0,-10<br /> # - generated on %Y%m%d %H%M"<br /> show title<br /></pre><br />Then once every 1/4 hour the <b>upload-stats.sh</b> script pushes the stats up to my remote web host (assuming the connection is up of course!)<br /><pre class="brush:bash"><br /> #!/usr/pkg/bin/bash<br /> cp /usr/local/archive/ping-stats.jpg /tmp<br /> cd /tmp<br /> ftp ftp://username:password@ftp.wickensonline.co.uk <<-END_OF_INPUT<br /> bin<br /> cd public_html<br /> put ping-stats.jpg<br /> dir<br /> bye<br /> END_OF_INPUT<br /></pre><br />The end result being this lovely image:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/ping-stats.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 1024px; height: 600px;" src="http://www.wickensonline.co.uk/ping-stats.jpg" border="0" alt="" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com2tag:blogger.com,1999:blog-6222086929913602205.post-31885520646104223362009-08-07T12:21:00.000-07:002009-08-07T14:09:09.808-07:00Java/Swing Mirrorbow Remote Control ProgramI wrote an application a while ago that I thought would be worth sharing with the world - it's a Java/Swing Application to drive a <br /><a href="http://www.mirrorbow.com/catalog/product_info.php?cPath=1&products_id=41">Mirrorbow Ethernet IO Interface</a>. I use the interface to control the power to a number of computers and peripherals in my attic, both to make remote operation possible and also to physically isolate them from the mains supply when not in use. I noted a while back that the VAX and Alpha both drew significant power from the mains even when the power supply switch was turned off.<br /><br />The application looks like this when running:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQRQ1Yeh97Di5-jm7gZmAmTOEnYlyAxuhTYuZQVY8slUE-AU1ctDru4qdNfd7enLw7ENuImacMAT8eceQbVUduF57OfXYiOo2LKE6KOgwiXejN9hV6tsHe2XI45u1PDU1ElsjBZ0GDEKL/s1600-h/mirrorbow-java-app.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 289px; height: 191px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQRQ1Yeh97Di5-jm7gZmAmTOEnYlyAxuhTYuZQVY8slUE-AU1ctDru4qdNfd7enLw7ENuImacMAT8eceQbVUduF57OfXYiOo2LKE6KOgwiXejN9hV6tsHe2XI45u1PDU1ElsjBZ0GDEKL/s400/mirrorbow-java-app.png" alt="" id="BLOGGER_PHOTO_ID_5367305413425093922" border="0" /></a><br />You simply click on the button to toggle the power. The application mirrors the information displayed in this Swing panel on the built in LCD display of the mirrorbow:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-RyPVTBZ9bDI9phFQIl_SAttFrGGytobmwPD0rm1_NhLhNhOKXJ5kCz6nfoUu2C_Fnnde7ROcC_73TaKTlipz0-0QpFaxiM3iHPrpYcSSQbLwQZzJFlIkTqebNAggABH4tQGLYtdcHmyQ/s1600-h/mirrorbow-display.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 178px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-RyPVTBZ9bDI9phFQIl_SAttFrGGytobmwPD0rm1_NhLhNhOKXJ5kCz6nfoUu2C_Fnnde7ROcC_73TaKTlipz0-0QpFaxiM3iHPrpYcSSQbLwQZzJFlIkTqebNAggABH4tQGLYtdcHmyQ/s400/mirrorbow-display.jpg" alt="" id="BLOGGER_PHOTO_ID_5367306418942820514" border="0" /></a><br />The application is configured using an XML file:<br /><pre class="brush: xml"><br /><?xml version="1.0" encoding="UTF-8" standalone="yes"?><br /><controller><br /> <name>mirrorbow</name><br /> <address>192.168.1.199</address><br /> <port><br /> <number>4</number><br /> <pin><br /> <number>1</number><br /> <equipment><br /> <name>DS10L</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>2</number><br /> <equipment><br /> <name>DEC3K600</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>3</number><br /> <equipment><br /> <name>VAX4K90</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>4</number><br /> <equipment><br /> <name>VAX4K60</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>5</number><br /> <equipment><br /> <name>EXTSCSI</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>6</number><br /> <equipment><br /> <name>ZX6000</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>7</number><br /> <equipment><br /> <name>LINUX</name><br /> </equipment><br /> </pin><br /> <pin><br /> <number>8</number><br /> <equipment><br /> <name>ANCIL</name><br /> </equipment><br /> </pin><br /> </port><br /></controller><br /></pre><br />I tried to make the implementation as generic as possible. The source code, compiled classes and Windows/Unix command line scripts can be found in <a href="http://www.wickensonline.co.uk/mirrorbow.zip">mirrorbow.zip</a><br /><br />The unit all this controls was hand built using a equipment box, eight IDC connectors, a relay board bought off ebay, a 12 volt power module extracted from a plug in adapter and a mains lead:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSWKMJB7bHL1jsfF8_YgRLLPJ41auwmqagtCZLik0RbawvwsYwOs_Yjwydklfi9KvZbIgoE2CX0SeVjjul96BCLdmRQz0EOv1bkaHJXU-yLXOFxuobj3arKCUew2prxKMymnVvAoETBe0h/s1600-h/powerunit.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 329px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSWKMJB7bHL1jsfF8_YgRLLPJ41auwmqagtCZLik0RbawvwsYwOs_Yjwydklfi9KvZbIgoE2CX0SeVjjul96BCLdmRQz0EOv1bkaHJXU-yLXOFxuobj3arKCUew2prxKMymnVvAoETBe0h/s400/powerunit.jpg" alt="" id="BLOGGER_PHOTO_ID_5367307652782279938" border="0" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-31070553346606860692009-07-14T12:16:00.000-07:002009-07-14T12:52:28.612-07:00VAX Macro in the 21st CenturyMy good friend and work colleague Andrew Beacock posted a recent blog update <a href="http://blog.andrewbeacock.com/">http://blog.andrewbeacock.com/</a> with some very nice formatted code which turned out to be a Javascript based syntax highlighter by Alex Gorbatchev which you can find at <a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter">http://alexgorbatchev.com/wiki/SyntaxHighlighter</a>. Seeing as how I couldn't sleep after about 5:30 this morning, I thought I'd follow Alex's excellent instructions to create a new syntax highlighter for VAX Macro. I'd previously created a VAX Macro mode for <a href="http://www.jedit.org/">jEdit </a>and it was fairly straightforward to cut and paste the opcodes, macros and operands.<br /><br />The syntax highlighter script file can be found here: <a href="http://www.wickensonline.co.uk/scripts/shBrushVAXMacro32.js">http://www.wickensonline.co.uk/scripts/shBrushVAXMacro32.js</a>. Your source code must have open and close angle brackets converted into their html ampersand escaped equivalents. Just add this to your installation of Syntax Highlighter then you can call upon it to format you code, such as <a href="http://www.wickensonline.co.uk/test-macro32.html">in this example</a>.Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com2tag:blogger.com,1999:blog-6222086929913602205.post-14018934462729469322009-06-26T15:34:00.000-07:002009-06-26T15:42:38.399-07:00OpenVMS distros...<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWZdMeG7zJDta7X7C6uh1FoAJpNneSA5845lxrFrs3ZyYL7NPFcXpw79tNVJCVaoEurKIb-jzzGTdNtxlQvnx4bquJ2OUAP6UtkdiskPFKf4SBWONQTyh0YZgi4naBeKmrCj0wVI_sFCB_/s1600-h/OpenVMS-distros.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 322px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWZdMeG7zJDta7X7C6uh1FoAJpNneSA5845lxrFrs3ZyYL7NPFcXpw79tNVJCVaoEurKIb-jzzGTdNtxlQvnx4bquJ2OUAP6UtkdiskPFKf4SBWONQTyh0YZgi4naBeKmrCj0wVI_sFCB_/s400/OpenVMS-distros.jpg" alt="" id="BLOGGER_PHOTO_ID_5351770251524078354" border="0" /></a><br />I managed to secure a large collection of OpenVMS distribution media from a University Lab who no longer wanted them - a large box arrived with what must have been about 20 boxes of shrink wrapped software - mostly quarterly updates of the Software Product Library, but also including a Compaq branded distribution of OpenVMS itself, and also one branded HP (7.3.2 for VAX and Alpha).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UnunpFrJiX6rlfQxjWMTaUOEzy1YBGquylgUR0yBid0_aaOTDwBlD0U6LfoBIA_L90WmFWOh5f10u2bxBiEb0xLfBpxsGsfXaNodTYrz_-AYWEM3BVUDWgoLSExGyAZ5TL-3FApB4IXi/s1600-h/OpenVMS-CD-Case.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 268px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UnunpFrJiX6rlfQxjWMTaUOEzy1YBGquylgUR0yBid0_aaOTDwBlD0U6LfoBIA_L90WmFWOh5f10u2bxBiEb0xLfBpxsGsfXaNodTYrz_-AYWEM3BVUDWgoLSExGyAZ5TL-3FApB4IXi/s400/OpenVMS-CD-Case.jpg" alt="" id="BLOGGER_PHOTO_ID_5351770246609320674" border="0" /></a>I had sold a few of the SPL packages without really looking in them and the remaining were still shrink wrapped until this evening when curiosity got the better of me. I'm glad I did, as you can see from the pictures the HP and Compaq OpenVMS packages contain a very nice CDROM case. The HP one is branded HP OpenVMS, the Compaq one Compaq OpenVMS.<br /><br />I also had a copy of Netscape Enterprise Server from 1998 that I opened up, and you can see the contents. It was amazing to see so many 'modern' terms described in a product that is now 10 years old, although I can't say I liked the look of server-side Javascript that much! This box contains Windows NT and Unix versions, including Digital Unix 4.x which I happen to have running on my DEC AXP 3000/600. Possibly too much of a coincidence...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5u4116Ap_fRiEYSpbJhnXr9jQ9zxrXyEvDYihGIdDAgfbj1bLNJaCxwza-xhUHxpUeQ6BYV-3sgp7t0JUX190I0m4YJUinX8_ea4hYpixjbPm6mUPclT4g0ZBDKN9vIsAG7GuxY3Om0_V/s1600-h/Netscape-ES.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 323px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5u4116Ap_fRiEYSpbJhnXr9jQ9zxrXyEvDYihGIdDAgfbj1bLNJaCxwza-xhUHxpUeQ6BYV-3sgp7t0JUX190I0m4YJUinX8_ea4hYpixjbPm6mUPclT4g0ZBDKN9vIsAG7GuxY3Om0_V/s400/Netscape-ES.jpg" alt="" id="BLOGGER_PHOTO_ID_5351770255593923650" border="0" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com2tag:blogger.com,1999:blog-6222086929913602205.post-79803563303820525962009-04-29T12:24:00.001-07:002009-08-08T01:11:50.810-07:00NetBSD, BBS and VAXen...<span style="font-family:verdana;">NetBSD intrigues me. It runs on like a zillion platforms, and has supported VAX hardware for a lot of years. After several failed attempts I finally got my VAXstation 4000/90 to netboot. A triumph of bloody minded configuration. The problem is that the documentation, whilst very good, is out of date and doesn't quite get you far enough. So I thought I'd add my brief information to the mix.<br /><br />First up, if you're serious about making this work then you'll need another platform to run NetBSD on which is easier to install from. For this read: doesn't require netbooting. I had my hand forced by my recent agreement to host the <a href="telnet://bbs.retrochallenge.net">Retrochallenge BBS</a>. The tarball that I was given wouldn't compile up under my SuSE 11 linux box without some serious hacking (within the nitty-gritty of the terminal-based IO code) so I enlisted the help of my aging but still solid Dell Inspiron 7500 laptop as a new host. The choice of the platform was driven by thee criteria: I own it already, it is small and it consumes little power. My wife is a little frazzled with my hardward collection. That covers the first two. Our electricity bill is obscene (but on a par with the neighbours). The Dell laptop consumes 15 watts when idle. I consider this very reasonable given that it will have to be on 24/7.<br /><br />Anyway, the bit I was missing when netbooting the vax was that you need to have a custom DHCP server to tell the target VAX where it can find its' root NFS mount. This means turning off the DHCP server in your router and turning on the dhcp server on a suitable box - in this case my Dell 7500 which now runs all the time.<br /><br />My dhcp.conf file looks like this:<br /><pre class="brush:bash"><br /> # Setting DHCPD global parameters<br /> allow unknown-clients;<br /><br /> ddns-update-style ad-hoc;<br /><br /> # Set parameters for the 192.168.1.0/24 subnet.<br /> subnet 192.168.1.0 netmask 255.255.255.0 {<br /> range 192.168.1.21 192.168.1.70;<br /> default-lease-time 604800;<br /> option subnet-mask 255.255.255.0;<br /> option domain-name-servers 158.152.1.58, 158.152.1.43;<br /> option domain-name "appsoftint.co.uk";<br /> option routers 192.168.1.20;<br /><br /> host aleph {<br /> hardware ethernet 08:00:2b:34:4d:6f;<br /> fixed-address 192.168.1.248;<br /> next-server 192.168.1.252;<br /> option root-path "/export/aleph/root";<br /> }<br /><br /> host mirrorbow {<br /> hardware ethernet 00:04:a3:00:00:00;<br /> fixed-address 192.168.1.199;<br /> }<br /><br /> host netfs1020d {<br /> hardware ethernet 00:c0:ee:d5:6c:ae;<br /> fixed-address 192.168.1.198;<br /> }<br /><br /> host xpsgen2 {<br /> hardware ethernet 00:12:3F:D1:CA:46;<br /> fixed-address 192.168.1.42;<br /> }<br /> }<br /></pre><br />The host entry <b>aleph</b> is the VAX. The name aleph comes from a VAX connected to a cluster I worked with when I worked for <a href="http://www.cyberscience.com/">Cyberscience Corporation</a> between 1991 and 1993. I'm sure a wikipedia search will throw some light (well I thought this, but maybe not. The name aleph comes from a computer featured in the classic/cult TV show <a href="http://en.wikipedia.org/wiki/Blakes_seven">Blakes-7</a>. There were three nodes in the cluster named after computers in Blakes-7: orac, aleph & zen). Host mirrorbow is documented in my other post about the Java/Swing controller app I use, netfs1020d is my Kyocera FS-1020D connected to the network and xpsgen2 is the Dell laptop I'm using right now.<br /><br />I mention all this because it took several aborted attempts at net installing NetBSD on a VAX before I hit this piece of knowledge (a quick email exchange which, by its' very nature might not have happened).<br /></span>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-43981061133017345542009-02-26T06:46:00.000-08:002009-02-26T07:22:28.551-08:00Sun Java SE JRE/JDK 1.6.0 Update 12 Available for Itanium (IA64)Sun have just released Update 12 of the 1.6.0 Java SE JRE and JDK for Linux and Windows Itanium (IA64) platforms. <br /><br />The installation packages can be downloaded from the main Update 12 download page <a href="http://java.sun.com/javase/downloads/?intcmp=1281">here</a>.<br /><br />It installs and runs successfully on the Debian 5.0 IA64 port.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/java-160u12.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 665px; height: 204px;" src="http://www.wickensonline.co.uk/java-160u12.png" border="0" alt="" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-52877294766591962652009-02-26T06:39:00.000-08:002009-08-03T04:31:03.269-07:00Netbeans 6.5 on Itanium (IA64) Debian 5.0Netbeans 6.5 installs and runs successfully on a Debian 5.0 Itanium distribution.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/IA64-Netbeans6.5-About.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 561px; height: 583px;" src="http://www.wickensonline.co.uk/IA64-Netbeans6.5-About.png" alt="" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/IA64-NetBeans6.5-1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 384px; height: 307px;" src="http://www.wickensonline.co.uk/IA64-NetBeans6.5-1-small.png" alt="" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/IA64-NetBeans6.5-2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 384px; height: 307px;" src="http://www.wickensonline.co.uk/IA64-NetBeans6.5-2-small.png" alt="" border="0" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com2tag:blogger.com,1999:blog-6222086929913602205.post-27117782736239452812009-02-26T05:50:00.001-08:002009-02-26T12:24:56.912-08:00Debian 5.0 on Itanium IA64<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.debian.org/Pics/lennybanner_indexed.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 310px;" src="http://www.debian.org/Pics/lennybanner_indexed.png" alt="" border="0" /></a><br />Debian 5.0 was released on February 14th, 2009. I believe it represents the state-of-the-art linux distribution that supports machines based around the Itanium processor family. Other distros including SuSE, Red Hat and Fedora are at least one major release behind with an IA64 based port.<br /><br />I installed Debian 5.0 on my HP ZX6000 workstation which has two 1.3 GHz Madison-class Itanium 2 processors, an Ultra SCSI 320 storage backbone and 16GB of RAM. The installation was via a DVD image downloaded by Bittorrent (took about 7 hours to download the complete image). The installation was painless, and even initially could be driven via a serial terminal connected to the console port.<br /><br />I have tested the distribution for two days and so far it has been flawless. It works out-of-the-box with both an ATI 7500 PCI video card and the originally supplied ATI Fire GL AGP graphics card.<br /><br />Well done DEBIAN! Please keep up the good work...<br /><br /><span style="font-family:courier new;">msw@zx6000:~$ uname -a</span><br /><span style="font-family:courier new;">Linux zx6000 2.6.26-1-mckinley #1 SMP Sat Jan 10 19:19:15 UTC 2009 ia64 GNU/Linux</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/IA64-Debian-5.0.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 427px; height: 341px;" src="http://www.wickensonline.co.uk/IA64-Debian-5.0-small.png" border="0" alt="" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com2tag:blogger.com,1999:blog-6222086929913602205.post-13600968258709288312009-02-26T05:07:00.000-08:002009-02-26T06:52:41.219-08:00Sun Releases Java 6 JDK on Itanium<span style="font-weight: bold;">25th February 2009</span><br /><br />After an announcement earlier last year that Sun and HP had teamed together to produce a fresh version of the SUN Java JRE & JDK, and a somewhat longer than predicted wait, a version is finally available.<br /><br />The release notes are <a href="http://java.sun.com/javase/6/webnotes/ItaniumReleaseNotes.html">here</a>. It can be downloaded by following the Java 6 Update 11 download <a href="http://java.sun.com/javase/downloads/?intcmp=1281">link</a>.<br /><br />The latest version is Java 6 Update 11, although information on the Sun website indicates that an Update 12 version will be available shortly.<br /><br />I downloaded the JDK and installed it on my recent Debian 5.0 installation, which is running on a HP ZX6000 2 x 1.3 Ghz Madison based box.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/java-version.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 665px; height: 133px;" src="http://www.wickensonline.co.uk/java-version.png" border="0" alt="" /></a><br /><br />The JDK appears to be working correctly, and has been used to run various test programs, culminating in Netbeans 6.5 (see separate post).<br /><br />Well done HP and SUN!Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-78552903339270918062008-12-24T05:53:00.000-08:002009-02-26T07:09:00.456-08:00Retrochallenge 2009 Winter Warmup Entry<span style="font-weight:bold;">I'm participating in the Retrochallenge 2009 Winter Warmup!</span><br /><br />I will be using a VAX 4000/90 as my only computer during January 2009 and am planning on writing a character-cell terminal application. <br /><br />The entry diary: <a href="http://www.wickensonline.co.uk/retro/index.html">http://www.wickensonline.co.uk/retro/index.html</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/retro/images/KEYFRONT-CLOSEUPS.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 640px; height: 175px;" src="http://www.wickensonline.co.uk/retro/images/KEYFRONT-CLOSEUPS.JPG" border="0" alt="" /></a><br /><br />The main Retrochallenge website: <a href="http://retrochallenge.net">http://retrochallenge.net<br /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com0tag:blogger.com,1999:blog-6222086929913602205.post-17328981538833322052008-12-08T07:57:00.000-08:002009-08-12T14:55:24.001-07:00UK DEC Meeting in North West, Autumn 2009 - expression of interest please<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/images/declogo-2-red-compressed-small.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 95px;" src="http://www.wickensonline.co.uk/images/declogo-2-red-compressed-small.png" alt="" border="0" /></a><br /><span style="font-weight: bold;">I'm going to use my blog as a source of news on the UK DEC Meeting I'm trying to get sorted out.<br /></span><br /><br />Well, I've been banding this idea around to a few fellow DECheads in the UK, and thought it was about time I moved on to stage 2.<br /><br />I am thinking about organising a meeting for people interested in the lines of computers created by Digital Equipment Corporation. It is likely that the meeting will be autumn next year, and would be run over a Saturday and Sunday in Windermere, Cumbria, UK.<br /><br />This is in the very early stages of planning, and I'm initially looking to get an idea of numbers who might be interested. This is to ensure that I can organise the event without loss. In terms of numbers I would be looking for between 10 and 20 people to exhibit computers, and then another up to maybe 50 people as non-exhibitors. I'm sure we could get some interesting speakers involved.<br /><br />Cost is likely to be in the order of GBP 10 for the two days, although we can discuss the option of providing catering if there is interest. I would be looking for firm commitment to buy a ticket say 3 months in advance.<br /><br />So in the first instance, could anyone interested email me at: mark at wickensonline dot co dot uk. By emailing you agree for me to keep your email address on file so that I can inform you of any progress.<br /><br />Please feel free to make suggestions either on this blog or direct by email.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wickensonline.co.uk/retro/images/vaxstation.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 716px; height: 168px;" src="http://www.wickensonline.co.uk/retro/images/vaxstation.jpg" alt="" border="0" /></a>Mark Wickenshttp://www.blogger.com/profile/09254729882677406339noreply@blogger.com1