Alterando a permissão de arquivos e pastas
O comando ‘find’ possibilita procurar por arquivos ou pastas.
Alterando a permissão de todas as pastas abaixo do diretório www/ para 755.
find /var/www -type d -exec chmod -R 755 {} \;
Alterando a permissão de todos os arquivos abaixo do diretório www/ para 644.
find /var/www -type f -exec chmod -R 644 {} \;
Primeiros passos – Arduino
Depois de longos 45 dias de espera, chegou meu arduino que comprei na china.
Vou mostrar aqui meu primeiro exemplo acendendo 2 led’s.
void setup() {
// Inicializa os pinos como saída.
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // Define o pino como ligado
digitalWrite(11, LOW); // Define o pino como desligado
delay(1000); // Espera por 1 segundo
digitalWrite(13, LOW); // Define o pino como desligado
digitalWrite(11, HIGH); // Define o pino como ligado
delay(1000); // Espera por 1 segundo
}
Agora é comprar mais acessórios é fazer projetos mais legais.
Até a próxima.
Gerenciador de senhas KeePassX
Dica do dia!
KeePassX é uma aplicação segura para gerenciamento de senhas e dados pessoais. Ele tem uma interface leve e é multi-plataforma.
Baixe agora mesmo em: http://www.keepassx.org/downloads/
Agora você poderá organizar todos os seus logins e senhas de uma maneira mais fácil e rápida.
Iniciando com Smarty
O que é Smarty
O Smarty é um sistema de templates para PHP. Em outras palavras ele separa sua aplicação lógica e o conteúdo do seu site tornando muito mais fácil o entendimento e manutenção.
Por exemplo, digamos que você está desenvolvendo um site e não quer misturar a programação PHP com as tags HTML. Usando o Smarty você consegue fazer isso de uma forma bem fácil.
Mais informações em: http://www.smarty.net/docsv2/pt_BR/what.is.smarty.tpl.
Instalação Básica
Certifique-se que você sabe a localização do ‘document root’ do seu servidor web. Em nosso exemplo, o ‘document root’ é “/home/desenv/www/smarty”.
Baixe a biblioteca do Smarty (Download Smarty) e instale os arquivos da biblioteca do Smarty que estão no subdiretório /libs/ da distribuição. Estes são os arquivos PHP que você NÃO PRECISA editar. Eles são comuns a todas as aplicações e eles só são atualizados quando você atualiza para uma nova versão do Smarty.
O Smarty necessita de quatro diretórios, que são chamados por padrão 'templates/', 'templates_c/', 'configs/' e 'cache/'. Cada um deles pode ser definido pelas propriedades da classe Smarty $template_dir, $compile_dir, $config_dir, e $cache_dir repectivamente.
Exemplo de como ficou meu diretório:
/home/desenv/www/smarty/cache /home/desenv/www/smarty/configs /home/desenv/www/smarty/libs /home/desenv/www/smarty/templates /home/desenv/www/smarty/templates_c
Mais informações em: http://www.smarty.net/docsv2/pt_BR/installing.smarty.basic.tpl
Carregando o primeiro template
Agora com tudo já configurado, vamos para o nosso primeiro exemplo prático. Crie o arquivo ‘ex_1.php’ e o ‘templates/ex_1.tpl’.
Dentro do arquivo ‘ex_1.php’ vamos apenas instanciar a classe do Smarty e mostrar o template.
ex_1.php
include 'libs/Smarty.class.php';
$smarty = new Smarty;
$smarty->display('ex_1.tpl');
O arquivo ‘ex_1.tpl’ é o template que será mostrado.
ex_1.tpl <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Smarty</title> </head> <body> <h1>Smarty</h1> <p>sistema de templates para PHP</p> </body> </html>
Assign
Isso é usado para fixar valores para o template. Você pode explicitamente passar pares de nomes/valores, ou um array associativo contendo o par de nome/valor.
ex_2.php
include 'libs/Smarty.class.php';
$smarty = new Smarty;
// passa pares de nomes/valores
$smarty->assign("name", "João da Silva");
$smarty->assign("endereco", "rua: Getúlio Vargas, 1000");
// passa array associativo
$smarty->assign(array("cidade" => "Bal. Camboriú", "estado" => "Santa Catarina"));
$smarty->display('ex_2.tpl');
Abaixo um exemplo de como exibir essas variáveis.
ex_2.tpl
<html>
<head>
<title>Smarty - Ex 2</title>
</head>
<body>
<p>Nome: {$name}</p>
<p>Endereço: {$endereco}</p>
<p>Cidade: {$cidade}</p>
<p>Estado: {$estado}</p>
</body>
</html>
Mais informações em: http://www.smarty.net/docsv2/pt_BR/api.assign.tpl
Arquivos de Configuração
Arquivos de configuração são úteis para o armazenamento de variáveis globais usadas no template. Um exemplo são os títulos das páginas, palavras chaves, descrições, cores de layout, etc… Normalmente você teria que abrir cada arquivo e fazer a alteração. Com arquivos de configurações, os dados podem ser armazenados em um lugar, e apenas um arquivo precisaria ser alterado.
foo.conf title = "Titulo do site" keywords = "Minhas palavras chaves" intro = """Este é um valor que ultrapassa uma<br> linha. Você deve colocá-lo<br> dentre três aspas."""
Mais informações em: http://www.smarty.net/docsv2/pt_BR/config.files.tpl
Carregar variáveis de arquivos de configuração
A função ‘config_load’ é usada para carregar as variáveis de um arquivo de configuração dentro de um template e são referenciadas colocando-se elas entre cancelas (#)..
ex_3.tpl
{config_load file="foo.conf"}
<html>
<head>
<title>{#title#}</title>
<meta name="keywords" content="{#keywords#}" />
</head>
<body>
<p>{#intro#}</p>
</body>
</html>
Mais informações em: http://www.smarty.net/docsv2/pt_BR/language.function.config.load.tpl
Variável reservada {$Smarty}
{* mostra o valor de page da URL (GET) http://www.domain.com/index.php?page=foo *}
{$smarty.get.page}
{* mostra a variável "page" de um formulário (POST) *}
{$smarty.post.page}
{* mostra o valor do cookie "username" *}
{$smarty.cookies.username}
{* mostra a variável do servidor "SERVER_NAME" *}
{$smarty.server.SERVER_NAME}
{* mostra a variável de ambiente do sistema "PATH" *}
{$smarty.env.PATH}
{* mostra a variável de session do php "id" *}
{$smarty.session.id}
{* mostra a variável "username" da união de get/post/cookies/server/env *}
{$smarty.request.username}
Para saber como exibir outras variáveis, acesse: http://www.smarty.net/docsv2/pt_BR/language.variables.smarty.tpl
Por hoje é só pessoal, mas para quem quiser se aprofundar no assunto, vale a pena dar uma uma boa olhada na documentação no próprio site do Smarty em: http://www.smarty.net/docsv2/pt_BR/.
Fazer download dos exemplos.
Até a próxima.
Redimensionar imagens em lote com ImageMagick
Dica do dia!
Se você usa linux e precisa de uma opção bem simples para redimensionar várias imagens de uma vez, imagemagick é a solução.
Para instalar o imagemagick no Ubuntu, digite no seu terminal o seguinte comando:
sudo apt-get install imagemagick
O exemplo abaixo irá listar todos os arquivos com extensão ‘.JPG’ do diretório atual, redimensionar com qualidade 70 e salvar na pasta ‘fotos_redimencionadas/’.
for foto in `ls *.JPG`; do echo $foto;convert -resize 1024x768 -quality 70 $foto fotos_redimencionadas/$foto; done
Vaga de trabalho em Balneário Camboriú – SC
A VIDEOSOFT e IMOVELPRO abriram vagas para trabalhar em sua sede, em Balneário Camboriú, SC.
Os interessados devem enviar Currículo Atualizado para o e-mail natalia@potenzialle.com.br;
SOBRE A VAGA
ADMINISTRADOR DE SERVIDORES/ INFRA-ESTRUTURA
FORMAÇÃO: Graduação completa ou cursando na área
ATIVIDADES: Responsável pela infra-estrutura e servidores da empresa.
COMPETÊNCIAS TÉCNICAS: Administração de servidores Unix, especialmente Linux e/ou FreeBSD. Servidores WEB, e-mail. Será considerado diferencial conhecimentos nos servidores: DNS, Java, Cloud Computing. Inglês técnico avançado para leitura/escrita.
SALÁRIO: R$ A/C
BENEFÍCIOS: Vale transporte, Assistência médica
TESTER
FORMAÇÃO: Cursando Ciências da Computação
ATIVIDADES: Executar testes e identificar possíveis erros.
SALÁRIO: R$ 800,00
RECEPCIONISTA
FORMAÇÃO: 2º Grau Completo
ATIVIDADES: Atendimento telefônico, cadastro de clientes, reserva de hotéis e passagens, auxílio aos colaboradores em demais atividades.
Competências Técnicas: Informática intermediária, elaboração de planilhas, atendimento ao cliente. Desejável vivência na função.
SALÁRIO: R$ 650,00
ESTAGIÁRIO TEMPORÁRIO
FORMAÇÃO: Cursando Ciências da Computação
ATIVIDADES: Montagem e manutenção de micro básico, desejável conhecimentos na parte de hardware
SALÁRIO: R$ 600,00 – apenas para o horário vespertino
Obs. Realizará estágio temporário com possibilidade de efetivação.
Para conhecer estas vagas e candidatar-se entre no link: http://www.kombo.com.br/clientes/potenzialle
O “Hello, World” do Google Maps
A maneira mais fácil de conhecer a API do Google Maps é iniciar com um exemplo simples. O código a baixo mostrará um mapa centralizado em Florianópolis, SC Brasil.
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var latlng = new google.maps.LatLng(-27.592729,-48.549449);
var myOptions = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
Para obter mais informações sobre como montar o seu primeiro mapa, acesse o link: http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/tutorial.html
Adicionando um marcador
Para adicionar um marcador em seu mapa, você precisa usar o construtor Marker.
var latlng = new google.maps.LatLng(-27.592729,-48.549449);
var myOptions = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Adiciona um marcador
var marker = new google.maps.Marker({
position: latlng,
map: map,
title:"Texto personalizado"
});
Mais informações em: http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/overlays.html#Markers
Adicionar um balão ao marcador
Para adicionar um balão de informações ao marcador, você precisa usar o construtor InfoWindow e adicionar um evento no marcador.
var latlng = new google.maps.LatLng(-27.592729,-48.549449);
var myOptions = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Adiciona um marcador
var marker = new google.maps.Marker({
position: latlng,
map: map,
title:"Texto personalizado"
});
// Adiciona um balão no marcador
var infowindow = new google.maps.InfoWindow({
content: 'Conteúdo do balão'
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
Mais informações em: http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/overlays.html#InfoWindows
A documentação do Google Maps é bem completa, muita coisa está em português e muito fácil de entender. Para saber muito mais, acesse: http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/basics.html
Até mais.
PHP: Criptografia SHA-512
Olá pessoal, hoje falarei um pouco sobre criptografia, mais especificamente do tipo SHA-512.
A SHA-512 gera um conjunto de 128 caracteres, o dobro do seu antecessor SHA-256.
Bem, muitos usuários não dão muito importância para a qualidade de suas senhas e logo vão digitando qualquer coisa, nome da mãe, pai… e por aí vai.
Hoje é possível encontramos na internet bancos de senhas com o hash já calculado, podendo serem utilizadas em scripts maliciosos para invadir sua conta.
Ex:
maria: 94aec9fbed989ece189a7e172c9cf41669050495152bc4c1dbf2a38d7fd85627
30122011: 359fd771045c3856967bb1bf6af4e73f2f94a27b849991e37beb2239c6051bf5
12345: 5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5
Então, para dificultar um pouco essa senha, adicionarei uma string em suas extremidades.
Vamos ao código:
<?php # Senha passada por parâmetro $pass = "12345"; # String que será concatenada nas extremidades da senha $str = "w7#@o*"; # Concateno a string auxiliar junto a senha $pass = $str . $pass . $str; # Calcula a hash da senha passada echo $pass_hash = hash( 'sha512', $pass ); ?>
É isso ai pessoal! espero que gostem da dica.
Vaga para Técnico(a) em Suporte de Sistemas
A empresa Betha de Criciúma, abriu novas oportunidades de emprego.
Dados da vaga
Ramo da empresa: Informática – Tecnologia da Informação
Cidade: Rio Do Sul – SC
Salário: 2 a 4 salários mínimos
Tipo de contratação: Efetivo
N° de vagas: 2
Requisitos e preferências
Formação: 2º grau completo
Experiência profissional: Possuir experiência anterior
Observações: Prestar suporte técnico aos usuários nos sistemas pertencentes a área de tributos municipais de nossa empresa, no que se refere a implantação e atendimento, abrangindo os recursos do software, visando atendê-los satisfatóriamente e manter o desempenho adequado dos sistemas Betha.
(Disponibilidade para viagens em em Rio do Sul e Região)
Oferecemos
Vale Alimentação;
PLR;
Flexibilidade na Jornada de Trabalho;
Convênio com Universidades;
Convênio com Plano de Saúde;
Convênio com Plano Odontológico.
Codeigniter: Habilitar o perfilador enable_profiler
A função $this->output->enable_profiler();, inserida em seu Controller, mostrará dados de referência para fins de depuração e otimização do seu código.
Para habilitar o perfilador, coloque a seguinte função em qualquer lugar dentro do suas funções Controller:
$this->output->enable_profiler(TRUE);
Quando habilitado, um relatório será gerado e inserido no rodapé de suas páginas.
Para desabilitar o perfilador, você deverá usar:
$this->output->enable_profiler(FALSE);

