Friday, October 26, 2012

Colocou na Internet, já é e sem "undo".




Uma amiga nossa postou isso no FB:


     IMPORTANTE...
     A todos meus contatos, PEÇO UM FAVOR: com as mudanças do Facebook,
agora todos ficam sabendo das nossas coisas, gente que nem está nos
nossos contatos, só porque um contato faz um "comentário" ou "curte"
algo nosso. Gentileza observar: aqui mesmo, acima a esquerda, posicione
o mouse sobre a minha foto , o meu avatar, (sem clicar). Espere até
aparecer uma janela e posicione o mouse sobre o icone "Amigos" (também
sem clicar), depois vá até "Configurações" e aí sim clique. Vai aparecer
uma lista: clique em "Comentários e Curtir" desmarcando essa opção.
Assim minhas atividades ficarão restritas aos meus amigos e familiares,
não se tornando domínio público. Se quiser copiar e colar no seu mural,
irá assegurar a sua privacidade.
     Obrigada a todos. (UMA BOA IDEIA)


é isso mesmo?
-----------------------------------

Certamente, os relacionamentos não são alterados na base de dados em função da configuração.

A configuração é um ajuste pessoal, que filtra a visualização da informação que você deseja ver, e que certamente não interfere na máquina de busca e associações das medias sociais.

Desativar uma opção pode garantir uma personalização da visualização, apenas.
Por que?
Imagine que a configuração pessoal afetasse o banco de dados, então uma vez desabilitada, não poderia ser novamente ativada, sem possível perda de informações.

Imagine que A é amigo de B, e B amigo de C.
Todos deixaram inicialmente suas configurações habilitas.
Oras, se B ao desabilitar alterasse a base de dados, então exigiria a sincronização desses dados entre A, B e C.
Certamente desapareceriam das telas de A e C informações, misteriosamente, por decorrência da ação de B.
Muitos casos ficariam estranhos.
Isso examinado nesse caso trivial é muito simples, mas a replicação recursiva por toda a malha de associações do banco de dados seria imprevisível e extremamente dispendiosa.
E quando falamos de banco de dados de medias sociais, é algo gigantesco, que qualquer DBA "começa a suar frio" só de pensar em perder a consistência do banco.

Portanto, é que nem cofrinho do tipo "porquinho inquebrável".
Colocou a moedinha ali, nunca mais!

Outro fator "chave" - o interesse econômico.
Por trás disso, existe o interesse comercial, porque a massa de dados é vendida (ou arrendada, alugada, seja lá como for... ) para operações de data warehousing, que extraem perfis e estatística do tipo que alimentam os sites, além da indústria de marketing, e toda a sorte de especulação de comportamento, rastreamento e tendências sociais.

É daí que vem o subsídio sustenta o caráter "free" da rede.


-----
Social Media Tracking
Rastreamento em Media Social

Estendendo o texto acima, sobre a possibilidade de um "undo" em medias sociais, ou seja desfazer algo enviado, segue abaixo, uma pesquisa realizada (embora já o saibamos de ouvir falar) sobre as informações colhidas por aplicativos "facebook" (e cia).


 

 Observando-a, poderemos entender melhor a questão.

A situação é ainda mais "complicada" porque o rastreamento é realizado por diversas alternativas.
A coleta de dados provenientes de fontes diversas é consolidada em pesquisas.

Havendo várias fontes alternativas, mesmo que um dado pudesse ser eventualmente apagado ou modificado, poderia ser reescrito.
Por que?
É o efeito colateral da replicação da informação.
Através dela e mediante a consolidação de dados, pode-se obter uma taxa de confiabilidade do dado que foi inserido ou a ainda aponta-se a diversidade de alternativas para aquele usuário.
Por exemplo, um mesmo usuário com vários e-mails ou endereços díspares, incoerentes, etc.

A replicação de fontes promove o enriquecimento multidimensional do data warehouse.
Ou seja, gradativamente, o conjunto de dados é enriquecido com novas informações que permitam gerar um novo contexto e que favoreçam a criação de uma dimensão extra no banco de dados.
Cada dimensão pode ser uma aspecto da sua vida...

Conclusão, até mesmo a singela "mentira" como forma de proteção pessoal fica cada vez mais frágil ou inócua.

Sugestões para reduzir sua exposição, lembre-se:

1. Qualquer via Internet é pública e sem volta (sem "undo").
    Pense muito bem antes de digitar.

2. Adote como regra não trafegar informações pessoais.
    Fique restrito àquelas exclusivamente necessárias ou já públicas de fato (seu e-mail, por exemplo).

3. O dado irrelevante de hoje, ou até mesmo inocente, pode ser muito relevante amanhã.
    Porque um novo contexto passa a fazer sentido para algo que não o tinha isoladamente.

4. Qualquer informação pode adquirir um contexto à medida que é somada a outra.
    Além das análises dimensionais de data warehouses temos que lembrar os recursos de análise oferecidos pela inteligência artificial (AI).
    Por exemplo, podemos realizar classificações utilizando redes kohonem, que podem até mesmo classificar eletrocardiogramas (ECG).
    Por curiosidade, veja o site:
   
http://www.pee.ufrj.br/teses/?Resumo=2000034001

5. Tudo que é de graça tem preço caro embutido de alguma forma e não declarado explicitamente, que talvez você não desejasse arcar.

6. Evite instalação de softwares gratuitos.
    Grande parte dos softwares que prestam serviços simples de áudio, vídeo, comunicação, recursos gráficos e etc. são grandes candidatos a vetores de informação social como forma de autosustentação econômica.
    Hardware hoje é barato.
    Se precisar usar software não confiável, eleja uma máquina só para isso.
    Reserve outra máquina para uso pessoal e privado apenas com o que for considerado seguro e necessário.

7. Utilize e pesquise ferramentas de segurança pagas e dê preferência a software pago de fonte segura.
    Lembre-se: nada trabalha de graça - não há milagre.

