Browsing all articles in Uncategorized

Flattr this!

One of our clients has a large eLearning website that we maintain.
They’re based out of Bangkok, so they flew me up for some onsite work, part of which culminated in this plugin here.

eFront is a Learning Management System, similar to Moodle.
Its billed as a User Friendly Learning System, although having used it, I’d say thats a bit of a white lie! 🙂

More on eFront here –

eFrontWPI Plugin Overview

This plugin provides single login functionality for WordPress / BBPress and eFront

It will optionally create an eFront user if one does not exist (option to set this in plugin settings).
For login to function the WordPress user and password must be the same as the eFront username and password.

Plugin is based on the v1 api provided by eFront. Should work with v2 also.
To use the v2 api, simply change the eFront URL to the appropriate URI

This plugin requires cURL (php5_curl) to be installed as a pre-requisite.


Upload this folder into your wordpress / bbpress plugins folder.

Typically ->
[your wordpress folder]/wp-content/plugins/

Activate plugin, then go to eFrontWPI Plugin Settings, and enter the appropriate data:

* eFront URL should be the full URI for the eFront API on your server.

* Admin Login
The eFront Admin user (suggest create a user for the API to use)

* Admin Pass
The eFront Admin user pass

* Create User checkbox
Check if you want a user automatically created.

* Current eFront token
This is a read only field which shows the current eFront API token (if any).
This is a good way to check if the plugin is working – if you have a token, it should be working.

Download here – eFrontWPI v1.0

Flattr this!

During the research into LCD updating on the T6x IBM’s, I learned a few new things.

One of those was that I had some of the parts lying around the office necessary to make a projector.
As my office desk typically looks like a mad scientist uses it, I thought I may as well add some more goodies to fill the missing bits.

First up was an LED light off taobao. As the 100 watt ones are still a little pricey, I’m going with a 50w one for testing purposes.
Visitors to the office who still have LED driven holes burned into their retina’s agree that yes, it is quite bright.

Probably not bright enough for our purposes, but good enough for testing.

Some photos of that here –

The hokey CPU fan cooler hooked up to the back adds to the effect.

The LED comes in a variety of color temperatures, ranging from yellow white, pure white, through to blue white, we chose pure white, as thats closest to what they normally use in projectors.

Projector and fan came to about 400rmb including shipping. Seller was quite nice to deal with too, and advised us which would be best for the purpose.

Now that our lighting requirements were minimally in place, we looked at the next requirement.

LCD screens.

As the 2 or 3 people that read this blog are aware, I just bought some rather nice QXGA LCD’s. These would be quite nice to use for a projector, but, unfortunately, getting hold of controllers for them is a little bit harder than I thought it would be.
I did manage to find some, but the prices are a little high, so I put that on the back burner for now. I will be looking into that again in the near future though.

First, a little detour onto the subject of LCD’s.

Essentially LCD’s are mass produced these days by a small handful of manufacturers, and the controllers for LCD’s are also mass produced.
Controllers pretty much come in a few different capacities, but essentially they’re all the same featurewise.
You buy a controller based on the maximum resolution it can handle, then program it for the LCD you have.

Controllers are dirt cheap – most can be found for 20rmb low end eg SVGA, through to 120rmb for medium end – eg 1920×1200 /DVI+VGA.
This means that most laptop screens can easily be reused as desktop screens for reasonably cheap prices.

TV’s are also essentially exactly the same as screens now, so the hardware is exactly the same.
Controllers for TV are usually a little more expensive, but not overly so. I bought a multi-input (HDMI, VGA, Tuner etc) with USB for 200rmb.
Different chipsets do better jobs at HD, but its very very generic stuff these days.

You need an invertor board for the lighting (if its not an LED based LCD) – those go for 10-20rmb.
You need a controller card to drive the LCD. (Most sellers will make you a cable for your specific LCD, and program the controller for a minimal charge)
You need a power supply (typically 12v 3amps+-).
Lastly you need a case.

We gave this a test run with a salvaged a 14″ LCD from a hosed laptop.
We bought a controller board (20rmb), power supply + empty screen casing (130rmb) off taobao. While it wasn’t necessarily worth it to do that, we did learn that its fairly easy.

Programming controllers is also pretty straightforward, but I’ll probably expand on that in another post.

