Emacs no longer segfaults. Yay!
Almost two hours to send 19 students personal mail about their short quiz earlier.
Link from Miguel Paraz:
The company I work for runs a large, high-profile web site with users
all across the world and delivers them large amounts of streaming
media content plus textual stories. You might guess therefore that
this is a news website, frequently updated throughout the day, and
delivering content 24×365. No names, or course, for obvious reasons.
We have a big, custom, Java content management system (based on a
framework from a proprietary vendor as it happens, but could just as
well be EJB/J2EE for all that it matters in the context of this
argument) and for deployment we run our website using Java app servers
on Solaris behind Apache.” If you were going to take such a site from
1000 users, to 10,000 users, would you be able to do it using this
kind of setup?
“It is all hugely expensive to license and to run, and it’s not very
scalable. We’d like to up our userbase from several tens of thousands
to ten times that number – but the cost of scaling the Java/Solaris
infrastructure is not trivial, because the Java servlet architecture
costs too much in memory and execution time (creating several 100Ks of
in memory objects for each logon is expensive stuff!). On current
hardware we can support only 1200-1500 concurrent logins and scaling
up requires a new app server (eg 1 processor + 1GB RAM) and a $20K
software license for each additional 600-750 concurrent logged in
users. And in today’s ‘cost per active subscriber’ economics it
doesn’t add up – we cannot justify the present cost structure, by any
rational measure, even before we try to scale it up.
So we’re thinking of chucking it out and replacing it with a largely
static site that is generated (written out to cache) from a new,
simpler content management system. The few dynamic elements would be
assembled using simple PHP scripts, frontending our existing Oracle DB
server. We reckon we could serve vastly higher numbers, ten to a
hundred times as many, of users on the same (or cheaper!) hardware:
and it would be simpler by far to build and maintain and support.
I, personally, believe that the benefits of the Java system (rapid
prototyping, development) are not important when large scale
deployment is the issue. I am (as a user) fed up with large, poorly
performing Java-based websites. My beef is not about Java the language
though – it’s a question of appropriateness. Fifteen years ago we’d
prototype in Smalltalk and then code for deployment in C, and I feel
the same applies here. The economics of the noughties do NOT support
spending massive amounts of money on web infrastructure, unless the
transactional revenue justifies it. Of course, most businesses
generally don’t justify it, in my opinion.
Our outsourcing partner who supports and maintains the architecture
thinks we are crazy. Putting their potential loss of revenue aside
they are hugely concerned that we’ll not be able to support what we
create. They are seriously against this idea.
I remember, prior to Java & the like, supporting simple CGI websites
with tens & hundreds of thousands of users off of cheap FreeBSD
systems, and we didn’t have to pay an outsourced partner to do it.
Should keep track of random teaching ideas…
These past few days I’ve been in semi-hermit mode. I’ve just had a
sudden bout of teacher-ness and… you know… I really like it. I’ve
been e-mailing each of my students comments on their work.
I’m asking them to do a heck of a lot of work within the next few
weeks. I hope they can see that project 2 and project 3 are related,
and the same concepts they use in project 2 will be used again in
The end of the sem is drawing near.
http://www.gaminggeeks.org/Resources/KateMonk/, said Martin.
I gave this as an exercise to my CS119.2 class. Too bad I couldn’t stretch
it too much because it’s not really course-related, but I put it as a “CS
exercise which CS students ought to think about.” :)
Had a lot of fun with this — unfortunately, the guys behind it don’t want
to show their implementation to the world (yet?). :)
Medical transcription, wearables, taking notes
B2B R3 RICE B2B R6 SUGAR Send to 2333 for Globe subscribers 211 for Smart subscribers
This is actually a pretty cool project… Wow!
by the way sacha, however did you find out that i had linked you to my blog
already? and a correction to your own post – i’m an MIS graduate, not CS… =)
Logs. I periodically check my logs for new links and search queries – kinda fun.
sacha just gave me even more headaches with that sort problem i gave her – i guess i ought to up the ante and find some other
problem for her to sort out. she DID have a point with the efficiency problem…
I’ve gotten to the point where I don’t have to solve all the questions
people give me. ;) In fact, I prefer making _them_ think about it.
i saw sacha last night, but i didn’t get to introduce
myself to her. darn. there’ll be a next time, for sure… and i was
reading through her wiki again last night, and noticed a cute article
she wrote on relating with her. does that mean i have to up my
geekiness notch to get to know her? i hope i don’t have to go
overboard on that. she also has another reflection along the same tune
(this time on marriage), which is also an interesting read.
<evil grin> Computer geekiness an advantage but not a requirement;
interest in something is essential. =)
CSJ wrote on the debian-user mailing list:
For helping teach my kid to read I used emacs running emacspeak. The robotic language, via the eflite speech synthesis server, was sufficient to get the words' pronunciation across. Type "D-O-G-
" in a buffer and you get the audio feedback "dog." I used to set the xterm to the most massive font size available (by adjusting the font and screen sizes) to make reading, or so I assumed, easier for preschool eyes.
Sacha wrote: > I'm somewhat hesitant about taking my master's degree in Ateneo > because I want to learn more about different teaching styles and > campus cultures. I agree with you here. It's much healthier to go for further studies (or work experience) outside. If you want to specialize in CS Education, it would be better if you went abroad, and best if you came back to share everything you learned. :) Didith
|1. When do you feel your best?||c. Late at night|
|2. You usually walk…||b. Fairly fast, with little steps|
|3. When talking to people, you…||d. Touch or push the person to whom you are talking|
|4. When relaxing, you sit with…||a. your knees bent with your legs side by side|
|5. When something really amuses you, you react with…||c. a quiet chuckle|
|6. When you go to a party or social gathering, you…||b. make a quiet entrance, looking for someone you know|
|7. You’re working very hard, concentrating hard, and you’re interrupted…||c. vary between these two extremes|
|8. Which of the following colors do you like most?||a. red or orange|
|9. When you are in bed at night, in those last few moments before going to sleep…||b. on your side, slightly curled|
|10. You often dream that you are…||f. your dreams are always pleasant.|
(+ 6 4 7 4 3 4 4 6 6 1) = 45
41 TO 50 POINTS:
Others see you as fresh, lively, charming, amusing, practical, and
always interesting; someone who’s constantly in the center of
attention, but sufficiently well-balanced not to let it go to their
head. They also see you as kind, considerate, and understanding;
someone who’ll always cheer them up and help them out.
Picked this up off friendster, on which I am email@example.com .
2003-2004 will be on:
October 22, 2003, Wednesday (for GRADE SHEETS SUBMISSION)
*October 26, 2003,Sunday (for ON-LINE SUBMISSION ).
From John Wiegley, Emacs ubercoder:
I’ve traded 60 Mb on my laptop for 60 Kb. How can you, too, lose
three orders of magnitude of fat and waste on your hard drive?
By checking out the incredibly lean and mean “ledger” accounting
tool. Written in C++, it parses it only, simplified general ledger
file (intended for editing with Emacs), or it can even just parse
GnuCash data files directly. This gives you the easiest way of
That will print out your GnuCash XML ledger data into much simpler,
text-based “ledger” file.
Below is the code. For reading GnuCash, you’ll need libxmltok1-dev
installed (if you’re a Debian user). It also uses GNU’s
multi-precision library (libgmp3-dev) and Perl regular expression
The original problem:
Hi, I have a file in this format of words: joe jill bill bob frank tom harry and want to convert the file to this format: joe jill bill bob frank tom harry Is there an easy way to this? The file I have has hundreds of entries. Thanks Mike
Several proposed solutions
for word in `cat file`; do; echo $word; done > new_file for x in `cat file`; do echo $x; done sed -ri 's/[ \t]+/\n/g' file tr ' ' '\012' < infile > outfile fmt -w 1 filename > newfile perl -p040 -l12 -e 'chomp' filename perl -p040 -e 's/\s/\n/' filename
Ani Dido Sevilla:
Apparently the only way you can have access to Usenet these days from
here is via groups.google.com. Some years ago, around 1997 or so, I
once had a Pacific Internet account and could access Usenet news via
news.pacific.net.ph, which apparently was an alias for Pacific’s Usenet
server in Singapore. Dunno if Pacific still has this service though,
but apparently the name still exists and works.
The tutorial uses BlueJ as an environment. Interesting…
From someone whom I shall keep anonymous (pfft!):
From: "***** *. *****" <*****@*******.***> Subject: RE: Linux Expo To: "'Sacha Chua'"
sacha, are you girl or gay? -----Original Message----- From: firstname.lastname@example.org [mailto:email@example.com] Sent: Tuesday, October 07, 2003 5:26 PM To: ***** *. ***** Subject: Re: Linux Expo "***** *. *****" <*****@*******.***> writes: > ic... actually im interested in linux expo and i wanna learn some tips in > administiring linux server. right now im maintening company web server Why don't you check out the Philippine Linux Newbies mailing list? You can subscribe at http://lists.q-linux.com/mailman/listinfo/ph-linux-newbie Subscribe, post a short introduction, and ask questions! =) -- Sacha Chua - Ateneo CS faculty geekette interests: emacs, gnu/linux, wearables, teaching compsci http://sacha.free.net.ph/
Apparently, gender still matters to some people – at least enough to
ask a semi-embarrassing question… ;) Reminds me of a story Patrick
told me. Some people at APC were apparently talking about people
they’d met online, and there was some confusion as to the gender of a
‘sachac’. They thought ‘sachac’ was gay because of the way sachac
typed. Patrick had to… ahh… straighten them out.
According to Kathy, my sister:
10 things about life Hong Kong taught me in 24 hours.
1. It pays to be a girl.
People are just so much nicer and more patient.
2. Chat up the cab drivers
They’ll tell you more about a place then a guidebook and might even
knock off a few dollars from the meter rate if they feel like they
took a longer route. My cab driver took a couple wrong turns and
insisted I pay HK$ 10 less than what was required.
3. Pack light and wear thick socks.
You never know when you’ll have to walk all over the place luggage in
4. McDonalds: A gift for beleaguered travellers.
When you’re too tired to play multiple guess with a chinese menu and
don’t have the stamina to get yourself understood. Surrender and crawl
to McDonalds. You might be considered a philistine for doing so but at
least you’ll get what you expected.
5. Never overestimate the kindness of your countryfolk
“Ay Pinay!” Okay, so I let my guard down a bit and consequently got
ripped off twice. Once by a Filipino (who convinced me I needed
another call card) and the other time by a Filipino store. The place I
got checked into was on top of a Filipino crafts store, I thought it
couldn’t be THAT bad… it was… worse. See item #8)
6. Anything that’s too cheap to be good is probably too good to be true.
Case point: I missed the backpacking lifestyle so I gave the HK youth
hostels a try. Booking a bed at the Mt. Davis Jockey Club YH, I
learned that for only HK$95 per night you get a bed with linen in a
dormitory. Located in a place with historical military significance,
on a deserted mountain hideaway surrounded by two major cemeteries.
Plus an obligatory cleaning chore before you leave each morning.
Getting to the hostel though is a walk in a park… a fairly large
park (it takes half an hour to hike down). Good thing there’s a
shuttle which runs 4 times a day, because most taxi drivers will try
to avoid going through the hairpin turns which riddle the steep road
to the hostel. :) For a truly haunting experience, give this a go.
7. Just when you think you’ve hit rock bottom, you’ll find it’s
possible to dig even deeper.
So I thought my first choice was bad. Called up a friend quickly and
asked him to find me an inexpensive (I meant budget, not cheap) room
nearer to Central. Given the previous choice and the next one,
sleeping on the streets didn’t seem entirely unappealing.
8. If your accomodations are listed under tourist
attractions… You’re either at the Ritz or the Red Light District.
I can’t afford the Ritz and I thought it would be like Kingscross in
Australia. It wasn’t.
9. Keep in touch with old friends.
I’m staying in a nice, safe, familiar place tonight. My friend Elaine
lives in New Territories, and though it’s closer to China than Hong
Kong Central, after last night’s escapade, I’m glad the only thing
I’ll have to brave is the distance.
10. Tomorrow’s a new day.
So I made a few errors in judgement. I survived and now have a story
to tell. I’m a bit wiser now and so the next day will be different.
Today was actually a really productive day for me. :) Wish me luck
though, I still have a couple more days in Hong Kong.
Disclaimer: As of the moment, I love being in Hong Kong. Its a city
that never seems to have a still moment (unless you’re marooned on Mt.
Davis).To experience Hong Kong is to lay siege on your senses. Nothing
here is average. The juxtaposition of extremes blend into something
that is uniquely Hong Kong.
In 24 hours I’ve seen places and things that are truly old or
ultra-modern, dirt cheap or outrageously expensive. Even the people
reflect this diversity, in the way they live and dress. Though you see
the extremes, you don’t quite feel the polarity. Its inexplicable, its
Though every muscle in my body craves for rest, my spirit isn’t weary.
The first 24 hours weren’t the greatest, but Hong Kong doesn’t stop
for anyone, so life goes on.
Page: October Updated: 2003-09-24 Name: eirc vidal Email: URL: Comments: thats not my birthday stupid
Eric’s listed as October 12 here. I don’t think Eric would ever
misspell his name – OC guy that he is ;) – or type in all small caps
_without_ punctuation, or call me stupid… ;)
Date: 2003.10.08 19:30 – http://newsvac.newsforge.com/article.pl?sid=03/10/08/2325207
The traditional lecture-based approach to introductory computer
science focuses on mastery of programming language syntax. As a
result, other skills such as problem solving and independent learning
are underdeveloped, particularly in students with no previous
programming background. This paper presents alternative teaching
methods which promote student-centered learning and address different
learning styles. The paper also proposes an inter-school collaboration
framework for introductory computer science teachers.
|Chua, Sandra Jean V.||Ateneo de Manila University|
|Garcia, IoanNikhos Gil S.||iAcademy|
|Carreon, Mario T.||University of the Philippines|
From: "Romel T. Tarin"
Subject: RE: Linux Expo To: "'Sacha Chua'" Date: Fri Oct 10 13:27:34 2003 +0800 yes... =) -----Original Message----- From: firstname.lastname@example.org [mailto:email@example.com] Sent: Wednesday, October 08, 2003 7:52 PM To: Romel T. Tarin Subject: Re: Linux Expo "Romel T. Tarin" writes: > sacha, are you girl or gay? Does it matter?
2. Being a TA myself (CS, though), I tried the following approach – every student writes the names of the students around him, in all 8 directions, in a specially drawn 3×3 box. Now, this killed 99% of cheating, as we TAs could get a quick verification of cheating suspects. It also helped us recognize cheating, since we could check the tests in the order of seating. This, coupled with Tal’s method, could probably locate almost all cheaters.
Working alone is prone to getting stuck at one place and not being able to move on, whereas when you work with a partner (or partners), there’s a potential for a different perspective, which almost always helps. I found that I learned a lot simply from hearing a different take on the problem (usually, after getting stuck in solving it :) as opposed to spending hours agonyzing over a stumbling point and possibly not really advancing from it, thus learning very little from the assignment. Furthermore, many people learn a lot by just discussing the problem, as it forces them to think along paths their brains would not take if they were left to themselves; many things fall into their place and sink in much better in this fashion (for example, how many of you have come up with an answer to a tough question while explaining your question to a friend?). And let’s be realistic, in the real world, many things are done collaboratively and are beyond any single person.
Another fun thing to do:
In one of my composition classes during my freshman year a student copied a paper verbatim from Cliff’s Notes. The teacher and everyone else in the class had read the Cliff’s Notes for the material, so this was a really dumb move.
The teacher’s solution: give her a really high grade and have her read her paper aloud in class as an example of an outstanding paper.
As she read the paper it became obvious to everyone in the class what she had done and she immediately approached the teacher and apologized, rewrote the paper, and explained the whole thing to the class at the next meeting. That class never had a problem with cheating again as far as I know.
This could be applied to CS classes if there are student’s with identical programs. Give them high grades and have them each present their solutions to the class separately and they will be forced to admit what they have done as it will become obvious to everyone present.
In my experience, one thing that works is to make sure students care about the work they produce.
When they think that the quality and honesty of the work is is important to them, and to others they tend not to cheat.
The prof should mention once in class that there have been cases where homeworks bore a striking similarity and that he hopes everyone will try to get the maximum learning benefit from doing their homework as independently as possible and that he and the T.A.’s have office hours if anyone is having particular problems. Competent students that simply let others crib without learning are not doing the cheater any favors, any more than buying an alcoholic a drink does that person any favors.
Some more ideas:
1. grade the students based on practical, speed tests (not essays or homeworks). What is concept? How would you use it in case? What is the error hidden in lot of code here?
2. grade the students based on my subjective perception of how much each one absorbed. pop quiz everyday, 3 or 4 students a day, noting my remarks on their answers. keep them interested.
3. to smooth 2, throw in some auto-evaluation.
Homework is for *you* to understand how well you’ve absorbed the material…tests are for the prof to determine how well you’ve learned and to grade your understanding.
Taking advantage of it:
Here’s a radical notion: legalize it.
I’m serious: in the spirit of “pair programming” and “egoless programming”, make “cheating” or collaboration permissible. Just point out that the submissions had better not look identical, and make them disclose who they’re collaborating with. If you think there are one or two students who are supplying the whole group, cut them out and give then different assignments.
I’ve worked with this kind of notion both as a student and as a professor, and I’m convinced that it actually leads to overall better learning — as well as letting me relax and not get all het up about it.
1. Accept it. In most classes where there were paper-based assignments (think Math, Physics, etc.) our profs would basically say on the first day of class “I know you’re all going to work together on these assignments. Fine. But remember that exams arn’t done in groups.” and would then point out the fact that assignments were only worth ~10%. Thus, we all learned the best way to work as a team, got everything done, and had good sets of notes for the final. Also had the bonus of having to explain each solution to your friends, so you knew much of it inside out by the time exams came.
2. Expect it. At the start of the semester the prof would announce “I don’t care where you get your answers from, as long as you cite and reference them.” (mainly for programming and design clases). He’d then give us a list of decent sources for programming information/examples. But then all the questions he’d set would be different enough that you could only copy-and-paste parts of the code most often found. Thus, you learn to see what’s been done in the past and not to reinvent the wheel, while at the same time having to work with and understand a stranger’s code. Which is exactly what working with any downloaded code (think SDKs) is.
- Assignments were graded only on a completion credit. Every day, he would take questions regarding the previous assignment, so you could learn more about any equations that gave you trouble.
- On the test, every question was either directly taken from the homework, or adapted from the homework. The only way you could do it is if you could do the homework.
- You were required to show work on the test. You could get partial credit depending on how far you got in the problem before you messed up; likewise, whether the answer was correct or not, you’d get no credit if you didn’t show your work, since that was part of the instructions.
- Tests were weighted in such a way that you could not pass the course without passing the tests.
A good recursion example is all possible sums.
As the field of Computer Science has grown, the syllabus of the
introductory Computer Science course has changed significantly. No
longer is it a simple introduction to programming or a tutorial on
computer concepts and applications. Rather, it has become a survey of
the field of Computer Science, touching on a wide variety of topics
from digital circuits to human- computer interaction.
Without sufficient resources, students can be overwhelmed by this
broad range of topics. With sufficient resources and an interface to
tame the potential flood of resources, they can better comprehend the
class topics. Resources that benefit students include
- the course guide;
- an extensive, well-linked, syllabus;
- blackboards, transcriptions, and instructor’s notes from each class;
- more in-depth notes on topics prepared by students; and
- questions and tips from other students (with answers and further comments from the instructor).
This paper describes the design and creation of such a web of
resources “on the fly,” while the course is being taught. The design
and creation of this web touches on many issues, including mechanisms
for convincing students to use the web; the balance between online
hypertext and printed documents; problems and benefits of live update
(the collection of resources changes frequently, as each class period
generates new resources); the roles of audio and video; and, most
importantly, student reactions.
Welcome to World Lecture Hall, your entry point to free online course
materials from around the world. Please browse, search, learn and
- A teacher is one who makes himself progressively unnecessary. (Thomas Carruthers)
- The teacher must derive not only the capacity, but the desire, to observe natural phenomena. In our system, she must become a passive, much more than an active, influence, and her passivity shall be composed of anxious scientific curiosity and of absolute respect for the phenomenon which she wishes to observe. The teacher must understand and feel her position of observer: the activity must lie in the phenomenon. (Maria Montessori)
- We must view young people not as empty bottles to be filled, but as candles to be lit. (Robert H. Shaffer)
From the text:
The teachers’ instructional practices were more heterogeneous
after they had collaborated with us for 2 years. Differences were
apparent in the extent to which the teachers expected students’
to justify their reasoning, posed questions to understand stu-
dents’ solution processes, expected students to listen to and make
judgments about others’ explanations, and encouraged multiple
solutions. All but one of the teachers had previously used the tra-
ditional textbook series as the primary basis for their instruction.
Three now relied primarily on the reform textbook series and the
other three used the two series in combination. It was also no-
ticeable that only two of the teachers continued to use textbooks
as blueprints for instruction. The remaining four teachers mod-
ified and adapted textbook lessons based on their understanding
of their students’ reasoning. Despite these differences, we were
able to identify some general patterns in their teaching. For ex-
ample, there was an overall shift away from demonstrating pro-
cedures and toward leading whole class discussions that focused
on students’ solutions.
Alan L. Tharp
Much attention has been given to the content of
introdutory computer science courses, but based on a perusal of
introductory textbooks, it appears that somewhat less attention has
been given to the programming exercises to be used in these courses.
Programming exercises can be modified to provide a better educational
experience for the student. An examlpe of how atypical programming
exercises were incorporated into an introductory programming language
course is described.
I sit in my cubicle, here on the motherworld.
When I die, they will put my body in a box and
dispose of it in the cold ground.
And in all the million ages to come, I will never
breathe or laugh or twitch again.
So won’t you run and play with me here among the
teeming mass of humanity?
The universe has spared us this moment.
Ctrl-c’d my oocalc instead of my appletviewer.
Your birthday is just like any other day, except that
so and so many years ago, you were born.
It’s a pretty ordinary day.
The sun goes up,
the sun goes down,
the moon goes up,
the moon goes down,
and all around the world people laugh, cry, sleep, dream
without even knowing you exist.
But I do,
and this is a Good Thing,
because the universe is better for having you in it. =)
and congratulations to your parents, who did all the hard work anyway,
and oh, to your teachers,
and your colleagues,
and your friends,
and everyone you’ve ever met (or not met, even)
for the fine person they’ve helped you become – are helping you become,
because I’m sure we haven’t seen the last of you yet.
Your birthday is just like any other day, except that
it’s an excuse to gather together the people you love
and celebrate with them the triumphs and defeats
of so and so many years.
It’s also a good a time as any to plan the year ahead -
where you want to go and who you want to be.
So let this be a day of simple joy,
of conversation, of reflection,
of looking back and looking forward.
Happy birthday. =)
From the XFree-Local-multi-user-HOWTO (http://www.tldp.org):
You can have multiple independent graphic cards and
multiple independent mouses, but in order for multiple users to
interact with the system, they do need independent keyboards as well.
Multiple independent keyboards is the feature that linux-2.4 (and in
the future linux-2.6) lacks, and this is what Backstreet Ruby adds to
the stable Linux kernel linux-2.4.
I wonder if that means I can get keyboard-specific maps…
Subject: RE: NCITE abstract: Alternative teaching methods in introductory computer science education
Thank you for your submission.
We look forward to your presentation.
It’s easily characterized more realistically in the real world. If you
know how the English language works, it doesn’t mean that you’d be good
at it — you have to know the words you could use to convey the message
you want to express. So sentence formation (subject verb agreement,
appropriate tense, etc.) is not the crux of learning English (or any
spoken language for that matter) but rather the actual use (practice)
and semantics of the language — as well as an expanded vocabulary of
the terms available to the user.
luze – reviewer gives away the secret
Improvements – collisions
- Death animations
- Multijump off
- Smooth scrolling
- Press enter. Old games.
Quick walk-through of their code with lots of info
6 minutes. Excellent!
Teaching quote: “The teacher is the needle and the disciple is the thread.” (Miyamoto Musashi)
check out the first article. The pic of the ring enlarges.
Question is, would you wear it or eat it? *teasing*
I find that I approach project defenses as my opportunity to learn
from the group the insights they had while working on the project. =)
I’m looking forward to the CS123 project defenses!
- Good design
- Object-oriented principles
- Patterns: abstracting and applying to a different situation
- Tokenizing strings
official patterns for doing things
- so most people by default will follow our official pattern
- be very consistent about doing things
- know when the pattern applies
game exercise – modify a game framework; teach them how to analyze code, create objects, etc.
generic game server
Your use of advanced concepts like Images and sounds shows that you
know how to learn independently and apply what you learned to your
game. Nice documentation, too.
Bonus, so they went to the J2sdk demos and the audio files and looked for au files.
Followed the book. (Lori) Learned from friends how to display images.
Trying to slow down the ball’s movement so that you can see the position.
How can you improve on your current game?
Making the ball move slower so that you can see how it goes. More
reading the book or asking help from teachers and friends.
Let’s take a look at parts of your code to see how you can improve it.
Please open GCanvas. Can you try using a loop to simplify the
Clarissa applied a for loop to simplify her constructor code.
Can you try using variables to simplify the paint method?
Lori just added a for loop without real effect. Not so clear on
programming. She hasn’t developed a lot of debugging skills yet, and
seems to perform changes by rote. Clarissa can find errors quiclky
Okay, she fixed that error. Minor simplification, but there’s still
something else that can me improved.
Lori’s not too confident about programming yet, and she tends to
make small, random changes in order to try to get a program to work.
Clarissa is helpful.
Lori eventually got it. Yay!
It takes them a short while to brainstorm different ways to deal
with a problem. Clarissa usually takes the lead
Then I asked them to define a class for the Player.
They identified x and y right away, and then Clarissa identified
name after scrolling through the source code, and then Lori did so
They aren’t too familiar with arrays of objects yet.
They know how to use search-and-replace, though.
They look like they’re using arrays for the sake of using arrays,
and this makes their program suffer in terms of readability. There’s
a lot of duplication of code.
Learn about threading
TopologiLinux is run on top of any DOS/Microsoft Windows system without partitioning your hard disk. Unlike other Linux distributions TopologiLinux does not need its own partition. For more information see http://topologi-linux.sourceforge.net/
Java for implementation
+ eliminated the smaller classes, merged them
+ coordination of work
+ conflict checking
- no updated documentation
- big OOP classes, but recognized it.
+ constant communication
+ dealt with a setback – loss of a teammate
dependend on cliff’s notes
needs to improve on the OOP principles
can recognize when code gets too big
mostly structured, some methods
adapted original design, hard to think about
hanapan ng errors
scheduling for the problem fixing, not too good
+ recognized dependencies based on the design and planned around that
mahirap pala yung print
Essential use cases finished, but features/nice-to-haves not really
The irony is that Bill Gates claims to be making a stable operating
system and Linus Torvalds claims to be trying to take over the
world. — seen on the net
The modules were clearly explained and the engaging story helped motivate the students to work on the project. The students appear to have greatly enjoyed the exercise, particularly the creative background story that provided the context for their work. By reviewing other people’s code, the students learned more efficient ways of performing the given task. They also became familiar with other modules in the system, allowing them to help each other to a greater extent during the implementation of their game project.
Suggestions for improvement:
Peer review of modules for identical tasks made it easy for students to copy and paste code they did not understand. Due to cases of plagiarism exposed during the project defense, stronger reminders about academic honesty are advised. Acceptable and unacceptable behavior should be defined. Alternatively, the assigned challenges could be similar enough for the common patterns to emerge but yet different enough to engage each student and make that student an “expert” on a topic his or her classmates did not fully tackle. Overall, working on multiple modules gave students a better appreciation of the different parts of a graphics engine and helped them learn how to write cleaner and more efficient programs.
- Yancy knows Eric. Worked with him on a project before.
- There’s another person: Rich.
Launch next month. Jeff. Launcher, changing skins. Tickertape and push advertisements.
- I’ll need a copy of the source code. I can get started on that early.
- Development environment included, but will probably require Windows. I don’t have a machine to deal with this.
- Does it already have realtime hooks, or will you have to code that in?
- Binaries for different platforms.
- Target the 7650.
- No tickertape design yet; what’s their source for the data?
- Push advertisements
- Need to find out how to get information for the tickertape
- No details on how to push information yet
- Not sure about realtime use
- None of the original programmers
- Possible ethical problems – memo of agreement?
- Haven’t set up development environment yet
- Blech, it’s Windows code – Visual Basic…
- No development tools
- Business sense of making the ads – accepted by Globe
- two weeks prototype?
Deep within downtown Seoul, on the bottom floor of one of the city’s innumerable high-rises, is the Kyobo Bookstore, the largest of its kind in Asia. Along the West wall of this 2.3 million title shopping center is a selection of English books, and a selection of college textbooks larger than that many American campus stores. A visiting American student majoring in for example mathematics would be astounded upon browsing the selection, not because of the wide variety of books available, but because the exact same book which he or she spent over $120 on for the previous semester is available here for $30.
by Jack Herrington
PHP scales. There, I said it. The word on the street is that “Java scales and
PHP doesn’t.” The word on the street is wrong, and PHP needs someone to
stand up and tell the truth: that it does scale.
My sister Ching Chua got married to John Valdezco last 2003.10.18.
A couple of stories:
Monsignor Nico presided at the wedding. He started the homily with the
lyrics from a song from Fiddler on the Roof, then told us a little bit
about Ching and John, and then… ummm… switched over to talking
about my dad and the adventures he and my dad had in Sagada. I had to
make sure I was at the right wedding. ;)
Reception was funny, too. Speeches, right? Parents of the groom,
parents of the bride, yadayada.
“We promised Ching that no matter where she was, if she was in
trouble, we’d find her. Floods, storms, whatever – we’d always be
there. John, now that you’ve married Ching…”
(At this point we half-expected them to end with “… if you hurt her,
we will track you down and kill you.”)
“… you are now under our family’s protection.”
(Great. Now we’re like the Mafia.)
Other things that happened, hmm. Ah, yes, the bouquet thing. I didn’t
get up – my excuse was “I don’t have a PhD yet!” – but Kathy was a
sport. Ching’s friends also joined after much prodding.
Mom thought it might be a good thing to do the traditional
bouquet-throwing a little differently. Thrown bouquets usually end up
on the floor, and there’s just something wrong about that. So Ching
asked all the single girls to close their eyes while she walked around
and decided who she wanted to set up.
An indignant and extremely familiar yell made it very clear that Kathy
felt betrayed as she felt the bouquet being passed into her hands.
Betrayed! By our own sister! She was a good sport about it, though.
The garter went to John’s boss. (paraphrased) “So, John, you two are
going on your honeymoon, right? You might as well take an extended
leave, because when you get back, you won’t have a job!” But he was
also a good sport.
So Kathy gamely removed one of her sandals (very glad she’d had a
pedicure) and allowed the guy to slip the garter up to somewhere below
her knee. Lots of people in the room were urging the guy to raise it
higher. What we didn’t expect, however, was that our _dad_ would be
loudest among those shouting “Higher! Higher!”
Kathy threw the bouquet at him.
And still my dad kept going “Higher! Higher!”
She threatened to throw her shoe.
It was a pretty fun wedding.
Our school mail server is particularly paranoid. Whenever I am on
campus, I have to use it as my smarthost, but it won’t relay messages
unless my From: has the school’s domain. However, when I am _outside_
the campus, it refuses to accept mail from me if I use that as my
From:. I’ve been trying to figure out how to set up a tunnel to an
SMTP-AUTHable server outside (managed by a friend, yippee), but the
host in the DMZ doesn’t allow me to use public key authentication for
SSH. I tried writing an expect script to set up the tunnel, but I’m
getting hopelessly lost. To wit: expect either kills the SSH tunnel as
soon as the script ends, or doesn’t allow me to kill it because the
program doesn’t process the EOF sent by expect when it in turn is
For some reason, local-write-file-hooks had the BBDB stuff in it, so
cookies were getting added to my data…
Hmm. Test script.
(let ((old-hook local-write-file-hooks)) (with-temp-buffer (add-hook 'local-write-file-hooks 'foo)) (unless (equal local-write-file-hooks old-hook) (error "Failed test. local-write-file-hooks was modified in this buffer.")) ;; Let's put things back the way they were (setq-default local-write-file-hooks old-hook))
Downgraded to testing and held.
I’ve tracked it down – make-variable-buffer-local needs to be done..
Got this error when installing grub.
grub-install --recheck /dev/hda
fixed it. Switch to 2.6 kernel and all…
“You think Perl is hard to read? You think Pascal is restrictive to the
point of uselessness? You ainÃ¢Â€Â™t seen nothin yet. Computer science and math
pranksters with too much time on their hands have designed, among other
absurdities, an imperative language with come from instead of go to for
flow control, a functional language based on the Lambda calculus but
lacking the Lambda operator, and an assembly language with exactly eight
zero-operand instructions. This site aims at becoming a comprehensive
database of stupid languages, complete with links to their respective
specifications, their authorsÃ¢Â€Â™ homepages, and to compilers and interpreters
-4*c^3*d^2*e^2 - 27*d^4*e^2 + 16*c^4*e^3 + 144*c*d^2*e^3 - 128*c^2*e^4 + 256*e^5 + 16*c^3*d^3*f + 108*d^5*f - 72*c^4*d*e*f - 630*c*d^3*e*f + 560*c^2*d*e^2*f - 1600*d*e^3*f + 108*c^5*f^2 + 825*c^2*d^2*f^2 - 900*c^3*e*f^2 + 2250*d^2*e*f^2 + 2000*c*e^2*f^2 - 3750*c*d*f^3 + 3128*f^4
I have no idea where my keys are.
Okay, last time I remember them – I was taking them off in the mall
and stowing them in my bag. This was last week, I think, and I was
with Martin and Nix.
I’m somewhat interested in long threads on some mailing lists, as
chances are those are the ones with cool insights. I can set my
threshold to 500, add one to every thread with replies, and sort by
Debian bug-squashing party, Sunday November 9th 2003, Ecublens, Switzerland
To celebrate the 10th anniversary of the Debian GNU/Linux distribution, the
GULL (Groupe romand des Utilisateurs de Linux et de Logiciels Libres)
will be organising a bug-squashing party that will be open to members
Here is the plan:
1. We lock 10 to 40 volunteers in a large room in the building of Nimag SA.
2. The volunteers are provided with all of the computers, bandwidth,
electricity, pizza, and beer that they need to work well.
3. The volunteers fix bugs listed in Debian Bug-Tracking System (BTS)
http://bugs.debian.org from 12h00 to 20h00.
4. A bug is considered fixed when a solution has been found, verified by
another volunteer, and an email sent to the package maintainer.
The GULL will pay for the food and drink of all volunteers who fix at least one
bug (even a tiny one). The others will be expected to pay their way or clean
up the mess. Or have a rock tied to their feet and be thrown into the lake.
There will be a number of demonstrations of various techniques used in the
eradication of bugs:
- how to use the BTS and the reportbug program
- building a test system (stable, testing, or unstable) in a subdirectory using
debootstrap and running programs from it
- using diff, patch, strace and gdb
- anything else that comes up
PLEASE: If you want to come to the party, please send a note to
- who you are and that you want to come to the party
- whether you will or will not be bringing a portable computer with a network
- what bugs you want to fix or what packages you wish to work on (if you
already have an idea)
- whether you want to give a demonstration or participate in the organisation
of the party
- any ideas that you have to make the party more fun or productive
The planning page (mostly in French) can be found at
I’d like to have something like that here one day – maybe not a Debian
bug-squashing party, but maybe we can help out the Bayanihan people…
*GCBirzan* I didn't really like the fact that the teacher used a lot of examples, but again, that's just me... (and I knew what he was talking about :P) *GCBirzan* but in the end, he had a contest, who'd write $query faster :P *GCBirzan* since all our CS teachers suck (no exageration), I've never had a competitive environment to learn in *GCBirzan* really liked that
*GCBirzan* I teach CCNA courses for a local Cisco Academy
Mmm. In our database class, we're allowed to use any database management system we want as long as it groks SQL. Niiiiifty. So you also have your teaching stories. =) Tell! *GCBirzan* you'd assume people that come there are a) generally clued or b) interested *GCBirzan* well, no, I don't :P *GCBirzan* since you can't really have much of a class about how, say, a router transmits a packet over to its next hop, if you they don't know how ARP works Do they? *GCBirzan* and then I go back to explaining ARP, and then I find out they can't grope the concept of ethernet segments and so forth *GCBirzan* and when I think I'm all done, and I go back to the original issue, I find out they've forgotten everything :P So your problem is that they lack the essentials. When were they supposed to have learned those? Err, lack the prerequisites. *GCBirzan* no, I'm saying they're having the mentality of the Romanian student :P
reach the interested people first (at least for _this_ talk.)
subexercise – evolving code
lots of students problems because of few resources frustrating to be a teacher and not be able to teach properly what's holding them back? you want to be able to teach better you want to be able to get the message across because the worst thing you can face each day is a classroom of bored, unmotivated, uninterested students who aren't learning and it's painful to check exams and see a lot of failing marks it hurts because you feel inadequate. you're not getting the job done.
if it's just a living if the results of their teaching are good other people will notice there is a direct benefit if they perform better in future classes
if we teach well the first time around, less need for reteaching good recommendation letters develop creativity and problem-solving (for teachers)
Personal effects such as swimsuits, towels, hats, toiletries,
medicine, golf clubs if you wish to play golf and tennis/squash
rackets/balls for tennis/squash enthusiasts
The following will be joining the R&R
|Choa||Vicky||Fin and Actg|
|De la Cruz||Alma||Psych|
|Ibarra||Vi||Fin and Actg|
|Sabug||Jun||L and S|
Instead of breathlessly enumerating all the different things we saw
today, let me tell you a story from our rest and recreation.
After our light morning snack, Gus told us about an “infinity pool”,
or a pool with invisible borders that seemed to make it part of the
sea view. Gus, Charlie (was it Charlie?), Dr. Tejido and I decided to
go to the club house to check out the pool before lunch. They offered
to send the vehicle. We thought the walk might help us develop a
healthy appetite in time for lunch, so we confidently headed in the
direction of the main entrance.
The uphill climb worried Dr. Tejido, though, and he returned to the
beach club after a short while. Gus, Charlie and I continued -
intrepid explorers setting out to check if the facilities were
suitable for the other faculty!
We made our way along Punta Fuego Avenue while chatting about the
beautiful houses we passed and speculating about the social sins
committed in order to accumulate such wealth. We even debated the
wisdom of having the R and R at such a ritzy place, as a lot of
teachers might decide to quit and join the industry seeing the fruits
of other people’s labors. They were somewhat puzzled that I hadn’t
gone into the industry, but I explained to them that I really enjoy
teaching and we commiserated our mutual pecuniary possibilities.
The walk was longer than we expected, although signs here and there
encouraged us to continue. We joked about having to reassess the
feasibility of our venture, but we continued walking – probably
because the conversation was fun and probably also because we’d gotten
that far already.
When we were halfway to the main entrance gate, Gus remembered that he
had maps of Punta Fuego. He brought out a copy and handed it to me. I
quickly scanned it and realized we were going in the wrong direction.
In fact, the club and the entrance gate were at opposite ends of the
complex. At first, the other two were incredulous, but I pointed it
out on the map and we resigned ourselves to the idea of walking back.
Oh, boy, how we ribbed Gus about getting lost! =)
We still managed to check out the main club before lunch, thanks to a
lift from another in our party. All said, the conversation was well
worth the walk.
Again, let me tell you stories from this one.
If you went to the National Conference on IT Education (NCITE 2003), I
hope you didn’t miss Cherry Sta. Romana’s plenary talk on Data
Structures: From Structured to Object-oriented. She is clearly,
inspiringly passionate about computer science education. A dean of the
Cebu Institute of Technology, she told stories of how the industry and
the academe are working very closely together in Cebu. The companies
there rather vocally complain about the lack of qualified graduates;
apparently, only 5% of the CS and IT graduates are employable. To
address this, they formed an organization that conducts training and
Object-oriented programming is one of the areas this foundation
focuses on. Many computer science teachers are new to object-oriented
design and programming because they’ve only been exposed to the
structured programming paradigm. Even when they teach object-oriented
languages like C++ or Java, their design is still fundamentally
structured – functional decomposition, algorithm-centered design, and
haphazard data sharing. As a result, neither teachers nor students
develop an appreciation of object-oriented design principles. Straight
OOP is intimidating because it presents many new concepts at once.
Cherry presented an alternative approach – an intermediate step
focusing on programmer-defined data types in any languge, even
languages that do not explicitly support object-oriented programming.
This allows people to gradually transition toward thinking of programs
of data + methods while working in a language they know well. With
that background, they will be able to appreciate the features of OOP
languages like C++ and Java because these languages enforce the rules
they had consciously followed.
Not only was her topic useful, her delivery was also captivating. She
was fast and confident, she used slides effectively, and she kept the
audience interested. I have so much to learn from her!
In other news:
Without doubt, Mario is a natural performer. He might have a lisp that
can be distracting in one-on-one conversations and he might have a
hard time preparing slides, but once he’s in front of an audience,
he’s all set. =)
So apparently it works now, but CrossOver Office is still a bit
expensive… I hope the straight WINE people get it working soon. =)
Set up Lilo with two targets: Linux and Winders.
Make Linux the default target to boot to.
When you’re inside of Linux, and you want to set it so it boots Windows for the next boot, and only the next boot, then you do a
lilo -R windows ; shutdown -r now
The next boot will be into Windows. The boot after that will be back into Linux.
(defun sacha/suck-data-into-bbdb (notes) "Create BBDB data given NOTES. The region should contain data of the form: name | company | e-mail" (interactive "MEnter notes string: ") (while (re-search-forward "^\\(.*?\\)\s*|\s*\\(.*?\\)\s*|\s*\\(.*?\\)\s*$" nil t) (let* ((name (match-string 1)) (company (match-string 2)) (net (match-string 3)) (record (bbdb-search-simple nil net))) (if record (bbdb-record-set-notes record (concat (bbdb-record-notes record) "\n" notes)) (bbdb-create-internal name company net nil nil notes)))))
Filed for a change of grade because I should have graded someone on
the undergraduate scale instead of the graduate scale.
Having problems launching OO.o after recent upgrade.
Settled credit-card bill.
Dominique Cimafranca brought this
excellent site to my attention. It’s geared more toward K-12, but it
has lots of interesting experiments.
I wonder if we can make a college CS version…
(defun planner-search-notes (regexp) "Return a buffer with all the notes returned by the query for REGEXP." (interactive "MRegexp: ") (with-emacs-wiki-project planner-project (let ((results (planner-search-notes-internal regexp))) (if results (progn (set-buffer (get-buffer-create (generate-new-buffer-name (concat "Planner Search: " regexp)))) (setq emacs-wiki-current-project planner-project) (mapcar (lambda (item) (insert (car item) "\t" (cadr item) "\n")) results) (planner-mode) (goto-char point-min) (display-buffer (current-buffer))) (message "No results found."))))) (defun planner-search-notes-internal (regexp) "Return an alist of all notes in daily plan pages containing REGEXP. The alist is of the form ((REFERENCE . TEXT) (REFERENCE . TEXT))." (let ((pages (sort (copy-sequence (emacs-wiki-file-alist)) (lambda (a b) (string< (car a) (car b))))) page start anchor text results) (while pages (setq page (caar pages)) (when (string-match planner-date-regexp page) (with-temp-buffer (insert-file-contents-literally (cdar pages)) (setq start nil) ;; Find the first note (when (re-search-forward "\\.\\(#[0-9]+\\)\s+\\(.*\\)" nil t) (setq start (match-beginning 2)) (setq anchor (match-string 1)) (setq title (match-string 2))) (while (re-search-forward "\\.\\(#[0-9]+\\)\s+\\(.*\\)" nil t) ;; The text between start and (1- (match-beginning 0)) ;; is the note body. (setq text (buffer-substring start (1- (match-beginning 0)))) (save-match-data (when (string-match regexp text) (add-to-list 'results (list (concat page anchor) title)))) (setq start (match-beginning 2)) (setq anchor (match-string 1)) (setq title (match-string 2))) (when start (setq text (buffer-substring start (point-max))) (when (string-match regexp text) (add-to-list 'results (list (concat page anchor) title)))))) (setq pages (cdr pages))) results))
Finally figured out how to always open tabs in the background.
Settings -> Configure Konqueror -> Behavior (with the Internet icon) -> Automatically activate new opened tabs
Interesting snippet on how to get Gnus to be your mail client for Firebird or Mozilla.
1. Install mozex extension from http://mozex.mozdev.org 2. Make a shell script called mailer.sh: #!/bin/sh to=$1 sub="$2" /usr/bin/gnuclient -eval "(gnus-msg-mail \"$to\" \"$sub \")" 3. configure mozex to call mailer.sh with as mailer.sh %a
The Texas Christian University (TCU) Computer Science
Department was established in 1981. From the outset, the Department’s
CS1 course has presented significant teaching challenges due to the
wide diversity of student’s taking the class. Traditionally, only
25-35% of the students enrolled in the course are computing science
majors, the remaining being students from a wide diversity of
disciplines, many of which are non-science based. Despite the
diversity, it has been necessary for the course, and its content, to
be structured to satisfy essential core requirements for students
majoring in computer science and computer information science as well
as to meet program requirements for the many non-computer science
majors taking the course. This paper discusses some of the unique
issues associated with teaching a Java-based CS1 course to a very
diverse group of students, the majority of which have very
unsophisticated problem solving skills, and little or no programming
expertise. A representative set of experiments and programming
assignments are included.
Their CS1 course is taken by people from lots of courses.
Oooh, interesting idea: experiment component as part of most
programming exercises. Students are required to conduct experiments. -
questions about the code. This is pretty nice. In fact, they introduce
API reading and inheritance early…
Let’s experiment with AWT-first next semester. Might be fun.
Hacked on planner.el and planner-id.el. Practically rewrote
planner-id.el, in fact, as I wanted to use an alist of data instead.
Have gotten it mostly working.
Played an amusing real-time card game named “Falling.” The objective
of the game is simply to hit the ground _last_. Exciting play,
although the table can get fairly messy. Might be something fun for
Got a call from Richi. Yay! =)
Remembered reflection on holidays and
resolved to do something different.
Met Kris, Martin-Nix-Tala-Mog’s friend. Laid-back sort of person.
He’s interested in surfing.
Chatted with SuperLag from #linuxhelp. Warm and fuzzy feeling,
good karma. =)
Did well: met one new person in real life and talked to another more
on the Net.
Could be improved: procrastinated following up on unapplied ACM Lite
Have resolved to write a book Real Soon Now.
or One Emacs to Rule Them All
by Raffael Cavallaro
Knuth’s Tex for the Math-kings of sigma, and pi,
Unix vim for the Server-lords with their O’Reilly tomes,
Word for Mortal Men doomed to die,
Emacs from the Bearded One on his Gnu throne,
In the land of Stallman where free software lies.
One Emacs to rule them all. One Emacs to find them,
One Emacs to take commands and to the keystrokes bind them,
In the land of Stallman, where free software lies.
I should look into this and see if I can get double-entry bookkeeping
set up nicely. I’ll also want my split transactions…