April 2004

Related software: Ideakeeper, Z-write

April 1, 2004 - Categories: -Uncategorized

– Ideakeeper: Hyperlinked notes, access from anywhere, but limitations

on hyperlinking and only grabs clipboard contents. However,
automatically/manually washes clipboard entries, so pretty cool.
Original website missing.

Z-write: Linked sections within a single document.

Other links

Outliners: An informative site about text outliners

Interesting courses for this summer

April 1, 2004 - Categories: -Uncategorized

CS 129.6: EXTREME PROGRAMMING: M-F 9:00 – 12:00, CTC-215 (3 units)

This is a seminar course that focuses on a relatively new methodology in
Software Engineering called Extreme Programming. The course involves working
in small teams or pairs, checking on each other, and also focuses on good
testing practices, including unit testing, and the like.

Pre-requisite: MIS 101
This subject discusses the impact of knowledge on a global and corporate
level and presents different ways of managing the knowledge on a technical,
managerial and psychological perspective. To achieve this, the course will
discuss theoretical frameworks and models on how knowledge is created,
organized, disseminated and used; methodologies on how to manage knowledge;
and technologies that can assist in the management of knowledge.

(Wish I could attend!)

Multisync: a package for syncing personal information managers

April 3, 2004 - Categories: emacs


Package: multisync
Description: A program to synchronize PIM data
 Synchronize calendars, addressbooks and  other PIM data between programs
 on your computer and other computers, mobile devices, PDAs or cell phones.
 Currently it has client plugins for Ximian Evolution and IrMC mobile
 clients (cell phones such as SonyEricsson T39/T68 and Siemens S45i) via
 Bluetooth, IR and cable. To get all plugins install libmultisync-plugin-all.
 To get all
  Homepage http://multisync.sourceforge.net

Can someone write a plugin for PlannerMode? =)


April 3, 2004 - Categories: -Uncategorized

Description: KDE konsole personal organizer

To support console-based calendaring with KDE, the konsolekalendar
complements the KDE KOrganizer with an according frontend to manage
appointments and your schedule on a text-based console.

This package is part of the official KDE pim module.

Hmm. What is this? I wonder what its interface looks like…

Subject: Sandra Jean Valentino Chua assigns past and future changes to ERC

April 3, 2004 - Categories: -Uncategorized
Date: Sat Apr  3 01:57:43 2004 +0800


Your assignment process with the FSF is now complete and you will
shortly receive a copy of the signed form in the post.

Thank you for your contribution!

All the best,
Ted Teah


E-Mail from Ted Teah via

Tao of Topic Maps

April 5, 2004 - Categories: -Uncategorized


April 5, 2004 - Categories: -Uncategorized

I dusted off the Linux computer I’d set up previously, uninstalled
courier, and started an installation of cyrus21. Squirrelmail’s still
installed and configured, but the IMAP server needs some tweaking.
We’ll get mail up and running first before we worry about files and
other services.


ACM status

April 6, 2004 - Categories: -Uncategorized

I am currently a very lowly #8559. Will do another four problems tomorrow.

Dropped to 8579

April 6, 2004 - Categories: -Uncategorized

I’m still getting wrong-answer on my solution for 10267. I hope this
isn’t another Java/C thing. I’ll translate my program tomorrow,
although it’s not half as fun in C…


Finally accepted. Up to #8038.

April 6, 2004 - Categories: -Uncategorized

Grrrr, not reading specs well enough…

E-Mail from Valladolid Online Judge

Now up to 7522 in the ACM ranking

April 6, 2004 - Categories: -Uncategorized

Got the Interpreter (10033) problem on the first try! =)

TheBrain as a brainstorming tool

April 7, 2004 - Categories: -Uncategorized


Hmm. Disposable information architectures. Makes sense—the process of
organizing clarifies things for us…

Time management, geek-style

April 7, 2004 - Categories: -Uncategorized



– Ready for Anything, in a wiki way
– Time Management, from my 1999 journals

Commercial link: http://www.socialtext.com/, blog http://www.socialtext.com/weblog/

Rank 6741

April 7, 2004 - Categories: -Uncategorized

All those compile errors for Java… <grumble> I’m sticking to
that language out of principle and because our students will probably
submit using it, so I need to demonstrate that almost all the problems
are easily doable in Java.

I had to rewrite the Australian Voting solution several times to get
it to pass the weird mix of Java 1.1 and 1.2 on http://acm.uva.es . I
suspect my final implementation is actually better, but still…


Interesting blog interface

April 7, 2004 - Categories: -Uncategorized


I should steal his Javascript code for hiding-unhiding blog entries…

Mark C. Punzalan


April 7, 2004 - Categories: emacs

Flutterby! : Email clients and integrated tools
Dan Lyke’s comment

