« April 2005 | Main | June 2005 »

May 28, 2005

CPU usage of Skype

My Skype is idle right now, sitting there on the second monitor.

But top tells me that Skype is using 10% of my CPU. 10%!?!?!? WTF? It's just sitting there!

Doing a ktrace on the process, gives:

   484 Skype    CALL  getrusage(0,0xf03b6c20)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0xffffffff,0xf03b6c20)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0,0xf03b6c00)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0xffffffff,0xf03b6c00)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0,0xf03b6ca0)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0xffffffff,0xf03b6ca0)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0,0xf03b6bb0)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0xffffffff,0xf03b6bb0)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  select(0x1b,0xf03b6ad0,0xf03b6b50,0xf03b6bd0,0xf03b6c50)
   484 Skype    CALL  getrusage(0,0xf01b2c00)
   484 Skype    RET   getrusage 0
   484 Skype    CALL  getrusage(0xffffffff,0xf01b2c00)
   484 Skype    RET   getrusage 0

Pages and pages of this...

And looking at a lsof of the process, there is a single connection to a specific IP address, but running a tcpdump to catch all the traffic going to the address, shows that there is very little traffic.

So what is Skype doing with the idle time?

Perl6 example

Perl6 JAPH:

say [~] (-> @c is copy {gather { while @c[0] { for @c -> {take(.shift)} } } }(['Joec','utrk','shle','te6r',' r .','a h.','nPa.'].map:{[split "",$_]}));

Something tells me that learning Perl6 is going to be an adventure. And totally different from my perl4 to perl5 conversion.

Either that, or I'll be sticking with perl5/ponie for a looong time.

May 26, 2005

Password corrupted with Skype upgrade: Fixed

I was using version 1.0.0.18 and decided to upgrade to the latest 1.0.0.24 (and skip the beta .30). After restarting Skype, I got a famous "password corrupted, inform skype" message.

Anyway, my fix was going into Keychain Access, and deleting both Skype and Skype.credentials entries.

Grease you monkey

Greasemonkey is one of the most powerful features of Firefox. It allows you to attach small javascript files to existing Websites to change them in ways that make them more useful to the user.

I've used them in special ocasions but Firefox is not my main browser (that task goes to Safari), so I'm not a regular user.

If you want to see a nice example (with screencast) of a Greasemonkey script, look no further than this.

Just for experimental value

So my new cable modem backup service is a per-usage plan. When I connect my computer, I have to go to a specific web site and authenticate. Then I'm able to connect to everywhere.

The thing is, before authentication, I can ping anywhere on the internet.

hmms...

Ping Tunnel: sending TCP traffic over ICMP

I think I'm going to set this up, for experimental purposes of course.

Update: OK, I couldn't wait to get home. Download the software, run make on the client and the server, start the ptunnel on the server. On my laptop, run it and redirect port 22 of the remote server to 8765 of my localhost. Try a ssh session on top. Worked first time. It took me less than 3 minutes to do it all.

Update 2: Yes, it works with my cable provider and it's metered service. Large transfers are a bit flaky but occasional ssh sessions work very well.

Too sad to even think about

This is beyond my most wildest dreams.

Scary stuff.

The mac mini is here

I ordered a Mac mini last February 14. It was meant to be a present to my sister. Her birthday was April 4.

It's now May 26, and yesterday I finally got the Mac mini.

It's not the exact spec I wanted. I ordered the 1.2Ghz with Aiport+Bluethoot and 512Mb RAM and a 80Gb disk drive. I got a 1.42Ghz with 1Gb RAM. The other specs where the same. I had to pay the difference but I prefer that than have to wait another month or so.

