Wednesday, June 30, 2010

Roo

In my son's fun little books, I learned about a character named Roo in a Winnie the Pooh book.



It is fairly interesting that people starts looking at cartoon characters for names.

While looking around programming sites, I see there is a fairly new programming tool from Spring that is named Spring Roo.
It is another enter-something-at-the-prompt-crank-a-lot-of-stuff-for-you tool. Good! Nobody needs the XML mess to configure source code with MVC...

Waita minute, there is already Grails that does similar things. Grails is based on Groovy, which is Java + native lists and maps.

And both very similar things from one Spring Source? This link explains why there are two such things.

Typing stuff at prompt cranking out stuff is nice, but still not simple and intuitive enough.
Should be as simple as New->Controller, New->Action, New->Test on an IDE to crank some skeletons for me. /* Someone may have done something like this as Eclipse plug in. */
Nothing should make me type a long command at the prompt.

Friday, June 25, 2010

Now that's Inconvienent Truth

I am kinda shcocked to read about this story about Al Gore (alledgedly) sexually assaulted a masseuse.

What the heck is going on with the Clinton/Gore pair?!

Waita minute... that woman is... 54 years old? Even at 2006 she was 50 year old? Hmmm.

Gore definitely earned a spot in the history book at the 2000 election, now he may be adding an embarrassing chapter.

Wednesday, June 23, 2010

Observations that May Change the World

You may have heard this: one day when Newton was reading a book under an apple tree, an apple dropped on his head and he came up with theory of gravity. This is the dawn of modern science!

Another one you may have heard: James Watt was watching his mother boil water on a kettle and came up with the steam engine. This is the dawn of the Industry Revolution!

I wonder: if *I* can observe something and change the world! Why not? You can too.

Observation 1: Flying
It's man's dream for centuries... FLY. Sure, airplanes have already achieved that. Why not a simpler, WING approach? This observation is from playing the classic Joust game.
Build a (big) wing like a bird, with a motor, make it FLAP hard like a bird, and I think eventually you may fly. Sure you hands can't flop fast enough to move your body, what about a motorized wing? Every wing I see is hard and straight (and doesn't move).


Observation 2: Stir Fry Machine
I visited a Panda Express and have this interesting scene: a Chinese fastfood restaurant without one Chinese worker. Hispanic folks making Chinese food to you. If it does not have "Panda Express" sign, you probably won't buy because it is not so authentic? Then I look through the glass and see a young Hispanic man cooking with the wok like a pro! There is no ethnic barrier in cooking.
Working in the kitchen is hot, exhausting, repetitive. It is very tough job. Here is the mathematican (at least a math student)'s instinct: can we generalize it so a machine can do this?

Look, all recipes are basically algorithms. Computers love to follow them. Look, that fried-rice is actually pretty simple to make, add stuff in the right order and stir-fry it up! Ingredients: A motorized wok shovel. Tanks to hold salt, sugar, corn starch, etc. Programs to control a oil tank pouring the exact amount. Programs to spray exactly certain amount of sugar, salt, etc. Robotic arm to move raw stuff to the wok like motorized chess programs to move that pawn. I can run the world's first automatic restaurant!

But yikes, a successful machine will put millions of chef out of work.

However, I don't have an ounce of engineering ability. I made the weakest Popsicle stick bridge in high school. I don't think I can build any motorized things in my garage.

Tuesday, June 22, 2010

Recruiters and the Lake of Fire

Some recruiters ought to be thrown in the lake of fire.
I got laid off a few months ago. But work are still to be done. That company wants to hire a cheap consultant to finish things up. The company must have posted the opening somewhere. MANY recruiter cold called me, saying they know my company is hiring. Damn it I know my company more than you do! You want to phone screen me then introduce me to my company's hiring manager who is steps away?

One recruiter cold called me, lured me into his office, without telling me details of the job he has on his hands. He made me talk about what I do for a living, then tells me: this is the EXACT opening he has now. What, you wantto talk to MY company to have them interview me to go back to the company that wants to fire me? He deserves to be put on the lake of fire.

Another recruiter cold called me and lured me into her office and make me talking about my past. Then say "well we don't have any openings now but we still would like to meet you, and the economy is quickly picking up and when there is opening we will call you". She never did.
Ok, I will spare this lady from the lake of fire because she is a pretty lady.

Recruiters want every single things listed on their job description to have something to talk about.

Another recruiter cold called me and lured me to their office. I have about 8 out of 10 things listed. She gets her boss to talk to me. Then the boss says they need a candidate that has it all! Then why bother telling me to come in the first place. I took the sincere apology from her, but that boss has such attitude that deserves to be thrown on the lake.

After I found work, I haven't take my resume off some job search sites yet, so I can still attract a cold caller or two. Before the guy finish, I told him I recently found work. The guy says: "ok, I'll still send you an email so if you know some friends looking they can contact me, ok?" I never receive such emails. Empty promise deserve a visit to the lake.

