Cisco One Platform Kit (onePK) a resposta da cisco a mobilidade e SDN

Uma das coisas que sempre deixou-me um tanto perplexo em relação aos produtos da Cisco era a sua incapacidade em deixar os administradores de rede e desenvolvedores de sistemas, acederem aos dados dos seus dispositivos de forma flexível. Isso significa que muitas das vezes tínhamos de depender de ferramentas demasiado caras e não tão moveis.

Com a diminuição dos dispositivos de acesso a informação tais como Smartphones e Tablets, foi somente visível que a Cisco teria de se adaptar a este novo paradigma. O problema, sempre foi, pois claro, depender da burocracia dos grandes players do software de gestão de redes, os únicos então com capacidade tecnológica para se inter-comunicarem com dispositivos cisco como encaminhadores, comutadores, concentradores, enfim.

Mas é que este paradigma da mobilidade traz de facto em voga um novo tópico: As Application Stores, isto é, os Marketplaces onde podemos encontrar um conjunto de ferramentas, freeware ou shareware para administração e gestão de redes. E a Cisco obviamente tinha de aproveitar esta oportunidade.

O SDN (Software Defined Networking) como o nome mesmo diz é um novo paradigma em voga que está em conformidade com a aposta forte na virtualização e a necessidade de se configurarem dispositivos de rede sem necessidade de se ter acesso físico a maquina (appliance).

Foi neste contexto que finalmente decidiram lançar a  Cisco onePK (Cisco One Platform Kit) um SDK (Software Development Kit) que permite programar praticamente toda família de appliances Cisco, conforme demonstra a figura abaixo:

 cisco one pk arch
 
 

Na figura acima notamos de  facto que o código escrito numa determinada linguagem de programação (C, Java e outras) servirá plenamente para qualquer família de appliances do mesmo sistema operacional, por exemplo todos sistemas que suportem o IOS, ou todos os sistemas que suportem o XR. Na minha opinião foi uma grande jogada da Cisco. O local onde as apps irão correr, também é outro ponto interessante. Para já, existirá um canal de comunicação seguro que impedirá acessos não autorizados, e dependendo do tipo de aplicação, estas poderão correr numa appliance em modo normal (Process Hosting), num servidor Cisco Blade ou num servidor externo.

 

Existem um conjunto de serviços que estarão a disposição por meio do Kit de Desenvolvimento. A tabela abaixo lista estes serviços:

 cisco one pk services
 
 

Existem aqui, um conjunto de oportunidades, agora acessíveis de forma mais ‘soft‘, para os interessados desenvolverem apps responsivas que sejam visualmente atraentes, mas que realizem tarefas complexas. Por exemplo, pode ser desenvolvida uma app que usa o serviço Utilities para atribuir níveis de acesso a determinados usuários do Active Directory/LDAP, usando o seu Smartphone ou o seu Tablet.

É de facto um avanço em frente por parte da Cisco. Os novos paradigmas que abarcam desafios como Cloud Computing e Mobilidade terão muito a ganhar com este recurso. Novas, melhores e mais apps irão surgir. Novos empregos serão gerados e novos serviços serão prestados.

Anúncios

Mais uma empresa Angolana representa a Pearson VUE

Ao realizar algumas pesquisas pelo Google, caí num link duma empresa Angolana que presta serviços de redes e segundo infos do seu site é um centro de certificação para todos cursos da Pearson VUE.

Entao meu amigo se você é daqueles como eu que está a estudar para tirar umas certs nao se esqueça de apontar esta empresa: Hiperdist-Angola (Flash requerido).

Programadores em Angola ou copy pasters? Eis a questão.

As vezes paro e penso. Não foi nada mau ter ido comprar uns fasciculos de linguagem C quando tinha 16 anos. Vivia-se uma época em que linguagens de programação confusas e sucateiras como VB e DELPHI eram o maior sucesso do mercado e ninguem estava disposto a optar por uma linguagem que era considerada como ‘dificil’. Para mim aconteceu exatamente o contrario. Tinha recebido um fasciculo de VB de um amigo em que nao percebi quase nada daquela confusão, daí o motivo de ter comprado um fasciculo de linguagem C em Ingles para sistemas UNIX.

