If only I were not Aquarius

So now you showed interest in me
Though I never felt it when we were near
Did not want to be bribed by your glittering necklace
Coz you know why we broke up

Foolish as I am
Knows who is the one
Tried to lie to myself but could not endure before long
I envy those who spent all for what they pursue
So bravely blind that they see no consequences

Like the most endurable castle
I crumble bit by bit, piece by piece
Strong as I am
Still finds it so hard to carry on
I feel the pain pretending to be happy each day

Let me go home and don’t make my tears drop
Since you know Aquarius have wet eyes
Keep your words back to you
If the next dialogue is about farewell
Forget about reunion which is destined to be even sadder
There is no painkiller at my home
Yet I had the Long Island Ice Tea as cure for half a night
Seeing you leave now or ten years later make no difference
If only I could be a bit more resolved
I would give myself a way out

Sampling can be Evil

I was stranded in a problem for a couple of hours this afternoon due to trusting too much in sampling. As usual, I used the following query to get some flavor of the MySQL table I was interested in.

select * from some_table limit 10;

Super huh? Short and quick, tells you something both about the schema and data within seconds. It worked well until this afternoon when I saw a string typed column across the 10 rows has the same value “AAA”. I took for granted (without even thinking) that all the hundreds of thousands of rows would have “AAA” in this column. I tried desperately (yup, putting logs everywhere) to figured out why my program saw “BBB” instead of “AAA”. In the end, I saw the light and removed “limit 10” in the query and those “BBB”s flew across my screen like crazy.

Lessons Learned – Recipe for Entangling Classes

To share a piece of weird code I saw today – design pattern name should be “I just wanted everybody to have everybody sweetheart”

class A(var b : B, var c : C) {
 b.a = this
 b.c = c
 c.a = this
 c.b = b
}

class B {
 var a : A = null
 var c : C = null
}

class C {
 var a : A = null
 var b : B = null
}

val b = new B
val c = new C
val a = new A(b, c)

EE is Hard

Happened to read about an article online introducing in layman’s words (well, probably not so layman if you never took a signal processing related course) about wavelet transform, its background, applications, and relevance to Fourier transformation. Thought it was so cool and what a pity that I did not have access to such good learning materials when I studied signal processing many years ago as an undergraduate student.

But I soon realized that even if I read it way earlier, it might not help that much. Learning Fourier transform and wavelet transform is hard if all you have are a bunch of rigorously pruned mathematical formulas (does any EE veteran still remember how struggling it was to be exposed to continuous time Fourier transform at first, then followed by discrete time Fourier transform, and all of a sudden all sorts of jargons flying around that perplexed you like never before?). Yet, as a layman you probably will not obtain much from an introduction all written in friendly ambiguous terms. Why? Because you have no hands-on experience at all, never did a back-of-the-envelope derivation of some formula, never wrote any code to generate a signal and analyzed its spectrum with Matlab or observed waveform and its frequency plot on a physical spectrum analyzer, how can you possibly form any in-depth understanding of such transforms by merely listening to somebody talking about very high-level concepts or analogies?

EE is hard. Most students before college have no access to EE related learning resources. You buy a computer and you can start coding right away, but few have the opportunity to make a functioning circuit – let alone do some signal processing, not even trivial ones. A lot of concepts in EE originate from engineering problems, then theorists generalize them, define them in rigorous mathematical equations, with the ultimate goal of re-applying them to our real life problems. Often our college students only see the mathematical part of it, and it would take many years of training to enable them to understand the logic under the scene, which is like a blind person tries to understand an elephant’s body with his bare hand by mere touching.