Terça-feira Ago 18, 2009

Java, Web e Netbeans, parte I: Webservices [Um Estudo de Projeto]

Hoje eu vou iniciar uma série de tutoriais voltados a diversos aspectos do desenvolvimento do software que eu desenvolvi em um projeto para a faculdade. Tanto para ajudar outras pessoas que venham a desenvolver projetos de necessidades parecidas, quanto para que eu não me esqueça dessas coisas...

Para essa primeira parte, vamos dar uma olhada nos requisitos e, então, dar uma olhada em como desenvolver, implantar e testar um serviço web.

Imaginemos a situação: o seu negócio consiste em um módulo que auxilia empresas a encontrarem distribuidores dos produtos que precisam como matéria-prima - por exemplo, que ajude a encontrar a loja mais próxima com um produto, ou que tem o número de itens necessários, ou o melhor preço, etc. Você tem dois tipos de clientes: as empresas, e os distribuidores cadastrados.

Você poderia inicialmente pensar em dispor isso através de uma página web, que se conecta ao banco de dados com as devidas informações em um servidor. Isso resolve o problema, certo?

Mas e se a empresa tiver um módulo que auxilie essa análise? Digamos que a empresa tenha um módulo que automaticamente procura distribuidores caso o estoque de um determinado item esteja baixo. Não basta que você crie uma interface para as informações, a empresa precisa trabalhar com essas informações da sua maneira, ela deve conseguir obter uma lista de distribuidores de um determinado item sem que seja necessária interação humana.

É aí que surge o webservice, como uma "ponte" entre sistemas de diferentes linguagens, em diferentes servidores, com diferentes finalidades. O webservice serve para conectar dois programas, duas aplicaçõe diferentes.

[Read More]

Quinta-feira Mai 14, 2009

Projeto com o Sun SPOT: Definindo os Requisitos

Meu projeto de estágio consiste em desenvolver um driver, ou alguma outra maneira de utilizar um Sun SPOT como mouse para pessoas com problemas de acessibilidade. Eu escolhi esse tema por ser algo bastante motivante trabalhar em algo que possa ajudar as pessoas a se comunicarem e interagirem com meu meio.

Um segundo passo consiste em definir melhor PARA QUEM eu pretendo desenvolver esse projeto, já que existem inúmeros problemas de mobilidade - desde pessoas com problemas apenas nos dedos, pessoas com artrite passando até mesmo para pessoas que não possuem mobilidade alguma além de piscar os olhos.

Por outro lado, pela própria versatilidade de configurações que o SunSPOT e Java me permitem, não há porque restringir demais o público, já que em algumas casos é apenas uma questão de definir alguns parâmetros e calibrar o SunSPOT. No caso, eu pensei em duas maneiras de movimentar o SunSPOT:

  1. Movimento com a cabeça: para mexer para a esquerda, mexer a cabeça para a esquerda, para mexer para a direita, mexer a cabeça para a direita, para mexer para baixo, mexer a cabeça para baixo, e para mexer para cima, mexer a cabeça para cima.
  2. Movimenta com o braço: os movimentos para cima e para baixo seriam os mesmos, mas com o braço/mão pode ser mais simples, ao invés de virar o braço para fazer o movimento "em arco" que é feito com a cabeça, é mais prático mexer o braço para a direita e para a esquerda girando o cotovelo, e não o braço.

[Read More]

Sábado Mar 21, 2009

[Tutorial] Aprendendo a Mexer com o Sun SPOTS, parte III: Meet the Sun SPOTS!

Há pouco tempo eu recebi um kit de Sun Spot da Sun, e peguei um kit que estava emprestado a um professor da pós-graduação na UFSC. Ou seja, estou com dois kits completos aqui. Como seria um pecado deixá-los encostados, eles terão dois usos a príncipio:

  1. Desenvolver algo (possivelmente um driver, ou um mini-software) que ajude pessoas com deficiências relacionadas ao movimento de mãos e dedos a mexerem no computador. Algo como um mouse com acelerômetro. Sim, eu pretendo explicar melhor esse projeto, até mesmo porque eu pretendo descrever cada etapa de planejamento e cada avanço aqui.
  2. Pretendo desenvolver um mini-curso envolvendo os Sun SPOTS. Se tudo der certo e algumas pessoas se interessarem, eu espero conseguir montar uma pequena equipe interessada em desenvolver um projeto com ele. Que projeto? Bom, vamos ver o que surge no mini-curso... :)

Ah, vocês querem ver como são os Sun SPOTs? Pois bem, eu tirei algumas fotos:

Sun SPOT - os aparelhos

[Read More]

Sexta-feira Mar 13, 2009

Instalando Programas no OpenSolaris com a Ajuda do Blastwave

