Latest Entries »

copy the sql file into a folder

>set path=c:\xampp\mysql\bin

move to the folder containing the sql file

>mysql –user=[user] –password [database] < [file_name.sql]


I spent the entire day trying to import a 1GB geospatial raw txt file into various DBs so I can trim it down to my needs. It seems like, when it comes to large files, there’s no easy solution. The one that worked best was a mysql command line import function:

c:\xampp\mysql\bin>mysqlimport –fields-terminated-by=”\t” –user=webadmin –password=pw DB_NAME TEXT_FILE_NAME.txt

Here, TEXT_FILE_NAME should be the same as the name of the table and the TEXT_FILE_NAME.txt file should be placed in the data\DB_NAME directory: \mysql\data\DB_NAME
I managed to import 7 million rows, each having 26 fields, in about a minute.

Additionally, to export the db:

c:\xampp\mysql\bin>mysqldump -u webadmin -pPassword DB_NAME > DUMP_FILE_NAME.sql

Yesterday was my last day with IBM. I started with them on Feb 10 as a Graduate Consultant so I had been with the company for 6 months. Right through the course of my university studies I have been hearing about how small the NZ market is and about the lack of real challenging and interesting opportunities for the grads. Now that I have gone through the full cycle of applying for jobs, receiving an offer, working for a NZ IT company–and I do categorise IBM NZ as a NZ company because I know IBM US and IBM Australia are quite different from IBM NZ–and resigning from it, I now fully understand exactly how “small” the NZ market is for the grads.

Please note that this is not a blog about how much I hated IBM. Although, the fact that I have resigned does indicate that I did not fully enjoy the type of work I was given, I do think that IBM is a very good company and the people there were nothing but nice, caring and supportive. Therefore, my opinions are, on the surface, about IBM NZ but on a much deeper level it is directed to the NZ IT market as a whole.

The first problem is the limited number of companies for which the graduates can apply. For those of us that enjoy coding, large international companies are not an option. The well-known companies that we would like to work for such as Google, Microsoft, IBM, SAP, Oracle, Sun etc do not have proper development houses in New Zealand; the work is outsourced to countries like India and they simply bring in the existing software packages and market the product and do some integration work. To be clear, I have not worked for Microsoft, SAP, Oracle and Sun so I do not claim to know what I say to be absolutely true but based on what I have heard from people who have worked there, and assuming that they are not too much different from IBM–since they operate in the same industry and economy–I can safely generalise.

If these large international companies are not an option, where else can you go? I did a summer internship with Orion Health a couple of years ago and I enjoyed it. The working environment was relaxed and the type of work that I was doing was actually technically challenging. There are many small development houses like Orion Health–although Orion Health is a very big company by NZ standards–that you can work for. I personally do not think it is wise to start off your career working for small companies. However, given that you are a grad in NZ you may not have too many choices.

The second problem is the type of work you will be given. As an employee of a well-recognised technology company I expected to do a lot of technically challenging work. However, during my employment the most technically challenging task I have carried out was writing simple Excel macros. It is unrealistic to expect to do something amazingly interesting and challenging from day one but looking at the guys who have been with the company for 1 to 2 years, I see no real difference in the work they do and the work I did as a grad. To be honest, if I did not get a job offer from another company I would have stayed with IBM. I tried telling myself every day that if I could endure this period of performing boring and random tasks then I could be promoted in a few years and then finally I will be able to do something interesting. However, I also knew that if I were to be promoted I had to prove that I am more capable than my peers but if my work only involved writing Excel macros and creating PowerPoint slides, I did not see how I could possibly set myself apart from the rest–after all, any smart university student could do the things I was doing.

There are, of course, good things about working for big companies. IBM is internationally recognised so it meant I could go anywhere in the world and people would instantly know that I am a smart and capable IT professional. Grad Blue, the all-expense-paid 5-week induction and training program for IBM GBS grads, was absolutely amazing. I loved it.

If you are a NZ university student considering a career in IT, my advice is this. Firstly, If you are a top student with a high GPA, do all you can to secure a job in bigger markets such as US or Australia. Like I said before, the kinds of work you would do as a grad in IBM US would be much different from the work you would do as a IBM NZ grad. Secondly, if you want to stay in NZ, do consider big companies first. Maybe it is a bit hypocritical for me to advise to work for big companies in NZ after pointing out all the downsides, but I still think it is better than starting off your career with smaller companies. You can always go from big companies to small ones, but it is much more difficult to go the other way.

