Dica de Leitura – Cypherpunks de Julian Assange

Livro Cypherpunks discute questões como liberdade de comunicação na internet, criptografia e monitoramento de dados

Cypherpunks de Julian Assange - Capa
Cypherpunks de Julian Assange – Capa

Olá pessoal, hoje quero trazer para você uma dica de leitura, trata-se do livro Cypherpunks liberdade e o futuro da internte que terminei de ler no início do mês, e já estava a algum tempo para comentar aqui no blog.

O livro relata um bate-papo / entrevista composto por Julian Assange criador do Wikileaks, Jacob Appelbaum que é um dos principais membros do projeto Tor (Navegador web que permite navegação anônima),  Andy Müller-Maguhn membro do Chaos Computer Club e  Jérémie Zimmermann 

O texto relata a conversa dos quatro sobre temas como liberdade de expressão e comunicação, a necessidade da criptografia para os mais fracos, inclusive países mais fracos, detalha como foi a experiência com o Wikileaks e relata algumas das perseguições e boicotes sofridos pelos seus criadores.

Também é discutida no livro a importância de projetos como o Tor na preservação da identidade de pessoas que lutam contra regimes totalitários, Bitcoins a moeda 100% virtual e anônima criada em cima de conceitos de p2p e criptografia dentre outras tecnologias e movimentos.

Confesso que boa parte do livro gira em torno das mesmas questões e pode deixar de certa forma o leitor mais leigo um pouco assustado com o cenário pintado pelos autores do livro, que ressaltam pontos como o baixo custo para o armazenamento total de todas as conversas realizadas por cidadãos de forma a possibilitar um posterior rastreio nos conteúdos de interesse do governo, e o fato de que tudo que fazemos hoje no meio digital ja é armazenado e monitorado, o que nos colocou em um enorme BigBrother.

Outras questões são levantadas como a falta de segurança de países menos desenvolvidos tecnologicamente, caso do Brasil, que poderia a qualquer momento ter seus sistemas interrompidos em caso de conflito com os países criadores das tecnologias que utilizamos…

Apesar de eu concordar com muitas das questões levantadas no livro, creio que o tom alarmista do discurso é um pouco exagerado, como qualquer discurso extremista, de toda forma acredito que vale a leitura, principalmente para quem gosta de temas como segurança da informação.

O livro está disponível na iBookStore no link: https://itunes.apple.com/br/book/cypherpunks/id596571860?l=en&mt=11

Ah, se o livro estiver certo agora meu blog será monitorado pelo FBI, sejam bem vindos 🙂

Até a próxima

 

Inteligência artificial forte – (Strong AI)

Conheça um pouco sobre o conceito de Inteligência artificial forte e como pensam os seus defensores.

Olá pessoal! Quarta-feira dia de continuar a nossa série sobre inteligência artificial  que iniciei na semana passada com alguns conceitos básicos, se você ainda não leu, leia aqui. Mas vamos ao assunto de hoje…

Os estudiosos da área de inteligência artificial, se dividem em duas linhas os que defendem a inteligência artificial forte (Strong AI) e os que defendem a inteligência artificial fraca (Weak AI), hoje vou falar um pouco sobre a primeira linha que foi definida pela primeira vez John Searle‘s em 1980 durante seu argumento da sala chinesa (que abordarei no próximo artigo).

Os  defensores da inteligência artificial forte (Strong AI), acreditam e defendem a hipótese de que a inteligência artificial irá em algum momento se igualar e posteriormente superar a inteligência humana, esta abordagem tem como seu principal argumento teste de Turing, que uma vez transposto pode definir um sistema computacional como inteligente.

Teste de Turing

É um teste proposto por Alan Turing em 1950 e que em sua teoria seria capaz de identificar o momento em que um sistema se tornasse realmente inteligente, na abordagem original do teste um humano deve conversar por interface de texto (teclado), com um ser humano e uma máquina programada para se comportar de forma humana, quando o usuário do sistema não conseguir distinguir mais a maquina e o humano, pode se dizer que o sistema é de fato inteligente.

Um exemplo do teste pode ser visto na ilustração abaixo:

Teste de Turing - Inteligência artificial forte
Teste de Turing – Inteligência artificial forte

