Posts de December, 2010

[Renan Oliveira] SPARQL – Parte I – Como Instalar o Virtuoso (Banco de Dados de Triplas)

Friday, December 31st, 2010

Sempre que procuro alguma documentação sobre o Virtuoso, banco de triplas para Web Semântica 99,9% dos artigos que encontro são em inglês, então vou começar uma série de artigos sobre SPARQL e Bando de Dados de Triplas, espero que consiga ajudar alguém.

Vamos a um breve resumo por Daniel Kirstenpfad, sobre banco de triplas:

Ao contrário de outros bancos de dados que armazenam seus dados em linhas, colunas ou pares de chave-valor, um banco de dados de grafos armazena toda informação em uma rede de nós e arestas. As arestas representam o relacionamento entre os nós que representa os objetos. Devido aos nós e arestas serem representados como objetos (os quais os desenvolvedores estão acostumados) é possível definir atributos (também chamado de propriedades) a eles. Adicionando uma direção para uma aresta cria o conhecido grafo de propriedades que representa a explícita estrutura de dados dentro de um banco de dados de grafo. -Daniel Kirstenpfad

Banco de Triplas e a Web Semântica

Um dos grandes pilares da Web Semântica é a organização de dados baseada em ontologias, principalmente RDF, RDFS e OWL. Onde armazenar essas definições, que claramente são baseadas em 3 pilares (sujeito, predicado e objeto)?! E a Linked Open Data é baseada na construção de grafos e sua ligação.

Por que usar o Virtuoso?

É performático. Teste de Performace na DBPedia

Trabalha muito bem com inferências e transitividade, esse acredito que é a grande vantagem do uso de grafos, poder navegar entre eles se aprofundar nas relações e inferir resultados;

OpenSource, com uma grande comunidade de usuários. Mail Lists;

QuadStore, ai vem a pergunta ele é Triple ou Quad Store?  O virtuoso é Quad além de armazenar a tripla básica (sujeito, predicado e objeto) ele ainda grava o grafo relacionado,  com isso o virtuoso consegue trabalhar com múltiplos grafos ao mesmo tempo.

Como instalar o Virtuoso no Ubuntu Linux (Original) :

Faça o download pelo SourceForge: http://sourceforge.net/projects/virtuoso/

Verifique se há os pacotes, caso não haja instalei:

Package Version From
autoconf 2.57 http://www.gnu.org/software/autoconf/
automake 1.7 http://www.gnu.org/software/automake/
libtool 1.5.16 http://www.gnu.org/software/libtool/
flex 2.5.33 (was 2.5.4) http://www.gnu.org/software/non-gnu/flex/
bison 2.3 (was 1.35) http://www.gnu.org/software/bison/
gperf 2.7.2 http://www.gnu.org/software/gperf/
gawk 3.1.1 http://www.gnu.org/software/gawk/
m4 1.4.1 http://www.gnu.org/software/m4/
make 3.79.1 http://www.gnu.org/software/make/
OpenSSL 0.9.7i http://www.openssl.org/

Descompacte o Virtuoso.

Rode os comandos no terminal, na pasta onde descompactou:

./configure
make
make install

Como iniciar o serviço do Virtuoso pelo terminal (start virtuoso):

Entre no diretório: cd var/lib/virtuoso/db
Rode o comando: virtuoso-t -f &

Caso seja concluído com sucesso:
http://localhost:8890/

Qualquer dúvida entrem em contato.

Interligar dados em vez de documentos.Tim Berners-Lee

No próximo artigo, irei falar sobre configurações básicas e consultas.
Obrigado e Feliz Ano Novo.

Abraços, Renan Oliveira

[Emerson Macedo] Últimas de 2010 sobre Node.JS

Friday, December 31st, 2010

O ano de 2010 vai terminando. Esse foi um ano onde o Node.JS começou a ganhar um forte hype. Muitos frameworks surgindo, muita gente blogando sobre o assunto. Palestras, eventos e outras coisas mais. Depois de um tempo sem blogar sobre Node (eu sou empregado em tempo integral e no dia a dia trabalho com outras tecnologias), vou tentar fazer um resumo do que eu tenho acompanhado nesses últimos meses.

JSConf.eu

O tradicional evento Europeu de Javascript contou com diversas apresentações sobre Node.JS. Muitos devs criando coisas legais e apresentando nesse evento. Foi bem diferente do JSConf.us desse mesmo ano, que sobre Node.JS só teve mesmo a palestra do Ryan Dahl, o autor da ferramenta.

Node.js Camp