Just in closing, I had such high expectations about the life after graduation. Now I know that I was not being realistic. Therefore, it is important to find a balance so you can be ambitious, while being realistic.

Google Associate Product Manager

After 3 months of interview process, I finally got the offer!
It was a long process but I’m sure it’s all worth it.

Consequently, I submitted my resignation letter to IBM today.
Kinda weird that I’m quitting when everyone else is busy looking for jobs.

I don’t think I’m allowed to talk about the actual interview questions but I will say that I found every aspect of the process very challenging and fun. It was a great experience and I’m really glad that the outcome was positive.

Music Sample

Title: Choice of My Heart
Composed by: Niu Taala, Ivoga Green
Arranged, Sequenced, Performed by: Shaun Seo
About: A song from the musical Joseph Smith-The Musical. I sequenced background tracks for all the songs in the musical. This is one of those songs; without the choir.

Title: New Kingdom
Composed by: Dan Nathan
Arranged, Sequenced, Performed by: Shaun Seo
About: A song from the musical Joseph Smith-The Musical. I sequenced background tracks for all the songs in the musical. This is one of those songs; without the choir.

Title: Fever
Composed by: Shaun Seo
Performed by: 175 East
About: My debut piece. This song won the 175 East Composition Competition in 2001. Clarinet, double bass, cello, percussion, bass trombone, bass clarinet. Performed on November 11th, 2001 at Hopetoun Alpha, Auckland, New Zealand.

Title: song10
Composed, Sequenced, Performed by: Shaun Seo
About: A demo MIDI sequence. Used western orchestra and traditional Korean percussion samples.

Title: untitled
Composed, Sequenced, Performed by: Shaun Seo
About: Another piece of MIDI sequencing

Deploying site with SVN

Instead of using FTP client to overwrite the entire folder (because you often forget which file needs to be overwritten), you can checkout the contents from the SVN server. This will make deployments quick and easy.

1. go to the root directory of your website.

2. checkout the repo

svn co svn+ssh:// .

3. It’s possible that you need to set ownership to the files.

sudo chown -R : ../html

4. When the folder is setup, just run update from next time.

svn update

SVN directory concepts

1. Trunk: main body of development, originating from the the start of the project until the present.

2. Branch: a copy of code derived from a certain point in the trunk that is used for applying major changes to the code while preserving the integrity of the code in the trunk. If the major changes work according to plan, they are usually merged back into the trunk.

3. Tag: a point in time on the trunk or a branch that you wish to preserve. The two main reasons for preservation would be that either this is a major release of the software, whether alpha, beta, RC or RTM, or this is the most stable point of the software before major revisions on the trunk were applied.

Branching/Tagging in TortoiseSVN is explained at

1. Make a dump of your current repository.

svnadmin dump /path > repository-name.dmp

2. Copy the dump file to the new server/machine.

3. Set up the dump file.

cd /path
svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp

After setting up a SVN server at MediaTemple I tried to access it with TortoiseSVN. It kept on asking for passwords even though I’ve entered in the correct one.

1. TortoiseSVN will ask for passwords multiple times depending on the number of different domain folders.
2. Upgrading to the newest version of TortoiseSVN [TortoiseSVN 1.5.6, Build 14908] solved the problem of the program crashing.

Setting the SSH client property stopped the multiple password checks.
C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe -l username -pw password

Resetting CSS

To minimise the effects of browser inconsistencies, it is a good idea to reset CSS at the beginning of the file.

The following works just fine.

* {
margin: 0px;
padding: 0px;

I like this because it’s simple and then I can set margins, paddings etc to any required elements.

h1, h2, h3, h4, h5, h6 { margin: 15px 0; }
p, table, dl, ul, ol { margin: 10px 0; }
ul, ol, dl dd { margin-left: 40px; }

or as suggests, the following reset may be useful.

/* v1.0 | 20080212 */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
body {
line-height: 1;
ol, ul {
list-style: none;
blockquote, q {
quotes: none;
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;

/* remember to define focus styles! */
:focus {
outline: 0;

/* remember to highlight inserts somehow! */
ins {
text-decoration: none;
del {
text-decoration: line-through;

/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: collapse;
border-spacing: 0;

%d bloggers like this: