[Pesquisar este blog]

segunda-feira, 24 de agosto de 2015

Computação em Grade & Voluntarismo

Não é bacana quando a tecnologia contribui de maneira inovadora para sociedade? Não é ainda melhor quando isto não apenas promove o desenvolvimento científico e tecnológico, mas também permite auxiliar, mesmo que indiretamente, comunidades carentes? Esta é a proposta do World Community Grid, uma iniciativa da IBM cuja proposta é explorar a capacidade computacional ociosa existente no mundo para benefício da humanidade.



Os microcomputadores fazem parte de nosso cotidiano, sendo comum encontrá-los em toda parte: estabelecimentos comerciais, bancos, empresas, repartições públicas e, também, com as pessoas, na forma de notebooks, tablets e desktops. São mais de um bilhão de microcomputadores.

O potencial deste enorme contigente de equipamentos, quando somado, representa a maior parte do poder computacional disponível no mundo. Isto sem contar com os muitos milhões de smartphones, smart TVs, consoles de jogos e outros dispositivos capazes de realizar o processamento de dados. Nos próximos anos espera-se que este segmento possua capacidades bastante superiores de todos os supercomputadores e datacenters existentes.

Esta é uma mudança crítica, pois é natural que todo sistema computacional disponha de alguma capacidade ociosa. Isto é ainda mais significativo nos computadores pessoais, que raramente utilizam mais do que 50% de seu processamento de maneira contínua. Assim, atividades de pesquisa que requerem capacidades de processamento vultuosas poderiam ser beneficiadas pelo uso destes recursos ociosos.

Problemas que requerem quantidades fabulosas de processamento são, por exemplo, simulações climáticas para entender o aquecimento global; testes de novos algoritmos de criptografia para segurança das pessoas e aplicações; pesquisas para novos materiais para filtragem de água ou captação de energia solar; sem considerar as inúmeras necessidades na área da saúde e agricultura, que envolvem simulação de novos produtos químicos e protocolos diferenciados.

É aqui que o BOINC entra em cena.

BOINC

O Berkeley Open Infrastruture for Network Computing é uma sofisticada plataforma pública de computação em grade desenvolvida pela Universidade da Califórnia, mais conhecida como Berkeley University.




O termo computação em grade ou grid computing se refere a uma organização particular de computadores conectados por uma rede onde cada equipamento pode ser acessado individualmente. Cada computador da grade pode, simultanea e paralelamente, executar um programa, assim, quanto maior o número de computadores conectados, maior a capacidade conjunta de processamento. Isto caracteriza um modelo de arquitetura de um computador virtual na qual a infraestrutura comum de rede permite reunir os recursos de muitos computadores separados, proporcionando um desempenho extraordinário, comparável ou superior ao de supercomputadores.

O BOINC é uma solução tecnológica que oferece uma base sólida para construção de um enorme ambiente de processamento distribuído que exibe características únicas. Por meio do BOINC é relativamente simples converter uma aplicação de alta demanda computacional existente em um projeto de computação pública.

Cada projeto pode ser distribuído em servidores e banco de dados próprios, tornando-o autônomo e independentes de outros projetos. Os servidores de um projeto dividem o trabalho computacional necessários em unidades de trabalho relativamente pequenas, isto é, que podem ser completamente processadas em equipamentos comuns (microcomputadores domésticos e notebooks por exemplos) em poucas horas.

Com o uso de um programa cliente do BOINC, os proprietários destes equipamentos comuns podem se registrar em um ou mais projetos para compartilhar seus recursos ociosos com a infraestrutura do BOINC. Assim, o programa cliente do BOINC efetua o download de unidades de trabalho, executando-as localmente e enviando, assim que possível, os resultados obtidos para os servidores do projeto.

Deve-se destacar que o cliente BOINC utiliza os recursos ociosos do computador, ou seja, somente efetua o processamento das unidades de trabalho quando não existem programas e serviços do usuário em uso, tornando quase imperceptível sua presença no sistema. Nem mesmo o consumo de energia sofre alteração substancial, visto que a atuação do BOINC usa os períodos em que o computador permanece ligado, mas com baixa demanda de processamento (por exemplo, a requerida durante o preparo de texto, a leitura de documentos e outras atividades de baixa complexidade computacional).

Além disso, o cliente BOINC pode ser livremente configurado para utilização dos recursos do computador onde, a critério exclusivo de seu proprietário, determinam-se o número de processadores ou núcleos usados; o nível de ociosado empregado; o espaço ocupado em memória e disco; e a frequência de uso da rede. É possível, inclusive, determinar percentuais de dedicação para projetos distintos.

Outro aspecto interessante do BOINC é que os tempo de processamento doado, calculado com base em cada processador utilizado, e os resultados obtidos são pontuados, possibilitando criar um ranking de usuários registrados nos projetos. Os usuários também podem formar times, possibilitando diferentes formas de competição saudável.

Hoje o BOINC é utilizado por diferentes projetos de computação pública ao redor do mundo. Dois dos mais significativos são SETI@home e World Community Grid.

O projeto SETI@home (Search for Extra-Terrestrial Intelligence at home), lançado em 1999, tem como objetivo identificar sinais de rádio emitidos por possíveis civilizações inteligentes fora da terra. O projeto SETI@home conta mais de um milhão de participantes ao redor do mundo, cujo processamento associado é superior a 60 TeraFLOPS (trilhões de operações em ponto flutuante por segundo).

Se o SETI@home pode parecer algo diferente ou até excêntrico, o World Community Grid é bastante diferente disso.

World Community Grid

O World Community Grid (WCG), lançado em 2004 pela IBM, tem como propósito explorar as capacidades não utilizadas de microcomputadores de indivíduos e organizações direcionando seu uso para projetos de natureza científica, educacional ou filantrópica.


Numa infraestrutura mantida pela IBM residem os servidores BOINC que administram diversos subprojetos independentes. Um equipe de profissionais da IBM auxilia a transformação de projetos computacionais selecionados em aplicações distribuídas para o BOINC, permitindo que possam ser executadas por qualquer cliente BOINC conectado na internet. A seleção destes projetos respeita uma série de critérios relacionados à sua criticidade, impacto social e real necessidade de processamento extremo.

Para processar o projetos selecionados, quanto mais clientes registrados melhor, pois mais rapidamente os resultados serão obtidos e disponibilizados para as equipes de cientistas e pesquisadores de cada projeto. Até o presente, o WCG suportou mais de 24 grandes projetos de pesquisa, incluindo a pesquisa por alternativas mais efetivas para o tratamento do câncer, do HIV/AIDS e de uma série de doenças tropicais.

World Community Grid


São mais de 650.000 indivíduos e 460 organizações que contribuem com a maior iniciativa computacional voluntária devotada a ciência humanitária.

Assim, ao se registrar no WCG, os proprietários dos computadores tornam-se voluntários que doam processamento para projetos que objetivam o combate a doenças como malária, câncer infantil, leishmaniose, distrofia muscular, ebola; além de pesquisas para o desenvolvimento de fontes de energia sustentáveis; cultivo otimizado de cereais; entre outros.

Considerando que o impacto individual em termos consumo de energia, consumo de banda de rede e desgaste do computador são mínimos, percebe-se que contribuir com os projetos do WCG é muito simples. Mas os resultados da contribuição dos milhares de voluntários do WCG são muitíssimo significativos, pois quase sempre, demandariam um período inviável de tempo para serem obtido com recursos próprios de cada instituição!

É, de fato, sensacional!

Eu contribuo, e você, não gostaria de participar?


Como participar

Para participar é muito fácil também.

(1) Registre-se no WCG utilizando o link abaixo!


(2) Faça o download de uma versão do BOINC. Sugestão, use a versão portable, cujo link segue.


(3) Após instalar, basta selecionar o projeto World Community Grid e indicar seu usuário e senha de registro!

quarta-feira, 19 de agosto de 2015

Virtualização

