Apr 262012
 

This song is at least as old as 1973 and is originally from Italy (Giorgio Gaber – Dente della conoscenza). If you like finding patterns, making analogies and metaphors, and overall pondering, then examine the tooth of knowledge in the contexts of: science, religion, culture, society (etiquette, etc), and finally, the internet.

 

(note : ‘SHHH’ is an inhaling sound)

‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

In a random place, you can say anywhere,
it really seems that a child was born,
it’s a normal child, not very special,
except for the fact that it has a strance tooth
and he does ‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

Neither the mom or the doctors know what it is,
it’s not foreseen by science,
To understand one another we’ll call this anomaly
The Tooth of Knowledge.

‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

In his tower, all ivory,
the genius studies his maps
concentration, inspiration,
his culture, his art.

In a normal tooth there’s no harm,
but by some stroke of fate
data tells us that other children were born
all of them with the same tooth
and they do ‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

There are those who say that this tooth is the guarantee
of a precocious adolescence,
they’re allergic to their mother’s milk
but they suck up knowledge
and they do ‘TICK’ and they do ‘SHHH’,
‘TICK’ and then ‘SHHH’.

In his tower, the genius studies
the reason for these teeth,
he looks at the problem technically
and suggests they get removed.

There they are in front of you with their small teeth,
it really seems that your blood attracts them,
they don’t go to school, they don’t read books,
they give bites like the vampires do
and they do ‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

And when they suck, they learn everything you know,
they level intelligence.
Culture and its power are now in crisis
with the Tooth of Knowledge.

They’ve surrounded even the tower,
the genius screams that he doesn’t want it,
they sucked a bit of his blood,
they haven’t even hurt him,
but now they already know everything that he does,
He hadn’t realized it
he lost his power, he’s a man like us…

May 102011
 

I just moved into a new apartment where the AT&T reception is, well, atrocious. Still, I like AT&T, so I’m dragging my feet to switch to Verizon (or something else).

Today, I spoke in live chat to some AT&T employee. I believe the name was Monica Garnett but I could be wrong — and it probably doesn’t matter. My issue was that I didn’t seem to have a mailbox for my phone number. She says my data plan is unsupported for smart phones.

… Wait, what? I’ve been using this data plan for over a year with this phone. Maybe I never got voicemail, but who cares! It WORKED. I had unlimited text and unlimited data. Now, yes, I know, this plan had been removed and AT&T wasn’t offering it anymore, but I am an existing customer, I get the perk of keeping that, right?

… No. I was told I could switch to their 200Mb/month or 2Gb/month plan, which I did, but what I wasn’t told is that THESE PLANS DO NOT INCLUDE MESSAGING.

Now, I want to fix this. I got screwed by a company, big whoop, whatever, I’ll just limit myself a little. THE WEBSITE DOES NOT GIVE ME REASONABLE OPTIONS. I can get unlimited text, or unlimited text with any mobile-to-mobile calling, or 1000 texts.

I could pay $15 for 200 megs and $10 for 1000 texts, and then I’d have $25 — which is, $5 less than unlimited data and unlimited texts. Huh. NO.

I could pay $25 for 2Gb and $10 for 1000 texts, or $20 for unlimited texts. So .. $35 or $45? NO.

Seriously? So I have to pay MORE now to have LESS than I used to have? Well, goodbye, AT&T. Guess who’s going to go say hi to another phone service provider tomorrow?

May 102010
 

Funny how, when I’m busy, I stop updating this blog, isn’t it.

I’m learning a good amount on HTTP, Perl (specifically CGI) and working on using TDD with Ruby/Rails: it’s a mindset.

Regarding martial arts, sensei helped me figure out that my punches are all wrong, and the issue has been traced to lower back muscles. Thankfully, I’ve got tons of subway time now, so I can practice standing. For those of you who don’t study martial arts… That last sentence is not a joke.

On an unrelated note: I always enjoy the fact that ‘martial arts’ is commonly mistyped as ‘marital arts’. I knew the two were similar (*grin*), but some sentences are downright hilarious.

Dec 172009
 

I don’t really have a better name for this. It’s also not completely clean, but it works. I had, almost a year ago (362 days ago), written a blog post about lexicographic permutations. That was about permutations of elements within one array.
Someone on ruby-forum asked about permutations between multiple arrays. I found something in C#, which I was happy to transcribe to Ruby and tweak a little.

def array_permutations array, index=0
  # index is 0 by default : start at the beginning, more elegant.
  return array[-1] if index == array.size - 1 # Return last element if at end.
  result = []
  array[index].each do |element| # For each array
    array_permutations(array, index + 1).each do |x| # Permute permute permute
      result << "#{element}, #{x}"
    end
  end
  return result