Eu estou atrás de alternativas livres ao MatLab. Como já ouvi dizer que o Octave tem a mesma semântica do MatLab, resolvi testá-lo - afinal, na aula eu uso o MatLab e não seria muito prático eu ter de refazer programação cada vez que fosse da faculdade para casa.

Como eu estou estudando o OpenSolaris, resolvi unir as duas coisas de uma vez e tentar instalar o Octave no OpenSolaris. O que não é exatamente um passeio no parque, graças ao fato da última versão compilada no SunFreeware ser a 2.7 e o programa já estar na versão 3.03. Ou seja, lá vamos nós baixar e compilar o Octave no braço.

Idealmente, compilar um programa deveria ser algo simples e rápido no terminal:

./configure

make

make install

E pronto. O problema é, justamente, após a primeira linha e os zilhões de dependências que você descobre que não tem.

[Read More]

Segunda-feira Fev 23, 2009

[Tutorial] Aprendendo a Mexer com o Sun SPOTS, parte 2: O Acelerômetro

Conhecendo o Acelerômetro

Na página de documentação você encontra um PDF com informações sobre o acelerômetro. Antes de começar a programar freneticamente, vamos conhecê-lo um pouco melhor: trata-se de um acelerômetro de três eixos, conforme ilustrado abaixo:

Acelerômetro do SunSPOT

As setas e os sinais indicam em que sentido os valores serão negativos, e em qual direção eles serão positivos - por exemplo, ao inclinar o acelerômetro para cima, o valor do eixo Z será positivo.

Continue lendo para conferir mais detalhes sobre o acelerômetro.

[Read More]

Quinta-feira Fev 19, 2009

[Tutorial] Aprendendo a Mexer com o Sun SPOTS

Mexer com hardware envolve coisas misteriosas como comprar placas, ter de aprender a mexer com Assembly (ou com C, na melhor das hipóteses), montar redes místicas e torcer para nada queimar… e eu nem mencionei em tentar colocar periféricos extras e mais interessantes do que… LEDs.

Atualmente, existem algumas alternativas para quem quer mexer com um hardware mais interessante e de maneira não tão complicada - uma que eu posso mencionar que eu já usei é o kit de Lego Mindstorms - você pode criar bonecos em legos, colocar sensores de luz, de pressão, colocar motores, e programar tudo isso a partir de uma programação em blocos simples (mas limitada) provida pela kit, ou programar em C e passar o programa através de infravermelho para o robô feito de Lego.

Bom, o resultado do meu grupo quando nós tivemos de fazer um projeto com isso na faculdade foi esse:

Lego Mindstorms - AGV

Lindo, né? Trata-se de um pequeno veículo para levar e trazer peças em um chão de fábrica. Nada funcionou como a gente esperava na hora que a gente precisava, mas tudo bem…

O problema desse tipo de solução é que eles ainda são muito caros - especialmente aqui no Brasil. Um kit do Mindstorms mais recentes (e mais bacana) custa cerca de 1000 reais aqui no Brasil. Não é exatamente algo que você pense "ah, ok, vou comprar um para ver como é…". Mas é o tipo de coisa que eu gostaria de dar para um filho, se ele se interessasse e eu tivesse condições. Ein, meu filho será filho de dois engenheiros nerds, vocês tem ALGUMA dúvida de que ele será criado como uma criança tr00 nerd?

Devaneios maternais de lado, outra solução é o Bug Labs, que oferece um kit básico e "apetrechos" extras para você fazer coisas mais interessantes, como uma câmera de 2MP, GPS, uma base para você conectar apetrechos via USB, sensor de movimento, acelerômetro… o problema, novamente, é o preço: 250 dólares pela base, e de 50 a 80 dólares pelos módulos extras. Mas ele traz uma SDK para ajudar no desenvolvimento, e é open-source.

A outra opção que eu conheço e sobre a qual eu vou falar é a solução da Sun, o Sun SPOTS. Basicamente, são pequenos hardwares que você pode programar em Java, já que ele roda uma máquina virtual. Conta com acelerômetros, sensores de luz, botões analógicos e digitais, etc.

[Read More]

Segunda-feira Fev 16, 2009

Personalizando o Blog Sun

E finalmente eu criei meu blog Sun! Eu pensei em continuar apenas com o meu blog pessoal, o Disk Chocolate, mas achei que seria interessante manter um blog mais voltado a desenvolvimento e programação, e outro mais pessoal.

