Translate

31 de março de 2010

Cakephp desenvolvimento rápido em php


CakePHP é gratuito, de código aberto, um framework em PHP para desenvolvimento ágil. É uma estrutura fundamental para programadores criarem aplicações web. Nosso principal objetivo é permitir que você trabalhe em uma estrutura que possa programar de forma rápida e sem a perda de flexibilidade.
CakePHP joga fora a monotonia do desenvolvimento web. Nós oferecemos todas as ferramentas que você precisa para começar programando o que realmente deseja: a lógica específica da sua aplicação. Em vez de reinventar a roda cada vez que se constrói um novo projeto, pegue uma cópia do CakePHP e comece a construir sua carruagem real da sua aplicação.
CakePHP tem uma equipe de desenvolvedores e uma grande comunidade, trazendo grande valor ao projeto. Além de manter você fora do reinvento da roda, usando CakePHP significa que o núcleo da sua aplicação é bem testado e constantemente aperfeiçoado.
Abaixo segue uma pequena lista dos recursos que você poderá desfrutar no CakePHP:
  • Ativo e com comunidade amigável;
  • Licença flexível;
  • Compatibilidade com PHP 4 e PHP 5;
  • Integrando funcionalidade CRUD (Create, Read, Update and Delete, ou Criar, Ler, Atualizar e Excluir) para interagir com o banco de dados;
  • Aplicações scaffolding;
  • Geração de código;
  • Arquitetura MVC (Model, View, Controller, ou Modelo, Visões, Controlador);
  • Requisições ao expedidor com clareza, URLs personalizáveis e rotas;
  • Validações internas;
  • Templates rápidos e flexíveis (Sintaxe PHP e com ajudantes);
  • Ajudantes para usar AJAX, JavaScript, HTML, formulários e outros nas visões;
  • Componentes de E-mail, Cookie, Segurança, Sessões, Manipulação de Requisições e outros;
  • Lista de controle de acessos flexível;
  • Limpeza de dados;
  • Flexibilidade com cache;
  • Internacionalização;
  • Funciona em qualquer subdiretório do seu website, com poucas configurações no Apache.

Referências:
Manual do CakePHP http://book.cakephp.org/pt
Página oficial em português http://www.cakephp.com.br/

17 de fevereiro de 2010

Estudando Java

Links para estudar a linguagem de programação Java:

http://www.java2s.com/Tutorial/Java/CatalogJava.htm
javanotes
Documentação da Java 6 da SUN


Java interface visual:
Java Swing tutorial
Training Java 3d
Training GUI Swing1 shortcourse
Tutorial uiswing
Tutorial uiswing components dialog
Demos SwingSet
OpenSwing framework = novos pacotes gráficos


Em português:
Curso de Java UFCQ
Curso de Java UFSCAR
tutoriais java
Apostilas avancadas de Java UNISINOS
Livro pensando em Java
Guia de aplicativos gráficos com Java e JavaFX
Criando um aplicativo gráfico com NetBeans
Grupo de usuarios Java
Tutorial Java 3 Orientacao a Objetos
Licao Componentes De Texto Swing
george disciplinas programacao com Java
Wiki instalando o Java no linux


Se seu inglês não está bom use o tradutor do google.
Contribua com sua dica no comentário.

Estudando Python

Links para estudar a linguagem de programação Python:

Zetcode Python Tutorial
Livro ThinkCSpy (Tradução)
Python-GTK Grafic User Interface
Python-GTK tutorial
Python Glade Grafic User tutorial

Em português:
Curso Python na prática
Python Brasil
IDEs Python
Documentacao Python
Tradução do livro ThinkCSpy
Artigo o fantástico mundo do python
Exemplos de códigos Python

Se seu inglês não está bom use o tradutor do Google
Contribua: coloque sua dica no comentário.

3 de fevereiro de 2010

Programando em C++ no linux

Para programar em C no linux podemos usar qualquer editor de texto como o Gedit, salvar o arquivo como "nome.c" , e para compilar basta dar o comando no terminal:
gcc nome.c
Se não tiver erros vai ser gerado um arquivo "a.out", que é o executável. E para executá-lo no terminal:
./a.out

Não esqueça de colocar o terminal na pasta onde está seu arquivo com o comando:
cd "/home/usuario/minhapasta/"

Uma IDE ajuda muito na programação, completando código, organizando projetos e mostrando os erros, recomendo o Geany e o Eclipse CDT.

Referências:
Editor Geany
Programação gráfica em C++ com Eclipse CDT