Agora em Dezembro aconteceu o que podemos chamar de o primeiro evento somente sobre Node.JS, promovido e patrocidado pela Joyent, que é a empresa que mais tem investido na tecnologia, inclusive tendo contratando recentemente o Ryan Dahl.

Nesse evento tivemos diversas palestras dos desenvolvedores das principais ferramentas associadas ao Node, como Socket.io, NPM, entre outros. Eu queria muito ter ido a esse evento, mas infelizmente isso não era uma opção, pois tinha compromissos no meu trabalho.

Ecossistema

No segundo semestre deste ano, aconteceu uma explosão de bibliotecas para Node.JS. Hoje em dia existe biblioteca para fazer praticamente qualquer coisa que fazemos com outras tecnologias web, desde action frameworks, acesso a bancos relacionais e NoSQL até frameworks de testes automatizados e test doubles. Vale a pena uma conferida nas principais bibliotecas, acessando a página de módulos do projeto.

No github, Javascript empatou com Ruby como linguagem mais utilizada, graças a explosão de repositórios node-* ou *.js, bastando uma busca rápida para perceber o quanto esses repositórios tem alavancado Javascript.

O site howtonode.org vem ganhando bastante destaque pelo seu ótimo conteúdo de diversos autores, se tornando referência internacional no assunto.

Hosting

A Joyent abriu bem mais slots para sua hospedagem beta, oferecida no site no.de (vale um post em separado só sobre eles). Basicamente você precisa de um token, o qual você solicita e depois recebe o alerta por email de que o token já está disponível. Tenho usado essa hospedagem gratuita pra fazer alguns testes e tenho gostado bastante. É possível atualizar a versão do Node, fazer restart do serviço, olhar os logs tranquilamente e instalar pacotes livremente. Só não sei se colocaria alguma coisas séria nele nesse momento, pois ainda está muito no começo. Por enquanto deixo para testes e brincadeiras.

Mais recentemente, a NodeJitsu começou a oferecer também como beta uma hospedagem, mas essa até agora não consegui o invite :( , apensar de volta e meia eu colocar meu email lá, na expectativa de conseguir. É mais recente que o no.de, mas parece que vai ser tão interessante quanto, pois também tem um fluxo baseado no git.

O Heroku fechou temporáriamente o suporte a Node para novos usuários. Basicamente eles estão fazendo algumas mudanças e devem abrir novamente agora no início de 2011. Baseado no excelente trabalho que eles tem feito com Ruby, tenho certeza que vão mandar muito bem com Node, mas até que isso aconteça, o Heroku não é uma opção.

Destaques

Dentre vários acontecimentos e lançamentos, alguns merecem um destaque maior. Vamos a eles:

A IDE Cloud9 é um projeto muito interessante da ajax.org para provar o conceito de IDEs no browser. Antes de testar o projeto achei que ia ser mais uma toscaria que já ví muita gente tentando por ai. Pra minha surpresa foi exatamente o contrário. A responsividade quando você está editando o código é muito boa, e apesar de algumas poucas vezes bugar, está extremamente aceitável para um projeto que ainda está começando. Esse projeto foi lançado na JSConf.eu, a qual mencionei no início do post e tem um vídeo disponível da apresentação.

Outro destaque interessante, mas um pouco mais simples é o JsApp.US, um serviço onde você pode criar uma aplicação inteira usando apenas a página deles, de forma online. Dá pra testar o arquivo isoladamente na hora ou fazer deploy direto num subdomínio. Achei um pouco estranho desenvolver assim, mas é muito interessante, pois além do editor de código online, existe uma espécie de shell no final que te permite executar comandos do tipo salve, deploy, open, entre outros. Tem um autocomplete inclusive. Em fim, apesar de ser um paradigma diferente eu acabei gostando bastante. A diferença dele para o Cloud9 é que a IDE Cloud9 por enquanto você instala na sua máquina e esse já um SaaS (Software as a Service), com editor e hospedagem juntos. O melhor de tudo é que o serviço é gratuito.

Rocket Pack Game Engine é uma engine experimental para jogos multiplayer. Falei um pouco sobre essa engine no DevInRio 2010 e na RubyConf Brasil 2010. Muitos desenvolvedores e empresas estão enxergando Node.JS como uma ótima plataforma para construir servidores para esse fim.

Um destaque não menos importante foi o Soda, da LearnBoost, uma das primeiras a postar conteúdo sobre Node.JS. Basicamente é um adapter para usar o Selenium. Em parceria com a SauceLabs, existe um serviço para testes usando uma estrutura cloud.

Outro grande destaque desse fim de ano foram os 2 projetos relacionados ao Canvas 2D, um da LearnBoost e outro da ajax.org. Acabam sendo concorrentes uma da outra, mas espero que aconteça um merge em breve. Vale a pena conferir o da ajax.org e o da LearnBoost.

Uma das aplicações mais fantásticas que vi feitas em Node.JS até hoje foi o Transloadit, um SaaS para upload de fotos e vídeos, que oferece Crop/Resize, Video Encoding, Thumbnail extraction e integração com o S3. Esse serviço merece um post separado, mas basicamente você consegue definir um fluxo básico montando um JSON para definir os passos para o processamento do arquivo recebido pela ferramenta de upload. Eles chamam esse processo de Assembly (isso lembra alguma coisa?). Uma degustada na documentação dessa parte é bem interessante.

Pra fechar

Pra fechar bem o ano temos a entrevista de Ryan Dahl no InfoQ e o release 0.2.6 lançado hoje, 31/12/2010.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

[Rafael Biriba] Não deixe de atualizar seu wordpress: versão 3.0.4 corrige falha de segurança

Thursday, December 30th, 2010

 

http://www.wordpress.org/

 

Dia 29 de dezembro a equipe do WordPress liberou a versão 3.0.4 com uma importante correção de segurança.

Um bug no core da biblioteca KSES foi corrigido. Essa biblioteca é usada em muitos lugares no wordpress, e parece que tem alguma ligaçao com a renderização dos htmls.

O wordpress.org não revela bem qual seria a vulnerabilidade, até para proteger os usuários que possuem as versões com a falha. Mas tudo indica um problema de XSS (Cross-site scripting), o que permitia até alteraçoes no blog, caso fosse bem explorada.

Pedido de atualização do wordpress para 3.0.4

Pedido de atualização do wordpress para 3.0.4

 

Infelizmente para que tem o blog em português, versão PT ou BR, ainda não tem essa atualização disponível. Resta sentar e esperar, ou então fazer a atualização na versão em inglês mesmo (US).

IMPORTANTE: Quem já possui o wordpress com a versão 3.*, esse update deve ser aplicado, pois foi considerado como (atualização crítica de segurança)!

Não se esqueça de fazer o backup antes de fazer qualquer atualização no seu blog…

Leia também: http://wordpress.org/news/2010/12/3-0-4-update/

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] Não deixe de atualizar seu wordpress: versão 3.0.4 corrige falha de segurança