Passados alguns anos olho hoje para o mercado de programação em Angola e fico decepcionado com o que está a acontecer. É que na minha opinião as coisas nao estão a avançar como eu esperava. Digo isso porque como estudante universitario esperava um certo entusiamo por parte da nossa franja neste segmento que é dos mais lucrativos do mundo. Muito ao contrario a disciplina de programação tornou-se um autentico terror (e nao é que nao seja verdade) entre a classe universitaria tanto privada como pública. Deixou de ser uma cadeira divertida e entusiasmante como deveria supor ser.

Tudo isto por culpa nao apenas dos alunos, mas duma grande deficiencia de certos transmissores de conhecimento que ainda nao se aperceberam que nao basta chegar com um livro ou fasciculo na sala de aulas, deixar uma tarefas e é aula dada. Aposta-se 95% em aulas teoricas e quase nada se prático se faz na sala de aula. É muita lata (se me permitem a expressão) e o aluno nao é colocado em contacto com o “conhecimento exacto” que lhe permite ser prágmatico no aprendizado o que em programação é extremamente importante ser prágmatico, senão perde-se tempo com questões desecessarias e despreziveis (como porquê a função scanf consegue receber multiplos argumentos (varargs)).

O que não entendo por exemplo é como é possivel que numa cadeira destas ao aluno é recomendado como avaliação um trabalho prático para alguem que nunca chegou a ter 5 aulas práticas dignas desse nome. O resultado sao trabalhos de copy paste que alguns cinicamente chamam de reaproveitamento, inputs sem validação de dados, onde o absurdo nao apenas chega a ser a troca de algumas mensagens de output para enganar os incautos, mas até mesmo uma ‘cola descarada’ onde nem o nome do autor verdadeiro chega a ser ocultado.

Por outro lado nao posso ser tão injusto com os nossos transmissores de conhecimento. Nós estudantes temos assumido comportamentos que ao minimo escambam no autentico ridiculo. Quando me preparava para a cadeira de estruturas de dados fui perguntar a uma aluna mais a frente que conselhos tinha para mim a fim de enfrentar aquela cadeira. A resposta nao se fez rogar: “Pega um projecto já feito e estuda”.
Nao precisei dizer mais nada, hoje posso dizer que em quase nenhuma universidade Angolana um aluno atreve-se a começar um trabalho prático do zero (sao poucos) usando apenas classes e métodos externos. O cumulo é tao grande que quem vai por aí pode ser mesmo penalizado, já que para alguns transmissores de conhecimento basta que o trabalho corra, nao importa o acompanhamento ou a prova dos 9 ao aluno.

Encontrar bons programadores é uma tarefa quase semelhante a procura de ouro, sao pessoas em escassez, mas tenho visto alguns em Angola que sao muito bons, mas que infelizmente depois de terem terminado a sua formação sao atirados pelo departamento de TI em areas completamente a esquerda da sua grande paixão que é a programação. De qualquer forma a maior parte dos grandes programadores ou bons programadores que conheço ou já conheciam programação ou já tinham interesse por este ramo ou no mínimo sao pessoas muito inteligentes e em programação quem nao é inteligente é melhor nem se atrever.

Links:

O bom programador
How to recognise a good programmer

Paul Graham – Um dos melhores programadores do mundo

Calendario Swing para Java? Use o NachoCalendar

Oficialmente o Java nao suporta uso de classes gráficas para seleccão de datas. Apenas sao providas algumas classes como GregorianCalendar() para este fim, de modo que fica ou a escolha do usuario que pode criar classes para tratamento de datas com Swing ou pode optar por usar algumas classes pagas como a javadatepicker.

Como nós Angolanos gostamos de tudo grátis (também não é para menos com VISA de 10.000 usd) então uma boa solução é usar a classe NachoCalendar (nome estranho) que é uma classe open source muito boa que oferece a possibilidade adicionar um calendario como um campo ou como um panel.

Para usar, faça os imports

