November 19th, 2008 — Dito TechTalk
Ontem realizamos aqui na Dito o nosso segundo TechTalk. O tema dessa vez foi Rspec e quem falou sobre o assunto para o resto do time foi o Breno, que está trabalhando com a gente desde o final de setembro. A apresentação foi ótima e passou uma visão geral para aqueles que não estão muito por dentro do assunto.
Já estava passando da hora de mudarmos nossos testes para o rspec. A partir de agora todos os projetos serão testados usando BDD e pretendemos aumentar a proporção do número de linhas de testes para cada código de implementação.
October 21st, 2008 — Desenvolvimento, Dito, Dito Schools, Rails, Tecnologia
Há várias formas para começar usar um servidor git. Dentre elas podemos citar:
É possível apenas instalar o git em um servidor e colocar os repositórios em pastas públicas do servidor.
Outra possibilidade é hospedar utilizando algum serviço web como por exemplo github e o gitorious
O Gitorious pode ser instalado em um servidor próprio como mostrado no tutorial do Akita
Outro modo bem rápido de se instalar o servidor git, utilizando ssh é através do Gitosis.
Segui o tutorial em http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way e não tive problemas na instalação. E é este artigo que segui como base para fazer este post.
Fiz a instalação no ubuntu e o que fiz foi:
Primeiramente voce deve ter o git instalado no seu servidor. Caso não tenha basta utilizar o apt para instalar
sudo apt-get install git-core
Após instalado o git, deve-se baixar o gitosis.
git clone git://eagain.net/gitosis.git
Depois de baixar o gitosis deve-se instalá-lo, para isto:
cd gitosis
python setup.py install
Caso receba uma mensagem como:
-bash: python: command not found
ou
Traceback (most recent call last):
File "setup.py", line 2, in ?
from setuptools import setup, find_packages
ImportError: No module named setuptools
Estas mensagens ocorrem porque voce não tem o pacote python-setuptools instalado. Para instalá-los basta:
sudo apt-get install python-setuptools
Após instalado o pacote python-setuptools execute a instalação do gitosis novamente.
Com o gitosis instalado, agora voce deve criar um usuário para o git. O usuário que o autor recomenda é o usuário git, sem password válido, e ele pode ser criado com o comando:
sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git
Se a criação do usuário foi feita com sucesso, deve aparecer algo como:
Adding system user `git'...
Adding new group `git' (211).
Adding new user `git' (211) with group `git'.
Creating home directory `/home/git'.
Após criado o usuário no servidor, é necessário criar uma chave rsa no seu computador. Para isto utilizamos o ssh-keygen e o comando para criar uma chave rsa é (digitado no seu computador):
ssh-keygen -t rsa
Após executado o comando a chave pública e privada são criadas em ~/.ssh
Para copiar a chave gerada para o servidor podemos utilizar o comando abaixo:
scp .ssh/id_rsa.pub git@ENDERECO DO SERVIDOR:/tmp
No servidor, para iniciar o servidor basta digitar:
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
É necessário ter permissão no arquivo post-update, portanto digite:
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
Agora em sua máquina execute:
git clone git@ENDEREÇO DO SERVIDOR:gitosis-admin.git
cd gitosis-admin
No diretório gitosis-admin haverá um arquivo chamado gitosis.conf que será utilizado para a configuração do gitosis.
Adicionando um novo projeto
Para se adicionar um novo projeto adicione as linhas no gitosis.conf com as informações do seu novo projeto:
[group meu_time]
members = nome_do_usuario
writable = nome_novo_projeto
Deste modo, voce criará permissão para o usuário no seu novo projeto
Após alterado o arquivo gitosis.conf dê commit nele para o servidor:
git commit -a -m "Permissão de acesso ao novo projeto para o usuário"
git push
Agora deve-se criar o repositório e enviá-lo:
mkdir nome_novo_projeto
cd nome_novo_projeto
git init
git remote add origin git@NOME_SERVIDOR:nome_novo_projeto.git
#Adicione arquivos e dê commits (git add, git commit)
git push origin master:refs/heads/master
Adicionando usuários
Para adicionar usuários, deve-se copiar as chaves públicas para o diretório gitosis-admin/keydir
cd gitosis-adimn
cp ~/jose.pub keydir/
cp ~/maria.pub keydir/
git add keydir/jose.pub keydir/maria.pub
no arquivo gitosis.conf adicione:
[group meu_time]
members = nome_do_usuario maria joao
writable = novo_projeto
Dê commit e push:
git commit -a -m "Adicionar permissão à Maria e João ao novo projeto"
Agora Maria e João têm acesso ao novo_projeto.
No windows:
Para adicionar as chaves no windows, criei as chaves utilizando o ssh-keygen no mac
(Lembre-se que ao gerar a chave em outro computador, voce deve editar a chave pública e alterar o usuário pois a chave será gerada para o usuário que está logado no computador que a chave for gerada)
ssh-keygen -t dsa -f
Depois copie para a pasta “c:\Documents and Settings\\.ssh” com os nomes “id_dsa” e “id_dsa.pub”
Utilizando o ssh em outras portas
Para se utilizar o ssh em outras portas deve-se alterar o arquivo ~/.ssh/config
Host meuservidor.com
Port 1234
July 18th, 2008 — Dito Schools, Dito TechTalk
Depois de duas semanas estudando a plataforma Open Social e desenvolvendo alguns widgets, amanhã vamos fazer nosso primeiro Dito TechTalk. O nome foi inspirado na iniciativa de mesmo nome feita pelos nossos amigos do Brasigo. A idéia é fazer uma apresentação do que foi aprendido nesse tempo para o resto da equipe, um resumo dos estudos, das dúvidas e dificuldades que surgiram e foram resolvidas e dos caminhos e atalhos.
Nossa idéia é fazer um TechTalk sempre que alguém aprender algo novo, seja uma linguagem, metodologia, forma de implementação ou qualquer coisa interessante.
July 14th, 2008 — Baú de Arquivos
O Baú de Arquivos sofreu algumas melhorias nos últimos dias. A principal entre as novas funcionalidades é o surgimento de um perfil para o usuário. Quando surgiu a idéia para a criação de um perfil, foi consenso geral entre a equipe de produção para que o usuário deixasse de ser apenas um nome e adquirisse um pouco mais personalidade dentro do Baú. Este perfil, bem diferente do estilo “orkut” que engloba diversos dados pessoais, é bem sucinto e visa basicamente, além de diferenciá-los, facilitar a interação entre os usuários. Integradas ao perfil vem algumas novas funcionalidades entre elas o envio de recados (públicos ou privados). Uma funcionalidade na minha opinião fantástica que também está embutida no perfil é a visualização de todos os arquivos compartilhados entre dois usuários. Aqui na empresa, onde todos os arquivos são compartilhados pelo Baú de Arquivos, a diferença trazida por esta funcionalidade foi sentida muito rapidamente já que conferiu maior agilidade ao trabalho do dia-a-dia.

Os grupos sofreram algumas pequenas modificações. As antigas telas estavam muito cheias e isso dificultava ao usuário distinguir as informações realmente relevantes. Antes a mesma tela que mostrava um grupo listava também os arquivos e os usuários membros do grupo. Após as modificações, a tela principal de um grupo lista apenas a descrição e as opções do mesmo, entre elas o acesso aos membros ou arquivos de um grupo.

Tela antiga: Os grupos listavam em uma só tela a descrição, os integrantes e os arquivos. Resultado: Uma tela visualmente saturada.

Tela nova: Após clicar em “arquivos”, uma tela é aberta somente para listar os arquivos de um grupo.

Tela nova: Após clicar em “integrantes”, uma tela é aberta somente para listar os integrantes de um grupo.
Uma mudança apenas conceitual no Baú é a transformação dos antigos “Amigos” em “Contatos”. Devido ao fato do baú contar com usuários para uso corporativo e pessoal, verificamos a necessidade formalizar o relacionamento entre os usuários.
“Lista de Contatos”, além de soar bastante mais formal, não sugere que os usuários ali listados possuem qualquer tipo de ligação estreita com o usuário dono da lista. Consideramos esta mudança, inicialmente pensada apenas para os usuários corporativos, benéfica para todos os tipos de usuários do Baú, embora tenha sido melhor sentida pelos usuários corporativos.

Tela antiga: Ar informal ao listar “amigos”

Tela atual: Ar mais formal ao transformar “amigos” em “contatos”.
Outra novidade é que os usuários corporativos que possuem contas pagas podem criar sub-usuários com permissões e recursos diferenciados. Isto permitiu que os usuários do cliente trabalhem com uma interface ainda mais fácil. A empresa também pode adicionar seu logo ao sistema, tornando o sistema mais personalizado.
Uma questão levantada por alguns clientes é que os usuários se esqueciam de compartilhar os arquivos na hora do envio. Por isso, agora é possível que os arquivos enviados pelos clientes sejam automaticamente compartilhados com a empresa. Uma área administrativa foi criada para que o cliente possa ter informações dos seus usuários e planos.
July 3rd, 2008 — Dito, Trabalhe Conosco
Despedida é sempre ruim. Provavelmente porque significa o encerramento de uma fase. Hoje para mim encerra-se o meu primeiro estágio, na empresa incubada “Dito – Idéias e Soluções”. Quando me foi oferecida a oportunidade de estagiar na empresa aceitei logo de cara; conhecia o perfil dos meus futuros chefes e mal podia esperar para aprender com eles. Inicialmente senti que pouco podia contribuir com a empresa uma vez que todos os funcionários já estavam bem próximos de formar e detinham muito conhecimento da área de programação web, o que pra mim, até então, era um mundo totalmente desconhecido. Confesso que me surpreendeu a boa vontade e paciência do André e do Bruno quando angariaram uma estagiária que só tinha dois períodos de Ciência da Computação cursados. Foi preciso muita paciência para que eu aprendesse e principalmente familiarizasse com as linguagens e técnicas de programação adotadas pela empresa. Hoje, mais do que nunca, vejo como todo o processo de contratar uma estagiária sem experiência foi custoso para os sócios da empresa e mais uma vez, só tenho a agradecer pela oportunidade e todo o aprendizado que aqui adquiri.
Estagiar na “Dito – Idéias e Soluções” durante o 1º semestre de 2008 foi uma experiência muito marcante e com certeza irá deixar saudades. Desde o primeiro dia de estágio fui muito bem recebida por cada funcionário da FUMSOFT, empresa incubadora da Dito e, claro, pelos funcionários da Dito. Meu convívio com os sócios da empresa não era somente por causa do trabalho: pelo fato de morarmos os três na mesma rua vínhamos e voltávamos juntos do trabalho. Com exceção de dois dias na semana em que eu aprontava uma verdadeira correria para, além de almoçar, despencar de um lado ao outro da cidade e chegar na faculdade no horário da aula. Até dessa correria vou sentir saudade. Por mais incrível que possa parecer, gosto de estar atarefada e de sentir o quão ágil posso ser quando preciso.
Ainda no começo de junho a empresa adotou uma prática de programação conhecida como “Scrum” que aumentou ainda mais a proximidade entre os funcionários da empresa. Esta prática adverte a necessidade de mini-reuniões diárias para que todos os funcionários estejam a par dos trabalhos que estão sendo desenvolvidos simultaneamente na empresa. A partir destas reuniões, são estabelecidas metas e a necessidade do “Pair-Programming”. Enfim, com todo esse convívio criamos uma certa união que nos transformou em uma equipe sem líderes, onde todos se ajudavam mutuamente.
Em síntese, só tenho a agradecer pela oportunidade e pela equipe que nós formamos. Aprendi muito durante todo esse semestre (não me refiro somente aos conhecimentos intelectuais, como também os pessoais) e desejo a todos os funcionários da Dito muita garra para continuar conduzindo a empresa para o sucesso, que acredito estar bem perto. Ao Bruno e ao André o que tenho a dizer é bem simples: Não desistam nunca do sonho de vocês. Parabéns pela empresa, pelos produtos (e conseqüentemente pelo sucesso dos mesmos) e pela dedicação.
Mariana Andrade Alves
July 2nd, 2008 — Dito
Aproveitando o assunto do último post, estão surgindo no Brasil vários fundos considerados de Seed Money, porém pelo que eu tenho acompanhado e conversado com outros empreendedores, a visão desses fundos ainda está bem longe do conceito de Seed Money utilizado nos Estados Unidos.
Pelo que eu entendo, o Seed Money é aquele recurso para empresas que estão em fase inicial e precisam de dinheiro para alavancar seu negócio. Nós ainda não enfrentamos todo o processo de analise com investidores, mas pelo que tenho visto, os fundos brasileiros estão procurando empresas que já estão estabelecidas e com bom faturamento. Ainda existe um receio em acreditar nos projetos de Internet igual é feito lá fora.
No Estados Unidos todo esse processo é muito claro. E lá é muito comum também a figura do Angel Investor, normalmente uma pessoa física que vem antes do Seed Money, investe uma verba no começo da idéia, correndo o maior risco, ajudando a torná-la viável e claro faturando mais no final.
Update:
Encontrei essa discussão no Via6, um dos primeiros projetos brasileiros que conseguiu investimento de risco. De acordo com a Exame foram R$2 milhões e a receita deles virá de publicidade e assinaturas.
http://www.via6.com/topico.php?cid=7419&tid=53304
July 2nd, 2008 — Baú de Arquivos
Algumas semanas atrás participamos de uma pré-banca para o 2º Seed Fórum que irá ocorrer no final de Julho. Ficamos satisfeitos com o convite para a apresentação e o retorno que tivemos dos avaliadores valida os passos que já estavamos tomando. Precisamos conhecer melhor o tamanho do mercado que o Baú de Arquivos pode atingir.
O Baú de Arquivos nasceu como um trabalho acadêmico (Folksnomia, GED, Web 2.0, Ruby on Rails) para conclusão do curso de Ciência da Computação e por isso, inicialmente, não tinha um modelo de negócios claro. Investimos nosso tempo para finalizá-lo e agora temos um produto muito bom nas mãos e descobrimos que existe um enorme mercado para ser explorado.
Primeiro porque é um serviço interessante para qualquer pessoa que precisa guardar seus arquivos importantes online, podendo acessá-los de qualquer computador. Pode ser utilizado para substituir pen-drives e CDs, mantendo uma grande organização e controle nos seus arquivos e facilitando o compartilhamento.
Vimos também uma grande necessidade nas pequenas e medias empresas, de um serviço que ajude na tarefa de manter a memória da empresa online, disponibilizando arquivos importantes para todos os funcionários e aumentando a produtividade das equipes através das ferramentas de colaboração e comunicação.
Por isso, nessa fase atual, estamos continuando a desenvolver novas funcionalidades para o Baú, mas também nos aproximando e conhecendo melhor os vários setores de mercado que precisam de uma ferramenta para gestão dos seus documentos.
June 12th, 2008 — Códigos, Dito Schools, Rails
Para inserir um calendário em uma aplicação rails, vamos utilizar o plugin Calendar Date Select. Ele é um calendário em Javascript que utiliza a biblioteca Prototype.
Algumas demonstrações do funcionamento podem ser vistas em http://electronicholas.com/calendar.
Para instalá-lo:
script/plugin install http://calendardateselect.googlecode.com/svn/tags/calendar_date_select
Após instalado o plugin voce deve inserir o calendário na view em que voce deseja:
No caso acima escolhemos a cor cinza (”silver”) mas também é possível escolher outras cores como vermelho (”red”) e azul (”blue”).
Insira também a biblioteca Prototype caso ela já não esteja incluída:
Agora é só inserir o código para o calendário como abaixo:
Existem várias opções de customização do calendário que podem ser encontradas no site oficial
Traduzindo o calendário para português
Para passar os dias da semana e a data para o formato d/M/Y deve-se ir no environment.rb e adicionar:
Obs.: O formato italiano corresponde ao formato (’d/M/Y’)
Deve-se adicionar o javascript correspondente à esse formato, incluindo na view:
Para a tradução para o português, deve-se criar o arquivo pt.js em public/javascripts/calendar_date_select/locale
pt.js
E para que o calendário adote o idioma português como configurado acima basta adicionar a variável
como mostrado abaixo.
June 10th, 2008 — Minas on Rails
Notícia muito legal para todo mundo em BH que está interessado em saber mais sobre o Ruby on Rails. Iniciamos as movimentações para realizar a segunda edição do Minas on Rails. Ano passado o evento que era pra ser um pequeno encontro entre as poucas pessoas que o Ronaldo sabia que mexiam com Rails em BH acabou se tornando uma grande festa com mais de 120 presentes e 9 palestras, sendo 3 palestrantes de fora do estado.
As espectativas para esse ano são ótimas porque Rails tem ganhado cada vez mais destaque. Quem tiver interesse em ajudar ou dar sugestões, cadastre-se na lista Rails-MG.
June 10th, 2008 — Dito, Trabalhe Conosco
Indico a leitura deste post escrito pelo Jason, fundador da 37 Signals, exlicando porque eles evitam desenhar a tela no Photoshop e vão direto para a tela em HTML+CSS.
Dito isso, gostaria de dizer que estamos procurando um profissional que domíne a arte de programar HTML + CSS, e tenha alguma noção de design, para se juntar a nossa equipe. Se você tiver esse perfil, por favor entre em contato.