Com meu Sun ID em mãos, não foi muito difícil ir em blogs.sun e criar meu blog. O passo seguinte? Escolher o tema. Costuma ser uma decisão tomada em segundos pela maioria das pessoas, mas, bem...

  1. Eu sou uma pessoa EXTREMAMENTE indecisa. Sou do tipo que tem de pensar até quando alguém pergunta "está com fome?" e eu respondo "não... espera, sim! Eu estou com fome!"
  2. Eu gosto de webdesign, eu aprecio bons sites e sou maníaca por internet. Enfim, meu blog é a minha aparência na web e eu não consigo ser displicente com algo assim.
  3. Eu sou mulherzinha e tenho algumas frescuras, oras.

Ou seja, eu fiquei uns bons vinte minutos olhando os temas e não consegui escolher nenhum. Eu até comecei a alterar um dos temas para que ele ficasse com cores mais bonitas, já que ele por padrão tem uma paleta de cores laranja com marrom horrenda. Mas não deu certo - eu simplesmente não tenho talento para essas coisas, infelizmente.

Mas eu me lembrei que o Sun Blogs usa o Apache Roller. Que é livre. E que, diabos, deveria ter alguns temas no Google. Dito e feito: O primeiro resultado para "apache roller themes" é justamente... o Roller Themes. São poucos temas se comparados com a quantidade de temas que pode ser encontrada para o Wordpress, o que talvez seja explicado pelo viés mais "empresarial" do Roller.

É claro que é possível personalizar um tema livre qualquer para utilizá-lo no Roller, mas eu estava atrás de algo mais imediato. Claro, nada impede que futuramente eu venha a me aventurar por esses lados...

De qualquer maneira, eu acabei gostando bastante do tema Stylized e resolvi baixá-lo. Tema baixado e descompacto, restava saber como colocar esse tema no meu blog.

Não foi muito difícil descobrir o que deveria ser feito nessa tela, por exemplo (que pode ser vista escolhendo-se Design e então Themes no menu principal):

Apache Roller - Seleção de Tema

Depois de escolher Custom Theme e salvar, o que fazer? Bom, as imagens e outros arquivos que estejam em pastas separadas no tema devem ser carregas atrás do File Upload, que se encontra na aba Create & Edit:

Apache Roller - File Upload

Por exemplo, os temas costumam ter uma pasta chamada images. Cria-se, então, uma pasta com esse nome (digitando o nome na caixa ao lado de "New directory" e clicando em create), entra-se nessa pasta e então carregam-se os arquivos (até 5 por vez, com um máximo de 2MB por arquivo e 250MB no total).

No meu caso, eu tinha as pastas images e styles para carregar.

Feito isso, precisa-se alterar os templates. Isto é feito na parte de templates da aba de design:

Apache Roller - Templates

A raiz do meu tema possuía cinco arquivos: uma imagem de preview do tema, um arquivo theme.xml, um Weblog.vm, um _css.vm e um _day.vm. Apenas os arquivos .vm, que são os templates escritos em Apache Velocity, nos interessam. O arquivo Weblog já existe por padrão. Clique nele e use o bom e velho CTRL+C, CTRL+V do seu tema para o editor na tela e salve as alterações. Os arquivos _css e _day terão de ser criados, no entanto.

Adicione-os onde diz "Add new Template": Ambos são de action "custom", e nos dois casos o nome deve ser informado sem o .vm (já que se trata de uma extensão implícita nesse caso, por se tratar de um template). Após criar os arquivos, basta clicar no nome deles e, novamente, copiar e colar do seu tema para o editor na tela.

Após fazer isso e salvar suas alterações, seu blog já deve estar com o novo tema. Deu certo por aqui, como vocês podem perceber :-)

Uma coisa que eu percebi ao olhar os temas é que é as tags para que o tema pegue os arquivos nos lugares certos é bastante simples. Por exemplo, no _css.vm, que é um arquivo de css dinâmico e que pega as imagens do tema, as imagens são referenciadas da seguinte maneira:

background: #FFFFFF url($url.resource("images/img01.gif")) repeat-x;

Onde $url.resource certamente serve para recuperar o endereço da pasta de recursos do blog, e então adiciona-se o endereço relativo do recurso, no caso a imagen img01.gif na pasta images.

Já no caso dos templates, onde Weblog.vm adiciona _css.vm como folha de estilos, temos algo como:

<style type="text/css">#includeTemplate($model.weblog "_css")</style>

Fica a dica para quem estiver tentando modificar um tema. Mas, claro, a melhor dica continua sendo fuçar nos temas já existentes, até porque você pode começar a personalizar seu tema a partir de um dos temas que a Sun oferece.



About

Blog com tutoriais relacionados a desenvolvimento de software, especialmente Java, e que conta com as experiências de desenvolvimento de uma menina maluquinha, digo, eu.

Search

Categories
Archives
« Abril 2014
SegTerQuaQuiSexSábDom
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today