LIU Jing’s personal wiki (http://hep.pku.cn/liujing/WebWiki/Emacs.html), nice clean design

Emacs-wiki, Japanese (http://hpcgi3.nifty.com/shunuhs/index.cgi?Emacs%2Femacs-wiki)


April 7, 2004 - Categories: emacs

Foo bar baz qux ba

(defun sacha/list-web-stats (prefix)
  (interactive (list current-prefix-arg))
  (goto-char (point-min))
  (let ((results) referrer page)
    (while (re-search-forward "GET \\([^ ]+\\) [^\"]+\"[^\"]+\"\\([^\"]+\\)" nil t)
      (setq page (match-string 1))
      (setq referrer (match-string 2))
      (when (string-match "\\(google\\.[^/]+\\)/search.+?q=\\([^&]+\\)"
        (setq referrer (concat (match-string 1 referrer) "://" (match-string 2 referrer))))
       (if prefix
           (concat page " " referrer)
         (concat referrer " " page))))
    (setq results (sort results 'string<))
    (with-current-buffer (get-buffer-create "*Web stats*")
      (while results
        (insert (car results) "\n")
        (setq results (cdr results)))
      (pop-to-buffer (current-buffer)))))

Channel9: A look inside Microsoft

April 7, 2004 - Categories: -Uncategorized


April 7, 2004 - Categories: emacs
(defun sacha/submit-acm-problem ()
  (let ((buffer (current-buffer)))
    (gnus-fetch-group "mail.judge-acm")
      (when (re-search-forward "--text follows this line--" nil t)
        (insert-buffer-substring buffer)))))


Sacha’s Paradise: “Island Paradise”

April 7, 2004 - Categories: -Uncategorized

The image of islands like townhouses just popped into mind… =)
I need to check this against real-estate ads, but it’s a quick draft.


“No man is an island… but you can own one!”

Tired of living in the city? Own your own island paradise now! Sip a
martini while watching the sunset on your own private beach. Spend a
lazy Saturday afternoon in a hammock strung between two palms. Located
only thirty minutes away from the commercial district, the Island
Paradise planned community offers all the amenities of modern living
in a idyllic setting.

Each island comes with:

– A one- or two-bedroom cabana
– 24h electricity, hot/cold water
– Palm trees
– At least 20 meters of beach

For your convenience, ferries pass by every hour, and a boataxi is
just a phone call away. A shopping mall and a playground are on a
large island in the middle of the community.

Ask your real estate agent about Island Paradise now!

E-Mail to [email protected]

Kidding: “Second Honeymoon”

April 7, 2004 - Categories: -Uncategorized

Prompt: “Just Kidding”

(a shot at trying to reply to prompts on the same day)


“A trip to Paris. Just the two of us.” I tapped airline tickets
against the palm of my hand.

“You’re kidding.”

I poker-faced until her disbelief turned to delight. “It’s my way of
making up. You’re the only woman in my life.”

Gratitude lit up her face. “I knew they were wrong about you!” She
threw her arms around me. “Wait until they hear about this!”

I kissed her on the forehead gingerly. “I just have some business to
arrange in town on Tuesday afternoon. The meeting would bore you out
of your wits. Why don’t you just drive down and meet me for dinner
at… What was that restaurant you wanted to go to?”

She went on in a breathless litany of thanks and fantastic plans.
She’ll be on the phone for hours tonight, boasting to all her friends
about how thoughtful I was after that big fight we had. I didn’t
bother to catch the restaurant’s name. I wouldn’t need it anyway.

She ran out of breath and I saw my chance to get out. “I’ll tune up
the other car.” I headed to the garage.

After all, it would be such a tragedy if her car skidded out of
control in those difficult zigzags at night. A terrible accident,
considering that she’s normally such a cautious driver unless excited.
I think I need to take a look at those brakes.

A smile crept over my face. It should be easy enough to be loving,
then heartbroken, then free.

E-Mail to [email protected]

The Adventurer

April 7, 2004 - Categories: -Uncategorized

From http://www.9types.com/descr/7/

Enneagram type: 7

Adventurers are energetic, lively, and optimistic. They want to contribute to the world.

How to Get Along with Me

– Give me companionship, affection, and freedom.
– Engage with me in stimulating conversation and laughter.
– Appreciate my grand visions and listen to my stories.
– Don’t try to change my style. Accept me the way I am.
– Be responsible for youself. I dislike clingy or needy people.
– Don’t tell me what to do.

What I Like About Being a Seven

– being optimistic and not letting life’s troubles get me down
– being spontaneous and free-spirited
– being outspoken and outrageous. It’s part of the fun.
– being generous and trying to make the world a better place
– having the guts to take risks and to try exciting adventures
– having such varied interests and abilities

What’s Hard About Being a Seven

– not having enough time to do all the things I want
– not completing things I start
– not being able to profit from the benefits that come from specializing; not making a commitment to a career
– having a tendency to be ungrounded; getting lost in plans or fantasies
– feeling confined when I’m in a one-to-one relationship

Sevens as Children Often

– are action oriented and adventuresome
– drum up excitement
– prefer being with other children to being alone
– finesse their way around adults
– dream of the freedom they’ll have when they grow up

Sevens as Parents

– are often enthusiastic and generous
– want their children to be exposed to many adventures in life
– may be too busy with their own activities to be attentive

Renee Baron & Elizabeth Wagele

Teach yourself programming in ten years

April 7, 2004 - Categories: -Uncategorized


The article makes a very good point. Learning isn’t something that can
be rushed. It took me a lot of time and a lot of practice to pick up
ideas from the contests, and I’m not sure if we can get our students
to understand those things after only a sem! That said, we’re going to
try—and maybe we can help them get hooked.

I have so much more to learn. =)

Raw scores for enneagram test

April 7, 2004 - Categories: -Uncategorized


You scored as a Seven.

On your left is a breakdown of your scores, ordered from highest to
lowest. If you are not the type you scored highest as, you might be
one of the types you scored next highest as. The highest possible
score is 28, and the lowest is 0. Each type is linked to additional
information on that type. On your right is the breakdown of how many
questions you answered in favor of each triad group.

Type Score
Seven 20
Five 14
Nine 8
Two 8
Six 8
Four 8
One 8
Three 5
Eight 5

Your Raw Scores by Triad

Preferred intelligence triad

Behavioral 891 0
Emotional 234 0
Mental 567 7

Hierarchical styles triad

Control 258 2
Harmony 369 0
Ideals 147 5

Coping styles triad

Positive 792 5
Competency 135 2
Reactive 468 0

Social styles triad

Assertive 378 3
Compliant 126 1
Withdrawn 459 3

Remember that your Enneagram type is not how you score on a test, and
the reliability of this test has not been established. You should
regard its results with skepticism, using them only to guide you in
discovering for yourself what your Enneagram type is.

Each point in favor of a type comes from answering a question in favor
of a triad containing that type. This test measures for four different
triads. Three of them are described by Riso & Hudson in The Wisdom of
the Enneagram, and three are described by Hurley & Dobson in What’s My
Type?. All four triads are part of my own Enneagram Theory. It is
currently rough and unfinished, but you can look at it in its draft
form if you’re curious.


Primary Intelligence: Mental
Coping Style: Positive
Social Style: Assertive
Hierarchical Style: Ideals

Sevens use their mental intelligence to create a positive spin on life
by coming up with various utopian possibilities about how things could
be. They can be very inspirational as they assert their utopian ideals
about how people can live better lives or make the world a better
place. Robin Williams is a well-known Seven, and his character in the
movie Dead Poets Society is an excellent example of this. By regularly
imagining how things can be good or made better, Sevens tend to be
very optimistic, and their optimism gives them the confidence to
assert themselves in the world, going after whatever it is they want.

Article about job interviews

April 7, 2004 - Categories: -Uncategorized


Great read! Thanks to aadis for the pointer.

free.net.ph scheduled downtime reminder

April 7, 2004 - Categories: -Uncategorized

free.net.ph will be down from today until 2004.04.11 . If you need to
get in touch with me, leave a message at irc.freenode.net #emacs or
e-mail me at [email protected] . =)

More toys

April 7, 2004 - Categories: -Uncategorized

3D modeling with voxels

April 8, 2004 - Categories: -Uncategorized

While my sister surfed, I discovered that I possessed a hidden talent
for three-dimensional modelling using silicate voxels. That is, I
built sand sculptures on Bagasbas beach. My dad took a picture of the
sleeping-cat sculpture, but Tux got washed away before he got his
camera again.

I got chatted up by this 6th grader who started talking to me about
The Sims and computer games. He was completely in awe of the cute
little sculptures I’d made. It’s pretty simple, really—all I have to
do is imagine Neko or Tux, and take away anything that doesn’t look
like them. I did a crab and a sand castle too, for variety.

Tomorrow, I’ll build a series of cat sculptures on dry sand.

Emacspeak on windows

April 10, 2004 - Categories: emacs

Gerhard Stenzel wrote:

Some years ago, I wrote a description about how to make emacspeak work
with emacs under windows. I have not verified if this will still work
today. However, here is the link to the description:

E-Mail from Gerhard Stenzel

Understanding mathematics web talk

April 13, 2004 - Categories: -Uncategorized

From Joe Corneli: http://www.ma.utexas.edu/~jcorneli/z/understanding%20mathematics/

E-Mail from Joe Corneli

Thoughts on progress reports

April 13, 2004 - Categories: emacs

Dean Michael Berris blogged:

I personally despise the need to write progress reports in human
terms — mainly I want to show that progress is being made in terms
of code and functionality. I don’t want to put down into writing
things that I feel about my groupmates, but rather I would like to
commend them just for their accomplishments. I’ve just submitted
one progress report, and I never really liked it. My grade may be
in jeopardy because of that, but anyway that’s how I personally

I find I _like_ making progress reports, if only in terms of e-mail to
the emacs-wiki-discuss mailing list or entries in blog. I like
summarizing my changes in a changelog and telling people about my
future plans. Not everyone can glance at code and understand it. Even
I’d get lost if I had to stare at my diffs to find out what I changed
when. I think progress reports are a Good Thing.

In fact, I think they’re such a good thing that I want my students to
do them, even the first year students. I want them to get into the
habit of reflecting on what they’ve done, what they’ve learned, and
what they still need to learn. I want them to get into the habit of
mapping out what they want to do and marking out what they’ve
accomplished. I want them to explore not only their accomplishments in
terms of code but their growth in so many other areas, like working
with groupmates. I want to hear about problems not just at the end but
throughout the duration of the project.



April 13, 2004 - Categories: -Uncategorized

Went to my first aikido session. Was too late for 5:30 session so
attended 7:30 session instead. Diane was late and she didn’t bring a
uniform, so I was the only new one. They were every bit as
accommodating as she said. I practiced rolling forward and backward
although I still haven’t quite gotten the hang of it. Walking, too. I
also tried some of the throws.

I didn’t have contacts on, so everyone was a vague blur. Fortunately
people kept a close watch on me and those close to me repeated the
movements for my benefit. I still have a hard time keeping track of
all the movements, though.

Tiring! I’ll give it a few more shots—maybe until the end of this
week. Then I decide whether to continue or to drop it. I’m leaning
more toward something that will improve my coordination, though, but I
don’t know where to take ballroom dancing lessons. I suppose I can
take aikido just for fun, but it’s not really my kind of thing. Who
knows? We’ll see.

todl history

April 14, 2004 - Categories: -Uncategorized

Todl history might be better implemented as two stacks: one stack for
forward, another stack for backward. This eliminates the need to
carefully track what the next one is. However, the current
implementation is fine.


Local file links should be transformed to relative file links if possible