Thursday, December 30th, 2010

 

http://www.wordpress.org/

 

Dia 29 de dezembro a equipe do WordPress liberou a versão 3.0.4 com uma importante correção de segurança.

Um bug no core da biblioteca KSES foi corrigido. Essa biblioteca é usada em muitos lugares no wordpress, e parece que tem alguma ligaçao com a renderização dos htmls.

O wordpress.org não revela bem qual seria a vulnerabilidade, até para proteger os usuários que possuem as versões com a falha. Mas tudo indica um problema de XSS (Cross-site scripting), o que permitia até alteraçoes no blog, caso fosse bem explorada.

Pedido de atualização do wordpress para 3.0.4

Pedido de atualização do wordpress para 3.0.4

 

Infelizmente para que tem o blog em português, versão PT ou BR, ainda não tem essa atualização disponível. Resta sentar e esperar, ou então fazer a atualização na versão em inglês mesmo (US).

IMPORTANTE: Quem já possui o wordpress com a versão 3.*, esse update deve ser aplicado, pois foi considerado como (atualização crítica de segurança)!

Não se esqueça de fazer o backup antes de fazer qualquer atualização no seu blog…

Leia também: http://wordpress.org/news/2010/12/3-0-4-update/

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Tarsis Azevedo] [Off-Topic] Meu Ambiente de Desenvolvimento em 5 Itens

Wednesday, December 29th, 2010

Pra entrar na brincadeira também xD [1] [2] [3]

 

Sistema Operacional

Ubuntu. Desde julho de 2009. 

De la pra cá, usei o Debian nos servers e openSuse só pra brincar.

Obs: O Hugo Maia desenvolveu um script para instalação e configuração do ubuntu, o AfterFormat. Veja Aqui

 

Controle de Versão

O primeiro foi o SVN, e por 6 meses eu sofri. Depois conheci o Git [4] , por influencia do Hugo Lopes, e a luz chegou afastando as trevas. 

O git é incrivel, e junto com o GitHub [5] fica quase perfeito, se voce nao conhece…

 

Linguagem de Programação

Programo desde os 18 anos, quando entrei na faculdade, e minha carreira estava indo de acordo com o “mercado”, aprendendo C, Delphi, Java…