Anyway, the Mac mini came with 10.3.x, no Tiger. And I didn't find the upgrade coupon inside. I'll have to talk to Apple Portugal tomorrow (it's a religious holiday today). And I have to find a screen to install the beast before giving it to my sister.

But bottom line: it took 3 months and 11 days from order to delivery. To be an Apple user in Portugal, you need to train your patience, it seems.

May 25, 2005

Gloria, Aleluia

I finally have internet at home. For now, I'm using a cable modem with a per-usage plan. It will be my backup link after the ADSL is installed.

The ADSL should be ready in two weeks, it seems.

For now, I have a 256/128k link, costing 30 Euro cents per block of 10 minutes. With ADSL, I'm getting a 2Mb/256k link for 22 Euro per month.

May 22, 2005

Simple AJAX

I've been seeing a lot of AJAX stuff in the last coupple of weeks. I also have been trying to use BackPackit on a regular base.

But until I read this article, I didn't noticed how simple it really is...

I'll have to try it sometime.

I wish this could happen here

Check out http://arstechnica.com/news.ars/post/20050519-4925.html. I quote my favorite part

The plaintiffs do not know the identity of the persons they wish to sue, let alone the details of precisely what was done by each of them such as to actually prove infringement. Such facts would only be established after examination at trial. [...] It is sufficient that they show a bona fide claim, i.e., they they really do intend to bring an action for infringement of copyright based on the information that they obtain, and that there is no other improper purpose for seeking the identity of these persons.

Nevertheless, the court found IP addresses deficient as a justification for forced identification, and they rejected the argument that the broadband companies were in possession of documents detailing who these users are in real life. With regards to this latter issue, the court rightly noted that matching an IP at any given time to a user constitutes more than re-producing information (e.g., there's no peice of paper they could surrender; rather, they'd have to investigate themselves). Along similar lines, the court said that the evidence presented amounted to nothing more than hearsay. As you can see, the gist of the decision centers not on ideology or copyright analysis, but on the rules of evidence.

This is really interesting. I'm specially impressed by the notion that when an ISP gives information about a user based on the IP address, the court compares this to hearsay.

Of course, this was in a Canada court, and I don't think that we'll see something like this in Portugal anytime soon.

May 20, 2005

Killing me softly

I just saw this post about installing Fedora Core 4 on a Mac Mini.

Well, yeah, you can do it, but it's a waste of money on a Mac to run a great operating system that does not take advantage of the hardware.

An Apple Macintosh is not only hardware, it's a totally experience, a marriage between hardware and software. Yes, you can fool around with a mistress, but there is really no need. Give your Mac OS X a try, and enjoy.

May 19, 2005

Sorry 'bout that

So I had 700+ comments to approve today. And in the middle of those, about 10 of real people. Sorry about that you all.

Basically I never got the emails to approve the comments, and that sucks. I think I need a RSS feed of pending comments.

Anyway, the comment listing in Moveable Type sucks. You can't filter by text (all those Casino posts) and you can do LIKE in SQL either. And you can't filter to show only pending comments.

Or should I said couldn't.

I made a small patch to Moveable Type 3.14 (when I upgrade to 3.16, I'll update the patch). It adds match semantics to each field (implemented in the DBI back-end with LIKE), adds support to filter by text and URL, and also adds a small checkbox to show only pending comments.

With these two new features, it was a breeze to clean up 700+ comments. I could not report most of them to MT-BlackList, it kept complaining about too many URLs, so I just deleted them.

Anyway, I can now go and read all those comments I didn't get the first time around. BTW, please check the feed you are subscribing. There is one of them which includes the full comments. That would be my recommendation.

May 18, 2005

And the second good news...

I've been using Backpack on and off. I (still) lack a internet connection at home right now, so I don't have that much online time.

Today the Backpack API was announced. I'll have to look at it. Maybe, if I don't find a good to-do app for the command line, I can write one with this API.

In case you live under a rock...

Web application of the day (and it's still early...) is Webnote.

Javascript/DOM/CSS+XHTML and modern browsers are growing up like mushrooms. It's crazy. And it's becoming so common that we move from one to another with a simple "yeah, nice", even if six months ago you could not dream about these stuff.

May 17, 2005

Looking for command line To-do app

I'm looking for a command line to-do app for UNIX-based systems. It must work on a Mac, though.

I don't need no fancy text-based GUIs, just command line.

Each to-do must have the following fields:

  • body of text;
  • optional due date;
  • a set of tags.

That's it.

It's so little that I though of writing it myself... I'm just curious to see if there is anything like it already.

BTW, I know about Remind, but although powerful, it's a calendar application, not a to-do app.

May 09, 2005

Decisions

I decided to start using a managed service for my email protection (anti-spam mostly, but also anti-virus although using a Mac makes that not so important).

I'm looking at Postini and MessageLabs services. I've a subjective preference for the later, but I haven't decided yet.

One thing that bothers me is that neither of their sites describes their products. They only describe the technology. To know more, you have to enter "free trials"... Well, will start with MessageLabs trial and then do the Postini trial, to compare the two. I really would like more information on-line, specially price structure.

ecto just got better

I've been using ecto most of my very short blogging activity. It's easy to use, supports Markdown preview, and does what I want to do easily.

And it just got better: the latest release adds automator support to ecto (also check latest developer build with more updates). You should also install his get selected text from Safari automator script.

I've been collecting Automator stuff do try when I upgrade to Tiger and I'm now certain that Automator will be my most useful feature.

May 07, 2005

Rui is an evil person, he reads my mind

I'm sure of it!

Just yesterday, I was talking with Celso about good UML tools to use with our Macs. And just now, Rui writes about two of them: CanonSketch and TaskSketch. And they are written by two portuguese persons from Univ. of Madeira. Very cool!

I confess that my knowledge of UML is close to zero. I know what it is, in a general way, but I don't know how to use UML in real life. But I need to learn it. We have some people that work for us that use it, and I can see a lot of value there.

Now, I only need a good book about UML (suggestions anyone?) and see if I can generate Perl/Ruby/something from the exported XML files.

The world is coming to an end...

Techy rap? I think I died and gone somewhere...

Thanks goes to Brad to open my mind to this new genre.

May 06, 2005

Time to go

Time To Go-1

The day was ok, lot's of XMPP stuff, solved a couple of problems, created a few, learn some more.

I found out that, apart from Exodus (a Windows Jabber client), I could not find anything else with decent support for MUC. TKJabber might be be an option, but couldn't get it to work yet.

So I need a quick MUC-admin-client. I'll write one tonight it seems.

But now it's time to go. When I arrived at work this morning, I started my VPN connection to the lab network. It's now almost twelve and an half hour long session. It's enough.

P2P? Think NNTP...

Celso wrote about using P2P technology to distribute content, in the context of blogging.

There are two types of content that you might want to distribute: the syndication feeds, and the HTML pages.

The syndication feeds is a hot topic right now, specially in the Feedmesh group. Feedmesh already has notification distribution and it seems to be working great. In the two previous weeks there where some messages about full content distribution of feeds in the Feedmesh mailing list.

My personal view about syndication feeds distribution is well known to Rui and Nuno who are forced to listen to me every time the subject comes up. I'm a firm believer that NNTP is the way to go regarding the distribution of RSS/Atom feeds. Notice that I'm not talking about Usenet, but the NNTP protocol itself.

If you use NNTP to flood your content network, and write the files in a easy-to-export layout so that you can put any HTTP server over it and use that as a syndication proxy, you have a basic Content Distribution Network (CDN) for small files.

There are a lot of small issues that can be improved. There is no need for each node to keep a copy of every feed. If the logs of the HTTP server are used as a lazy-subscription mechanism, falling back to plain HTTP Proxy when the feed is not found locally, but signaling the NNTP server that he should accept that feed from now on, you have a organic beast that follows the trends of your client base. You can also expire old feeds that nobody seems to be reading, or expire only the feed itself but keep the meta data of feeds that are not updated (so you can answer 304 to our clients). We can (and should) store the feed data as GZiped files, so you don't need to GZip-on-the-fly.

You can point out a lot of drawbacks to this system: the publisher looses statistics of readership, you can't do password protected feeds (at least not in the traditional basic HTTP authentication sense), among others. But those are the tradeoffs that we make to save yourself a lot of traffic.

My personal side-effect is that if this kind of infrastructure was available, we could extend Feedmesh to the syndication clients. The current Feedmesh is only useful to be used between the major syndication aggregation services because it sends all the feeds that where modified. But if each node in this CDN also provided a filtered Feedmesh feed based on subscriptions of clients, then they could remove all the pooling and switch to a trigger-based content retrieval if they so wished (care should be taken to prevent a swarm of request, but that could be done by controlling the stream of updates sent by this service).

The question is who will support this. Well, the optimistic person inside me, would like to believe that the ISPs would be interested to provide a better service to it's customers, and if they had a simple system that just worked, they would install it on their own networks, and give it to their clients. The advantages are that they would save some bandwidth (negligible in a world of Bittorrent, I know) and give better service to its customers.

But the main push, the main collecting of feeds seems to be a perfect fit to the current syndication aggregation services. They already need to do it because their business model is based on having the most fresh content, so each one of them fetches the changed feeds whenever we ping them. If they start pushing the content via NNTP, we just might have the seed we need to implement something like this.


The HTML distribution part is different, and I think we are starting to see the solution: Google Web Cache.

Google is happy to do that service for you, to be your Coral Network. It seems obvious to me that Google value is related directly to the freshness of their own index. So they want your HTML as soon as it changes. So if Google taps the Feedmesh notification stream, they can see two things: that a specific page has changed, so they can fetch it, index it and cache it (and feed their own GWA), and (as a bonus) mark that page as more than likely being a blog and with that improve PageRank by removing the problems that the blogs are causing them.

Akamai is probably going to be relegated to DNS and static content CDN from now on.

May 05, 2005

Settle for warm

This one make me laugh my head off at work.

May 02, 2005

Welcome

Well, my current boss started blogging. Welcome! I noticed due to my Technorati watchlist.

His second post is very worthwhile rant about iChat and XMPP support.

I'll have to read it more carefully later.

Amen brother!

Gradual Ephiphany » Frustration:

Protocol designers have a responsibility that needs to be taken seriously. They must design protocols that are easy to implement and understand, if at all possible. Furthermore, protocols must reflect the realities of the societies in which they are deployed.

Right on!

KISS should be written in all the monitors of people who design protocols.

The Apple way

It seems that Apple is fine with changing old ideas about the "right" way to do things.

See one example: the new launchd.

I don't think they are innovating that much (the article itself talks about Solaris 10 solution to the problem), but I find it refreshing that they are not bound to UNIX tradition and don't mind rethinking about old problems. That is what I like about them.

Forked files and Tiger Server

AFP548 - Tiger Server Overview:

Another welcome feature is a new API that lets traditional UNIX tools such a cp, mv, tar, and rsync work with forked files. This should open up a much easier world of scripting for Mac OS X.

This is way cool! At last! Can anyone confirm that rsync that comes with Tiger Client is already using this API?

Update: More information from Michael Tsai - Blog - Random Tiger Notes:

A Mac-savvy rsync was, for me, one of the most anticipated features of Tiger. Unfortunately, it’s been unreliable so far. Nearly every time I use it to sync a large folder using the -E flag, it either crashes or stops with an internal error. The Mac-savvy tar, cp, and scp rock. So does BOMArchiveHelper.

Again from the AFP548 - Tiger Server Overview:

Secondly, we have synchronized mobile homes now! Macintosh Manager had a "Check Out" feature that would sync your data down to a workstation and then sync it back when you checked it back in. Tiger brings a new feature called Portable Home Directories that allows us several ways to synchronize the mobile home to the network one. You can define how the sync takes place in Workgroup Manager's Mobility preferences. The Portable Home Directory is synchronized on it's first login after creation and is then kept synchronized in several ways. You can define a periodic background sync, or a login or logout sync. Also the user can select Sync Home Now from the menu bar at any time. You can also specify rules to determine what gets synced, for example you might not want to sync the Safari cache folder.

This is so cool. I have to find a way to put a 10.4 server at the office, even if inside a Mac mini.

The bad part: the VPN server did not change much. We are using the 10.3 version at the office and I would like to have firewall and routing tables per user. Doesn't seem that we are getting them.

Also the XMPP server included is based on Jabberd 1.4.x, which is too bad. I was hoping for a more recent server, maybe one of the new ones in Java. Hoping for ejabberd was a bit too optimistic.