No vídeo abaixo você pode ver um exemplo do teste sendo explicado e aplicado:

Um ótimo exemplo de sistema construído em português para ultrapassar o teste de Turing é o Sete Zoom que esta programado para interagir como um ser humano http://www.inbot.com.br/sete/, vale a pena testar, veja um exemplo de conversa no print abaixo, outro exemplo mais recente é a Siri sistema de iA da Apple que não atingiu ainda o nível desejado pelo teste mas caminha a passos largos para esse objetivo.

Inbot - iA forte brasileira
Inbot – iA forte brasileira

Outro pronto que dificulta a definição de inteligência artificial forte e fraca esta na própria definição do termo inteligência que é bem controverso, e dentre as definições mais aceitas temos:

  • Capacidade de aprender
  • Consciência
  • Planejamento
  • Razão
  • Capacidade de comunicação

Desta forma um sistema que carregue qualquer uma das características relacionadas a inteligência pode ser considerado um sistema de inteligência artificial, mesmo que não consiga atender a todas estas características.

É isso pessoal, alguns conceitos importantes para um bom entendimento teórico do assunto antes de entrarmos na prática dos mesmos, no próximo artigo vou trazer as idéias da inteligência artificial fraca (Weak AI) e como pensam seus defensores.

 

Como criar um módulo para sua loja Opencart? Parte 2

Veja como criar um módulo para sua loja Opencart de forma simples e padronizada

Olá pessoal, o post de hoje demorou mais saiu, vamos falar hoje sobre a segunda parte do tutorial sobre como criar um módulo para sua loja Opencart, que iniciei na terça passada.

Se você seguiu o tutorial e baixou o zip que coloquei com os arquivos nesse momento você deve ter disponível em sua tela de módulos, que é acessada através do menu: extensões > módulos com o nome “Newsletter para visitantes”, ao encontrar essa opção clique em instalar, e depois em editar, na tela seguinte vamos instalar o módulo nas páginas desejadas, sempre seguindo esses passos:

  • Clique em adicionar módulo
  • Selecione o layout que vai receber o modulo (Home por exemplo)
  • Posição (Topo/Rodapé)
  • Mantenha a opção habilitado
  • Clique em Salvar
Módulo Opencart
Módulo Opencart

Feito isso o módulo estará ativado no sistema, para que tudo funcione de acordo com o esperado e o box seja exibido no site, copie os arquivos da pasta Catalog dentre das pastas dentro seu sistema, você irá encontrar os arquivos de Model / View / Control e idioma.

Uma vez instalado os usuários poderão cadastrar nome e email para receber notificações do site, por fim você pode visualizar e exportar a base de usuários cadastrados no sistema, para isso clique no botão Dados e você será direcionado a tela abaixo:

Exportar dados
Exportar dados

Agora falando um pouco sobre os arquivos da pasta catalog do módulo, eles são simples e objetivos:

MODEL (Model/module/rfnewsletter.php)

Apenas uma inserção responsável por armazenar os dados no banco.

 class ModelModuleRfnewsletter extends Model {
 public function save($name,$email) {
 $this->db->query("INSERT INTO `rfnewsletter` (`id`, `name`, `email`) VALUES (null, '$name', '$email');");
 }
 }

Controller (Controller/module/rfnewsletter.php)

São apenas dois métodos uma para exibição do módulo e outra para que os dados possam ser salvos no sistema.

Pronto, seguindo estes passos você criou o módulo simples para cadastro e exportação de email e nome de usuários. Para baixar o módulo completo e só acessar o link abaixo, se tiver dúvidas ou sugestões pergunte aí abaixo, até a semana que vem com mais mão na massa e opencart aqui no blog.

Descubra aonde você gasta seu tempo com RescueTime

Conheça o RescueTime, descubra onde você gasta seu tempo online e defina metas para aumentar sua produtividade

Olá pessoal, início de semana e hoje é dia de falar sobre produtividade aqui no blog, se você não leu ainda, semana passada eu falei sobre o Emmet e como ele pode aumentar a produtividade de quem trabalha com desenvolvimento de software, mas hoje vou falar de uma ferramenta que pode ser utilizada por qualquer profissional que fique muito tempo no computador, independente de sua área de atuação o RescueTime.

