Reason to get job

There are many reasons to get a job.

  • The economy’s tough. Both parents have to work at a job. You might have to temporarily suspend your side business.
  • You like the steady paycheck (although what’s considered “steady” is iffy nowadays…)
  • You like the work you’ll be doing (always a good thing).
  • You support the company or organisation that you’ll be working at.
  • You get to learn something at the job which might take you longer to learn, or you might never get to learn otherwise.
  • You like working around your peers (this depends on the job. Graveyard shifts don’t give you this).
  • You like the opportunities provided.
  • You like the equipment provided.

But I don’t think your child calling your maid “mummy” is a good reason.

That’s an advertisement.

For context, in Singapore (among the Chinese anyway), it’s sort of a status symbol to be able to afford a maid. This is equivalent to hiring butlers or housekeepers by affluent families. A maid is usually hired when a couple has a baby or young child (or more children).

OSBC Launch

My Open XML spreadsheet course is up! Click here for details.

So here’s an interesting tidbit. Writing lesson 3 (recognising styles) was the most tedious part for me. It was unbearably boring for me. It was all I could do to slog through writing each word, coming up with screenshots and writing up example source code.

Ironically, styling a spreadsheet (Open XML or otherwise) is the hardest part of creating or modifying the spreadsheet. Maybe it’s because I’ve been looking at all the styling options so much that it’s become second nature to me. I flit between the Excel user interface and Open XML SDK classes with equal ease.

Right now, I have a different view of how teachers do their work. How do teachers continue to teach the same (or similar) materials to students every day (well, every semester, but you get the point)? At this moment, I don’t want to look at another Excel colour picker.

Anyway, if you want to learn about Open XML spreadsheets, and want a more student-friendly approach, consider OpenXML Spreadsheet Boot Camp. The course includes my Open XML reference manual as the official textbook. You will learn a lot, I promise.

Teaching and public speaking

I was standing in front of the class, with a heavy lump in my throat and my heart pumping blood so hard I could feel the blood throbbing in my brain.

My primary school teacher told everyone in the class that all of us had to do a short presentation. The topic could be on anything. An incident, or hobby description, whatever. The point was to get us to speak in front of the class.

So I talked about David Eddings (my favourite author. Still is). I talked about his book about the powerful jewel named Blue Rose. And I talked about one of his characters (Kalten) mistaking something.

“And so they defenestrated him.”
“They did what?!? That’s a terrible thing to do to a man.” said Kalten.
“They threw him out of the window.”

Just in case you’re wondering, Kalten thought that man was castrated. Which would be a terrible thing to do to a man.

No response from the class, even the boys. Apparently 11 (10? 12? Can’t remember…) year olds are too young to understand the loss of genitalia…

And so I’m wondering, aren’t teachers also public speakers? Granted the audience typically isn’t big, but teachers still go up in front of everyone and start talking (well, teaching, but let’s not split hairs over semantics).

It’s a wonder how university professors get students to learn anything. When I last left university, professors were graded on their ability to teach. Possibly as a criteria to continuing their tenure. We take education seriously here in Singapore.

In closing, I’ll be teaching a course (up in 3 more days!). It’s called OpenXML Spreadsheet Boot Camp, a programming course on Open XML spreadsheets. Half the course is about dissecting the behaviour of Microsoft Excel, so you might find that interesting even if you don’t use the Open XML SDK or Open XML spreadsheets in general.

Sometimes, medium is everything

I sucked at arts and crafts. So when my primary school arts teacher told the class to come up with our own art projects to submit, I wasn’t too happy.

Luckily, I had a children’s encyclopedia (yes, it was still a thing back then…) and I flipped through the arts and crafts book… And found something interesting.

It was a woven seat. Basically you take strips of newspaper (the printed kind. Yes, it was still a thing back then…) and weave them together. I believe there were 2 sets of the weaves, and then you weave them together at the edges. Each strip was maybe 4 layers of newspaper, so the whole thing turned out to be quite bulky. And soft due to the material used.

My arts teacher was positively ecstatic, probably because my newspaper woven seat was one of the few original projects in the class. However, the “dirtiness” of the woven seat bothered her. You know newspapers are (were?) printed with ink, and newspaper ink can, you know, smudge your fingers.

So she asked me to make another one, but use construction paper instead.

That was hard. Construction paper is rougher and less pliable than newspaper, so it’s harder to weave. In the end, the one made with construction paper didn’t have the seat-feel to it.

A simple solution to the newspaper woven seat being “dirty” would be to wrap it in clear plastic. This way, the texture is retained, the softness retained, the “artistic” look retained, yet it remains “clean”.

Construction paper is just not very suitable for this particular art project. Sometimes, medium is everything.


My Open XML spreadsheet class is starting next Monday, 2 July. I’ve written a programming guide on the topic, but this is the first time I’m writing a study course curriculum on it. I’m excited!

Stereotypes and Programming

Generally, stereotypes are bad. They’re useful only as a tool to fill in gaps, but most people use it the wrong way, which is they rely *only* on their version of the stereotype.

Also, all software frameworks are stereotypes. Also, the sun was being dramatic.

Teaching classes

I’ve been asked what possible career could I have with a maths degree. The asker usually already have an answer. Be a teacher.

When I graduated from university, it was about a year after Sep 9/11. Finding a job was hard. My friends, driven to desperation, decided to see if teaching was a viable career. I almost wanted to try too, but then I deliberately decided not to be a teacher (at least in Singapore), so I just followed my friends to the application centre.

