Pular para o conteúdo principal

Postagens

Mostrando postagens de 2011

Programa para modelagem de processos é com o BizAgi

Programa BizAgi é um dos melhores programas de modelagem que seguem as regras normalizadas pela OMG. Para quem não sabe, a OMG é o órgão que normatiza as regras de modelagem (w ww.omg.org). Eles padronizam também a UML .  Além do programa ser bom é free.

Mapas Neurais com XMind

Conheci hoje a ferramenta XMind . Ela serve para fazer o levantamento de tarefas necessárias para executar determinada tarefa. Vale a pena conhecer. Clica no centro e coloca o que é para ser feito. Em seguida vai clicando em tab e colocando os requisitos. Exporta os dados em vários formatos. Recomenda-se primeiro colocar os atores, em seguida as ações que cada um desses executa e por último os requisitos de cada ação. Bacana mesmo.

Conclusões após conhecer França, Itália, Roma, Suíça e Inglaterra...

França: 1) O povo é grosso igual dedo destroncado; 2) As coisas são muito caras; 3) Paris é linda. Itália: 1) O povo é mais acolhedor, embora falem muito alto; 2) Foi o único lugar em que se vende produto pirata na rua; 3) A pizza do Brasil é melhor que a de lá. 4) O que tem os preços mais baratos. Suíça: 1) O mais caro de todos os países que conheci. Só podia, é o mais rico de todos. 2) Muito organizado e o povo é muito educado (não dão nem descarga a noite para não incomodar o vizinho). Inglaterra: 1) Caro também; 2) Os pubs e clubs são show e lotam todos os dias. Roma 1) Os melhores ladrões estão lá, devido a quantidade de turistas. Segure a carteira que os caras são bons em levar sua grana. 2) Até produto religioso tem pirataria. 3) É o que possui mais monumentos por metro quadrado. 4) Igualmente caro. Em geral: Lugares lindos e organizados; Aparentemente não vi favela nenhuma; Não vi congestionamento; A cerveja é ca

CARTA ABERTA DE UM POLICIAL FEDERAL

A imprensa tem abordado o tema do aumento dos servidores da Polícia Federal.  Recentemente, o ministro da Justiça, José Eduardo Cardozo, em entrevista coletiva após participar de evento sobre segurança pública para a Copa e a Olimpíada, em São Paulo,  disse que o governo federal não tem condições de reajustar os salários dos policiais federais, devido ao agravamento da crise econômica mundial. Acontece que a Polícia Federal vem sendo esquecida pelas autoridades federais há muito tempo.  Embora suas operações de combate à corrupção, ao crime organizado, aos grandes sonegadores e aos traficantes internacionais de drogas e armas sejam louvadas e usadas como bandeira, para falar de um Brasil melhor e mais justo, quando o assunto é a remuneração da categoria o que se verifica é outra coisa. Por parte das autoridades, o que se tem é muita retórica, além de promessas que não se concretizam nunca. Fazendo um levantamento estatístico dos últimos 10 anos, de

Criptografia RSA com PHP - Problema com acentos e caracteres especiais resolvido

Um problema com a criptografia usando chaves RSA é que ele não funciona se no meio do texto a ser criptografado há caracteres especiais ou acentos. Para resolver isso basta alterar um pouco as funções ou métodos que criptografam e descriptografam mensagens. Ao encriptar, pegue o parâmetro da mensagem e utilize a função htmlentitiens antes de fazer qualquer outra coisa: function rsa_encrypt ($m, $e, $n) { $m = htmlentities($m); [...] } Na função que descriptografa utilize a função do php html_entity_decode antes de retornar o resultado: function rsa_decrypt ($c, $d, $n) { [...] return html_entity_decode($resultd); } Para os casos testados deu tudo certo.

Criando usuários do mysql com restrições de acesso

-- Criando o usuario, mas sem permissao de acesso a nada CREATE USER nome_usuario; -- Dando permissao para que o usuario faça SELECT em todas as tabelas do banco 'nome_banco' GRANT SELECT ON nome_banco.* TO nome_usuario@'localhost' IDENTIFIED BY 'senha'; GRANT SELECT ON nome_banco.* TO nome_usuario@'%' IDENTIFIED BY 'senha'; -- Dando permissao para que o usuario consiga inserir em 'nome_banco.nome_tabela' GRANT INSERT ON nome_banco.nome_tabela TO nome_usuario@'localhost' IDENTIFIED BY 'senha'; GRANT INSERT ON nome_banco.nome_tabela TO nome_usuario@'%' IDENTIFIED BY 'senha'; -- Atualiza as permissoes na memoria do mysql FLUSH PRIVILEGES; -- Deleta o usuario criado e todas suas permissoes USE mysql; DELETE FROM tables_priv WHERE User = 'nome_usuario'; DELETE FROM db WHERE User = 'nome_usuario'; DELETE FROM user WHERE User = 'nome_usuario'; FLUSH PRIVILEGES

Popup atualizar pai ao fechar.

No pai coloca a seguinte função: function OpenModalPopUP(){        var opt = 'dialogWidth:650px; dialogHeight:700px; center:yes;';     window.showModalDialog('arquivo.php?id=<?=$id?>','',opt);     window.location.reload(); } A função faz o seguinte...abre o popup e quando ele é fechado dá um refresh no pai.

Como atualizar a versão do phpmyadmin no WAMP?

Para atualizar a versão do phpmyadmin no WAMP faça o seguinte. 1) Salve a nova versão do phpmyadmin na pasta de aplicativos do WAMP: Exemplo: c:/wamp/apps/phpmyadmin3.4.3.2/ 2) Acesse o arquivo alias do phpmyadmin e altere o caminho nos dois locais onde aparece o endereço da pasta Exemplo: arquivo que deve alterar: c:/wamp/alias/phpmyadmin.conf linhas para alterar: Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.4.3.2/" 3) Abra o arquivo de configuração do WAMP e coloque o número da nova versão do phpmyadmin Exemplo: arquivo que deve alterar: c:/wamp/wampmanager.conf Linha que deve alterar: phpmyadminVersion = 3.4.3.2 4) Agora é só reiniciar o WAMP

Visualizar erro de código

Por padrão, a maioria dos servidores web de produção desativam a visualização de erros: Para conseguir visualizar o que está acontecendo de errado basta colocar os comandos abaixo em sua página PHP. @ini_set('display_errors', '1'); error_reporting(E_ALL);

Simulação de como seria se a ação policial tivesse evitado o massacre de Realengo...

“Dia 07 de abril de 2011 às 08h, policiais ao passar em frente a Escola Tasso de Oliveira no bairro Realengo, Rio de Janeiro/RJ, foram informados por um funcionário sobre a entrada de um elemento suspeito e armado. Os policiais imediatamente entraram na escola. Segundo informações do policial (sargento da PM Márcio Alves) o suspeito foi abordado quando este estava prestes a entrar em uma das salas de aula. Ao ouvir o chamado do policial, o elemento sacou uma arma da cintura. Imediatamente o policial atirou na direção do mesmo ferindo-o mortalmente. O barulho do disparo provocou pânico nas salas de aulas e no corre-corre alguns alunos sofreram contusões leves devido a choques com as carteiras escolares e em outros alunos. A direção da escola e professores protestaram contra ação precipitada do policial que disparou a arma num ambiente escolar levando risco as crianças. Ouvida pela imprensa, uma professora declarou não ter ouvido a ordem do policial ao rapaz antes do disparo e que o rapa

Evitando contador duplicado...

Caso você tenha um contador inteiro em uma tabela, para que este tenha uma leitura consistente, evitando chaves duplicadas, use os comandos SQL abaixo: SELECT contador FROM tbl_contador FOR UPDATE; UPDATE tbl_contador SET contador = contador + 1;

Evitando o SQL injection e ataque XSS

Devemos sempre procurar evitar ataques ao nosso sistema. Com relação as strings recebidas pelos usuários tratar com mysql_real_escape_string e ao imprimir utilizar o htmlentities . Assim você evita dois tipos de ataque. No primeiro evita o SQL injection e no segundo o ataque XSS.

Validar nome de arquivo

Não é bom salvar arquivos uplodeados com o mesmo nome recebido, pois pode ter diversos caracteres inválidos, ser muito grande ou que não podem ser usados em um link. A função abaixo resolve o problema dos caracteres inválidos de arquivos: function isValidFileName($file) { /* don't allow .. and allow any "word" character \ / */ return preg_match('/^(((?:\.)(?!\.))|\w)+$/', $file); }

Alterando a senha do root do mysql...

Execute as SQL abaixo no banco: use mysql; update user set password=PASSWORD("nova_senha") where User='root'; flush privileges; Agora é só reiniciar o mysql que vai funfar.

Classe que gera um backup do banco escolhido sem problemas com foreign key