O que é o RescueTime?

O RescueTime é um serviço que acompanha todo o tempo que você passa utilizando seu computador e loga quanto tempo você passou realizando cada tarefa, navegando em sites, respondendo emails, ou “rolando” a timeline do Facebook.

Como funciona o RescueTime?

O funcionamento do software é bem simples, basta você fazer o download do agente/software no site da empresa e instalar em seu com computador em poucos passos.

Depois da instalação e do acompanhamento realizado pela ferramenta você passa a contar um dashboard com uma série de gráficos e dados que vão te ajudar a conhecer aonde você esta gastando tempo quando está no computador, podendo assim ajustar seu comportamento afim de obter maior produtividade, outro ponto interessante é que você pode classificar atividades e sites como produtivos ou não o que aumenta a personalização e acerto dos relatórios.

Veja um exemplo do Dashboard abaixo:

RescueTime Dashboard
RescueTime Dashboard

Além do Dashboard você conta com o sistema de metas, por exemplo você pode definir que quer passar pelo menos 4 horas diárias em atividades altamente produtivas e o RescueTime vai lhe avisar através de alertas em seu próprio sistema se você por acaso não estiver cumprindo sua meta.

Outra funcionalidade interessante é o resumo semanal que você recebe por email, comparando essa semana com a anterior e demonstrando sua evolução, ou não 🙂 Outra funcionalidade muito interessante é o modo “focado” que você pode ativar no próprio cliente, você define o período em minutos e durante esse tempo todos os sites não produtivos são bloqueados em seu computador, ou seja tratamento de choque.

O O RescueTime está disponível de forma individual ou para times, existem planos gratuítos e pagos que te dão mais funcionalidades e histórico de gravação de tarefas, mais informações você encontra no site https://www.rescuetime.com.

Veja abaixo o vídeo de apresentação:

É isso pessoal, até semana que vem com mais dicas de produtividade.

Html5 parte 2, conheça as principais novas APIs

Conheça algumas das novas Apis que foram adicionadas a nova especificação da linguagem Html5

Olá pessoal, continuando nossa série de artigos sobre o tema Html5 que teve início na sexta-feira passada, vou hoje abordar um tema bem interessante dessa nova especificação da linguagem Html, trata-se das APIs inclusas na especificação, essas APIs são acessadas através de comandos em Javascript e permitem a manipulação e a utilização em conjunto com os novos elementos da especificação.

Hoje vou destacar 5 dessas APIs, são elas:

WebForms 2.0

Esta API foi criada para facilitar a vida do desenvolvedor na criação de formulários de entrada de dados, dentre as suas funcionalidades temos, novos tipos de entradas de dados como: Seletores de data, intervalo de dados, seletor de cor entre outros. Outro ponto muito trabalhado nesta API é a validação dos dados de formas mais simples com base na utilização de patterns definidas diretamente no formato de atributo do input.

Veja um exemplo de utilização abaixo:

WebForms 2.0
WebForms 2.0

Nesse link, nesse e nesse você pode obter mais informações sobre a WebForms 2.0 API,com certeza essa API merece e vai receber uma artigo mais aprofundado sobre sua utilização por aqui nas próximas semanas.

Web SQL Database

Como o nome já explica trata-se de uma Api para manipulação de dados através da linguagem SQL do lado do cliente , e é sem podemos assim dizer uma API ainda um tanto obscura dentre as novas APIs do html5, o que se deve ao fato de ainda ser muito pouco utilizada, mas passa a ser uma opção aos cookies dando maior liberdade ao front-end, que passa a não depender de uma linguagem server side para trabalhar com banco de dados.

Nesse link você tem um exemplo de implementação dessa API.

Web Storage

Html5 Web Storage
Html5 Web Storage

Através dessa API o desenvolvedor pode armazenar e manipular dados em um volume de até 5mb sem necessidade de definir um tempo de expiração dessa informação. Ela possui uma grande vantagem de performance em relação aos cookies justamente por ser carregada no modelo just in time ou seja apenas quando vai ser utilizada, o que não ocorre com os cookies que são carregados em todas as requisições.