No dicionário, o adjetivo virtual é explicado como "o que não existe como realidade, mas sim como potência ou faculdade" e também como "o que equivale a outro, podendo fazer às vezes deste, em virtude ou atividade".

Na área de Tecnologia de Informação o termo é frequentemente utilizado no sentido de indicar dispositivos de hardware, programas de computador ou uma combinação destes que substituem outros dispositivos ou programas, de maneira a obter-se seu funcionamento equivalente. Assim, virtualizar é o ato de criação de uma versão virtual de algo, como uma plataforma de hardware, um servidor, um sistema operacional, um dispositivo de armazenamento ou uma rede de computador.

Os softwares ou frameworks de virtualização podem, entre outras capacidades, atuar de duas maneiras distintas:
  • Dividir um recurso para prover seu uso em múltiplos ambientes de execução;
  • Consolidar múltiplos recursos de maneira que sejam tratados como algo único.
Cada um destes modos tem aplicações bastante convenientes e específicas.

Por exemplo, o simples particionamento de uma unidade de disco rígido pode ser considerado como uma operação de virtualização porque a unidade particionada dá origem a duas ou mais unidades lógicas (isto é, que não são físicas). Mas, em algum sistemas, também é possível fazer o oposto, ou seja, configurar duas ou mais unidades físicas para que operem como uma unidade lógica dotada de maior capacidade. Então divisão e consolidação são estratégias que se aplicam a um grande número de situações.

Muitos ambientes de desenvolvimento voltados para a construção de aplicativos móveis incluem emuladores de modelos genéricos ou específicos para possibilitar o teste destes softwares em um ambiente semelhante onde serão utilizados, mas sem a necessidade do programador dispor de um dispositivo físico.

A configuração de uma Virtual Private Network (VPN) é também uma operação de virtualização, pois com o uso de uma infraestrutura pública de comunicação (a internet, por exemplo) é possível a construção de uma rede privativa, que oferece grande segurança para o tráfego de seus dados, que opera transparentemente na rede pública. O efeito de uma rede privada "dentro" da infraestrutura pública de comunicação é a virtualização de uma rede.

Um framework de virtualização pode também ofertar um ambiente composto de diversos dispositivos, simulando um sistema completo por meio de outro. Assim, dispositivos, aplicações e usuários são capazes de interagir com recursos virtuais, isto é, providos pela plataforma de virtualização, como se fossem recursos reais.

Hoje são relativamente comuns os frameworks de virtualização que empregam uma ou mais metodologias de divisão dos recursos de um computador em múltiplos ambientes de execução por meio da aplicação de conceitos e tecnologias de particionamento de hardware e software, compartilhamento de tempo (time-sharing), simulação de máquina parcial ou completa, emulação, qualidade de serviços (QoS) e muitas outras.

Origem

As técnicas de virtualização surgiram na década de 1960 para prover a operação mais eficiente de mainframes, pois devido a seu altíssimo custo, todos os recursos sistêmicos deveriam ser intensamente utilizados para tornar seu uso mais competitivo.

Inicialmente possibilitava a divisão lógica dos recursos físicos do mainframe em múltiplos sistemas lógicos, os quais podiam ser usados para aplicações distintas e com operação independente. Além de flexibilizar a utilização do sistema, um mesmo mainframe poderia até ser compartilhado por organizações distintas quando tecnologias de acesso remoto eram empregadas para conectar os terminais de usuário ao computador principal.

Um caso de sucesso foi o IBM VM (Virtual Machine), um dos primeiros softwares comerciais de virtualização de sucesso, voltado para operação de mainframes.

Na última década a virtualização tornou-se uma estratégia fundamental para organizar os datacenters (as novas versões dos antigos centros de processamento de dados). Um servidor tradicional trabalha com grande ociosidade na maior parte do tempo, pois é dimensionado para atender os horários de pico. Assim o consumo de energia é maior do que efetivamente necessário. Com a virtualização, um servidor de capacidades maiores pode hospedar vários servidores (máquinas) virtuais, o que é denominado consolidação de servidores, explorando melhor os recursos disponíveis, reduzindo a ociosidade e o consumo total de energia, além de requisitar menos espaço físico e esforço de manutenção. Tudo sem redução do desempenho fornecidos aos aplicativos dos servidores, de maneira imperceptível para os usuários destas aplicações.