29 de janeiro de 2010

Turbine seu Eclipse com plugins

Adicione novas habilidades ao Eclipse, basta ir em Help > install new software, e adicione o site do plugin.

Listas de plugins:
http://eclipse-plugins.2y.net/eclipse/index.jsp
http://www.eclipseplugincentral.com/

Seleções:
C++ IDE: http://download.eclipse.org/tools/cdt/releases/galileo
RSS Reader: http://morphine.sourceforge.net/presence/projects/rss/index.html
ByeCycle - Analisador de código: http://priki.org/svn/byecycle/trunk/updatesite
Subclipse - Para Subversion: http://subclipse.tigris.org/update
EclipseME - Mobile sites: http://eclipseme.org/updates/ 

Referência:
http://javafree.uol.com.br/topic-7238-Eclipse-Plugins-Instalacao-via-Update-Sites.html

Subversion - Controle de versões

Antes de alterar seu programa, para adicionar uma nova funcionalidade ou alguma correção, é importante ter uma cópia do código, caso precisemos recuperar a versão anterior.
O controle de versão é formado pela área de trabalho e o repositório das versões.
As principais operações realizadas são:
  • commit = envia o pacote da área de trabalho para o repositório (backup), cada commit gera uma nova versão;
  • update = atualiza a área de trabalho com as modificações do repositório.
Para quem trabalha em equipe, ter um controle das versões é indispensável, uma ferramenta muito utilizada para isso é o Subversion (linha de comando), RapidSVN(interface gráfica do SubVersion), e seu similar TortoiseSVN para Windows.
O SubVersion cria backups de pastas(projetos) e qualquer arquivo com controle de versões, sendo que, para cada nova versão cria cópias dos arquivos atualizados e links para os repetidos, evitando assim a duplicidade de arquivos.

Antes de ver como utilizar a ferramenta, vamos ver alguns conceitos  importantes:
  • Repositório: Local onde o(s) projeto(s) será(ão) armazenado(s).
  • Trunk: Diretório onde se encontrará o projeto em fase de desenvolvimento (Dia a dia). O desenvolvimento do projeto começa aqui dentro.
  • Branch: Diretório destinado às fases de testes. Vamos supor o seguinte cenário, enquanto a Equipe A trabalha no desenvolvimento de novas funcionalidades da versão 1.0 do projeto, a Equipe B já inicia alguns testes para adicionar na versão 2.0 do projeto. Este projeto é de grande importância. Tudo o que for feito como forma de testar algo, sem comprometer o projeto como um todo, deverá ser colocado dentro deste diretório.
  • Tags: Diretório destinado às atualizações do projeto. Sempre que novas funcionalidades são adicionadas ao projeto e/ou bugs são corrigidos novas versões surgem dentro do diretório TAGS. Apenas os arquivos alterados são copiados para esta pasta, e links apontam para os demais.
O Subversion armazena todos os dados versionados em um repositório central. Os diretórios Trunk, Branch e Tags são uma convenção para organização do seu projeto, ou seja, podem ter outros nomes ou podem nem existir.
Para começar na prática, crie um novo repositório:
$ svnadmin create /caminho/do/repositorio
$ ls /caminho/do/repositorio
conf/ dav/ db/ format hooks/ locks/ README.txt
Este comando cria um novo diretório em /caminho/do/repositorio que contém um repositório do Subversion. Este diretório contém (entre outras coisas) um conjunto de arquivos de base de dados.

O repositório apenas gerencia arquivos e diretórios, então é intuitivo interpretar diretórios específicos como “projetos”, tenha em mente que estamos apenas falando sobre algum dado diretório (ou conjunto de diretórios) dentro do repositório.

Comece organizando seus dados dentro de um único diretório chamado meuprojeto (ou qualquer outro nome de sua preferência). A estrutura da árvore de seu projeto deve conter três diretórios internos chamados de branches, tags, e trunk. O diretório trunk deve conter todos os seus dados, enquanto que os diretórios branches e tags são vazios.

Em seguida importe os dados para dentro do repositório com o comando svn import:
$ svn import /tmp/meuprojeto file:///caminho/do/repositorio/meuprojeto -m
Adding               /tmp/meuprojeto/branches
Adding               /tmp/meuprojeto/tags
Adding               /tmp/meuprojeto/trunk
Adding               /tmp/meuprojeto/trunk/foo.c
Adding               /tmp/meuprojeto/trunk/bar.c
Adding               /tmp/meuprojeto/trunk/Makefile
...
Committed revision 1.

