quarta-feira, 9 de setembro de 2009

Ruby on Rails - Números


1.  Números 

Agora que você já arranjou tudo, vamos escrever um programa! Abra seu editor de texto favorito e digite o seguinte:

puts 1+2
Salve seu programa (sim, isso é um programa!) como calc.rb (o .rb é o que normalmente colocamos no final de programas escritos em Ruby). Agora rode o seu programa digitando ruby calc.rb na linha de comando. Ele deve ter posto 3 na sua tela. Viu como programar não é tão difícil?

Introdução ao puts

O que é então que está acontecendo no programa? Tenho certeza que você é capaz de adivinhar o quê 1+2 faz; nosso programa é praticamente a mesma coisa que:
puts 3
puts simplesmente escreve na tela tudo que vem depois dele.

Inteiro e Float

Na maioria das linguagens de programação (e não é diferente no Ruby) números sem pontos decimais são chamados de inteiros, e números com pontos decimais normalmente são chamados de números de ponto-flutuante, ou mais singelamente, floats.
Eis alguns inteiros:
5
-205
9999999999999999999999999
0
E aqui estão alguns floats:
54.321
0.001
-205.3884
0.0
Na prática, a maioria dos programas não usa floats; apenas inteiros. (Afinal, ninguém quer ler 7.4 emails, ou navegar 1.8 páginas, ou ouvir 5.24 músicas favoritas) Floats são usados mais freqüentemente para fins acadêmicos (experimentos de física e afins) e para gráficos 3D. Mesmo a maioria dos programas que lidam com dinheiro usam inteiros; eles só ficam contando as moedinhas!

Aritmética Simples

Até agora, temos tudo que é necessário para uma calculadora simples. (Calculadoras sempre usam floats, então se você quer que seu computador aja como uma calculadora, você também deve usar floats.) Para adição e subtração, usamos + e -, como vimos. Para multiplicação, usamos *, e para divisão usamos /. A maioria dos teclados possui essas teclas no teclado numérico. Se você tem teclado menor ou um laptop, você pode usar Shift 8 e / (fica na mesma tecla que ?). Vamos tentar expandir um pouco nosso calc.rb. Digite o seguinte e depois rode.
puts 1.0 + 2.0
puts 2.0 * 3.0
puts 5.0 - 8.0
puts 9.0 / 2.0
Isto é o que o programa retorna:
3.0
6.0
-3.0
4.5
(Os espaços no programa não são importantes; eles só deixam o código mais legível.) Bom, não foi lá muito surpreendente. Vamos tentar agora com inteiros.
puts 1+2
puts 2*3
puts 5-8
puts 9/2
Basicamente a mesma coisa, não é?
3
6
-3
4
Ahn... tirando aquele último ali! Quando você faz aritmética com inteiros, você recebe respostas em inteiros. Quando seu computador não sabe dar a resposta "certa", ele sempre arredonda para baixo. (Claro, 4 é a resposta certa em aritmética de inteiros para 9/2; só pode não ser o que você estava esperando.)
Talvez você esteja se perguntado para que divisão de inteiros serve. Bem, vamos dizer que você vai ao cinema, mas só tem $ 9. Aqui em Portland, você pode ver um filme no Bagdad por 2 pilas. A quantos filmes você pode assistir lá? 9/2... 4 filmes. 4.5 não é a resposta certa neste caso; eles não vão deixar você ver metade de um filme, ou metade de você ver um filme inteiro... algumas coisas não são divisíveis.
Agora experimente com alguns programas seus! Se você quiser escrever expressões mais complexas, você pode usar parênteses. Por exemplo:
puts 5 * (12-8) + -15
puts 98 + (59872 / (13*8)) * -52
5
-29802

Umas Coisinhas Para Tentar

Escreva um programa que lhe dê:
  • quantas horas há em um ano?
  • quantos minutos há em uma década?
  • qual é a sua idade em segundos?
  • quantos chocolates você pretende comer na vida?
    Aviso: Esta parte do programa pode demorar um pouco para computar!
Eis uma pergunta mais difícil:
  • Se minha idade é de 1002 milhões de segundos, qual é minha idade em anos? 
 
 Fonte: rubysonrails

Ruby on Rails - Início


Ruby on Rails é um framework de desenvolvimento web (gratuito e de código aberto) otimizado para a produtividade sistentável e a diversão do programador. Ele permite que você escreva código de forma elegante, favorecendo a converção ao invés da configuração

0.  Iniciando