Visão conceitual

Sua organização tipicamente envolve três camadas:

  • Camada de hardwareComposta dos dispositivos do hardware que, de fato, existem no sistema. Pode agregar um sistema operacional (SO).
  • Camada de virtualizaçãoSistema/programa de virtualização, que particiona e administra a camada de hardware para prover serviços de virtualização ou suporte para máquinas virtuais. É o Hypervisor ou Monitor das Máquinas Virtuais (Virtual Machine Monitor).
  • Camada de aplicaçãoPartições que constituem as máquinas virtuais específicas para operação de diversos SO e aplicações isoladas.

Aplicações da Virtualização

A virtualização tem inúmeras aplicações. Algumas das mais comuns são:
  • Virtualização de armazenamento, onde múltiplas unidades de armazenamento, locais e remotas, são operadas de maneira combinada e distribuídas dinamicamente como unidade virtuais reconfiguráveis.
  • Virtualização de servidores, na qual um servidor físico pode ser particionado em vários servidores virtuais de menor capacidade.
  • Virtualização de sistemas operacionais, que é um tipo de virtualização, ocorrida no kernel do SO, para prover múltiplas instâncias de um mesmo ou diferentes sistemas operacionais numa mesma máquina.
  • Virtualização de redes, onde torna-se possível o uso seletivos dos recursos de uma rede física por meio de sua segmentação lógica, por exemplo, numa VPN.
  • Virtualização de aplicativos, na qual a operação de sistemas de software ocorre em sistemas virtualizados e cujo acesso se dá por meio de redes, como na computação em nuvem (cloud computing).

Vantagens e Desvantagens

A virtualização é uma tecnologia que tem potencial para proporcionar um grande conjunto de vantagens.

Exemplos clássicos são a possibilidade de uso de múltiplos SOs simultaneamente num mesmo host; e a consolidação de servidores subutilizados num menor número de máquinas, proporcionando economia no hardware, no espaço físico, na operação, na gerência, nos custos e também permitindo a redução dos impactos ambientais.

O uso da virtualização permite a continuidade de aplicações legadas que requerem hardware antigo; pode prover ambientes seguros e isolados (sandboxes) para operar aplicações não confiáveis ou constituir ambientes de teste e depuração; permite configurar ambientes com limitações específicas de recursos, sendo conveniente para sistemas habilitados para QoS (Quality of Service). A recuperação de desastres é grandemente facilitada pela re-instalação de sistemas virtualizados, ao invés de re-instalação e reconfiguração tradicional de sistemas.

Outros aspectos positivos do emprego da virtualização são: a possibilidade de empacotar e distribuir instalações ou aplicações complexas; facilitam a migração de software; facilitar o balanceamento de carga de trabalho; sem contar que pode constituir um infraestrutura mais adequada para atendimento flexível das demandas de sistemas de computação em nuvem.

Mas como toda e qualquer tecnologia, também existem desvantagens. Uma delas é que o hardware requisitado é, de fato, mais sofisticado, pois deve ser bastante mais robusto para suportar, sem comprometimento de desempenho e disponibilidade, a consolidação de servidores. Também existe mão de obra especializada, por requer novos conhecimentos e experiência na condução das etapas de adoção de tecnologia, migração de sistemas e operação contínua. Os custos adicionais de licenças de produtos específicos é outra consideração que não pode ser esquecida.

Conclusões

A virtualização é, do ponto de vista técnico, uma alternativa muito interessante e flexível para operação de sistemas sofisticados, mas também pode ser empregada com vantagens no âmbito pessoal. Uma análise cuidadosa do cenário de sua adoção pode determinar sua conveniência e viabilidade econômica em qualquer segmento de negócio. Mas a considerar-se sua larga adoção, por companhias de todos os tamanhos e em todos os ramos de atividade, constitui a maior prova que seu uso cuidadoso permite alcançar grandes ganhos.

