Monday, June 25, 2007

That's BS!!!

When I was younger and taking English classes, our instructors would correct our homework and exams with red pens. The grades were something like:

  • Excellent.
  • Very Good Indeed.
  • Very Good.
  • Good.
  • Fair.
  • Poor.
  • Below Standard.
Now, at that time we didn't know anything about BS, and thus BS was just Below Standard for all of us. Just an abbreviation of the worst grade you could get, you know? Today though, I just think about the instructors writing BS on our lovely work... man, it's just too funny!

Saturday, June 23, 2007

Your reality, my reality

I watched the original 1978 Connections BBC series again. And, since I had watched it many times in the past and know it very well, I couldn't help noticing that there were places where several minutes were missing from the Spanish dubbed version I recorded when I was in Argentina. Things like drawings of human bodies, things like criticism to the church's attitudes back in the middle ages, gone and cut off for good.

Now, if I had not watched a different edition, I would have gone believing that Connections simply didn't have those parts. How would I have known any better?

But besides the fact that I find such censorship highly questionable, it just begs the question. What are we missing today? What kinds of stuff are being censored, or edited, or even fabricated in our modern existence? Because clearly, it is so easy to go with the official story when it has the correct national colors. But even though there is always a different default point of view depending on where you are, it seems to me that there is a pattern.

For example, in my country there was something called "The Conquest of the Desert". Let me summarize: send the army to round up and massacre all native population. Women, kids, men, no difference at all --- shot point blank one after the other, not even in battle, not even in a fight.

But in my school, one instructor got in trouble for pointing out that even before, what the Spanish did in the 1600s and 1700s was also a massacre. We just don't say it is because we are the descendents of the ones behind the trigger. Our cultures carry the bias of the ones before us, even those who are long gone.

The highest bill in Argentina carries a whitewashed illustration of the so-called conquest on its back.

Note the convenient omission of any of the dead. There are also some papers, a sword and some bay leaf branches --- sure sign of an honorable, lawful victory. The bill includes a quite positive bio of the president that organized the genocide. To top it off, it also says "Republic of Argentina in union and freedom". Gross.

This inherent bias pattern, invisible to us since we live in it, is what pervasively and silently filters and censors our lives in a self-sustaining manner. Therefore, it is not surprising at all to hear people come up with the most creative excuses to justify today's senseless killings. Hey, might as well censor the deaths too*.

Hopefully we will wake up a bit and stop doing this to ourselves.

* The "Iraqi" government outlawed cameras at car bombing sites.

To be consistent, or else?

So, at the LASTUG meeting last Monday, John Dougan mentioned this paper here (pdf link). To make the story short, their intention was to make a test to see why CS students get confused with regards to how to program a computer. They developed a number of models of how students could misinterpret things, and had tests ready to go with the idea to find patterns of misinterpretation so they could be systematically attacked.

This, of course, after the students had learned something. But by accident, they handed the tests out before the students learned anything. And guess what happened? Pretty much 40% chose a single model to answer all the questions, another 40% or so percent chose multiple models to answer all the questions, and the remainder gave in blank tests to show their disapproval of being tested without having been taught.

Summarizing, 40% were consistent, 40% were inconsistent, and 10% were blank. Which group did best in the CS class? The consistent one. But why?

The suggestion of the authors is that the difference is due to how the different groups deal with things being meaningless. If you're consistent, then it doesn't matter what the rules are because you can stick to them regardless of whether they have meaning for you or not. I agree with the authors when they say that computer programs are, by themselves, meaningless. We interpret the result and thus derive meaning from it. But remove them from a context where they run in our computers, and they're worthless.

The inconsistent group deals with things being meaningless by trying to find meaning where there is none, and thus concurrently attempt different stabs at the meaningless thing. Of course, that doesn't quite work because computers and software operate on very consistent models that do not change (ahem!!!).

And what about the blank group? Well, they see something as meaningless, and just refuse to deal with it.

Very very iiiiiiinteresting, my friend...

Cincom Smalltalk community resources 101

I've heard a number of times that perhaps the community resources available to Cincom Smalltalk developers are not as obvious as one would hope. Thus, here is the quick guide to getting connected.

  • VisualWorks Non Commercial mailing list. To get subscribed, send an email to vwnc-request at cs dot uiuc dot edu.
  • IRC channel. Join channel #smalltalk at irc dot parcplace dot net, or irc dot 4096 dot sk. There is also a CGI interface here.
  • There is an open Store repository where you can put in code and get code from others. It also has an index, which can be found here.
  • Last but not least, there's Cincom Smalltalk home page here. On the left there is a column with lots of resources, including podcasts, screencasts and blogs. Of course, you can download your own version of Cincom Smalltalk Non Commercial, including VisualWorks and Object Studio.
  • Finally, if you are interested in all blogs Smalltalk, don't miss Planet Smalltalk. Or, if you'd rather use an RSS aggregator, check out Bottom Feeder written by James Robertson.