Quando você programa um computador, você tem que "falar" em uma língua que o seu computador entenda: uma linguagem de programação. Existem muitas e muitas linguagens por aí, e muitas são excelentes. Neste tutorial eu escolhi usar a minha favorita, Ruby.
Além de ser a minha favorita, Ruby também é a linguagem mais fácil que eu já vi (e eu já vi uma boa quantidade delas). Aliás, esta é a verdadeira razão pela qual estou escrevendo este tutorial: Eu não decidi escrever este tutorial e aí escolhi Ruby por ser minha favorita; ao invés disso, eu descobri que o Ruby era tão fácil que eu decidi que deveria haver um bom tutorial que a usasse voltado para iniciantes. Foi a simplicidade do Ruby que inspirou este tutorial, não o fato dela ser minha favorita. (Escrever um tutorial similar usando outra linguagem, C++ ou Java, teria tomado centenas e centenas de páginas.) Mas não pense que Ruby é uma linguagem para iniciantes só porque é fácil! Ela é uma linguagem poderosa, de nível profissional como poucas.
Quando você escreve algo em uma linguagem humana, o que é escrito é chamado de texto. Quando você escreve algo em uma linguagem de computador, o que é escrito é chamado de código. Eu incluí vários exemplos de código Ruby por todo este tutorial, a maioria deles programas completos que você pode rodar no seu próprio computador. Para deixar o código mais legível, eu colori partes dele com cores diferentes. (Por exemplo, números estão sempre em verde.) Qualquer coisa que você tiver que digitar estará sempre numa caixa branca, e qualquer coisa que o programa imprimir estará em uma caixa azul.
Se você encontrar algo que não entende, ou se você tiver uma pergunta que não foi respondida, tome nota e continue a ler! É bem possível que a resposta venha em um capítulo mais adiante. Porém, se sua pergunta não for respondida até o último capítulo, eu lhe mostrarei onde você pode ir para perguntar. Existem muitas pessoas maravilhosas por aí mais que dispostas a ajudar; você só precisa saber onde elas estão.
Mas primeiro nós precisamos baixar e instalar o Ruby no nosso computador.

Instalação no Windows

A instalação do Ruby no Windows é muito fácil. Primeiro, você precisa baixar o Instalador Ruby. Pode haver mais de versão para escolher; este tutorial usa a versão 1.8.6, então assegure-se de que o que você baixar seja ao menos tão recente quanto ela. (Eu pegaria a última versão disponível.) Então simplesmente rode o programa de instalação. Ele perguntará onde você gostaria de instalar o Ruby. A não ser que você tenha uma boa razão para não fazer isso, eu instalaria no lugar recomendado.
Para programar, você precisa poder escrever programas e rodá-los. Para fazer isso, você vai precisar de um editor de texto e uma linha de comando.
O instalador do Ruby vem com um editor de texto adorável chamado SciTE (the Scintilla Text Editor). Você pode rodar o SciTE selecionando-o no menu Iniciar. Se você quiser que o seu código seja colorido como os exemplos deste tutorial, baixe estes arquivos e coloque-os na sua pasta SciTE (c:/ruby/scite se você escolher o local recomendado).
Seria também uma boa idéia criar um diretório em algum lugar para manter todos os seus programas. Tenha certeza que, quando você salvar um programa, esteja salvando neste diretório.
Para ir para sua linha de comando, selecione Prompt de Comando na pasta Acessórios do seu menu Iniciar. Você vai querer navegar para o diretório onde você mantém seus programas. Digitar cd .. levará você para o diretório anterior, e cd nome_do_diretorio colocará você dentro do diretório chamado nome_do_diretorio. Para ver todos seus diretórios dentro do diretório atual, digite dir /ad.
E é isto! Você está pronto para aprender a programar.

Instalação para Macintosh

Se você tiver um Mac OS X 10.2 (Jaguar), então você já tem Ruby no seu sistema! O que poderia ser mais fácil? Infelizmente, eu não acho que você possa usar Ruby no Mac OS X 10.1 e versões anteriores.
Para programar, você precisa ser capaz de escrever programas e executá-los. Para fazer isto, você precisará de um editor de textos e uma linha de comando.
Sua linha de comando está acessível através da aplicação Terminal (encontrada em Aplicações/Utilitários).
Para um editor de textos, você pode usar qualquer um com que você esteja familiarizado ou se sinta confortável usando. Se você usa TextEdit, entretanto, tenha certeza que você está salvando seus programas como somente-texto! Caso contrário seus programas não funcionarão. Outras opções para programar são emacs, vi, e pico, que estão todos acessíveis via linha de comando.
E é isto! Você está pronto para aprender a programar.

Instalação em Linux

Primeiro, vale a pena checar se você já tem Ruby instalado. Digite which ruby. Se este comando responder algo como /usr/bin/which: no ruby in (...), então você precisa fazer o download do Ruby, caso contrário veja que versão do Ruby você possui com ruby -v. Se for mais velha do que a última versão estável na página de download acima, pode ser bom atualizá-lo.
Se você for o usuário root, então você provavelmente não precisa de qualquer instrução para instalar o Ruby. Se não for, você poderia pedir ao seu administrador de sistema para instalá-lo para você. (Desta forma todos neste sistema poderiam usar Ruby.)
Caso contrário, você pode apenas instalá-lo de forma que apenas você possa usá-lo. Mova o arquivo baixado para um diretório temporário, como $HOME/tmp. Se o nome do arquivo for ruby-1.6.7.tar.gz, você pode abri-lo com tar zxvf ruby-1.6.7.tar.gz. Mude do diretório atual para o diretório que acabou de ser criado (neste exemplo, cd ruby-1.6.7).
Configure sua instalação digitando ./configure --prefix=$HOME). Depois digite make, que construirá seu interpretador Ruby. Isto pode levar alguns minutos. Após isto ter terminado, digite make install para instalá-lo.
Em seguida, você vai querer adicionar $HOME/bin para seu caminho de busca de comandos à variável de ambiente PATH, editando seu arquivo $HOME/.bashrc. (Você pode ter que se deslogar e logar novamente para que isto surta efeito.) Após ter feito isto, teste sua instalação: ruby -v. Se mostrar a você qual a versão do Ruby que você tem, você pode agora remover os arquivos em $HOME/tmp (ou onde quer que você os colocou).
E é isto! Você está pronto para aprender a programar.

Fonte: rubyonrails

terça-feira, 8 de setembro de 2009

7 Anos do CEJUG

Dia 19 de setembro de 2009 o Cejug realiza o Café com Tapioca especial de Aniversário, a partir das 8h no Anfiteatro da Faculdade 7 de Setembro (ver mapa).
- 8h10: Credenciamento
- 8h40: Abertura
- 9h10: O caminho da produtividade para desenvolvedores web com Bruno Pereira
- 10h: Como fazer uma aplicação JEE/JME para rodar nos 4 cantos do mundo com Régis Melo
- 11h: O mito dos times ágeis com Victor Oliveira
- 12h – Intervalo para Almoço. Opções próximas: Pão de Açúcar, McDonald's ou Subway ou um pouco mais longe: Spettus (Shopping Salinas - mapa); Ferreiro Café (Shopping Iguatemi - mapa).
- 13h30: Os 10 maus hábitos dos desenvolvedores JSF com Tarso Bessa e Rafael Ponte
- 14h20: Turbinando sua aplicação com Lucene: conheça Solr e Hibernate Search com Jeveaux
- 15h10: Lanche
- 15h20: O que matou o RUP também pode matar o Agile com Rodrigo Yoshima
- 16h30: "Desmistificando o TDD na prática" com  Paulo Silveira
- 17h40 - Sorteios
O Café com Tapioca é uma realização do Cejug, Grupo de Usuários Java do Ceará. Fundado em 2002 consolidou-se como um dos maiores Jugs do Brasil. Além do ambiente virtual, o Cejug destaca-se pelos eventos mensais que realiza, Café com Tapioca, que já contaram em diversas edições com a participação de palestrantes do Brasil e do exterior. O Cejug é uma comunidade ativa de mais de 800 estudantes e profissionais sobre desenvolvimento em Java.



quinta-feira, 3 de setembro de 2009

10 pontos sobre a regulamentação da profissão de analista de sistemas


Na semana passada, dia 19 de Agosto de 2009, recebemos a notícia que a Comissão de Constituição, Justiça e Cidadania do Senado aprovou proposta para regulamentar o exercício da profissão de analista de sistemas.

É claro que este é um tema controverso e que, certamente, tem elementos suficientes para que existam várias pessoas a favor assim como várias pessoas contrárias a esta determinação.

Respeito todas as opiniões, mas sinceramente, questiono os seguintes aspectos em relação a esta suposta "regulamentação":

  1. É bom para sociedade? Qual é o benefício que traz para a sociedade para que esta profissão seja regulamentada? O que isto assegura para quem contrata os profissionais, para quem contrata serviços destes profissionais ou para quem contrata empresas onde trabalham estes profissionais? Os serviços serão melhores? Ou de menos "risco"?
  2. É compreensível? Vamos lá e consideremos que seja importante que a profissão seja regulamentada. Qual é esta profissão? Analista de Sistemas? O que é um analista de sistemas hoje? E os DBAs? E os analistas da qualidade? E a gerência de configurações? E o analista de negócios? E o arquiteto de software? Web Designers? Analistas de Suporte? E as profissões que não existem e ainda vão surgir?
  3. Por que excluir? E tem que ser formado em alguns cursos específicos? E quem é analista e é formado em Medicina? E quem é formado em Sistemas de Informação? E os milhares de Engenheiros e Administradores que fazem parte da área de TI? E os cursos que ainda serão criados para as novas demandas que serão criadas?
  4. É útil? Vivemos em um mercado onda faltam profissionais. Qual é o sentido de criar uma reserva de mercado quando faltam profissionais? O que esta medida traz de benefícios? Teremos melhores cursos? Vamos formar mais programadores? Algo vai melhorar?
  5. É bom para os profissionais? O que traz de benefício para os profissionais? Mais oportunidades? Melhores possibilidades na carreira? Melhores salários? Alguém acredita que o mercado vai modificar-se por conta de uma norma?
  6. Algum benchmarking justifica? Alguém olhou para outros países? Alguém acredita que algum país líder mundial em tecnologia, Estados Unidos, Japão ou algum país da Europa, tem um modelo de regulamentação da profissão de analista de sistemas? Algum destes países diz que só deve produzir software quem é "regulamentado"?
  7. É transformador? Alguém acredita que esta mudança colocará nosso país nos "trilhos" do mundo plano e tecnológico de hoje? Aumentará o nosso grau de empreendedorismo? Aumentará a nossa pesquisa em tecnologia? Fará com que um dia daqui do Brasil tenhamos "skypes", "msns", "microsofts", "ibms", ...? Fará com que tenhamos mais empresas? Ou será que esta mudança, ao contrário, é mais um desestímulo às carreiras na área de TI, além de ser mais um desestímulo a quem quer empreender em TI??? Será que não é uma idéia que, ainda que de boa intenção, é antiquada e acanhada, sendo mais uma força para nos colocar na contra-mão do mundo moderno?
  8. É possível? Nossa Constituição diz que devem ser regulamentadas as profissões que tragam risco para a sociedade - como médicos e advogados - não sendo portanto constitucional, a idéia de regulamentar outras profissões, como as diversas profissões ligadas à área de TI.
  9. É justo? Há muitos anos que boa parte da área de TI no Brasil vem sendo desenvolvida e suportada por profissionais de nível médio, profissionais de outros cursos (nomeadamente, Administradores, Matemáticos e Engenheiros), por garotos apaixonados pela área de TI e por profissionais, pesquisadores e empreendedores que, independentemente da sua área de formação, decidiram abraçar esta carreira. Sem estes profissionais, a área de TI no Brasil seria muitíssimo menor do que ela é. É justo dizer que "daqui para a frente tudo vai ser diferente"? Que não precisamos mais de profissionais com estas outras formações?
  10. É viável? E se até hoje o mercado precisou de todos estes profissionais - e ainda assim temos um gap enorme para nos posicionarmos no mercado global - de onde por acaso acredita-se que com menos profissionais "podendo" ser parte do mercado de TI, será mais viável sermos o que queremos (e precisamos) ser?

Reforço que eu sou formado na área de TI, com pós-graduação na área de TI e com Mestrado na área de TI. As preocupações e dúvidas acima não são para mim, mas apenas a minha visão sobre o que constato da nossa área de tecnologia em relação a estas mudanças. Assim, não falo em causa própria, mas sim, falo vendo o contexto. Também convém comentar que sou a FAVOR do estudo formal e de tudo de bom que vem do mesmo, mas não posso compactuar com que apenas quem faz curso superior em TI é bom.

Vale ressaltar que a ASSESPRO, assim como a SBC têm uma posição clara, favorável a que "é livre em todo território nacional o exercício de qualquer atividade econômica, ofício ou profissão relacionada com a informática, independentemente de diploma de curso superior, comprovação de educação formal ou registro em conselhos de profissão". Esta posição foi defendida junto à CCJ, mas ao que parece não obteve eco.

Você sabia que:
  • Niklas Zennström, criador do SKYPE e do KAZAA, é formado em Administração com Mestrado em Física?
  • Bill Gates não tem nível superior, abandonou os cursos de Matemática e Direito no terceiro ano?
  • Steve Jobs não tem nível superior?
  • O senador Expedito Júnior, autor da proposta de regulamentação, foi cassado pelo TSE? Saiba mais aqui.

Há tantas outras coisas para o nosso Senado se preocupar...

*FONTE: Blog do MB