Para Saber Mais



sábado, 15 de agosto de 2015

Java 8 Revisitado

A versão 8 do Java não é novidade. Nem deveria ser, pois foi lançada em 2014. Mas ainda existe um razoável número de programadores Java que não explorou, de fato, algumas das melhores características desta versão. Como é bastante provável que o Java 9 seja lançado em 2016, é uma grande ideia conhecer os diferenciais do Java 8.
Java 8
Além das tradicionais melhorias gerais em muitas das APIs existentes, a versão 8 traz o maior número de novidades na plataforma desde a versão 5. Isso é muito expressivo quando consideramos que na versão 5 (de 2004) foram introduzidos os genéricos, o autoboxing, as enumerações, o for avançado, os varargs, a importação estática e também as anotações. A versão 5 do Java contribuiu definitivamente para a consolidação do Java que, entra ano, sai ano, é uma das linguagens mais utilizadas no mundo, se não a mais utilizada.

Novidades da Versão

Dentre as muitas novidades da versão 8 , existe algumas particularmente importantes:
  • Métodos default e estáticos para interfaces;
  • Expressões lambda;
  • Referências para métodos;
  • Streams e operações em massa para coleções; e
  • API DateTime.
Além destas, temos diversos melhoramentos nas anotações, na inferência de tipos, na API de concorrência,  a paralelização de operações, o engine Nashorn para JavaScript, a codificação/decodificação em Base64, entre outros aperfeiçoamentos.

Para explorarmos melhor estas características, cada novidade principal ganha um pequeno artigo próprio, onde são descritos os seus propósitos, quais são as modificações na linguagem e alguns exemplos para clarificar sua aplicação. Os artigos programados são:
Espero que estes materiais sejam úteis!

Referências

quarta-feira, 29 de julho de 2015

Java - Guia do Programador - 3a. Edição

Acaba de ser lançada a 3a edição do meu livro Java - Guia do Programador!
Java - Guia do Programador - 3a. Edição

O livro, uma edição revisada e ampliada, trata o desenvolvimento de aplicações com uso da plataforma Java 8. Aborda detalhadamente os elementos da programação Java, com destaque para os conceitos de programação orientada a objetos e também aspectos da construção de software comercial.

O material é dividido em quatro partes, onde se destacam os vários tópicos voltados para as novidades do Java 8, marcados a seguir com [J8].

A primeira parte fala sobre o Java, sua origem e características, concentrando-se na estrutura e sintaxe da linguagem Java, ou seja, a organização dos programas Java, tipos de dados, variáveis, operadores, expressões, diretivas, escopo, arrays e entrada e saída. Trata também da programação orientada a objetos, abordando a definição de classes, visibilidade, instanciação de objetos, sobrecarga, herança, sobreposição, classes internas, classes anônimas, classes abstratas, polimorfismo, interfaces, interfaces funcionais [J8], referências para métodos [J8], genéricos e expressões lambda [J8].

A segunda parte mostra a construção de aplicações gráficas ou graphical user interfaces - GUI - com uso de componentes Swing, gerenciadores de layout, eventos e listeners.

Na terceira parte são tratados elementos essenciais para o possibilitar o desenvolvimento de aplicações comerciais, ou seja, discute a importante API das coleções, das streams para coleções [J8] e das operações de filter/map/reduce [J8]. Também mostra o emprego de threads na construção de programas multitarefa. O uso de arquivos e acesso a bancos de dados também está incluído.

Finalmente na quarta parte são encontradas técnicas para comunicação e troca de dados, em rede local ou internet, com uso de sockets e datagramas, na forma de aplicações cliente/servidor utilizando praticamente todos os elementos vistos nas seções anteriores.

O livro contém quase 300 exemplos completos, comentados em detalhe, muitos fragmentos de código prontos para uso, além de diagramas diversos, telas dos programas e mais de uma centena de resumos da API Java. Inclui também mais de 120 exercícios de revisão.

