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.
Mostrando postagens com marcador TI. Mostrar todas as postagens
Mostrando postagens com marcador TI. Mostrar todas as postagens
29 de janeiro de 2011
18 de setembro de 2009
Padrões de projeto - Design Pattern
Design Pattern é uma forma padrão de organizar classes e objetos, nomes para soluções que você já modelou, uma forma de compartilhar conhecimentos sobre POO, soluções de POO para problemas que incidem em diversos cenários de desenvolvimento, etc.
Quando adotamos o uso de Design Patterns seu código fica mais organizado, aumenta a qualidade, menor complexidade, aumenta a comunicação dentro da equipe de desenvolvimento, etc.
A definição de um pattern pode conter:
• O nome: identifica o padrão;
• O problema: explica o problema e o seu contexto;
• O problema: explica o problema e o seu contexto;
• A solução: descreve a maneira de melhorar o desenvolvimento, relacionamentos, responsabilidades, colaborações, de maneira ser implementada em diferentes situações;
• As consequências: os resultados de aplicarmos o padrão;
• As consequências: os resultados de aplicarmos o padrão;
Família de Patterns GoF
GoF (Quatro criadores) é uma familia de Design Patters, são 23 padrões, veja alguns:
• Criação: Abstract Factory, Builder, Factory Method, Prototype, Singleton
• Estrutura: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
• Comportamento: Chain Of Response, Command Interpreter, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.
Familia de Patterns J2EE
• J2EE: Busness Delegate, Composite Entity, Composite View, Data Access Object, Fast Lane Reader, Front Controller, Intercepting Filter, Model-View-Controller, Service Locater, Session Facade, Transfer Object, Value List Handler, View Helper
Você pode consultar o catalogo de Patterns do J2EE no endereço abaixo.
Patterns e Certificação
As seguintes certificações Sun exigem conhecimentos de Patterns:
• Sun Certified Web Component Developer
• Sun Certified Enterprise Architect;
Para quem pretende tirar uma destas certificações é necessário estudar todos os patterns, aplicar na prática os principais GoF e conhecer a teoria básica;
Alguns Patterns Service Locator
• Definição: simplifica o acesso a recursos J2EE em um aplicativo centralizando lookups com JNDI em classes específicas de localização de serviços.
• Evita que sua solução tenha alto acoplamento com JNDI Naming Service;
• Tomar cuidado com Service Locates e cluster!
• Utilize sempre que possível ENC.
• Exemplo no JAREF(J2EE Architecture, Research and Education Framework);
Data Access Object
• Definição: centraliza o serviço de persistência de objetos em um pequeno conjunto de classes, evitando por exemplo que o código SQL se espalhe pelo código da solução.
• Mesmo utilizando framework de persistência, utilize Data Access Object
• Exemplo no JAREF(J2EE Architecture, Research and Education Framework);
Model View Control
• Definição: divide o aplicativo em dados, comportamento e apresentação.
• Aplicando o MVC podemos reaproveitar o mesmo dado para múltiplas visualizações;
• Podemos reaproveitar o comportamento(eventos) da solução;
• É um pattern de arquitetura, criado há muito tempo. Pode ser aplicado em qualquer linguagem, mais facilmente com OOP.
• Struts, WebWork, Spring, PicoContainer são exemplos de frameworks J2EE.
• Link comparativo de frameworks MVC: https://equinox.dev.java.net/framework-comparison/WebFrameworks.pdf
Front Controller
• Definição: centraliza requests em um ponto central na solução.
• No lugar de um JSP submit para ouro JSP todos os JSP’s “subments” para um Servlet Controller que será responsável por processar as requisições.
• Exemplo no JAREF(J2EE Architecture, Research and Education Framework);
Command / Action
• Definição: encapsula uma requisição ao software em um objeto.
• Transforma métodos em classes
• Facilita o desenvolvimento de undo/redo
• Aumenta a granularidade do código, permitindo o reuso
• Action do Struts é o principal exemplo de implementação deste pattern
Factory
• Definição: instancia classes conforme demanda, recebendo parâmetros indicativos do objeto a ser instanciado.
• É comum o Controller “inchar”, pois nele incide todas as solicitações externas. Como uma maneira de resolver esse tipo de crescimento desordenado, é sugerido que o Command seja criado sob demanda, e deixa por conta de uma Factory a instanciação das classes Command necessárias.
Dispatcher to views
• Definição: gerencia a saída de informações para a interface desejada pelo cliente. Desatrela a forma de se enxergar os dados para múltiplas visões.
• É uma maneira de se implementar M. V. C. na sua essência, como o Smalltalk pregava.
Intercepting Filter
• Definição: forma para executar pré e pós processamento em request da solução.
• Um Servlet Filter é um exemplo de implementação de um Intercepting Filter para interceptar requests no Web Container;
View Helper
• Definição: simplifica a “redenrização” de objetivos em views com formatação.
• Uma Custom Tag pode representar uma View Helper;
• Uma simples classe convencional com métodos estáticos também;
• Exemplo no JAREF(J2EE Architecture, Research and Education Framework);
Business Delegate
• Definição: em aplicações distribuídas, o acesso remoto/local a EJB’s via JNDI Naming Service e tratamento de erros podem se tornar complexo à medida que o projeto cresce.
• Solução: criar uma classe intermediaria para acessar os EJB’s que contempla as regras de nomes de componentes para lookups, propriedades do servidor J2EE, tratamento de exceptions, etc;
Conclusão
• Os patterns (padrões) previnem erros comuns evitando problemas recorrentes;
• Utilizando patterns você cria soluções padronizadas, facilitando a troca de programadores;
• Você pode criar seus próprios patterns;
• O site theserverside.com contém vários patterns fora do catálogo J2EE e GoF;
Referências:
livro: http://www.submarino.com.br/produto/1/93924/padroes+de+projeto
Livro em inglês: http://www.scribd.com/doc/7282876/Design-Patterns-Gamma-GOF
http://java.sun.com/blueprints/patterns/catalog.html
http://www.scribd.com/doc/16738161/Java-Design-Patterns-With-Examples
http://evandropaes.wordpress.com/2007/02/28/design-patterns/
Referências:
livro: http://www.submarino.com.br/produto/1/93924/padroes+de+projeto
Livro em inglês: http://www.scribd.com/doc/7282876/Design-Patterns-Gamma-GOF
http://java.sun.com/blueprints/patterns/catalog.html
http://www.scribd.com/doc/16738161/Java-Design-Patterns-With-Examples
http://evandropaes.wordpress.com/2007/02/28/design-patterns/
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:
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
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
Categorias:
atualidades
,
interface
,
Java
,
linguagens
,
padrões
,
projetos
,
sistema
,
TI
Nenhum comentário
:
28 de agosto de 2009
Computação nas nuvens - cloud computing
Computação nas nuvens - é o novo paradigma de computação que consistem em virtualizar os recursos do computador, tornando acessível através da internet não só arquivos, mas também programas, sistema operacional, tudo!
Principais propostas:
Principais propostas:
- Com o advento da internet rápida podemos hospedar em servidores os arquivos, programas, etc;
- podemos usar Sitemas Operacionais da internet, já com nossos programas preferidos;
- baratemento do computador, pois algumas peças como o HD passa a ser desnecessário;
- nem o computador é mais necessário, pois como tudo está na internet, podemos acessá-la via celular, televisão, vídeo-game!
- popularização da informática e da internet, já que serão mais acessíveis e mais baratos;
- mais espaço para as pequenas empresas na internet, pois teremos muitas opções, não ficando dependente dos grandões com seus programas que só funcionam nos seus sistemas;
- o futuro é o acesso universal com a internet mais presentes e acessível.
Câmara Brasileira de Comércio Eletrônico
Comércio Eletrônico, Web-Marketing, Logística, Exportação, Meios de Pagamento Eletrônicos e Análise de Risco, são importantes caminhos buscados pelo empreendedorismo online.
A Câmara Brasileira de Comércio Eletrônico – camara-e.net, fundada em 07 de maio de 2001, é a principal entidade multissetorial da America Latina e entidade brasileira de maior representatividade da Economia Digital. O seu papel tem sido fundamental para a promoção da segurança nas transações eletrônicas, a formulação de políticas públicas ...
Promove diversos eventos onde são abordados temas como:
Local - Centro de Convenções de Sobral Ceará;
Data - 16 de setembro;
Horário - das 8h até as 12h.
fonte: Boletim Municipal, Sobral - CE
Câmara Brasileira de Comércio Eletrônico
A Câmara Brasileira de Comércio Eletrônico – camara-e.net, fundada em 07 de maio de 2001, é a principal entidade multissetorial da America Latina e entidade brasileira de maior representatividade da Economia Digital. O seu papel tem sido fundamental para a promoção da segurança nas transações eletrônicas, a formulação de políticas públicas ...
Promove diversos eventos onde são abordados temas como:
- A importância da escolha do domínio para seu negócio - Verisign;
- Hospedagem e loja virtual - Locaweb;
- Comércio eletrônico - UOL Host;
- Consumidor 2.0 - Vitrine Virtual Terra;
- Pagamento Seguro na Internet - PAG Seguro;
- Transformando o desafio da venda online com cartão de crédito em vantagem competitiva - ClearSale;
- Palestra WebMarketing: Cruzador de Negócios - Sebrae;
- Explorta Fácil - entrega internacional - Correios;
- Portal de exportação e financiamento - Banco do Brasil.
Local - Centro de Convenções de Sobral Ceará;
Data - 16 de setembro;
Horário - das 8h até as 12h.
fonte: Boletim Municipal, Sobral - CE
Câmara Brasileira de Comércio Eletrônico
26 de agosto de 2009
Internet e tv pela rede elétrica
Aneel aprova distribuição de internet e TV por assinatura pela rede de energia
A Tomada poderá ligar liquidificador e ser, também, ponto de internet.
Concessionárias terão de criar subsidiárias para entrar no negócio.
A Tomada poderá ligar liquidificador e ser, também, ponto de internet.
Concessionárias terão de criar subsidiárias para entrar no negócio.
Na prática, o sistema permitirá, assim que implementado, o acesso à internet, ou à TV por assinatura, por meio da rede elétrica - já presente na maior parte das residências do Brasil. "Assim, um ponto de energia pode ser uma tomada para ligar o eletrodoméstico e, simultaneamente, um ponto de rede de dados para a provedora de internet ou TV por assinatura", explicou a Aneel, em nota.
Fonte: G1 notícias
Na prática esta medida já vem tarde, pois com as redes G3 avançado em tecnologia e velocidade os cabos já estão caindo em desuso, tá na hora é da eletricidade também aderir ao wireless, como gostaria o inventor original do rádio Nicolas Tesla.
5 de agosto de 2009
Professor do futuro
Em minhas andanças de universidade achei que já tinha visto de tudo:
Resposta:
Hudsom Costa - prof. e coordenador de Ciências da Computação;
Cláudio Carvalho - prof. de Ciências da Computação;
Gilzamir Gomes - prof. de prog. orientada a objetos e comp. gráfica
Pós Dr. Tarcisio Praciano Pereira- professor de Cálculo
Se você é professor nunca é tarde para se atualizar. Comece por aqui:
Ebah = comunidade acadêmica compartilhando material didático;
SlideShare = compartilhamento de slides de apresentações;
Wikipédia = enciclopédia livre onde todos podem ler e escrever, já se tornou a maior do mundo e continua crescendo;
Google Acadêmico = indexador de artigos científicos;
Google Translate = Tradutor de idiomas, outras línguas não são mais o limite!;
Wikipédia em inglês = se não encontrou algo em português tente em inglês;
YouTube = milhares de vídeo-aulas com apresentações ;
SoftWare Livre = aluno que ainda não trabalha não deve recorrer a pirataria!
Google Apps = Soluções para comunicação online como: suas páginas, email, agenda, documentos...
Apostilas UNICAMP = muitas universidades disponibilizam material didático;
Blogger = blog ainda é a maneira mais rápida de fazer um site, simples e sem limites;
google = se ainda falta mais pra deixar as aulas interessantes, é só pesquisar!
Lembre-se: A crítica é melhor que o elogio, porque a crítica nos estimula a melhorar, mas o elogio nos leva a se acomodar.
- professores que só recebem trabalhos escritos a mão - para evitar o copiar e colar;
- aqueles que escrevem, escrevem, passam a aula quase toda copiando e esperando os alunos copiarem;
- aqueles que falam a aula inteira e tão rápido que não dá pra anotar nada;
- aqueles que exigem que nas provas as respostas sejam iguais a matéria dada - sufocando a parte criativa do cérebro;
- aqueles que mandam desligar o notebuque e prestar atenção a aula - e se o aluno está anotando no notebuque ou pesquisando sobre a aula?;
- aqueles que mandam parar de escrever pra não perder a atenção - como se para anotar não fosse preciso atenção!;
- aqueles que sem avisar não aparecem em sala de aula e deixam os alunos esperando!
- que valoriza trabalhos práticos mais que provas decorebas;
- que usa recursos como apresentações para enriquecer a aula;
- que procura uma aula participativa em vez do monólogo;
- que disponibiliza as matérias e exercícios pelo seu site;
- que responde dúvidas até por email;
- que não impõe a matéria e estimula a pesquisa, a dedução e o pensar (isso sim é aprender);
- que usa e divulga software livre!
Resposta:
Hudsom Costa - prof. e coordenador de Ciências da Computação;
Cláudio Carvalho - prof. de Ciências da Computação;
Gilzamir Gomes - prof. de prog. orientada a objetos e comp. gráfica
Pós Dr. Tarcisio Praciano Pereira- professor de Cálculo
Se você é professor nunca é tarde para se atualizar. Comece por aqui:
Ebah = comunidade acadêmica compartilhando material didático;
SlideShare = compartilhamento de slides de apresentações;
Wikipédia = enciclopédia livre onde todos podem ler e escrever, já se tornou a maior do mundo e continua crescendo;
Google Acadêmico = indexador de artigos científicos;
Google Translate = Tradutor de idiomas, outras línguas não são mais o limite!;
Wikipédia em inglês = se não encontrou algo em português tente em inglês;
YouTube = milhares de vídeo-aulas com apresentações ;
SoftWare Livre = aluno que ainda não trabalha não deve recorrer a pirataria!
Google Apps = Soluções para comunicação online como: suas páginas, email, agenda, documentos...
Apostilas UNICAMP = muitas universidades disponibilizam material didático;
Blogger = blog ainda é a maneira mais rápida de fazer um site, simples e sem limites;
google = se ainda falta mais pra deixar as aulas interessantes, é só pesquisar!
Lembre-se: A crítica é melhor que o elogio, porque a crítica nos estimula a melhorar, mas o elogio nos leva a se acomodar.
26 de julho de 2009
BoUML - editor de UML
Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos.
Os objetivos da UML são: o planejamento, especificação, documentação, e estruturação para sub-visualização e maior visualização lógica do desenvolvimento completo de um sistema de informação. A UML é um modo de padronizar as formas de modelagem.
UML na Wikipédia
Apostilas de UML na UNISul
BOUML é uma IDE para UML 2 que permite especificar e gerar código em C++, Java, Idl, Php e Python. BOUML está disponível em Unix/Linux/Solaris, MacOS X(Power PC and Intel) e Windows. Ela é muito rápida, e não necessita de muita memoria para administrar centenas de classes, ainda é extensível com plug-out que podem ser escritos em C++ ou Java, para usar BOUML para outros programas. O gerador de código é reversível e pode auxiliar muito na programação.
Características:
- é uma ferramenta livre (Software Livre) disponível para MS-Windows, GNU/Linux(Binários para várias distribuições), Mac.
- suporta diversas linguagens como: Java, C++, Php - grande suporte a linguagem C++, suportando toda(ou quase toda) suas particularidades como “enum”, “typedefs”, “struct”, “friend” e os tipos STL;
- customização na geração do código fonte;
- engenharia reversa (código fonte para o modelo);
- é possível fazer os principais diagramas da UML:
- Diagrama de Classe;
- Diagrama de Seqüencia;
- Diagrama de Caso de Uso com especificação;
- Diagrama de Colaboração;
- Diagrama de Objetos;
- Diagrama de Atividade;
- Diagrama de Estado;
- geração de documentação;
Screenshots, Ferramentas
Categorias:
C++
,
GPL
,
gratuito
,
ide
,
interface
,
Java
,
linguagens
,
linux
,
linux ubuntu
,
objetos
,
PHP
,
sistema
,
TI
,
UML
,
utilitários
,
Windows
Um comentário
:
20 de julho de 2009
Cursos de TI da Intel grátis
No site NextGenerationCenter.com existem vários curso em Tecnologia da Informação (TI) com certificados Intel.
Destaques:
Cloud Computing - computação em nuvens:
Destaques:
Cloud Computing - computação em nuvens:
Um conceito novo em tecnologia? Uma ferramenta que irá revolucionar a área de TI? Uma nova denominação para recursos já conhecidos pelos usuários? Ainda em fase de amadurecimento, a Cloud Computing é cada vez mais discutida por profissionais e analistas do setor. Conheça os aspectos que norteiam essa tendência e saiba os impactos que ela pode causar nesse mercado, tanto para os fornecedores como para os usuários.
Virtualização
Sistemas menos complexos. Essa é umas das principais funções da Virtualização. Entre outras vantagens, essa tecnologia facilita a adaptação às mudanças naturais em ambientes corporativos. As soluções de virtualização já são utilizadas pelo mercado há algum tempo. Mas hoje esse conceito tem evoluído constantemente para se integrar à realidade das empresas.
Software Livre
O uso do código aberto hoje oferece inúmeros benefícios. Diminui custos, permite o aprimoramento constante dos códigos e ainda contribui para a inclusão digital. Trata-se de uma solução que vem para disputar espaço com os softwares de código proprietário, para equilibrar a balança brasileira na importação/exportação de softwares, entre outros. Aprenda mais sobre software livre e saiba como fazer parte deste movimento.
E muito mais, cadastre-se e atualize-se com a Intel em www.nextgenerationcenter.com
Virtualização
Sistemas menos complexos. Essa é umas das principais funções da Virtualização. Entre outras vantagens, essa tecnologia facilita a adaptação às mudanças naturais em ambientes corporativos. As soluções de virtualização já são utilizadas pelo mercado há algum tempo. Mas hoje esse conceito tem evoluído constantemente para se integrar à realidade das empresas.
Software Livre
O uso do código aberto hoje oferece inúmeros benefícios. Diminui custos, permite o aprimoramento constante dos códigos e ainda contribui para a inclusão digital. Trata-se de uma solução que vem para disputar espaço com os softwares de código proprietário, para equilibrar a balança brasileira na importação/exportação de softwares, entre outros. Aprenda mais sobre software livre e saiba como fazer parte deste movimento.
Trabalho Remoto
O trabalho remoto é uma tendência irreversível. Os profissionais de algumas áreas podem desempenhar suas atividades em suas próprias casas ou em qualquer outro local, como se estivessem no escritório. Esse recurso proporciona inúmeras vantagens para profissionais e empresas. Neste tema, você vai conhecer melhor essa nova modalidade de trabalho.
O trabalho remoto é uma tendência irreversível. Os profissionais de algumas áreas podem desempenhar suas atividades em suas próprias casas ou em qualquer outro local, como se estivessem no escritório. Esse recurso proporciona inúmeras vantagens para profissionais e empresas. Neste tema, você vai conhecer melhor essa nova modalidade de trabalho.
Empresa Digital
Hoje em dia, as empresas buscam muito mais do que processadores. São as plataformas tecnológicas que podem realmente oferecer valor aos negócios. As empresas esperam que a tecnologia seja capaz de ajudar a resolver problemas, reduzir custos com TI e aumentar a competitividade. Tudo acontece por causa das exigências da era digital.
Hoje em dia, as empresas buscam muito mais do que processadores. São as plataformas tecnológicas que podem realmente oferecer valor aos negócios. As empresas esperam que a tecnologia seja capaz de ajudar a resolver problemas, reduzir custos com TI e aumentar a competitividade. Tudo acontece por causa das exigências da era digital.
Segurança da Informação
Armazenamento de informações estratégicas e confidenciais, senhas, dados pessoais, cadastros e tudo o que pode ser alvo de ataques precisa estar devidamente seguro para garantir a integridade de corporações e pessoas. Quais as Políticas de Segurança que um CSO (Chief Security Officer) desenvolve e adota para se prevenir contra o bombardeio desses e outros fatores? As respostas estão no seu curso de Segurança, com o qual você fica por dentro dos cuidados com as redes sem fio, camadas de segurança e muito mais.
Armazenamento de informações estratégicas e confidenciais, senhas, dados pessoais, cadastros e tudo o que pode ser alvo de ataques precisa estar devidamente seguro para garantir a integridade de corporações e pessoas. Quais as Políticas de Segurança que um CSO (Chief Security Officer) desenvolve e adota para se prevenir contra o bombardeio desses e outros fatores? As respostas estão no seu curso de Segurança, com o qual você fica por dentro dos cuidados com as redes sem fio, camadas de segurança e muito mais.
E muito mais, cadastre-se e atualize-se com a Intel em www.nextgenerationcenter.com
Cluster - supercomputador pessoal
Não é a toa que hoje temos os dualcores, quadcores, que são vários processadores no mesmo núcleo, compartilhando recursos e multiplicando o poder de computação para tarefas que exigem alto desempenho.
As utilidades são muitas:
- um desempenho ininterrupto - como um servidor que não pode parar, se uma máquina falha, outra já assume;
- distribuição de tarefas - se um servidor é muito requisitado e está muito ocupado, outro já responde, aliviando o tráfego;
- alta capacidade de armazenamento - distribuindo os arquivos em escalas de computadores;
- super-processamento - renderização de vídeo pode demorar horas em um computador comum, já com dois ou três o trabalho é mais rápido.
Se você tem PCs ligados em rede, pode montar um supercomputador sem gastar nenhum centavo. É verdade. E a supermáquina não vai exigir nenhuma reconfiguração de hardware ou mesmo instalação de software. Basta usar uma distribuição Linux que roda em CD, a Dynebolic. INFO testou essa solução e comprovou que ela funciona. O Dynebolic é um Linux ajustado para rodar em CD. Traz embutido o openMosix, solução que dá ao sistema a capacidade de distribuir o trabalho que está sendo executado num PC com outras máquinas da rede. Tecnicamente, o openMosix monta um cluster — ou seja, um conjunto de máquinas, todas rodando o mesmo sistema operacional, que funciona como uma única CPU. Com isso, uma tarefa pesada, que levaria horas, pode ser feita em minutos, graças à reunião dos micros na base do todos por um. Acompanhe os detalhes da experiência em: INFO
O Microwulf (uma brincadeira com Beowulf, nome dado a uma categoria de clusters de computadores) é um cluster de quatro PCs, cada um equipado com um processador dual-core (Athlon 64 X2 3800+) e 2 GB de RAM.
As máquinas são interligadas com interfaces de rede Gigabit Ethernet, bastante baratas, e compartilham um único disco rígido de 250 GB, que contém o sistema operacional (Ubuntu Linux) e programas, resultando em um computador com oito núcleos e 8 GB de RAM.”
Para saber mais: http://www.vivaolinux.com.br/artigo/Cluster-Beowulf/
15 de julho de 2009
Kernel e microkernel - linux no seu celular
Tem gente que diz que tudo no mundo tudo só foi feito para Windows e que por isso nunca usaria o Linux, e ainda que se fosse assim tão bom porque quase ninguém usa Linux?
A resposta é simples, falta de informação de quem pensa assim, hoje muitos aparelhos usam os chamados microkernels, ou seja, pequenos linux feitos para funcionar sem parar, o maior exemplo disso são os celulares, e a tendência para os computadores também caminha nesse sentido. Hoje o kernel do linux usa os chamados módulos, que atualizam o linux para detectar novos dispositivos e adicionam novas funcionalidades.
Mas o que é o Kernel?
O Kernel é a peça fundamental do sistema, responsável por prover a infra-estrutura básica necessária para que os programas funcionem, além de ser o responsável por dar suporte aos mais diferentes periféricos: placas de rede, som e o que mais você tiver espetado no micro.
Esta é justamente uma das principais diferenças entre o Windows e as distribuições Linux. No Windows, o sistema inclui um conjunto relativamente pequeno de drivers e você depende dos CDs de instalação e dos drivers disponibilizados pelos fabricantes. No Linux, quase todos os drivers disponíveis são incorporados diretamente no Kernel e já vêm pré-instalados nas distribuições. Isso faz com que os periféricos suportados sejam detectados automaticamente.
Para conhecer mais sobre o Kernel: http://www.gdhpress.com.br/blog/entendendo-o-kernel/
Mas e o que é o MicroKernel?
Para tornar o Kernel menor e mais rápido, é retirado o código desnecessário, deixando somente o código específico para realizar determinada tarefa.
Seu telefone celular, por exemplo, é um computador pequeno, mas comum em todos os outros aspectos, e há uma boa chance de ele rodar o L4 ou o Symbian, outro microkernel. O roteador de alta performance da Cisco também usa um microkernel. Nos mercados militar e aeroespacial, em que disponibilidade é fundamental, o Green Hills Integrity, outro microkernel, é amplamente usado. O PikeOS e o QNX também são microkernels amplamente usados em sistemas industriais e embarcados. Em outras palavras, quando é realmente importante que o sistema “simplesmente funcione o tempo todo”, as pessoas usam microkernels.
Para ler mais sobre MicroKernel:
http://www.linux-magazine.com.br/materia/tanenbaum_por_que_os_computadores_nao_funcionam_sem_parar
A resposta é simples, falta de informação de quem pensa assim, hoje muitos aparelhos usam os chamados microkernels, ou seja, pequenos linux feitos para funcionar sem parar, o maior exemplo disso são os celulares, e a tendência para os computadores também caminha nesse sentido. Hoje o kernel do linux usa os chamados módulos, que atualizam o linux para detectar novos dispositivos e adicionam novas funcionalidades.
Mas o que é o Kernel?
O Kernel é a peça fundamental do sistema, responsável por prover a infra-estrutura básica necessária para que os programas funcionem, além de ser o responsável por dar suporte aos mais diferentes periféricos: placas de rede, som e o que mais você tiver espetado no micro.
Esta é justamente uma das principais diferenças entre o Windows e as distribuições Linux. No Windows, o sistema inclui um conjunto relativamente pequeno de drivers e você depende dos CDs de instalação e dos drivers disponibilizados pelos fabricantes. No Linux, quase todos os drivers disponíveis são incorporados diretamente no Kernel e já vêm pré-instalados nas distribuições. Isso faz com que os periféricos suportados sejam detectados automaticamente.
Para conhecer mais sobre o Kernel: http://www.gdhpress.com.br/blog/entendendo-o-kernel/
Mas e o que é o MicroKernel?
Para tornar o Kernel menor e mais rápido, é retirado o código desnecessário, deixando somente o código específico para realizar determinada tarefa.
Seu telefone celular, por exemplo, é um computador pequeno, mas comum em todos os outros aspectos, e há uma boa chance de ele rodar o L4 ou o Symbian, outro microkernel. O roteador de alta performance da Cisco também usa um microkernel. Nos mercados militar e aeroespacial, em que disponibilidade é fundamental, o Green Hills Integrity, outro microkernel, é amplamente usado. O PikeOS e o QNX também são microkernels amplamente usados em sistemas industriais e embarcados. Em outras palavras, quando é realmente importante que o sistema “simplesmente funcione o tempo todo”, as pessoas usam microkernels.
Para ler mais sobre MicroKernel:
http://www.linux-magazine.com.br/materia/tanenbaum_por_que_os_computadores_nao_funcionam_sem_parar
14 de abril de 2008
DFJUG (Distrito Federal Java User Group — Grupo de Usuários de Java do Distrito Federal)
"JEDI (Java Education and Development Initiative) é disponibilizado de forma gratuita com todo o acesso às lições, apresentações de aula, exercícios, material de referência e vídeo-aulas."
Lá temos os seguintes módulos (em ordem decrescente):
- Banco de dados,
- Sistemas operacionais,
- Segurança,
- Programação WEB,
- Desenvolvimento de Aplicações Móveis,
- Engenharia de Software,
- Estruturas de Dados,
- Introdução à Programação II,
- Introdução à Programação I.
E o melhor: tudo é "de grátis"!
Categorias:
apostilas
,
banco de dados
,
cursos
,
gratuito
,
Java
,
segurança
,
sistema
,
TI
Nenhum comentário
:
Assinar:
Postagens
(
Atom
)