Tuesday, March 30, 2010

Death of a True Hero

"Stand and Deliver" teacher passed away (Details in this news). No I didn't watch this Stand and Deliver movie, but turning a failing calculus class to the nation's best is a big heroic deal!

There are many inspiring movies much worth seeing than idiot shoot-em-up stupid so-called action movies I've seen. But I have absolutely 0 interest in movies about baseball (insert any sports here) teams from snob to pro. Perhaps those are good movies too, just I am not so interested. A VERY GOOD inspiring movie I watched was "Take the Lead", a great movie about dancing.

Given a chance I would watch Stand and Deliver.

Look, given the will, anyone can learn some basic calculus. Just get to work! Why do students scream in scare? I don't understand why American elementary schools spend years after years after years on damn fractions.

Teaching of course, isn't just stand and deliver. The students gotta sit still, have some interest and listen to you.

Great educators are my true heroes.

Thursday, March 25, 2010

Reading vs Math scores

Ok, the news is Reading Scores Lag Behind Math Score.

I would jump up and down to celebrate because of math score improvement. What, do you want to see news items that says readings and math scores are both bad? At least that's an improvement in math. Well, America still have MUCH to catch up in math.


“We’re not asking them to read nearly enough,” Ms. Pimentel said.


Sure. Well, who are this we? It is got to be the PARENTS! Come on parents, keep an eye on how your kids are doing in school. READ with your kids. BUY them books. TAKE them to the library. Don't blame the school system too much if your kids can't read.

Waita minute, how do you test reading ability? Outrageous difficult words in pick-antonym test? The English language needs a clean sweep of useless words(!) Heck, I survived college (and in the work force) and I still can't do so well in those antonym test of unused words. One day I digged out a high school vocab book and I am so ashamed I don't know half of them BUT most are useless words!

I think reading comprehension in more common words is much better way to test reading ability.

Anyway, for those math students who think reading skill is not so important? You're wrong. Yes, you barely need to read anything besides silly word problems in high school. But you will need a lot of reading ability to understand more advanced concepts and you need a lot of writing skills to convince your reader (write proofs). The very essence of mathematics is able to convey (mathematical) ideas in words. Equations merely let you write in more compact forms.

Wednesday, March 17, 2010

To Agile or Not Agile

I think a buzzword of software development of the last decade (and still ongoing) is Agile. Those who embrace Agile see waterwall as evil or outdated dinosaurs.

Ok, is Agile really all good and is Waterwall all evil?

If you have a bunch of bad programmers does it matter what development scheme you use?

Here are some classic elements of Agile: the daily stand-up meeting, user stories, pair programming, and iterations

Daily stand-up. It is nice to have, so you know what your teammates are doing and obstacles. But I don't like military style call: "let's stand up!" and do a for-loop around your team. A daily status email (or post to a team blog or something) will do just fine. If your teammates are actually a team they will communicate to each other without forcing a daily meeting. Instead of daily meeting, I think a weekly meeting and daily email will suffice.

Some people naively think everything can be broken up to stories easily.
Let's say you build a car. A story may be "driver starts the car". Come on, you need an entire car built before you can actually start it right? do a non-functional starter faking you turn the key is a waste of time.
More realistic is to break up your car into little units and talk about those instead.

Pair Programming: work best if you have at least one good programmer, meaningless to team up one blind person leading another blind?
I rather have 2 person assigned same task to finish it however they choose (not 2 guys looking at screen at the same time)

Iterations: at least two week each is reasonable length. There is not a whole lot of meaningful features can be done in a week.

Iteration meetings (with your client). Do you think your client have patience to talk to you EVERY iteration (week or two weeks)? Nobody has time to look at useless incomplete things. This is why your clients prefer waterwall.

Here is how I think things should be done, call it common-sense manifesto.
1) Manage expectations. Simple rule: Don't promise things you can't deliver.
2) Get good people. Only good programmers can give you code. Not your PM or your graphic designer or the cleaning ladies.
3) Have a good idea of your whole thing FIRST. Deliver chunks of it at a time.

Don't tell your developers that your client don't know what they want in the middle of iterations. HELP your client understand by giving them clickable things, come on, HTML is not hard to build, don't give them pictures and require their imaginations.

Dangerous elements of a team
1) PM who don't have a clue what it takes to get things done
2) Graphic designers who only know how to draw pictures and don't even know what HTML can do. Real life example: One guy says making a dropdown box (a <SELECT> tag editable to add items to it on the fly!
3) Requirement not gathered. Real life example: so you want a dropdown box here and you don't know the values for the dropdown? Sure I can put value1 value2 temporary, but why make me re-work

