tag:blogger.com,1999:blog-78881538836103329642024-03-05T08:02:07.636-03:00Java, Linux e VatapáPorque tem mais do que acarajé e abará na Bahia.Mario Jorgehttp://www.blogger.com/profile/17699537733932995535noreply@blogger.comBlogger156125tag:blogger.com,1999:blog-7888153883610332964.post-80452242789980383502014-02-28T12:05:00.002-03:002014-02-28T22:12:29.902-03:00Usando o chakra linux: instalando eclipse e outros do pacotes extra.Depois de muito tempo sem postar aqui (muitos posts de blogs começam com esse texto, mas é verdade) resolvi recomeçar.
Estou testando o chakra linux (<a href="http://www.chakra-project.org/" target="_blak">www.chakra-project.org</a>), uma distribuição inicialmente baseada no veloz e spartano ArchLinux, que agora já caminha com as próprias pernas. O chakra utiliza o estilo <a href="http://en.wikipedia.org/wiki/Rolling_release" target="_blak">semi-rolling release</a>, ou seja, a base do so mantém-se estática e estável enquanto as aplicações evoluem. Ah, não posso esquecer de dizer que essa distro me foi recomendada pelo professor <a href="http://buscatextual.cnpq.br/buscatextual/visualizacv.do?metodo=apresentar&id=K4768539A8" target="_blank">Sandro</a>, um dos desenvolvedores/evangelistas do KDE e Qt! <br />
<br />
A instalação do chakra é bem simples, interface grafica e next, next... a idéia do projeto é ter uma distro tão boa, rápida e estável quanto o archlinux porém fácil de usar.<br />
<br />
Após a instalação é preciso configurar o pacman para incluir o pacote extra.<br />
<br />
como root:<br />
<br />
# vim /etc/pacman.conf<br />
<br />
descomentar as linhas<br />
#[extra]<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
salvar o arquivo e digitar:<br />
# pacman -Syyu<br />
<br />
isso vai atulizar o sistema e a lista dos mirrors.<br />
<br />
Assim que acabar de baixar tudo vc pode instalar o eclipse por exemplo:<br />
# pacman -S eclipse<br />
<br />
Ou o firefox<br />
<br />
# pacman -S firefox-kde<br />
<br />
e também o pacote multi-idioma<br />
<br />
# pacman -S firefox-i18nIan Labordahttp://www.blogger.com/profile/17665180525104682972noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-91339067742763128112011-10-05T00:48:00.002-03:002011-10-05T00:49:11.875-03:00Executando testes unitários com o framework Demoiselle<br />
Primeiro, deve ser criado um projeto usando o arquétipo Vaadin do Framework Demoiselle.<br />
<br />
Este <a href="http://www.youtube.com/watch?v=Ms3P17WLmrU">vídeo</a> feito pelo Cleverson (<a href="http://twitter.com/@zyc">@zyc</a>) pode ser usado como referência para a criação de uma aplicação que use o Demoiselle, com a diferença de que o arquétipo a ser utilizado é o do Vaadin.<br />
<br />
Logo após a criação do projeto (aos 3:25 minutos do vídeo), podemos começar a modificar o mesmo.<br />
<br />
Deve ser criado o pacote foo.init, na pasta src/main/java.<br />
<br />
Dentro deste pacote deve ser criada a classe ApplicationLoader<br />
<br />
package foo.init;<br />
<br />
import javax.enterprise.context.ApplicationScoped;<br />
import br.gov.frameworkdemoiselle.annotation.Shutdown;<br />
import br.gov.frameworkdemoiselle.annotation.Startup;<br />
import br.gov.frameworkdemoiselle.transaction.Transactional;<br />
<br />
@ApplicationScoped<br />
public class ApplicationLoader {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Startup<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Transactional<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void load() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Shutdown<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void unload() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
}<br />
<br />
No pacote foo, dentro da pasta src/test/java, deve ser criada a classe CategoryBCTest, a qual já conta com alguns testes:<br />
<br />
package foo;<br />
<br />
import static org.junit.Assert.assertNotNull;<br />
<br />
import javax.inject.Inject;<br />
<br />
import org.junit.Assert;<br />
import org.junit.Before;<br />
import org.junit.Test;<br />
import org.junit.runner.RunWith;<br />
<br />
import foo.business.CategoryBC;<br />
import foo.domain.Category;<br />
import foo.init.ApplicationLoader;<br />
<br />
import br.gov.frameworkdemoiselle.transaction.Transactional;<br />
import br.gov.frameworkdemoiselle.util.DemoiselleRunner;<br />
import static org.junit.Assert.fail;<br />
<br />
@Transactional<br />
@RunWith(DemoiselleRunner.class)<br />
public class CategoryBCTest {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Inject<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private ApplicationLoader appLoader;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Inject<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>CategoryBC bc;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Before<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void before() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (Category category : bc.findAll()) {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.delete(category.getId());<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Test<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void testInsert() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Category category = getMinimalValidCategory();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.insert(category);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>assertNotNull(category.getId());<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Test<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void testUpdate() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Category category = getMinimalValidCategory();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.insert(category);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.update(category);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>category = bc.load(category.getId());<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Test<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void testDelete() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Category category = getMinimalValidCategory();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.insert(category);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>category = bc.load(category.getId());<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.delete(category.getId());<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>category = bc.load(category.getId());<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Assert.assertNull(category);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Test<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void testInsertLogradouroNull() {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Category category = getMinimalValidCategory();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>category.setDescription(null);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>try {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>bc.insert(category);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}catch (javax.validation.ConstraintViolationException e) {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>fail("Aceitou inserção sem Descrição");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>/**<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> * Este método retorna um objeto que é minimamente válido.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> * @return Objeto mínimo possível<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> */<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public Category getMinimalValidCategory() {<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Category cat = new Category();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>cat.setDescription("Descrição");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return cat;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
}<br />
<br />
Ao se tentar executar o teste neste momento, é lançado o seguinte erro: java.lang.ClassFormatError: Absent Code attribute in method...<br />
<br />
Isto ocorre porque o arquétipo disponibilzado vem com a dependência javaee-api e javaee-web-api, que especificam o JavaEE6.<br />
No entanto, estas bibliotecas servem apenas para compilação, pois os métodos que estão dentro destes jars estão sem implementação.<br />
<br />
Para corrigir este problema, deve ser feita a adição dos seguintes campos no arquivo pom.xml do projeto, os quais resolvem as dependências relativas a uma implementação completa do javaee 6.0:<br />
<repository><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><id>repository.jboss.org</id><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><name>JBoss Repository</name><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url><br />
</repository><br />
<br />
<dependency><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><groupId>org.jboss.spec</groupId><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><artifactId>jboss-javaee-6.0</artifactId><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><version>1.0.0.Final</version><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><scope>test</scope><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><type>pom</type><br />
</dependency><br />
<br />
Neste ponto, o JUnit teste ainda não consegue executar o teste (é lançada uma exceção do tipo java.util.NoSuchElementException, provavelmente ligada à falta de uma fonte/conexão a um banco de dados).<br />
<br />
Resta agora configurar o acesso ao banco de dados:<br />
<br />
O conteúdo da pasta src/main/resources deve ser copiado para a pasta src/test/resources<br />
<br />
Na pasta src/main/resources/META-INF<br />
Arquivo beans.xml:<br />
<br />
<?xml version="1.0"?><br />
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_1.xsd"><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><alternatives><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><class>br.gov.frameworkdemoiselle.transaction.JPATransaction</class><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span></alternatives><br />
<br />
</beans><br />
<br />
Arquivo persistence.xml:<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><persistence-unit name="bookmark-ds" transaction-type="RESOURCE_LOCAL"><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><class>foo.domain.Bookmark</class><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><class>foo.domain.Category</class><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><properties><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.user" value="sa" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.password" value="" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost:9001/bookmark" /><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="eclipselink.logging.level" value="FINE" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="eclipselink.ddl-generation" value="create-tables" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="eclipselink.ddl-generation.output-mode" value="database" /><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="hibernate.show_sql" value="true" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="hibernate.format_sql" value="false" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="hibernate.hbm2ddl.auto" value="update" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span></properties><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span></persistence-unit><br />
</persistence><br />
<br />
Na pasta src/test/resources/META-INF<br />
Arquivo beans.xml:<br />
<br />
<?xml version="1.0"?><br />
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_1.xsd"><br />
</beans><br />
<br />
Arquivo persistence.xml:<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><persistence-unit name="bookmark-ds"><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><jta-data-source>java:/DefaultDS</jta-data-source><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><class>foo.domain.Bookmark</class><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><class>foo.domain.Category</class><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><properties><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.user" value="sa" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.password" value="" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost:9001/bookmark" /><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="eclipselink.logging.level" value="FINE" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="eclipselink.ddl-generation" value="create-tables" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="eclipselink.ddl-generation.output-mode" value="database" /><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="hibernate.show_sql" value="true" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="hibernate.format_sql" value="false" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><property name="hibernate.hbm2ddl.auto" value="update" /><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span></properties><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span></persistence-unit><br />
</persistence><br />
<br />
Com isto, chegamos à tão desejada barra verde do JUnit, juntamente com o deploy do projeto no JBOSS6.<br />
<br />
Agradeço ao <a href="http://twitter.com/@mariojp">@mariojp</a> pelo apoio na hora de encontrar esta solução, ao mostrar seu conhecimento sobre os arquivos de configuração.<br />
<div>
<br /></div>
Andrehttp://www.blogger.com/profile/01162401308073963059noreply@blogger.com3tag:blogger.com,1999:blog-7888153883610332964.post-45440161993730065292011-03-12T11:47:00.000-03:002011-03-12T11:47:45.129-03:00Inscrição na ERBASERecomendo a todos a participação na ERBASE 2011 e no Maré de Agilidade.<br />
<br />
Além da recomendação aqui vai uma dica para quem é estudante de graduação.<br />
Para se tornar socio da SBC (www.sbc.org.br) existe uma a anuidade de R$10,00. Valores da anuidade SBC.<br />
<br />
A inscrição para ERBASE é dividida em Sócios e não Sócios com os seguintes valores para Estudantes:<br />
<div style="text-align: center;"><table align="center"><tbody>
<tr><td></td><td>Sócio</td><td>Não Sócio</td></tr>
<tr><td>Inscrição</td><td style="text-align: right;">40,00</td><td style="text-align: right;">50,00</td></tr>
<tr><td>Minicurso</td><td style="text-align: right;">35,00 </td><td style="text-align: right;">45,00</td></tr>
<tr><td>Mare</td><td style="text-align: right;">40,00</td><td style="text-align: right;">50,00</td></tr>
</tbody></table></div>A diferença de preço da inscrição é de 10,00 reais (Valor igual ao da anuidade da SBC).<br />
1. Ao apenas se inscrever na ERBASE o custo é o mesmo de ficar sócio da SBC e se inscrever na ERBASE e ter direito aos benefícios oferecidos pela SBC.<br />
2. Se além de se inscrever nas palestras se inscrever em algum outro evento (MC, LAB ou MARE) a economia será de 10,00 por evento.<br />
<br />
<a href="http://www.mariojp.com.br/">Fonte: http://www.mariojp.com.br</a>Mario Jorgehttp://www.blogger.com/profile/17699537733932995535noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-68255561292383783052010-09-23T11:12:00.000-03:002010-09-23T11:12:02.583-03:00Congresso Brasileiro de Software: Teoria e Prática (CBSoft)O Congresso Brasileiro de Software: Teoria e Prática (CBSoft) é a principal conferência nacional de software.<br />
<br />
O CBSoft integra quatro eventos tradicionais organizados pela comunidade brasileira de desenvolvimento de software: XXIV Simpósio Brasileiro de Engenharia de Software (SBES), XIV Simpósio Brasileiro de Linguagens de Programação (SBLP), IV Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS) e VIII Conferência Latino-americana em Linguagens de Padrōes de Programaçāo (SugarLoafPlop).<br />
<br />
Em sua primeira edição, o CBSoft será realizado em uma das cidades mais belas e receptivas do Brasil, Salvador - Bahia, no período de 27 de setembro a 01 de outubro, no Hotel Bahia Othon Palace.<br />
<br />
O CBSoft é um evento promovido pela Sociedade Brasileira de Computação (SBC) e organizado pelo Laboratório de Engenharia de Software (LES) da Universidade Federal da Bahia (UFBA).<br />
<br />
Manoel Mendonça, Coordenador Geral do CBSoft <br />
<br />
http://wiki.dcc.ufba.br/CBSOFT/WebHomePtMario Jorgehttp://www.blogger.com/profile/17699537733932995535noreply@blogger.com1tag:blogger.com,1999:blog-7888153883610332964.post-65175028549093820002010-05-18T15:35:00.003-03:002010-05-18T16:06:19.432-03:00Ubuntu 10.04 / Active directory com Likewise-open: Definindo o domínio como login padrão.Bom eu fiz a atualização do ubuntu 10.04 e tive bastante problema com a nova versão do likewise-open. Depois de muita pesquisa encontrei a solução no ubuntu forums.<br /><br /><br />Vamos ao passo a passo...<br /><br />Abra o terminal e digite:<br /><pre>sudo add-apt-repository ppa:likewise-open/likewise-open-ppa<br /><br />sudo aptitude update<br /><br />sudo aptitude safe-upgrade<br /></pre><br /><br />Quaando os comandos acima tiverem terminado edite o arquivo /etc/likewise-open/lsassd.reg<br /><br />Digite no terminal:<br /><pre>gksudo gedit /etc/likewise-open/lsassd.reg</pre><br /><br />Quando o arquivo abrir, substitua "AssumeDefaultDomain"=dword:00000000 por "AssumeDefaultDomain"=dword:00000001<br /><br />Após editar e salvar volte ao terminar e digite:<br /><br /><pre>sudo lwregshell import /etc/likewise-open/lsassd.reg<br /><br />sudo lw-refresh-configuration<br /></pre><br /><br />Pronto! Teoricamente, após os comandos acima você já será capaz de logar no domínio. Tente e deixe o feedback para nós nos comentários.Ian Labordahttp://www.blogger.com/profile/17665180525104682972noreply@blogger.com10tag:blogger.com,1999:blog-7888153883610332964.post-62022786411327612062010-04-30T09:05:00.000-03:002010-04-30T09:05:05.755-03:00Ubuntu 10.04 Saiu!Como esperado, a versão <a href="http://www.ubuntu.com/">10.04 do Ubuntu</a> já está disponível para <a href="http://www.ubuntu.com/getubuntu/download">download</a>. Veja as principais funcionalidades <a href="http://www.ubuntu.com/products/whatisubuntu/1004features">aqui</a>!Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-52259061042384845882010-04-13T16:17:00.000-03:002010-04-13T16:17:49.713-03:00Nova Linha de MacBook Pro LançcadaA Aple atualizou a linha de MacBooks Pro, ela já tinha atualizado o MacBook White, e essa atualização era esperada.<br />
<br />
<a href="http://g1.globo.com/Noticias/Tecnologia/0,,MUL1567546-6174,00-APPLE+LANCA+NOVOS+MACBOOK+PRO+COM+PROCESSADORES+I+E+I.html">Veja a notícia na G1</a>.Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-42416406998459444382010-04-08T22:28:00.001-03:002010-04-08T22:29:41.636-03:00Inauguração da Primeira Apple Premium Reseller de SalvadorHoje aconteceu a inauguração da <a href="http://www.itown.com.br/">iTown</a>, a mais nova loja APple Premium Reseller e a única em Salvador. A inauguração aconteceu por volta das 19:30, um pouco atrasada, mas nada que tirasse o foco, pelo menos o meu, "produtos com desconto". A inauguração contou com a presença de Pitty e Dalton Vigh, mas o importante mesmo é a promoção de inauguração: produtos com até 30% de desconto, na lata!!!!<br />
<br />
Eu estava pensando em adiquirir um Macbook Pro 13, que estava custando R$ 3.599,00 no site da Apple, mas hoje eu consegui comprar a mesma máquina por R$ 2.999,00, com possibilidade de dividir o valor em 12x sem juros.... Valeu muito a pena!<br />
<br />
Quem quiser aproveitar a promoção, pode ficar tranquilo porque ela vai até dia 11/04/2010.<br />
<br />
OBS.: A minha pressa me fez esquecer de levar a câmera fotográfica para registrar o momento.<br />
<br />
Até mais!Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com1tag:blogger.com,1999:blog-7888153883610332964.post-20410517846689206472010-02-18T14:52:00.000-03:002010-02-18T14:52:52.277-03:00Esse Aqui Eu Recomendo: Java DecompilerEssa ferramenta foi perfeita para mim! Eu estava precisando "decompilar" algumas classes Java e, por acaso, achei no Google esse aplicativo. Ele tem uma versão standalone e um plugin para o Eclipse.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://java.decompiler.free.fr/sites/default/themes/jd/getimage.php?p=../../screenshots/screenshot1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="273" src="http://java.decompiler.free.fr/sites/default/themes/jd/getimage.php?p=../../screenshots/screenshot1.png" width="320" /></a></div><br />
Eu utilizei a versão standalone e realmente a ferramenta é muito boa. Quando eu abri a primeira classe, ela já mostrou toda a hierarquia de pacotes e suas classes, bastando eu clicar para que ele abrisse essa classe em uma nova aba. Achei muito prática e simples de usar, recomendo a todos.<br />
<br />
http://java.decompiler.free.fr/Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-1058537322765663952010-02-07T19:09:00.002-03:002010-02-07T19:16:42.438-03:00Ferrmenta para baixar vídeos streammingNão sei quanto a vocês, mas eu já tive vontade de baixar um vídeo ou um áudio que estava no YouTube, por exemplo, e me deparei com a necessidade de fazer o download em FLV, depois instalar um software para converter isso..... um saco né? Com esse serviço, <a href="http://benderconverter.com/" target="_blank">Free FLV Converter Free FLV converter from Bender</a>, você consegue baixar vídeos já no formato do iphone, por exemplo. Legal demais...<br />
<img alt="" height="242" src="http://www.ovelho.com/uploads2010/bender_video_conv.jpg" width="400" /><br />
É apontar a URL, escolher o formato e baixar. Simples e prático.<br />
<strike>Roubada de:</strike> Fonte: <a href="http://www.ovelho.com/content/convertendo-e-baixando-v%C3%ADdeos-da-internet">OVelho</a>Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com1tag:blogger.com,1999:blog-7888153883610332964.post-13567151770006726182010-02-05T15:14:00.003-03:002010-02-05T16:04:24.183-03:00O problema do preço<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8_kjSy9GPMZVbkA2ei3srRKx85JC49EfjZdX5Xmeroi8DKOfxms5W9OXVRPv5d4cZV6bb-_PgMZUjtyXZIr8ypvmoChvsckM-ea3zSCxnv3sPUCD_ue4rY2EAeMnaOClAIyuj3ZpddeB3/s1600-h/51HsaHWvuuL.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8_kjSy9GPMZVbkA2ei3srRKx85JC49EfjZdX5Xmeroi8DKOfxms5W9OXVRPv5d4cZV6bb-_PgMZUjtyXZIr8ypvmoChvsckM-ea3zSCxnv3sPUCD_ue4rY2EAeMnaOClAIyuj3ZpddeB3/s320/51HsaHWvuuL.jpg" alt="" id="BLOGGER_PHOTO_ID_5434833515147693458" border="0" /></a><br /><div style="text-align: justify;">Você desenvolve ou pretende desenvolver algum projeto freelancer e não sabe como precificá-lo? Eu passei por esse problema recentemente e admito que não é tarefa fácil para marinheiros de primeira viagem. Basicamente não sabia qual estratégia utilizar para definir um valor. Seria pelo tempo de desenvolvimento? Pela quantidade de módulos? Pela categoria do software? Havia ainda outra questão: o cliente concordaria com o valor cobrado? Todos sabemos que clientes querem pagar o mínimo para obter o máximo(afinal também assumimos o papel de cliente em algum momento).<br />Encontrei uma luz no fim do túnel no livro <span style="font-style: italic;">Don't Just Roll the Dice: A usefully short guide to software pricing</span>. Trata-se de um e-book gratuito (clique <a href="http://downloads.businessofsoftware.org/dontjustrollthedice.pdf" target="_blank">aqui</a> para baixá-lo) em que é abordado exatamente do problema de precificar um software, apresentando diversas estratégias, algumas até inusitadas. Inclusive a que utilizei foi baseada no livro.<br />Fiz o seguinte: perguntei ao cliente quanto ele gostaria de pagar, sem especificar qualquer funcionalidade ou prazo de entrega. Como vocês devem imaginar, foi uma merreca. Com esse valor em mente e uma estimativa de esforço, estabeleci algumas versões, desde a "meia boca edition" até a "ultimate". Após alguns dias, apresentei a versão "meia boca", que era compatível com o valor mencionado por ele. No fim chegamos num acordo. Seria uma versão intermediária. Bom para todo mundo.<br />É isso galera, em breve publico uma resenha completa do livro.<br /></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7888153883610332964.post-80591127851158245102010-02-03T11:39:00.000-03:002010-02-03T11:39:45.925-03:00EKAATY DAY + KDE 4.4 Release Party + Comunidades Open Source<span class="Apple-style-span" style="font-size: small;">"Notícias recentes do mundo da tecnologia,falam sobre o Linux e sobre o software livre de formas distintas, trazendo à tona uma série de possibilidades para um futuro que, em se tratando de informática, é agora. A ideia de uma sociedade baseada em colaboração, códigos abertos e melhoria em comunidade está cada vez mais forte e presente em nossas vidas. Por esses motivos, as comunidades de software livre presentes na Bahia organizaram o KDE 4.4 Release Party. As KDE Release Parties são um tradicional evento realizado no momento do lançamento das versões do KDE, que ocorre geralmente a cada 6 meses. Na ocasião, apresenta-se as novidades mais recentes, o que podemos esperar das próximas versões e, é claro, muita diversão para comemorar. Este ano, além do KDE 4.4 Release Party haverá a demonstração das principais linguagens de programação e tendências no desenvolvimento de programas (Java, PHP, Ruby on Rails, Manifesto Ágil, etc), exibição da ferramenta NetBeans, além do lançamento do Ekaaty 4 Linux, uma distribuição brasileira baseada no KDE, onde será apresentada a distro. Esse evento esta sendo sediado pela Faculdade de Engenharia ÁREA1 em Salvador, Bahia que sempre apoia eventos de Software Livre."</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://area1fte.edu.br/files/noticias/programacaoekaatyday2010.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://area1fte.edu.br/files/noticias/programacaoekaatyday2010.jpg" width="433" /></a></div>Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-42958116342574223942010-02-02T21:11:00.002-03:002010-02-02T21:13:45.021-03:00Prêmio da Promoção Sherlock da TargusPessoal, vocês lembram da <a href="http://javalinuxevatapa.blogspot.com/2010/01/promocao-sherlock-targus-brasil.html">Promoção Sherlock da Targus</a> que eu falei aqui no blog? Pois bem, eu fui contemplado com um brinde por causa dessa mochila: <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi0fYqr3ZxfTuJQGRvWNMo0XHktB8XvNP9oQvZIayG_wR1-2GH-o42XWibUsxgNOdynCUQ6-a9vpChXQgwravwqXH-9qXMhmtZhbMXe0RDVfFPxTXR7DC8yoHWQSNi5fpwS-YdNWlvr5m9/s1600-h/foto_mochila_apple_targus.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi0fYqr3ZxfTuJQGRvWNMo0XHktB8XvNP9oQvZIayG_wR1-2GH-o42XWibUsxgNOdynCUQ6-a9vpChXQgwravwqXH-9qXMhmtZhbMXe0RDVfFPxTXR7DC8yoHWQSNi5fpwS-YdNWlvr5m9/s200/foto_mochila_apple_targus.JPG" width="170" /></a></div><br />
Até aí, tudo bem, só festa, consegui meu acessório Targus, uhuuuuuu! Hein? O que? Não é um acessório não? Mas no site dizia que era um acessório Targus?<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgetFKhQFMb47UHA6yJ2U93ruYawHjQk7ymRNb-qQYggkLB3C8ACpSt5McWIO1wKfEMkEX9M-lukpxOTQBH9V5TYiVfXbJr87fTDQYEZRaOGfAzw_DyXjx77LkgSXAnk7N2UAdUHcK51U5j/s1600-h/P1020097.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgetFKhQFMb47UHA6yJ2U93ruYawHjQk7ymRNb-qQYggkLB3C8ACpSt5McWIO1wKfEMkEX9M-lukpxOTQBH9V5TYiVfXbJr87fTDQYEZRaOGfAzw_DyXjx77LkgSXAnk7N2UAdUHcK51U5j/s320/P1020097.JPG" width="320" /></a></div><br />
Ah, entendi! O que a gente ganha nessa promoção não é um acessório Targus, é um punhado de brindes e ítens aleatórios da Targus, tipo: Boné, Máscara de dormir infantil (hein?), Balas Targus (balas Targus, como asim?), Protetor auricular (os vizinhos precisaram de alguns) e uma Bóia inflavel infantil para apoiar o pescoço (nem sei como se chama esse "ranso").<br />
No fim das contas eu to feliz com meu super kit altamente variado para qualquer eventualidade Targus, afinal, nunca se sabe quando e está comendo uma bala e é necessário tapar os ouvidos, proteger o pescoço, tapar os olhos e colocar um boné!Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-12681972412603142912010-02-01T14:43:00.000-03:002010-02-01T14:43:23.827-03:00OpenXenCenterRecentemente, no meu trabalho, decidimos utilizar uma solução de virtualização para melhor aproveitar a capacidade de um servidor. Para isso utilizamos o Xen Server, e para gerenciar as diversas máquinas virtuais, discos e tudo mais, utilizamos o XenCenter.<br />
O problema disso é que o XenCenter só roda em Windows, mas graças a <strike>Deus</strike> seu desenvolvedor, existe o <a href="http://www.openxencenter.com/">OpenXenCenter</a>.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.openxencenter.com/screenshots/linux_console.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="http://www.openxencenter.com/screenshots/linux_console.png" width="320" /></a> </div><div class="separator" style="clear: both; text-align: left;">O teste que eu fiz aqui funcionou bem, em determinados momentos houve um pouco de instabilidade, mas no geral o software é muito bom.</div>Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com1tag:blogger.com,1999:blog-7888153883610332964.post-24751855283838760042010-01-30T11:47:00.000-03:002010-01-30T11:47:09.543-03:00Anunciada a chegada do iPad ao BrasilA Apple (Brasil) está divulgando <a href="http://www.apple.com/br/ipad/">em seu site</a> que o iPad começa a ser comercializado no Brasil a partir de março, o modelo com wi-fi, e a partir de abril o modelo 3G.<br />
Os preços ainda são um mistério, apesar de que nos EUA o iPad custar a partir de U$ 499,00, mas os impostos no Brasil não são brincadeira. Só para comparar, um iPod Touch 8GB custa na Apple Store US U$ 199,00 e na Apple Store Brasil sai bela bagatela de U$ 649,00. Já dá para termos uma idéia de que o iPad, no Brasil, não custe menos do que "mil conto".Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-49758045881934956562010-01-28T22:18:00.002-03:002010-01-29T09:59:10.503-03:00Apple iPadCom certeza você já ouviu flar do Apple iPad, ou do "Tablet da Apple", ou ainda "aquele iPodão rapá!", não importa, alguma coisa sobre o iPad você já leu/ouviu/sonhou!<br />
<br />
<object height="236" width="375"><param name="movie" value="http://www.youtube.com/v/UcWoytJPJbo&hl=pt_BR&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/UcWoytJPJbo&hl=pt_BR&fs=1&color1=0x3a3a3a&color2=0x999999&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="375" height="236"></embed></object><br />
<br />
Só para resumir, é o novo dispositivo da Apple, utilizando a maioria das características do iTouch/iPhone, só que refinadas. Com uma tela de LED com resolução 1024x768, promete revolucionar o modo como usamos dispositivos móveis. Para saber mais clique <a href="http://www.apple.com/ipad/">aqui</a>. Ainda não está a venda no Brasil, mas acho que isso logo vai mudar.<br />
<br />
Agora vamos ao que interessa: o que você achou, mesmo sabendo que nenhum de nós chegou perto desse dispositivo, do iPad?<br />
<br />
Eu sou suspeito para falar, pois sou um macmaníaco convicto, mas mesmo assim eu gostaria de saber o que você acha de interessante e o que você acha de ruim...Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com1tag:blogger.com,1999:blog-7888153883610332964.post-88745789758046749402010-01-22T11:46:00.000-03:002010-01-22T11:46:01.528-03:00Firefox 3.6Foi liberada a nova versão do Firefox, a 3.6, e promete ser a versão mais rápida. Dentre as melhorias apontadas pelos desenvolvedores, estão:<br />
<ul><li><span style="font-size: x-small;"><b>Navegação Privativa:</b> novo Navegue pela web sem deixar um só rastro. </span></li>
<li><span style="font-size: x-small;"><b>Gerenciador de Senhas:</b> Memorize senhas de sites sem ver nenhum popup. </span></li>
<li><span style="font-size: x-small;"><b>Campo de Endereços Inteligente:</b> melhorado Encontre os sites que você gosta em segundos (e sem precisar lembrar de endereços estranhos). </span></li>
<li><span style="font-size: x-small;"><b>Incrível Velocidade:</b> novo Visualize páginas rapidamente e utilizando menos memória do seu computador. </span></li>
<li><span style="font-size: x-small;"><b>Proteções Antiphishing e Antiataques:</b> melhorado Aproveite a mais avançada proteção contra ataques e fraudes online. </span></li>
<li><span style="font-size: x-small;"><b>Restauração de Sessões:</b> improved Saída inesperada? Volte exatamente para onde você estava. </span></li>
<li><span style="font-size: x-small;"><b>Favoritos em Um Clique:</b> Adicione, procure, e organize sites favoritos de forma rápida e fácil. </span></li>
<li><span style="font-size: x-small;"><b>Fácil Personalização:</b> melhorado Milhares de complementos dão a você a liberdade de montar você mesmo o seu navegador. </span></li>
<li><span style="font-size: x-small;"><b>Abas:</b> melhorado Faça mais de uma só vez com abas que você organiza ao arrastar o mouse. </span></li>
<li><span style="font-size: x-small;"><b>Identidade em um clique:</b> Evite golpes online, transações inseguras e fraudes utilizando a identificação simplificada de sites. <br />
</span></li>
</ul><br />
Acesse o <a href="http://www.mozilla.com/pt-BR/firefox/">site do Firefox</a> e saiba mais... <br />
<div class="column3"><div class="feature"><h4> </h4></div></div>Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-67171267426204890082010-01-21T08:32:00.000-03:002010-01-21T08:32:46.454-03:00Promoção Sherlock - Targus BrasilEsse não é um post para falar sobre a marca Targus, mas sim da promoção que eles estão fazendo, pois para participar dessa promoção, ao que tudo indica, não é necessário possuir produtos da marca.<br />
<br />
A idéia da promoção é você fotografar uma mochila Targus que tenha outra marca nela, por exemplo:<br />
<div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.targus.com.br/UserFiles/Image/DSC01311%281%29.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="http://www.targus.com.br/UserFiles/Image/DSC01311%281%29.jpg" width="200" /></a><br />
</div>Para saber mais sobra a promoção, acesse <a href="http://www.targusbrasil.com.br/">aqui</a> ou <a href="http://www.targus.com.br/default.aspx?secao=337">aqui</a>!Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-79478922194985237652010-01-20T06:49:00.000-03:002010-01-20T06:49:51.167-03:00Série Guia MangáA editora Novatec está lançando uma série de livos que iniciam com o título "Guia Mangá de ...", onde o assunto principal do livro é abordado durante aventuras vividas pelos personagens, trazendo uma proposta, no mínimo, inusitada de apresentar o tema.<br />
Já são 2 livos: <a href="http://novatec.com.br/livros/mangabd/">Guia Mangá de Banco de Dados</a> e <a href="http://novatec.com.br/livros/mangaeletricidade/">Guia Mangá de Eletricidade</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://novatec.com.br/figuras/capas/9788575221631.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://novatec.com.br/figuras/capas/9788575221631.gif" /></a><a href="http://novatec.com.br/figuras/capas/9788575221907.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://novatec.com.br/figuras/capas/9788575221907.gif" /></a><br />
</div><br />
Eu não li nenhum dos livros, portanto não posso comentar sobre a didática, o aprofundamento ou coisa parecida, mas tem uma resenha feita pelo pessoal do iMasters <a href="http://imasters.uol.com.br/artigo/15225">aqui</a>.Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-65260511438176347692010-01-19T14:14:00.000-03:002010-01-19T14:14:37.467-03:00Google DNSNão é uma notícia nova, mas como eu passei por esse problema ontem, decidi compartilhar a experiência...<br />
<br />
Ontem eu estava tendo problemas de resolução de nomes com o DNS padrão da Velox, e resolvi fazer uma busca na web, até que encontrei o <a href="http://code.google.com/intl/pt-BR/speed/public-dns/">DNS da Google</a>.<br />
<br />
Antigamente eu usaria o Open DNS, mas o da Google, até o momento, está "filé". Basta configurar o DNS Primário para 8.8.8.8 e o secundário para 8.8.4.4 e ser feliz...Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-41933888127155203882010-01-16T13:54:00.000-03:002010-01-16T13:54:37.402-03:00Google Collections FrameworkOlá galera, só pra fazer a devida referência, o post é meu, mas a dica é do nosso "colaborador senior" Mário Jorge: Google Collections Framework 1.0 lançado.<br />
<br />
Confira <a href="http://code.google.com/p/google-collections/">aqui</a> mais informações e vídeos falando desse novo produto da Google.<br />
<br />
"The Google Collections Library 1.0 is a set of new collection types, implementations and related goodness for Java 5 and higher, brought to you by Google. It is a natural extension of the <b>Java Collections Framework</b>."<br />
<br />
Vale apena dar uma olhada, pois as novas implementações deles são, no mínimo, muito interessantes, fora os novos tipos que são show de bola.<br />
<br />
Até mais...Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-17736402159297736142009-10-29T12:07:00.002-03:002009-10-29T12:12:40.170-03:00Ubuntu 9.10 Liberado para DownloadA poucos instantes o Ubuntu 9.10 foi liberado para download. Para fazer o download da sua cópia acesse <a href="http://www.ubuntu.com/getubuntu/download">aqui</a>.<br />Essa nova versão traz algumas melhorias de design e software, veja <a href="http://www.ubuntu.com/products/whatisubuntu/910features">aqui</a>.Diegohttp://www.blogger.com/profile/11524684061863573267noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-32578516430738282472009-10-24T23:03:00.006-03:002009-10-25T00:05:15.533-03:00REST sem rodeiosREST (Representational State Transfer): é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a Internet.<br /><br />"A REST (Transferência do Estado Representacional) é pretendida como uma imagem do design da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso." (Fielding,2000)<br /><br />Os serviços Web RESTful são serviços construídos com o estilo de arquitetura RESTful. A construção de serviços Web com a abordagem RESTful está surgindo como uma alternativa popular ao uso de tecnologias baseadas em SOAP para implantação de serviços na Internet, por ser mais leve e possuir a capacidade de transmitir dados diretamente através de HTTP.<br /><br />A <a href="http://jcp.org/en/jsr/detail?id=311">JSR 311: JAX-RS: The JavaTM API for RESTful Web Services</a> define uma especificação para java do RESTful e o <a href="https://jersey.dev.java.net/">Jersey</a> é a implementação de referencia dessa especificação.<br /><br />Despois dessa rapida explicação vamos a pratica e fazer o famoso "alô mundo" (Esse é na unha e pode ser feito em qualque IDE).<br /><br />1. Crie um projeto Java<br />2. Baixe as seguintes bibliotecas:<br /> . <a href="http://download.java.net/maven/2/com/sun/jersey/jersey-core/1.1.3-ea/jersey-core-1.1.3-ea.jar">jersey-core</a><br /> . <a href="http://download.java.net/maven/2/com/sun/jersey/jersey-server/1.1.3-ea/jersey-server-1.1.3-ea.jar">jersey-server</a><br /> . <a href="http://download.java.net/maven/2/com/sun/grizzly/grizzly-servlet-webserver/1.9.9/grizzly-servlet-webserver-1.9.9.jar">grizzly-servlet-webserver</a><br /> . <a href="http://download.java.net/maven/2/javax/ws/rs/jsr311-api/1.1-ea/jsr311-api-1.1-ea.jar">jsr311-api</a><br /> . <a href="http://repo1.maven.org/maven2/asm/asm/3.2/asm-3.2.jar">asm</a><br /><br />3. Importe para o seu projeto as bibliotecas<br /><br />4. Crie as seguintes classes:<br />a. Classe do Serviço<br /><pre><br />package br.javalinuxevatapa.jersey.resource;<br /><br />import javax.ws.rs.Path;<br />import javax.ws.rs.GET;<br />import javax.ws.rs.Produces;<br /><br />@Path("/alomundo")<br />public class AloMundoResource {<br /> @GET<br /> @Produces("text/plain")<br /> public String getClichedMessage() {<br /> return "Alô Mundo!";<br /> }<br />}<br /></pre><br /><br />b. Classe de implantação e execução<br /><pre><br />package br.javalinuxevatapa.jersey.teste;<br /><br />import java.io.IOException;<br />import java.util.HashMap;<br />import java.util.Map;<br /><br />import com.sun.grizzly.http.SelectorThread;<br />import com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory;<br /><br />public class Inicio {<br /><br /> public static void main(String[] args) throws IOException {<br /> final String baseUri = "http://localhost:9998/";<br /> final Map<String, String> initParams = new HashMap<String, String>();<br /> initParams.put("com.sun.jersey.config.property.packages","br.javalinuxevatapa.jersey.resource");<br /> System.out.println("Starting grizzly...");<br /> SelectorThread threadSelector = GrizzlyWebContainerFactory.create(baseUri,initParams);<br /> System.out.println("baseUri: "+baseUri);<br /> System.in.read();<br /> threadSelector.stopEndpoint();<br /> System.exit(0);<br /> }<br />}<br /></pre><br /><br />Para testar acesse cm o navegador http://localhost:9998/alomundo<br /><br /><br />Aguardem os proximos post<br />[]'sMario Jorgehttp://www.blogger.com/profile/17699537733932995535noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-60226653775947244312009-09-29T19:45:00.005-03:002009-09-30T13:11:09.958-03:00Definitivo Mac OS X Snow Leopard e HP 1020Como sei que cada vez mais tem gente utilizando Mac OS X, que é UNIX, isso me permite escrever sobre esse Sistema Operacional em um blog para linux. Bom a motivação tambem veio de que muita gente adiquiriu a HP 1020 (Como eu! Otima compra assim como o MacBook!) e o Mac OS X e a HP não liberou suporte para essa impressora no Mac OS X.<br /><br />Na versão Leopard encontrei uma receita simples de como colocar os drivers para HP 1020 e funcionou tranquilo o problema é que atualizei para Snow Leopard (Vale a pena!) e a mesma receita não funcionou.<br /><br />Já quase desistindo encontrei esse <a href="http://forums.macrumors.com/showthread.php?p=8399498#post8399498">forum</a> que me levou a essa <a href="http://idisk.mac.com/geoffchapman-Public?view=web">pagina</a> com o procedimento.<br /><br />Demora e é um tanto chato mas funciona.<br /><br />[]'s<br />MarioMario Jorgehttp://www.blogger.com/profile/17699537733932995535noreply@blogger.com0tag:blogger.com,1999:blog-7888153883610332964.post-21697190593032043372009-09-22T09:47:00.003-03:002009-09-22T10:09:21.331-03:00Nova versão do Skype para LinuxOlá pessoal, vim aqui escrever pra informar aos usuários linux que saiu uma <span style="font-weight: bold;">versão nova</span> do <span style="font-weight: bold;">skype</span> para linux. A versão ainda é <span style="font-weight: bold;">BETA</span>, porém meus primeiros testes foram muito agradáveis. Portanto,<span style="font-weight: bold;"> recomendo.</span><br /><br />Vale lembrar também que agora nas opções de download, pelo menos para ubuntu, vc pode escolher entre as plataformas 32 ou 64 bits.<br /><br />url para download:<br /><br /><a href="http://www.skype.com/download/skype/linux/choose/" target="_blank">http://www.skype.com/download/skype/linux/choose/</a><br /><br />AbraçosIan Labordahttp://www.blogger.com/profile/17665180525104682972noreply@blogger.com0