Monday, November 28, 2005

MySQL case sensitivity for table and column names

1 comments
Quite basic tip, but I had a hard time making Tomcat work with a database that had a table created with a different case in another database. Unlike PostgreSQL and other databases, MySQL is case sensitive for table and column names on Linux/Unix, but case insensitive on Windows. If you have a datasource realm defined for a particular table, make sure the case for its name and its column names match how it was created in the database.

I found a "rule" for SQL naming suggested by Joe Celko: "keywords in ALL CAPS, table names in LeadingCaps, and column names in all_lowercase_with_underscores" (from an article in LinuxJournal).

Sunday, November 20, 2005

Roberto Mangabeira Unger: Pôr fim ao governo Lula

0 comments
Na Folha de São Paulo do dia 15/11/2005:

http://www1.folha.uol.com.br/fsp/opiniao/fz1511200506.htm

ROBERTO MANGABEIRA UNGER

Pôr fim ao governo Lula

Afirmo que o governo Lula é o mais corrupto de nossa história nacional. Corrupção tanto mais nefasta por servir à compra de congressistas, à politização da Polícia Federal e das agências reguladoras, ao achincalhamento dos partidos políticos e à tentativa de dobrar qualquer instituição do Estado capaz de se contrapor a seus desmandos.
Afirmo ser obrigação do Congresso Nacional declarar prontamente o impedimento do presidente. As provas acumuladas de seu envolvimento em crimes de responsabilidade podem ainda não bastar para assegurar sua condenação em juízo. Já são, porém, mais do que suficientes para atender ao critério constitucional do impedimento. Desde o primeiro dia de seu mandato o presidente desrespeitou as instituições republicanas. Imiscuiu-se, e deixou que seus mais próximos se imiscuíssem, em disputas e negócios privados. E comandou, com um olho fechado e outro aberto, um aparato político que trocou dinheiro por poder e poder por dinheiro e que depois tentou comprar, com a liberação de recursos orçamentários, apoio para interromper a investigação de seus abusos.
Afirmo que a aproximação do fim de seu mandato não é motivo para deixar de declarar o impedimento do presidente, dados a gravidade dos crimes de responsabilidade que ele cometeu e o perigo de que a repetição desses crimes contamine a eleição vindoura. Quem diz que só aos eleitores cabe julgar não compreende as premissas do presidencialismo e não leva a Constituição a sério.
Afirmo que descumpririam seu juramento constitucional e demonstrariam deslealdade para com a República os mandatários que, em nome de lealdade ao presidente, deixassem de exigir seu impedimento. No regime republicano a lealdade às leis se sobrepõe à lealdade aos homens.
Afirmo que o governo Lula fraudou a vontade dos brasileiros ao radicalizar o projeto que foi eleito para substituir, ameaçando a democracia com o veneno do cinismo. Ao transformar o Brasil no país continental em desenvolvimento que menos cresce, esse projeto impôs mediocridade aos que querem pujança.
Afirmo que o presidente, avesso ao trabalho e ao estudo, desatento aos negócios do Estado, fugidio de tudo o que lhe traga dificuldade ou dissabor e orgulhoso de sua própria ignorância, mostrou-se inapto para o cargo sagrado que o povo brasileiro lhe confiou.
Afirmo que a oposição praticada pelo PSDB é impostura. Acumpliciados nos mesmos crimes e aderentes ao mesmo projeto, o PT e o PSDB são hoje as duas cabeças do mesmo monstro que sufoca o Brasil. As duas cabeças precisam ser esmagadas juntas.
Afirmo que as bases sociais do governo Lula são os rentistas, a quem se transferem os recursos pilhados do trabalho e da produção, e os desesperados, de quem se aproveitam, cruelmente, a subjugação econômica e a desinformação política. E que seu inimigo principal são as classes médias, de cuja capacidade para esclarecer a massa popular depende, mais do que nunca, o futuro da República.
Afirmo que a repetição perseverante dessas verdades em todo o país acabará por acender, nos corações dos brasileiros, uma chama que reduzirá a cinzas um sistema que hoje se julga intocável e perpétuo.
Afirmo que, nesse 15 de novembro, o dever de todos os cidadãos é negar o direito de presidir as comemorações da proclamação da República aos que corromperam e esvaziaram as instituições republicanas.