Agora o repositório contém esta árvore de dados. Como mencionado anteriormente, você não verá seus dados ao listar diretamente o conteúdo do repositório; os dados estão todos armazenados dentro de uma base de dados. Mas o sistema de arquivos imaginário do repositório agora contém um diretório
de alto nível chamado meuprojeto, que por sua vez contém seus dados.

Veja que o diretório /tmp/meuprojeto original não é alterado; o Subversion sequer tem conhecimento dele. (De fato, você pode até excluir esse diretório se quiser.) Para começar a manipular os dados do repositório, você precisa criar uma nova “cópia de trabalho” dos dados, que são uma espécie de espaço de trabalho particular. Solicite que o Subversion lhe entregue (“check out”) uma cópia de trabalho do diretório meuprojeto/trunk no repositório:
$ svn checkout file:///caminho/do/repositorio/meuprojeto/trunk meuprojeto
A meuprojeto/foo.c
A meuprojeto/bar.c
A meuprojeto/Makefile
...
Checked out revision 1.
Agora você tem uma cópia pessoal de uma parte do repositório em um novo diretório chamado meuprojeto. Você pode alterar os arquivos em sua cópia de trabalho e então submeter essas alterações de volta para o repositório.
• Entre em sua cópia de trabalho e modifique o conteúdo de algum arquivo.
• Execute svn diff para ver uma saída unificada de suas alterações.
• Execute svn commit para submeter a nova versão de seu arquivo ao repositório.
• Execute svn update para deixar sua cópia de trabalho “atualizada” com o repositório.
Para conhecer todas as coisas que você pode fazer com sua cópia de trabalho, leia Capítulo 2 do livro do Subversion, uso básico.


Referências:
conceitos_basicos_controle_versao_centralizado_e_distribuido
Controle de versão com Subversion no Eclipse no Windows
Subclipse - plugin do Subversion no Eclipse 
Livro do Subversion 
Tutorial resumido do Subversion
Criando um servidor de versões com Visual SVN Server 
Hospedando projetos no Google-code

10 de novembro de 2009

Java API - documentação

A API é uma biblioteca (coleção de classes) que desempenha as funções básicas de uma linguagem de programação, ela é essencial para implementar as funcionalidades que desejamos para nossa aplicação.

A biblioteca de classes (API java) está organizada em pacotes, por exemplo:
  • javax.swing - janelas para criar a interface de usuário com menus;
  • java.util - classes utilitárias;
  • java.math - cálculos matemáticos;
  • java.io - interações de entrada e saída;
Podemos introduzir nossas próprias classes e pacotes, criando nossa própria biblioteca reutilizando nossas funções em outros programas.