As I wanted an HD capable projector I looked at what the smallest size HD screen (WUXGA) available on the market today is – that happens to be the Samsung LTN154U1
I got mine for about 500rmb.

Most people will be wondering right now at this point how an LCD screen is going to be used in a projector.

Essentially LCD’s are transparent – an LCD screen typically comes sold ready to use. This means its shipped with lighting built in, plus a reflective back surface.
We’re going to need to denude the LCD off all that – I’m going to have to disassemble the LCD display, and take out all the non-essentials. What I’ll end up with will be transparent, and fairly delicate.
Hopefully I won’t break anything when I take the LCD out of the casing, and remove the lighting, backing etc. Breaking it will be costly!

Next we’ll need a way to shine our light source through the LCD.
While we have a strong light – it won’t be very useful as is, as the light will mostly be concentrated in the center of wherever its pointed at.
So, we need a way to disperse the light in a directed way.

Typically this is done with a Fresnel. Fresnels are rather cool lens typically made out of plastic. They magnify or reduce anything passed through them.
We’ll be using a fresnel in front of the LED light to disperse the light evenly through the LCD.
Once its through the LCD, we’ll be using another Fresnel to concentrate the light back into a smaller focal area, so that we can throw it through a lens, and see something on a screen.

For a 15.4″ screen, we need a 400×320 sized 330mm Fresnel, and a 500mm Fresnel.
The 330mm (aka our collimator) will be placed in front of the light source, the LCD will be placed 10-15mm in front of that, then finally the 500mm (aka our collector) to concentrate the light + display output into a nice ready to use focal area for our rather expensive triplet lens.
We’re using a 500mm triplet as the lens, mostly as all the projector websites are using those for 15.4″ screens.

Fresnels were fairly cheap – 80rmb each or so.

The lens was rather more expensive. Ours was close to 600rmb with shipping!
When it arrived, we saw why. It definitely feels like its worth the money.. Unfortunately ours arrived with a crack from shipping, so we had to send it back. The replacement should arrive in a day or three.

While I haven’t setup the fresnels yet in action, I did test out the controller board, and LCD.

Photo’s below of everything.

While I haven’t built any casing yet, I’m fairly confident we should be able to knock something up quickly to house all the parts.
Hopefully ours will be sturdier than this professional build I saw online –

Flattr this!

So far in this series, we’ve learnt a few things.
First, is that this hardware is quite nice for hacking purposes, as they’ve left the uBoot in a nice state, and have easily accessible debug ports.
Second is that doing this kind of thing isn’t really that complicated, and can be quite fun.

We’re pretty much ready to start doing our own coding, as we know how the images are packed, and we can use the uBoot to either flash onl the romfs on or own, or alternately roll a complete linux + romfs binary image.

For that, we’ll need to be ready to roll up our sleeves, and actually do some development (finally!).

Getting a development environment setup is our next step, as we’re ready to test out adding binaries.

I’m using Debian, but most Linux environments should be similar. OSX is BSD based, and more of a pain due to Apple not putting everything needed in the normal places, so I’m doing this in a VM on my Macbook under Debian.

Go grab a copy of “NUC700 Series MCU uCLinux” from here

Setup a VM for Debian (not going to cover that) or install Debian or similar.

Copy the zip file to /home in the OS you use.

cd /home
mkdir N745
cd N745
unzip ../NUC700\ Series\ MCU\ uCLinux\

You should now see something like this:

:/home/N745/NUC700 Series MCU uCLinux BSP# ls -al
total 68
drwxr-xr-x 6 root root 4096 2009-05-15 20:02 .
drwxr-xr-x 3 root root 4096 2010-04-30 02:23 ..
drwxr-xr-x 3 root root 4096 2009-05-15 20:06 bootloader
drwxr-xr-x 2 root root 4096 2009-05-15 20:03 bsp
drwxr-xr-x 2 root root 4096 2009-05-15 20:02 doc
drwxr-xr-x 4 root root 4096 2009-05-15 20:02 mkrom
-r--r--r-- 1 root root 44632 2009-03-27 11:49 NUC700 uClinux BSP Release Note.pdf
debian:/home/N745/NUC700 Series MCU uCLinux BSP#