New Hash Analysis Tool available!

I made some improvements to the Hash Analysis Tool. Feel free to check it out, it's in the public Store repository. The package comment is below for your perusal. Also, let me know if you have any requests or comments about the current implementations of hash and identityHash in Cincom Smalltalk.

Hash Analysis Tool.

This tool analyzes hash quality for given object data sets. It can automate determining the following bits of information.

  • Amount of collisions.
  • Collision rate (objects per hash value).
  • Hash quality (where 100% means zero collisions, 50% means one collision every two objects).
  • Normalized chi square for hash values (optimum is zero, higher is worse).
  • Normalized chi square modulo a variety of primes (optimum is zero, higher is worse). This is done because even if you have a hash with low overall collisions, the idea is that there are still low collisions when you look at those values modulo the size of the hash table.
  • Assorted timings of hash calculations.
  • A score based on the amount of collisions and the time it takes to calculate the hash.
  • Whether the data set contains objects such that x = y but x hash ~= y hash.
All of this is done by subclassing AbstractHashAnalysisDataSet. You can take a look at the sample subclasses to see how to set up your own tests. To use the tool, simply evaluate HashAnalysisToolUI open.


Thursday, June 21, 2007

New SUnit VM available

I just published a bug fix to SUnit VM to the public repository. Enjoy!

New Pattern of Perception available

I just published Perception Pattern 1.8 into the public Store repository. Enjoy!

Observations about students today

I had a chance to meet with Roger Whitney of SDSU fame, and he had a number of very interesting comments about education. Hopefully I got my notes right, so please let me know if I missed something.

There are three college systems in California. There is the University of California, California State, and the Community Colleges. Twenty years ago, it used to be the case that middle+ class people would go to UC, and because they could afford it they would become full time students. People that couldn't afford that would go to California State, and the Community Colleges would offer mostly 2 year courses like they do now.

Well that was 20 years ago. Now, UC is getting full of part time students. And since part time students have a job and have to deal with life more than they can deal with their studies, naturally they can absorb less material. As such, it's a worrying prospect because less and less students are full time.

Since proposition 13 passed, colleges can charge for tuition. This didn't use to be the case, and thus before that universities in California were free mod some fees. In other words, just like UBA. But different funding changed this. What happens now? Over the last number of years, the cost of tuition has been increasing anywhere between 10% and 40% a year. In other words, this just contributes to the decreased amount of full time students, which impacts our future ability to accomplish stuff.

Because most students of computer science are part time, it seems fitting that they don't see things ranging from hash to linear algebra. What? CS students without linear algebra? You got that right. And who could blame them? At UBA, Linear Algebra 1 was 10 hours of class a week! If you have a job and are studying part time, it will be hard enough to take on such a course load --- and at UBA you are supposed to take two of those at a time.

Thus, Computer Science has a tendency to look less and less like anything Science. So much so, that there have been talks about getting it renamed to Software Engineering. I would agree with such a move on the grounds that it would be an intention revealing name for what we currently have.

On a personal side note, however, it concerns me that most of the students are becoming part time. These are the people that will have the responsibility to make tough decisions in the future. As a society we're shortchanging them directly, and all of ourselves indirectly, by setting up things so that getting a top notch education is more and more difficult, more and more elitist money-wise, and because of that less and less open. Hopefully we will figure it out before we put ourselves in too much of a hole.

Tuesday, June 19, 2007

After using the Mac...

Windows? How quaint.

Vista scares customers away

While I was in Buenos Aires I had a chance to talk with my friend Marton. He is a professional computer services consultant. We had had conversations regarding Vista before, but this time we had a chance to go through his experience with his customers.

Customer A bought a new laptop that came with Vista. The customer didn't turn it on even once --- he demanded Vista to be replaced with Windows XP, and thus he gave his mint laptop to Marton to take care of things.

To check out the status of the hardware, Marton turned it on a Vista laptop for the first time. Now, this is a laptop that has Windows Vista certification stickers, etc. Upon starting, it displayed a message along the lines of "wait until your system is configured". And it kept working hard at it for over half an hour. After that, the laptop had to be rebooted, and then Windows Vista was ready.

Well, "ready" may be a figure of speech, as it worked very very slowly. Just with the basic user interface, Marton compared the performance to using Windows XP with 128mb of RAM.

So to install Windows XP, one needs drivers for Windows XP, not Vista. So what happens when the hardware manufacturer does not provide Windows XP drivers for their hardware? Well, Vista produces such strong reactions in people that they will put up websites which tell you what alternate drivers you can use. So for example, in the case of this Compaq laptop, you could use the chipset driver of a Toshiba laptop, the video driver of a Packard Bell laptop, the modem/sound driver driver of a Dell laptop, and so on.

