« February 2007 | Main | April 2007 »

March 28, 2007

ping melo.mobi

melo@mrtray:melo $ ping melo.mobi 
PING melo.mobi (melo.mobi): 56 data bytes
ping: sendto: No route to host
ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
^C
--- melo.mobi ping statistics ---
12 packets transmitted, 0 packets received, 100% packet loss

My mobile phone is dead. Replacement hasn't landed yet. If you need to contact me, use Jabber.

BSG 3x20 fraking rocks

nuf said.

March 21, 2007

Googla Apps for Domains

Google Apps for Domains is looking very very good. Pedro switched today, and I would to, but right now I depend on IMAP (I use offline mode a lot), and there is no support for it, even on the Premier Edition (the one I would be using myself).

I've read some comments that IMAP would have less than ideal mapping to the current tag-based approach of GMail, but for me, thats a non issue:

  • tags are folders, folders are tags;
  • if I move a message to a folder in my IMAP client, I'm tagging the message;
  • a message can exist in several folders (multiple tags).

I don't see a problem with this approach. You could think that folders inside folders might be hard, but thats just a bit of meta-data associated with tags.

The same comment said "Server-side searches can potentially use lots of server resources".... I wonder if he noticed that he was talking about Google, search and heavy loads in the same phrase... The IMAP SEARCH command can just plug into the current search for GMail. Again, I fail to see a problem with this.

We shall wait and see...

March 20, 2007

Macbook Pro shuts down

Houston, we have a problem. This is happening to me to. After the 10.4.9 upgrade, when I'm using battery, the Macbook just shuts down without any warning whatsoever.

Crap.

Update: Today I got this behavior with a TiBook G4 at work, very weird. This could point to a problem with the 10.4.9 upgrade.

Articles I'm following about this:

I think I have a swollen battery. I'll drive by the Apple tech support tomorrow.

Quicksilver Proxy objects

Recently, Merlin Mann did a show about Quicksilver Proxy Objects.

If you have problems getting that to work, follow the excellent mini-tutorial about enabling Quicksilver proxies and application menus by Robert Daeley.

In fact, you should read the short tutorial before watching the show.

Quicksilver Proxy objects

Recently, Merlin Mann did a show about Quicksilver Proxy Objects.

If you have problems getting that to work, follow the excellent mini-tutorial about enabling Quicksilver proxies and application menus by Robert Daeley.

In fact, you should read the short tutorial before watching the show.

Countdown

April 6 is just around the corner... Fun!

March 16, 2007

Either you like it or STFU

Publico is one of the largest newspapers in Portugal and they also have an online version. I was reading a piece on solar energy and at the end I found this:

Safariscreencapture002

(for the portuguese impaired, the text before the checkbox asks "Did you find this article interesting?". The checkbox label is 'Yes'.)

Now, I can understand what the person that designed this was trying to do (at least I think I do), but how can I say "No, I did not like the article". It seems that either I like it and check it, or if I don't I should just shut up and leave. More: if you decide that you do indeed like the article and check it, you cannot change your mind.

It seems that the possibility that someone would not like the article is too frightening to contemplate. Either that, or their tests with Safari where minimal.

Local networking

In my new work setup, one of the things I did was to upgrade the switch between the two laptops to a D-Link Gigabit switch (less than €30 at a local discount shop if I remember correctly).

I did some benchmarks to compare the speed of copying a 2.4 Gbyte Parallels XP image in several scenarios:

On the old TiBook, local disk to local disk:

$ time cp winxp.hdd winxp.hdd2
real    3m24.703s
user    0m0.032s
sys     0m29.427s

On the Macbook (IM going on, iTunes, a bit of Safari), local disk to local disk:

$ time cp winxp.hdd winxp.hdd2
real    4m15.725s
user    0m0.019s
sys     0m9.391s

From the Macbook to the TiBook over Gigabit Ethernet:

$ time cp winxp.hdd /Volumes/melo/Drop\ Box/
real    5m29.288s
user    0m0.018s
sys     0m23.898s

Nice.

So I moved a lot of FireWire external disks and DVD burners to the TiBook, my "server" and when I want something I just copy it over the network. Less cables to plug in when I get to the office.

Probably the best €30 I spent in the last weeks.

March 14, 2007

450k

About Google server farm:

Even today, Google is serious about exerting total control over the servers in their now-massive server farms. They build their own high-efficiency power supplies, and conduct fascinating, public research on disk failure. Current estimates put Google's server farm at around 450,000 machines - and they're still custom built, commodity-class x86 PCs, just like they were in 1999."

Thats a lot of juice.

(via Google Operating System)

March 13, 2007

Mac OS X: streaming audio between laptops35

In my workspace I use two laptops to increase the number of screens available (low quality picture of the setup I use).

I have everything the way I want it right now: the mouse, keyboard and clipboard are in sync using Synergy, and all my backup apps are installed on the Tibook (SuperDuper! and Retrospect, the best backup application for your small network), including the big external disks. They are connected with Gigabit ethernet so transferring files is a breeze, even gigabyte sized files.

I have only one last problem to solve: audio. I need to redirect all the audio of the TiBook to the Macbook, so that I can open sound apps in the TiBook and keep listening to them with the headphones I have on the Macbook.

Does anybody knows of an app that does this?

March 12, 2007

The problem with threads

A couple of years ago I came across an article on Dr Dobbs Journal about the future of programming in a world of multi-core machines.

It was a refreshing read, that took me back the early 90's at college and to some of the distributed operating system classes I took there. Back then we had a 80 CPU box to play around, the size of a 4U rack more or less (compare to this for fun), so conventional threaded programming was already looked at as "odd".

Recently I came across a paper by Prof. Edward A. Lee called "The Problem with Threads". I had it sitting on my "Things to read"-pile for quite some time until I saw it mentioned on O'Reilly Radar by Nat Torkington.

Its a beautiful read, I highly encourage it to you all. One quote in particular, about threaded programming and the impossibility of creating a correct threaded program make my laugh:

To offer another analogy, suppose that we were to ask a mechanical engineer to design an internal combustion engine by starting with a pot of iron, hydrocarbon, and oxygen molecules, moving randomly according to thermal forces. The engineer’s job is to constrain these motions until the result is an internal combustion engine. Thermodynamics and chemistry tells us that this is a theoretically valid way to think about the design problem. But is it practical?

This paper made me realize that I should probably take my resolution to learn Erlang more seriously.

I mean, I can write code in 6 or 7 imperative languages, but I always avoided functional programming. Yet, reading through the book Concurrent Programming in Erlang I had a lot of fun.

So now, I'm thinking more and more on some of my pet projects and which one I'll write in Erlang, just for kicks. I'm going to read it again to get the core concepts a bit more space inside my head.

Can't wait to see the carbon-version of the new Erlang book.

That, and Harry Potter and the Deathly Hallows, of course....

March 09, 2007

Installing Ruby XMPP Simple

I'm no Ruby expert but a friend of mine was asking me how to write a simple XMPP bot using Ruby, and I had seen a couple of recent posts announcing a simple ruby library.

So after installing RubyGems (I had a total virgin Mac OS X stock install of Ruby), I did the usual:

sudo gem install xmpp4r-simple

That did not work well. One of the dependencies, rcov, does not install in my system. The error message is something like this:

gcc -fno-common -g -Os -pipe -fno-common -pipe  -fno-common -pipe -fno-common  -I. -I/usr/lib/ruby/1.8/universal-darwin8.0 -I/usr/lib/ruby/1.8/universal-darwin8.0 -I.   -c callsite.c
callsite.c:121: error: parse error before 'event'
callsite.c: In function 'coverage_event_callsite_hook':
callsite.c:131: error: 'klass' undeclared (first use in this function)
callsite.c:131: error: (Each undeclared identifier is reported only once
callsite.c:131: error: for each function it appears in.)
callsite.c:136: error: 'mid' undeclared (first use in this function)
callsite.c:141: error: 'node' undeclared (first use in this function)
callsite.c: In function 'cov_install_callsite_hook':
callsite.c:162: error: 'RUBY_EVENT_CALL' undeclared (first use in this function)
make: *** [callsite.o] Error 1

To solve this, I did the following: first I manually downloaded the latest version of rcov from the rcov site. Doing the classic ruby setup.rb dies with the same error, but there is an alternative:

sudo ruby setup.rb all --without-ext

This works. Basically it skips installation of a C-based extension to the rcov package that makes the package a lot faster. Given that I don't intend to run coverage tests in ruby, I don't mind skipping this.

At this time, gem install xmpp4r-simple still tries to install the dependency of rcov although we already have rcov installed. So we skip the dependencies:

sudo gem install --ignore-dependencies xmpp4r-simple

This works, and now we can play.

Contacts

melo@simplicidade.org (XMPP/email)
+351 302 029 050 (voice)
melopt (Skype)

IronMan challenge

Iron Man badge Are you ready to be an Iron Man? Join the challenge and find out! (what is the meaning of this little man?)

Moosaico

Junta-te!

Recent Comments

Powered by Disqus
Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.2