Mais informações sobre a definição dessa API, você consegue aqui, aqui e aqui.

É isso pessoal, até a semana que vem com mais sobre Html5 aqui no blog, até lá.

Google I/O 2013, novidades do primeiro dia de evento.

Google I/O 2013, saiba quais os lançamentos mais relevantes do primeiro dia de evento.

Google I/O 2013
Google I/O 2013

Teve início ontem o Google I/O 2013, principal evento da Google dedicado a comunidade de desenvolvedores das plataformas Android e Chrome. O evento é realizado em São Francisco, Califórnia, mais precisamente no Moscone Center, curiosamente o mesmo palco utilizado pela Apple em seus famosos keynotes da WWDC.

Dentre as novidades apresentadas pela alta cúpula de diretores da empresa, na apresentação que abriu o e evento e incluiu um brasileiro, Hugo Barra, VP de produtos da área de Android, os pontos que mais me chamaram a atenção foram:

Android

Segundo dados da empresa já foram ativados 900 milhões de dispositivos na plataforma, o que é uma base considerável, também foram apresentadas diversas APIS para a plataforma com destaque para a API de social gaming, muito similar ao Game Center da Apple.

Google Plus

Foi apresentada também a nova interface da rede social, que redesenhou a timeline utilizando colunas, e como você pode verificar abaixo o resultado é muito similar ao que encontramos hoje no Pinterest, e no próprio Facebook como você pode ver na imagem abaixo que fiz da minha timeline.

Novo Layout Google Plus
Novo Layout Google Plus

Google Cloud

Talvez a parte mais interessante da apresentação, se deu nos serviços do Google Cloud, que agora conta com 15 GB gratuitos para armazenamento de fotos e inclui ferramentas para tratamento de imagens da nuvem, o que segundo os exemplos apresentados no eventos se mostraram muito interessantes.

Trecho da apresentação do Google Cloud
Trecho da apresentação do Google Cloud

Os vídeos do evento que dura toda a semana podem ser vistos no link:https://developers.google.com/events/io/ em 4 canais diferentes e simultâneos do Yotube.

Até o momento é isso pessoal, estou acompanhando o evento que dura toda a semana e pintando novidades interessantes por lá, publicarei aqui no Blog.

Até a próxima!

 

Inteligência Artificial, uma pequena introdução…

Saiba mais sobre a Inteligência Artificial, como ela funcionam e para quais aplicações pode ser utilizada.

Olá pessoal, durante as últimas 5 semanas, sempre as quartas-feiras eu trouxe para vocês uma pequena introdução sobre o tema robótica, nada muito aprofundado mas sim uma noção sobre os seus conceitos, exemplos de utilização na automação industrial e até uma aplicação prática e que pode ser feito por qualquer um utilizando o Lego Mindstorms.

Porém a partir de hoje vou escrever para vocês sobre um tema que caminha lado a lado com a robótica e que tem se tornando no ultimo ano, o meu assunto preferido, trata-se da Inteligência Artificial, ou simplesmente IA.

O meu interesse sobre o assunto começou em 2012 quando realizei um curso online sobre o assunto, organizado pelos professores Stuart Russel e Peter Norvig e aplicado através da plataforma de e-learning da Universidade de Stanford no site: https://www.ai-class.com, iniciativa essa que levou os conceitos básicos de IA a mais de 100 mil alunos de todo o mundo, e que hoje está disponível gratuitamente no www.udacity.com

Você pode inclusive assistir ao próprio Peter explicando a experiência durante o TED talk no vídeo abaixo:

Dito isto, pretendo nas próximas, muitas, semanas abordar aqui os temas inerentes ao estudo da Inteligência Artificial, bem como trazer e desenvolver exemplos práticos de sua utilização no nosso dia a dia, e esse conteúdo eu terei como fonte o livro escrito pelos dois professores  e que é um clássico da área chamado: “Artificial Intelligence A Modern Approach”, e o conteúdo do meu professor de Inteligência Artificial, www.niltoncanto.com.br, ou seja não será a minha opinião, a menos que eu deixe isso claro 🙂

Para começar acho válido destacar alguns conceitos básicos:

O que é a Inteligência Artificial?

De modo geral o conceito de inteligência, é definido de diversas maneiras principalmente quando tratado na área de tecnologia, em nosso contexto, podemos definir a inteligência artificial como a capacidade de um sistema computacional tomar a “decisão correta” com base nas informações por ele recebidas, da forma mais próxima possível aquela que um ser humano faria.

Outras vertentes que podem caracterizar um sistema como inteligência é:

  • Capacidade de aprender
  • Capacidade de raciocínio
  • Capacidade de tomar decisão
  • Capacidade de reconhecer padrões

Estas característica são basicamente os objetivos principais do estudo e desenvolvimento de aplicações de inteligência artificial nos dias de hoje, existindo para isso uma série de técnicas e conceitos que discutiremos aqui nas próximas semanas.

Por hoje é só pessoal, espero que vocês gostem do assunto assim como eu me apaixonei por ele nos últimos tempos, na quarta feira que vem tem mais, quando vou explicar um pouco sobre os conceitos de IA Forte e IA Fraca, quais são as caraterística, e como pensam seus defensores.

Até lá!

Como criar um módulo para sua loja Opencart? Parte 1

Veja como criar um módulo para sua loja Opencart de forma simples e padronizada

Tudo bom queridos leitores? Hoje é dia de colocar a mão na massa e falar de código aqui no blog, como vocês já puderam perceber nas últimas semanas tenho dedicado essa série de posts práticos a plataforma de comércio eletrônico Opencart e eu já expliquei aqui como funciona a estrutura e a modelagem de dados da plataforma, e na semana passada expliquei a importância do VQmod na manutenção da integridade da plataforma e hoje vou explicar como contruir um módulo simples para a plataforma.

O que nosso módulo vai fazer?

Para evitar uma maior complexidade neste artigo o plugin terá como função criar um box com um formulário em nossa loja que receberá dois campos para nome e email de usuários interessados em receber newsletter da loja, basicamente um plugin para captação de base .

Onde o modulo será exibido na loja?

Como utilizaremos o modelo padrão de plugins do sistema, o módulo poderá ser exibido em qualquer template do sistema e na localização definida na configuração do módulo, como você pode visualizar na imagem abaixo:

Módulo para sua loja Opencart
Módulo para sua loja Opencart

Criando a interface administrativa do módulo

O primeiro passo para a criação do módulo é disponibilizar o mesmo na área administrativa da loja, para isto você deve criar os seguintes arquivos, nos caminhos indicados:

/admin/controller/module/rfnewsletter.php

Arquivo responsável pelo controle das ações do módulo na interface administrativa do módulo, ou seja é o responsável por tudo que ocorre no admin, ativação do módulo, visualização de dados e exportação da base de cadastrados

/admin/view/template/module/rfnewsletter.tpl

Arquivo responsável pelo template da área de ativação e localização do módulo da frente de loja

/admin/view/template/module/rfnewsletter_data.tpl

Arquivo responsável pelo template de exibição dos dados dos usuários cadastrados no módulo.

/language/portuguese-br/module/rfnewsletter.php

Arquivo responsável pelas informações de idioma do módulo.

Após esse primeiro passo você deve criar a tabela no banco de dados que será responsável pelo armazenamento dos dados, para criar a tabela utilize a query abaixo:

CREATE TABLE `rfnewsletter` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
 )

Se você seguiu todos os passos corretamente o módulo deve estar disponível para instalação no menu extensões > módulos do seu Opencart, mas você deve estar se perguntando, ué? Mas o que eu coloco nos arquivos? Como é muita coisa para descrever aqui no post, você pode baixar o plugin pronto e em funcionamento no site do Opencart onde coloquei o módulo

É isso pessoal, o post hoje ficou mais longo do que o normal devido a complexidade do assunto, espero que possa ajudar na criação de muitas ferramentas e customizações para o Opencart, até semana que vem quando vou explicar como deve ser feita a criação da estrutura do módulo na loja e também falar sobre a instalação do módulo, até lá!

How Opencart database works?

Learn a little more about how Opencart database was modeled

Opencart database
Opencart database