Desta maneira, o texto cobre o conteúdo essencial para as certificações Oracle Certified Associate (OCA) e Oracle Certified Professional (OCP) para as últimas versões do Java, ou seja, Java SE 7 e SE 8.

Mais detalhes, assim como o material de apoio, estão disponíveis no site da Novatec:
http://www.novatec.com.br/livros/javaguia3ed/

sábado, 27 de junho de 2015

Resíduos Eletro-Eletrônicos::e-Waste

Pode não parecer, mas é, de fato, interesse de todos, pois cada um de nós é um produtor potencial de resíduos eletro-eletrônicos a partir do momento que passamos a utilizar um telefone celular; ganhamos ou presenteamos um inofensivo brinquedo eletrônico; compramos um eletrodoméstico; etc. e etc. E o impacto disso é bem maior do que pode parecer!

domingo, 17 de maio de 2015

O Y da Carreira

Você sabia que existem tipos diferentes de carreiras profissionais? Carreira linear, carreira em Y e até mesmo carreira em W? Pensar e planejar a carreira são atitudes muito importantes, pois todos almejam a plena realização profissional!

Como não se pode prever o futuro, a melhor estratégia é sempre a do planejamento e da preparação antecipada. E isto também se aplica à vida profissional, pois, em geral, passamos uma parte substancial de nossas vidas no trabalho, sem contar que as realizações decorrentes de nossa ocupação tem um enorme potencial de trazer muita satisfação, influenciando a qualidade de nossas vidas. Planejamento de carreira e desenvolvimento profissional são, então, elementos importantes neste cenário.

Vale começar pela definição de carreira, palavra de origem latina (carraria) que possui diversos significados, mas todos envolvendo um movimento ou uma trajetória entre pontos. A ideia central de carreira é um percurso rumo a um objetivo profissional o qual é desejado por muitas razões diferentes, mas quase sempre associadas à necessidade que temos em nos sentir realizados, em dar sentido a nossas vidas, em suma, em sermos felizes. Por isso é comum relacionarmos a ideia de carreira as ocupações oferecidas no mercado de trabalho e também as oportunidades de progresso dentro das empresas e do mercado.

Existem muitos estudos e pesquisas que indicam que a grande motivação para o desenvolvimento profissional e para o enfrentamento dos desafios inerentes ao trabalho é o sentido de realização. Isto só é possível quando trabalhamos e fazemos aquilo que desejamos, de maneira a satisfazer nossas ambições e desejos. Ao mesmo tempo, trabalhar por obrigação, imposição ou necessidade raramente motiva ou traz tal sensação de realização. Ter uma remuneração elevada pode mascarar esta percepção, tanto que é comum a tentativa de medir sucesso pelo tamanho do contracheque. Ledo engano!

Se fosse assim, mais de 90% das pessoas do mundo seriam infelizes por não receber os maiores salários. Toda pessoa abastada seria feliz ou muito feliz. Mas na realidade, a felicidade e o sentido de realização são independentes do quanto se possui, pois são frutos da nossa necessidade de realizar, muito embora cada pessoa tenha uma visão própria e diferente do que seja isso.

Como as pessoas são diferentes, é natural esperar que nem todos persigam uma trajetória profissional padronizada. É aqui que entram os conceitos de carreira linear e carreira em Y. 

Uma carreira linear é uma sucessão de ocupações, aparentemente natural, onde no início temos aprendizes, estagiários e trainees. Estas ocupações evoluem para outras, de natureza "júnior", onde as pessoas trabalham com menor grau de independência e autonomia, geralmente sendo assistentes de outros profissionais mais experientes (ou mais graduados). Como o passar do tempo, a vivência  e o amadurecimento profissional, muitas vezes conciliado com mais educação formal, permitem galgar posições de natureza "plena". É bastante comum imaginar que, depois disso, o profissional passe a supervisionar, coordenar e gerenciar, ascendendo a posições de comando, inerentemente administrativas e de maior responsabilidade. Espera-se com isso maiores remunerações. De fato, isto pode constituir uma trajetória de sucesso.