Unfortunately the build *really* doesn’t like long filenames, so lets move all this to the N745 folder, and get rid of the annoyingly named folder.

/home/N745/NUC700 Series MCU uCLinux BSP# mv * ..
/home/N745/# cd ..
/home/N745/# rm -r NUC700\ Series\ MCU\ uCLinux\ BSP/

We still need to unzip the BSP, as its compressed, so go into bsp

/home/N745/# cd bsp
/home/N745/bsp# tar -xzvf NUC700BSP.tar.gz

Yay, yet another bloody subdirectory. Sigh.

/home/N745/bsp# cd NUC700BSP
debian:/home/N745/bsp/NUC700BSP# ls -al
total 183300
drwxr-xr-x 2 shanghaiguide shanghaiguide 4096 2009-03-26 22:38 .
drwxr-xr-x 3 root root 4096 2010-04-30 02:29 ..
-rw-r--r-- 1 shanghaiguide shanghaiguide 29521418 2009-03-26 21:55 applications.tar.gz
-rw-r--r-- 1 shanghaiguide shanghaiguide 43742203 2009-03-26 21:22 arm_tools_3.3.tar.gz
-rw-r--r-- 1 shanghaiguide shanghaiguide 36108739 2009-03-26 21:11 arm_tools.tar.gz
-rw-r--r-- 1 shanghaiguide shanghaiguide 5643452 2009-03-26 21:24 build.tar.gz
-rwxr--r-- 1 shanghaiguide shanghaiguide 4370 2009-03-26 22:31
-rw-r--r-- 1 shanghaiguide shanghaiguide 72439431 2009-03-26 20:53 uClinux-dist.tar.gz

Run the install – I’ve decided to install the whole shebang to /home/N745

Note – The observant amongst you will notice I’m running this as root.
This is NOT recommended. I’m running under a VM solely created to play with this, so I don’t really care if I break it (as I can roll back to the initial install image fairly easy in vmware). Don’t do this yourselves (unless you want to break things).

debian:/home/N745/bsp/NUC700BSP# ./
firstly install arm_tools.tar.gz -->/usr/local/
wait for a while
successfully finished installing arm_tools.tar.gz
now begin to install build.tar.gz,applications.tar.gz and uClinux-dist.tar.gz
Please enter your absolute path for installing build.tar.gz, applications.tar.gz and uClinux-dist.tar.gz:
/home/N745 has existed
please wait for a while, it will take some time
whole installation finished successfully!

We finally have our build environment unzipped, and its sitting in nuc700-uClinux.

debian:/home/N745# cd nuc700-uClinux/
debian:/home/N745/nuc700-uClinux# ls -al
total 24
drwxr-xr-x 6 root root 4096 2010-04-30 02:31 .
drwxr-xr-x 7 root root 4096 2010-04-30 02:31 ..
drwxr-xr-x 7 root root 4096 2009-03-25 00:44 applications
drwxr-xr-x 2 root root 4096 2009-03-26 21:23 image
drwxr-xr-x 12 root root 4096 2009-03-26 04:54 romdisk
drwxr-xr-x 10 root root 4096 2009-03-26 06:50 uClinux-dist

uClinux-dist has the default binaries we want, plus we need to configure the kernel, so lets visit there first (the more adventurous can look at the other folders)

debian:/home/N745/nuc700-uClinux# cd uClinux-dist/
debian:/home/N745/nuc700-uClinux/uClinux-dist# ls -al
total 84
drwxr-xr-x 10 root root 4096 2009-03-26 06:50 .
drwxr-xr-x 6 root root 4096 2010-04-30 02:31 ..
drwxr-xr-x 2 root root 4096 2009-01-22 23:27 bin
drwxr-xr-x 3 root root 4096 2009-03-26 06:50 config
-rw-r--r-- 1 root root 18007 2009-01-22 23:29 COPYING
drwxr-xr-x 3 root root 4096 2009-01-22 23:27 Documentation
drwxr-xr-x 11 root root 4096 2009-01-22 23:29 freeswan
drwxr-xr-x 5 root root 4096 2009-01-22 23:29 lib
drwxr-xr-x 15 root root 4096 2009-03-26 06:50 linux-2.4.x
-rw-r--r-- 1 root root 3228 2009-01-22 23:28 MAINTAINERS
-rw-r--r-- 1 root root 7977 2009-01-22 23:27 Makefile
-rw-r--r-- 1 root root 4935 2009-01-22 23:29 README
-rw-r--r-- 1 root root 1654 2009-01-22 23:29 SOURCE
drwxr-xr-x 158 root root 4096 2009-01-22 23:28 user
drwxr-xr-x 4 root root 4096 2009-03-12 03:54 vendors

