oxborrow.net

Welcome

…to the computerised home of Toby Oxborrow.

New beginning (again)

This is the start of the new oxborrow.net (again)

新しいサイトを始まり(もう一度)

Living in Tokyo, Japan
Is macOS online?

I revisited another previous project, msnciasm. I hadn’t used it in a while and wanted to again, but it threw up a EXC_BAD_ACCESS error.

The eventual fix was trivial (literally one character):

- mov r14d, [eax]
+ mov r14d, [rax]

However, I had not touch this particular project or assembly in so long it was daunting to know where to start. Basically like debugging someone else’s code in a language you don’t read. Fortunately, I had done a lot of reverse engineering binaries for Capture the Flag events, that was helpful to get me stepping through the code to troubleshoot and eventually worked out the fix.

Now I had a new problem, OSX is not a thing anymore, this is macOS. Just enough had changed that the binary wouldn’t build. Getting a working compile probably took longer than the actual fix. But got there in the end.

Updated msnciasm project on GitHub.

New life patterns

I revisited my arduino project that displayed the game of life on an 8x8 display to be slightly more interesting to watch. Since it starts with a random grid, a lot of games end very quickly and so the display is “off” more than I’d like while it pauses between games.

The new version will still use a random grid, but now will also mix in pre-configured grids with known plays. To start off the pre-configured grids I found some well-known stable or interesting patterns. I also poked at the pixels myself to come up with a few custom grids of my own.

Updated gameoflife-arduino project on GitHub.

New Kill Teams

My friendly local game store had an end of year sale and since I’ve done such a good job on my backlog I think it’s okay to pick up a few more future Kill Teams.

  • Grey Knights - Strike Squad
  • Custodian Guard Squad
  • Sisters of Silence
  • Harlequin Troupe

Annoyingly, the harlequins box is not enough models for a full troupe in Kill Team, so I’ve order some 3rd party prints to fill the remaining spots.

The Grey Knights can be Grey Knights, but I was also keen to have some renegade space marines and thought the Grey Knights might suit acting as Relictors. Both are grey and have a thing for demons.

Silver Templars

I had some left over Primaris space marine sprus and decided I’ve got enough blue, time for something different. I flicked through some recent White Dwarf magazines and found a few chapters I’d like to do in the future, but for this batch I settled on Silver Templars.

The paint scheme was simple, easy and looks quite striking. The sculpts are pretty standard with fixed poses. Some of these sprus are handed out for free in stores to get started painting.

One significant change was the sergeant. I gave him a chainsword from my Sterngard Veterans box. The chainsword had a hand already, although it was for a firstborn the size difference isn’t noticeable. Used a staple cut short to help pin the hand to the arm for strength. Also added a little greenstuff at the join, which I drew lines in to look like the undersuit seen at joins to help hide the transition.

With these models completed, I’ve almost finish my backlog, just the box of Sterngard Veterans left.

Freehand fists

I have been putting it off and had left their poudrons bare, but I finally had a go at freehanding the chapter symbol for the Crimson Fists.

I found some guides online and practiced on paper until I found a technique I liked.

Da Red Gobbo and Bounca

As a Christmas treat, I got Da Red Gobbo and Bounca. I don’t collect greenskins, but the limited edition model looked too good to pass up.

I used Dana Howl’s Glazing and Underpainting technique. I like the result, however, though the red coat and Bounca are different they are still perhaps too similar. If I were to make changes, I would probably try and make them more distinct, perhaps a darker red coat and more orange in Bounca.

Infiltrators

Probably the first models I got from Ebay were these infiltrators, but I didn’t paint them up until recently.

As with the other buys from Ebay, they were already posed. They weren’t pre-painted, so no stripping necessary.

I really like how they turned out. One thing I was avoiding which I see a lot is using a leather apperance to the gun holsters and straps. In my head cannon, using such leather wouldn’t be appropriate, it would wear and break too easily. So for all the little pouches etc. I choose to use the crimson red. For the medic, I used white for the device and pouch, but not really happy how that turned out.

Not long after painting them, I got a game in against some Necrons. The Emperor guided their bolters to hit hard and true, but they didn’t do well. Transporting them to/from the game was particularly concerning, their pointy bits snap off easily.

Firstborn Kill Team battle

My freshly painted firstborn Crimson Fists had a game of Kill Team against Primaris Dark Angels. They did okay.

Hero Forge

Recently I used Hero Forge to make a little hero version of me. You can play with the service for free without signing in, which is great for engagement. You are only prompted to login / pay when you want to get a 3D print version.

I let everyone in the family make their own versions of themselves too then ordered the 3D prints. It was quite expensive per model, but it was just a one-off. I’m not planning an army.

The print scale fits a regular human size in Warhammer, so I can pretend to pew pew pew the baddies.

The Hero Forge website lets you set colours, and can print in colour, but I used that just for reference and wanted everyone to paint themselves. Even after printing, the print lines are still visible in places unfortunately, this is my first 3D print so I’ll know to clean up more before painting the next one. For the colour scheme, I made it a little Crimson Fist-like.

Firstborn Crimson Fists

Some firstborn space marines to join my Primaris Crimson Fists. I had start them in March, and finished a few, but only recently got around to finishing them all.

These came from Ebay. The previous owner had probably use plastic cement, melting some of the models around the joins, losing some detail. Like the Primaris, I cut what I could with a hobby saw to adjust poses.

Firstborn have access to more weapons than Primaris, so I used some misc. bits from Ebay, plus a Sterngard Veterans set, to give them a variety of weapons. Since they are shorter than Primaris, I also used tactical rubble to make them a bit taller.

Urban Bases

A little behind-the-scenes of the urban rubble bases for my Crimson Fists.

The kinds of bits I like to use:

  • Network cable coating makes great pipes
  • Network cable twisted pair for cables or smaller metal pipes
  • Cut up paperclips for metal pipes and rebar
  • SIM card / membership card plastic for plate metal
  • Classic cut spru for bricks
  • Cork for broken walls/concrete
  • Zip ties (various sizes)
  • Texture paste, sand, pebbles etc.

Painting is fairly simple: Black undercoat (the cork needs extra as it can soak the paint). Dry brush with various greys and whites. Then some black wash and repeating dry brushing as needed. Metals can have some rust effects with brown washes or rust effect enamals.

Craftworld Iybraesil

I’ve always liked the Eldar and wanted an army of my own. Particularly Craftworlds. If I were ever to get a full army, I think it would be Eldar.

I found a small number of guardians on Ebay to start me off and decided on Craftworld Iybraesil for the colour scheme. They came green, the paintjob was okay, but the poses were really off. I had hoped I could repose them, but I think they used plastic cement glue so I left them as-is.

For the blue, I tried contrast paints initially, then ended on oil paint. It took me way longer than I expected to reach the shade I wanted, and wasted a lot of paint in the process, but once I got there, I could keep a batch for a few days. Hope I can make it again in the future… After that had dry, some blue contrast paint did a great job in the recesses. I also used brown oil paint, thinned down, for recess shading the weapons. Most of the rest is painted with acrylics.

Kill Team and Kill Team 2.0

On Reddit I noticed a photo of a game of warhammer being played in Hong Kong. I never really thought about finding gaming groups to play with before, so reached out to the poster to find out about their gaming group. Through this I got to play some games with local and expat players.

My first game of Kill Team was also my last, as version 2 was released shortly afterwards and I only played 2.0 after that. In my first game, I used my Dark Eldar Wyches and Mandrakes against some demons. It’s the first proper warhammer tabletop game I’ve played in over 20 years.

A month later I played the new Kill Team. My Wyches again (no rules for Mandrakes, so they couldn’t join) against Harlequins.

One of the biggest changes is that the original used points to let you build highly customisable teams, you could bring the units, with the specific loadout you want. While 2.0 limits you to fixed teams with fixed weapons. Another change is not all units are available, such as my Mandrakes which I bought specifically to compliment my Wyches. They are no longer usable. I really liked the list building aspect. But I can understand it has issues: list building takes time, some lists will be highly unbalanced, you need to spend a long time explaining your team to your opponant at the start of a game - what weapons they are carrying etc. Besides the list building, there have been lot of rule changes, a lot of them really help speed up games, especially alternate activation - players take turns playing one unit at a time, instead of the whole team. This reduces the waiting time between turns and makes games more fluid.

Streaking Grime

An example of AK Interactive Streaking Grime in three pictures.

  1. Before
  2. Coated in grime
  3. After

Streaking Grime is an enamel effects paint. The use is simple and the result is amazing, but not like the standard acrylic paints.

  1. Ensure the base layer is dry before proceeding. Then apply the Streaking Grime across the whole miniature, ensure it reaches the deepest, hardest to reach crevices. All your hard work painting will look lost at this point.
  2. Remove the grime from raised areas with mineral spirits, gently using a brush, cotton buds or cloth. The shape of cotton buds means they don’t reach recesses, and can soak up a lot, so great for this task. But the cotton is very abrasive and has a tendency to strip away paint, so be gentle. Using a brush is preferable as it doesn’t seem to strip as much paint.
  3. Compare model with other models to ensure grime consistency.
  4. Allow to dry overnight.
  5. In general there should be no need to apply streaking grime on the base. I’m going for a rubble/dusty look. But could be used on metal parts on the base.

One problem I encountered was that it may desaturate the previous colours. I only noticed this after I had already finished a lot of models and started painting a new batch. There is probably a way to avoid this, maybe waiting longer for the enamel to dry or using less mineral spirits. Since the rest of the models already have this effect, I wanted to maintain it for consistency. And besides, the desaturated Kantor Blue is a good look too. So now I need to force the desaturation effect in some cases. For example when removing enamels more carefully, now the Kantor Blue is still its normal self. Or when touching up with the original colour, those touch ups will look different.

To create a desaturated blue, add orange. So for touch ups I use the following:

  1. Kantor Blue + Vallejo Bright Orange
  2. Add Vallejo Glaze Medium.
  3. Apply enough coats as needed.
  4. Avoid paint seeping into crevices. Use a separate brush, dry, to wick up excess paint.

This is not ideal, it is more steps. So I hope to avoid doing that, but have the technique for when I need it.

Mandrakes

To compliment the Wyches I got some Mandrakes. Their lore is quite interesting and they can teleport onto the board after the first turn, so can add some surprise.

I started painting them, but after watching Dana Howl’s Glazing and Underpainting technique
I decided to have another go using that technique to give them a more natural organic look and think it came out quite well. Especially their Baleblast flame. I will definitely be trying the technique again in the future.

Crimson Fists

Gotta have some space marines. As a kid I had Ultramarines, this time round I thought I’d go for Crimson Fists. My general scheme for them is to look battle ravaged, with urban rubble bases. Streaking Grime is going to be well used.

I got a selection of space marines off Ebay, a mix of firstborn and Primaris. A few were partially painted as Ultramarines, most were just primed blue. Since there wasn’t much paint already, I stripped them with isopropyl alcohol. I cut what I could with a hobby saw to try and improve the poses or swap heads/weapons.

The Primaris sergeant came with a lightning claw, which I love and painted expecting to use it, but thought since these are Crimson Fists a power fist would be more appropriate. Originally the power fist came as part of some Space Wolves bits. I shaved off the Space Wolves designs to make it suitable for other chapters.

Getting back into Warhammer

It’s been a while… Kill Team looks like a great way to get back into the game. Small teams, shorter games. I decided to pick up some Dark Eldar, they hadn’t been introduced when I last played. I had always like Eldar, so thought the Wyches box set would be a good start.

It was probably a mistake to choose a race that is as small. It was very hard to put together and very hard to paint. The colour scheme is okay… but could be better. I didn’t bother with the faces. I’ll probably redo them in the future.

Dotfiles

I’ve created a repository for the minimum dotfiles I would like to use across pretty much any host.

This includes configuration for things like bash, vim, git, fzf, golang, wget, etc.

On any new host, I just need to run:

$ git clone https://github.com/tobyoxborrow/dotfiles ~/.dotfiles/
$ bash ~/.dotfiles/dotfiles.sh

dotfiles project on GitHub.

8x8 game of life

I got an 8x8 display for my Arduino without any plan. After displaying some simple shapes, I remembered my Java-based game of life project from 2006, and had a go at making it run on the 8x8 display.