Mas nem todos desejam ou querem tais posições de comando, a despeito dos ganhos ou da ideia de sucesso ali contida.

A carreira em y proporciona uma visão mais ampla desta questão. Após um percurso inicial de formação técnica e vivência prática, é igualmente natural e possível que, num ponto variável da vida profissional, que possamos nos direcionar às ocupações de natureza administrativa ou, em outra direção, a funções estritamente técnicas, ainda mais especializadas. A carreira em y considera que todos podem, num momento próprio da vida, escolher ocupações focadas na gestão (de pessoas, de negócios ou de projetos) ou ocupações de concentração mais técnica (onde os termos especialização, superespecialização e ultra-especialização são particularmente apropriados).

A carreira em Y não pressupõe, como na carreira linear, que todos possuem as mesmas aspirações e que no final da carreira só existem funções gerenciais. A carreira em Y compreende dois segmentos distintos de evolução profissional, que permitem a melhor adequação entre o perfil individual; os desejos e ambições pessoais; além das habilidades e competências efetivas de cada um.

Partindo então do autoconhecimento, cada um pode e deve pensar em qual trajetória é mais adequada, permitindo então o planejamento da carreira, ou seja, a busca por ocupações e desafios na direção que tem maiores chances de proporcionar sua realização como profissional e, principalmente, como pessoa.

Qualquer escolha profissional pode oferecer realização, desde que satisfaça os seus próprios anseios;. É claro que o reconhecimento só será obtido de tal escolha for desempenhada com dedicação e competência. Para isso, investir em educação é essencial.

Então, dentro de suas possibilidades (mas sempre pensando e procurando o máximo), a realização de cursos técnicos profissionalizantes, uma graduação no ensino superior e, depois, a continuação disso com cursos de especialização (lato sensu), mestrado e doutorado (estes dois últimos stricto sensu). Quanto maior o nível de educação, maior a remuneração. Além disso, existe no Brasil enorme demanda por profissionais portadores de educação superior em praticamente todas as áreas. Cursos de extensão e certificações profissionais são um ótimo complemento e proporcionam grande diferenciação profissional.

Autoconhecimento, muito estudo e dedicação. Esta é uma receita de sucesso!

domingo, 10 de maio de 2015

A Internet das Coisas

Você já pensou como seria a nossa vida se boa parte das máquinas e equipamentos fossem interligadas pela Internet? Não apenas computadores, tablets e celulares, mas veículos, máquinas, eletrodomésticos e até mesmo casas?

A Internet das Coisas ou Internet of Things (IoT) é uma tendência, provavelmente irreversível, de conexão de dispositivos por meio da Internet, criando um mundo enorme de possibilidades.
Num primeiro estágio, a conexão e as funcionalidades providas são mais simples, como quando você controla o portão de sua garagem ou a iluminação de partes específicas de sua casa por meio de seu smartphone. A conexão de câmeras de segurança de um local específico ao celular é algo semelhante. Nestes exemplos os objetos se comunicam com as pessoas e estas tomam as decisões.
No segundo estágio, sensores de luminosidade e temperatura poderão controlar a iluminação e o ar condicionado, considerando seus hábitos de uso e a previsão do tempo. Os objetos passam a registrar informações e tomam decisões com base em dados atuais e históricos. Assim é possível conciliar o aumento da eficiência e redução de custos com maior conforto e comodidade.

Hoje já existem 25 bilhões de dispositivos conectados para uma população mundial de 7,2 bilhões de pessoas. A CISCO, uma gigante das telecomunicações, estima que até 2020 tenhamos 50 bilhões de dispositivos conectados para uma população pouco maior que 7,6 bilhões. Será um verdadeiro salto em apenas cinco anos.

Isto demandará incluir microprocessadores, sensores e dispositivos de rede em muitas das coisas desconectadas que conhecemos. Além disso, será necessário um enorme contingente de pessoas capazes de desenvolver programas e aplicativos para este novo mundo. Não vai ser bacana?

Para Saber Mais