Friday, November 18, 2005

hal not working?

0 comments
Check if you are not mounting something in /sys/bus/usb. Running hald from the command-line will give a feeling about the possible error. I noticed that my fstab had the following line:

none /sys/bus/usb usbfs defaults 0 0

Then hald was unable to read /sys/bus/usb/devices/ and /sys/bus/usb/drivers. After I changed it, everything started working and the icons for the devices showed up in the KDE desktop :-)

Finally I will be able to use a USB Drive in Linux as it is used in Windows systems.

Wednesday, November 16, 2005

Linux: Randomization of Stack Pointer

0 comments
A very interesting feature in Linux kernel to avoid buffer overflows. The stack pointer is randomized instead of being constantly the upper user address space (usually 3Gb, or 0xc0000000).

Sunday, November 13, 2005

Partition Magic NTFS error 1601

6 comments
For those of you who may be facing NTFS critical error 1601 when using Partition Magic, check if the filesystem ID in the partition is not set to FAT32. After I booted with Linux (and even repartioned with ntfsresize), I noticed that the filesystem type was wrong. After I changed it to ID 07 (NTFS), Partition Magic worked perfectly for the partition resize.

Concerning NTFS resize, a very good option is NTFSResize. Currently it resizes fragmented filesystems and it is very stable. The only "problem" is that you still must delete and recreate the partition with the correct size. By recreating the partition, you don't lose your data, only the partition table is changed. This is a work that we are not willing to do, that is why an application like Partition Magic or QTParted is very suitable for these needs.

A good option for this sort of operation is RIP (Recovery is Possible). It is a 26Mb CD image that has most of the tools you will need to recover your system. Knoppix is also a good option, but sometimes it is too much (650Mb CD) for you that only need to edit your partition table or do something similar. (In particular when you want to do it faster).

Friday, November 11, 2005

CEO and Arts

0 comments
From FastCompany magazine:

"All arts are essentially entrepreneurial."
-Bruce Payne , Professor, Duke University

"CEOs are made, not born."
-Patrick C. Kelly , CEO, Physician Sales and Service

Friday, November 04, 2005

Another Hibernate bug: subqueries with Criteria API

0 comments
First of all, a ClassCastException. But I was lucky that someone also had this problem and created a patch to solve this problem. Check it here at Hibernate JIRA Issue.

I even made a contribution updating the patch to the latest Hibernate version (3.1rc2). Fortunately compiling Hibernate is quite fast.

Even with this patch applied, I still couldn't make my subqueries to work. A entry in the Hibernate Forum would mention another bug, but this had a workaround (and I didn't have to recompile Hibernate once again :-).

Hibernate Criteria API: createAlias() means no outer join

1 comments
With Criteria API, we are unable to create an alias that keeps the desired outer join. Therefore, for a case where you need all the entries that have a null object or a particular value for a joined value for this object (when it's not null, of course), you must use the HQL, as you can see below:

Forum

Issue

That breaks my infra-structure for a multi-criteria search where one of the search criteria would imply a condition like the one mentioned in the links.

Wednesday, November 02, 2005

JSTL and Expression Language: get an entry from a map whose key is integer?

1 comments
I use JSTL and expression language (EL) a lot to make my life simpler when creating the JSPs for data presentation. However, I got to a problem that seems to be a bug in expression language (design and/or implementation). Simply, I can't an entry from a map (hashmap) whose key is an Integer object. Just like a person reported here on the taglibs-user mailing list.

If someone knows a way to do that other than adding the integer key to the page context and accessing it in the expression, please let me know :-)