Due to the limited size the games end very quickly. It will detect when the game has ended (everything dying or no further growth) and will reset after a while, so it will keep itself active.

gameoflife-arduino project on GitHub.

From 000 to ZZZ

So there’s this kids app Shopkins Chef Club that uses barcodes on physical toys (purchased separately) to unlock characters in the app.

I don’t really know the value of unlocking the characters, that is not so important to me. When I saw the functionality I assumed it should be possible to enumerate the code space with some code. This was just for fun to try out some things I’ve not worked with much (barcodes and GUIs).

I found some example barcodes online and scanned them with a barcode scanner app to see what value was stored. After trying a few I noticed they use the format [a-zA-Z0-9]{3}. I guess since they have to print the code on small physical toys they didn’t have the luxury to use longer codes with more possible combinations.

This project displays a window on a computer screen that will show codes one after another, slideshow style. It cycles from 000 to ZZZ.

A separate device is pointed at the computer displaying the codes with the ChefClub app loaded and in its scanning mode.

It is hardly practical since the search space contains over 200,000 codes and the app requires about 1 second to recognise a code. It would take more than two days to verify every code at best. In reality, the process needs to be monitored by someone to stop when a code is valid and start again after clearing the message in the app. Requiring a human operator means it’ll require closer to a week.

chefcodes project on GitHub.

Am I online?

As part of an effort to teach myself assembly, I created a tiny command-line tool that checks if you are online and sets its exit code appropriately. Then this can be called from scripts that want to know.

The program will perform two tests using Microsoft’s NCSI (Network Connectivity Status Indicator) service.

  1. GET request for http://www.msftncsi.com/ncsi.txt
  2. DNS request for dns.msftncsi.com

If the GET request succeeded and the content was correct, it stops there and will exit with 0. If the GET request succeeded, but the content was not correct, it will perform the second test. If the second test succeeds, it will stop there and exit with 1 (to differentiate). Otherwise, it will exit with a non-zero exit status.

The command has no input and provides no output except its exit status. Usage example from a bash script:

if ./msncsi; then
    echo "I'm online :-)"
else
    echo "I'm offline :-("
fi

msnciasm project on GitHub.

Small World

For work I was going linter crazy, adding linters for all the code in a particular project and wondered, is there was a linter for git messages? Very quickly I found gitlint. With this your git messages could be checked and rejected according to your requirements.

However, it didn’t have tests for some issues I was concerned about and I wanted the features! I reached out to the owner Joris and realised we both worked for Cisco. In fact, in the same business unit, though we’d not met or worked together yet. He rightly suggested I create PRs for the changes I want and if they are good enough they’ll get merged. They were and they did.

My PR added three new tests:

  • TitleLeadingWhiteSpace - Leading whitespace in the title.
  • BodyTooShort - Body message doesn’t contain enough detail.
  • BodyMissing - No body message at all.

gitlint project on GitHub.

tea, white, no sugar
Password Generator

I often need new passwords, for employees, services, servers, VPN pre-shared-keys and so on. Each have slightly different requirements. Humans would prefer easy to read/remember/write passwords, while computers can handle longer, less user-friendly passwords. I’ve created a script to generate a whole bunch of passwords in different formats, letting me pick the one that suits my needs.

The script can also use a wordlist to bash words together with some numbers and symbols. Plus just randomly selected words - in case I just want to make a password manually. I use a custom wordlist that has short and very long words removed. As an extra idea, I also filtered out words that matched the LulzSec password list.

$ passwords.pl --all
  jnmq49B9wnsW7Ass  pkF2Evu5chh9wMV4  wjy3Jw8CBzpN4JeT  uVu8Ms6iJbmZzaX4
  wS9hnCbmULJz8aDx  o3YFjWZ7gfaXrgzh  iHCZ2Vt3M2xcsH4A  so9Ndqj7Z5YdgBwh
--------------------------------------------------------------------------
   fNmemuKGBwWxaGqDh3wwaGsJr5fFEaHg    vbsJ9xcQ28yrKsgFdTeWKqb2b8rF4kPb
   sVs3buaTyjV2kZoa9fCzXdeD9n2J7ctQ    xgNg5Q7crqYiPc8LGztrbMp54j5P2aEe
--------------------------------------------------------------------------
  cq4sdiYG7Gs7/a=W  rte887qCiHxawJXr  wDgf3,2nwg/A\NfZ  brs.4D/GtGb,f=bG
  c uWetQ/ap7iWFD4  zqkr\Tj6kxfP86/w  ovE745hdV\xZL;nJ  q=NxSxvqjnvocuP9
