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]

Quinta-feira Abr 02, 2009

Apresentação Introdutória ao Open Solaris

Nesta terça-feira ocorreu a minha primeira apresentação como embaixadora de Campus Sun para uma turma de Sistemas de Informação na UFSC.

Confesso que faria algumas coisas de maneira diferente se fosse reapresentar, como desligar o ar-condicionado para que o pessoal do fundo pudesse me ouvir, e levar uma garrafinha de água para ir tomando. Ah, eu teria me preparado melhor para apresentar o DTrace, acabei achando que não iria apresentá-lo na prática e houveram pessoas interessadas. Para a próxima apresentação eu vou tentar configurar o plugin do Netbeans corretamente para mostrar algumas aplicações interessantes. Mas, de maneira geral, acho que foi uma palestra bastante interessante, especialmente considerando que foi a primeira.

 Confira os slides apresentados e uma lista de links para aqueles que se interessaram pelo assunto.

[Read More]

Sábado Mar 21, 2009

Todo Software Tem Seu Preço

No meu outro blog, o Disk Chocolate, eu postei um tema pertinense à software livre: Todo Software Tem Seu Preço. Fala sobre os custos envolvidos em desenvolver algo, e em quem arca com esses custos quando não é o consumidor final que coloca a mão no bolso.

Mais importante do que isso é pensar na importância do software livre. Não só por ser gratuito, mas por ser democrático, por permitir que pessoas de diferentes necessidades tenham softwares diferentes, e que pessoas que não tem como pagar 700 dólares em um Photoshop possam editar suas imagens com o Gimp, por exemplo.

O que vocês acham desse tema? Já pararam para pensar a respeito?

[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]

Quarta-feira Fev 25, 2009

Diário de Uma Embaixadora de Campus, parte I

Quando você para e pensa nas coisas que acontecem, alguns fatos e sequências chegam a parecer... ligeiramente irônicos. 

Eu fiz um curso técnico de informática, na Escola Técnica Tupy, em Joinville. Meu desejo de fazer esse curso começou anos antes, fruto de uma admiração pelo meu pai: ele fizera esse curso e eu admirava o trabalho dele, logo, era apenas lógico eu querer fazer o mesmo curso. Além do mais, que área melhor para uma perfeita sedentária que gosta de ficar horas sentada na frente de um computador do que a área de informática?

Adoravas as primeiras aulas de programação - ficar pensando na melhor maneira de fazer cálculos simples era quase um hobby. No ano seguinte, veio o Java. Eu odiei, com todas as minhas forças. Era uma coisa confusa, e, bem, eu não gostava de programar a parte visual - não gostava naquela época, gosto muito menos hoje. Fez meu amor por programação diminuir e me fez fugir para uma área um pouco diferente - quando chegou a hora de prestar o vestibular, eu optei pelo curso de Engenharia de Controle e Automação Industrial. Parte da escolha foi motivada pelo fato de que, se eu fosse programar algo, provavelmente seria um microcontrolador com não mais do que uma simples interface em 4 cores.

Eu estava enganada. Por volta do quarto semestre, eu comecei a ajudar um mestrando do laboratório de acústica com um programa para analisar sons... feito em Java. O que mais tarde me ajudou a conseguir uma vaga no GSIGMA, para auxiliar outro mestrando a desenvolver uma aplicação em... Java. Para Web.

A essa altura, eu já tinha recuperado minha paixão por programação e começado a gostar de Java. Aliás, comecei a gostar tanto de Java que me motivei a ir em um evento para desenvolvedores Java que ocorreu no final do ano passado em Florianópolis e sobre o qual eu escrevi aqui e aqui.

Lá eu conheci o Lucas Torri e o Bruno Ghisi, que também estudavam na UFSC. Acabamos conversando e trocando e-mails. Alguns dias mais tarde, eu recebi um e-mail do Lucas, avisando sobre uma vaga como embaixador de campus da UFSC. Eu resolvi me candidatar e mandei meu currículo, e o Lucas encaminhou o currículo (junto com um link para o meu blog, que eu havia esquecido de mencionar no meu currículo) para o Eduardo Lima, responsável pelo programa de embaixadores no Brasil.

Duas entrevistas depois, alguns dias de espera, e veio a boa notícia: eu havia sido escolhida como nova embaixadora de campus! Eu costumo ficar muito empolgada com essas coisas, o que quer dizer que eu comecei a pular pela casa quando recebi a notícia :-)

Isso aconteceu um pouco antes do Natal. Eu me lembro de ficar realmente confusa sobre o que deveria fazer a seguir. Ser uma embaixadora de campus da Sun é algo muito interessante, ainda que seja fácil ficar perdido no início. O que fazer primeiro? O que é necessário ser feito? OK, em qual dos 4012842 sites da Sun está aquela informação que eu preciso...?