Mas então, eu participei de um processo seletivo para o NSI [6] e passei. Trabalhando no lá, conheci Python e conseqüentemente a cultura e o ecossistema.

Agora programo full time em python pra web com Django, e um pouco de JavaScript com JQuery. Alem do ShellScript, que é obrigação para desenvolvedores.

 

Editor

Vim e seus plugins!(Tambem por influencia do Hugo Lopes) Simples, rapido, e preciso. Mas e a “ajuda” das IDE? Bom pra mim, foi melhor nao ter ajuda, me força a realmente saber a linguagem e nao depender de nada alem do google para programar xD

 

Produtividade

post-its, pomodoro(as vezes), exaile [7] no shuffle.

 

E você, como trabalha?!

 

[1] http://blog.qmx.me/2010/12/29/ambiente-de-desenvolvimento-em-6-itens

[2] http://blog.rafaeldohms.com.br/2010/12/17/meme-seu-ambiente-de-desenvolvimento-em-7-items/?lang=pt-br

[3] http://blog.rafaeldohms.com.br/2010/12/17/meme-seu-ambiente-de-desenvolvimento-em-7-items/?lang=pt-br

[4] http://git-scm.com/

[5] http://github.com

[6] http://nsi.iff.edu.br/

[7] http://www.exaile.org/

 

 

 

 

Permalink

| Leave a comment  »

[Francisco Souza] Começou o FLISOL 2011 em Vitória: submeta sua palestra!

Monday, December 27th, 2010

Esta semana demos início à organização do FLISOL 2011, que acontecerá em um sábado, no dia 09 de abril. Em Vitória, estamos trabalhando em um evento de dia inteiro, em local ainda a ser definido, mas já estamos recebendo inscrições de palestras! Ficou interessado? Você pode submeter sua proposta de palestra preenchendo o formulário abaixo:

Loading…

Você pode enviar quantas propostas quiser, mas caso mais de uma proposta sua seja escolhida, você deverá escolher apenas uma para apresentar. A ideia é fazer um evento que marque o movimento de software livre no estado, será um evento organizado por todos nós e precisamos da sua colaboração! :)

[Bernardo Heynemann] Dream Team Part VIII – Autonomation

Monday, December 27th, 2010

Introduction

Jidoka, also known as “intelligent automation” or “automation with a human touch”, is lean’s way of automating repetitive tasks.

This time we join the INews team as they try to define how far to go with automating or not repetitive processes.

Autonomation

John – Hey guys! How was christmas?
Jane – Pretty good! Yours?
John – Really cool. What about the rest of you?
All – It was great!
Christian – We’ve been talking a lot about lean concepts and I’m not that familiar with lean methodology. Whenever I don’t know something I yearn to learn it. I’ve spent all my free time in the last weeks studying it. One thing that comes over and over is autonomation. That is a kick-ass concept!
Jane – Autonomation?
John – Yeah Jane. Autonomation means automation with intelligence.
Jane – What do you mean “with intelligence”?
John – Well, machines lack intelligence, right? That’s why it’s called artificial intelligence. So automation with intelligence means automation with humans involved. It means automating to become more efficient. It means automating well-known repetitive tasks.
Jane – Oh. I see.
Susan – I think we do that already, right? Our build is automated, for one. Oh! Our tests are automated as well! Hmm… I see your point! We could build and test our app ourselves. We just automated it so we are more effective. We didn’t replace ourselves for a machine. We are using it to help us!
John – Exactly. Still, I think we are not aggressive enough with autonomation. Susan, when we finish stories, what do you do to help us accept them?
Susan – I verify the results versus my mock screens to see that you got the proper sizes, margins, etc.
John – And that’s pretty repetitive, isn’t it? That’s something we could come up with a creative way of automating. Joseph, you perform a lot of exploratory testing as well don’t you?
Joseph – Yes I do, but how can you automate exploratory testing, which is by definition human?
John - Hmm… We can’t automate exploratory testing. What we can do is automate the tests you perform every time. We could come up with some strategy to record the tests you do and automate those. This way, every time you did exploratory testing we would end up with a richer testing suite.
Joseph – I see. Well, I guess we could be more aggressive about autonomation.
Christian – So it seems like a team value, doesn’t it? Automating things to improve our effectiveness.
Joseph – Indeed it does, Christian. Indeed it does.

Conclusion

There’s a big emphasis on not automating things with the intent of replacing humans. The goal of jidoka is to make humans more effective and aid them in detecting problems early and often.

Whenever something can be automated to improve the team’s capacity to respond to change, it should be. The automation should not happen before the actual way of doing things is well-known to the people involved. This is paramount so the automation has the proper goal (as outlined above).