April 14, 2004 - Categories: emacs
(defadvice emacs-wiki-markup-link (around sacha activate)
  "Resolve the matched wiki-link into its ultimate  form.
Images used the  tag."
  ;; avoid marking up urls that appear to be inside existing HTML
  (when (and (not (eq (char-after (point)) ?\"))
             (not (eq (char-after (point)) ?\>)))
    (let* (string
           (wiki-link (match-string 0))
           (url (emacs-wiki-link-url wiki-link))
           (name (emacs-wiki-escape-html-string
                  (emacs-wiki-wiki-visible-name wiki-link))))
      (when url
        (unless (emacs-wiki-wiki-url-p url)
          (setq url
                 (if (string-match "public_html" url)
      (setq string
            (if (null url)
                (if (and emacs-wiki-serving-p
                          (emacs-wiki-wiki-base wiki-link)))
                     (emacs-wiki-wiki-base wiki-link) name)
                  (format "%s"
                           emacs-wiki-maintainer name))
              (if (save-match-data
                    (string-match emacs-wiki-image-regexp url))
                  (if (string-equal url name)
                      (format "" url)
                    (format "\"%s\"" url name))
                (if (save-match-data
                      (string-match emacs-wiki-image-regexp name))
                    (format "" url name)
                  (format "%s" url name)))))
      (add-text-properties 0 (1- (length string))
                           '(rear-nonsticky (read-only) read-only
                                            t) string)
      (setq ad-return-value string))))


Teaching evaluations for SY 2004-2005

April 14, 2004 - Categories: -Uncategorized
CS21A-A: Introduction to Computing I

What did you like best about the course and the teacher?

– She was very understanding! She would always never hesitate to approach the students if there is a prob.
– Fun, helpful, knowledgeable teacher.
– The course was like a playground, ripe with experimentation and countless possibilities. The teacher is very fun. It is also good that the teacher gives additional sites and sources for extra education.
– Her way of teaching is excellent. Although slower than last sem (lectures) I was able to understand every fully. She’s such an excellent professor! She’s always there when you need to consult. Very effective, because she makes java fun and she really wants to share her knowledge to all her students.
– My teacher’s so smart and knowledgeable about the subject! She’s one of those who won’t need a guide / index cards to teach. She scares me because she’s really smart and all that.
– The teacher is very helpful. The course is fun and you really learn coz of the hands on and practical tests.

What did you like least about the course and the teacher?

– The computers sometimes won’t even work.
– There are still some instances wherein one can get lost.
– She doesn’t give anything to read so I won’t know what to expect or do in class. Though, I am a poor learner, she’s still great teacher. Java’s really hard.
– Written exams.

What would you suggest to the teacher to improve the course?

– I like her the way she is… nice and always ready to help out :)
– There may be a need to get a little bit strict in terms of graded work outside and attendance
– Give more things to read
– More weight on hands on and more projects. Start with simple ones that will culminate into a big major project.

CS21B-A: Introduction to Computing II

What did you like best about the course and the teacher?

– Our teacher gives us challenging and fun activities.
– Free internet, having fun with games.
– She has a very lively approach in teaching the lesson. :)
– The teacher is perky and keeps us interested.
– Moderate pace but very informative.
– Stimulates critical thinking.
– Great teacher, fun course, stress reliever!
– Fun… fun… fun… :) Sacha, luvable teacher :) free candies java, funny teacher
– It’s about practical knowledge and practical skills for a programmer.
– Interesting and never boring. Very practical subject matter and practical way of doing things. Logical progression of ideas. Very flexible way of doing things. Assignments are actually… fun cough. Easy pace, not crushed, so we can get the concept, but also not boring.
– Interesting exercises, reasonable work load.
– Very interesting course, nice syllabus. The teacher is very approachable and is willing to help those who need assistance.
– It’s fun and challenging. Our teacher really knows what she’s teaching and she teaches naturally.
– Win or lose it’s the course we choose :) the teacher smiles a lot, knows a lot. The coures is interesting & air conditioned classrooms.
– The teacher encouraged working in groups. She knows how to keep the class attentive and involved. She made CS quite interesting.

What did you like least about the course and the teacher?

– Midterms (written tests), hands-on
– She talks really fast, he he
– More time pa dapat. More examples should be given.
– Nothing.
– Medyo mahirap mag true or false sa long tests (midterms) kasi malayo siya sa normal teaching style.
– Sometimes lessons too fast.
– It’s so challenging that some work is difficult to finish.
– Course — when I don’t understand the lesson well and homework given right away.
– Class schedule sucks. The teacher is… weird and proud of it.

What would you suggest to the teacher to improve the course?

– More fun class activities.
– Lecture more about the topics please. It’s hard to study on my own.
– Talk slower. :) he he
– Give more examples of simple program since we learn more with examples
– Replace Windows machines with Unix / Linux machines
– More group activities
– Smile more! More group works
– More exercises (?) but as it is, its alright—the book just can’t seem to give exercise though
– More personal/one on one
– Hands-on examinations
– Lectures, explain the code that we are working on, some terms
– More time to digest new lessons
– Keep smiling, classes should be at 11 pm, BS CS shouldn’t have Fil classes.

CS21B-B: Introduction to Computing II

What did you like best about the course and the teacher?

– CS21B is a very challenging course, and that’s why I like it. It’s like studying a language and getting that language to do things for you. The teacher encouraged us to learn independently before asking for help. Her obvious enthusiasm for the lesson she teaches makes learning CS21b easier.
– Interesting (both) & knowledgeable (teacher).
– The techer is very approachable & doesn’t fail to give every student the help he/she needs. She makes practical learning easy.
– I love chocolates.
– Most anything.
– We did many exercises and that helped me understand the lesson better.
– Course—helped my problem solving skills through the application of basic computing/programming concepts. Teacher—fun, easy to approach, always wears a smile. :)
– She is so lively. She makes the course interesting.
– Teacher: very knowledgebale about java and programming. Helpful.
– Free computers and internet access, air-con, I like computer, free stuff
– Lots of computers!
– Self-study
– Chocolates and candies!, creative lectures (sometimes), follow-up exercises, good personality! (did I mention chocolates).
– Free internet and the smiling teacher
– We received treats for doing good in class. The teacher is very lenient and cheerful!

What did you like least about the course and the teacher?

– The teahcer is sometimes a bit fast in teaching the lessons.
– Sometimes, there is not much information from discussion that the student can go on with.
– * course is difficult.
– NONE… I like it very much.
– Workload is sometimes heavy, almost every meeting brings more homework. Students were expected to do independent study but not everyone will catch up.
– Gloomy lighting
– Eyestrain
– The course is a bit too abstract for my taste.
– Self-study.
– Emailing exercises (email is unreliable! Bring back courses.edu!). sudden deadlines for work.
– Internet-based homework!
– The teacher is not very concerned with the students welfare.

What would you suggest to the teacher to improve the course?

– Just a little more discussion & everything will be fine :)
– Provide more codes to study.
– Get better chocolates, wider variety.
– More exercise, although there are enough already, more analogies for hard to grasp concepts.
– More lectures and real-life examples
– Uniform PPT presentations
– Computers!, makes me think. Teacher: lively, gives candy.
– More Powerpoint.
– No comment.
– Innovative and extra creative way of teaching: push on.
– More chocolate! Use courses.edu! Final project: many members, but higher level requirements
– It would be better if the teacher supervised the slow students to optimize learning. Com Sci is a course where it is hard to catch up if one is lagging behind.

CS161-E: Operating Systems

What did you like best about the course and the teacher?

– Very accommodating and approachable, interesting some what.
– The teacher is approachable and friendly. She’s also considerate and understanding enough.
– The teacher made the course interesting.
– Chocolate.
– The teacher was very smart and very helpful. She was always available for consultation and welcomed questions.
– She is very knowledgeable, the university should get more teachers like her. She is very friendly and approachable. We learned a lot from her. I like the examples that she gives.
– Examples in the lectures.
– She was concerned with students who do not understand the topic, thoroughly explaining to them.
– Always available for consultation (email etc)
– Teacher was always interested to hear questions from students.
– Sacha is funky. She really wants her students to learn. Projects are corny.
– Good teacher, lively class.
– It was important (basics)
– It was interesting.

What did you like least about the course and the teacher?

– Course: Maguyon’s complex questions and stupid multiple choice tests. Teacher talks too fast, starts class before bell rings.
– I guess instead of quizzes, we must have class activities instead. And these class activities are not necessarily graded. Also, I hope that the prof will inform us much earlier with regards to the exams (like venues, scope, etc.)
– The test!!! I think they don’t quite cover the more important aspects of the lessons, and they’re more MIS-friendly than CS friendly. What’s with the freaky multiple choice? Why do we feel we have to MEMORIZE THE ENTIRE SLIDE SETS just to get decent grades? What about testing logic and understanding?
– Some of the project specs were irrelevant (Ariel Maguyon’s)
– The projects were too difficult. The workload of the projects was too much to handle for MIS students.
– Projects given were not reasonable. Only a short time was given to complete the project and it was not taught in class.
– Why does Maguyon have to make the exams and projects?
– Projects were covering too many challenging aspects…
– Short time for programming projects… projects during Christmas break.
– Teacher goes too fast.
– Talks too fast.
– Linux, IBM room
– CS161 is boring :( Tests are hard.
– Long tests and unnecessarily complex projects
– Confusing multiple choice
– There were no computers to use when we had lessons in programming. We had projs that weren’t taught
– Crappy multiple choice testing in LTs

What would you suggest to the teacher to improve the course?

– Candy!
– To change #2
– Organization of lectures, present timetable so that we’ll know what to expect every meeting.
– Talk slower, wait for us to absorb it a bit before continuing :(
– Class activities and more chapter review. This helped a lot.
– Uh… prevent Sir Maguyon from making parts of the tests.
– Get better projects
– Separate MIS students with CS students, change the projects.
– The exams are too long.
– Make up your own exams & projects please?
– Slow down a bit. Reduce test questionnaire from A. Maguyon.
– More Maguyon classes.
– Talk slowly (?)
– Fire A. Maguyon.
– Remove modified multiple choice.

CS161-F: Operating Systems

What did you like best about the course and the teacher?

– The teacher was able to express and clarify herself whenever people had a hard time understanding, and has funny but oddly relevant analogies.
– The quizzes she gave were very helpful and she was very interested in keeping the class aware and attentive. And the candy was a plus too.
– The teacher makes the lesson sound so easy therefore it gets a little easier even if just a bit.
– She is quite lenient and flexible compared to some other teachers we could’ve gotten. She’s very enthusiastic.
– Teacher—sure na may alam (unlike other teachers who just read slides in front of class)
– She’s very good and very helpful in class
– Out of class relationship
– Teacher—cheerful, considerate and gives candies… :) also gives analogies that are very helpful in understanding different concepts.
– The teacher was helpful and wants us to ask questions

What did you like least about the course and the teacher?

– She’s not particularly boring considering it’s a read-from-the-slide type of lecture and compared to other CS teachers, she knows what she’s teaching and seems to be very good at it. (Sorry these are what I like best about the teacher.) The coding/programming part of the course was not taught enough.
– There are many concepts not discussed that end up in the exams.
– The course can be a bit demanding when it comes to project specs.
– Sometimes, she teaches a little too fast.
– Tests—really hard. Teacher—gives quizzes every meeting :(
– he’s too good. (hehehe) the course has so much information… for so less time.
– A bit fast, not exactly tailored for MIS majors (too far away from our programming experiences). Becomes an exercise in memorization, assumes background in *nix.
– She talks too fast and it makes it difficult for us to understand what she’s saying.

What would you suggest to the teacher to improve the course?

– Candy!
– To change #2
– Organization of lectures, present timetables so that we’ll know what to expect every meeting.
– Talk slower, wait for us to absorb it a bit before continuing :)

bbdb: prefix for sacha/try-expand-factoid-from-bbdb

April 15, 2004 - Categories: emacs

To control expansion further, I’ve made a bbdb: prefix required. This
will allow me to still properly use dabbrev expansion.

;; Particularly fun with ERC. I am now a bot!
(defun sacha/try-expand-factoid-from-bbdb (old)
  "Try to expand from BBDB. If OLD is non-nil, cycle through other possibilites."
  (unless old
      ;; First time, so search through the BBDB records for the factoid.
      (he-init-string (he-dabbrev-beg) (point))
      (setq he-expand-list nil)
      (when (string-match "bbdb:\\(.+\\)" he-search-string)
        (setq he-search-string (match-string 1 he-search-string))
         (lambda (item)
           (setq he-expand-list (append he-expand-list (list (bbdb-record-getprop item 'blog))))
           (setq he-expand-list (append he-expand-list (list (bbdb-record-getprop item 'web))))
           (setq he-expand-list (append he-expand-list (list (car (bbdb-record-net item)))))
           (setq he-expand-list (append he-expand-list (list (bbdb-record-getprop item 'notes)))))
         (let ((notes (cons '* he-search-string)))
           (bbdb-search (bbdb-records)
                        he-search-string he-search-string he-search-string
                        notes nil)))
        (setq he-expand-list (delq nil he-expand-list)))))
  (while (and he-expand-list
              (or (not (car he-expand-list))
                  (he-string-member (car he-expand-list) he-tried-table t)))
    (setq he-expand-list (cdr he-expand-list)))
  (if (null he-expand-list)
        (if old (he-reset-string))
      (he-substitute-string (car he-expand-list) t)
      (setq he-expand-list (cdr he-expand-list))


Ignoring orkut addresses in BBDB (EmacsHacks#21)

April 15, 2004 - Categories: emacs
(defun sacha/bbdb-canonicalize-net-hook (addr)
  "Do not notice [email protected] addresses."
  (cond ((null addr) addr)
        ((string-match "[email protected]\\.com" addr) nil)
        (t addr)))
(setq bbdb-canonicalize-net-hook 'sacha/bbdb-canonicalize-net-hook)


CSS rocks (AdphotoScheduler#1)

April 15, 2004 - Categories: -Uncategorized

In a fit of filial piety, I decided to sit down and start working on a
job scheduler for my mom. After briefly considering Java and the
attendant hassles of a client-server application, I decided to go with
PHP. I wanted it to be more graphical than my students’ submissions,
though. Browsed through projects on Freshmeat but didn’t really see
anything worth changing.

Listed a few user stories and decided to spike the graphical display.
Started out with a PNG produced by libgd. That went pretty well.
Translating time to world coordinates was easy. I wanted to limit the
view by start-time and end-time, but it turned out to be too much of a

Wondered if I could pull it off in HTML and CSS. Picked up a few
tutorials on absolute positioning and managed to pull it off quite
elegantly. Like new design.


– Schedule overview of resources
– Day view of resources

Next steps:

– Resource view
– Job view
– Unfake the data

Kathy Chua’s photo galleries

April 15, 2004 - Categories: -Uncategorized


Drop by my sister’s photo album and leave her a note! =)

Reflections from 2nd sem 2003-2004

April 15, 2004 - Categories: teaching

CS21A: Introduction to Computing I. Experimented with BlueJ and an objects-first approach. Students liked the interactive environment and had fun with the graphical and game-based exercises. Reading exercises helped build confidence and the students inferred the use of control structures from them. The programming exercises also helped them appreciate methods. However, I need to give them more opportunities for practice and I should challenge them more.

CS21B: Introduction to Computing II. Students continued working on their projects from last semester, with a twist: they did _other_ people’s projects. Some groups had a hard time working with
old code, but it looked like a pretty good learning experience for everyone. Making reviewers for the final exam was also a fun activity. They also picked up data structures easily, and their advanced studies in threads and files last semester paid off. Downside: Networking still difficult to test.

CS161: Operating Systems. I was initially worried about teaching a traditionally book-centered course, but managed to survive a semester of Powerpoint slides and departmental tests. Weird analogies helped out. Made the CS finals more computation-based, but students lacked practice. If I ever teach
CS161 again, I’d like to emphasize that aspect over the memorization currently required.

Plans for next semester:

Heterogenity. Students come with different backgrounds and proceed at different paces. I want to take advantage of that by providing many exercises and examples for students to learn from so that they can go at their own pace.

Progress. I want to be able to monitor student progress in a spreadsheet or a website. I’d like to keep track of their self-evaluation as well as my own evaluation.

Exercises. Students responded well to the fun and creative exercises I came up with for CS21A and CS21B. I think I’ve collected enough games and puzzles to demonstrate most of the major points in CS21. Over the summer, I plan to write up these exercises in a lab manual. The exercises will vary in difficulty so that beginners can still find fun and exciting projects to work on.

Drills. I would like to spend 5-10 minutes on speed drills to accustom students to solving written problems quickly. This will help them prepare for the midterms and the final examinations. Practicing for these drills will also keep them busy just in case they have nothing else scheduled.

Fancy striped tables

April 15, 2004 - Categories: emacs

Ephrem wrote:

Here’s a bit of magic to make fancy striped tables. The javascript is from
http://alistapart.com/articles/zebratables/. 4 steps. One caveat, if you have
multiple tables on a page (not including headers and footers) this
could result in multiple instances of id=”tabular”. If anyone knows how to adapt the
javascript to identify class instead of id, that would be an improvement.

  1. Edit emacs-wiki-publishing-header and add this javascript somewhere within
    the head tag:

  2. Edit emacs-wiki-publishing-header so that the body tag has an onload attribute as follows:
  3. Edit emacs-wiki-table-attributes so that it includes id=”tabular”:
        (setq emacs-wiki-table-attributes "id=\"tabular\" border=\"0\"
    cellpadding=\"2\" cellspacing=0")
  4. Add something like the following to your stylesheet:
        // Only tables with the "tabular" id, thereby avoiding header
        // and footer tables.
        table#tabular {
            border: 3px solid #555;
        // Apply border to all td elements which are not in the first row.
        table#tabular tr + tr>td {
            border-top: 1px solid #aaa;
        table#tabular td {
            padding: .5ex .5em;
        // Apply left border to all columns except the first.
        table#tabular td + td {
            border-left: 1px dotted #aaa;

E-Mail from [email protected]

Guiding students through programming puzzles: value and examples of Java game assignments

April 15, 2004 - Categories: -Uncategorized


The paper describes three puzzles. Students are expected to code
programs that try to find solutions to these puzzles. Hmmm… I think
that’s a bit too advanced for CS21, but I should be able to structure
some exercises like higher/lower, rock-paper-scissors and tic-tac-toe
for simple AI.

Using puzzles in teaching algorithms

April 15, 2004 - Categories: -Uncategorized


These ideas are perfect for CS110! I can’t wait to discuss the general
algorithm strategies in terms of real-life puzzles.


April 15, 2004 - Categories: -Uncategorized

I can’t quite get EClass to work. It looks rather promising, though.
Do you know of anything similar? I’d like to be able to write and
publish my courseware with a neat interface for browsers – collapsible
tables of contents, that sort of thing.

Scheduling tasks in the diary

April 16, 2004 - Categories: emacs
(defun sacha/planner-diary-schedule-task (time)
  "Add a diary entry for the current task at TIME."
  (interactive "MTime: ")
        (let ((info (planner-current-task-info)))
           (planner-task-date info)
           (concat time " | " (planner-task-description info) "")))))))

(defun sacha/planner-diary-add-entry (date text &optional annotation)
  "Prompt for a diary entry to add to `diary-file'."
    (if (or current-prefix-arg
            (not (string-match planner-date-regexp (planner-page-name))))
     "Diary entry: ")))
        (let ((cal-date (planner-filename-to-calendar-date date)))
          (calendar-date-string cal-date t t))
        " " text
        (or annotation
            (let ((annotation (run-hook-with-args-until-success
              (if annotation
                  (concat " " annotation)
      (planner-goto date)


Got my FSF papers back!

April 16, 2004 - Categories: -Uncategorized

I’m now an official contributor and my part of ERC can be merged into GNU Emacs eventually. Yay!


April 17, 2004 - Categories: -Uncategorized

I’m beginning to enjoy aikido. The moves are just so… graceful. They
remind me of ballroom dancing, strangely. I think I’m in, at least for
the next few sessions. Decided to get a gi. Must practice those
forward and backward rolls, though.


April 17, 2004 - Categories: -Uncategorized

Kathy picked me up from YMCA and said she was doing me a favor by
taking me out. I didn’t have much of a choice, so I went with her.
From YMCA Makati, we went to San Juan to drop off a box of brownies
and a pack of tissue for one of her friends who recently suffered a
devastating breakup. Tons of traffic along the way. Got really hungry
and had drive-thru. Hacked on the scheduler along the way.

Their gimmick was at Havana, which isn’t really my kind of place. I
didn’t really feel like mingling with all the other people around,
though, so I decided to wait for my sister at Hobbes. Figured I could
occupy myself by working on the scheduler and on the puzzles. Ordered
a small chocolate mousse to cheer myself up.

Fortunately, Dominique was in the area, so he came and rescued me. Had
fun chatting with him, didn’t notice time pass. Kathy and her friends
passed by to pick us up and continue the party at home. More
conversation. Learned much.

Sleepy. =)

Alternating rows

April 17, 2004 - Categories: -Uncategorized
li:nth-child(5n+3) {font-weight: bold}

Gnus frontend for Dashboard

April 17, 2004 - Categories: emacs

Hans de Graaff wrote Lisp code to make Gnus send clue packets to
Dashboard. Fascinating… I should try that for planner after I get
dashboard up and running!

E-Mail from Hans de Graaff

William Yu’s draft presentation on FOSS in the curriculum

April 17, 2004 - Categories: -Uncategorized

Publishing absolute URLs in RSS feeds

April 17, 2004 - Categories: emacs


(defvar sacha/emacs-wiki-use-absolute-url-flag nil
  "Non-nil means publish absolute URLs.")

(defadvice planner-rss-add-note (around sacha/absolute-urls activate)
  "Publish absolute URLs."
  (let ((sacha/emacs-wiki-use-absolute-url-flag t))

(require 'w3m)
(defadvice emacs-wiki-markup-link (around sacha activate)
  "Resolve the matched wiki-link into its ultimate  form.
Images used the  tag."
  ;; avoid marking up urls that appear to be inside existing HTML
  (when (and (not (eq (char-after (point)) ?\"))
             (not (eq (char-after (point)) ?\>)))
    (let* (string
           (wiki-link (match-string 0))
           (url (emacs-wiki-link-url wiki-link))
           (name (emacs-wiki-escape-html-string
                  (emacs-wiki-wiki-visible-name wiki-link))))
      (when url
        (unless (emacs-wiki-wiki-url-p url)
          (setq url
                 (if (string-match "public_html" url)
          (when sacha/emacs-wiki-use-absolute-url-flag
            (setq url
      (setq string
            (if (null url)
                (if (and emacs-wiki-serving-p
                          (emacs-wiki-wiki-base wiki-link)))
                     (emacs-wiki-wiki-base wiki-link) name)
                  (format "%s"
                          emacs-wiki-maintainer name))
              (if (save-match-data
                    (string-match emacs-wiki-image-regexp url))
                  (if (string-equal url name)
                      (format "" url)
                    (format "\"%s\"" url name))
                (if (save-match-data
                      (string-match emacs-wiki-image-regexp name))
                    (format "" url name)
                  (format "%s" url name)))))
      (add-text-properties 0 (1- (length string))
                           '(rear-nonsticky (read-only) read-only
                                            t) string)
      (setq ad-return-value string))))

Scheduler progress

April 18, 2004 - Categories: -Uncategorized

Ahhh. Much hacking done over the weekend. All the browsing parts of
the scheduler work. I need to finish installing postgresql so that I
can add the database side. Nearly done! I think I’ll finish on Tuesday.

Security comparison between Linux and Windows

April 19, 2004 - Categories: -Uncategorized

Registration required.

Link from Dominique Cimafranca

E-Mail from Dominique Cimafranca

New system

April 19, 2004 - Categories: -Uncategorized

I should get around to making a new Courses submission system so that
I’ll actually use it. Improvements:

– Teachers can create their own classes.
– Classes can be marked as active/inactive.
– Applets can be viewed in-place.
– People can delete files.
– Teaching assistants can change passwords, but not add/delete people.
– Teachers can add/delete people.


emacs-wiki-link-url: return relative links

April 20, 2004 - Categories: emacs
(defadvice emacs-wiki-link-url (around sacha activate)
  "Return relative links if possible."
  (when ad-return-value
    (unless (emacs-wiki-wiki-url-p ad-return-value)
      (setq ad-return-value
             (if (string-match "public_html" ad-return-value)
      (when (and sacha/emacs-wiki-use-absolute-url-flag
        (setq ad-return-value

sacha/fix-tla-log {{04.04.21,EmacsHacks}} 11:17

April 20, 2004 - Categories: emacs
(defun sacha/fix-tla-log ()
  "Correct a wrong commit.
Run this inside the arch subdirectory for the patch in your
repository, not your project tree."
  ;; Copy the log file
       ((directory (car (file-expand-wildcards "*.patches")))
           (concat (file-name-as-directory directory)
                   "new-files-archive/{arch}/*/*/*/[email protected]/patch-log/patch-*"))))
         (car (file-expand-wildcards "*.tar.gz")))
        log-md5 tar-md5)
     (when directory
       (if (file-newer-than-file-p "log" log-file)
             (delete-file log-file)
             (copy-file "log" log-file))
         (delete-file "log")
         (copy-file log-file "log"))
       ;; Recreate the tar.gz
       (delete-file tar-file)
       (call-process "tar" nil nil nil "zcvf" tar-file directory)
       ;; Calculate checksums
         (call-process "md5sum" nil t nil "log" tar-file)
         (goto-char (point-min))
         (re-search-forward "^\\([^ ]+\\)\\s-+log" nil t)
         (setq log-md5 (match-string 1))
         (re-search-forward "^\\([^ ]+\\)" nil t)
         (setq tar-md5 (match-string 1)))
         (setq modes (file-modes "checksum"))
         (insert-file-contents "checksum")
         (goto-char (point-min))
         (re-search-forward "^Signature-for")
         (delete-region (point-min) (match-beginning 0))
         (re-search-forward "^md5\\s-+log\\s-+\\([^ ]+\\)$")
         (replace-match log-md5 t t nil 1)
         (re-search-forward "^md5\\s-+.+?\\.tar\\.gz\\s-+\\([^ ]+\\)$")
         (replace-match tar-md5 t t nil 1)
         (when (re-search-forward "BEGIN PGP SIGNATURE" nil t)
           (delete-region (line-beginning-position) (point-max)))
         (let ((pgg-output-buffer (current-buffer)))
           (pgg-sign t))
         (delete-file "checksum")
         ;; Sign the checksum
         (write-file "checksum")
         (set-file-modes "checksum" modes)))))

Choosing and Using Open Source Software: A primer for nonprofits

April 21, 2004 - Categories: -Uncategorized

Link from Ignatius Hsu on [email protected]:

Here’s a good resource. Choosing and Using Open Source Software: A
primer for nonprofits, published by NOSI (Nonprofit Open Source

E-Mail from Ignatius Hsu

C2 wiki: Patterns for teaching

April 21, 2004 - Categories: -Uncategorized


– Goals: Have them and explain them!
– Structure courses top-down!
– Weave a tight net of understanding!
– Concrete before abstract!
– Beware of chunking!
– Explanation before expression!
– Good definitions are bad explanations!
– Tell Me Three Times
– Establish feed-back loops!
– Examples, examples, examples!
– Repeat, but don’t repeat!
– Tell stories!


April 22, 2004 - Categories: -Uncategorized

I think that scheduling the next day is a good idea. It’ll force me to
practice estimating time and prioritizing tasks. I mark scheduled
tasks as P so that I can quickly see which tasks have been scheduled
and which haven’t, although I might want to reset that back to _ so
that it isn’t misleading. Or I can find some other way to indicate

Straw and Jan Alonzo

April 22, 2004 - Categories: -Uncategorized


Kudos to Jan Alonzo (PLUG) for significant
contributions to Straw, a blog aggregator. Impressed.

How to be a programmer: a short, comprehensive and personal summary

April 22, 2004 - Categories: -Uncategorized


Excellent article. I think I’ll make it (or something similar)
required reading for my students. Mirroring locally.

Structured procrastination

April 22, 2004 - Categories: emacs

John Perry’s 1995 essay entitled “Structured Procrastination” is a
particularly good read for the procrastinator in all of us.
Considering the way that planner-el works, I think it’s a good fit. ;)
Check it out!

The essay is available at:

Orkut at 11 weeks

April 22, 2004 - Categories: -Uncategorized

James Farmer’s Online Education Weblog

April 22, 2004 - Categories: -Uncategorized

Scheduling an appointment with the AU embassy

April 22, 2004 - Categories: -Uncategorized

I need to call 1909 362 2779 using an NDD-capable line to set an
appointment. I guess that means I should do this with Mom tonight.


April 22, 2004 - Categories: emacs
(defun sacha/try-expand-emacs-wiki-name (old)
  "Expand a wiki name."
  (unless old
    (he-init-string (he-dabbrev-beg) (point))
    (setq he-expand-list
          (if (derived-mode-p 'emacs-wiki-mode)
              (delq nil
                     (lambda (item)
                       (when (string-match
                              (concat "^" (regexp-quote he-search-string))
                              (car item))
                         (planner-make-link (car item))))
  (while (and he-expand-list
              (or (not (car he-expand-list))
                  (he-string-member (car he-expand-list) he-tried-table t)))
    (setq he-expand-list (cdr he-expand-list)))
  (if (null he-expand-list)
        (if old (he-reset-string))
      (he-substitute-string (car he-expand-list) t)
      (setq he-expand-list (cdr he-expand-list))



April 22, 2004 - Categories: -Uncategorized

How can I make an appointment?
Tuesday afternoon, 10:00 a.m.?
Hey, no one’s picking up at the NZ embassy.
Lodging: 9:00 – 12:30, no appointment
Follow-up, call the visa officer after 1:30

Free NZ visa

April 22, 2004 - Categories: -Uncategorized

On the plus side, our country has a bilateral fee waiver agreement
with NZ for visitor’s visas not exceeding 59 days. That’s good.

Planning for instruction: CS21A

April 22, 2004 - Categories: -Uncategorized

Following tips from http://trc.virginia.edu/Publications/UVaTeaching/I1.htm

What do you expect students to learn?

In CS21A, I expect students to learn how to write graphical Java
applets and applications that use conditionals, control structures,
and collections to solve problems. I also expect them to learn how to
learn new functions and ideas from documentation, and develop the
habit of object-oriented design and decomposition. They should also
master tracing and debugging programs.

How will you correlate what you expect students to learn with assignments and evaluations of their work?

To measure their ability to learn independently by referring to
documentation and experimenting with programs, I will give open-ended
laboratory exercises and credit for things learned outside class.
I will also give research-style assignments.

To measure their ability to read and trace through code, I will have
drills and other exercises.

To measure their ability to debug, I will give them programming
exercises where they have to test and debug source code.

To develop their ability to design objects, I will present them with
situations and ask them to identify the objects, methods and
attributes in an assignment that spans several sessions.

What knowledge and skills are prerequisite to success in your course?

Students must know how to move and copy files on the computer in order
to submit their projects. Arithmetic is also required.

How will you know whether students are learning throughout the course?

Self-evaluations, laboratory work, quizzes.

How will you vary your instruction?

Most of my instruction will be in the form of written supplements and
laboratory activities. I will also demonstrate code in class.

How will your syllabus show students the focus of your course and how all assignments are connected to that focus?

The topic outline will be central to the course webpage. Assignments
will highlight which topics they are relevant to, and assignments will
also be cross-referenced with the topics so that students who want to
practice a particular topic can choose among the available exercises.

How many students should you expect?

I expect 20 students in my CS classes and 30 students in my MIS classes.

Is this course for majors and/or minors, or does it attract students from other departments?

Almost all CS students approach this as a relevant major course. MIS
students might not see the relevance of the course to their future
work. I occasionally get non-majors.

How much work can you reasonably assign for each class?

I can assign short homework (~ 15, 30 minutes to complete) for the
lecture days. Most lab work should be done in class. Students are
expected to devote outside time to work on their projects.
Realistically speaking, I should expect no more than 4 hours a week,
preferably set up as two long blocks.

How many of my students will never have written a college-level paper?

Most of my students will need some correction.

How will you budget your time?

I would like to prepare courseware for this. I expect to devote an
average of 2 hours preparing for each class session.


A Brief Summary of the Best Practices in Teaching

April 22, 2004 - Categories: -Uncategorized

Intended to Challenge the Professional Development of All Teachers
Compiled by Tom Drummond North Seattle Community College, 1994, 2002



Interesting notes from the best practices

April 22, 2004 - Categories: education, teaching


Guided Lecture: Students listen to 15-20 minutes of lecture without taking notes. At the end, they spend five minutes recording all they can recall. The next step involves learners in small discussion groups reconstructing the lecture conceptually with supporting data, preparing complete lecture notes, using the instructor to resolve questions that arise.

Immediate Mastery Quiz: When a regular immediate mastery test is included in the last few minutes of the period, learners retain almost twice as much material, both factual and conceptual.

Individual Task With Review: Problems to solve that apply the concepts presented. Students complete a worksheet or other task and compare the results with their neighbors before the whole class discusses the answers.

Intrinsically-Phrased Reward Statements: Positive expressions about emerging learner performance and achievement highlight internal feelings of self-worth and self-satisfaction (without praise, which is an extrinsic judgment). Enjoyment “That was fun!” “I get pleasure from that, too.” Competence “You did it!” “That is mastered!” Cleverness “That was tricky.” “Creative.” Growth “You’ve taken a step forward.” “Change has occurred!”

Construction Spiral: Ask a sequence of questions, beginning at a reflex level, in a three-step learning cycle—(1) individual writing for 3-5 minutes, (2) small group sharing in trios or pairs, and (3) whole class, non-evaluative compilation. Used to construct understandings and concepts.

Peer Teaching: By explaining conceptual relationships to others, tutors define their own understanding.

– Question Pairs—learners prepare for class by reading an assignment and generating questions focused on the major points or issues raised. At the next class meeting pairs are randomly assigned. Partners alternately ask questions of each other and provide corrective feedback as necessary.

– Learning Cells—Each learner reads different selections and then teaches the essence of the material to his or her randomly assigned partner.


Learning-centered syllabus

April 22, 2004 - Categories: -Uncategorized


(Nice page!)

I should expose my students to these questions. We’ve missed out on
them so far.

– How do we think in this discipline?
– How do we organize knowledge, add to the knowledge base, recognize and test new knowledge?
– What is our philosophical base?
– How do we approach questions of ethics?
– With what theoretical questions are we most concerned?

– How do we use knowledge in the discipline?
– How do we apply what we know?
– How do we recognize unmet needs?
– How does this discipline make the world a better place?
– With what other disciplines do we interact?

– What stimulates our enthusiasm?
– How do people in our discipline rejuvenate our interest or intellectual involvement?
– What are our greatest accomplishments and loftiest goals?
– What makes the discipline a worthwhile field of study?


April 22, 2004 - Categories: -Uncategorized

Specificity. Start with the four to six broad concepts, principles, or themes for the semester, then write specific objectives for each. These will be useful for planning the course, evaluating student outcomes, and in developing tools for evaluation.


– Describe the great ideas behind computer science. (The _why_. See previously blogged topic.)


– Write graphical applications that solve real-world problems using basic programming structures.
– Test, trace and debug programs.

Independent learning

– Develop a plan for learning unknown material.
– Learn new features from documentation.
– Share lessons learned with others.


– Identify the requirements.
– Design an object-oriented system.
– Develop a plan for implementation.


Heuristics for good lectures

April 22, 2004 - Categories: -Uncategorized


How can you draw/grab students’ attention to your lecture given their preoccupation with so many things when they walk into the door?

I wonder – maybe I can do some kind of voting. Open each session with
a controversial thought, like “Learn programming in 21 hours.”


April 22, 2004 - Categories: -Uncategorized

Perhaps a group blog might be a good idea. I’ll give 10 minutes at the
end of each period (ouch, that leaves just 30 minutes for whatever
discussion I might want to have, but I think it’ll be worth it). Each
day, a particular person is assigned to blog, and all typing must be
done by that person. They can contribute their input. It becomes a
group notebook.

Request tracker

April 23, 2004 - Categories: -Uncategorized

My mom would like a way to keep track of tasks not covered by Job
Orders. A request tracker would perfect for this, as it’ll help her
see open tasks and to whom they are assigned.

Deployed scheduler

April 23, 2004 - Categories: -Uncategorized

– Make changing the date easier when creating a new job.
– Open job in new window?
– Improve design
– Deal with time < 0, whoops. - Make it easier to have undated jobs

Short story: SMOKED

April 23, 2004 - Categories: writing

“All right, kiddo, cough it up.”

She shook her head, mouth clamped shut.

Exasperated, he pinched her nose.

When she gasped for breath, he grabbed the saliva-coated cigarette.
“This is bad for you.” He was about to chuck it into the trashcan when
nicotine pangs hit. Wiping it on his sleeve, he lit it up.

E-Mail from Irv Pliskin

ISC stories: Elimination

April 23, 2004 - Categories: geek

I was 12 years old and bored out of my wits in the high school
freshman computing class that Hagee Sarmago taught. Although the
“Bastard Operator from Hell” series he gave us for our MSDOS Edit
practice were amusing, I itched to program, to do something more. To
keep me busy, Hagee dumped me in front of a Linux computer, gave me
the root password, and told me to figure out how to set up a bulletin
board system. Seeing how I threw myself into the task, he suggested
that I try out for a yearly competition using the QBasic programming

I knew absolutely no QBasic. Sure, I’d been programming since I was a
kid, but GWBASIC’s line numbers intimidated me so much that I learned
Turbo Pascal on my own instead. I’d never been in a programming
contest before. I’d participated in chess tournaments and even a
trivia contest here and there, but my grade school had never joined
any programming contests. I’d have to learn the language, then I’d
have to learn all the algorithms. How on earth was I going to compete
in a programming competition only a few months away?

“Try it anyway,” he urged. With some trepidation, I turned up at
school during the morning of the eliminations, wondering if I could
avoid making a fool of myself.

March 19, 1996. The fourth floor auditorium was deserted. Uh oh.
Correct date? Check. Correct place? I made sure of that. Correct time?
Didn’t Hagee tell me it was in the morning? I paced, trying to ignore
my rising panic as I checked the corridor for any announcements. Could
they have moved the eliminations earlier? Did I miss it? Could I still
make up?

Hagee found me on my third or fourth circuit around the rooms. I asked
him where everyone else was, and he laughed and told me to come back
in the afternoon. With a sigh of relief, I went down the stairs and
kept myself busy.

The eliminations were held after lunch. I recognized some of my
classmates in the crowd. There were few empty seats, and I gulped as I
pondered the tough competition. Newsprint sheets and problem
statements were handed out, and the contest began.

Selection was simple. They would train six people with the most number
of problems correctly solved. I flipped through the problem set and
picked the easiest one. We could solve the problems any way we wanted,
so I started sketching a solution in Turbo Pascal.

Half-way through, I found myself grinding my teeth in frustration.
Syntax seemed suddenly restrictive. Thanking whatever gods may be that
Hagee taught us how to flow-chart, I started doodling all over the
page. Flow-charts took a lot more space, but it made it easier to
change my mind and stick something in the middle of a solution.

Around me, other people were similarly frustrated. Many quietly got up
and left. I continued scribbling furiously. I might have a chance!

The organizers called the time, and I reluctantly passed my papers
forward. A tall guy with a shaved head checked the papers, laughing
maniacally. I hovered about the front, anxious to find out how I did.
Five! I’d solved five out of nine problems correctly, earning me a
place in the team!

The scores were:

Neil Ongkingco 6 2
Ernest Baello III 0
Aldwin John M. Salido 1
Jemmuel del Carmen 4 6
Leo Crisologo 3
Jose Carlo Tubadeza 3
Oliver Ang 5 3
Mario Carreon 5 4
Sacha Chua 5 5
Jerome Punzalan 9 1
J. Lagon 4 6

Snarfing appointments from mail

April 25, 2004 - Categories: -Uncategorized


Check out u-appt.el and icalendar.el .

E-Mail from Ulf Jasper


April 25, 2004 - Categories: emacs

This patch adds support for subdirectories under a main wiki
directory. Subdirectories are recursively added. On publishing, the
directory name is resolved relative to the main wiki directory, then
expanded relative to the publishing directory.

Haven’t added this patch yet. Should think about it more first.


emacs-wiki–gary–1.0–patch-2: favor page names over interwiki names

April 25, 2004 - Categories: emacs

patch 2 changes current emacs-wiki behavior to favor intra-wiki page
names over interwiki names, which may or may not be a good thing.


Video annotation

April 26, 2004 - Categories: -Uncategorized

– User interface needs to be cleaned up
– Packaging

JMF, open tix, lecture02.tix

– play
– take notes of what needs to be fixed
– convert it into XML

Dropping universities in New Zealand

April 27, 2004 - Categories: -Uncategorized

I did some more reading and I think I can omit the University of
Canterbury and the University of Auckland. Although the two
universities are interesting and I’m a big fan of Tim Bell’s “Computer
Science Unplugged” project, dropping NZ will give us more breathing
room during the Australia part of our trip.

On the Origins of Programmers: Identifying Predictors of Success for an Objects-First CS1

April 27, 2004 - Categories: -Uncategorized

Learning and KM insights

April 27, 2004 - Categories: -Uncategorized

PIM definition

April 28, 2004 - Categories: -Uncategorized

Abbreviated PIM, a type of software application designed to help
users organize random bits of information. Although the category
is fuzzy, most PIMs enable you to enter various kinds of textual
notes — reminders, lists, dates — and to link these bits of
information together in useful ways. Many PIMs also include
calendar, scheduling, and calculator programs.

Exactly what I want to do. =)

personal information manager – Webopedia.com

Heavily tweaked w3m

April 28, 2004 - Categories: -Uncategorized

I’ve decided to do even more things the Emacs Way. Emacs-w3m is a lot
more customizable than Mozilla. This is Emacs we’re talking about
after all, so it’s no surprise. ;)

I’ve set up a heavily tweaked keymap that might fit the way I browse:
an insane number of tabs and a lot of remembering. The default keymaps
favor QWERTY, but I’ve tweaked it for my Dvorak keyboard. Here are a
few thoughts.:

, and .         cycle through the tabs
HTNS (all caps) navigate through the page per line
tn              scroll through the page like DEL and SPC
r               remember

By default, pages open in new tabs in the background.

See linked file for more details.


Day 8

April 28, 2004 - Categories: -Uncategorized

My house is really just five minutes away by car, so I needn’t worry
so much about being late. I was somewhat stressed out this afternoon,
though, as the driver didn’t return until around 5:20.

I’m slowly getting the hang of rolling during moves. It’s a good thing
other students helpfully cue me by stage-whispering “Front roll” at
the appropriate moments, although I tend to begin my roll a little
earlier than I should because I anticipate the throw. They also
patiently correct my footwork.

Doing slightly better, though. After a few tries, I remembered which
leg to move and which hand to attack. The throws the sensei had us do
today reminded me of ballroom dancing, so I found it easy to move in a
slow and relaxed manner.

One embarrassing thing, though. One time, I got so distracted that I
forgot to do a proper front roll. I was blissfully obeying the laws of
gravity when I realized I was getting uncomfortably close to the
ground. I realized I’d forgotten to put my hands down in the proper
position of a front-roll. Managed to avoid a full face-plant, but
still, that was odd.

Slide-and-glide still leaves me out of breath. Maybe I’m breathing too
fast. Should I try to inhale and exhale each count? I suspect that I
tire easily because of hyperventilation. I’ll try breathing in a more
relaxed manner next time.

Situated Software

April 29, 2004 - Categories: emacs

Link from TerryP’s blog

I think this is why I have so much fun working on PlannerMode. I have
a clearly-defined set of users in mind (mostly the mailing list) and I
love threshing out interfaces and features with them. It’s not a
large-scale application and it certainly doesn’t appeal to the masses,
but it can be quite powerful when you get the hang of it.

Hey, Emacs is like that too. =)

Open source supports situated software very well, as you can tweak
something existing in order to fit your needs.

By the way, the author taught a class called Social Software.

Must forward to Dr. Rodrigo. This is her kind of thing.

Shirky: Situated Software

Scrubbing software

April 29, 2004 - Categories: -Uncategorized

Yeah, I think I should just scrub the CoursesSubmission system instead
of rewriting it (as I’m so tempted to do).

Joel on Software – Rub a dub dub

Levels of programmers

April 29, 2004 - Categories: -Uncategorized

I think I should show this table to my class to give them an idea of
their career path and the growth required.

Joel on Software – How do You Compensate Programmers?

Why web forums don’t mail you repiles to your posts

April 29, 2004 - Categories: -Uncategorized

If they mailed you responses, they’d effectively kill the community.
C’mon, are you going to keep checking back there? I wouldn’t. Good
point. Very very true.

Joel on Software – Building Communities with Software

Small commits

April 29, 2004 - Categories: emacs

This is almost exactly what I do with planner. I try to keep commits
as small and self-contained as possible. Not only does it make it
easier to roll back (although I still have to figure out how to mark
certain changesets as do-not-use, aside from deleting them from the
revision library), but it also makes it possible for people to
cherry-pick changes.

This works to my advantage as well, as other people are encouraged to
make their patches nice and small. I still have to hand-tweak some
changes. For example, Gary Vaughan uses a different tree structure.
However, I can review the patch logs and merge the changes in

java.net: Keep Changes Small: A Happy Jack Story [Apr. 27, 2004]

MegaWiki: Like PlannerMode, but for the Palm

April 29, 2004 - Categories: emacs

MegaWiki seems to be the Palm equivalent of PlannerMode, except with
better stylus interface. It seems to be free and open source software,

Time to borrow a Palm…

FreewarePalm: MegaWiki v5.4

Links in PIMs

April 29, 2004 - Categories: -Uncategorized

I had been thinking along the web way, but this paper suggests another
approach more suited to the semantic web. Interesting insight.



April 30, 2004 - Categories: -Uncategorized

Get a YHA card
Get sheets

Brisbane first

Skytrans shuttle bus between transit center and airport (tel 3236 1000), fare 6.50
Getting around: Off-peak saver card, $4 or buses at $1.40 a trip

– Brisbane Visitors Accomodation Service, 3rd level of transit center (tel 32362020), 7-6pm weekdays and 8-5 weekends)
– Internet: Central City Library, $4 per hour
– Second-hand bookshop: Archives Fine Books (40-42 Charlotte Street)
– Second-hand bookshop: Emma (82A Vulture St., West End)
– Crafts Village at South Bank (Friday evenings, Saturday and Sunday until 5 pm)
– Eagle St. Pier, Sunday morning handicraft market

Bus to Sydney. 17 hours. ! 69 to 75. Try Premier Pioneer Motor Services


– Around Sydney: Get a Green Travel Pass $28 for the week
– Internet: Travellers Contact Point (7th floor, 428 George St.), Backpackers World (212 Victoria St., Kings Cross). 175 Liverpool St. opposite Hyde Park (24h).
– Dymocks: 424-426 George St.
– Gould’s, 33 Kng St., Newtown (second-hand)
– Powerhouse Museum, behind the Sydney Exhibition Center, 500 Harris St., Ultimo 10 am – 5 pm, $8
– Hostel: ~ 20/25.

Bus to Melbourne: 12-13 hour, Firefly Express (9211 1644) 45-50
Ask if I can get a discounted train ticked, 10.5 hours, $93 economy


– From airport: $9 Skybus, Bay 30 Spencer St. Coach Terminal to Melbourne Transit Center, every half-hour between 6 am and 10.30 pm
– Weekly tram ticket, zone 1: $18.60 (get All Day tickets instead if 4 days or less)
– Angus & Robertson Bookworld, 07 Elizabeth St.
– Collins Booksellers, 115 Elizabeth St.
– Dymocks, Bourke and Swanston Sts.
– State Library (Swanston and Russell Sts., near Latrobe St.)
– Tram tour, Zone 1 $4.30 per day
– Scienceworks Museum, 2 Booker St., Spotswood (15 minutes walk from the train station)
– City Center: Exford Hotel Backpacers’ (9663 2697) $11

Andrea Bocelli

April 30, 2004 - Categories: -Uncategorized

Skipping aikido today because it’s too close to the Andrea Bocelli
concert tonight. My mom and I have tickets; not very good tickets, but
decent. Kathy is kicking herself in the shin for turning down a _free_
center-box ticket someone offered her. She was offered that ticket by
some organization in order to take pictures, but the organizers are
firm about no cameras, and she didn’t feel like going if she couldn’t
shoot. She called to cancel over the protestations of the people
offering her the ticket. When she realized it wasn’t all going to be
in Italian and that the value of the ticket she declined was 50k (50k
for _one_ _seat!_), she was very vocably annoyed.