Recruiters: I KNOW your job is horrible. You work in a dinky office, trying to find people matching job descriptions, call them up, sell them to the employers, earn some $ if you succeed. Not much different from a used car salesman, and I know you don't understand all the buzzwords in the job description. To prevent going to the lake of fire, don't waste people's time and lure them in your office unless you have some confidence that the candidate is a good fit. Don't ask me how many years of HTML I have. 10 hours of it is equivalent to 10 years. How many years of experience in addition/subtraction do you have? Also, do what you promise, such as send me that email you promised.

All interviewers should give status PROMPTLY: take it or leave it. People deserve answers.

Monday, June 21, 2010

π Revisited

While walking around in a store, I saw a symbol that usually only appears in a textbook. It is π.

It is some cologne with that name. Not sure it is named that way, and I didn't bother to ask for a long strip of paper for a smell. I am tempted to make a lucky star or a Mobius Strip out of those.

Ask some people... just what IS π (in math)? The unfortunate uneducated will have no clue. For those who know, ah ha, it is a trap. If the person starts with "It IS 3.14..." then this person can never finish because no amount of digits can fully spell out π. Better: it is the ratio of circumference over diameter, or it is approximately 3.14...

When I was an elementary school student, the symbol π is an odd ball to me.
Question 1: where did the value come from? (My guess was a very precise ruler to take such measurement of C/d)
Question 2: Why do we use a Greek symbol?

Well I didn't seek answers very hard back then. But the answers has to do with the great Greek mathematician Archimedes. π is actually an abbreviation, it was the first letter of Greek word that means "perimeter". Waita minute, perimeter? Yes, π is the perimeter of a circle with diameter of 1.

Archimedes uses a very interesting "trap" trick to estimate the value of π. He starts with a circle of radius = 1. What's the area? yes, it is π. He used regular polygons and circumscribed polygons to set that upper and lower limit! See this illustration. This legacy should be taught in high school geometry class (but I wasn't informed).

Mathematicans loves the Greek alphabet. π is used in other places... you may remember the product of a sequence with capital Pi...

One other use I know of... to denote the prime counting function, number of primes less than some number x as π(x).

Wiki has so much nicely presented knowledge. It is a treasure chest.

High school geometry class probably should include a writing assignment: about π, about e, about the imaginary number i, or about the golden ratio φ. Extra Credit: How about writing connect e,i,π with the "dazzling"* Euler Formula. Write about it, derive it... Math is so much more than calculations.

That cologne... targeting math enthusiasts? I am afraid there aren't enough around.


*I copied this adjective from this great book. Unfortunately, I don't understand all of it. :(
I almost named my son "Leonard!"

Friday, June 18, 2010

Children and Cost

I am sure you heard it before. Children are expensive. It will cost you $222,360 before he goes to college. See news item here.

Sure it will cost you $. Imagine this: SAVE that $222,360 with 0 kids. What are you going to do with that money?

Stop griping! You are not going to count that money and bill your kid when he turns 18 right?

That daycare is expensive? Sure. how about this: after you break your wallet paying for it, when your kids grow up, you OPEN a daycare in your neighborhood to collect that $ back. There are too few of these anyway (and that's why they are so expensive.)

Can't do anything about expensive diapers and formula other than buying as big pack as you can.

Considering the environmental friendly cloth diapers? See you are complaining expensive but unwilling to take a little sacrifice.

But the real problem is this: job market is diminishing... it's hard for daddy & mommy to find work!

If I have $222,361, I don't mind spending $222,360 to raise my kid, and I won't gripe.

A world full of old people with $222,360 is too depressing. Kids I welcome you.

Tuesday, June 15, 2010

Odd Jobs

Here are some odd jobs that I have had.

1. RUN programs (not write programs)
Every now and then, some data will come (somehow). I was supposed to RUN a bunch of programs (by starting them).
Baby sit them for errors. When they are done, run more programs.
If there are errors try to fix it or notify somebody.
Originally it was monthly, when people dare to put me run stuff daily I quit.

2. Buildmaster
You want me to WHAT? create build scripts for your projects already in progress? Maintain your chaotic branches? If you want to hire someone to do these things, put it in the job description so I won't apply. I got fooled into this job.

Something is very wrong with your company if you don't already have a build process and your code is in production.

Your project lead should give you such scripts before you even have a lot of code to build from. Here: you compile your stuff, package it and voila. You do it yourself. Only you know (and responsible for) what's supposed to be in your build. Don't make me ask you. You are responsible for the success of your project.

3. Maintain Proprietary Code
There are exactly two things you do in software. 1) write new code 2) fix somebody's old code. Yes (2) is necessary, you can't write new things all the time. I have seen completely undocumented code, outrageously documented code such as /* insert comment here */, but the worst is proprietary code locked in some hidden jars and stuff.

You define your own XML-like configuration stuff? Your stuff HIDE database calls? How do you suppose me to maintain this.

I have seen people who write some code, push me to maintain it, while shut door hiding from questions. Totally irresponsible. Sometimes I can get a hold of the author who will not dare to look at me to answer my questions.