8. Criptografe o que for pessoal com entropia acima de 1024bits.
    E não mantenha a chave no mesmo ambiente...

Configuring Apache2 Virtual Host - Creating a working Directory

Depending on the apache2 version and environment, the configuration has some different details.

Below, you get  summarized procedures to install on Windows 7 and Debian 5.



WINDOWS 7

Edit:

$INSTALL_DIR\conf\httpd.conf

Usually at:
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf

and find:
    # Redirect permanent /foo http://localhost/bar
then add the following:       

        # mapping dev.php directory
        Alias /devphp "D:/work/dev/php"
       
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
       



See additional examples on debian section below.


DEBIAN 5

If a directory requires permission, such as $HOME (the user's home), then it's required to add the user to the apache2's data group.
Below you find three examples (yellow).



# adding a new user to apache2 data group:
 sudo adduser www-data user1
# checking:
 groups www-data
# edit the file:
 /etc/apache2/sites-available/default
# and add the following at the end but before the </VirtualHost> tag:

<VirtualHost *:80>
    ...
        # usual configuration on debian to share local files
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    # configuration for local development purpose without requiring to add users to apache2's www-data group
    Alias /dev "/home/dev"
  <Directory "/home/dev">
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      #Allow from all
      Allow from 127.0.0.0/255.0.0.0 ::1/128
      #DirectoryIndex index.html
 </Directory>

    # configuration for personal local development purpose requiring to add the user to apache2's www-data group
    Alias /devphp "/home/alsdias/work/dev/php"
  <Directory "/home/alsdias/work/dev/php">
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      #Allow from all
      Allow from 127.0.0.0/255.0.0.0 ::1/128
      #DirectoryIndex index.html
  </Directory>
</VirtualHost>
   
# restart service:
sudo /etc/init.d/apache2 restart


NOTE:

Notice the following directions.
They are important and are self-explained:

      #Allow from all
      Allow from 127.0.0.0/255.0.0.0 ::1/128
      #DirectoryIndex index.html



Sunday, October 21, 2012

maven references failure - workaround

Overview

This maven use case presents three alternatives to solve its dependencies when the usual method fails - maven update.

It was created from direct experience during a CXF web service project using eclipse and rampart library.

The alternatives shown are:

1. Upgrades to a newer version that probably has already been fixed, but solving some last issue manually.

2. Comments about the maven's exclusion element alternative, useful in cases of fewer occurrences.

3. Shows a solution when there are too many occurrences and the prior alternative comes to be time consuming.



In a CXF web service project requiring rampar 1.4 library, it was added the following dependencies:

<dependency>
  <groupId>org.apache.rampart</groupId>
  <artifactId>rampart-policy</artifactId>
  <version>1.4</version>
</dependency>

<dependency>
  <groupId>org.apache.rampart</groupId>
  <artifactId>rampart-core</artifactId>
  <version>1.4</version>
</dependency>

The first approach is to add the dependencies as usual.
After adding them and performing the respective update, it was generated a huge list of messages about missing dependencies - exactly 73 lines.

Here is a small sample of the error messages generated:

Description  Resource  Path  Location  Type
ArtifactDescriptorException: Failed to read artifact descriptor for bouncycastle:bcprov-jdk13:jar:132: ArtifactResolutionException: Failure to transfer bouncycastle:bcprov-jdk13:pom:132 from http://ws.zones.apache.org/repository2 was cached in the local repository, resolution will not be reattempted until the update interval of apache-ws-snapshots2 has elapsed or updates are forced. Original error: Could not transfer artifact bouncycastle:bcprov-jdk13:pom:132 from/to apache-ws-snapshots2 (http://ws.zones.apache.org/repository2): Connect times out  pom.xml  /SecureClient  line 1  Maven Dependency Problem
Missing artifact antlr:antlr:jar:2.7.7  pom.xml  /SecureClient  line 1  Maven Dependency Problem
Missing artifact aopalliance:aopalliance:jar:1.0  pom.xml  /SecureClient  line 1  Maven Dependency Problem
Missing artifact asm:asm:jar:3.3.1  pom.xml  /SecureClient  line 1  Maven Dependency Problem
...
...




If maven references fail downloading the respective jars (broken references) a workaround is to try another version, preferably a newer one.

Solution

I began switching the rampart version to a newer one:

<dependency>
    <groupId>org.apache.rampart</groupId>
    <artifactId>rampart-core</artifactId>
    <version>1.6.2</version>
</dependency>


but still failed due to one dependency : xalan 2.7.1 .
The message returned was "an invalid file".

The workaround was to complete the task manually.

The xalan dependency was downloaded from
http://mvnrepository.com/artifact/xalan/xalan/2.7.1
and the the new jar file was copied overwriting the older one.


How do we overwrite the older jar?

Copy the new jar to the local repository.



Where is the local repository?

To find out where is the local repository, edit:
 /home/$USER/.m2/settings.xml

and check the element:
<localRepository>${user.home}/work/dev/java/repository/mvn_repo</localRepository>


Alternatively, if using eclipse, check the preferences:
menu > windows > preferences > maven > user settings > local repository


How do we get the reference for a new version?

Go to maven repository.
There you get the snippet for the pom dependency and if necessary, you may download the jar file also.
Check it on the link above.


Suppose that switching to newer versions is not possible due to compatibility issues.
 

How to fix?

Checking the pom file on the local repository, I've noticed a huge list of dependencies created automatically by maven during the update at the first attempt.

A possible solution is to use exclusions.
For instance:

<dependency>
  ...
  <exclusions>
    <exclusion>
      <groupId>javax.jms</groupId>
      <artifactId>jms</artifactId>
    </exclusion>
  ...
  </exclusions>
</dependency>

Considering that I had a pom file containing more than 300 lines, dozens of dependencies, that procedure would be time consuming.
Not advisable, at all!

So I had to work on an alternative solution.
Instead of excluding explicitly, why not doing implicitly, and let the maven procedure and the compiler warn if something wrong goes on?

To do so, I downloaded the two jar files from  maven central repository :

rampart-core-1.4.jar
rampart-policy-1.4.jar


After it was added the rampart dependencies:

<dependency>
  <groupId>org.apache.rampart</groupId>
  <artifactId>rampart-policy</artifactId>
  <version>1.4</version>
</dependency>

<dependency>
  <groupId>org.apache.rampart</groupId>
  <artifactId>rampart-core</artifactId>
  <version>1.4</version>
</dependency>


Then, it was performed the manual installations using the following commands:

mvn install:install-file -Dfile=rampart-core-1.4.jar -DgroupId=org.apache.rampart  -DartifactId=rampart-policy -Dversion=1.4 -Dpackaging=jar
mvn install:install-file -Dfile=rampart-core-1.4.jar -DgroupId=org.apache.rampart  -DartifactId=rampart-core -Dversion=1.4 -Dpackaging=jar




In the code below, it's possible to notice the "rampart-policy-1.4.pom" file generated by the manual installation omitting the dependencies:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.rampart</groupId>
  <artifactId>rampart-policy</artifactId>
  <version>1.4</version>
  <description>POM was created from install:install-file</description>
</project>


Finally, the project was updated using maven > update dependencies, without no errors.

The final result with rampart dependency correctly assigned:



The successful build:


Saturday, October 20, 2012

Tip Section: The still valuable old stuff - consider it

Usually, we get the general idea that old stuff is useless or garbage.

For instance, if you need to understand in details the concepts of stubs and skeleton, messaging, transparent fail-over, a full description of ejb principles, etc., surely you'll find it on
Mastering Enterprise JavaBeans - Ed Roman.

It's about EJB2, but still a classic, cause the concepts are useful to understand many other technologies like jabber, JMS, EJB3, Web Services, etc.

A new book usually do not waist resources repeating in details full old stuff but still important and present on the base of the new one.
At most, it offers a summary about it.
Very reasonable.



Remember that the new lays on the old, and usually the new is a next step and rarely destroys the prior knowledge, but improves it, extending it.

Using SNV with subversive and Eclipse #2 - Resource unavailable/locked


If you get the message that an operation, like commit, update, etc, was not possible due to
"unavailable resource" or "locked resource", but the resource was unlocked and it's available,
and others things like that while performing a versioning task, do an outside test.
If you have another versioning control, like tortoise, test the repository repeating the same operations.
If successful, you can conclude that the problem comes from the eclipse's versioning environment.
This happens due to some plugins' malfunction. Go to the eclipse workspace directory where the 
".metadata" folder is. This directory keeps all the workspace configurations. Close eclipse.
The direct way, delete the ".metadata" directory. When you reopen eclipse, the personal configurations
were gone and you're gonna have to do them again. If you keep a backup of this ".metadata" directory, all you
have to do is to copy it.
Now, repeat the versioning operations again to make sure the problem is solved.

How to add a script on crontab - short steps


  Vim is the default editor of crontab.
  So, I'm gonna use it here.
 
  Create your script file - any editor, but using vim:
    vim clean_wtmpx.sh
 
  Add your command line - type 'i' to get into the insert mode and then these commands:
  #!/bin/sh
  cat /dev/null > /var/adm/wtmpx
 
  To save and close - hit "esc" to get out the insert mode and then type:
  :x
 
  The first line is used to indicate a shell script on bash. It's optional.
 
  Set permissions on the new file created:
  chmod 775 clean_wtmpx.sh
 
  Test you command before, executing it. Type on prompt:
  ./clean_wtmpx.sh
 
  Open the crontab on edit mode:
      crontab -e
 
  Add this line:
  20 22 * * * dir_path/clean_wtmpx.sh 2>> dir_path/crontab.lob
 
  To save and exit the crontab:
  esc
  :x
 
  Explaining the crontab's command line:
  dir_path is your path the "clean_wtmpx.sh" file.
  Everyday at 10:20 PM the script "dir_path/clean_wtmpx.sh" will run.
  If just in the case of some output is generated (for instance error messages) is saved on "crontab.log" file.
  Certainly, this is not the case of your command, so you can ignore the log file, setting like this:
 
  20 22 * * * dir_path/clean_wtmpx.sh
 
 
  Extra - short summary:
  To list what you have on crontab, type:
  contrab -l
 
  The crontab command line is divided in space delimited fields.
  The first 5 fields is related about time settting followed by a command field, using this format:
      minutes  hour  day_of_month month day_of_week   command
 
  Tip:
  Always perform a crontab's test, creating a fake line to start your command in the next one or two minutes in order to check it.

konqueror message: "cold not register with dcop"


If you get a message trying to open a file, usually a package like jar, tar, zip, restart konqueror as root and try again.



Privacidade na Media Social - Posso desfazer?


Uma amiga nossa postou isso no FB:


     IMPORTANTE...
     A todos meus contatos, PEÇO UM FAVOR: com as mudanças do Facebook,
agora todos ficam sabendo das nossas coisas, gente que nem está nos
nossos contatos, só porque um contato faz um "comentário" ou "curte"
algo nosso. Gentileza observar: aqui mesmo, acima a esquerda, posicione
o mouse sobre a minha foto , o meu avatar, (sem clicar). Espere até
aparecer uma janela e posicione o mouse sobre o icone "Amigos" (também
sem clicar), depois vá até "Configurações" e aí sim clique. Vai aparecer
uma lista: clique em "Comentários e Curtir" desmarcando essa opção.
Assim minhas atividades ficarão restritas aos meus amigos e familiares,
não se tornando domínio público. Se quiser copiar e colar no seu mural,
irá assegurar a sua privacidade.
     Obrigada a todos. (UMA BOA IDEIA)


é isso mesmo?
-----------------------------------

Certamente, os relacionamentos não são alterados na base de dados em função da configuração.
A configuração é um ajuste pessoal, que filtra a visualização da informação que você deseja ver, e que certamente não interfere na máquina de busca e associações das medias sociais.

Desativar uma opção pode garantir uma personalização da visualização, apenas.
Por que?
Imagine que a configuração pessoal afetasse o banco de dados, então uma vez desabilitada, não poderia ser novamente ativada, sem possível perda de informações.

Imagine que A é amigo de B, e B amigo de C.
Todos deixaram inicialmente suas configurações habilitas.
Oras, se B ao desabilitar alterasse a base de dados, então exigiria a sincronização desses dados entre A, B e C.
Certamente desapareceriam das telas de A e C informações, misteriosamente, por decorrência da ação de B.
Muitos casos ficariam estranhos.
Isso examinado nesse caso trivial é muito simples, mas a replicação recursiva por toda a malha de associações do banco de dados seria imprevisível e extremamente dispendiosa.
E quando falamos de banco de dados de medias sociais, é algo gigantesco, que qualquer DBA "começa a suar frio" só de pensar em perder a consistência do banco.

Portanto, é que nem cofrinho do tipo "porquinho inquebrável".
Colocou a moedinha ali, nunca mais!

Outro fator "chave" - o interesse econômico.
Por trás disso, existe o interesse comercial, porque a massa de dados é vendida (ou arrendada, alugada, seja lá como for... ) para operações de data warehousing, que extraem perfis e estatística do tipo que alimentam os sites, além da indústria de marketing, e toda a sorte de especulação de comportamento, rastreamento e tendências sociais.

É daí que vem o subsídio sustenta o caráter "free" da rede.

-----
Social Media Tracking
Rastreamento em Media Social



Pesquisa sobre facebook
http://www.zonealarm.com/blog/index.php/2012/10/data-hungry-apps



Estendendo o texto acima, sobre a possibilidade de um "undo" em medias sociais, ou seja desfazer algo enviado, segue abaixo, uma pesquisa realizada (embora já o saibamos de ouvir falar) sobre as informações colhidas por aplicativos "facebook" (e cia).

Observando-a, poderemos entender melhor a questão.


A situação é ainda mais "complicada" porque o rastreamento é realizado por diversas alternativas.
A coleta de dados provenientes de fontes diversas é consolidada em pesquisas.

Havendo várias fontes alternativas, mesmo que um dado pudesse ser eventualmente apagado ou modificado, poderia seria reescrito.
Por que?
É o efeito colateral da replicação da informação.
Através dela e mediante a consolidação de dados, pode-se obter uma taxa de confiabilidade do dado que foi inserido ou a ainda aponta a diversidade de alternativas para aquele usuário.
Por exemplo, um mesmo usuário com vários e-mails ou endereços díspares, incoerentes, etc.

A replicação de fontes promove o enriquecimento multidimensional do data warehouse.
Ou seja, cada vez mais forma-se um conjunto de dados que permite gerar um contexto que favoreça a criação de uma dimensão extra no banco de dados.
Cada dimensão pode ser uma aspecto da sua vida...

Conclusão, até mesmo a singela "mentira" como forma de proteção pessoal fica cada vez mais frágil ou inócua.

Sugestões para reduzir sua exposição, lembre-se:

1. Qualquer via Internet é pública e sem volta (sem "undo").
    Pense muito bem antes de digitar.

2. Adote como regra não trafegar informações pessoais.
    Fique restrito àquelas exclusivamente necessárias ou já públicas de fato (seu e-mail, por exemplo).

3. O dado irrelevante de hoje, ou até mesmo inocente, pode ser muito relevante amanhã.
    Porque um novo contexto passa a fazer sentido para algo que não o tinha isoladamente.

4. Qualquer informação pode adquirir um contexto à medida que é somada a outra.
    Além das análises dimensionais de data warehouses temos que lembrar os recursos de análise oferecidos pela inteligência artificial (AI).
    Por exemplo, podemos realizar classificações utilizando redes kohonem, que podem até mesmo classificar eletrocardiogramas (ECG).
    Por curiosidade, veja o site:
    http://www.pee.ufrj.br/teses/?Resumo=2000034001

5. Tudo que é de graça tem preço caro embutido de alguma forma e não declarado explicitamente, que talvez você não desejasse arcar.

6. Evite instalação de softwares gratuitos.
    Grande parte dos softwares que prestam serviços simples de áudio, vídeo, comunicação, recursos gráficos e etc. são grandes candidatos a vetores de informação social como forma de autosustentação econômica.
    Hardware hoje é barato.
    Se precisar usar software não confiável, eleja uma máquina só para isso.
    Reserve outra máquina para uso pessoal e privado apenas com o que for considerado seguro e necessário.

7. Utilize e pesquise ferramentas de segurança pagas e dê preferência a software pago de fonte segura.
    Lembre-se: nada trabalha de graça - não há milagre.

8. Criptografe o que for pessoal com entropia acima de 1024bits.
    E não mantenha a chave no mesmo ambiente...


Thursday, August 2, 2012

Migrating 32-bit applications to debian 6 (squeeze)


When I was migrating my environment from debian 5 (lenny), a 32 bit version, to debian 6 (64-bit), I got some issues.

Adobe reader failed to install completely.

The SciTE editor installation was successful, except that the integration with "lua" language did not work. After adding the configuration on /usr/share/scite/SciTEGlobal.properties, hitting F9 was useless.
I could compile using F5, but nothing else. So the integration was not complete.

Digging on Internet for some solution, I found a page at
http://wiki.soslug.org/wiki/install_adobe_reader_in_debian_squeeze_64_bit
which presents how to install adobe 32-bit on squeeze.

Extending the idea to SciTE, instead of installing it using "apt-get install" command,
I returned to the lenny installation, creating tar files of the 32-bit installation (no necessary compression), getting the following:

vmvd5_usr_bin_scite.tar  (from: /usr/bin/scite)
vmvd5_usr_share_man_man1_scite.1.gz.tar   (from: /usr/share/man/man1/scite.1.gz.tar)
vmvd5_usr_share_scite.tar   (from: /usr/share/scite)



You can check the places of your installation using the command:
whereis scite


After that, returning to squeeze, I've removed the prior 64-bit installation:
sudo apt-get remove scite

sudo rm -Rf /usr/share/scite   (the apt command didn't remove the INSTALL_DIR completly)
sudo rm /usr/bin/scite   

followed by the 32-bit library installation:
sudo apt-get install ia32-libs
sudo apt-get install ia32-libs-gtk



Then, I deflated the tar files:
tar xvf vmvd5_usr_bin_scite.tar tar xvf vmvd5_usr_share_man_man1_scite.1.gz.tar tar xvf vmvd5_usr_share_scite.tar

copying the content to the respective original places.


Finally, I started the SciTE as usual, editing the SciTEGlobal.properties and adding the configuration for F9 shortcut (see snippet below).
Restarted the scite, and hit the F9 button...
Yesss, there you are!! Success!


SciTE is a great choice for those looking cross-platform and lightweight editor.
I've been using the 32-bit version since 2009, without any problem.
Have fun!





NOTE:
The SciTE appearance comes different due to the 32-bit gtk library, but the functional result was perfect.



Example - snippet from SciTEGlobal.properties configuration to test lua integration using F9 shortcut: # Loads Lua script
# alsdias, from: studies/soft/scite/stuff/lua-users wiki_ Using Lua With Scite.htm
command.name.11.*=Load Lua
command.11.*=dofile $(FilePath)
command.subsystem.11.*=3
command.mode.11.*=savebefore:yes
command.shortcut.11.*=F9



Tuesday, November 29, 2011

WARN AjaxContext:358 - Current Skin is not found


org.ajax4jsf.framework.skin.SkinNotFoundException


Comment the ajax's SKIN configuration on web.xml file, or set it to DEFAULT.





Sunday, November 20, 2011

Instalando o Windows Ultimate no Vaio



Motivação
Liberar recursos - disponibilizar mais memória e CPU para as aplicações de trabalho.

Objetivo
Desempenho (rapidez), confiabilidade e maior número de aplicativos de ambiente de trabalho disponíveis concomitantemente.

Estratégia
Trocar o ambiente original do fabricante, por outro específico e otimizado para as necessidades profissionais, utilizando uma versão de Windows com melhor administração de recursos - Ultimate.

Procedimento resumido
Utilizar os drivers originalmente já instalados no sistema original.
Método: criar um DVD com a cópia do diretório "C:\ProgramData" e utilizá-lo para atualizar os drivers que apresentarem problema de instalação.

Resultado Obtido
No final do texto há uma comparação entre a situação inicial e a final, no item "Resultados Observados ao Longo do Uso".


Acima, você tem um resumo rápido da situação.

Se desejar detalhamento, poderá encontrar abaixo no item
"Instalando o Ultimate a Partir dos Drivers Pré-Instalados Originalmente"
(em verde claro).



O preâmbulo a seguir visa passar um contexto de mercado que poderia ser mudado.


Afinal, nós consumidores quando formamos opinião, mudamos muita coisa!




Máquinas Vaio vêm geralmente com Windows Home Premium instalado e customizado (Vaio Care).
Seria muito mais prático apenas utilizar o sistema já instalado de fábrica, com tudo acertadinho, pronto apenas para usar.

Então por que não usar o sistema original?

Eu venho usando notebooks Vaio há mais de três anos, exclusivamente para fins profissionais na área de TI.
E tenho sempre os mesmos problemas: pesada, lenta e consumindo muita memória e CPU em coisas que não me são úteis.

O hardware é muito bom, e se não o fosse, os dois anos de garantia dados às máquinas compradas no Brasil, comprometeriam a lucratividade do fabricante.

É por essa razão que compro Vaio.
Garantia de 2 anos e um hardware de qualidade confiável.

E tem dado certo, porém o sistema operacional que a empresa configura busca atender às necessidades populares de consumo.

Compreensível, porém esse tipo de configuração não é adequada para usuários que "trabalham pesado", exigindo intensamente os recursos da máquina com seus aplicativos.
Esse tipo de profissional necessita de cada mega de memória e cada clock de CPU disponíveis para dar conta de ambientes mais sofisticados, tais como outros sistemas operacionais rodando em máquinas virtuais, redes virtuais e aplicativos de desenvolvimentos pesados que consomem vorazmente recursos da máquina,  concomitante a muitos outros aplicativos auxiliares de trabalho que precisam estar lá, abertos à sua disposição, a exemplo de geradores de diagramas UML, interfaces com SGDB, frameworks, etc.

Veja ao final do texto, porque valeu a pena tanto esforço para trocar do sistema "Windows Home Premium - Vaio Care" original para o Windows Ultimate.

A primeira tentativa, após fazer um backup do sistema operacional original, foi frustrante.
Busquei o suporte Vaio por email, que remeteu para o atendimento telefônico.
Embora o profissional de suporte tenha se empenhado em oferecer o procedimento alternativo, fez questão de lembrar que a Vaio não dá suporte oficial para um  upgrade de sistema.

É isso mesmo!
A Vaio não oferece garantia de suporte a quem precisa de um upgrade do próprio Windows que vem instalado na máquina!!!
Ao invés disso, o que oferecem é algum procedimento complementar para "tentar" ajudá-lo a resolver alguns problemas.




Instalando o Ultimate a Partir dos Drivers Pré-Instalados Originalmente

Ao instalar um novo sistema operacional, o primeiro grande desafio é o "reconhecimento de drivers".

O Windows 7 Ultimate, quando instalado no notebook Vaio VPCF135FB (i5/6GB RAM), não reconheceu controlador de rede, barramento pci2, PM55 Express Chipset LPC Interface Controller e Barramento PCI 3."

Enviei email ao suporte Vaio, e obtendo resposta busquei seguir o procedimento indicado por eles (em anexo, abaixo), mas o sistema tornava-se instável logo ficando sem condições operacionais e obrigando uma nova instalação.

Isso ocorria após a tentativa de instalação de drivers da placa-mãe, seguindo a orientação recebida, cujo fragmento segue abaixo:

"baixar todos os drivers referentes à placa mãe (motherboard):
Original - Intel® 5 Series 6 Port SATA AHCI Controller Driver
Original - Intel®Turbo Boost Technology Driver
Original - Intel® Chipset Driver"


O suporte telefônico sugeriu um procedimento alternativo, que também anexei ao final, pois pode ser útil a alguém.

Diante da situação, estava sem solução, pois os procedimentos sugeridos foram ineficazes.

Observando os modelos Vaio que oferecem opção para Home e Ultimate, a política do fabricante e etc. cheguei à conclusão que certamente eles evitariam aumentar os custos criando coisas diferentes desnecessariamente.

Verificando a documentação da Microsoft sobre os dois sistemas (Premium e Ultimate), achei que valia considerar a compatibilidade de drivers entre eles.

O problema não estaria "no que fazer", mas "em como fazer", ou seja, os drivers poderiam ser os mesmos, mas dependeriam de como fossem instalados.

Com base nisso, criei um DVD com a cópia integral e original do conteúdo do diretório "C:\ProgramData" da instalação original do Windows Home Premium.

Não precisaria tudo isso, mas DVD é barato e tempo é caro. "Ficar caçando drivers toma tempo"...

Ao instalar o Ultimate, verifique se a sua cópia é para upgrade ou instalação full (completa).


Se for para upgrade, instale o Ultimate sem formatar a partição (ou disco, se for o caso).
Se for não for para upgrade, FORMATE a partição e então instale o Ultimate.
Por que?
Se não atentar para esses detalhes, você terá problema com a validação do Windows!
Só por isso, porque o procedimento descrito aqui foi testado nos dois casos, e obteve sucesso em ambos, reconhecendo todos os drivers.


Após a instalação do Ultimate, vá para o gerenciador de dispositivos e verifique quais os dispositivos (devices) estão exigindo cuidados - todos aqueles com "warn", um ícone amarelo.
Aqui vai uma dica importante: comece pela ordem de importância de um driver para o sistema.
Ou seja: placa-mãe e depois periféricos.
Deixe o USB e o supérfluo por último, quando o principal já estiver funcionando.

Clique no driver com problema e selecione a opção "atualizar driver".
Se desejar, pode acessar de outras maneira, o que importa é chegar à janela onde você vai digitar o caminho onde se encontra o driver para o dispositivo (device).
Basta apontar para o DVD que você gerou no passo anterior.
Demora um pouquinho, mas se retornar mensagem de sucesso, tudo bem! Resolvido.
Se não obtiver sucesso, continue repetindo para todos os outros restantes, sem se importar com o insucesso anterior.
Muitas vezes, a solução de um driver viabiliza a solução de outro.

Reinicie a máquina.

Repita o procedimento mais uma vez, se ainda houver algum dispositivo ainda com problema.


Se persistir, tudo bem, há solução.
Você utilizará para esses casos o executável respectivo ao driver, cujo download dever ser feito do site da Vaio, de acordo com o seu modelo:
http:/esupport.sony.com/BR
ou
http:/esupport.sony.com/US

Execute o aplicativo normalmente, e vá seguindo a orientação do instalador.

No meu caso foi suficiente e todos os drivers instalaram com sucesso, sendo que apenas o driver de USB exigiu executar o aplicativo específico.

Se no seu caso você tiver problemas ao executar a aplicação de instalação de driver da Vaio, leia o segundo procedimento, aqui anexado ao final - "Procedimento de Instalação Sugerido Pelo Suporte Telefônico".
Ali, descreve como alterar as propriedades do aplicativo para torná-lo a executar.
Utilizei esse procedimento em uma das tentativas anteriores com sucesso em alguns drivers, mas não em todos.

Neste procedimento que aqui descrevo, não foi necessário.


Boa sorte!
Porque sempre precisamos... : )


NOTA:

Os procedimentos sugeridos pela Vaio foram aqui transcritos com a intenção de facilitar soluções a quem precise.

Aproveito a oportunidade para agradecer o empenho do suporte da Vaio na tentativa da solução do problema.



Procedimento de Instalação Sugerido Pelo Suporte via email

Caso o modelo de seu VAIO seja o VPCF135FB, favor acessar o link:

http://esupport.sony.com/BR/perl/swu-list.pl?Change_Template=1&session_id=464d4ef4f72e819a497c7bd87c090ab2&mdl=VPCF135FB

e baixar todos os drivers referentes à placa mãe (motherboard):

Original - Intel® 5 Series 6 Port SATA AHCI Controller Driver
Original - Intel®Turbo Boost Technology Driver
Original - Intel® Chipset Driver

Para o controlador de rede, é necessário fazer o download do driver Original - Marvell® Yukon® 88E8057 PCI-E Gigabit Ethernet Controller Driver, encontrado na opção Network.

Para que os drivers funcionem corretamente, é necessário realizar o seguinte procedimento:

1 - Ao fazer o download do arquivo salve-o na sua área de trabalho para um fácil acesso. Após o download ter sido concluído peço, que faça uma instalação normalmente, começando com um clique duplo sobre o arquivo.
2 - Uma mensagem aparece no final da instalação dizendo que o programa pode não ter sido instalado corretamente.
3 - Quando isso acontecer, sempre escolha a opção: reinstalar usando as configurações recomendadas, e faça uma nova instalação.
4 - Ao final pode dizer ou não que o driver apenas roda em Windows Vista, aparecendo ou não clique no arquivo do driver com o botão direito do mouse e vá em Propriedades.
5 - Selecione a aba Compatibilidade e vá no botão Alterar as Configurações de Todos Usuários e na nova janela que abrir desmarcar a opção do modo de compatibilidade, independente da opção selecionada abaixo (ficará assim com tudo desmarcado).
6 - Clique em Aplicar, Ok e Ok de novo e reinstale o driver. Feito isso após a instalação não haverá nenhuma mensagem de erro, basta reiniciar o notebook e o driver estará instalado.

Após, habilite a exibição de arquivos, pastas e unidades ocultas. Em qualquer janela do Windows Explorer em primeiro plano, aperte a tecla ALT, clique em FERRAMENTAS > OPÇÕES DE PASTA, clique na aba MODOS DE EXIBIÇÃO e marque a opção MOSTRAR ARQUIVOS, PASTAS E UNIDADES OCULTAS;
2 - Instale os drivers dos dispositivos pendentes (como descrito acima).
3 - Abra o gerenciador de dispositivos: "Iniciar > Computador (clique com o botão direito)> Gerenciar";
4 - Clique com o botão direito sobre o driver com um ponto de Exclamação amarelo e vá em "Atualizar Driver";
5 - Selecione a opção "Procurar Software De Driver No Computador" ;
6 - Faça a busca do driver dentro da pasta "C:\USERS\**nome da conta do usuário**\APPDATA\LOCAL\TEMP";
7 - Clique em "Avançar" e, após a instalação do driver, clique em concluir e reinicie o computador se for solicitado.

Lembrando que o notebook VPCF135FB foi projetado para operar com o Microsoft® Windows® 7 Home Premium 64-bit e alguns drivers podem não ser reconhecidos e ou não funcionar corretamente, pelo fato de o sistema operacional não ser o original instalado no VAIO.

Caso tenha outras dúvidas ou problemas de suporte técnico, por favor entre em contato conosco. Será um prazer ajudar.
Obrigado por escolher a Sony.

Para quaisquer futuras solicitações de suporte técnico, por favor, não deixe de visitar:

http://esupport.sony.com/BR

Atenciosamente,


Procedimento de Instalação Sugerido Pelo Suporte Telefônico

1. Habilitar a visualização dos arquivos ocutos em painel de controle, opções das pastas.
2. Antes de executar o driver, abrir suas propriedades, tab compatibilidade, em Modo de Compatibilidade assinalar
Executar este programa...
escolhendo a opção Windows XP Service Pack 2.
Em "Nível de Previlégio" assinalar "executar como administrador".
3. Depois de instalar os drivers - são 3, consulte a lista de drivers ou observe os títulos à medida que os intala,
vá para o painel de controle, gerenciador de dispositivos, selecione o primeiro nó (root), que tem o nome da máquina,
e no menu ação, escolha "Verificar se há alteração de hardware".
Nota: o suporte assinalou como principais os seguintes drivers:
MRDWLL002253080042
SOAOTH-00228371-0042.EXE4. Se o dispositivo ainda apresentar incompatibilidade, informando que o driver não foi instalado com êxito,
então, click sobre o device com problema, e selecione a opção de contexto (botão direito do mouse) "Atualizar driver"..
Vai apresentar duas opções, escolha aquela que permita indicar o caminho o devemos encontrar o driver adequado.
O driver ao ser executado na etapa anterior, gravou em um pasta os arquivos necessários.
Esta pasta fica no diretório do usuário (C:\Users ou C:\Usuário) no diretório appData\local\temp.
É este caminho que deve ser indicado.
5. Não obtendo sucesso, pode-se procurar por drivers adicionais específicos para o Windows Ultimate de outros notebooks equivalentes.
Um dica passada pelo suporte é procurar por:
VPCCS360A (not found at 08/15/11 12:58:18)
E escolher a opção do Ultimate.
O suporte está utilizando os drivers desta máquina para solucionar este tipo de problema.
6. O suporte deixa claro que a Sony não oferece solução para viabilizar todas as funcionalidades originais quando uma instalação diferente
daquela oferecida pela fábrica é instalada no notebook. Segundo o suporte, consegue-se a maioria delas, mas depende da máquina, pois
algumas vezes o mesmo procedimento funciona ou não.
7. Para DRIVES DE FUNCAO, buscar por 's'


Por que vale a pena tanto esforço para trocar do sistema "Windows-Vaio" original para o Windows Ultimate.

Bem, se você é um usuário que "pega pesado", acho que vale a pena.
Não importa se você usa sua máquina para jogos ou programar.
Em qualquer caso, sempre desejamos desempenho!
Eliminando o desnecessário, haverá mais desempenho e mais recurso disponível.
Aqui vão alguns fatos.

NOTA:


Eu penso que seria uma boa sugestão para a Vaio, ou outro fabricante, que os recursos pudessem ser ativados ou desativados através de uma interface visual simples.
Isso amenizaria o problema onde a diferença de fins exige que cada uma possa escolher o que é melhor para si mesmo, sem ter que compartilhar coisas desnecessárias, ou gastar um bom tempo para obter isso por meios próprios.





Resultados Observados ao Longo do Uso


Memória disponível total = 6GB
CPU = Intel i5

Instalação original do Windows 7 Home Premium - Vaio Care

Uso da memória ao iniciar o sistema (%) = 33 a 51
uso da memória ao utilizar os aplicativos de trabalho, incluindo máquina virtual (%) = 35-98 (Nota: a máquina "congelava" ao atingir valor superior a 98% do uso da memória)

Constantes travamentos em virtude de processos aguardando disponibilidade de CPU (ou seja, máquina mais lenta) ou em virtude de "swap" de memória, paginação e limpeza(memória modificada para "em espera").

Conclusão:
Inadequada para o uso a que se destinava.


Instalação original do Windows 7 Home Premium da Vaio após limpeza

Eliminei muitos aplicativos da instalação original da Vaio com o propósito de liberar recursos e bloqueie outros tantos (msconfig, e etc.)
Mantive tudo o mais sem alterar.

Uso da memória ao iniciar o sistema (%) = 19 a 36

Uso da memória ao utilizar os aplicativos de trabalho, incluindo máquina virtual (%) = 21-90 (Nota: valores superiores a 85% promovem constantes swaps de memória, travando a máquina)

Travamentos regulares devido a "swap" de memória, paginação e limpeza(memória modificada para "em espera"), principalmente se o uso de memória ficar superior a 70%, em virtude de "swap" de memória e limpeza (o led de HD fica acesso e a máquina super lenta)

Conclusão:
Melhorou bastante, mas ainda causava lentidão nos trabalhos diantes de constantes travamentos regulares.
A troca de ambientes, entre máquina virtual e hospedeira causa swaps intensos após longos períodos em que se utiliza apenas uma delas.


Instação do Windows 7 Ultimate original com todos os updates até SP1

Uso da memória ao iniciar o sistema (%) = 15 a 21

Uso da memória ao iniciar os aplicativos de trabalho, incluindo máquina virtual (%) = 49-61

Travamentos ocasionais em virtude de "swap" de memória, paginação e limpeza(memória modificada para "em espera").



Conclusão:


O Windows 7 Ultimate, instalado apenas com o básico, apresentou-se um ambiente de trabalho melhor que os ambiente anteriores, embora ainda longe do desejado, demandando quantidade consideravelmente menor de recursos, permitindo utilizar máquina virtual com todas as ferramentas de trabalho em execução concomitantemente, resultando em uso médio de memória inferior a 2/3 da capacidade total.

A troca de ambientes entre máquina virtual e hospedeira, após algum tempo de uso de apenas uma delas, causa um ou dois swaps intensos inicialmente, e depois estabiliza, sem ocorrências posteriores relevantes.

Ambos ambientes, tanto o da máquina hospedeira, como aqueles nas máquinas virtuais (Linux/Windows/Solaris), trabalham concomitantemente, permitindo alternar entre eles, com alguns swaps de memória.


Essas características de um ambiente suportando máquina virtual são comuns a qualquer dos ambientes testados, porém ficam agravadas proporcionalmente à utilização dos recursos disponíveis, ou seja, os períodos de indisponibilidade diminuem com maior disponibilidade de memória e CPU, como esperado, portanto torna-se fundamental preservá-los para o que mais importa.





Installing Windows 7 Ultimate on Vaio




or...
UPGRADING VAIO's WINDOWS HOME PREMIUM TO WINDOWS ULTIMATE

This procedure is a summary of the original text in portuguese, which contains the context and details.

When installing a new operating system, one of the challenges is the drivers' setup.
Here, I tell you a fast and easy alternative from my direct experience.

Suppose that you desire to upgrade the original Windows, usually Home Premium, to Ultimate, or yet install the Ultimate from scratch.
Anyway, you may get this situation: opening the device manager you get many warnings telling you that some drivers are not working properly.
How to fix this?

Burn a DVD with the whole content of C:\ProgramData directory from you original installation.
The one that comes with your notebook.
Certainly you've done an image, or backup. Restore it on another partition and burn the DVD.

Note:
if your Ultimate is an upgrade license, install the Ultimate without formatting the original partition, otherwise, if full, format it.
Why?
It happens that if you ignore this detail, you may have problem with your windows activation.

Sometimes you can have the right drive.
The point is not about what you have, but how you handle it.

Once the installation is complete, go to the device manager and check the devices with warnings (yellow icon), indicating that they are not properly installed.
Right click over it, and choose "update driver" option.
Certainly, you can get this by many ways, but what matters is to get the panel where you can point the directory from which the driver is supposed to be found.
Point to the DVD that you burnt, on the root, or top (ProgramData folder).
Just click to go.
Check the return.
If successful, go to the next.
If not, don't worry, go to the next anyway.

IMPORTANT TIP:
Begin with the most important drivers - first motherboard's.

After you've finished, restart the system.
Check again the device drivers.
Repeat the procedure one more time over the remaining ones, that still have warnings.
If still unsuccessful, download from Vaio site the respective executables to install the defective drivers.

The point is that sometimes one driver installation may depend on another.
If you were successful with the main drivers (motherboard's), you'll have a good probability to fulfill you task with the remaining ones, using the executables.

I tried using just the downloaded executables, strictly, but It didn't work.
In my case, motherboard did not install from the executables.
And without motherboard working, the system got instable, and the others failed too.

The procedure shown here, using the stuff from the original installation was successful for all defective drivers, except the USB, which I used its executable.

If you get problem running the executable, try to change its properties.
Got to the compatibility tab, switch to execute as administrator, and check to use "compatibility mode". Try first Windows XP(service pack 2),
according to the Vaio's direction about a notebook with Intel i5.


This procedure, using the original stuff, was very successful for me, when the "usual one" failed.

Good luck.



Sunday, October 30, 2011

JUnit exception: java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

Problem

Although having the junit.jar on a JEE project, when running the junit test class, the following exception is generated:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

Solution


Goto http://www.jarfinder.com/ 


On the class search tab, search for the missing class shown on the stack trace output, typing:


org.hamcrest



On the output list it's shown newer versions.
Choose one, for instance junit-4.4.jar and download it using the  jar search tab beside the class search tab.

Switch the older version of the jar file on the project by the newer one.
To check, refresh your project, rebuild if necessary.
On the junit class file, type part of the import statement to activate the autocomplete. For instance:

import org.hamc

At this point, if using netbeans or eclipse, the autocomplete will show the options.
If the options shown are respective to the missing class, the problem is solved and you're ready to run the junit class.

The same procedure can be used for such other problems.



eclipse: java: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" or Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

  >PROBLEM Using Eclipse, you try to run a simple logging test using "org.slf4j.Logger" like the sample below: package Test; im...