Yep, third parties providing better hardware service than the hardware manufacturer, all fueled by Windows Vista being seen as undesirable. Once the driver issues were solved, Windows XP worked just fine on the new hardware --- and of course, much faster.

Customer B had another Compaq laptop, and Customer C had a Sony Vaio. Same story --- Windows Vista had to be removed in favor of Windows XP, with third parties providing better hardware support than the manufacturers themselves. And note that the drivers do exist and work fine, it's just that no effort is done to provide even as much as a link.

And what reasons did the customers have to take Vista out? Anything from not liking how the icons and things had been rearranged, to major software incompatibilities caused by Vista. And oh by the way, as opposed to Vista, Windows XP runs extremely well in the Vista certified hardware.

Many of Marton's customers had also asked for advice regarding whether to invest in Vista or not. The result was that nobody picked Vista, with the exception of the three people above who asked to replace Vista with Windows XP.

Apple? They provide Windows XP and Windows Vista drivers for their hardware in case you want to boot Windows.

Lovely, just lovely...

Update: the new Mac took less than 3 minutes to throw me into my new desktop. It also found how to connect to the Internet on its own, and because of that it pulled down my Apple profile with my name, address, etc so the computer registered itself. Zero hassle!!!

Sunday, June 17, 2007

Productive day

I just wrote 15 pages in one go. That's 5% of the book in about 5 hours! I wish it was possible to do that every single day. All of this went into chapter 6, the one about AGC. It is over 60 pages long right now, and I'd say it's about half done.

Also, the .pdf file went over one computer megabyte by a couple hundred bytes.

There is so much more to write! Go book go!

Saturday, June 16, 2007

Pattern of Perception source code available

A new, refactored version of the pattern of perception used in the contribution ranked 1st in the Smalltalk Solutions 2006 Coding Contest (as well as in the reference solution for this year's contest) is now available at the public repository. The package name is Perception Pattern. Enjoy!

Update: due to the latest developments, a new version with more changes will be made available.

Thursday, June 14, 2007

No more P3/600 for you

After 7.5 years, I will have a new computer. I had to make a decision... would I buy PC hardware to keep running Windows, and thus invest a sizable portion of my expenditures in running (eventually) Vista, which is well known to be an abomination?

I concluded that doing so would be to throw money away. Thus, my answer to that was to get a Mac, which will mean using roughly the same hardware to run a serious operating system built on serious foundations instead. Even better: the OS is written in Objective-C. What could be wrong with that? :)

Seven digits three hundred

The PDF file for the book went past 10^6 bytes, while the page count reached 300. This is still in chapter 6, which still is not half done. After that, there are two more chapters to go. August is so close... have to hurry!

Monday, June 04, 2007

Back from Buenos Aires

I am finally wrapping up a number of very busy months...

  • In February, I was hired by Cincom. I also did a presentation at San Diego State University while I was living in New York.
  • In March, I packed my apartment and by April moved to California. I did all the moving work myself, including the 3,000 mile drive, because...
  • ... I ran the STS 2007 coding contest in April/May, and I couldn't afford my stuff being away from me when I definitely needed to have it. I was also at STS 2007, and spoke for a little bit about SUnit Based Validation.
  • Last month I was in Argentina representing Cincom. I gave numerous talks, and the schedule of meetings was packed full.
Why is it that I think there's stuff missing? Anyway... I flew back congested and, even though I had strong prescriptions to deal with the possibility of pressure-induced injury, my right ear is now busted with barotrauma. Sigh. That will teach me not to fly like that again..

But there are good news too. During my stay at UNLP I got some very interesting feedback regarding the draft of the book. The result is that Chapter 1, which had a number of rough edges because it was written while I was still rusty, finally got polished. Now it looks like any of the other chapters, which makes me happy. Also, the draft has been growing, and today it hit 280 pages. I better hurry, the deadline is so near...

Back to work!

Saturday, June 02, 2007

One little two little three barotrauma...

So... last December I learned that if you travel while congested, you can get barotrauma. I also learned how fragile our ears are, and how much messing with them hurts.

Thus, here I am, about 7 hours before my flight, congested... but this time I did things differently. I had obtained some prescriptions last Thursday but they weren't powerful enough. I just got back from the hospital, and this time apparently I got the heavy duty fix --- which is so heavy duty I was repeatedly told I am not to use it for more than 4-5 days.

If I get back home with my ears intact, I will only have to use it one day, so I guess it should be fine. I don't mind congestion, but barotrauma again? No way.

Hopefully I won't trigger a national security event when I go through the airport with the prescriptions...