That's only when I am lucky. Sometimes the author already quit. Sometimes source code is not even available.
IF things can run locally, IF a bug is reproducible, IF I can see exactly how data are queried and saved, I CAN probably fix your problem. However, sometimes things are hidden from me, inside some third party things. Ask them, not me.

4. Help Desk
Answer customer phone calls then try to address their complains. Yikes.
In a normal economy I won't apply for such work.

Here is what I want to do: write great code, learn new things, make good $, at a convenient location: not at the washroom or a conference room corner at a client site (something is very wrong with that). I am afraid I will never able to land on one anymore.

Tuesday, June 8, 2010

Protest Against the Dollar Sign

JSP: intermixing java and HTML is a decade+ old idea that makes perfect sense to me. But the problem is this: it doesn't look like everybody's favorite XML. JSTL wants you to use tags instead and argue it is better. See here here for details.

Besides tags, note the use of dollar sign and braces to evaluate an expressions.

Somebody just have to put tags around as if the world doesn't need more syntax.

Ok, it is better of preference, nobody forcing me to use JSTL yet.

Let's go over to the client side. If you have to pick the most popular javascript library... it's got to be jQuery. Don't let the name fool you. It has nothing to do with database queries.

JQuery makes heavy use of $ and it is not quite the same expression evaluation in JSTL. See here, for instance, for an introduction tutorial. Gee, I have not seen so many $ in javascript... just what is it?

Ah, it is merely a SHORTCUT to the variable jQuery! The dollar sign is the shortest variable that is not alphanumeric, and jQuery decides to use it as the shortcut of spelling out the name of itself. Gee, I wish the dollar sign isn't a legal character to begin a variable.

JQuery loves to do this: play with DOM and attach all events and call anonymous functions. So WYSI_NOT_WYG. See a little dropdown select tag or a simple anchor tag that looks perfectly innocent? Gee, somebody may have modified the onclick method or something.

If you LET somebody do something, they will do it all over the place.

Anonymous function (buzzword lambda) is not my cup of tea. I like explicit functions with names.

I protest against the dollar sign shorthand in jQuery.
I protest against inserting extra events to objects on the fly, especially with anonymous functions.
I protest against JSTL.

Monday, June 7, 2010

Those who need bifocal should get bifocals

Eyesight is the first thing that gets worn out on your body. Look at how many kids younger than 10 year old has glasses. Glasses are such great invention. Without that I am almost blind, with nearsightedness and astigmatism. When people get old, many people have far-sightedness, and they can NOT see with their glasses when they see something not so close by (unless they put their head within ONE INCH of the monitor).
When those poeple has to switch between looking at something close by (such as a computer) and looking at you. They have to switch glasses on and off.

This is very annoying.

Solution 1: make glasses implements the with (colorful!) bands attached, so they have to switch back and forth. Ok, I find this annoying too.
Solution 2: bi-focals. This however may require a line in your glasses.
Well I am not a bifocal user yet so I am not sure if this is a real good solution.
But if it is, go get it. Waita minute, isn't modern bifocals now can hide the line?

Putting your head 1-inch to your monitor is just both ugly for you and for not so pleasant for me to see.
Ok, another solution: change your font size to REAL LARGE, ok?

Friday, June 4, 2010

Jobs and Leaving Reasons (part 2)

Job 5: I maintain crap app there longer than I have been in college as time (years and years) quietly flows by. Surrounded by inept coworkers. This company does not give a damn about growing your career. Eventually got laid off, due to outsourcing to the people that Columbus wanted to meet. The fate of the talented and the idiots are the same.

Job 6: this place does not know what to do with me and indicates little interest to assign me interesting work. Completely clueless. The young people there are beautiful but extremely messy. That kitchen is a big mess.

Job 7: TEN days there. Told me to go home after their client cut the project which is probably a damn lie. This place wanted me to use my own laptop without telling me beforehand.
This place has some fairly interesting individuals
1. PM who sits on a ball instead of a chair, probably a Preparation H user, who does nothing after then 15 minute status meeting. Also needs bifocal...
2. The CEO's brother, who is an extreme OO aficionado who wants a elaborate OO model on the simplest things. I wish I can learn a thing or two from him. But he comes in at 2pm everyday, and during my 10 day stay, he didn't show up for at least half of it, because his glasses is broken and can't see a thing.
When I was told to go home, not one person shows any sympathy.

Job 8: This company is hard to get in: tough online test, and even an essay test. Mildly tough tech interview. But this company didn't believe I can do new consulting work for their clients and rejected me once. called me back after a support staff quit. So I will be learning more propriety things that will not help me at all in future jobs. But it is better than unemployed.

I've had helluva time trying to find work. Yes I do get some interviews, but some have some very tricky questions. Some are so reluctant to make decision that they don't mind keep you waiting, some don't mind telling you any status.

I NEED to stop begging people for a job and stop begging people to tell me my interview status!