Translate

Mostrando postagens com marcador projetos. Mostrar todas as postagens
Mostrando postagens com marcador projetos. Mostrar todas as postagens

10 de outubro de 2013

29 de janeiro de 2011

ERP - A melhor solução de TI para a pequena e média empresa

ERP - Open Source - online - A melhor solução de TI para a pequena e média empresa
O contínuo desenvolvimento de tecnologias, além de trazer mais e melhores recursos técnicos também traz uma redução de custos, que a torna acessível para um número cada vez maior de pessoas e empresas. Bom exemplo dessa redução de custos pode ser vista no mercado de ERPs - Enterprise resource planning.

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

4 de setembro de 2009

tecnologias para o desenvolvimento de aplicações móveis

Principais tecnologias para o desenvolvimento de aplicações móveis

1 Linguagens para dispositivos móveis

1.1 Jini

Paradigma: POO para coordenação de dispositivos;

A tecnologia Jini, da Sun Microsystems, é um framework de coordenação evoluído e adaptado de pesquisas acadêmicas e implementado especificamente para Java. Jini usa o termo federação para representar a coordenação entre dispositivos. Uma federação é uma coleção de dispositivos autônomos os quais podem tornar-se cientes uns dos outros e cooperar se for necessário. Um subsistema Jini contém serviços de consulta que mantêm informação dinâmica sobre dispositivos disponíveis. Esses serviços são a chave para o funcionamento adequado do sistema Jini.

1.2 Universal Plug and Play

Paradigma: POO para detectar dispositivos para se comunicarem entre si;

O Plug and Play Universal - UPnP, desenvolvido pela Microsoft, é um framework definido num nível mais baixo que o Jini. Embora seja considerado, em alguns aspectos, uma extensão do Plug and Play, que detecta automaticamente a existência de dispositivos novos no barramento de PCs, para o ambiente de redes, seu framework de implementação é muito diferente do Plug and Play. O UPnP trabalha basicamente com as camadas mais baixas dos protocolos de rede TCP/IP, implementando padrões nesse nível ao invés do nível de aplicação. Isto envolve a adição de protocolos adicionais ao conjunto de protocolos implementados nos dispositivos. Ao contrario do Jini, que focaliza na autonomia, o UPnP focaliza na padronização de protocolos específicos e a aderência dos fabricantes a estes novos padrões. Com a definição desses protocolos, o UpnP permite que os dispositivos construam suas próprias APIs que implementam esses protocolos, em qualquer linguagem ou plataforma que desejarem.

1.3 Android

Paradigma: POO para programar dispositivos com java e bibliotecas da google;

Google Android é um sistema operacional baseado em kernel Linux. Ele foi inicialmente desenvolvido pela Google e posteriormente pela Open Handset Alliance, ele permite os desenvolvedores escreverem software na linguagem de programação Java controlando o dispositivo via bibliotecas desenvolvidas pela Google. Ele suporta uma grande variedade de tecnologias de conectividade incluindo Bluetooth, EDGE, 3G, e Wi-Fi.

1.4 J2ME

Paradigma: POO para programar dispositivos portáteis com java e bibliotecas J2ME;

(Java 2 Micro Edition): Mantida pela Sun, J2ME é a plataforma Java direcionada para dispositivos com recursos de hardware e software limitados. É suportado pela grande maioria dos aparelhos, pois, basta que o aparelho possua uma JVM (Java Virtual Machine) que atenda as especificações da Sun instalada para que ele possa executar aplicativos na linguagem J2ME.

É uma plataforma gratuita, com diversas IDEs (Integrated Development Environment) disponíveis e a maior comunidade de desenvolvedores dentre as tecnologias aqui citadas. Sendo assim, é a plataforma mais popular e suportada pela maior quantidade e diversidade de aparelhos.

1.5 .NET

Paradigma: POO para programar dispositivos com C#;

Compact Framework: Plataforma nativa do sistema operacional Windows Móbile da Microsoft. O desenvolvimento de seus aplicativos é feito na linguagem C# utilizando a ferramenta Visual Studio, também da Microsoft.