Fiz a classe abaixo para ajudar na geração e restauração de backup. Ela ordena as tabelas de tal forma a evitar erros de foreign key ao fazer a restauração. Código: /** * Classe criada no dia 14/02/2011 para gerar um backup do banco * sem o inconveniente de problemas com chave estrangeira ao fazer o restore * Exemplo: * //seta o banco que se deseja fazer o backup * $backup->setBd($_POST['db']); *        * // seta quais tabelas se deseja fazer o backup * $backup->setListaTblEscolhida($_POST["tabelas"]); *        * // cria um nome para o backup * $no_backup = "./".$_POST['db']."_bkp_".date("YmdHi").".sql"; *     * // manda a classe fazer o backup * $backup->fazerBackup($no_backup); */ class f_Backup{     private $lista_bd; // lista de bancos de dados     private $lista_tbl; // lista das tabelas do banco de dados escolhido     private $lista_tbl_escolhida = array(); // lista das tabelas que a pessoa dese

Indução de tipo em métodos

Este recurso permite que você especifique o tipo dos argumentos que serão passados para um método. Você pode querer que seu método só receba parâmetros do tipo array ou uma instância de um objeto, por exemplo. public function metodoBase(SubClasse $subObjeto) {     echo 'Variável precisa ser uma instância de SubClasse'; } Para especificar que o parâmetro passado seja um array, utilize; public function metodoBase(array $vetor){     echo 'A variável precisa ser um vetor'; }

Utilizando instanceof

O operador de tipo instanceof é utilizado para determinar se uma variável é ou não uma instância (um objeto) de uma classe. Exemplo $subObjeto = new SubClasse; if ($subObjeto instanceof SubClasse) {     //isto é verdadeiro }

Função para gerar máscaras

Retirado do site http://clares.wordpress.com/ // funcao que gera os numeros com mascara function mask($val, $mask){     $maskared = '';     $k = 0;     for($i = 0; $i<=strlen($mask)-1; $i++){         if($mask[$i] == '#'){             if(isset($val[$k])){                 $maskared .= $val[$k++];             }         } else{             if(isset($mask[$i])){                 $maskared .= $mask[$i];             }         }     }     return $maskared; } // exemplo $cnpj = "11222333000199"; echo mask($cnpj,'##.###.###/####-##');

Gerando strings aleatórias

Função legal que gera strings aleatórias. function fStrAleatoria($tamanho=8){     // caracteres utilizados     $chars = 'abcdefghijklmnopqrstuvxzwyABCDEFGHIJKLMNOPQRSTUVXZWY0123456789_';     $max = 62;     $pass = '';     // tamanho da senha        for($i=0; $i<$tamanho; $i++){         $pass .= $chars{mt_rand(0, $max)};     }     // exibindo a senha gerada     return $pass; }

WAMP não carrega o postgre...corrigido!

Uso o WAMP (acrônimo de W indows, A pache, M ySQL e P HP) para instalar tudo o que preciso para fazer sites, mas um problema que acontecia direto comigo era não conseguir fazer subir os serviços do postgre. Uma solução antiga era instalar o php 5.2.5 que as bibliotecas voltavam a funcionar. Hoje descobri uma outra solução. Basta colocar no httpd.conf do apache a seguinte linha: LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll" Se a versão do Postgre é outra, basta corrigir o caminho acima. Caso a versão do PHP seja a 5.4 deve-se colocar o caminho da libpq.dll que está na pasta do PHP. Seria algo do tipo: LoadFile "C:/wamp/bin/php/php5.4.3/libpq.dll"

Redimensionar imagem no php

Achei uma classe legal para redimensionar imagem. Para usá-la faça assim: // redimensiona a imagem se ela for maior que o tamanho limite $resizeObj = new resize(); $resizeObj->setImage('./img_old_5.png'); if($resizeObj->getWidth()>300 || $resizeObj->getHeight()>400){     $resizeObj->resizeImage(300, 400);     $resizeObj->saveImage('./redimensionado.jpg', 80); } A classe está abaixo: # ========================================================================# # #  Author:    Rajani .B #  Version:     1.0 #  Date:      07-July-2010 #  Purpose:   Resizes and saves image #  Requires : Requires PHP5, GD library. #  Usage Example: #                     include("classes/resize_class.php"); #                     $resizeObj = new resize('images/cars/large/input.jpg'); #                     $resizeObj -> resizeImage(150, 100, 0); #                     $resizeObj -> saveImage('images/cars/large/output.jpg', 100); # # # ==========