Para utilizar a API basta fazer o download da ultima versão, e mostrar o caminho de onde foi salvo para o IDE (editor de programas), assim podemos acessar as classes da biblioteca usando o comando import no início do código:
import java.util.arraylist;
import javax.swing.*;
public class minha {

A melhor maneira de conhecer todo o potencial de uma linguagem de programação é ler a documentação de sua API, que em java está disponível no seu site oficial (em inglês):
http://java.sun.com/javase/6/docs/api/

Introdução à C. da Computação com Java e Orientação a Objetos

O livro evoluiu da experiência dos autores no ensino da disciplina de Introdução à Ciência da Computação ministrado no Instituto de Matemática e Estatística da Universidade de São Paulo. Suas características principais são um estilo informal e o uso, desde a primeira aula, de conceitos de Orientação a Objetos.

Este livro já foi adotado como livro-texto da disciplina introdutória de Computação para alunos do Bacharelado em Ciência da Computação, Bacharelado em Matemática, Licenciatura em Matemática, Bacharelado em Sistemas de Informação, Bacharelado em Física e Licenciatura em Física da USP.

Para baixar o livro clique em IntroCCcomJavaeOO.pdf

Alguns exemplos de código-fonte em Java podem ser encontrados em nossa pasta de Exemplos.
Professores: os arquivos para a produção do Teatro de Objetos estão disponíveis neste site.

Referência:
http://introjava.incubadora.fapesp.br/portal

5 de novembro de 2009

TIOBE - ranking das linguagens mais usadas

O índice da comunidade de programação TIOBE dá uma indicação da popularidade das linguagens de programação. O ranking (índice) é atualizado mensalmente e é baseado na qualificação de engenheiros no mundo inteiro, cursos e fornecedores. Google, MSN, Yahoo!, Wikipedia e YouTube são utilizados para calcular os votos. Observe que o índice TIOBE não é sobre a melhor linguagem de programação ou a línguagem em que a maioria das linhas de código têm sido escrito, mas é para verificar a popularidade das linguagens de programação.

O índice pode ser usado para verificar se suas habilidades de programação são ainda actualizados ou para tomar uma decisão estratégica sobre a linguagem de programação deve ser adotada quando começar a construir um novo sistema de software. A definição do índice TIOBE pode ser encontrada aqui.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

LUA - a linguagem brasileira

Lua é uma linguagem de programação poderosa, rápida e leve, projetada para estender aplicações.
Lua combina sintaxe simples para programação procedural com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é interpretada a partir de bytecodes para uma máquina virtual baseada em registradores, e tem gerenciamento automático de memória com coleta de lixo incremental. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida.

Lua é usada em muitas aplicações industriais (e.g., Adobe's Photoshop Lightroom), com ênfase em sistemas embutidos (e.g., o middleware Ginga para TV digital) e jogos (e.g., World of Warcraft). Lua é atualmente a linguagem de script mais usada em jogos. Lua tem um sólido manual de referência e existem vários livros sobre a linguagem. Várias versões de Lua foram lançadas e usadas em aplicações reais desde a sua criação em 1993.

Lua é rápida

Lua tem uma merecida reputação de ótimo desempenho. Outras linguagens de script aspiram ser "tão rápidas quanto Lua". Vários benchmarks mostram Lua como a linguagem mais rápida dentre as linguagens de script interpretadas. Lua é rápida não só em programas específicos para benchmarks, mas no dia-a-dia também. Porções substanciais de aplicações grandes são escritas em Lua.

Lua é portátil

Lua é distribuída via um pequeno pacote e compila sem modificações em todas as plataformas que têm um compilador ANSI/ISO C. Lua roda em todos os tipos de Unix e Windows, e também em dispositivos móveis (como computadores de mão e celulares que usam BREW, Symbian, Pocket PC, etc.) e em microprocessadores embutidos (como ARM e Rabbit) para aplicações como Lego MindStorms.

Lua é embutível

Lua é uma engine rápida e pequena que você pode facilmente embutir na sua aplicação. Lua tem uma API simples e bem documentada que permite uma integração forte com código escrito em outras linguagens. É simples estender Lua com bibliotecas escritas em outras linguagens. Também é simples estender programas escritos em outras linguagens com Lua. Lua é usada para estender programas escritos não só em C e C++, mas também em Java, C#, Smalltalk, Fortran, Ada, e mesmo outras linguagens de script, como Perl and Ruby.

Lua é poderosa (e simples)

Um conceito fundamental no projeto de Lua é fornecer meta-mecanismos para a implementação de construções, em vez de fornecer uma multidão de construções diretamente na linguagem. Por exemplo, embora Lua não seja uma linguagem puramente orientada a objetos, ela fornece meta-mecanismos para a implementação de classes e herança. Os meta-mecanismos de Lua trazem uma economia de conceitos e mantêm a linguagem pequena, ao mesmo tempo que permitem que a semântica seja estendida de maneiras não convencionais.

Lua é pequena

Incluir Lua numa aplicação não aumenta quase nada o seu tamanho. O pacote de Lua 5.1.4, contendo o código fonte, documentação e exemplos, ocupa 212K comprimido e 860K descompactado. O fonte contém cerca de 17000 linhas de C. No Linux, o interpretador Lua contendo todas as bibliotecas padrões de Lua ocupa 153K e a biblioteca Lua ocupa 203K.

Lua é livre

Lua é software livre de código aberto, distribuída sob uma licença muito liberal (a conhecida licença MIT). Lua pode ser usada para quaisquer propósitos, incluindo propósitos comerciais, sem qualquer custo ou burocracia. Basta fazer um download e usá-la.

Lua tem importância global

O projeto e a evolução de Lua foram apresentados em junho de 2007 na HOPL III, a 3a Conferência da ACM sobre a História das Linguagens de Programação. Essa conferência ocorre a cada 15 anos (a primeira foi em 1978 e a segunda em 1993) e somente poucas linguagens são apresentadas a cada vez. A escolha de Lua para a HOPL III é um importante reconhecimento do seu impacto mundial. Lua é a única linguagem de programação de impacto desenvolvida fora do primeiro mundo, estando atualmente entre as 20 linguagens mais populares na Internet (segundo o índice TIOBE).

Referência:
site oficial: http://www.lua.org/portugues.html