[Guilherme Garnier] Ubuntu Netbook Remix no HP Mini

Monday, December 20th, 2010

Outro dia um amigo me pediu para instalar o Ubuntu no netbook dele, um HP Mini (não lembro exatamente qual modelo). Baixei o Ubuntu Netbook Remix 10.10 e instalei no pen drive, seguindo as instruções que aparecem na página de download. Em seguida, fiz o boot pelo pen drive e iniciei a instalação. Tudo ia bem até que em determinado momento recebi uma mensagem de erro. Não lembro qual era a mensagem, mas parecia ser algo relacionado a disco. Tentei novamente e o erro se repetiu.

Em seguida, lembrei que quando eu havia instalado este mesmo sistema operacional num outro netbook HP Mini, mas a versão do Ubuntu era 10.04. Como a página principal do Ubuntu só disponibiliza links para download da última versão, encontrei as versões anteriores na página Ubuntu Releases. Na página específica da versão 10.04 (Lucid Lynx) o link aparece como PC (Intel x86) netbook live CD.

Após baixar esta versão e instalá-la no pen drive, tudo funcionou. Aparentemente é algum problema relacionado com a versão 10.10 mesmo. Tudo funciona de primeira, sem necessitar qualquer configuração (bluetooth, som, webcam, etc.), exceto o wifi. A página Hardware support do wiki do Ubuntu traz a solução: basta conectar o netbook à Internet via porta Ethernet e reinstalar o driver bcmwl, digitando no terminal: sudo apt-get install bcmwl-kernel-source. Após a instalação, reinicie o netbook e tudo funcionará.

Posts relacionados:



[Tarsis Azevedo] Django Trick: Hospedagem grátis no Alwaysdata

Thursday, December 16th, 2010

Quem programa em django, sente falta de um Heroku[1], como no rails para fazer deploy e colocar a aplicaçao online mais rapido e de graça.

Obervação: Existe um serviço que tem essa proposta, ser um Heroku pra Django, é o Djangy (https://www.djangy.com/), Porem ele esta em teste! Voce pode entrar e pedir um convite. Eu ja pedi mas nao foi aceito ainda! =/

 

 

Uma Solução…

… pra esse problema é o alwaysdata.com . Eles tem varios planos de hospedagem, e um deles é totalmente free!!! xD

Assim, voce pode desenvolver sua aplicação e ja colocar no ar! 

 

Facil assim?

Sim, fácil assim!! A interface deles é muito simples. Você configura seu servidor com a versão do python/django que usa com 1 clique.

Depois é só enviar a aplicação via ssh para o server, seguir os passos deles pra deploy[2] e pronto, sua aplicação django estará no ar!!!

 

Que massa! Isso é perfeito!

Não!

Ele tem alguns pequenos problemas:

  1. Algumas partes importantes do site estao em frances
    • pagina da wiki que ensina o deploy e o acesso via ssh
  2. Não tem um script ou deploy automatizado como o Heroku
    • Isso pode ser feito com um shell script simples(No proximo artigo deste blog)
    • Pra agilizar, voce pode habilitar o acesso ao ssh sem senha[3]
  3. O plano é fraco
    1. Mas, se seu objetivo é só “testar” em produção ele te atende!
    2. É uma forma de aprender fazendo 
    3. E é de graça!!!

Até a proxima pessoal,

 

Abraços.

[1]http://heroku.com/

[2]http://wiki.alwaysdata.com/wiki/D%C3%A9ployer_une_application_Django

[3]http://tarsisazevedo.posterous.com/truque-ssh-sem-senha

 

 

 

 

Permalink

| Leave a comment  »

[Igor Sobreira] Mocks, Stubs, Fakes and Spies

Wednesday, December 15th, 2010

Reading the Continous Delivery book I found a good definition of mocks, fakes, stubs and spies:

  • “Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production. A good example of this is the in-memory database.
  • Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what’s programmed in for the test.
  • Spies are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.
  • Mocks are pre-programmed with expectations which form a specification of the calls they are expected to receive. They can throw an exception if they receive a call they don’t expect and are checked during verification to ensure they got all the calls they were expecting.”

This terminology was taken from xUnit Test Patterns book.

I’ve already seen cases where people write lot’s of unit tests, abusing from mock objects, but without good integration and acceptance tests you can’t really guarantee that each scenario is really working as expected.

“It’s very easy to misuse mocks to write tests that are both pointless and fragile, using them simply to assert the specific details of the workings of some code, rather than an assertion of interactions with collaborators.”

A couple links if you want to read more about it: