Category Archives: communication

Hello world, school, teaching, games ()

12:52 AM on a schoolday that starts at 10:30 AM is probably not the
best time to write an S-Files, but what the heck. I haven’t been
writing. Stories have backed up, and the resulting chaos in my mind
appears to have edged out important details like the names of people
I’m supposed to know and the details of where I’m supposed to be.

Time to defrag.

I am all the more unusually loquacious because I have just finished
writing a lab exercise for the introductory computer science course
for which I am a teaching assistant. My pitiful effort at making
“Hello, World!” fun and exciting can be found at , with no guarantee that
it’ll actually even be used in today’s CS session. I’m banking on the
fact that Dr. Sarmenta probably hasn’t prepared materials as detailed
as this, as I haven’t seen anything like it from, well, any of my CS
teachers. I’m _hoping_ that he’ll let me deliver the class, which is
a far-out possibility but still worth considering. I also hope I’ll be
awake enough to do so with wit and style.

I love the project submission system I wrote last semester. After
editing the postgresql start script so that the postmaster would
accept TCP connections, I simply had to set up the database and run
a script that obligingly extracted and included all the students in
the student data files that the department forwarded to me. All 222
students of CS21A in 9 sections have been set up. How nice.

Teaching. Hmm. I had dinner with Mario Carreon (an old friend from
high school competitions) the other night. He teaches at UP and is
considering moving to the industry because of the pay. We talked about
teaching, mainly, and in the course of our conversation I found myself
declaring that yes, this is it – I cannot imagine myself in any other
profession except teaching. Especially college level introductory
computer science. That’s it.

Naturally teaching doesn’t stand on its own – I must be teaching
_something_, and teaching also offers ample time for research. Enter
wearable computing. I’ll be getting my gear on the 23rd, if all goes
well. Expect lots of files going on and on about how cool it all is.

Speaking of cool, I also find myself getting interested by game
development. Eric, Diane and a few of my other friends are getting
together and starting a game company. As the insane computer science
student that I am (and hope never to stop being), I have decided that
the challenge of breaking into a new field (at least one I’d never
been in before) and learning enough to not only understand what Eric
talks about when he enthusiastically describes his latest engine but
also to offer suggestions and whip up a demo on my Linux box is
somewhat comparable to the feat of… well, _something._ I’m crazy
enough to think that it’s possible, and it should give me something
new to learn.

To that end I have been playing around with small OpenGL programs here
on my Linux laptop. Not that my hardware can easily handle the demands
of 3d graphics programming, but I manage to squeak by with Emacs, gcc,
a Makefile and lots of Googling. I have to confess that what excites
me about games is not the funky graphical effects but rather the
gameplay and the character and setting development – witness the
sudden explosion of Inform text adventures in my ~/notebook/games

Nonetheless, I will climb Mount Everest just because it’s
there. <impish grin>


Oh, school’s been fun. My teachers are nice.

I yawn, and I must sleep.

Head TAs?

Doc Sarmenta story. I arrived at F228 a little too early for my 3:00 CS21A class, and I ran into Dr. Sarmenta packing up. Some students asked him if they could consult with him, but as he’ll be fairly busy due to Faculty Day, I volunteered to meet them instead. Got introduced as Sacha Chua, one of the head TAs around here. I replied, “We have head TAs?” Dr. Sarmenta continued, “She does most of the stuff.” :D

Volunteered to conduct CS21B tutorials at 10:00 AM tomorrow, F230.

Doc V story. Had thorny discrete mathematics problem that I needed help with. Doc V stumped. :) Actually, talked about problem with Eric over dinner, and he had a nifty insight that greatly simplified the problem.

Doc Sarmenta story. Presented thesis proposal. Earned “That’s very exciting” comment. :)

Gino story. Gloated about the fact that my thesis is humanitarian, useful, involves Linux, and doesn’t have a GUI. Wooohooo! :D

Marcelle’s blog

Someone I know referenced me in his blog. Marcelle – remember him?
Right. I never could quite figure out why he was going nuts over the
fact that I’m simply not the kind of person who can arbitrarily become
best friends with people, and certainly our lack of intersect would
make it rather difficult for us to get to know each other. Anyway, he
seems to have dealt with that issue fairly well. His blog is over at , and is – as he admitted in
e-mail – fairly angsty, although I find it really just more concerned
about things like Otaku Boards (, which I’d
visited but haven’t really felt at home in. I am surprisingly less
anime-centric than the stereotypical geek, I suppose.

Missing people

Part of being more social, I guess, is that I begin to miss people. I grow accustomed to their presence. I start looking forward to the next meeting, the next phone call, the next get-together with friends. Anticipation keeps me excited about the weekend.

But it also makes the weekdays harder to bear. Hours pass less quickly. I find myself passing the time with activities that do not engage me fully. Passing the time! How terrible an idea. To live sub-optimally for a number of days, just waiting for a few hours of fun… Whatever happened to the fun I used to find in hacking on some obscure bit of Emacs code or browsing through online documentation? My hours are spoiled by hope.

And when the weekend comes, what then? Hope can so easily turn into expectations, even though I know it is foolish to expect anything. I begin to wonder if things might not be better a different way. I begin to wish I was having a nice, deep conversation – or even a silly one – instead of just passively watching television. I begin to expect, to measure, and once I begin doing so I allow myself to become disappointed.

It does not have to be that way, does it? I should just remind myself that all of this is a nice extra; not essential, not expected, but appreciated whenever it’s there. Still, it is difficult.

True, there is much about this ‘being social’ that I enjoy. I like the conversations and the surprising insights other people have.

I do not need to pretend to be social in order to enjoy my life.

Perhaps I should end the social experiment and return to my normal routines. I miss those Saturdays of learning or coding or simply lazing around; days that were mostly under my control, that did not wait on anyone or anything in order

Embedded talk

Title page

Hello, everyone! I’m Sacha Chua, and I’m here to talk about embedded
system design from the developer’s point of view.
What _is_ embedded computing, anyway? It helps to define it in
contrast to personal computers, which we’re all familiar with.

PC/embedded system comparison

General use

Personal computers are intended for general use. They can run a wide
range of applications – games, business apps, that sort of thing.

Specific function

Embedded systems, on the other hand, are typically designed for a
single purpose. Think of a calculator, for example, or the logic in
vending machines. (Of course, some embedded systems are becoming more
general now, like personal digital assistants a).

OS, apps

Personal computers



On PCs, you can usually assume that someone

Different input/output

Easy to dev or change programs

Infrequently updated


User needs / expectations

Although crashes and data loss seem to be part of our everyday
computing experience, people expect embedded systems to be reliable.
Imagine an embedded system that crashes! What if your phone crashed
and had to be rebooted all the time? People expect features,
reliability, and all for a low price.

Tight space and memory constraints

Development tools

Development process

One of the things about embedded development is that the process is a
little bit longer. It’s not the usual edit, compile, run cycle. It’s
edit, compile, burn to flash, run.

Architectural quirks

And of course if you go into embedded development, you’ll probably
have to deal with different architectures. For example, you’ll learn
about the quirks of conditional ARM.

Why go into embedded dev’t?

It’s fun!

It’s challenging!

It’s useful!

How to get started

Courses on computer interfacing / hardware / digital logic


Internship / work / open source

What you need: software, hardware, patience