--------------------------------------------------------------------------
  n4U.vQz{,8k4joAR  ghuX2sr`|Biv(\iK  yi`YhuokLy#\sJ\m  c+xJd=\Nn9nsBCd,
  q~iVY3oVerKB\xzv  fLzQbd.b`6R8rog8  z87WtMTrsgx%\v2j  hEJPbz-\RfpmdT%v
--------------------------------------------------------------------------
   8c24ef693f06837c11be61062e847668    a6faaf0feb28221d6490f11fc21dd49c
   4f77488566ab78a7cd44c9dd5df5797c    1fe9cd09977163976a2691e7622f41b4
--------------------------------------------------------------------------
     abaser82Backup's        Female5*circuity            Upsets5vim's
    Kimble'sNaiad's5%        RussianInstead32        catchingCrosser7
      antTalmud's263          caughtFoggier8         Jugged89goddess
--------------------------------------------------------------------------
bandiest duffer sunburn pottered Watling fantasy Rent's Fortiori
Planers poorly Glowed Honers mesas moon Irked Thayer's Intrigue
bullock hasp Involves spoons Manley Unisys's Worksop Gregorio Skysails
Celestas SMSA's Sanskrit uncheck docked humorist Mom's Tomlin target
--------------------------------------------------------------------------

PasswordGenerator project on GitHub.

Bolt and A-droid - Always Ready

Cute little cable adaptors from a server.

Macro Rods

I had a go at macro photography, using the trick of reversing the lens on the camera. The heatsinks turned out quite nice. Great for a wallpaper.

Here’s an example of the hardware subject:

Macro album on Flickr

HTTPScan2Ban

My website was getting a lot of probes for vulnerable software.

For example (simplified):

192.0.2.1 [16/Mar/2009:17:31:07 +0000] "GET /wp-login.php"
192.0.2.1 [16/Mar/2009:21:19:32 +0000] "GET /config.php"
192.0.2.1 [16/Mar/2009:09:26:32 +0000] "GET /phpinfo.php"

I don’t have these files or the software they are looking for so there was no risk. But it was starting to clog the logs, especially since I don’t get much traffic these requests take up the vast majority of the logs.

To do something about it I created a new project:

  1. Bot queries known trigger URL (e.g. /wp-login.php)
  2. .htaccess forwards the request to my logging php script
  3. The script logs the client IP and replies HTTP 200 to mess up their scan results
  4. fail2ban reads the log and adds an iptables entry to deny the IP
  5. Bot can no longer make requests to my site

httpscan2ban project on GitHub.

Fireloader

I work with iptables a lot to manage firewall rules. So to help me, I’ve created a script to manage iptables rules - automatically saving and restoring from files. Too many times I’ve lost rules when the server restarted and I forgot to save the rules first. So this script will register as a service and save rules automatically when the system shuts down and load them at boot.

Firewall rules are kept in a separate file, /etc/fireloader.conf in iptables-save format.

Fireloader project on GitHub.

Scuba diving in Bali
Now located somewhere in Hong Kong
Coursework

All of my coursework has been handed in as of yesterday, in total seven pieces. Of those only four have been marked… My best score so far has been 86 for a critical appraisal of another student’s work. The scores I’ve seen haven’t been bad, generating an average of 77.3 (with a standard deviation of 7).

A “first” is awarded to any score over 70. This puts a lot of pressure on me to maintain the level for the remaining presentation and four written exams. While the presentation shouldn’t be that difficult, I’ve never done any written exams since my GCSEs. The prospect is not exactly exciting me.

Simple Solutions

{cycle} tag for the Smarty template system

Allows you to alternate between values. Useful for the common practice of highlighting every other row in data tables. E.g.: <tr class="{cycle values="odd,even"}">

Table row show/hide problem

Cross-browser solution to showing a table row since display: table-row does not appear so well supported.

Networking assignment

Last December I had a networking assignment to design a network for the University campus after it had been acquired by a fictitious company.

I got 72/100 for the assignment, which is a “first”, or distinction.

I’m quite proud of the poster.

I’ve handed in two more assignments recently, I hope to get the marks soon.

Spencer, 1997 - 2007

Gallery: Spencer

Game of Life

During the first weeks of the course when there was plenty of time to spare I made myself a Game of Life in Java out of curiosity.

Amazing features included:

  • Start/stop
  • Random placement
  • Difference display (red shows cells that will die, green, those that will be born)

Source code

いよいよ大学です~

Last week I received an email from the University’s accommodation office saying I could move in early because I start early. This was a great relief as it made things a lot simpler. And so on Saturday I moved in. The place is very nice, only 20 minutes walk from campus and 2 minutes from Waitrose and other shops. I also have the biggest room! However, I am all alone in the house for this week. I know one other housemate will move in next week, I assume the others will too. Unfortunatly, the accommodation office won’t let me have the ADSL modem until the other students arrive, so I’m having to resort to use the computers on campus, which is quite awkward.

The first day of class was fairly straight forward until we were given a report to read and asked to do a presentation on it the next day. And today, the second day, we got another next day homework to do. The rest of the week seems quite quiet fortunatly.

先週メールを大学からもらった。コースが早く始めるから家に早く引っ越しても良いと書いてあった。うれしかった。前の土曜日で引っ越した。家は大学から歩いて20分くらい。スーパーから2分くらい。とても便利だね。その上、僕の部屋が家で一番でかい \^。^/ しかし、僕はこの一週間一人で住んでいる。別のハウスメートは来週で引っ越す予定と言った。インタネットは今家で使えない、別のハウスメートがいないせい。ー。ー;;

最初の日でも宿題もらった。それは文書を読んで次の日にプレゼンを作ること。今日も宿題をもらった。大変だよ~

頑張るぞ!

Toby's Huffman Compression

プログラミングについてから翻訳したくなくてごめん。

As I’m sure no one has noticed, recently a lot of C++ programming guides and articles have made their way into my del.icio.us bookmarks. My University’s bridging course’s algorithm project made itself the perfect cause to pick up a new language.

After various unfocused dabbling, I sat down to something more adventurous. So for my big first adventure, I choose to write an implementation Huffman’s Compression. I had just made my first binary trees and wanted something useful to do with one. Soon I found a descriptive article on the algorithm (with pictures!). Actually the pictures really helped, as I didn’t know if I was constructing the tree in a suitable way. One problem I faced was handling all the bits correctly and how to write a suitable header. I toyed with the bitset object, but in the end I wrote a wrapper for the string class to handle a stream of binary data in bit form.

For those interested, the code is available.

I wanted my version to be as much as my own code as possible, so I didn’t consult other people’s while coding. As such my code almost certainly differs from others and would not be compatible either. The only other version I have checked out is a python version. What he does in just 6k blew me away. Scripting languages have a habit of undermining compiled languages like that. However my goliath 160k compiled app (24k of code) out performed his in both speed and compression so in the end I wasn’t too put off. I think his problem with compression was more due to using cPickle to store the header as this makes it quite large.

To store a number, the smallest value C will allow you to write is 1 byte in the form of a char. This was too much for me, so I expanded my bit buffer class to write numbers even smaller! The numbers I wanted to store was the length of the character bit code (as it was variable) before the bit code, so I knew how much to use. The method I ended up using was a tally system, “[multiples-of-5]0[remainder]0”. The ones act as a tally and zero is the terminator. So, 1 would be “010”, 6 would be: “1010”, 22 would be “110110” and so on. This works well at storing small numbers (0 - 25) in less than a byte.

As x86 computers won’t let you write individual bits, you must pad up to the nearest byte. And since my output dealt with bits, it was likely the output would not round exactly to a byte, so I would need to add some empty space to make the computer happy. Other implementations put the padding at the very end. I figured this would require me to know where the body ends and ignore the rest, which might require a byte or two for storing a number. I instead stuck my padding between the header and body. I knew where the header ended as I stored how many letters as the first value. Then if I generate the body early I know it’s length. Adding the two values together I would know how much padding to pad. My method was to use 0s, terminated by a 1. When decoding it ignores the 0s, only waiting until it gets a 1 then passes control to the body decoder. The body decoder can then loop until it runs out of bits, instead of testing for a pseudo EOF. So, padding of 5 bits would be “00001” and 1 would be “1”. Sadly, the worse case is if no padding is needed, in this case a whole byte has to be added to provide padding for the 1 bit.

Encoded structure:

[header][body]
  [header]:
  [letter_count][letters][padding]
    [letters]:
    [letter_in_ascii][bitcode_length][bitcode]

References:

University

I have finished the first three parts of my “bridging course” and now I have two weeks free before the 2nd part of the bridging course begins (18th of September). That will involve me actually attending University. I get to move into my new appartment in the 2nd week of that (from the 25th of September). The actual course starts the following week (2nd of October).

It will be interesting to see how my room will compare to my appartment in Japan. I’m not looking forward to having to share with other people.

I will no doubt use these two weeks to hack at code for various trivial things to improve myself. Hopefully I won’t spend too much time playing games.

大学にはいる前に三つの特別なアサインメントをやらなきゃ。 昨日やり終わってほっとした。二週間後で特別なコースが大学で始まる(9月の18日から)。 9月の25日からアパートに引っ越せる。本物のコースが10月の2日から始まる。

今回のアパートと日本のアパートと比べるのがおもしろそう。 だけど、家を知らない人と暮らすのがちょっといやな気持ちがする。

この次の二週間をなにもないコッドをプログラムして自分のスキルアップしようと思っている。ゲームばかりかなあ。

Wordpress migration and character encoding oddity

This website has a fair bit of Japanese text, it’s not well written and the grammar is appalling (granted, the same can be said for the English) however I like being able to write a little bit of Japanese now and then. Recently the website changed servers and doing so caused all the Japanese text to be rendered as incomprehensible Latin characters, or as the Japanese would say, mojibake. We are not amused.

For example, the following previous post:

残念ながら、ギネスのビールってベジタリアンじゃないと聞いたんだよ。 材料のせいではなく作り方のせいだから。

Had become:

残念なが゠‰ã€ã‚ ®ãƒã‚ ¹ã®ãƒ"ールってベ゠¸ã‚ ¿ãƒªã‚¢ãƒ³ã˜ã‚ ƒãªã„と聞いた゠“だ゠ˆã€‚ 材料のせい ではなく作゠Šæ–¹ã®ã›ã„ だか゠‰ã€‚

I’m sure to most people reading this, both blocks of text are as bad as each other.

Thankfully I had played around with MySQL/UTF-8/PHP previously and got to know some useful queries to check everything was hunky dory. My first thought was that the data was transferred incorrectly. Purhaps MySQL’s database dump tools didn’t preserve the encoding. So the first query I used was to check if the data on both servers was indeed identical by looking at a text field in Hex. If the encoding had changed, the output would be different.

SELECT HEX(some_field) FROM some_table
WHERE id=foo;

Where “some_field” is a field with non-latin encoded data. The output of this command would be something like:

mysql> select hex(post_title) from wp_posts where id=57;

+-----------------+
| hex(post_title) |
+-----------------+
| E9AD9A          |
+-----------------+

This is useful for two good reasons, first since the output displays the value of the field in Hex you can view it in the standard ‘mysql’ command line tool. Second, people who can’t read the language even if it was displayed correctly probably wouldn’t know if it was correct or not.

So after running this command and both databases returned the same value for the same query, it was clear the data had maintained the correct encoding after the transfer.

This next command tells you what encoding MySQL is using for client connections:

SHOW VARIABLES LIKE "%char%";

The output of which is a short list of variables such as “character_set_client”. On the new server these were all set to utf8… On the old server they were all latin1 except for character_set_database. This isn’t such a big problem, from my understanding this means the data will be stored in the database in utf8, however all connections will be treated as latin1.

On the server hidden away in some mysterious directories out of public view are a few php pages I wrote that use MySQL to store Japanese text, when I looked at these they displayed fine… most curious. Now I could narrow the problem to being a Wordpress specific issue. Next stop, Wordpress’s support forums.

It became quickly apparent I was not alone, as there are many topics regarding this problem and they all had a common “fix”, adding something similar to $this->query(“SET NAMES ‘utf8’”); into Wordpress’s main database include. This command tells MySQL to treat its connections as utf8 (or maybe it automatically converts them to utf8) Thinking back to the previous query I ran that showed the new server was handling all matters in utf8 I had little belief this would work, but tried it anyway as it seemed to solve so many other peoples cases. Sure enough this didn’t work for me. Not the blindest bit of difference.

Since the two databases were handling the connections differently, out of curiosity I tried this command instead: $this->query(“SET NAMES ’latin1’”); To my understanding this shouldn’t work… but it does. Anyway, everything is back to normal although I’m a little more confused than I was before.

このポストはこのサイトについて。 実はね、つまらないポストです。 専門的な言葉が多いし翻訳したくない。 長い話を小さくなったら、サイトがサーバーを変わって日本語が文字化けになちゃった。 今大丈夫です~。

The Spring of Trivia - Mar 15th 2006

「トリビアの泉」は僕の世界中の一番大好きなテレビの番組だよ。 日本語が分かる方はもうご存知でしょう。解説することはないだろう。

よく書くテーマが考えないから、英語で短い翻訳を書こうと思っている。説明が長いし日本についてトリビアの翻訳は無理思っているからそのトリビアを翻訳しない。Googleを見るとこのようなページがなさそう。僕は最初かなあ。

英語に翻訳するから日本語がここで終わり。

The Spring of Trivia is, hands down, my favourite TV program in the world ever. The premise is very simple, every week you learn some new useless trivia sent in by viewers, some of it funny, some a bit stupid. Each item receives 100 yen per “wow” point given by the celeb panel. They also have an item where they create a new bit of trivia, this tends to be the best segment of the show.

Since I can’t think of stuff to write about regularly, I thought I’d briefly report here some of useless trivia I learn from it. A lot of the trivia are very Japanese culture related (about celebs, food, stories) so I won’t write those. A quick Google glance doesn’t show anyone else doing this so hopefully I’m the first.

“When you stand facing a wall, you can not tip toe” - 75 points

When you tip toe, the center of balance shifts so your body moves forward to balance itself, now that you no longer stand on the flat of your feet.

“When transporting Flamingos to another location, Zoo’s insert the animals into women’s stockings” - 77 points

This has to be seen to be believed. The legs of the stockings are cut to form a tube, which is then put over the Flamingo’s head and pulled over the body holding the wings in place stopping the bird from moving around. The end result is a bound black body with the pink neck sticking out.

“How much (yen) would Japan’s best crane operator need to spend to empty a ‘crane game’?” - Seed of Trivia #123

The crane game in question are those machines in arcades with the dodgy griping devices where you try to lift up the soft toy and transport it to the exit so you can keep it.

For this task they found Japan’s best Crane operator Mr Uehata (62y/o). A machine was filled with 50 “Hello Kitty” toys. Each try was 100yen.

He started off well and managed to get a toy straight away (although that was somewhat luck as it fell from the grippers, but happened to bounce and fell into the exit box). His tactic was to start with the big toys first, as they would be easiest. He had a lot of trouble with the smaller toys and when he got down to the last 7 he realised that normally, these could not be reached by the crane (it has a limited operating area, and the remaining toys were too close to the edge), however not to be beaten, Mr Uehata used the crane to nudge them into the grab-able area. This tactic cost approximately 1000 yen per toy. However, the final 4 just would not move no matter how much he tried and the staff of the arcade moved the toys a few inches towards the center to allow completion.

After more than 5 hours of play, Mr Uehata, Japan’s finest crane operator spent 37,100 yen. About 7 tries per toy. Mr Uehata got to keep the toys he won.

Passed!

A few days ago I recieved my results for the JLPT and as you can see from the picture, I passed!

I seemed to have done better than any of the mocks that I had taken previously. The pass mark was 240 points and generally I would get around 270 points. On the real test I got 305 points.

It was the general opinion with everyone who took it, that this test was noticably easier than previous years and seems this fact is shown in my score.

Now I’m looking ahead at studying for Level 1. I really wish I had bought some level 1 books in Japan, because finding them in England is near to impossible.

The general book store’s books on the Japanese language are all introductory level. I would have thought Amazon.co.uk could do better, but it too only stocks basic level books. Amazon.com actually has Level 1 books, however they are out of print. Amazon.co.jp won’t export outside Japan…

The only place I have found so far, is a DVD website I have used for a long time (and highly recommend). YesAsia offers all sorts of Asia related products… books from Japan, which includes Japanese language books. They are a little awkward to find because of the odd romanization system YesAsia uses for the titles, but I found two of the three books I was looking for:

  • Path to success/passing JLPT level 1
  • JLPT level 1 grammer

Both of these books’ level 2 version I found very useful for preparing for level 2, so I’m hoping for the same for level 1. The first book is a bit mix of questions, the second book is essential grammer.

While I was at it, I also ordered a new game for my Nintendo DS, “Motto Nou o Kitaeru Otona” that is filled with brain training tests and such.

It was a big hit in Japan, I’m sure they’ll make an English version but I want the Japanese version for the study value.

The last leg

First the test, which went well I feel. The vocabulary section was clearly easier than previous years. Listening went a little worse than expected, but I feel I still could get a high score there. Reading and Grammar were as ever a race against the clock. The passages weren’t all that difficult and I feel I understood them however answering questions about them in a short amount of time is another matter altogether. I had managed to speed up my reading however this year were three extra passages, so in the end I didn’t have time for these. I expect I’ll only have around 50% there as I’ve been getting previously. Grammar was a little surprising, I was able to answer a lot of questions very quickly, I think because I’m used to the patterns of some questions that I just have to read a few words and instantly I know what the answer is. Again, due to time constraints I couldn’t answer all the questions here, but got through the bulk of them.

With the big test out of the way I have just three more weeks left in Japan. Most of this time will be occupied with packing and general leaving stuff. It’s quite a task to look at a years worth of accumulated items and sort the stuff to keep and what to junk/sell. What’s even worse is that its Christmas season, so I also want to send gifts back home for my family, thus accumulating even more items…

I have had a great long adventure in Japan and sure it will be a shame to leave. I will still pursue Japanese, through books and TV so I hope I won’t loose what I’ve learnt. And next year I would like to take JLPT Level 1, so I shall study for that too.

Answers

こんばんは、 今日、日本語能力試験があったものですから、遅く答えしてすみません。 日本語で書くと時間がかかるから、まだ全部答えなかった、またメールをします。 では答えです。

Q1.日本に来た目的は何ですか。

☆ 日本語の留学生として日本に来た。

Q2.日本に来る前は、日本に対してどのようなイメージをもっていましたか。来日してそのイメージは変わりましたか。

☆ 欧米の人は日本に対してイメージはすごく違うと思う。 大人にとって日本というと [げいしゃ]とか伝統的な料理とかのメージが多いと思う。 それに対して、若者にとって「アニメ」とか「忍者」のイメージが多いと思う。

日本と言えば、やっぱりやさしい人ですね。そういえば日本に来た日、他人の日本人二人が迷った私に、東京から岡崎まで手伝ってくれた。その上に、大谷さんは様々なお世話になりました。岡崎でも、おじいさん達から囲碁を教えてくださった。

Q3.日本で暮らしていて何か困ることはありますか。また、それをどのように対処しますか。

☆ ベジタリアンとして日本は住みにくいです。なぜならほとんどの料理は肉か魚が入っているからだ。 それで自分で料理を作らなければならなかったけれど最近健康的な店を見つけて、 高いけどベジタリアンカレーなどをついに買えて食べられるものが広かった。残念ながらもうすぐ帰る。

Q4.日本にきてどのようなカルチャーショックをうけましたか。

☆ 他の人にとってカルチャーショックをうけたと思うことは私にとって面白いだろう。 例えば、玄関で靴を抜いてはいけないとかお風呂の水は数日使っているとか。 私では日本に来る前にインターネットで日本の習慣などをちょっと勉強したから驚くことはあまりない。 だが、伝統的なものでも、日本の席がないトイレを使いたくもない。幸い、少ない。 それから食べ物、特に果物は違う。 イギリスではいろいろなりんごなどの種類があるけれど、日本ではひとつしかない。別の国外の食べ物もスーパーなどかなり手に入れにくい。

Q5.日本に来る前に、日本語を勉強していましたか。

☆ 一年間ぐらいで一人で勉強したけど、うまくいかなかったから、日本の学校に入ることにした。 ひとつの問題はやる気があったがどんな順番に勉強したほうがいいかさっぱり分からなかった。 それでよく難しすぎることを勉強してみてしまった。

Q6.帰国後のプランは何ですか。

☆ まず仕事を探します。 最初に何でもいいかなあと思っている。 この間日本語能力試験の二級を受けた。 もし合格できたら、日本語関係がある仕事を見つけたいけど、一級のほうが仕事に役に立つから、一級も勉強すると思っている。 私にとって日本語は興味に過ぎないけど、もしできれば仕事で使いたい。 それでだんだんうまくいくだろう。できなければ、本を読んだり、映画とかテレビを見たり、して興味を続ける。

希望

日本語能力試験はまた一週間で、結局希望があてきたぞ!この間、また模擬テスト二つをやって、240点が要るけど、270点以上とったから、もう大丈夫かなあ。

その考え方はいけない!

一応試験の点数のことを説明したいと思う。満点は400点だが、合格は240点つまり60%である。試験は四つの部分で別れて語彙と聴解と読解と文法である。だから、四つの部分でそれぞれ60点が要る。

私にとって語彙の勉強が終わった。なぜなら、いくつ語彙の模擬テストをやっても70点ぐらいをとるからだ。この一ヶ月(本当に)たくさん語彙を習ったのに、その点数は上がれない。60点が要るから、先週から語彙に集中を辞めようと思った。残った10点数は他の部分のサービスになる。

聴解は短い時間ですごく良くなってきた。ただ一週間で3回に日本語ジャーナルという日本語を勉強している留学生向けの雑誌の二級の問題をやっただけけれども本当にレベルアップした。前の平均は40点ぐらい、今のごろは70点ぐらいだ。ちなみに2002年の過去問題をやって90点をとったことがある。今週も聴解練習を続けると思う。

文法さ、試験で時間が短いせいでこれはちょっと危ない。模擬テストの点数はバラバラから、運が良かったら、問題ないけど。毎日文法の問題をやるつもりだ。

問題は読解だけれども、他の部分の点数が高ければ、50点ぐらいは大丈夫だ。これを今週毎日やろうと思っている。でもさ、読解の練習をすると時間がかかるからいやだ…

Test is December 4th.

危うい

昨日2級日本語能力試験の模擬テストを受けた。これは2003年の過去の試験だった。受ける前に自信がなかったけれども、受けなくてはいけないと思った。これはいい試験経験だろうと思い、心配しなかった。特に聴解、授業中で前の過去問題をやり、たいてい悪い点を取ったから希望がなかった。

昨日のテストは前やった過去問題と比べ、けっこう簡単だったと思った。本当に予想したほど難しくなかったからほっとした。聴解の部分もなんかやさしかった。点数を数え、合格し、びっくりした。ところでまだ聴解の点数をもらっていないから、ちょっと予想したけど。6ヶ月前山のような語彙と文法を習い始めた。そのごろ合格ができると全く考えられなかった。しかし合格といっても5点くらいで合格した。今から点数を伸ばせるように弱点を集中しなくてはいけないと思う。

日本語能力試験

世界一日本語能力試験が近づけるにつれて、心配していてきた。 いったいなぜ心配しているか分からない。 ちなみに、2級を受ける。 クラスメートは就職とか入学に必要なモノだろうと思うけれど、僕は将来の目標を立たなかったから、合格か失敗か構わない。 日本に来る前に、簡単に外国語を勉強したいなと思った。 試験に合格するわけではない。 今学期は僕の最後だ。そこで、もしもこのテストがなければ、集中できないだろう。 役に立つかなあ。多くの帰国したクラスメートでは、最後の学期でやる気が出なかった。 授業中ぼんやりしていないし、それに短い時間で言葉とか文法いっぱい習った。 それでやっぱり役に立つだね。それじゃ、もしも合格したら、すごくうれしくなるに違いない。 僕の程度は一ヶ月前と比べて上げたのを感じるが、本当にまだまだだ。とにかくやってみる。来年も試験が受けられるね。

The world’s main Japanese Language Proficiency Test (JLPT) is fast approaching and I’m somewhat concerned. But I have no idea why. By the way, I’m aiming for Level 2, which is 2nd from the top. For my classmates, this is important for entering jobs and university, however I have no such plans so I shouldn’t care if I pass or not. Before coming to Japan, my aim was simply to learn a new language, not to pass a test. This term is my last, and so without this test I feel I just wouldn’t be able to concentrate. Most of my classmates who’ve already finished their studies have become far less motivated during their last terms. Not zoning out during class and more so learning lots of vocab. and grammar in a small time, having this test is really quite useful. And then, what if I passed… without a doubt I’d be over the moon. While my level is much more focused compared to just a month ago, really I’m not where I want to be yet. Anyway, I’ll give it a shot, there’s always next year.

Conquering Mt. Fuji

There is a saying in Japanese, “A fool never climbs Mt. Fuji. A bigger fool climbs it twice”. In other words, it’s such a great experience to view the world from such a famous location you’re an idiot not to have done it. But it’s such a painful (not to mention expensive) ordeal that doing it more than once is suicidal.

I’d known about this saying before but oddly enough about a week before climbing my Japanese lesson had an essay about climbing Fuji, including that phrase, bringing it back to mind. What timing.

I went with two classmates from school. Really from Fuji you can see some awesome views. However Fuji itself is not all that pretty close up, the lower half is almost all forest (very pretty), after that (which is where most people start from, also known as Station 5) is barren rock. When we arrived there was a lot of cloud cover, but just enough so it was pretty and not blocking too much of our view. Our aim was to get there before the sun rose (however in the end it only seemed to be me with enough effort to get in place to watch it…) but this meant we climbed most of it in the dark and could only take photos for the first hour or so. After a few hours of climbing we lost so much spirit due to the cold and being worn out that we just wanted to get it over as soon as possible, thus the photos get a little scarce in points where I just don’t care and want to stay as warm as possible. The wind was the main cause of being cold; as long as you could find shelter it wasn’t so bad. However sitting in shelter is little good when you need to keep walking.

If I was to climb Fuji again (which I never ever will) I would choose the day time so that it’s warmer and the view is nicer.

In the end, it’s a great experience to have under my belt. Mt. Fuji one of the symbols of Japan and people outside of this country can easily relate with Mt. Fuji than if I told them I went to Kyoto…

日本語に有名な富士山についてことわざがある。「一度も登らぬバカ、二度登るバカ」。つまり切れ医師、有名だし、それに豊かな経験だから、機会があればぜひ一回登ってみた方がいいが辛いから、一回以上登るなんてバカなことだ。

日本へ来る前にそのことわざを学んだけと、登る一週間前に学校の授業で勉強している本文に載っていて、思い出した。

クラスメイト2人と登った。富士山から本当にきれいですごい景色が見られる。たが、近くから富士山はあまりきれいじゃない。下の半分はほとんど森だから、もちろんきれいだけど、上の半分つまり五合目の上はほとんどい火山の石だ。

着いたとき雲が多かった。僕たちは日の出前に頂上に着くのを目指した。けれど、ほとんどの登るのは暗かった。写真を撮る機会が少なかった。寒かったし、疲れたから、4、5時間が経った、僕たちのやる気がどこか逃げて、他の事を考えないで、頂上に着こうと思った。だから、新六合目の後、写真が少なくなる。写真を撮らないで、暖かくなりたかったからだ。寒かったのは普段風のせいだ。

もしもう一度富士山に登れば「絶対登りたくねよ」夜じゃなく、暖かいし朝に登る。

富士山に登って、良かった。いい経験だから。それに富士山は日本のシンボルから富士山を知ってる外国人が多い。そして、僕のアドベンチャーを楽しみに聞くだろうと思う。

Gallery: Climbing Mount Fuji.

Mount Fuji!

Next weekend I plan to climb Mount Fuji with some friends from class, or at least attempt to. Climbing Mount Fuji is only allowed during the Summer (otherwise it is dangerously cold). The usual method is taking a bus or car to the half-way point and then walking for about 6-8 hours. At various points on the path there are huts you can stay in to sleep or just rest (for a cost of course). There are also post boxes apparently at the halfway (for the people who just went there by car I imagine) and at the top. What I wonder though is do they collect it every day? and I can’t imagine it’s some regular postal worker. I plan to try and prepare my postcards before hand, as I don’t want to be stuck with writters block while freezing to death.

来週末富士山にクラスメイトと登りに行くつもりだ。 日本語が読める人は富士山のこと分かるだろうと思うけど、練習のために書く。 死ねるくらい寒いから、夏しか富士山に登れない。 普段、五合目にバスとか車などで行って6-8時間で歩く。 歩く道にある山小屋で寝るとか、休むとかことができる(もちろんお金がかかる)。 五合目と頂上にポストもあるらしい。誰がその送ったメールをまとめるか知りたい。

登る前、はがきの内容を書いとこうと思ってる。

Okazaki Fireworks Festival

Today was Okazaki’s Fireworks Festival. I was advised a good spot to see the show, on the top floor of a nearby carpark. When I got there it was already full of people but I found a good place to watch from.

Thanks to Okazaki being a long-time producer of fireworks for the whole of Japan, they were able to put on a good show. 2 and a half hours long…

今日は岡崎花火大会が開いた。友達に見る場所を教えてもらった。それは近くにある駐車場の3階だ。着いたら、もう人がいっぱいけど、空いている所を見つけて、楽しんだ。

Flickr

I’m experementing with using Flickr for storing photos, or at least my favourite ones.

Flickrという写真を集まるサイトを自分で好きな撮った写真を置くのを試みている。

Flickr: Photos from tobyoxborrow.

Kyoto again

I went to Kyoto again, this time with my friends Masahiro and Hayashi-san. We visited Kinkaku-ji and a few other temples. The weather wasn’t so great unfortunatly, so Kinkaku-ji didn’t look as good as it could have.

もう一度京都に行った。 今度私の友達まさと林さんが僕に連れてくれた。 金閣寺やいろいろなお寺見に行った。 たが天気があまり良くなかったから、 金閣寺の外見も良くなかった。

New beginning

This is the start of the new oxborrow.net

Please enjoy the photos.

これは新しいoxborrow.netの誕生だ。

ギャラリーを楽しんで。

Bletchely Park

A visit to Bletchely Park, where the Enigma and Lorenz ciphers (among others) were broken during World War II.

Bletchely Park picture gallery.

This blog has been intentionally left blank

No more blog as of next year.

I tend to listen to my new playlist WRBNLTR… Well Ranked, But Not Listened To Recently (rating >= 3, sorted by least recently listened to). This tends to have me listen to stuff I like evenly.

tron 2.0

Completed Tron 2.0, with a final version of v9.4.7. Was a very good game. I highly recommend it to anyone who loves the film.

spam

I got some spam recently with the following subject:

Re: %RND_UC_CHAR[2-8], my attendants

Apparently they havnt quite got their templating system sorted out yet. Quite amusing reading the source code to see the lengths they are going to to stop anti-spam software. There are non-existant tags littered through the text to break up words so anti-spam software cant read the tell tell phrases.

<p>Th</best>e ul</intrude>timate

Of course, any sensible a/s s/w would strip all html out before it read the message.

Tron 2.0 is great, one of the better movie to game er… games. Authentic sounds, and settings, the disc is the only weapon I use even though you have a multitude of others (I also played the whole of jedi knight 2 with the light saber, where available), just more fun than using a gun constantly. And all the computing references actually make sense, which is a rare treat.

Ho hum...

Have got myself the games Tron 2.0, and BF1942 expansions Road to Rome and Secret Weapons of WWII. Not had much chance to play them yet.

The Smart Playlists when on the iPod are smart, I thought they wernt but I wasnt paying attention. bse told me a new smart playlist that I find useful “Unheard” (Play count = 0), of which I have 730, or 2.4 days worth. I’ve also added “Unheard - Rated”, for the odd times I’ve rated a song but not heard it (currently have 7 like that).

ogg to mp3

There are quite a few MP3->OGG converters, but I could find no ideal OGG->MP3 converters. Fortunatly, most of my music I have the original CDs for, so reripping to MP3 to put on the iPod wasnt such a big deal (with iTunes even less of a deal, one click, copied from CD to my computer, one more click and it’s on the iPod). But I have some OGGs that I don’t have the original source for, namely UT2k3’s soundtrack which was provided as OGG on the CDs, then there’s music freely available by Pajama Crisis and that Swedish band I forget. Thus, I wrote a Perl script to do the hard work of converting each one for me.

It goes something like this…

  • ogginfo to get the bitrate and tags (title, album etc)
  • oggdec to decode to WAV
  • lame to encode to MP3, using ABR (average bitrate, the same method used by ogg) and the id3v1/2 tags

You too can enjoy the wonders of ogg2mp3.pl. Requires vorbis-tools and lame.

And speaking of iTunes, as far as I’m concerned it’s very nifty. It’s ability to manage multiple id3 tags beats all the shareware apps I’ve tried. Plus having auto complete when filling in tags helps reduce typos. Since the iPod relys on the tags so much, it’s immensely usful. And then you can create smart playlists, with SQL like expressions, which I can plonk onto the iPod (they dont stay smart on the iPod, they only update when you sync, which is a shame). And that search gizmo in the top right is hella useful (not to mention damn smart).

geek moment
meh

iPod arrived, new computer arrived, no time to blog.

yumi-chan

7 days have been and gone, and I’ve got no iPod, but the status page has updated this morning saying it’s in Luxembourg. So it should arrive very soon.

I now have a new machine as my router/firewall/dns/dhcp/ntp box. Yumi-chan, a p2 266, that’s 66mhz faster than the last one… stunning.

NTP I sort of had working once, but now I really have working. DHCP I’ve never had before, but now I do, seems a really useful tool, I still need to get it talking to the dns about which name points to which IP.

As for the iptables, the packet filter firewall, I’ve now set it up using FireHOL after I read their dead simple example on their homepage it seemed stupid not to use it. At least over writing bash scripts to handle iptables.

For the record, here’s my firewall setup:

interface eth0 mylan
  server ssh accept
  server webcache accept
  server dns accept
  server ntp accept
  server dhcp accept
  server ICMP accept
  server custom gkrellmd "tcp/19150" default accept
  client all accept

interface ppp+ internet
  server ssh accept src {insert my work ip here}
  client all accept

router mylan2internet inface eth0 outface ppp+
  masquerade
  route all accept

It roughly says, allow only ssh, webcache, dns, ntp, dhcp, ICMP (pings) and gkrellmd connections internally. Only allow ssh from my work ip, but allow all connections outbound. Masquerade outbound eth0 traffic over ppp devices. Much simpler than long iptable commands plus its easy to get an overview of what is happening in one quick glance.

I’ve given it a thorough testing with nmap and some online port scanners and I’m pleased with the results, ie, it works exactly as expected.

Good news

Good news - Your exchange will have broadband ADSL by 5th November 2003.

Our initial test on your line suggests that you may be able to have a broadband ADSL service that provides up to 512Kbps download speed, but the upstream bandwidth will vary according to the length of your telephone line. It will not be possible to provide the 1Mbps or 2Mbps broadband ADSL services.

boring post

My ACPI events handler script and my ACPI power mode toggler (call it, it’ll determine what power mode you’re in (using simple test that WFM) and be more power saving accordingly) for use with ACPID.

I have master plans for rewriting my CMS for this site, remove sections I never update (network), redo sections I never update but get looked at a lot (code) and bring and make WrapDBI, my perl DBI er… wrapper up-to-date with my ASP version.

After playing with HTML::Template I find it’s lack of includes a huge bad point, keeping multiple templates in sync (eg. the content between to ) a real nightmare if I was to use it in anything more than my test. I will look into other templating options, there’s still others out there, or write my own, but I’d rather not.

I also have plans to make a ’lite’ theme for my site (for small devices like ipaq, just for neuro) and one other which hopefully should look good, if not you’ll never see it :p

New iPod

My new 40gb iPod arrived today. Chunky fella.

"Say hello to Kazama"

The tallest virtual building in the world. Well it was… when the site was working. I guess he got a little more traffic than he was expecting. That’s what you get for creating a page full of images I guess. Lets hope it’s back up soon.

GIMP 1.3.x development version looks hella good. The menus being attached to the image is a really good idea, IMO more usable than the right-click menus. The main buttons redesign now all in colour makes it much easier to find the tool you’re looking for, compared to the greyscale ones from previous versions. And the tool and filter dialogs are all newly designed making them much more friendly.

The state of this site

The latest revision of this site is before your eyes, CGI::Application based, because I thought it looked cool, and what do you know, it is.

For some unknown reason, I disallowed “/” in the robots.txt. I had wondered why my site vanished from Google, now I know why.

Green. I’ve had a quick fiddle with the colours, in case you forgot, it was primarily red before. New site icon too, a picture of spencer. I doubt it appears in MSIE.

The Gallery is back and it has a lot more pictures. I’ve also adding groupings. There is even a search.

more ping pong!

Ace suggested install the new Linux 2.6.0-test1 with ac1. Which didn’t go to well, but the next day I used the mm1 patch and O7 and that also didnt go well (xmms would still skip when opening Eterm). But I soon sused the suckyness was to do with the “nv” driver, I promptly patched NVidia’s own to work with 2.6 and low and behold my computer kinda really rocks now. I watched a DVD (non-skipping) with a system load of 10 (kernel and vlc compiles running in the background)… not a simple task with a single processor.

With the heat-wave that hit the UK a few days ago, my room became unbearable so I decided to get WIFI working again on the laptop and if it gets too hot in my room, I’m going downstairs to the dining room which used to be a garage and doesn’t hold heat well. I would much prefer to go into the back garden, but there is a wall between my room (with the other WIFI point) and the garden that blocks the signal without fail.

I also tweaked my ACPI scripts for the laptop, so now if I pull the power cord from the back, the LCD brightness drops to the lowest setting, the hdd will spindown after 2 minutes of idleness (spinning it down is useful when the thing is powered too, its bloomin noisy) and lowering the cpu speed all in the hopes of conserving power. And it reverts happily when I plug the power back in. Still not decided what it should do when the lid is closed.

Internationalized Domain Names (IDN)

This devedge article is a pretty good read on a pretty nifty new underlying web structure to be put in place. Basically, countries that don’t use the Latin character-set no longer have to put up with our inferior letters and can use their own.

Demo featuring Western European characters, Japanese characters.

Note: the only browsers to support this new standard are Netscape 7.1+ and Mozilla 1.4+, so you can view the demos in other browsers, but the links wont work and probably display an error message.

Some crazy folk recreated a scene from Matrix Reloaded (the actual scene is right near the bottom, the rest are preparation shots). Well that’s what they claim, but its not a scene I recognise.

the joys of UTF8

I’ve been playing round with HTML::Template in the hopes it would be better than what I currently use, which is an ad-hoc system made by me which works, but I feel HTML::Template could make my life easier. I’m not intending on using it for this site though, but for an uber-secret (as in, I’ve only told maybe 15 people so far) mini-site that won’t really get used for many months but I’m just itching to have it ready.

I’ve also learnt the joys of UTF8 (the default character set of GNOME2 and Win2k and probably a few other things by now) and how to mix it with websites and MySQL 3x. The MySQL secret is, you create the varcars with syntax similar to:

CREATE TABLE `name` ( `field` NATIONAL VARCAR(255) );

As described in the MySQL Manual…

In MySQL-4.x and earlier, NCHAR and CHAR were synonymous. ANSI defines NCHAR or NATIONAL CHAR as a way to define that a CHAR column should use some predefined character set. MySQL uses utf8 as that predefined character set.

Thus if you want UTF8, just declare the field NATIONAL. From my tests, TEXT fields dont need any special declarations, presumably because they are just binary fields and what you put in is what you get out, no behind-the-scenes translations.

MacIE is being dropped because Safari (a browser yet to be officially released) is so much better. Best covered by zeldman. I find this quite odd since in many ways, MacIE was/is better than WinIE (MacIE 5.0 was very bad, but 5.1+ solved every horrid css/render issue i could notice). Funny as their main reason was to do with lack of access to the source code to Apple’s OS, so does this mean they’ll be putting out a version for Linux :) Alas I think not.

And then theres the story that there will be no more standalone versions of WinIE6. I first ignored the story not quite understanding what this meant. Second time i spotted the story it finally hit me. Two years from now until IE7. We’ll be stuck with IE6sp1 as the dominant browser during this time. Will CSS/Render bugs be fixed during this time? Unlikely. So if you want to be able to change font size for text specified in px… whats you’re hope? Wait for Windows Longhorn and prey IE7 has resolved the issue (after 4 years of development I would sure as heck hope its fixed). Again, zeldman covers it best. While the rest of the browsers have been evolving trying to gain market share, Internet Explorer has just remained static… oh sure, IE6 brought us great new innovations… an image toolbar most design sites disable, a media sidebar (wtf?) and one good feature, 3rd partie cookie blocker (which has admididly been a pain for some work related issues with single sites being hosted over multiple servers).

a few links

And for my next trick I shall steal a couple of links from zeldman

For those of you like me who don’t have a shred of colour co-ordination, there’s the QuickColor widget. Set your initial colour and it will generate a six colour palate that works well with your choice.

A nifty Color Blender, select two colours and it will generate a selection of colours between the two.

And while I’m on about useful web building resources, the DevEdge Sidebar Tabs are ultra useful.

Isn’t it fun when a simple jpeg can break Internet Explorer.

i'm not a tourist

Putting more effort into learning Ruby via a very good Introduction to Ruby. I now know how to assign values to variables, some arithmatic, the differences between strings, integers and floats and how to use a simple loop. Go me!

server switch

This site has moved server rather slowly and with a lot of problems but is finally in England, continuing its world tour which started 2 years ago in America this very month. Rock on.

Every script on this site had to be changed, hardcoded paths == bad thing(tm). And for some reason they all needed user +x permissions whereas before they were world +x. But what a good excuse to upgrade to v4. I can think of none other, so here it be. Enjoy.

Midas, Tokyo and lazy GNOMEs oh my

A screenshot of Neo-Tokyo as requested by bse.

GNOME 2.2 was recently released. screenshots.

Progress and Future of Mozilla-the-application-suite. Mozilla’s improved so much since version 1.0. And something that completely went by unnoticed by me is the Midas extension (Demo). IE has a similar propriatry extension, this appears to be Mozilla’s own implimentation, again propriaty. From cursory glance it uses a similar naming scheme, so I’m guessing they are aiming to make it easy for people who’ve used IE’s own method to extend their implimentations to include Midas. I’ll have a go at upgrading the comments system to Midas and probably my Admin area… sorry, CMS too.

bigcalm pointed me to String::Approx, so I’ll probably add a spell chekcer widget to the comment system and my backend.

Tachyon-TV it hasn’t updated for about a month but I’d thought I’d send them some hits anyway, quality satire.

6 days left

I must say, Ring (Ringu) is an excellent film. The sort of horror that actually works, not a drop of blood, pure thriller. The film, in a nutshell is about a videotape, those who watched it would then have 7 days to live (What I assume is scared to death). A journalist investigating the story watches the tape and the story begins as she attempts to solve the mystery of the tape before her time is up.

I attempted to watch the extras of my Fellowship of the Ring DVD on my laptop in WinDVD which came with it and realised it was region locked to Region 1 (I’d wasted my 5 changes). I thought all was lost, as I’d read the firmware couldn’t be ‘fixed’ to remove the ‘bug’ where it can’t read DVDs from other regions. Then I gave xine a try and although I couldn’t get visual output (another issue to do with the i810 hardware) I could get audio, this was very promising. So I grabbed myself a copy of VideoLan Server and set it up on nikita, and VideoLan Client on wataru (to attempt to view the dvd from a computer that has working video). And what do you know… it bloody worked and all. Either it was never hardware locked and WinDVD is being lame, or some funky mojo is going on in libdvdread and libdvdcss. I was quite impressed as to how VideoLan could give the clients the same choice of subtitles and audio streams as if they were playing it from their local drive.

Got myself a little note app, I feel I need to keep a to-do list on screen so I get things done. Otherwise I’ll end up playing games all day. Not sure why thats a bad thing.

After hunting through freshmeat for a suitable candidate I stumbled upon xpad, nice and light, few dependencies. Configuring colour is a bit odd, and doesn’t seem to remember it, but it keeps my text so I’m not too bothered. While looking I found Molasses, I’m sorry bse, but it didn’t have a screenshot, so I clearly had no choice but to overlook it.

Mozilla 1.2 was released, although I’ve got a feeling 1.2.1 will get released soon. Other than some Javascript bug, it’s great to have it released to pass onto the masses link prefetching and the XML tree rendering. If you’re using 1.2 or greater, you can see this in action by viewing my RDF.

Found some other nifty things with Mozilla recently, available in older versions, View | Show/Hide | Site Navigation Bar | Show Always (or Show Only As Needed) and you get a new toolbar, this reads special <link rel=""> tags (rel=“prev”, rel=“next”, first, last, top, up, search, help). Very few sites make use of these tags, but they’ve been round a long time. Mozilla isn’t the only browser to support them. I noticed Opera 7 and Lynx supports them as well. I’ve put them into my Photolog (I’ll soon add them to my blog), so if you wanna test the feature out, go into one of the categories.

The other neat trick was Bookmark keywords. Create a bookmark to www[.]oxborrow[.]net/search.pl?k=%s, then enter into “Keyword” something like “oxo”. Now you can enter (for example) “oxo ringu” into the URL bar, hit enter and it’ll search my site for whatever you enter (the %s gets replaced when it loads the site with what you enter). You can set this up for lots of different things: Google, other search engines, Babelfish, Dictionary.com, Thesaurus, Bugzilla and more! This gets 10/10 for funky feature.

prefetched

If you haven’t already seen it, I have a photolog/gallery type thing with lots of pretty pictures. As a special treat, I’ve extended it with Prefetching, think of it as a standard way of preloading stuff. In my case I preload some extra thumbnails and a main image if you dare visit the medium sized version. The advantage of the Prefetch method over javascript implementations and width=“1” hacks is that you can disable this method if you prefer to keep your bandwidth. On the browser feature nifty scale of 1-10: 9.

I was bored so I added a RDF feed of my site for syndicating. And I was bored more and made a Mozilla/Netscape Sidebar. Most people scorn the Sidebar feature as compleatly useless, but as a developer, I’ve found DevEdge’s CSS/HTML Quick Reference Sidebars invaluable at giving me instant access to a wealth of accurate content. I also find the builtin History Sidebar more usful than Mozilla’s main History viewer. My only wish is that there was a JavaScript quick reference of the same high quality as DevEdge’s Sidebars.

Had mild amusement from binding lots of keys in fluxbox. Made two little Perl scripts to accompany it, mozilla-remote and alsa-mute. Now those useless keys at the top of my keyboard called ‘Media’ keys do something, and rather useful they are too. Even knocked up some on screen display dittys for when I hit Caps Lock, Num Lock etc.

mozilla-remote

This script will open a specified URL into a new Mozilla tab, or if Mozilla isn’t running, it will start it then load the URL. This overcomes a little oddity where you can’t just call “mozilla $url” and expect it to handle it this way. I originally created this for my Logitech iTouch keyboard so I something to bind to the “homepage” key.

This program requires Perl to run and Mozilla.

mozilla-remote.pl (Plain text file)

Save the file with a .pl name, You can then assign keys to it in your Window Manager, set programs (eg. X-Chat) to use it to load URLs or run it straight from the console. All use the same syntax:

perl mozilla-remote.pl http://www.google.com/

GNU/GPL.

alsa-mute

On my Logitech iTouch keyboard I have some “media” buttons, one being mute. After assigning the keycode for it to XF86AudioMute I then created this little script to handle the action of turning mute on or off depending on it’s current state. Then its just a matter of editing your Window Managers key bindings to assining XF86AudioMute to alsa-mute.pl.

For fluxbox this meant editing “~/.fluxbox/keys” and adding the line:

None XF86AudioMute :ExecCommand perl ~/alsa-mute.pl

This program requires Perl to run and ALSA (Advanced Linux Sound Architechture) installed. You will also need to edit your Window Manager’s key bindings. An excersise left to the reader.

alsa-mute.pl (Plain text file)

Save the file with a .pl name, Edit your Window Manager’s key bindings to call it for the key you want, You can also call this straight from the console:

perl alsa-mute.pl

GNU/GPL.

Pheonix

Well for starters, my site looks different. I’ve finally put the revamped code in place. The story behind the spencer picture is simple, someone didnt like what I had there in one of my earlier designs so I put her there instead, and noone argues with her. Still needs a little extra work but its mostly all in.

51 work units for folding@home, yay. Just found out today it uses stole 50mb of memory on my work machine, not sure where it puts it cause it claims it (how many its?) only uses 5mb at most. So I’ve stopped running that now at work during working hours, since it was causing a huge strain on the system.

Playing around with Pheonix at work and home. It definatly feels faster than mozilla, it’s got some cute features too.

when it's ready.

Havn’t had a new screenshot online in ages, here's nikita

Busy working on oxborrow.net mark 5 or wherever I’m up to, and this one I will finish. Completed checklist:

  • Homepage
  • DVDs
  • Links
  • Code
  • PhotoLog
  • Much improved Blog
  • family tree

Still to do:

  • About
  • Backend CMSey thingy
  • 404, 500, 403 carping

After I’ve done my site I’m gunna have a play around with Ruby, having a Perl background it shouldn’t be too hard to pick up.

Thanks to Lil_Sparky and his pointing me to Flashback Abandonware I am now playing ultra cool Dune 2 again. Too many hours lost.

Still no Gentoo 1.4, kicks dirt

The longer they play, the more they lose, and in the end, we get it all.

Got bored waiting for Gentoo 1.4 so I installed one of the release candidates onto my laptop (also because i fried the laptop with one misplaced command). So far, very good, all the niggles I had about the installation procedure are gone from 1.0 (not having a vi like editor, no fat support for mounting partitions, i810 network card driver didnt work too well, not having cfdisk).

More fun than that tho was me killing some bordom by playing with ChatZilla and getting faces for the peeps in #humour. I did this based on the code for moznet faces. Not sure if I’ll use ChatZilla fully, it is missing some features that I’d find hard to live without. Oh well, you can see a little screenshot of some chatting with faces.

SpamNinja

I grabbed myself SpamAssassin (emerge Mail-SpamAssassin :) setup procmail to route my mail via it and then proceeded to download my 72 messages waiting online… I watched them come down, then I fired up mutt and looked at my inbox. I knew for a fact there were some spam mails there, cause I had chosen not to delete a few to fully test SpamAssassin. And what do you know, they aint there, so off I pop to my ‘junk’ mailbox and low and behold there were 10 mails, six are genuine cream of the crud spam, and the other four are newsletters that I’d been autosigned up for by sites I’ve visited. All in all, a raving success. I don’t get much spam as it is, about 1 every other day (don’t consider this an excuse to sign me up to anything) but I will definatly will keep this running.

While looking for something else in Gentoo’s portage, I found dailystrips to get your recommended daily webbased comic dose. I made something like this in Perl too, I’ll have to give it a try, see how much mine sucks.

it's only purple on thursdays

While I wait for Gentoo 1.4 (which should hopefully be available within the next two weeks) I’ve left my Windows partition after a recent LAN gaming session. During this time of horrors, I stumbled across 7-Zip. Claiming to be “a file archiver with highest compression ratio.” Could it be? I’ve found a compression that’s better than RAR? Well okay I know several better than RAR. Here’s my results of an impromptu test of it (disclaimer: please ignore this test completely since it’s me picking some random directory and compressing it and choosing what I think are the highest settings of the archive):

Original Size: 395k, 34 files
WinRar: 301k
7z: 299k

Interesting results, nothing worth switching for, their page has a proper test.

And so while I wait, I thought I’d play around with a new site layout, something simpler, with… drumroll links on the LEFT! I’d thought I would conform for once. And I’ll probably get rid of the magic changing styles. And try and improve my code area.

Xenith pointed me to this short yet humorous collection of Movie GoOfs.

Having lots of fun with iptables and custom chains, making my firewall overly secure.

Mozilla’s Venkman’s JavaScript Debugger seems damned useful, I really got to play with it some more to see how useful it can be. The most useful feature I found so far is the display of local variables while stepping through code, saves throwing up alert() boxes, especially when working off a live site. Here’s a pretty screenshot for those who don’t have the lizard yet. Obviously this is of no use to the casual web user, but to a developer it’s a huge helping hand. Mix that with the usefulness of Mozilla’s JavaScript console (for the simple fact it get’s line numbers right big stare at Internet Explorer’s useless line reporting) and you have the best JavaScript development platform known to man(tm).

Neverwinter Nights

Neverwinter Nights has stolen my free time, I’m so easily distracted. I’ve chosen the path of the Cleric, essentially wizards with weapons, a bit less devoted than Paladins.

La Laptop Nikita

I named the machine after the Luc Besson film La Femme Nikita and not the trashy US remake nor its silly TV series.

network info

  • Local Network IP: 192.168.0.103
  • Wifi Network IP: 192.168.1.101
  • Function: Laptop
  • OS: Gentoo Linux

spec

Sony Vaio FX209k Laptop.

  • Intel Pentium III 1ghz (1961.98 BogoMIPs)
  • 256mb RAM
  • 30gb HDD
  • Sony Vaio 15" SXVGA TFT
  • Intel i810 video
  • Intel eepro100 Fast Ethernet card
akira

I named the machine after possibly the most famous Anime[?] of all time… Akira (and now, after a long wait the DVD of which proudly sits on my shelf).

It’s current location in my home is under my desk in my bedroom to my right as can be seen in the photos.

network

  • Local Network IP: 192.168.0.1

spec

  • Function: Firewall[?], Router[?]
  • OS: Gentoo Linux
  • Pentium 200mhz MMX (399.76 bogomips[?])
  • 40MB RAM
  • 2GB Hard disk
  • 10mb Ethernet card
  • Two very dodgy CD-ROM drives
  • A keyboard, but no mouse
  • A monitor which remains turned off most of the time

installation

akira once ran smoothwall Linux. akira now runs Gentoo Linux and I probably wont be writing a guide for that.

photos

screenshots

No screenshots because it has no GUI, this allows it to make the most of system resources.

EffecTV

Is this neat or what, HolographTV for EffecTV, which I really want, I just now need a webcam. Thanks to bigcalm for pointing me in this direction.

A desktop named wataru

The name wataru comes from a character in an Anime called A wind named Amnesia, or ‘Kaze no na wa amunejia’ if you prefer.

network info

  • Local Network IP: 192.168.0.101
  • Function: Desktop PC
  • OS: Gentoo Linux (for real work), Windows 98 (for games)

config files

These are here for my benefit, more than anything else, but you are welcome to pilfer through and steal stuff from them.

photos

Time to look for another job

I have consulted the wisest mage of knowledge available to me at this time to learn the secrets of hunting bounty, apparently I shouldn’t even bother.

[12:59:07] [wataru] ExB: when star wars galaxies comes out, will i be the meanest badest bounty hunter of them all?
[12:59:07] [ExB] My sources say no.
[12:59:12] [wataru] :(
[12:59:13] * wataru cries
[13:00:46] [wataru] ExB: are you sure?
[13:00:46] [ExB] Yes, definitely.
[13:00:49] [wataru] :(
[13:00:51] * wataru cries
[13:01:13] [wataru] ExB: you aren't just saying that, you really mean it yes?
[13:01:14] [ExB] All signs point to yes.
[13:01:19] [wataru] :(
[13:01:21] * wataru cries
[13:20:19] [wataru] ExB: so let me get this straight, you are saying I will be the worst bounty hunter in the whole game?
[13:20:19] [ExB] As I see it, yes.
[13:23:36] [Xenith] wataru: Suck you do, yes
He's no use to me dead

I haven’t worked on the ExB project half as much as I should have recently. Today bse asked me wtf SROMMod (a plugin module for the bot) was, and I hadn’t the foggiest, I racked my brains for a few moments, I knew I had made it, it was the last thing I had done, but what on earth was it. Just as I loaded up Mozilla to rummage around the online cvs repository I remembered. SROMMod, or Sucks-Rules O’Meter, inspired by this website which fellow workmate graham pointed me at.

Basically SROMMod finds out what is better of two items. You give the bot two terms, it then googles them with the words “sucks” and “rules OR rocks” and counts the results, does a little (flawed) calculation on them and spits out a pretty graph.

I feel a little demonstration is in order:

[19:43:01] [wataru] ExB: srom leon nikita
[19:43:03] [ExB] nikita pwnz!
[19:43:04] [ExB] leon:   [--------##|#######---]
[19:43:04] [ExB] nikita: [--------##|##########]

[19:53:26] [wataru] ExB: srom starbucks suicide
[19:51:54] [ExB] suicide pwnz!
[19:51:56] [ExB] starbucks: [--########|##--------]
[19:51:56] [ExB] suicide:   [-------###|##########]

[19:53:26] [wataru] ExB: srom computers girls
[19:53:32] [ExB] computers wins!
[19:53:36] [ExB] computers: [----------|###-------]
[19:53:36] [ExB] girls:     [##########|#######---]

[19:54:56] [wataru] ExB: srom linux windows
[19:55:00] [ExB] linux wins!
[19:55:02] [ExB] linux:   [-------###|#######---]
[19:55:02] [ExB] windows: [##########|----------]

[19:55:43] [Jeff] ExB: srom wataru jeff
[19:55:46] [ExB] jeff pwnz!
[19:55:46] [ExB] wataru: [----------|----------]
[19:55:46] [ExB] jeff:   [--------##|##########]

Jeff trys to reassure me with this comment: “it’s okay, you do own though, just no one knows it”.

about this site

design

For my site design I want something primarily easy to administer. When you have a site with lots of eye candy everywhere it can often become a chore to keep things up to date. Combined with some Perl magic, creating a new page for this site is so damn easy, that it’s silly. I also want it to look reasonably good, sleek and fast loading.

NB: I dont know what that thing in the top right is, but I made it one day in PhotoShop and I kinda liked it.

creation

Believe it or not, but I actually have coded the site by hand with a text editor, as I do with pretty much any site I work on.

I just get fed up with those GUI editors re-writing my code and screwing it all up, making it harder to edit in the future.

The site makes great use of custom Perl modules I wrote to generate the header and footer of each page of the site. As well as all of the other fun widgets.

All the data driven pages (links, news, dvds) are powered by a MySQL database. A good all round database for web based services, super fast and reliable.

(shameless plug) oxborrow.net is hosted with KDA Web Services which offer me an Apache webserver, alongside MySQL, Perl and if I feel the urge PHP, as well as some other neat features. All of this sitting on top a reliable Linux server, what more could you ask for?

Powered by Perl mysql kda

Yes I’m a little logo happy, but I’m proud to display them :)

compatability

Since this is a personal site, and I promote the idea of using an OS you want to use, not one you’re forced to use, I aim to make my site look good, no matter what system/browser/screen resolution/car you use.

However, the web will not get anywhere if it does not try to move on, and even though I hate it when sites say stuff like “Requires IE 9.4 in 2400x1600” I personlly dont support Netscape 4 or less, or IE 4 or less, this site may work in them, but that is just a co-incidence. Please, they are over 5 years old each… it’s time to move on!

I regually check my pages using Mozilla (generally the latest build), since this is the most standards compliant browser around, if it works in this, the site is ‘correct’. Then I go about adding work-arounds for those lesser browsers, such as Internet Explorer.

I also care for you crazy people with small resolutions, so my site still kicks ass in 800x600 and even the console standard 80 columns by 25 rows :D. I’m so clever.

The only thing I really dont care to much about, is the web safe pallete, however, this site does a pretty good job of sticking to safe colours (granted Opera hates them).

Valid HTML 4.0! This shows I have 1337 web coding skills… honest it does

Valid CSS! The site’s style sheet passes the W3C CSS Validator test

flashback

Here are a few screenshots of the first version of this site, as viewed from…

Mozilla 0.9.x, Opera 5.11

These are of my old site ‘Oxborrow Villa’:

Mozilla 0.9.x, Internet Explorer 5.5, Opera 5.11

And just for the sake of it, some pictures of the current state of this site:

Mozilla 0.9.x, Internet Explorer 5.5, Opera 5.11

Rearranging

I’ve spent the time rearranging my bedroom, it’s pretty much better. Now, from my desktop PC I can see my TV by just moving my eyes and not, as previously, by moving my head :D

Gentoo now exists on 3 out of my 4 machines. At first I found it quite awkward, mainly because it uses its own initialisation method, but it has great support for packages of applications (over 1700 at time of writing), most (if not all) packages are mirrored on their own server to ensure the package you want is always available (rather than hoping the authors website is up, which in a few cases with Sorcerer, it wasn’t so I’d have to wait). It’s documentation is very well done and easy to follow. The default kernel it offers is full of extra patches giving me oodles of extra options to play with. All in all, its benefits out weigh the one problem I have with it.

As to KDE 3, as I first thought, I didn’t like it, so I’m back to the simplistic Fluxbox that just rocks my world cause its soo freaking light yet is still more usable than anything I’ve tried.

K.D.E.3

While I’m trying out this gentoo thingamy (its pretty dandy so far) I’m trying out the latest and greatest KDE. The latest version is mostly just an upgrade to the underlying libraries to the new QT version 3. But it does include some nice odds and ends.

I’ve taken a few screenshots to show it off. It looks great, but I’ve never liked the feel, its too overwhealming for my needs. I prefer the simplicity of Enlightenment or Fluxbox, but I’m giving KDE a try just so I know what I’m missing.

never buy a sony vaio

Thanks tayl0r for my new wallpaper. Love that geocities theme :D

My love of Sorcerer Linux has diminished a great deal over the events of the recent month/s. After the author stormed out and two forks of the project were created, the future of the distribution is unclear. There is no doubt it will continue, there are a great deal of people who like the system and will spend a lot of time continuing it (the two forks would not have been created if those people hadnt felt they could continue the work). However, this just isnt enough for me, I’d had my doubts about the whole system as it is anyway, there is still a lot of work required to bring it up to a release state. So with this in mind, I cast (no pun intended) my gaze at a similar distribution, which as it happened just had their major first release at the time, what a great time to try it out.

Gentoo is developed by one of the writers for IBMs DeveloperWorks section, some very good articles which I’ve spent a few hours of my life reading. The package managment system for gentoo is based on the FreeBSDs ports system which has been in service for many years and is a stable and reliable system, regarded as the best package managment systems available. One of the other core developers is also working on the GNOME project, this is great for me, since I prefer GNOME and with one of the developers also tied to gentoo, I can be sure GNOME should be reliable as far as installing it is concerned. Should be fun, I’ll give it a good try I’m pretty sure I’ll like it, but I wont be changing all my PCs until I’m clearly satisfied.

While I’m playing with a new distro, I’ll be trying out a new filesystem, for me at least, from Silicon Graphics Inc, XFS (IBM article by that gentoo developer). A journaling filesystem, optimised for large files. I’ll be keeping my ogg’s and wallpaper on an XFS partition to give it a good test.

And finally, my site has been the same for a long time, layout wise, so I’m going to give it a minor tweak to try and make it more informative and navigatable.

I may never need to leave my bed

I’m as chuffed as a little steam engine with a new cho cho funnel. I knew it was possible but for a long time I could not work it out, but now, yay, I can have remote applications running on my desktop but displayed on my laptop, through the magic power of X. No need for expensive software like PC Anywhere or the likes, its built into the heart of my display system. Gigabillions of other *nix users seemed to get it working first time hassle free… trust my luck I didn’t.

Last week I had my first real stab at it, but I could only get applications display on my desktop that were running on my laptop. Not quite what I wanted. Then yesturday I pestered a pal, Phry and he grudgingly helped me out. In the end he sorta solved the problem and somehow sorted another related problem. Although, what I have is not a 100% solution, but it works. Basically, I

ssh toby@wataru

Then type in my ultra secret password and then… (this is the kludge part)

export DISPLAY="nikita:0.0"

After that, I can run all my purday X apps on wataru (desktop) but they magically appear on nikita (laptop). I really only wanted this so I can use XMMS (Winamp clone) from wataru and control my ub3r stereo setup from my bed (however one big drawback… I still need to get up walk across the room and hit the power switch on the speakers). Before using magical XMMS I had happily controled the music via the command line app mpg123, but now I use ogg (granted I could use ogg123), and I’ve found myself a gapless and osd plugins for xmms and now I can quickly shuffle about with my playlists and mixer settings. It’s only wise I do it this way.

I’ll get myself a screenshot online when I can, since I havnt in over a month. It wont look ultra amazing since xmms will look just like xmms and you couldnt actually tell its remote but hey, stop being picky.

In other news, I’ve switched ISP to clara.net. I’ve decided to bite the bullet, give up on the cheapo ISPs that I need to change every month cause they go bust. clara.net have been in the business for a good deal of time, they are reliable and trustworthy. They may be more expensive (by about an extra £10 a month) but its worth it for the peice of mind of not being cut off every 2 hours, cut off at random times, engaged tones, downtime, etc etc etc.

After a brief check of all the stars of Star Trek, Wil “Wesley Crusher” Wheaton has the best website. It’s actually a very good read and updated daily. I shall be keeping an eye on it. William “James T. Kirk” Shatner comes a close second, regular updates and a online story created by his daughter which he stars in called Ruby.

Mathilda

Yay, I took the time to get Mathilda running properlly, she is now a fully working NFS[?] server for my network. She serves /home and /var/spool/sorcery for my laptop nikita and my desktop wataru. Granted her disk access thoughput is 70mb/s worse than nikita or wataru and about 10mb/s slower than my firewall akira. So I’ll probably end up swapping akira around with mathilda (since akira does have an extra 2gb, and the more space the better for a file server), however akira is only a pentium 200 and mathilda is a pentium3 500. We’ll we’ll see what I can musta.

Oh well, it works now, and all my settings are the same and my files are shared and in the same place when I log onto wataru or nikita. And I now share one sorcery source spool, rather than me maintaining 3.

On sorcerer, it seems a lot of troubles are plauging it, its future is very uncertain and there is the possibility it will end. Ho hum, my Sorcerer installs wont stop working if the main project dies, I can still upgrade it myself and there is already a fork project in the works. Open Source rules.

Tron

I got myself all worked up recently by playing a ton of ArmageTron, an amazing game with simple rules but fast gameplay. If you ever wanted to play the light cycle game from the movie Tron, this is defiantly the one to try (and I’ve played a lot of light cycle clones, it must be the most cloned game ever). The movie pack on their addons page adds the extra oomph needed to make you feel like the movie. (to be honest, the default look is really really bad, so I highly suggest getting the movie pack if you try the game out, which I also highly recommend, its great fun single and multiplayer).

Oh and as promised, a screenshot of my PC running fluxbox, plain and simple.

Hocus Pocus

I’ve recently been playing around with a new Linux distro. Previously I had been using Slackware, a great distro in it’s own right, but now I’ve found myself Sorcerer (review).

One of the great things about Sorcerer, is it’s fast, this is because all software is compiled specifically for my hardware (including utilising the improved instruction set of my processor). Most software comes in binary form, which is compiled for the lowest common denominator.

Where linux is concerened, the lcd is usually an i386 (pre-pentium), with windows it’s probably i586 (pentium 2) (this doesnt mean it’s better, it means it can only run in a 586 or above). Well, all my software is compiled taking advantages of the i686 (p3) that I have, meaning it all runs much faster.

But the fun doesnt end there… oh no. All the software on my system is seriously up-to-date, and can be automated to download and install all the latest upgrades to pretty much every peiece of software I have. Think of this as something like Windows Update, but without the slow IE based interface which requires your full attention. So… everyday at around 6pm my computer downloads a list of updated software to find out if there is anything new to install, and if there is, it downloads it and compiles it (and compiles it for my hardware, thus it == fast), all without my having to lift a finger. And dont think of it like it only update things that Windows Update would (that is, the browser, the media player, and patching security holes) it does all sorts of software. Why dont you take a look at the Grimoire (a grimoire is a book of spells).

And still it doesnt stop, Sorcerer has a package management system, that is, I can easily install/uninstall software with the tap of a few keys… for example, I can install mozilla by uttering “cast mozilla”, Sorcerer will go off and get me the latest copy available of mozilla, download it and compile it and install it. And if I no longer want mozilla, I can get rid of it simply also “dispel mozilla”. Now that’s EVEN easier than installing stuff for Windows. There is also a simple to use menu based program manager, for those who dont feel like typing commands.

Then comes along another bundle of joy, a brand spanking new Window Manager called FluxBox. It’s ultra ultra light, and has one of the most nifty little features i’ve seen yet for the GUI, tabbed windows… that is, you can link windows of a similar type into their own tabs, in the same way Opera and Mozilla let you browse in a tabbed fasion. Check it out!. I’ll make a screenshot when I’ve got more software casted.

Mathilda 8ball

I’ve got a new (second hand) pc, which I’ve named Mathilda. It will probably end up as my fileserver, but until I can get the network card recognised, it aint gunna be nothing.

And I havent uploaded a screenshot in a while, so I did (300k) :P.

On the ExB front, I’ve made another module cause I was bored, a simple 8Ball module, ask it a question and it will answer it with near 100% accuracy :). Here is a little example of 8BallMod in use, utilising the new IKnowTheAnswer(tm) Technology.

[09:05:43]<Xenith> ExB: does wataru love me?
[09:05:44]<ExB> My reply is no.
[09:05:46]<Xenith> Hmm
[09:05:52]<Xenith> That'd be why I'm not getting email from him
[09:05:59]<Xenith> ExB: do people love me anymore?
[09:05:59]<ExB> Yes.
[09:06:07]<Xenith> ExB: then why aren't they sending me email?
[09:06:07]<ExB> Who knows?

We recently released version 0.2 of ExB, we have big plans for 0.3.

my stor trooper

Somebody pointed me in the direction of stor troopers, little avatars you can create that resemble yourself, so, I present you with the first (and only) picture of me on the site (and spenny):

PS: I took liberties and changed, hair colour, glasses tint and tux logo in Photoshop cause the applet didnt quite have what I wanted.

PPS: Hot & Spicy Pringles dont taste very spicy.

PHP and XML

I’m still coding away on the ExB project. I’ve re-done the site so that it is now powered by PHP and XML. It was a nice learning experience teaching myself PHP, although it seems something of an odd mix (eg. the function names are somewhat inconsistant strlen and str_replace, why isnt it str_len or strreplace?). So Perl still remains my prefered web server side language.

XML is just blooming marvelous. I’m finding lots of uses for that, Java and PHP have built in support, Perl has some great extensions (which I havnt tried). XML is quite simply a file format, just like comma seperated or databases. Its power lies in the fact its highly portable (it can be used on mulitple operating systems), is easy to debug (its in plain text, so you can open up a text editor to find any problems), lots of languages are moving to have built in support.

This field has been intentionally left blank

3 weeks, 5 days, 1h 07m 41s since I last updated the site huh… ok, lets reset that.

Well within the last week I’ve been quite a busy bee working on the ExB project. The most major thing I did was make a new look website, knock up the rather dandy logo and fill the site with some content, which is now the responsibility of Xenith. Next up has been coding madly on RSSMod for the project that will allow the bot to report news items into an IRC channel. News items such as CNN, slashdot, News Forge and The Register.

Next most interesting thing that happened was I bought Run Lola Run a very cool movie, lots of eye candy, very unique. The soundtrack had me tapping my toes the whole time… so I went out and bought that too.

Installation of akira

obtaining a copy

Smoothwall is most easily available from their site, where they have a page dedicated to download mirrors. The download is about 20MB, so wont take too long to obtain on a 56k modem.

It may also be possible to get a copy on the front of a magazine as I did, but the website will always have the latest copy.

installation

Before you can install, you need to burn the download to CD-ROM as it is a CD-ROM ISO image. I used Nero (A Windows CD burner), however the Nero documentation does not go out of its way to tell you how to burn an ISO image, so I followed a guide I found.

Installation is a breeze, and can be over in as little as ten minutes. Slip the CD into the tray, power the machine on, let it frag the drive, answer a few questions, reboot and you’re done. The install program also found my network card no problem. The only problems I did have were with the CD-ROM drives, which take a random number, square it, divide that by pi, then just guess if they want to read the block of data today.

After what seemed like 20 reboots and praying the kernel didn’t panic because the drive wouldn’t pass it some valuable data, I got smoothy installed.

client configuration

To allow the clients of the network to use the Smoothwall box to access the Internet, they must be configured. Basically, thanks to TCP/IP standards, the theory is the same for any operating system, you just need to tell the clients which gateway to use.

In Windows it’s as easy as right clicking on Network Neighbourhood, properties, double click TCP/IP (for the Ethernet card), type in the IP for the gateway on the gateway tab, click OK about 30 times and reboot.

For UNIX like systems, the program route can be used to do all this in one line without the reboot and excessive OK clicking:

# route add default gw IP_ADDRESS netmask 0.0.0.0 metric 1

where IP_ADDRESS is the IP address of the Smoothwall machine, in my case 192.168.0.1.

That really is all there is to it, maybe you will need to tell some programs that they should use LAN (Internet Explorer for example) but other than that, you’re all set-up.

configuration

Configuring smoothy is as easy as… as… um… well it’s easy! Just point your web browser to the IP address of the Smoothwall box and click the link PPP to setup the phone number, user / pass for your ISPs. But first it will ask you for a username and password to get to the setup page. The username is ‘admin’ the password is whatever you chose during the installation. It can be slightly fiddly at first to work out how to manage multiple ISP profiles, but basically, you select a slot from the drop down list, but you do not click the button ‘select’ next to it, you fill in the text boxes with the ISP details then click save. The details you have entered are now saved to that slot. You use the ‘select’ button to choose which ISP profile to use for dialling. I changed the password for the user ‘dial’ to ‘dial’ so that other people on my network can dial up when they need to, but they wont have the ability to change settings (which is left to user ‘admin’).

extra

I could not just leave the box alone, smoothy uses very little resources on the machine, and is always on, so it makes a great candidate for the distributed.net client. Installation is quite easy since the program comes pre-compiled (smoothy does not have any compile tools), I just slapped it in /root/dnetc/ configured it (./dnetc –configure) ran a benchmark (./dnetc –benchmark) to see how well it performs. (0.00:00:16.60 [431,317.59 keys/sec] btw). Now it needs to be made to run at boot, so I use the vi editor, which comes with smoothy, to edit /etc/rc.d/rc.sysinit and add the line right at the bottom of the file:

/root/dnetc/dnetc --hide

I edited (using vi) /etc/hosts and added the lines:

#
#	network
#
192.168.0.1     akira
192.168.0.101   wataru
192.168.0.102   andy
192.168.1.101   nikita

That way, from any of my network clients, I could type the name instead of typing the IP address. Eg. in a web browser i could type ‘akira’ instead of 192.168.0.1, a lot easier no ?

I also added a heap load more to this from http://www.ecst.csuchico.edu/…/adblock.shtml to help speed up my browsing experience by removing most of the banner ads.

Two new styles

I managed to gather the time to add two new styles to go down at the bottom right, mozilla (based on the Mozilla Modern theme) and a style that matches what you set for your computer… so you can only blame yourself if that one looks bad.

Pinky ponder server

I was bored so I tweaked my BOFH excuse server and made myself a Pinky Ponder server.

Are you pondering what I’m pondering?

Uh, I think so, Brain, but where will we find a duck and a hose at this hour?

New site design

I’ve given the site quite a re-vamp.

To start, there is a new title graphic, this is because I lost the font for the last one, so I couldnt re-work it for the next fun thing… At the bottom of each page there are little coloured boxes, click one and the whole site changes colour!!

BotJava!

ExB http://exb.sf.net/ is an IRC bot that’s abilities can be expanded by adding modules. It’s written entirely in Java, which means it is fully OS independent (a great feature in any program). I’ve been coding like crazy making modules for this, which has allowed me to learn a great deal about the Java language, for which I had no previous experience.

I hope to use Java in the future instead of MICROS~1 Visual Basic.

Code Red

It’s the buzzword of the moment. Seems this site got scanned 200 times since the whole thing started, all by the second generation Code Red. My firewall has been getting an equal amount of attention too.

Just to recap… Code Red is Worm virus that takes advantage of a buffer overflow exploit in Microsoft’s Indexing service (something to make searching quicker) that is made publically available via Microsoft’s IIS (Internet Information Server) which is their brand of web server that is to the best of my knowledge on by default, meaning any Win2k machine connected to the net is a potential target.

Since an infected machine is a web server, I can visit the IP shown in my logs in a web browser to see the site trying to attack me. From the looks of it, the sites are being run without the user’s knowledge (cause IIS is turned on by default?), this means these computers will remain infected for… forever or at least until a reboot (or BSOD :).

My Hardware

My home network currently consists of four computers, made up of three workstations and a firewall. The Network is TCP/IP based, with each computer connected to my eight port hub, although my recent addition to my network, nikita the laptop, can optionally connect via it’s WiFi interface so I can stroll around the house (annoyingly not as far as I would like) and still stay online.

The naming I used for the PCs started out with Anime characters, but now I’m going to stick to character’s from Luc Besson films, my next pcs of sorts will no doubt be named either ‘Leon’ or ‘Mathilda’ and I’m determined to have an ‘Uncle Bob’.

Workstations:

  • wataru (main desktop pc, slackware linux)
  • nikita (sony vaio laptop, slackware linux/windows 2000)
  • andy (windows 98 client)

Servers:

  • akira (firewall/router, smoothwall)
I may not have a webcam but...

…I do have live(-ish) stats about my main desktop pc wataru. You can even check out what I’m currently listening to!

Password list maker

I’ve created a password list maker that can be used to replace randomly generated passwords, eg: “j5DxaE”, which are tricky to remember, with bunched up words like “AegeonBagot” that are far easier.

My first VRML

VRML (Virtual Reality Modelling Language) is used to create 3D worlds that can be downloaded and viewed in a web browser, however the technology never really caught on, that did not stop me making a world.

For my Mutlimedia HND (Higher National Diploma) today I made a simplistic model of our solar system.

It is purly to demonstrate VRML, much better things can be achieved with more time. The whole world is 36.8kb so should take about 5-10s to download on a 56k modem.

To view VRML worlds you need a plug-in for your browser.

If you dont already have a VRML (version 1.0 compatible) viewer, and you are using either Internet Explorer or Netscape I recommend you get Cortona (there are others, but this is the best I have found, quick and easy to install).

To get the required parts of Cortona:

  • First visit this page to get the plug-in (984kb, 2m33s on 56k modem).
  • Then you need to get it’s 1.0 converter here (32kb, 5s on 56k modem).

Cortona is compatible with VRML 2.0 by default, this 1.0 converter lets it read the older format. The only reason I coded this in 1.0 format is because its quicker to write and learn.

related links

2 new fun things and stuff

I’ve just finished making the weblinks part of the site, which is normally hidden away under the about, I’ve added a lot of links, I think about 30, which fills up 3 of the sections, I’ll add more over time.

I think I’m addicted to black & white.

I’m also passing the time writting a little irc chatter bot in perl (to run via the X-Chat irc client), affectionatly named watBot, he’s looking promising. I will post his source on here when he’s reached an acceptable level of compleation.

While you wait

While you wait, three pictures of me playing Day of Defeat.

Granted, they arnt amazing pictures, but hey!

New style

I have changed the style and I like it.

Site under development and testing

I’m almost finished.

PS: I dont guarantee ANY links to work at the moment.