Looks like it should be fairly easy, right?

The default build doesn’t work. Why would it be that easy.

You’ll end up with issues like:

entry-armv.S:782: Error: Internal_relocation (type 210) not fixed up
entry-armv.S:784: Error: Internal_relocation (type 208) not fixed up

So, we need to make sure we start off fresh.
Also, note that we’re building for an N745 cpu, so we’ll need to configure that at the make config stage.
Lastly, and EXTREMELY important, is that we’ll need to put our required tools in the path.

sample PATH below:


debian:/home/N745/nuc700-uClinux/uClinux-dist# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/arm_tools/bin

debian:/home/N745/nuc700-uClinux/uClinux-dist#make clean

Now we have a choice - Recommend use make xconfig if possible.
You need to have a GUI, and have tk installed. (apt-get install tk)
Otherwise run make config, and run through the tediously large amount of questions


debian:/home/N745/nuc700-uClinux/uClinux-dist#make xconfig

OPTION#not recommended

debian:/home/N745/nuc700-uClinux/uClinux-dist# make config
config/mkconfig >
# No defaults found
* Target Platform Selection
* Choose a Vendor/Product combination.
Vendor/Product (nuvoton/nuc710, nuvoton/nuc740, nuvoton/nuc745) [nuvoton/nuc710] (NEW) nuvoton/nuc745

[For the rest, I used the defaults (except for the Network Tools questions, which I said Y to all)]

Continue here from whatever menu (x)config you used.

debian:/home/N745/nuc700-uClinux/uClinux-dist#make oldconfig

