Home
Papa's got a brand new bag [entries|friends|calendar]
ferhr

[ website | 704Labs ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Cedilla woes. [16 Jul 2008|08:43am]
Generally, when using computers, I either use them on English or Dutch, almost never in Portuguese, for practical reasons (one of them is having less text to read whatsoever). Also I never really dug the ABNT2 standard for keyboards, albeit I learned to type on typewriters which a layout very similar to this. After I began to work (and have fun) with computers, I threw away any ABNT/ABNT2 layout and lived happy (even when typing on a ABNT2 keyboard).

The thing is, I still need accentuation and extra glyphs. For the Mac, it's just download and install (or recover from backups!) the US_INTL keyboard layout by Rainer Brockerhoff (here), which has been working for 3+ OS X versions until now. I also need that "caps lock" must be an additional Control (also because I use Emacs bindings everywhere). This is handled nicely by the Mac in the latest 3 OS X major versions (and before by nasty, kernel-messing extensions).

The problem is, GTK 2 thinks it's too smart, and its "US International with dead keys" clings to a layout which produces shit like "ć", which is in use by far less people than ç. A nice thing would be exchanging the system's language to brazilian portuguese, which I'm not really into doing now. Which would be nice for a change, but I think it's preposterous to change the default language just to have a keyboard properly working.

After chasing around various solutions, I found this nice post which solves the problem, let's say, "for ever". My file stayed that way:

# <dead_acute> <C>                      : "Ć"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
# <Multi_key> <comma> <C>               : "Ç"   Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
<dead_acute> <comma> <C>                : "Ç"   Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
# <dead_cedilla> <c>                    : "ç"   ccedilla # LATIN SMALL LETTER C WITH CEDILLA
# <dead_acute> <c>                      : "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE
<dead_acute> <c>                        : "ç"   ccedilla # LATIN SMALL LETTER C WITH CEDILLA

Yeah, the #-marked ones are comments, yielding the previous config. "Ć" is no more, hopefully.

Update: Of course there's always more ways to do it.
post comment

Also, [15 Jul 2008|05:09pm]
... printing Postscript to Nexenta Alpha 7 doesn't work at all, for no apparent reason. I was on the brink to debug CUPS internals, while after opening/trussing/creating custom versions of CUPS' filters I had a sudden enlightenment which prompted me to throw all apparent effort away and compile the latest CUPS CVS; for great success (and justice).
post comment

XRandr, 1990 dynamic graphics in the 2000's. [15 Jul 2008|04:54pm]
But really, who needs more than this?

(very) Recently, all systems using X.org as their windowing system (basically, all Unices) can use the XRandr extension (and its "userspace" "client", xrandr(1)) to dynamically change graphics resolution, set up an extended desktop, change Xinerama-like stuff, and other nifty things. Mainly if the graphics drivers allow those cool ideas to happen, and the hardware is capable.

About two years ago I bought a random Dell Laptop, with the (awful) Mobility Radeon 9000 chipset in it. The thing is, I was never able to extend its desktop to an external monitor (thus having two screens to fiddle with). Then XRandr came, and while in Ubuntu you have the "Screen Resolution" control panel, it doesn't do much apart XRandr, specially in my case, where the adapter would yeld a "no resolution available" or something like that.

So, you have a "extended desktop"/xinerama/dualhead capable hardware, but the output it's still mirroring after xrandr/screen resolution changes? Well, you have to add something like that in your /etc/X11/xorg.conf:


Section "Screen"
	Identifier	"Default Screen"
	Monitor		"Configured Monitor"
	Device		"Configured Video Device"
	Subsection "Display"
		Depth 24
		Modes "1280x1024" "1280x800" "1024x768" "800x600" "640x480"
		Virtual 3000 3000
	EndSubSection
EndSection




So there it is. Working decently, no reboots required (changes to xorg.conf, of course, require you to restart your currently running X.org server, but that's a small price to pay to have a nifty extended desktop).

Also I found out that, at least while using Intel GMA hardware, you should add the second display *after* starting the X server, as it even maintains Compiz running. Which is double extra w00ty.

There's just one thing preventing me to call X the "perfect" windowing system I ever wanted: the ability to any X11 client to exchange servers dynamically (via multiplexing or whatnot, I don't really care). That would be seriously cool, and it will pioneer graphics tech again after 20+ years. I know that there's a (unaccelerated) X server specifically for this, but it's too much a hassle to configure and to port to recent X.org distros.
post comment

Imagine that. [09 Jul 2008|12:59pm]
I could run Windows Vista for ten minutes.

Yeah, I bought some new hardware (dual core and stuff, finally) and it came with this newfangled thing called "the WOW Operating System". Turns out it took about 5 minutes to start and reach the login screen (!) and, after that, it found my wireless network after seven different steps, including two authorizations, only to lock up (apparently, I guess it was a "Windows Shell Meltdown") five minutes later.

Vista is no more. Installed latest Ubuntu on it and it's a match made in heaven. I had to use ndiswrapper, unfortunately, for the awful Broadcom wireless stuff, but I'm wired all the time (since it's a machine for work), so it's kind of moot. The builtin webcam works nicely, which is a sign of 2008 finally coming to me.

Too bad I even opened the enclosed Vista pack to see what's inside. I should have left it intact, in a dark, forgotten room.
1 comment|post comment

Just in case. [05 Jul 2008|07:23pm]
I'm having problems with my Webpage. Just in case it's needed by someone.
5 comments|post comment

I think that [30 Jun 2008|03:32pm]
... if I wrote a book called "Twitter Architecture" it wouldn't sell.
post comment

pt_BR: E alguém duvida que estamos já numa ditadura? [27 Jun 2008|07:57am]

  • Já mandamos dissidentes de ditaduras amigas para suas respectivas prisões, mas aceitamos guerrilheiros de ditaduras ou movimentos terroristas amigos.
  • Punimos com prisão quem anda acima da velocidade dentro das cidades, mas não punimos com prisão corruptos.
  • Punimos com prisão quem come sagu e dirige, mas arquivamos processos de impeachment mesmo quando há confissões.
  • Matamos e prendemos os traficantes, mas não prendemos o chefe dos traficantes.
  • Ministros da "Cultura" pensam em taxar qualquer mídia de armazenamento porque os artistas não conseguem mais vender sua música-lixo.
  • Pune-se manifestantes por manifestar, seja a favor da discussão sobre as drogas, seja contra o governo.
  • Cria-se regulamentação para o setor mais dinâmico da economia (informática), facilitando o cartel do ensino.
  • Cria-se uma série de regras e espionagem em cima do usuário de internet, algo praticamente inédito na galáxia. Regras estas feitas por mensaleiros e corruptos.
  • Cria-se uma série de leis incumpríveis e impossíveis de fiscalizar, mas prontas para servir de extorsão contra quem se quer (em todas as ditaduras é assim que funciona).
  • etc., etc., etc...


Não vou nem entrar no mérito das restrições à liberdade de expressão e pensamento. É chutar cachorro morto. É crível que no futuro exercer críticas também seja crime.
2 comments|post comment

Also... [23 Jun 2008|08:28am]

I'm happy to tell you there is very little in this world that I believe in. Listening to the comedians who comment on political, social, and cultural issues, I notice most of their material reflects an underlying belief that somehow things were better once and that with just a little effort we could set them right again. They're looking for solutions, and rooting for particular results, and I think that necessarily limits the tone and substance of what they say. They're talented and funny people, but they're nothing more than cheerleaders attached to a specific, wished-for outcome.

I don't feel so confined. I frankly don't give a fuck how it all turns out in this country - or anywhere else, for that matter. I think the human game was up a long time ago (when the high priests and traders took over), and now we're just playing out the string. And that is, of course, precisely what I find so amusing: the slow circling of the drain by a once promising species, and the sappy, ever-more-desperate belief in this country that there is actually some sort of "American Dream," which has merely been msiplaced.

The decay and disintegration of this culture is astonishingly amusing if you are emotionally detached from it. I have always viewed it from a safe distance, knowing I don't belong; it doesn't include me, and it never has. No matter how you care to define it, I do not indentify with the local group. Planet, species, race, nation, state, religion, party, union, club, association, neighborhood, improvement committee;I have no interest in any of it. I love and treasure individuals as I meet them, I loathe and despise the groups they identify with and belong to.

So, if you read something in this book that sounds like advocacy of a particular political point of view, please reject the notion. My interest in "issues" is merely to point out how badly we're doing, not to suggest a way we might do better. Don't confuse me with those who cling to hope. I enjoy describing how things are, I have no interest in how they "ought to be." And I certainly have no interest in fixing them. I sincerely believe that if you think there's a solution, you're part of the problem. My motto: Fuck Hope!

P.S. Lest you wonder, personally, I am a joyful individual with a long, happy marriage and a close and loving family. My career has turned out better than I ever dreamed, and continues to expand. I am a pesonal optomist but skeptic about all else. What may sound to some like anger is really nothing more than sympathetic contempt. I view my species with a combination of wonder and pity, and I root for it's destruction. And please don't confuse my point of view with cynicism; the real cynics are the ones who tell you everything's gonna be all right.

P.P.S. By the way, if, by chance, you folks do manage to straighten things out and make everything better, I still don't wish to be included.



-- George Carlin

post comment

George Carlin was right. [23 Jun 2008|07:44am]
He died yesterday or yet today, I don't know exactly. And it sucks. But he was right on many topics, including the uselessness and the false "self-importance" of the human race.

Thing is, today I had another proof of this: a friend of mine posted on his blog, six months ago, his impressions with Half-Life 2. He played the 2004 game six months ago and he didn't liked it. Not a big problem, you would think, right?

Problem is, younglings of today are too much fanatic on what they believe (I'd even consider a young person someone that has until 50 years, as they are also a spoiled generation). And they're professional fanatics; be it politics, blogging, religion or... games. And oh boy do they care about games. They do a lot, it seems.

My friend got offended a lot. On his blog. About his blog post, which was deemed as an... article. Because someone linked him on a gaming site, and shortly after, as they say, "hilarity ensues".

Really? O RLY? Do everything that we write with more than 4 paragraphs is considered an article now? So your average blogger thinks that he/she is a writer (or a journalist) and that he/she deserve such treatment. And think that other people blogging on the internet also thinks that way. Which is a ridiculous notion by itself, but it seems that it is already this way AND out of control. So-called "new media" is naming itself for legitimacy -- even when the "old media" wasn't any legit by any "objective truth" standards.

One may even argue that debating in the internet works that way (i.e., loud, fanatic idiots bullying people over their opinions), yielding a "welcome to the internet" meme. In this case, contrarian opinion is even more sacred -- and necessary -- as it's really nice to see lifeless people defending their faith (on particularly useless topics) to the death. If free speech means to be criticized a lot, so be it; but also the people who voice "unpopular" opinions has the right to push a big "You Don't Matter" button whenever they want. Even delete comments, what the hell. Because most debaters really doesn't matter and have fanaticism instead of opinion. Debating is useless, specially when debating with someone who's not willing to change his mind, or doesn't accept foreign opinion.

(But particularly, amongst fanatics, I think those gaming freaks need a freaking war to get something greater to worry about. A real, continental war. A land war in Asia; well, whatever it fits. Enough with games for those people. Alas, after seeing a gaming forum or being complained about how you shouldn't voice your opinion on an specific game it doesn't impress me that people like Jack Thompson (another fanatic) still has its voice -- some of his opponents are just as crazy.)
post comment

pt_BR: O problema de conviver entre gente capaz. [19 Jun 2008|11:25am]
Esta vai em português brasileño mesmo.

Há um tempo atrás, fiz meu cadastro no LinkedIn. Agora, mais pessoas estão tendo acesso à mais esta rede social (que considero a melhor já feita, porque pelo menos tem alguma utilidade, e parece ser incrivelmente bem-feita). Apesar da minha aversão inicial por quaisquer mecanismos de exposição de informações pessoais -- hey, essa exposição vale a pena.

Ocorre que, como era de se esperar, as pessoas com quem já estudei, trabalhei ou mesmo amigos estão aparecendo na "ferramenta". Bacana também, é interessante saber o que as pessoas andam fazendo, onde estão se escondendo, como estão se virando. Mas aí é que mora o problema. Tem uma feature do site que serve para recomendar as pessoas. Assim, publicamente. Tipo, um testimonial/"testemunho".

Vejo alguns problemas com isso. Um deles é que, ao recomendar uma pessoa, me sinto na obrigação moral de fazer isso com todas que eu conheço, de uma forma ou de outra -- e, com raríssimas exceções, tive sorte de conviver com pessoas de competência e habilidades muito acima do padrão brasileiro. Simplificando a linguagem, só tem fera. São pessoas que me inspiram a fazer as coisas do melhor jeito possível.

Só que eu acho meio artificial repetir o discurso -- mesmo que seja verdade e todas as pessoas que eu recomendaria são os melhores. Fica ruim. Se eu esquecer de alguém, posso ser mal-interpretado. Se eu preencher para todo mundo, fica a impressão de que eu sou bajulador (e se tem alguma coisa que não sou, é bajulador).

Sem contar que tem certas coisas que só se diz em particular, ou se requisitado por alguém -- como leis trabalhistas e outras intempéries/facilidades protetivas geralmente dizem que é proibido dar informações sobre outra pessoa se requisitado, não imagino o LinkedIn implementando uma feature ao estilo "como foi seu colega na empresa XXX?" privadamente.

Vale alertar que também podemos cair na distopia de que sites como o LinkedIn sejam a base de dados mais consultada por headhunters e agências -- portanto, obrigatória para quem quer se manter no mercado. Acho que não preciso discorrer sobre os motivos que justificariam isso ser uma má idéia.


Fica, então, o registro; e saibam que, se eu não deixei nenhuma indicação, não significa que a pessoa que você está visualizando não seja um futuro Steve Jobs/Donald Knuth.

(Alguém poderia justificar que as recomendações são exatamente para diferenciar os "contatos" das "pessoas que eu indicaria", mas não é assim que eu lido com redes sociais; eu só adiciono quem conheço e poderia realmente confiar -- e mesmo assim sempre fica alguém de fora...)
3 comments|post comment

LinkedIn. [17 Jun 2008|11:12pm]
Unfortunately, since fellow brazilians took Orkut by storm in 2004, almost no public-interest social network was left. Until, of course, LinkedIn.

Here's my profile. I hope to put more detailed info as soon as I find... the information itself.
post comment

Bluetooth as a controller. [17 Jun 2008|10:06pm]
Finally discovered a easy way to make presentations with remote controlling. It's via Bluetooth, and as I have a Dell D600 machine and the latest Ubuntu installed on it, I was able to make BluePad work with it nicely.

Also I have a simple Nokia cellphone, which also has Bluetooth; and since I have a telecom contract that allows me to use it, I'm now a happy camper about cellphone-controlled slideshows.

It also works for music players, moving mice and stuff like that.
4 comments|post comment

Thinking about it... [14 Jun 2008|02:38pm]
When we'll have 16-Gb+ RAM-enabled systems, it should be trivial to make a lightning fast filesystem, as it would be possible to write all file allocation tables in RAM itself, no matter how much files should it have.

Well, it matters a bit, but not practically.
1 comment|post comment

pt_BR: O novo imposto não vai quebrar ninguém. [11 Jun 2008|08:39pm]
Sim. É só 0,1 por cento. Não dá nada.

Mas o anterior também não dava nada. Era 0,38%. Não dá um cafezinho.

Vai controlar melhor a sonegação. Ok também.

Daí dizem que, ao tirar o imposto, ele prejudicou a saúde. Ok. Ei, espere, eis a "grande coisa escondida": se só 0,38% das movimentações financeiras eram taxadas -- e, para fins práticos, quem trabalha gasta todo o dinheiro, e metade vai para impostos -- isso significa que o imposto pago dava 0,38% divididos por dois... noves fora...

Imaginando o quanto o governo gasta em saúde, então dá para deduzir que não gasta quase nada do que arrecada. Ah, tá certo.

Os 0,1% vão pro bolso de alguém, isso sim.

Ridículas são as críticas das pessoas que são a favor do imposto: é como se qualquer pessoa que fosse contra o bendito imposto fosse sonegadora. O caso é que o dinheiro vai ser desviado de qualquer jeito, e quem sonega vai achar outros meios. Antes, grandes transações eram feitas em bancos; hoje é feita com dinheiro vivo -- inclusive na cueca, não é mesmo?
3 comments|post comment

pt_BR: Hipocrisilândia. [07 Jun 2008|10:57am]
Por pura inércia, acessei a página do Terra agora há pouco. Numa chamada:

"Loja retira do ar campanha "papai-mamãe não"

, de onde se deduz que a patuléia pode pensar que "tá certo, tem que acabar com a pouca vergonha". Outra chamada, dentro das "mais acessadas":

"Jogue vôlei explosivo com garotas de biquíni; é grátis"

A falta do que fazer e a inversão de prioridades é evidente.
2 comments|post comment

Teh hacks. [04 Jun 2008|02:06pm]
One of my servers at home runs an OpenSolaris distribution, called Nexenta. It's an alpha build of this OS; you may call it 0.99 instead of 1.0, since it was done a few months before the first "official" release of it. Various motives attracted me to this particular distribution, as of april 2007: ZFS, Solaris Zones (with Linux; I have one Linux zone on it always running, just for fun), the Ubuntu-like interface (for the occasional waste of time using Firefox on a server ;) ), ipf, and compatibility with this puny Dell hardware. It's been running since the middle of the last year, and so far so good.

Until this morning. I wanted to rm a file, and it couldn't. Yeah, that's right. I couldn't remove files. At all. So I truss-ed it.

execve("/usr/bin/rm", 0x08047B2C, 0x08047B38)  argc = 2
resolvepath("/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/bin/rm", "/usr/bin/rm", 1023) = 19
sysconfig(_CONFIG_PAGESIZE)                     = 4096
xstat(2, "/usr/bin/rm", 0x080478E8)     = 0
open("/var/ld/ld.config", O_RDONLY)             = 3
fxstat(2, 3, 0x08047818)                        = 0
mmap(0x00000000, 96, PROT_READ, MAP_SHARED, 3, 0) = 0xFEFB0000
close(3)                                        = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
 MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFA0000
xstat(2, "/lib/libc.so.1", 0x080470A8)          = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY)                = 3
mmap(0x00010000, 4096, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEF90000
mmap(0x00010000, 1044480, PROT_NONE, 
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE80000
mmap(0xFEE80000, 939729, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE80000
mmap(0xFEF76000, 27414, PROT_READ|PROT_WRITE|PROT_EXEC,
 MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 942080) = 0xFEF76000
mmap(0xFEF7D000, 5704, PROT_READ|PROT_WRITE|PROT_EXEC,
 MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF7D000
munmap(0xFEF66000, 65536)                       = 0
memcntl(0xFEE80000, 203020, MC_ADVISE,
 MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
munmap(0xFEF90000, 4096)                        = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
 MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF90000
getcontext(0x080476A0)
getrlimit(RLIMIT_STACK, 0x08047698)             = 0
getpid()                                        = 1704 [1703]
lwp_private(0, 1, 0xFEF92000)                   = 0x000001C3
setustack(0xFEF92060)
sysi86(SI86FPSTART, 0xFEF7DC78, 0x0000133F, 0x00001F80) = 0x00000001
fstat64(0, 0x080475E0)                          = 0
fstat64(1, 0x080475E0)                          = 0
close(2)                                        = 0
open("/dev/null", O_RDWR)                       = 2
read(0, 0xFEF7DC84, 1)          (sleeping...)


And it stays there. Solaris' truss only yields results from blocking syscalls if they spend more than two seconds blocked. And it stays there. Staaaays there.

It's a clear sign of a daemon, but hubris comes that way. Stay with me on this one. I had not given up yet.

Since the last call was awaiting for some data from /dev/null (which doesn't make sense at all for rm) I checked /dev/null permissions, its original char-special for permissions, checked /etc/group for permissions on that file, well, everything to no avail. Then I had to do a local truss in my work's OpenSolaris machine to see what happened locally, since I have the same version of the OS installed. Same version, almost-the-same customizations, mind you.

execve("/usr/bin/rm", 0x08047804, 0x08047810)  argc = 2
resolvepath("/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/bin/rm", "/usr/bin/rm", 1023) = 11
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFB0000
xstat(2, "/usr/bin/rm", 0x080475C8)             = 0
open("/var/ld/ld.config", O_RDONLY)             = 4
fxstat(2, 4, 0x080474F8)                        = 0
mmap(0x00000000, 96, PROT_READ, MAP_SHARED, 4, 0) = 0xFEFA0000
close(4)                                        = 0
sysconfig(_CONFIG_PAGESIZE)                     = 4096
xstat(2, "./libintl.so.3", 0x08046D88)          Err#2 ENOENT
xstat(2, "/usr/local/lib/libintl.so.3", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/X11R6/lib/libintl.so.3", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/openwin/lib/libintl.so.3", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/dt/lib/libintl.so.3", 0x08046D88) Err#2 ENOENT
xstat(2, "/lib/libintl.so.3", 0x08046D88)       = 0
resolvepath("/lib/libintl.so.3", "/lib/libintl.so.3.4.3", 1023) = 21
open("/lib/libintl.so.3", O_RDONLY)             = 4
mmap(0x00010000, 4096, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_ALIGN, 4, 0) = 0xFEF90000
mmap(0x00001000, 36864, PROT_NONE, 
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF80000
mmap(0xFEF80000, 30254, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFEF80000
mmap(0xFEF88000, 2228, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 28672) = 0xFEF88000
memcntl(0xFEF80000, 4744, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
xstat(2, "./libiconv.so.2", 0x08046D88)         Err#2 ENOENT
xstat(2, "/usr/local/lib/libiconv.so.2", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/X11R6/lib/libiconv.so.2", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/openwin/lib/libiconv.so.2", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/dt/lib/libiconv.so.2", 0x08046D88) Err#2 ENOENT
xstat(2, "/lib/libiconv.so.2", 0x08046D88)      = 0
resolvepath("/lib/libiconv.so.2", "/lib/libiconv.so.2.4.0", 1023) = 22
open("/lib/libiconv.so.2", O_RDONLY)            = 4
mmap(0xFEF90000, 4096, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED, 4, 0) = 0xFEF90000
mmap(0x00001000, 999424, PROT_NONE, 
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE8A000
mmap(0xFEE8A000, 992476, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFEE8A000
mmap(0xFEF7D000, 3208, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 995328) = 0xFEF7D000
memcntl(0xFEE8A000, 4484, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
xstat(2, "./libc.so.1", 0x08046D88)             Err#2 ENOENT
xstat(2, "/usr/local/lib/libc.so.1", 0x08046D88) = 0
resolvepath("/usr/local/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/usr/local/lib/libc.so.1", O_RDONLY)      = 4
mmap(0xFEF90000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0xFEF90000
mmap(0x00010000, 1044480, PROT_NONE, 
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFED80000
mmap(0xFED80000, 939729, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFED80000
mmap(0xFEE76000, 27414, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 942080) = 0xFEE76000
mmap(0xFEE7D000, 5704, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEE7D000
munmap(0xFEE66000, 65536)                       = 0
memcntl(0xFED80000, 203020, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
xstat(2, "./libgen.so.1", 0x08046D88)           Err#2 ENOENT
xstat(2, "/usr/local/lib/libgen.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/X11R6/lib/libgen.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/openwin/lib/libgen.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/dt/lib/libgen.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/lib/libgen.so.1", 0x08046D88)        = 0
resolvepath("/lib/libgen.so.1", "/lib/libgen.so.1", 1023) = 16
open("/lib/libgen.so.1", O_RDONLY)              = 4
mmap(0xFEF90000, 4096, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED, 4, 0) = 0xFEF90000
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFED70000
mmap(0x00010000, 94208, PROT_NONE, 
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFED50000
mmap(0xFED50000, 23341, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFED50000
mmap(0xFED66000, 1791, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 24576) = 0xFED66000
munmap(0xFED56000, 65536)                       = 0
memcntl(0xFED50000, 7256, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
xstat(2, "./libsocket.so.1", 0x08046D88)        Err#2 ENOENT
xstat(2, "/usr/local/lib/libsocket.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/X11R6/lib/libsocket.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/openwin/lib/libsocket.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/usr/dt/lib/libsocket.so.1", 0x08046D88) Err#2 ENOENT
xstat(2, "/lib/libsocket.so.1", 0x08046D88)     = 0

(.... loads and loads of stuff ....)

unlink("bla")                                   = 0
close(1)                                        = 0
_exit(0)


Well, it unlinks the inode, for sure. Also, both trusses' output differ from each other radically. It's a sign of different executables running on different machines, also almost for sure. Then I realised that something too strange had happened, maybe even invasion-related. Afterall, compared to the local rm executable, it was 10k smaller and linked to fewer libraries (according to ldd). Since security-wise it doesn't make sense, but it could happen -- definitely something involving quantum mechanics to let this happen -- I started checking security logs and stuff.

Until BLAM! I realised that few days before I swapped squid's unlinkd daemon -- which was pointing to /bin/rm -- to the real unlinkd daemon, compiled for Solaris. Well, I did it in the first place because squid's unlinkd daemon weren't shipped properly on Nexenta... ahhhh the hacks!

Since it was happening in both UFS and ZFS filesystems, it was no ZFS bug at first; and as I always have those nifty backups, it wasn't that worrisome. It surely felt strange to have a rm-less system, even with /bin/unlink working...
post comment

G3 goes Linux. [03 Jun 2008|05:10pm]
My Beige G3's back. I've not been using it for quite some time (like three months or so) so I decided to do an OS revamp on it. While running OS X 10.1 on it was plenty of fun, I really liked to see how Linux 2.6.25 was doing and what new toys it offered.

The first thing I have done was changing its processor's clock speed from 300 to 450 Mhz. The thing is, exactly one year ago, I switched its processor with an Blue&White G3 that was 450 Mhz, and never changed the onboard settings to match it. This is to say that the last year was short of weekends. And I changed those settings under an apparently endless sneezing session, since it was kinda cold at the apartment.







It was quite a challenge to load this computer with some PPC Linux love. First because I was still sneezing. Second, because this model of G3 uses an old version of OpenFirmware, and OpenFirmware per se isn't accessible via its usual forth-based interactive interface, it was time to install any distro on it to see how it would fare. First tried with old known Slackintosh, but I was already losing 30 minutes on it. Thus I decided to find my old Ubuntu Hoary CD (PPC version, of course) from my archives; after formatting the main disk for use with XFS, I remembered that I hadn't XFS on the stock Ubuntu kernel; not even in initrd image it was. So I reinstalled it using ext3.

Then I hit a real chicken-and-egg problem (and for those that know me personally I simply *love* chick-and-egg problems while dealing with computers): I needed a kernel and initrd that could boot this machine, as I didn't booted it yet after installing Ubuntu. Since OldWorld PPC machines (those older than an Bondi Blue iMac, id est, older than late 1998) hadn't OpenFirmware, it meant that I should bring another initrd image to the MacOS 9 partition -- the one supplied on CD isn't compatible to the one that's installed (a problem easily solvable if Slackintosh the kernel had support for OldWorld machines, by the way).







Fortunately, it was darn easy -- just had to reboot the installation CD and shortly after it recognized my hardware, I had an spare console (alt+f2, ya know) to make ye elde chroot. Once chrooting, I uploaded the installed kernel *and* initrd under /boot to another machine on the network. Rebooting on MacOS 9, I opened Internet Explorer 4 for Mac just to download it from the other host's ftp. After that, it was (almost) pure win.

Having it rebooted -- and properly configured using the Ubuntu method to do it -- it was time to compile 2.6.25. Downloaded it in less than a minute (ADSL was never so fast!) and started to "menuconfigure" it, if you know what I mean. Roughly an hour later, I went to see how things were going. Turns out that some PS3/Cell-specific asm instructions weren't doing good to the build (GCC 3.3 and its epoch-buddy binutils). After happily chopping them out, it genereated a very nice 6-megabyte vmlinux on /usr/src/linux. No initrds anymore, and a truly custom kernel done, old-style. Some things are better when module-compiled, so I did it also, and it didn't took long after.

Since the machine had two video cards, the onboard RagePro 128 and the Radeon 7500, I was ready for some Xinerama.








Unfortunately it works only in 8-bit-mode, no dri. But it works fast in both adapters. I use the Radeon on a stock StudioWorks 15" monitor (or at least I think it is 15"!) and the RagePro on another black-and-white 14" screen, for now. GNOME feels strange on it, but it works nicely. Maybe today or tomorrow fvwm will run on it.

I've tried to make one or both adapters work under 15/16/24 bits-of-colour, without success (only kernel panics). Don't know if it's just poorly-written drivers, poorly-spec-ed drivers, poor combination of gcc and binutils, or the fact that it was under XFree86 4.3. Don't care. Will see if Xorg is installable after all is done properly.

Formatting the other 120G harddrive that it had inside on XFS took less than a second, and minutes later, it was already rsyncin' nicely. Problem is, the onboard "gem" ethernet adapter doesn't like heavy transfers for hours after hours, so it shut itself down during yesterday's morning. After rebooting yesterday when I arrived at home, it has been working nicely (and quite heavily) since then.
4 comments|post comment

Creative process. [02 Jun 2008|08:51am]
I usually take my everyday shower at early morning, shortly after I wake up (generally it's up to 20 seconds after, as soon as I can find the door that leads out of my bedroom; luckily, the bathroom door is always the next one). In the first 3 minutes of rolling water I only have glimpses of disconnected thoughts. Shortly after I'm beginning to have the weirdest, sometimes trouble-solving, ideas.

That's the moment when I wished I had a waterproof notebook nearby. Or attached to the wall, or something like that.

For things like rewriting the X protocol and to make fat binaries of X-based executables, so they can have the same code addressing local rendering and remote rendering without losing performance I'd wish to write right away.

Perhaps I should buy a bathtub (or move to an apartment which has one) and write those ideas down. Meanwhile, when I get contact with the towel, this is exactly what happens (just that it isn't a dream, but a bath).
post comment

The "BANG" starts now. [30 May 2008|02:35pm]
If only they released something worthy as Windows 2000:


"What's a "wow moment"? It's that instant when you recognize that your life has changed—the moment you transform an idea that you once only dreamed of pursuing into something you have actually achieved," revealed Microsoft Chairman Bill Gates, before the operating system hit the shelves in January 2007, explaining "the Wow starts now" marketing campaign slogan.

Well, ex-police officer Ray Jackson from Columbia South Carolina, saw his life change for the worse after he struggled to get the computer to work following the installation of Windows Vista, reported FunTechTalk. Frustrated by the lack of responsiveness from the computer running Windows Vista, Jackson imagined pulling his gun out and settling all his problems with a few squeezes of the trigger.


Damn, that guy surely was inspired by Elvis.
post comment

pt_BR: Falta. [22 May 2008|10:00pm]
Acompanho o que o MarioAV diz/faz há alguns anos, desde o tempo da MacMania pré-1999 (como fã e assinante da revista), e é chato de constatar que falta gente assim em Pindorama. Mas enfim. Esse trecho revela tudo (os grifos são meus):


O que falta à blogosfera brasileira?

No atual estágio, a Web sofre com muita discussão irrelevante e ruidosa criada por pessoas interessadas em experimentar o meio em si mesmo ou exercitar as suas faculdades sociais. Isso acontece porque para a maioria a Web é em primeiro lugar um meio de entretenimento interativo, não uma ferramenta de conhecimento. Não é errado preferir usar a rede de uma forma ou da outra, mas os diversos sites refletem essa diversidade em sua linguagem. Não perceber e não respeitar o enfoque próprio do site cria uma ruptura. É como um estranho chegar e interromper repetidamente a sua conversa aos berros.
Como o afluxo de novas pessoas à rede em um dado instante é maior do que a quantidade de usuários experientes, nós vivemos num permanente estado de "deslumbramento da novidade" e de caos parcial. Seria bom os veteranos da rede incorporarem um papel civilizatório, como é necessário com toda e qualquer nova tecnologia. Não se trata de tutelar os novatos, mas apenas de contribuir pelo bom exemplo.
Quanto aos autores de blogs, a Web brasileira ainda está muito cheia de sites que vivem apenas de repercutir o que acabou de aparecer escrito em outros sites. Mas o que as pessoas que usam a Web como ferramenta de conhecimento desejam encontrar é conteúdo original, seja uma informação totalmente inesperada ou uma opinião provocativa. Com o tempo, a audiência tende a se concentrar em torno desses autores. Quem se limitar a repetir os outros irá se cansar e sair de cena.


Ou seja, falta conteúdo. O problema é antropológico.
post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]