Real life experience: project start as agile and then go back to waterfall. (and I don't blame them). People just want things done, not follow your favorite manifesto.

So, the merit of Agile is... agile. It is easier to change things that way and it encourages team work. Downside is endless iterations and too many re-work and too many unforeseeable things if not done right.

Sunday, March 14, 2010

Google Logo for Pi Day

Google updates its logo every now and then. But this one catches my attention: π day. March 14.



In the math book I used in elementary school, it says π is approximately 3.14 or 22/7. It also says 3.1416 is a better value. The curious me punches out 22/7 on the calculator and of course it is 3.142857. Waita minute it is not 3.1416. Then I saw the word "estimate" Ok, I am cool with that.

No elementary school text ever explains where 3.1416 comes from. I thought: ah, there must be some very precise ruler that measures the circumference and divide by the diameter to get that 3.1416. Later, I found out extreme nerdy people challenge themselves by memorizing the never ending digits of π

How do you get that many digits?

I didn't know how to get digits of π until much later...

Here is one way to find the digits of π. Draw a circle, let radius =1. What's the area? Yes, it is π r2, and it is just... π. If you can find the area of this circle you got π. How do you start? Look, you can draw polygons inside and outside and the area of the circle must be in between! This is Archimedes's brilliant idea!

Oh, there are so many such formula and gosh some are so "elegant"

Whoa, look at the Leibnitz Formula. Whoa, look at the Wallis Formula.

π is so fascinating. So there is Pi Day. Waita minute what's the purpose of π day? To eat different types of π.

Joke:
A: Can you tell me a formula for pie?
B: pi r squared?
A: No, pies are round, CAKES are square.

Happy Pi Day.

Wednesday, March 10, 2010

Advertising and Messaging

I used MSN/Windows messenger for the past decade, until blocked by a employer.
Well I am now freed from that place. How time has changed, the messenger client is upgraded quite a bit...
Such upgrades aren't so necessary. The first version I used did just what I want it to do: chat.

The modern version now has a big picture for the person I'm talking to, and waita minute now there is are ADs at bottom of it. It dares to show me a link for a dating service. EACH line I type should say "Joseph says...", don't group them.
I shall see no ads.

I can't believe Windows is doing this to me.
Well I actually don't need the Windows messenger client, I have other choices such as Pidgen or Trillian.

Advertising and messaging shouldn't mix.

Tuesday, March 9, 2010

Standard Windows programs makeover

In Windows 7, basic programs since good old Windows 3.1 (or even before that) has makeover.

Look at the calculator. Ooh it's nicer, even with unit conversions.

Look at paintbrush. Ooh that "ribbon" toolbar is the same from Office 2007. I still haven't recovered from the shock of difference between Office 2003 to Office 2007.
Oh, .BMP is no longer standard format, but .PNG?

Look at wordpad, ribbon toolbar again. This is the word processor for those who can't afford Office.

But I'd like to scream: Windows Explorer works perfectly in XP and even previous versions. Where the heck is my "go back 1 directory up" icon? How the heck do I show my extensions? (that is hidden by default) It used to be in Folder Options. (now it is not so obvious)

Grail - the search is over

Over centuries people have been fascinated by the "grail". The cup in which Jesus drank on the last supper. Of course the cup is never found and put in a museum. Even if it is found it won't have special powers. Look, the Bible tells you not focus on things! (Although in the Bible, Jesus's robe had healing power)

Well I'll leave religious discussions to continue to debate since the dawn of A.D. to interested individuals.

Nowadays Grails refers to a relatively new programming tool. Its original name is "Groovy on Rails". You may have notice "Groovy" as a term frequently seen in '60s things such as Austin Powers. This "on Rails" thing is of course comes from "Ruby on Rails", another tool that captured a lot of attention.

Functional languages (such as LISP) from the academic world is leaking to mainstream! "def" reminds me of "defun" from LISP and "define" from Scheme.

Groovy is based on Java. It adds additional things to it such as native syntax for list and maps, and it gives you an interactive console (like good old interpretive language such as BASIC or the functional languages like LISP or Scheme, or mathematicians favorite Mathematica)

But wait there's more... wow, it wraps around the most popular things in Java: Spring/Hibernate into simpler-to-use wrappings! That minimizes XML tweaks from hell. Ooh, it even includes tomcat and HSQLDB in the downlaod.

I am sure you'll agree Groovy is groovy if you go over a tutorial such as this one.

Ha, I long have believed (and implemented) in basic code generators. I long believed no one should be messing with XML configurations by hand. But I wouldn't go so far as to create my own programming language.
I long have questioned: gosh why make all these get/set methods for your private fields and not everything public? All your get/set methods are public anyway.