Oferece um bom suporte ao desenvolvedor e é simples de se trabalhar devido às facilidades oferecidas pelo Visual Studio. Porém é suportada apenas por aparelhos que possuem o sistema operacional Windows Móbile. Apesar desta limitação, a quantidade de aparelhos com este sistema tem crescido consideravelmente e tende a continuar crescendo, tendo em vista a força e influencia da Microsoft.

1.6 Brew

Paradigma: POO para programar dispositivos com C++;

Brew C/C++ (Binary Runtime for Wireless Environment): O Brew, desenvolvido pela Qualcomm, é um sistema operacional e uma plataforma para desenvolvimento de aplicativos móveis na linguagem C/C++ através das ferramentas fornecidas pela Qualcomm, é a plataforma mais difundida entre os aparelhos CDMA.

Em 2003 a Qualcomm assinou um acordo com a Sun e anunciou suporte a Java que passou a fazer parte dos chips CDMA produzidos pela Qualcomm, incorporando então o suporte J2ME ao sistema operacional Brew. Mas veja bem, isso implica apenas que o Brew suporta aplicativos J2ME, ele funciona como uma JVM, mas a linguagem nativa do Brew continuou sendo o C/C++. Essa parceria foi feita por questões estratégicas, pois a Qualcomm percebeu que estava perdendo espaço para os sistemas que suportavam o J2ME.

1.7 iPhone

Paradigma: POO para programar dispositivos iphone com Objective C;

O iPhone, da Apple, possui sua própria plataforma de desenvolvimento e suporta apenas aplicativos desenvolvidos na linguagem Objective C, utilizando o iPhone SDK. O Objective C é uma linguagem orientada a objetos variante do C utilizada principalmente para desenvolver aplicativos para os sistemas da Apple, como o iPod, iPhone e o Mac OS.

Iniciar o desenvolvimento para iPhone é um pouco mais penoso e caro, pois além de ser uma linguagem que não está entre as mais comuns, é necessário ter um computador Mac ou um Macbook com o MAC OS instalado, pois o iPhone SDK não possui versões para Windows ou Linux. Porém, apesar do grande número de aplicativos existentes e do custo para iniciar o desenvolvimento, há uma crescente demanda por profissionais que desenvolvam para iPhone e tornar-se desenvolvedor iPhone pode ser um bom negócio.

1.8 Symbian

Paradigma: POO para programar dispositivos móveis com Symbian C++;

Symbian C++: Linguagem de desenvolvimento de aplicativos do sistema operacional Symbian da Nokia. É uma variante da linguagem C++, possuindo algumas adaptações para que possa ser suportado por dispositivos com recursos limitados que rodem o sistema Symbian S60 da Nokia.

É livre, sem custos para desenvolvimento, e utilizando-a é possível explorar todos os recursos do S60, porém, ficamos limitados aos aparelhos com S60 da Nokia. Seu desenvolvimento pode ser feito na IDE Carbide.c++ que é baseada no Eclipse.

SymbianOS é um sistema operacional muito versátil, permite o desenvolvimento de aplicativos em diversas linguagens como:

• Symbian C/C++

• JavaME

• FlashLite

• Perl

• Python

• Ruby

• Lua

• Acelarometer

1.9 Open C/C++

Paradigma: POO para programar dispositivos com Open C/C++;

Plataforma de desenvolvimento de aplicativos do sistema operacional Symbian S60 da Nokia. O Open C/C++ permite que desenvolvedores C/C++ que não tenham experiência com Symbian C++ possam desenvolver aplicativos para o S60 de forma fácil, em um ambiente mais familiar e sem ter que se aprofundar muito nas particularidades do Symbian S60. Também é uma plataforma livre, sem custos, porém, também está limitada a aparelhos com o S60 da Nokia.

1.10 Qt Software

Paradigma: POO para programar dispositivos com C++;