import net.sf.nachocalendar.CalendarFactory;
import net.sf.nachocalendar.components.DateField;

No construtor

DateField datefield;

No painel adicionar o field datefield

add(datefield);

Para retornar uma data basta usar os metodos set’s e get’s correspondentes

datefield.setValue(new Date());
 
Date choosed = (Date) datefield.getValue();

Consulte o manual e download aqui da classe.

Stack Overflow: A Wikipedia dos programadores

Joel Spolsky andou meio desaparecido. É um programador Israelita que já serviu no exercito Judeu e ainda teve tempo de estudar nos EUA e trabalhar para a Microsoft como programador, fundando depois uma firma de software. Também já escreveu alguns livros sobre programação que acabaram por receber muitos comentarios no Slashdot.

Desta vez teve outra ideia (com alguns amigos). Sabendo da confusão que causa pesquisar certos assuntos sobre programação (somente) ele aproveitou esse nicho. Um espaço de perguntas e respostas sobre assuntos de programação como uma funcionalidade de Wikis. O resultado:

Uma aplicação e um site completamente funcionais, aonde se pode perguntar tudo e se encontrar respostas para quase tudo sobre programação. Brevemente teremos um espaço, e isso será bem obvio quanto mais tempo passar, com infos muitissimas sobre questões pontuais e comuns em programação, nao importando para já o numero de linguagens de programação.

Google lança Keyczar

O Keyczar pode ser a solução para uma infinidade de dores de cabeça que desenvolvedores têm as vezes para ter implementada em suas aplicações Criptografia forte. Trata-se nao somente duma ferramenta com suporte a criptografia assimetrica e simetrica mas também possui uma API facilitando aos desenvolvedores de Java e Python (brevemente c++) incorporarem em suas aplicações de forma fácil capacidades de encriptação.

Quem sabe brevemente nao estarei aqui com algumas dicas e aplicações em Java usando o Keyczar.

Java: Tratamento de packages

Quando se pretende projectar o desenvolvimento de classes, geralmente se recorre ao uso de packages de modo a evitar conflitos de nomes de classes e a organizar melhor o codigo, para evitar convençao. Um exemplo disso sao os pacotes muito conhecidos como java.util,java.io, etc, que possuem suas classes. Por exemplo ao fazer um import (declaração que permite colocar classes num ficheiro .java) voce poderia usar a seguinte instrução:

import java.util.Random;

Isso significa que podemos usar a classe Random do pacote java.util, porque ela já está no nosso ficheiro .java. Como nao é meu objectivo falar de imports mas sim de criação de packages e ser mais pratico com isso, sao necessarios alguns passos (Note que nao é exactamente uma convenção oficial).

– Adotar a convenção de nomes que consiste em usar sua extensao.nomededominio.nomepasta1.nomepasta3.sequiseroutrapastaeassimpordiante

– Quando for criar uma classe, no inicio do ficheiro .java deverá existir a declaração

package extensao.nomededominio.nomepasta1.nomepasta3.sequiseroutrapastaeassimpordiante

Imaginemos que estejamos a organizar nossos ficheiros na pasta src do seguinte path:

c:\proj\src

Nosso pacote ficaria assim:

c:\proj\extensao.nomededominio.nomepasta1.nomepasta3.sequiseroutrapastaeassimpordiante

Nossos arquivos .java ficariam em src

ex: c:\proj\src\ExemploClasse.java

e exemplo classe desejariamos que fosse um pacote de

extensao.nomededominio.nomepasta1.nomepasta3.sequiseroutrapastaeassimpordiante

Para que assim fosse por altura da compilação teriamos de proceder da seguinte forma:

c:\proj\src>javac -d c:\proj c:\proj\src\ExemploClasse.java

ou

c:\proj\src>javac -d c:\proj c:\proj\src\*.java

Isso colocaria, os ficheiros .class nos pacotes certos. Por altura da execução dum .class que usa os pacotes acima poderiamos chamar:

c:\proj\src>java -classpath ;c:\proj;. FICHEIRO.CLASS

Isso daria a indicação certa da localização dos pacotes ao FICHEIRO.CLASS