Hi everyone, thurday, day to make a “hands-on” in the blog, and talk about development on the road.

As i promised last week today I will continue to tell you about the structure of the Opencart e-commerce platform, more specifically about their data modeling.

first of all remember that we are talking about a database built in MySql

A lot of tables, and a little bit of mess

On this default installation i’m using 1.5.1 version, the output Opencart account with absurd 89 tables, which in my opinion is overkill, just being common means when compared to other platforms in the same class like Magento.

Looking deeper into the data modeling we can identify some groups of tables, especially the prefix used in the name of the same, the main ones are.

  • attribute_…

Responsible for, the product attributes, things that have no relation to the grid or stock, but characteristics.

  • banner_…

Thats make sense, is only about advertising

  • category_…

Control the categorie tree, responsible by the store navigation

  • customer_…

Group almost all customer data, because the address is saved in other table named Address 😐

  • information_…
Responsible by content pages, looks like an WordPress posts
  • option_…

Group stock data, likes sizes, colors, etc

  • product_…

Product data only it in incredible 16 tables

  • return_…

Responsible by RMA system

A lot  of things?

Yet there are other smaller and less relevant gruops, but I think seeing that amount of groups and tables you already get an idea of the complexity, not always necessary, included on that database.

All this amount of tables is crafted almost a traditional manner by the models of the system which as I said last week are duplicated between the store and the administrative system  because system not uses one framework to encapsulate the queries or data.

Well, i think thats enough for today, on next thursday i will continue to talk to you about Opencart, explaining this time, how VQmod works with the Opencart System.

Hug, see you!

Dobrando a sua produtividade com Emmet!

Saiba como o Emmet vai fazer a sua produtividade dobrar deixando a codificação muito mais divertida

Olá leitores mais inteligentes da internet, hoje é segunda-feira, dia, aqui no blog de dicas de produtividade para quem trabalha com desenvolvimento, e como diria o pessoal de call-center: “Vamos estar Dobrando a sua produtividade” com essa dica de hoje, alias o post de hoje é o artigo de número 400! aqui no blog, mas vamos conheçer um pouco mais sobre o Emmet.

Se você não tem paciência para ler o texto, assista o Screencast no final do post

O que é o Emmet?

Pra quem nunca ouviu falar da Emmet esse o novo nome/marca da biblioteca mais famosa biblioteca de html/css “improvement”, ou seja ela torna o ato de programar escrever Html/CSS extremamente mais produtivo com base em uma série de atalhos e pequenos  truques que facilitam a vida do desenvolvedor.

Quem criou o Emmet?

A biblioteca Emmet foi criada e é atualmente mantida por Sergey Chikuyonok desenvolvedor russo que possui além desse uma série de outros projetos open-source que você pode acompanhar em seu Github

Por que o Emmet vai dobrar a sua produtividade

Simples, você vai digitar menos, a mecânica do plugin é muito simples, basta digitar o atalho e apertar o Tab e a mágica acontece, veja o exemplo:

Você digita:

div#container>ul>li*3

Aperta TAB e o editor transforma em:

Produtividade com Emmet
Produtividade com Emmet

E quando falamos de CSS, basta que você decore alguns atalhos que irão fazer mágica com sua produtividade, veja a lista abaixo, e não esqueça de sempre ativar o atalho com a tecla table-layout:

m50 = margin: 50px;
w30 = width: 30px;
tl = text-align: left;
fs = font-style: ;

E a lista é gigantesca, e você pode conferir aqui na documentação do projeto

Como instalar o Emmet no SublimeText?

O Sublime é o meu editor preferido dentre outras coisas pela facilidade em se installar plugins, e neste caso não é diferente, basta abrir o gerenciador de pacotes (CMD+SHIFT+P e procure Package Manager) Selecione instalar novo pacote, procure por Emmet e aperte Enter, reinicie o sublime e pronto.

Onde baixar o Emmet? 

No site oficial do projeto você encontra plugin do Emmet para as plataformas mais usadas do mercado como SublimeText, TextMate, Coda, Eclipse, Notepad++ dentre outras (http://emmet.io/download/)

É isso pessoal, até amanhã!

Assista no Screencast abaixo como utilizar o Emmet no Sublime