Qt Software: Plataforma de desenvolvimento de aplicativos desktop e aplicativos móveis da Nokia. Antiga Trolltech, foi adquirida pela Nokia em 2008 e teve o nome alterado para Qt Software. Utiliza a linguagem C++ para o desenvolvimento dos aplicativos e apresenta uma forte interface gráfica que visa facilitar o desenvolvimento de seus aplicativos, além disso, tem como princípios a reusabilidade do código e facilidade no desenvolvimento. É suportada pelos aparelhos com Symbian S60 da Nokia, por sistemas Linux embarcados e Microsoft Windows CE.

1.11 Python for S60

Paradigma: POO para programar dispositivos móveis com Python;

O Python é uma linguagem popular entre os desenvolvedores Web e agora pode ser utilizada para desenvolver aplicativos móveis para dispositivos com o Symbian S60 da Nokia. O desenvolvimento é feito utilizando a linguagem Python nas ferramentas disponibilizadas pela própria Nokia. Assim como o Symbian C++, o Open C/C++ e o Qt, os aplicativos ficam limitados a rodar nos aparelhos com S60 da Nokia. Alias, com exceção do Qt que também é suportado pelo Linux e pelo Windows CE.

1.12 Flash Lite

Paradigma: POO para programar dispositivos móveis com flash;

Plataforma para desenvolvimento de aplicativos móveis baseada na plataforma Flash e mantida pela Adobe. Seu desenvolvimento é feito na linguagem ActionScript utilizando a ferramenta Adobe Flash. Ainda é uma plataforma pouco explorada, apesar de que muitos desenvolvedores Web que trabalham com Flash já terem experimentado o Flash Lite. Até a data em que este artigo foi escrito era suportado por 188 aparelhos de diversos fabricantes e sistemas operacionais diferentes, como Symbian (S40, S60 e UIQ) e Brew.

2 diferenças entre o desenvolvimento de aplicações móveis e Desktop

2.1 Compatibilidade

É necessário definir em qual linguagem e para qual plataforma desenvolver.

Cada plataforma possui suas particularidades, suporta determinadas linguagens e possui um leque de aparelhos compatíveis. É importante ressaltar que estamos falando das linguagens e das plataformas que as suportam e não de sistemas operacionais, apesar de que os dois estão diretamente relacionados.

No mundo móvel predominam vários sistemas operacionais e todos eles possuem plataformas para desenvolvimento e execução de seus aplicativos. Algumas plataformas suportam mais de uma linguagem, como é o caso do Symbian que suporta as linguagens J2ME, Symbian C++, Python, etc.

2.2 Conectividade

É necessário um sistema de comunicação para o dispositivo móvel.

Destacando as principais características de Comunicação e Rede:

  •  Comunicação serial – SLIP e PPP (via cabo e infravermelho) ;
  • – API IrSock – suporte a comunicação infravermelha (via IrDA – Infrared Data Association)
  •  Conexões de Rede (protocolos da Internet e de troca de arquivos) ;
  • – API WinInet (HTTP e FTP) ;
  • – API WinSock (sockets que suportam TCP/IP)
  • – RAS – Remote Access Service suporta upload/download de arquivos (via PPP para conectar no servidor)
  •  API Telephony – suporta comunicação via modem para um hospedeiro remoto;

2.3 Poucos recursos de hardware

Dispositivos móveis possuem pouca capacidade de memória e processamento.

O desenvolvimento da tecnologia de portáteis é orientado, em parte, pelos telefones inteligentes, câmeras digitais, tocadores MP3 e PDAs. Este possuem pouca capacidade de memória, expandível por cartões e pendrives flash. Possuem pouco processamento e um teclado reduzido ou inexistente, substituído por um similar virtual, tela sensível ao toque (touchescreen), ou reconhecimento de voz e/ou escrita a mão.

Referências:
http://facamovel.wordpress.com/2009/07/30/em-qual-plataforma-desenvolver/
http://www.leopoldina.cefetmg.br/moodle/file.php/23/PFC/computacao_ubiqua.pdf