Pensando nisso, eu decidi manter um diário de embaixadora de campus Sun por dois motivos em especial:

  1. Para servir de referência para mim mesma. Eu costumo me esquecer das coisas, e ter algo escrito é muito útil. Eu já tenho alguma experiência com isso: diversas vezes eu já consultei minha própria documentação para relembrar de alguma coisa.
  2. Para ajudar outros novos embaixadores e compartilhar experiências - é legal saber que você não é a única pessoa que se sente perdida ao se tornar embaixador de campus.

Para começar, vamos lembrar algumas das obrigações básicos que o embaixador de campus deve seguir no decorrer do ano:

  1. Terminar o ciclo de treinamento descrito no Notes / Training Syllabus
  2. Dar palestras e tech demos das tecnologias Sun, como o Open Solaris, Java, Netbeans, Sparc, Sun SPOT...
  3. Construir e manter  uma comunidade de pessoas interessadas nas tecnologias Sun e no mundo open source na sua universidade.
  4. Manter contato com os outros embaixadores e pessoas relacionadas à Sun para trocar conhecimentos e idéias.
  5. Promover e ajudar com eventos na sua universidade.
  6. Escrever sobre eventos e novidades Sun no seu blog.

É claro que outras pessoas podem dar outras listas de responsabilidades - e provavelmente até mais corretas; lembrem-se que eu sou apenas uma embaixadora iniciante, com não mais do que dois meses de experiência. E como esses meses não foram de aula, minhas atividades foram bastante limitadas nesse período.

De qualquer maneira, vamos olhar o que eu tenho feito nesses dois meses:

  1. Após receber meu Sun ID, criei meu blog em http://blogs.sun.com.Ou melhor, meus dois blogs: http://blogs.sun/cindydalfovo, que você está lendo nesse momento, e http://blogs.sun.com/cindy, que é a versão em inglês desse blog.
  2. Criei meu perfil no OSUM - Open Source Unniversity Meetup, que, como você pode adivinhar pelo nome, busca reunir pessoas interessadas no mundo Open Source. Aliás, se você quiser se juntar ao grupo da UFSC, sinta-se à vontade ;)
  3. Criei meu perfil no Sun Ambassadors, a comunidade dos embaixadores Sun, e onde se encontra o Campus Ambassador Handbook, que é provavelmente o lugar onde se encontram a maior parte das informações necessárias para quem é embaixador de campus.
  4. Cadastrei-me nas comunidades de desenvolvedores da Sun, de Java, do Netbeans e do OpenSolaris
  5. Comecei meu treinamento no SAI, além de ter instalado as ferramentas básicas de desenvolvimento e testado o Elluminate!, que é ferramenta de conferência utilizada. Essa ferramente entrou em conflito com os controles de som no Ubuntu, mas funcionou sem maiores problemas no Open Solaris. 
  6. Comecei a relatar meus avanços no CART, embora eu ainda não tenho muito o que relatar, e posts em blogs parecem contar pouco, já que são apenas opcionais.

Além disso, algo que me deixou bastante feliz é que eu entrei em contato com um grupo de estudantes de sistemas de informações interessados no Open Solaris, então é quase certo que eu vou dar uma palestra sobre o Open Solaris logo no início do semestre e distribuir Live CDs e livretos informacionais. Eu fiquei feliz porque a iniciativa de construir um grupo voltado à software livre foi tomada por um aluno e é mantida por alunos, distribuindo Live CDs e incentivando o uso de software livre.

Também, um rapaz que está fazendo seu TCC na área de inclusão digital para crianças se interessou pelo Alice, um ambiente de desenvolvimento para crianças, no qual elas podem construir pequenos vídeos utilizando blocos e modelos fornecidos junto com o programa, e que é mantido no Kenai, o forge da Sun. Se tudo der certo, nós poderemos fazer algo com o Alice para apresentar às crianças. Eu adoraria, já que uma coisa que eu sempre quis fazer é participar de algum tipo de trabalho voluntário relacionado à crianças :-)

Tive de pensar em algo para apresentar ao coordenador do meu departamento como proposta de estágio, e junto com o Eduardo Lima chegamos a uma proposta de trabalho usando o Sun SPOT: criar um protótipo de controle para substituir o mouse para pessoas com deficiências relacionadas aos movimentos da mão. Por isso vocês tem visto os tutoriais de Sun SPOT, já que eu estou o estudando para poder desenvolver algo no decorrer do semestre :-)

No mais, agora eu pretendo atualizar esse diário com maior frequência, já que deixar para atualizar tanto de uma vez pode se tornar um pouco cansativo :)

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

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