March 27 saw many participants at Barcamp SG 5 at Singapore Poly located just beside Dover MRT.

An event which did not undergo heavy marketing or publicity, much of participants were the usual suspects with a good number of new people. Organic growth I will say. This time round, we have 4 rooms and sufficient actions in each room till the end of the day.

Kungfu for Geeks

The day started off with “Kungfu for Geeks” by a particular Jame Lau. In quick summary, a lot of comparison between chinese philosophy and the different stages and cycle of a startup. It was rather entertaining and “action packed”. The take away for me from this session: The opposite of education us morality. It makes me wonder if it applies to both high paying bankers and the scholar-laden civil service.

Hacker Guide to Financial Freedom

This is a topic by Chris Ng and he quickly cover the 3 type of jobs out there, namely Mechnical, Serviced Orientated and Knowledge based. And to encourage the participants to move up the value add. He encourage people to gain an education, citing that most jobs survey show that higher educated personal have higher income than those not. The common advise of watching your expenses and budget and pay yourself first was mentioned together with some tips on investment portfolio. [Chris' blog post]

What interest me from the talk is that Chris himself is a IT guy. Maybe in a bank I guess. I did asked him a question on how political fit into the said model and he replied that there is a different class called the “talent” class that are at the top of everyone. Examples are celebrities.

For the 3 types mention, developers could be doing all 3 at the same time. Mechanical for simple development calling libraries. Service-oriented when called upon to do design work of new system. And knowledge-based when it comes to debugging and legacy system support. Just my 2 cents worth.

The AHA moment

The AHA moment is presented by JF. A rather interesting discussion on the different methods to arrive at the spark that many need in creative/problem solving work. He presented on drawing with both side of the brain in the last barcamp and seems to have a interest in meta-thinking  He posed a simple question on what is half of 12? And there are many answers depending on how the question is perceived.

For me? Half of 12 is a very simple PSLE question. Many parents will agree.

How to attract an audience for Barcamp

After surviving James Lau beating from “Kungfu for Geeks”, Coleman presented on “How to attract an audience for Barcamp”. A topic that was said to be suggested by Preetam. He presentation as usual draw a crowd and I believe there are many things to learn from his presentation style.

The talk covers the “copywriting” of title of the talk to surviving the voting round. Followed by shameless publicity to get voters and audience. And finally to deliver the talk.

Da Vinci Pool

A talk by a Jolyon Caplin who is a lecturer at Singapore Polytechnic. Hard to miss him at Barcamp with a Uni-cycle, sculpturing balloons and making hella of noise.

He talked about a lab that was created to get students interested in science and engineering. He presented with a EM detector, a makeshift electric guitar and other DIY hardware. I enjoy the session greatly and believe it is something worth doing in encouraging and celebrating the spirit of DIY while learning. The instant/non-DIY mentality is crippling our soul.

How to cook a perfect egg

Free eggs. But seriously it is an interesting session on how to cook the perfect egg with the york firm and white mushy. Not the perfect egg for everyone but the texture of the above said combi is very enjoyable.

Hacking Election

This is a discussion on the situation where Singaporeans who are of voting age do not get to vote. Personally I believe it address the apathy of why Singaporeans do not engage themselves in the community and the policies of the country. The mentality of ” I am lucky that I do not need to vote” is rather undesirable to me.

Looking at what social media can do, the audience was rather divided on the reach of such effort and the legality.

Fxxk GFW

The most educational session of the day for me. Presented by Ben who traveled down from Hong Kong. In he heavy accent, he did his best to talk about the social and technological sub-culture that resulted from the Great China Firewall, much to surprisingly engaging effect.

He mentioned that every country practise some form of GFW and China even powered the GFW of some other countries. Ben highlighted the most important GFW reside in the human mentality in one of his slides. Green Dam, Grass Mud Horse, Project West Chamber and several related subjects were covered. We have a lot to learn.

Finally I get to present at 5pm on my topic:

Scent and Sensibility

Chin Yong @ Barcampsg5, taken by Meng

Presenting Scent and Sensibility

The topic on Aromas is simply to highlight that we are missing a lot of life by not using our nose enough. And using a simple experiment to show how rather ineffective we are in identified scent. And yet each of us can remember that we experience certain scent before. The trouble is recalling the specifics.

I enjoyed preparing and presenting the talk. Equally more interesting was the scent that the audience liked. The scent of new books, new shopping malls and new gadgets. Uploading the slides once I get around the uploading issue.

Barcamp Singapore 5 is a great success. The sessions filled up all the possible rooms and slots with good participations in the lightning talks. Kudos to the organizing team!

Here is the necessary sql to create a user and database of the same name. Note to my future self.

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT USAGE ON * . * TO 'username'@'%' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `username` ;
GRANT ALL PRIVILEGES ON `username` . * TO 'usernamel'@'%';

Yes, the code is created using phpmyadmin.

The Chopsticks Nemisis

1 Dec 2009 In: Geek, Interesting, Random

It was a good dinner in the company of good friends. Lots of catching up and some alcohol to go along.

A pair of chopsticks

A pair of chopsticks

Till a almost mathematically perfect piece of honeydew was presented on my plate. It was shaped like a pyramid. Not those with a square base that housed mummies. The pyramid shaped honeydew had a triangular base, and almost have three rotational symmetries.

In my right hand I held a pair of chopsticks. Not the perfect or standard method of hold that will make my ancestors proud, but sufficiently good enough to feed myself since chopstick wielding age of 10.

Then it strikes me that a triangular based pyramid could possibly be the only 3D shaped object that a pair of chopsticks cannot effective lift or hold without resorting to piercing damage to the object.

With the honeydew as the only object of interest, I tried to lift it with my chopsticks only for it to slide around the plate.

Mentally I cannot visualize a straight line across a triangular based pyramid where I cannot apply a perpendicular clamping along to offer a good grip and lift it up.

What if it is a square based pyramid? Once can effectively flip it to rest on one of its triangular face and lift it up as an inverted pyramid. I was suppose to be engaging my friends in meaningful conversation, but my mind was much more interested in defining the perfect chopsticks nemesis.

The chopsticks may be a very useful eating utensils. But I am convinced that with one hand and using a pair of chopsticks, it is not possible to lift up a triangular based pyramid shaped object without resorting to piercing damage to the object.

Playing with QR Codes

23 Nov 2009 In: Geek, Interesting

Hello World
The above is the “Hello World” for QR Codes.

QR code (wiki) in short:

A QR Code is a matrix code (or two-dimensional bar code) created by Japanese corporation Denso-Wave in 1994. The “QR” is derived from “Quick Response”, as the creator intended the code to allow its contents to be decoded at high speed.

Come across it while looking up the Google Charts API. And the Google Charts API is kinda cool also.

And since I am at it, we have:
hackerspace.sg
Which is the QR Code for “ hackerspace.sg“.

Note that upper and lower caps matters.

The Blog Post on BarCampSg4

22 Nov 2009 In: Events, Geek, Interesting, Singapore

BarCampSg4 was held on the 21st Nov 2009. It was my second barcamp in as many week, having attended BarCampMelaka just the weekend before. Both Barcamp were enjoyable in the own ways and having presented at both, I believe that giving/sharing a presentation gives you another kind of experience at Barcamps.

BarCampSg4 topic wall early in the morning

BarCampSg4 topic wall early in the morning

The topic I presented was “How to pose like Star” in BarCampMelaka and renamed it as “How to pose as a Korean Start” for the Singapore version. The content that was shared comes directly from asianposes.com. Hence there is no need for myself to upload any presentation to slideshare. Yes, I can be that lazy post-barcamp.

I am not an expert in how the poses came about and was more than happy to share the amusement that I gotten from the site. There are in all (at the last count) 28 poses and the session include myself going over the 28 poses with the participants. It was fortunate that for both sessions, the demographics was rather young, and there was a slightly higher female to male ratio.

The purpose of the presentations were to discussed the rational of doing such poses, and at the same time, entertain both myself and the audience. I see such poses as decorative emoticons. Some emoticons like the smiley are used to portray certain emotion and are pretty straight forward. And there are some emoticons that are more decorated/complicated such may portray the same emotions/feeling, but in a more flamboyant way. Poses too does the same thing.

Poses maybe used in the same manner, to add more fun to photo taking sessions. Cam-whore rejoice!

I will add that as a presenter, I could have unfairingly enjoyed the session more than my audience. As I was running over the different poses, it can be observed from the vantage point of the presenter that some audience are unwittingly/ unknowingly/ unconsciously doing some action to mimic/mirror the poses shown on screen. Some less reserved members of the audience might even do the pose to the amusement of their friends. And yet most will refusing striking a pose for the camera.

Doing a pose for the camera finally

Doing a pose for the camera finally

Beyond the presentation experience, there were several great talks going on. JF of StoryKitchen did one on drawing on “Drawing with both side of the brain” which left me feeling rather inadequate in knowing that I cannot effectively think without words. I asked: “How can you think without words” and the reply I got was: “I cannot answer this for you as that will require me to use my left brain”.

Coleman “I yet to find True Love” Yee did 2 sessions, one on “For smart geeks: How to explain difficult concepts to lesser beings” and the other on “Design Thinking and finding True Love”. He is a great presenter and deliver great content as well. His talk does seems to attract some following. Remember his last one at BarCampSg3.

Adrianna Tan of Popangandhi’s session was packed as well on “How to hack your own travel channel” where she shared good insights on her experience. The take away was: Travel is the common interest of everyone.

Beyond that, 30 odd of us squeezed into a small room to check out Chris Gomez “Why your film sucks” to learn about something on film making. And was informed for the upcoming filmcamp.

And yes, I got my pokem. It is a Mad Killer. And I am willingly to trade for a ninja!

BarCampSg4 was followed by a visit to hackerspace.sg and the place was impressively done.

An angle of the many interesting things in hackerspacesg

An angle of the many interesting things in hackerspacesg

To all who made the BarCampSg4 successful, a big thank you. IDA and Yahoo too.

Django models have a great function get_FOO_display (which is actually _get_FIELD_display) that return the display name of the options that correlate to the stored value of the model.

To explain with an example

For a Charfield Model with the following declaration

textexamplefield = Model.Charfield(
max_length = 1,
choices = EXAMPLE_OPTIONS
)
EXAMPLE_OPTIONS = (
('u','undefined'),
('t','true'),
('f','false')
)

In the above, an instance with value ‘t’ for texamplefield will return true with the call: instance.get_textexamplefield_display.

Now going to another example:

integerexamplefield = Model.IntegerField(
choices = INT_EXAMPLE_OPTIONS
)
INT_EXAMPLE_OPTIONS  = (
('0','Option 0'),
('1','Option 1'),
('2','Option 2')
)

For this example, get_integerexamplefield_display will not work.

But declaring INT_EXAMPLE_OPTIONS as:
INT_EXAMPLE_OPTIONS  = (
(0,'Option 0'),
(1,'Option 1'),
(2,'Option 2')
)

will result in get_integerexample_field working as normal.
Just note the integer and character relation while declaring the options variable.

Beer Servers Anyone?

14 Oct 2009 In: Geek, Interesting

Was doing a traceroute of the new workplace to my servers just to check the network. Gotten this really interesting series of server names.

The screen shot said it all.

Servers named after beer!

Sake, Kirin, Budweiser, Beck.

Beer themed server naming convention. Someone in Singtel is having some fun.

Editorial note: Sake technically is not a beer.

Of Google Chrome Frame

22 Sep 2009 In: Geek, News

Chroium.org announced Google Chrome Frame. It was stated:

Today, we’re releasing an early version of Google Chrome Frame, an open source plug-in that brings HTML5 and other open web technologies to Internet Explorer.
We’re building Google Chrome Frame to help web developers deliver faster, richer applications like Google Wave. Recent JavaScript performance improvements and the emergence of HTML5 have enabled web applications to do things that could previously only be done by desktop software. One challenge developers face in using these new technologies is that they are not yet supported by Internet Explorer. Developers can’t afford to ignore IE — most people use some version of IE — so they end up spending lots of time implementing work-arounds or limiting the functionality of their apps.

It sounds exciting to allow Internet Explorer to run HTML5 and an improvement in Javascript performance. Seems like a great piece of technical engineering.

From a take up rate perspective, there are reservations. As seems in some of the comments, it seems that users who cannot upgrade their browsers does not have the rights to install a plugin as well? I do not have numbers or facts but digg have a blog post on their statistics. Yes their user base maybe tech savvy and hence the numbers slightly biased. But if their tech savvy use, of which 10% cannot help but to use IE6, I have a feeling that the general internet users will have a higher IE6 usage and likewise be unable to upgrade their browsers.

Yes, maybe installing a plugin might be easier or potentially possible from these users point of view. For new machines and those using IE7 and above, it is always a lesser issue for web developers as compared to IE6. Google Chrome Frame does bring HTML5 to IE, but it does not remove the existence of IE6.

It seems that Google Chrome Frame might give some clueless IT manager somewhere the idea that IE6 may have an extended shelf life.

Straits Times Image Caption Fail

10 Sep 2009 In: News, Singapore

From The Straits Times, we have this article on a book for single mums in Singapore. Everything was nice and rosy but the name dropping in the caption for the image… erm, a fail.

ST Image caption Fail. Lim Swee Say Not.

ST Image caption Fail. Lim Swee Say Not.

The person captured in the image is not Lim Swee Say for sure.

Check for Empty Array Element in Python

31 Aug 2009 In: Geek, Python

In PHP, there is the check for empty array elements using the empty() function. In Python there is no such one function and the same can be accomplished by a rather elegant try-catch block:

try:
iso_language_code = tweet['iso_language_code']
except KeyError:
iso_language_code = ‘zz’
try:
    new_var = array_var['element_name']
except KeyError:
    new_var = 'default_value'  # or None

I will say it is neat.

About this blog

ThinkingNectar talks about the interest of Chin Yong, a PHP/Python/Web developer residing in Singapore. Life, society, and codes should entails most of what goes between the ears of this coffee drinker.

What makes you think?


Sponsors