Building A Tech Culture In CSE

May 30th, 2010 by Charles Ma No comments »

This is a cross post from Beta – a publication for computing students at the University of New South Wales
I often wonder why I don’t see more CSE student projects.

We are recognised as one of the best computing schools in Australia. It follows we should have a strong tech culture. And yet, we don’t seem to.

Having a tech culture means learning outside the classroom, having people actively engaged in tech events, discussing new ideas and technology, pursuing ambitious projects ready to be the next Google. If you want to learn more than what’s in the classroom, if you have an idea for a project, or if you want to talk about technology, you’re supposed to find the right atmosphere and the right people at tech events like tech talks, seminars, workshops, and coding jams.

None of these events occur often enough. It’s not surprising, then, that our tech culture is a shadow of what it could be. And I think it’s time to change.

The first step in building a tech culture is to run more tech events, since they provide a space for programming and technology dialogue, and allow ideas and activities to flourish. Generally speaking, a tech event is a combination of two things: technical thinking or activity, and socialising or teamwork. Under this definition, CSE has two major recurring tech events: ACM training and robocup. However, these two is not nearly enough and they have a very narrow focus. For those of us who want to work on something besides robots playing soccer, or do something other than a few hours of highly stressful coding, neither event is particularly helpful. We need more general code jams and work on your project days.

It is not enough to merely run events in the vague hope that students will show up. By third year, the enthusiasm of many CSE students is just about dead. Those who are still enthusiastic are swamped by uni work and extracurricular activities. Consequently, I’m concerned that the CSE students who might have built the next Youtube may never get the chance – simply because the CSE environment failed to excite, failed to encourage, and failed to provide the opportunity. First years should be given more importance. They are after all, the most enthusiastic of us all. They are the ones who came to UNSW because they were attracted by the stories we tell them. Stories about NICTA, Ori Allon, and all the innovation we do here at CSE. Recruitment marketing is recruitment marketing, of course, but if we’ve talked the talk, we may as well walk it too. An active tech culture is the only thing that will preserve and nurture that enthusiasm.

I hope to see CSE become a better school starting from the bottom up, the undergrads. No doubt we have some excellent research coming out of CSE – we wouldn’t be doing so well in university ranking indices otherwise. That is something to be proud of. But only a handful of people understand the research – and they often happen to work in the same building, and on the same floor. CSE’s seminars are usually too technical and specialized for undergrads. We need more accessible tech talks and workshops to get students excited if we want to create this tech culture and facilitate tech projects starting at the undergrad level.

CSE Soc is laying out the foundations for a tech culture which all CSE students can build on. I’m excited to say that we have successfully hosted a web app jam and an Android app jam during one of the most busy times of the session. The gears are moving.

We plan to have more tech events, but we need help from you. If you have ideas – if you know how to develop an iPhone app, or develop games, or do anything that you think is interesting or new in CSE – let us know and we can organise a workshop. Let’s grow CSE’s tech culture one tech event at a time.

Q: How do you measure emotional reaction in real time?

May 22nd, 2010 by Charles Ma 2 comments »

We have ways to measure interest for digital content. Any content. TV ratings: how many people are watching “Two and a half men”? That’s how much interest there is. Website: how many people are visiting your website? How long are they staying? Take the sum of the products and you get a pretty good idea of how many people are interested in your website.

But how do you measure an emotional reaction after seeing content? Did the movie make you feel sad or inspired? How do you measure that? Did the TED talk make you feel motivated or was it long winded? It might still be interesting either way, and you might have had just enough interest to watch the entire thing, but how do you measure more than just interest? Well, clearly TED asks viewers to tag their videos with reactions, so this is easy for TED. It’s not as easy for an indie film maker posting her videos on youtube, and it’s even harder for a blogger with few readers.

What if you’re a musician, a news channel, web designer or writer. Is there a place where you can put your art and have user easily tell you how they feel about it? Or better but much more difficult, is there something you can do to measure how an audience feels after seeing your art through it’s current platform (be it a book, a store, a TV channel, or movie player)? Even more difficult, can it be done in real time as someone is viewing your TV show? Can you do it passively, i.e. without directly asking? It’s much easier with a live audience that you can see. Half the audience with a puzzled look on their face is a pretty clear indication that they’re confused, and you can see it change in real time.

But can you do this for an online audience? Surveys and comments are common ways of measuring, but they’re more intrusive and only a very small subset of an audience will participate. TED talk’s use of tags is the best solution I’ve seen so far, but that only works on TED, and probably only works with certain types of audiences which TED is fortunate enough to have. We need a way to do this en mass, with as little initiative from the audience as possible. A better question to ask is not can you do it, but how can you do it? Assume it’s possible first.

I can imaging browser plugins or something integrated with the facebook platform to allow users to add reaction tags to content. That’s not hard to develop. Once someone develops that, how do we do better? Those tags won’t be made in real time. They’re always made after the fact, so the ending of a movie can have a huge effect on what you feel about it, and it can and often will change the way you think you felt before the ending.

I don’t have an answer. I just thought about the question, but it’s an interesting question to think about.

Does anyone care? That’s a different question. I imagine at least the content producers will like to know.

I had this thought while listening to an excellent speech recommend by a friend about the quality of content produced on TV and how “ratings” tell you so little about what the effect of the content is doing on the audience nor does it tell you much about how the show could be better. The speech was made with regards to concerns about what TV is doing to societies health. This was in the 60s, funny how we have similar issues now with the internet 50 years later, and funny how an idea (or question) can be inspired by such a small subsection of another idea. Anyway, you can listen to the speech here.