[Needed, or compile doesn't work]

debian:/home/N745/nuc700-uClinux/uClinux-dist#make dep

[A gazillion pages of info later, we have a build environment!]

We’re finally ready to use our weapon of mass destruction.


It should compile without issue.

Next step is to mount our created rom image, and copy the binaries off, or just go to the compiled folders, and get the binaries.

I’ve done this step already, and have a zip file of a few useful files ready.

-rwxr-xr-x 1 root root 110888 2010-04-30 03:50 ftpd
-rwxr-xr-x 1 root root 55164 2010-04-30 03:52 ping
-rwxr-xr-x 1 root root 1201904 2010-04-30 03:51 ssh
-rwxr-xr-x 1 root root 1219864 2010-04-30 03:51 sshd
-rwxr-xr-x 1 root root 118004 2010-04-30 03:45 telnet
-rwxr-xr-x 1 root root 45460 2010-04-30 03:45 telnetd

file *
ftpd: BFLT executable – version 4 ram
ping: BFLT executable – version 4 ram
ssh: BFLT executable – version 4 ram
sshd: BFLT executable – version 4 ram
telnet: BFLT executable – version 4 ram
telnetd: BFLT executable – version 4 ram

Download that here – arm7-nettools

All we need to do now is mount our romfs image, unzip the, copy the arm7 bFLT binaries over to bin, add telnetd, sshd, and ftpd to our /bin/init, and rebuild by running genromfs on our filesystem.

We can then finally flash our new romfs, and test it out.

Don’t forget that romfs is a read only file system, so we can’t modify it by mounting it. We need to mount, copying everything to elsewhere, do our required bits and pieces, then rebuild.


mount -o loop -t romfs still_unsure.img /mnt/test -r

mkdir /mnt/new
cd /mnt
rsync -arv /mnt/test/ new
cd new/bin

[We need to also edit init]
pico init



eg –
cat init
mount -t proc none /proc
mount -t ramfs none /usr
mount -t ramfs none /swap
mount -t ramfs none /var/run
mount -t ramfs none /etc
mount -t ramfs none /flash
mount -t ramfs none /home

Change to the next directory up, and lets run genromfs

genromfs -d new -f testrom.img
debian:/mnt# ls testrom.img
debian:/mnt# ls -al testrom.img
-rw-r–r– 1 root root 3329024 2010-04-30 04:18 testrom.img

In theory, this should be usable (famous last words!).

Unfortunately, I can’t try testing on that at home, as all the equipment is at the office, but that should be fairly easy.

Probably also some small config issues to sort out, as ftpd, telnetd and sshd will probably choke without their related /etc/whatever config files needed, but we can sort that out via serial on the debug ports.


Cube vs Cube

Flattr this!

Obviously I’ve had waaaaaaaaaay too much fun with my newly purchased coffee machine today.
Photo’s (and story) below.

Its a match of the titans.

Frog design vs A+P Cahen.

No rolls barred, its Cube vs Cube.

In the left corner, we have the old, the venerable…

G4 Cube

Part frakkin Toaster, part computer, (ex) fishtank, part space heater.


The newcomer with an attitude, he’s shiny, and he isn’t afraid to show it off.

Le Cube

Read more »

Flattr this!

Note to clients that we will be closed from 13th – 19th February for Chinese New Year.

Urgent issues can be addressed either by sending an email to or calling my mobile number on 13901 802 269.

Have a good vacation, and a great year of the tiger!

Flattr this!

New rules are now in place that restrict applications for Chinese domain names (anything ending in .cn)

CNNIC issued new guidelines for registrars and hosting companies on January 6th / 2010.

Roughly translated, these state:

CNNIC (China’s Internet Domain Government Agency) wishes promote the standard and healthy application of .CN domain names.
CNNIC aims to coordinate with China’s review mechanism for domain name registration information and further crack down on registration of domain names with false information.

What this means in non-government-speak is that from now onward new and .cn domains cannot be registered unless you are an officially licensed entity within China.
Existing domains can be renewed for the meantime though (pending verification of details/validity).

This has been in process since mid December, as individual registrations were the first to get blocked

Chinese domain name supervision organization China Internet Network Information Center announced that starting from 21:00 on December 14, 2009, it closed domain name registrations for individual users who are not purchasing domains on behalf of companies or organizations. Prior to this sudden announcement, China’s central television station criticized domain name registration service providers and agencies for false, inaccurate or incomplete information in the registration process.

More here on that here –

Entities wishing to register domain names for others will need an ICP许可证 (ICP Xu Ke Zheng).
The ICP许可证 is a commercial licence, which is different from an ICP备案 (ICP Bei An).
We will also be subject to new requirements for new domain registrations (China loves paperwork!)

The Notification about further enhancement of auditing domain name registration information

In order to further enhance the authenticity, accuracy, and integrality of the domain name registration information, now notify as following:

1. Domain name applicants need to submit the formal paper based application material when making the online application to the registrar. The application material includes the original application form with business seal, company business license (photocopy), and registrant ID (photocopy).

2. Registrar should carefully review the application material. When application is deemed qualified, registrar need to submit the application material via fax or E-mail to CNNIC, and withhold the original application material.

3. From the day of the submission of online application, if CNNIC does not receive the formal paper based application material within 5 days or the application material auditing is not qualified, the domain name to be applied will be deleted.

4. The above regulations will be executed since 9:00AM (Beijing Time), Dec 14th, 2009.

If you have any question, free to contact us at 86-10-58813000 or email to

Existing ICP Registrations
In addition to these new rules, all existing domain registrations are being scrutinized carefully, and all details are being verified.
As we have been quite proactive in ensuring that all clients have ICP licensing, and keeping our upstream ISP / contacts at Shanghai Telecom advised of anything information they require ahead of time, we expect that this will cause minimal disruption to our services.
If we do need to verify additional information from clients, please be prompt in forwarding them to us if we do request them, to avoid issues.

New ICP Registrations
Due to the above checks, new ICP registrations (which are required for any domain hosted in China) are taking substantially longer than the normal 2-3 days. We are currently seeing delays of up to 2 months for new license applications from the MII (Ministry of Information). We deal with the licensing bureau’s on a daily basis, and are notified quickly in case of issues, but the current checking requirements are just making everything take rather longer than is usual. We ask clients to be patient while their ICP registration is in progress. We are aware that it is not an ideal situation to have to wait for a few weeks, but we are dependent on the government issuing body, who are very very backlogged with work right now. License applications that are currently in process can be checked by clients at the government website here –

Computer Solutions client ICP Registration site is here – New clients can register a user account on our ICP site, and submit an application form from our site.

Flattr this!

Early Monday morning it was bought to our attention that some clients could not receive mail, and others were having difficultly reaching their subdomains.

Investigation of the issue showed that the affected clients were missing DNS records.

Our DNS services are provided by a 3rd party – ServerBeach.
ServerBeach recently got bought out by a larger company Peer1.

The geniuses at Peer1 have managed to lose all our DNS info for over 400 of our domains during a migration from ServerBeach to Peer1 provided services, and now a substantial number of our clients have missing or incomplete DNS records.

They are aware of the issue, and are working on it.

We received an email notice about this this morning (after 7 or 8 hours of their DNS being offline)

Dear ServerBeach Customer,

At approximately 11:30am CST today we encountered an issue with our DNS services being imported into the new ServerBeach portal. This may be causing an interruption for certain domains that are hosted on the GeoDNS servers.

We are currently working diligently to correct this issue and will provide an update when DNS services are fully functional.

All of us at ServerBeach sincerely regret the inconveniences associated with this incident, and will fully stand behind our Service Level Agreement. We apologize for this disruption and thank you for your continued patronage and understanding.

If you have any questions regarding this issue, please open an online ticket at or contact our support team at 1-800-741-9939.


Brian Daffern
Director of Support

We have raised a number of tickets with ServerBeach / Peer1 regarding this, and hope for a speedy resolution to the matter.

As an interim measure I’ve added forwarding records for domains affected, so that mail received on the webservers that host affected domains know to forward mail to the correct mail server.

ServerBeach is updating a forum post regarding this issue here:
(Note that in the second post they incorrectly say it has been resolved. It has not been resolved yet)

If ServerBeach / Peer1 cannot resolve this by this evening, we may have to look at changing to a different DNS provider.
This is a last resort measure though, as DNS server changes take 1-2 days to propagate throughout the internet.

Apologies for any inconvenience, and we hope you can bear with us while we resolve the situation.

If you have any questions, please address them to our support email: support at

Flattr this!

Apparently the new thing in blogging in China is to be eclectic.

While I have been blogging/writing in China for a good few years longer than most of even the longest China blogs out there (I started in 95, beat that haha!), I haven’t really thrown it all into one spot.

Plus mostly it all went into forum postings on long lost sites that I should revive at some point (D.D’s Club and Shanghaiguide I’m looking at you), so there is a vague chance I may get to revive some of it from the depths of bit rot hell, and post select bits in one place.

Too be honest, this is probably going to turn into a rant or pure SEO spammy keyword promo post to get more hits for the blog anyway but…

Apparently I should also mention Puppies, Kittens, that cool dude I totally hung out with last night and partied till dawn with, and the 15 chicks we hooked up with that night, plus god isn’t China a total pit, I mean they don’t even speak English here, what the F!*

*This is an in-joke that no-one else will get but the Jojo, and readers of That’s not Kitto.

Back to being eclectic, shall we, and less of the “in” jokes.

The honest truth is that I’m eclectic enough apparently, although that might also be a slightly schizophrenic way of looking at my diverse random project ideas.

Over the last few months, we’ve done the following interesting projects, some for love, some for money, and some for the hell of it.

Figure out which is which, and see which of them you like.

No.1 on our list is:

Lets face it, once a geek, always a geek.
I discovered twitter, and for a few days was happy playing in a new medium.
I did note that twitter had a limited character span (140 chars) for messages, and it truncated URL’s to save space.
Taking a quick look around I saw plenty of clones oversea’s, but nothing local, so I grabbed my trusty keyboard, and a few hours later and a quick search of what was left in .cn domain space I invented, the first Chinese TinyURL clone.

Its even got its own blog, and twitter feed.

Use is slowly growing, and we’re starting to see an increase in use and awareness of in China and oversea’s. has also started using it for their venue twitter links (5000+ urls).

No. 2 is –

iWantOne started out as an outlet for our badges.

The badges themselves started out from a post on LPCoverLover via a sighting on BoingBoing.

A quick trip to taobao, and we had a badge machine, and lots of idea’s.

These quickly culminated in my staff going nuts over snoopy badges, and my prompting them for cool stuff for foriegners (we’re suckers for cultural revolution related artwork).

We quickly got bored doing that, and moved onto cool phrases.

Coffee at Moganshan lu led to a brainstorming session about cool ways to promote Shanghainese (an under promoted language imho), and a whole set of cool phrases.

Some publicity shots, and some talk about it over here at
(Note that I am also occasionally a contributor to the 56minus1 blog, although I completely avoid talking about stuff we do ourselves).

No 3. Fridge Magnets – is a rather cool unique idea, and something that led on from the badges.

One of our clients asked me why we didn’t put an English translation on the badges as well. Which, to be honest, I’d thought about, but as I’m a pretentious I can speak Chinese better than you so nya nya kind of foreigner, didn’t want to do. Plus it also meant remaking a bunch of badges, and I’m lazy.
*Pick one of the above for the correct answer.

It did lead me to think, well hey, why don’t I make some magnet word sets like you used to see a few years back when Magnet Poetry was all the craze.

An idea was born…

A few days later, we had our first rough draft of the first magnet set we wanted to make “Talking to your Ayi”, and a few agonizing days later teaching my art team how to use illustrator correctly so I didn’t have to spend over 12 hours redoing their alleged “good” version *again*, we had something we could play around with. This also involved some running with scissors, and lots of small pieces of sharp paper, to put the danger, and comic tragedy of it all into perspective.

A quick round or two with friends, roman’s and countrymen, and we had most of the mistakes corrected also.
Interesting factoid – I could point out more mistakes than the native speakers could.

Even more weeks passed and we had a sample set. Even more weeks x2 later, lots of shouting, changes, and scowling (followed by light rain), we actually had a box design that I liked, and all was good.

This was closely followed by lots of my own money changing hands with dodgy factories in outer godknowswhere, a minor whoops at the factory meaning a reprint, and finally a rather large kuaidi delivery to our office later, I actually had a product in my hands, yay!

We’re currently pimping the sets out to anyone that stands still long enough – Smart Shanghai is the first to publish something about us, and expect to have some more publicity and some sales soon.
Plus, its been rather fun making something that people can buy (or I can throw at the kuaidi guy), instead of our usual intangible products – websites, websites, and more websites.

Our Fridge Lingo Magnet sets are available now at select venues around town, or via the website.

Direct link to the Magnet sets here.
They are honestly quite cool, and I’m extremely happy to be a father to my first live baby project.

Anyway, I’ve rambled on enough, and to be honest, I’m a lot more eclectic on Twitter.

This is Lawrence signing out, and I hope you enjoyed the ride.

Flattr this!

A man with a dream.

Chen Zhao Rong (陈昭荣) dreamed of flying.

Despite not being able to read English, and with only a primary school education, Chen scoured through foreign flying websites, checking out pictures and schematics, before finally starting to build his helicopter.


Read more »

Flattr this!

We experienced an outage this morning when one of our mail server hard drives failed, causing mail to stop.

The hard drives will need to be replaced in order to ensure data is protected.   As replacement will necessitate some downtime while spare drives are being installed, and existing ones replaced, I have scheduled this for later tonight, or early tomorrow morning.

The new drives have been ordered, and we are waiting on their arrival.

Replacement will be done out of normal office hours in order to minimize further inconvenience to clients.

We expect the server to be down for 20 minutes when we first add the new drive, then for a further 20 minutes  2-3 hours later once online backups have been copied over to the new drive.   We will update the blog with expected outage times once we have further details.


Seems the drive failure(s) are due to a firmware bug in the hard drives..

We’ve replaced drives in 2 servers so far (I replace drives yearly as a matter of principle), and still need to change another 2.
Unfortunately as one of our other servers drives decided to crap out in sympathy, the 2 drives I had for replacements had to be used immediately in different machines (thank you very much Seagate for ruining my day) and have both been replaced with Western Digital drives and both need to be replaced still.  This will get done as soon as I can arrange additional units this week (26th Jan+-). and are not using Seagate drives, so don’t need to be changed thankfully!

We have also replaced the fan’s in all the servers while we were doing maintenance.
Please bear with us while we complete our replacements.

Last time we buy Seagate…

Further reading –