end

So, we get this:

first = ['one', 'two']
second = ['three', 'four']
third = 'five', 'six']
result = array_permutations [first, second, third]
=> ["one, three, five", "one, three, six", "one, four, five", "one, four, six", "two, three, five", "two, thre
e, six", "two, four, five", "two, four, six"]

Magic!

——
Edit – of course, my solution is hackish, and someone came up with a quicker and more elegant solution:

def fancy_array_permutation array
  return array[0] if array.size == 1
  first = array.shift
  return first.product( fancy_array_permutation(array) ).map {|x| x.flatten.join(" ")}
end

This gives the same result as above.

Jun 272009
 

Well, I just finished the book. Apparently I do that with a lot of books – finish them at the wee hours of the morning.
“Alright.. I have half the book left to go.. I’ll pick it up tomorrow.”
“Alright.. I’ve got a quarter of the book left to go…”
“Well, only 35 pages…”

So, it’s 2:30 am and in less than 8 hours I have to be beating up little kids.
Raven recommended Lamb by Christopher Moore.

I was really happy to have picked it up, and enjoyed reading about Jesus Christ as a child, and then as things evolved, I first really liked reading about the eastern religions. Then I realized things didn’t fit. Some things about which I’m too young and stupid to have a sense of humor (like chronology and History) weren’t right. There were some absolutely terrible puns.
Then it hit me that this idea of his wasn’t really new – I’d read something quite similar in one of Aleister Crowley’s books : Meditation Give it a read.

In the end, all the magic was gone from the book, and while I did enjoy the way it was written, and how well everything is put together, and how believable everything is.. It had become just a story.

I don’t know what to think of the fact that I didn’t get any new spiritual concepts from this book; I was kinda hoping I’d get something new. On a personal note, as I’ve thought and written somewhere before, I think now’s the time for me to -do-.. Enough with the theorizing.

Thankfully, there’s an epilogue in which Christopher Moore explains that he had to play with History and chronology, as well as scriptures and accepted “knowledge”, to get things to fit the way he wanted them. It’s not perfect and he apologizes.
There’s even a second epilogue, because I bought a special edition (looks neat!), and he explains how he did it all, his trip to Israel, his thoughts during the trip…

Overall, I must admit, I’d probably recommend the book – it makes one smile, definitely -, but the epilogues really gave me a lot of respect for the author. And that was before he self-proclaimed a “not particularly devout Buddhist with Christian tendencies”.

Mar 312009
 

Those two videos have been brought to my attention within maybe two weeks of each other, and I hate thinking of random coincidences.. So here they are, together so I can find them again in several years.
Playing for change: Stand by me
Where the hell is Matt?

The first one fills my heart with a warm feeling – the song was recorded by all these people around the world simultaneously (or so they say, but it sure is well edited in any case).
The second one brings tears to my eyes, I’m not sure why.. I’ll let you guys watch it

Mar 262009
 

In the past couple of weeks, I’d gotten to spar progressively harder with a blue belt who is twice my age, but has been in dojos where sparring and self-defense were more important than kata. As a result, I consider him somewhat dangerous to spar with.. And, well, I let myself get caught up. I stopped being the watcher..
I hid behind the excuse that I was just sparring as hard as he wanted to spar, and so it just escalated.
Yesterday I took a different approach; I resolved to work on what I wanted to work, which turns out to be distance/range evaluation and shifting.. And I sparred at half-speed. He followed my speed, only speeding up a little as he got into it. I did not.
I asked him after sparring what he thought of the first minute or so of sparring with me, and he said he didn’t remember much.. But it enlightened me to hear “At first, I always take a few seconds to see if we’re going hard or soft, and then I get going”.
Here I was, thinking I was following him, and here he was, thinking he was following me! It sure is a good thing I took a step back from the vicious cycle.

Dec 202008
 

Taking the code from this other blog … It’s pretty elegant Ruby!

I won’t waste your time repeating what the guy wrote in his blog – you’re welcome to go read it. I just felt that I should help spread a little this elegant implementation of the standard permutation algorithm, fixing a small bug within it in the process. If, like me, you have issues understanding how to use this, well – you have to use this function and call a block of code on it. It runs the block of code on each permutation it finds.

def permutations array
  if array.size < 2
    yield array
  else
    array.each do |element|
      permutations(array.select() {|n| n != element}) \
      {|val| yield([element].concat val)}
    end
  end
end