Analyse Me

May 2nd, 2010 by Charles Ma No comments »

A few weeks ago, a couple friends and I decided to host a web app jam weekend.

That was this weekend, here’s what my team came up with: Analyse Me is a chrome extension that helps you figure out where you’re spending the most time on the internet.

I’ll have more on the web app jam soon.

Salary == Insurance

April 24th, 2010 by Charles Ma No comments »

I originally posted this as a comment here and thought I’d keep a copy of it on this blog.

Here is an interesting thought: a salary is an insurance that guarantees you a regular payment in exchange for a potentially higher payoff. When you work for someone, they bare the risk of making or breaking deals with clients and customers, and those customers pay your employer lots of money, much more money than you’ll get as the employee who did the actual work. The customers are willing to pay that much because your work is worth it to them, but you’ve traded the potential of doing work directly with that customer and getting lots more money for the insurance of a regular predictable income. So even if there is no work to do, as part of providing you the insurance, your employer or “insurer” still has to pay you.

Certainty is valuable, you pay for it when you work for someone else by forgoing potentially more money for the certainty of a regular paycheck. It’s the same with being at uni and jumping through hoops to get a degree. If you do well, at the end of it, you can be pretty certain that it’ll get you further than if you just dropped out, tried a bunch of things and failed. You pay for this insurance with your time and money.

Turning capslock into a ctrl key

April 7th, 2010 by Charles Ma 1 comment »

As I learn more and more keyboard short cuts, the ctrl key has become more and more useful. Unfortunately, it’s located in the most awkward place on the keyboard.

The capslock key on the other hand is the most useless key on the keyboard (for someone who doesn’t like shouting on the Internet), yet it’s located at one of the most convenient places.

Wouldn’t it be nice to make the capslock key act like another ctrl key?

Here’s how to do it on linux running X

/usr/bin/setxkbmap -option “ctrl:nocaps”

You can do this almost as easily on windows as well, and I’ll post up how when I next use windows.

Another way is using xmodmap

Make a file (call it caps2ctrl) with the following:

clear lock
add control = Caps_Lock

run

xmodmap caps2ctrl

Meaningful work

April 7th, 2010 by Charles Ma No comments »

In the book Outliers, Malcolm Gladwell identified three key properties of meaningful and fulfilling work:

Autonomy, complexity, and a strong connection between effort and achievement

Autonomy gives you independence–it gives you the ability to make meaningful choices and the freedom to make mistakes and learn. Complexity gives you a sense of challenge and keeps you interested. A connection between effort and achievement gives you an incentive to work harder to achieve greater.

It’s a succinct set of properties to remember that can be applied to any work you do whether it’s paid or volunteering, working for someone else or for yourself.

Interview with RocketBoots

April 4th, 2010 by Charles Ma No comments »

I interviewed CEO Robin Hilliard from RocketBoots a little while ago, the full audio for the interview is up:

http://beta.csesoc.unsw.edu.au/2010/04/interview-with-rocketboots/

Robin is a very knowledgeable and interesting person, and I bet you can really learn a lot from working for, or even just talking to him.

Comparative Advantage

March 10th, 2010 by Charles Ma 1 comment »

In economics, having comparative advantage is “having the the ability to produce a product most efficiently given all the other products that could be produce”. However, just because Andy can make 10 kilos of play dough a minute while Benny can only make 4 kilos, doesn’t necessarily mean that Andy has a comparative advantage at making play dough when they could also make other things.

Let me explain. Suppose that Andy and Benny can also make clay. Andy makes 8 kilos of clay per minute and Benny can make 6 kilos per minute. We say that Andy dominates Benny in the production of clay and play dough. If Andy needed both play dough and clay, the intuitive thing for him to do is to produce both products himself since he can produce both more “efficiently”.

That’s not so. The theory of comparative advantage says that “given all other goods”, in this case, clay, Benny is actually comparatively more efficient at producing clay than Andy. Hence, there’s a benefit for Andy to produce only play dough and trade with Benny for clay. This is because when Andy produces 8 kilos of clay, he could have produced 10 kilos of play dough in that minute. So his opportunity cost of producing one kilo of clay is 1.25 kilos of play dough. However, when Benny makes 1 kilo of clay, his opportunity cost is only 0.67 kilos of play dough, so it’s cheaper for Benny to produce play dough than it is for Andy.

Benny’s ability to produce clay at a lower opportunity cost than Andy means that he has a comparative advantage at producing clay. Assuming of course that in our imaginary economy, play dough and clay sell for the same amount of money, then it is better for Benny to make the clay because his opportunity cost is lower. Similarly, Andy should keep producing play dough.

You could apply this to life and say that everyone should do exactly what they’re good at: if maths is your best subject in school, you should become a mathematician, and if you were better at sports than anything else then you should become an athlete. On the face of it, this sounds like a good rule of thumb to follow, “do what you do best”, especially now that there seems to be an economic theory that proves you should. However, it makes the naive assumption as I did in the Andy and Benny example that everything that anyone does has the same value. That’s never the case. Instead of saying “do what you do best”, the theory of comparative advantage applied to life should say “do what makes you produce the most value”.

It doesn’t sound nearly as catchy as the naive rule of thumb, and value is subjective and can mean anything from economic value, to personal value, to social value, but it is something to think about when making decisions. Life is a series of decisions after all, but I’ll leave that thought for another post.