I spent maybe an hour looking at the architecture of the centre while my friends filled in the application forms. So in Singapore, before you’re approved as a teacher, you had to go study at National Institute of Education (NIE) first. This is on top of whatever degree you’ve already earned. NIE teaches you how to be an effective teacher (we take education seriously here in Singapore).

After NIE, then you get assigned to schools. I don’t know the details, but I believe you don’t get a choice about the assignment.

Out of my university friends, only one actually became a teacher. There was once I mentioned that I forgot the double angle formulas of sine and cosine. She lectured me on that, together with another friend who was a part-time maths tutor.

I have since learned my lesson. (By not saying anything that’s maths-related. What, you think I’d go memorise the double angle formula just in case? Sheesh…)

So it’s a weird turn of events that I contemplated teaching a class of my own. It’s when I realised that classes on professional subjects are different than academic subjects. I’ve gone to a few Visual Studio courses (because they were the only courses I was approved to attend, and upper management pressured me to “Go take some courses dammit Vincent!”. Well, my manager didn’t actually say that, but the tone was there…), and the main difference was that you actually have to get something done.

So now, I’m teaching a programming course. Apparently, there are many tutorials out there teaching you how to do something in an Open XML spreadsheet (and for Word documents), but no one really teaches you how to know what settings to use.

The goal of the course: Given an Open XML spreadsheet (say, as a user requirement), reproduce that spreadsheet (with data changes of course). It’s called “OpenXML Spreadsheet Boot Camp”, and you can find out more here.


It was cold in the computer lab. I finished typing with a flourishing [Enter] and…

A bunch of compilation errors longer than the menu list of McDonald’s poured onto the screen.

What?!? I checked my program again, and found it. A missing semicolon. I typed
cc lab01.c -o lab01
again with a slightly less flourishing [Enter] and…

A blinking cursor on the Unix command prompt. Yes! I was certain it was error-free. Oh right, I had to run the program to check that it’s actually correct… No program is certain till you test it. And even then…

Oh boot camp…

Which reminds me of the time when I was in military boot camp. Everyone was tired. The corporals and sergeants and officers might be bossing you around, but at the end of the week, even they wanted to leave camp on time.

However, leaving the camp on time on Saturday depended on the ranking officer.

There was a saying that when the ranking officer said everybody could leave at 1:30pm on Saturday, it didn’t mean everybody could actually leave at 1:30pm on Saturday. The sergeants advised all of us recruits to keep our hopes down. Then when it actually happened, we could take it as a pleasant surprise.

Maybe it was “Everybody eats lunch at the cookhouse. Inspection of bunk at 1pm. The whole company can leave at 1:30pm if they pass.”.

You know what? Everyone ate with gusto. Everyone rushed back (with impeccably cleaned utensils of course) to the bunk. Buckets of water to wash the floor and walls. Even corridors weren’t spared. Lockers were wiped. Uniforms were tidied. Beds were made and arranged in strict 90 degrees to the walls and in line with the beds on the opposite wall.

Even then, we weren’t certain we could leave at 1:30pm. Which reminds me of a story I read…

Telling weather

There’s a book series called Elenium written by the late David Eddings. In it, there’s a race of people called Elenes. This race was described as being impeccably logical, almost to a fault.

There was a scene where this Elene logic was being made fun of. A character said that it would take an Elene forever to tell you what the weather was like, even if all you needed to do was look out the window. Another character said,

“Ahhh, but when an Elene tells you it’s raining, you’re absolutely certain that it’s raining.”

It didn’t happen, till it happened.

Because I read David Eddings *cough*, I didn’t feel too bad waiting for the go-ahead to leave camp. If it happened at 1:30pm, we were happy. Even if we could only leave at 2:30pm, we counted our blessings.

Back at the lab…

I typed “lab01” at the command prompt to run my program. The bane of my Unix C programming existence happened.

Segmentation fault.

The worst kind of error because it’s one of the hardest to trace and find the bug. And I was doing matrix computations. With malloc here and pointer there.

Nothing is absolutely certain. The best you can do is have a good chance. The only things that are certain are in the past. And you know what they say about history?

History is written by victors.

Go make something happen.

SpreadsheetLight now freely downloadable

Wow, I just mentioned I relaunched SpreadsheetLight, and now it’s free?

Truth be told, it was a hard decision. I spent a lot of time and effort on SpreadsheetLight. There’s an ECMA documentation PDF that’s over 5000 pages long involved. There’s cross-referencing with the Open XML SDK documentation. There’s experimentation with the actual Excel software to make sure the values are correct. I wrote copious amounts of XML documentation (every single public function and property) so that IntelliSense helps the programmer while he’s using the library.

Did you know Excel’s interface takes in values that are different when assigned to certain corresponding properties? SpreadsheetLight functions take in those Excel “approved” values rather than the Open XML recognised ones. Using SpreadsheetLight is as close to using Excel as you can get.

The crucial point came down to this: I want programmers to benefit from the software. It’s of no use to me or any programmer lying forgotten and hidden behind a pay wall.

And so I freed it.

It’s now free, both in gratis and libre. It uses the MIT License. Download it. Do whatever you want. Come back and tell me how easy your life became.

I only ask that you tell anyone who might benefit from the use of a spreadsheet library. Even if you don’t need to create spreadsheets, you can still download it and see how easy it is to create one.

SpreadsheetLight can be found here. Thank you.