BEM VINDO AO BLOG DO MARCOS CARRARO CRIADOR DO "CARRARO DASHBOARD". MUITO MAIS QUE UM SIMPLES BLOG.

quarta-feira, 27 de novembro de 2013

PHP Escrever em Imagem com Fonte diferente + Tamanho Fonte.

Buenas,

Hoje tivemos que montar um esquema para assinaturas dos e-mails, então nada melhor do que criar algo mais automatizado.

<?php

//Carregar imagem tamanho da imagen = 515x76
$rImg = ImageCreateFromJPEG("logo3.jpg");

//Definir cor
$cor = imagecolorallocate($rImg, 0, 0, 0);

// carregar fonte...
$font_file = './Museo300-Regular.otf';

//Escrever nome
$texto0  = "--";
$texto1  = "NOMEEEE";
$texto2 = "EMAILLLL";
$texto3 = "Fone: -------------";
$texto4 = "SITEEEEEEEEEEEEE";


// IMAGEM, TAMANHO_FONTE, 0, POSICAO X, posicao Y, TEXTO_COR, ARQ_FONTE, TEXTO
imagettftext($rImg, 10, 0, 10, 5, $cor, $font_file, $texto0);
imagettftext($rImg, 14, 0, 25, 17, $cor, $font_file, $texto1);
imagettftext($rImg, 12, 0, 25, 35, $cor, $font_file, $texto2);
imagettftext($rImg, 12, 0, 25, 52, $cor, $font_file, $texto3);
imagettftext($rImg, 12, 0, 25, 70, $cor, $font_file, $texto4);



//Header e output
header('Content-type: image/jpeg');
imagejpeg($rImg,"logos/LOGO_".$texto2.".jpg",500);
imagedestroy($rImg);
header('Location: logos/LOGO_'.$texto2.'.jpg');

?>
Read More

segunda-feira, 25 de novembro de 2013

Oracle 11g Express + SQL Developer no Windows X64.

Buenas,

Para download do Oracle Express : http://www.oracle.com/technetwork/products/express-edition/downloads/index.html

para Download do SQL Developer : http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Ao instalar o Oracle Express, ele vai retornar um erro que não foi possível acessar, pois ele não existe. Para resolver este  problema é batata!

O erro apresentando é este ali de cima.

para isto, entre no regedit.

Vá neste destino.


Altera a chave de numero 1. Nela insira o caminho da tela acima do erro, porém repare que no meu caso ficou c:\users\Marcos onde marcos é o nome da conta de usuário do meu notebook.


Feito isto, a instalação vai proceder normalmente.

Ao tentar abrir o atalho conceitos básicos do oracle, vai ter problemas.. como este.


Calma, mais um que vai ser batata de resolver.

Apenas altera o caminho...
Acesse: C:\oraclexe\app\oracle\product\11.2.0\server

Onde vai ter um atalho chamado "Get_Started" um atalho para um site, botão direito, e altera a url para:

http://127.0.0.1:8080/apex/f?p=4950

Aqui já esta tudo rodando perfeito...



Bora Instalar o SQL Developer.


Este é barabada, baixa a versão com JDK incluso, caso baixar não incluso, primeiro instala o JDK x32, e por ultimo inicie o sql-developer.

Forte quebra costelas,
marcos carraro.
Read More

quarta-feira, 13 de novembro de 2013

Consultas Avançadas SQL - group_concat if/else

Buenas,

Hoje vai algumas dicas de consultas em SQL, muitas dicas legais...

Primeiro de tudo vamos verificar o group_concat();

- A consulta normal retorna...

MariaDB [db_painel]> select * from tb_ips;
+-------+---------------+------------+-------------------+-----------------------+------+
| id_ip | range_ip      | mascara_ip | host              | descricao_ips         | tipo |
+-------+---------------+------------+-------------------+-----------------------+------+
|     2 | 192.168.1.0   |          7 | NULL              | Rede Interna          | r    |
|     6 | 10.0.0.1      |         14 | fw                | Firewall principal    | h    |
|    10 | 192.168.1.101 |         14 | oracle            | Servidor Oracle Focco | h    |
|    11 | 10.0.0.0      |         10 | NULL              | DMZ                   | r    |
|    12 | 172.16.1.0    |          8 | NULL              | EXTERNA               | r    |
|    13 | 192.168.1.120 |          8 | bkp               | Servidor de bkp       | h    |
|    14 | 0.0.0.0       |          1 | NULL              | QUALQUER REDE         | r    |
|    15 | 201.2.55.99   |         15 | NULL              | LINK 2                | r    |
|    16 | 172.16.1.1    |          8 | TS                | TS w2k8 SERVER2       | h    |
|    17 | 8.8.8.8       |          1 | google-dns        | google-dns            | h    |
|    18 | 8.8.4.4       |         15 | google-dns2-teste | google-dns2-teste     | h    |
+-------+---------------+------------+-------------------+-----------------------+------+
11 rows in set (0.00 sec)


Repare que os ips tem um tipo R para REDE e H para HOST, então vamos agrupar tudo que for HOST e tudo que for REDE.

MariaDB [db_painel]> select tipo,group_concat(descricao_ips,'=',range_ip,'  ') as grupos from tb_ips group by tipo;
+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tipo | grupos                                                                                                                                                                            |
+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| h    | google-dns2-teste=8.8.4.4  ,google-dns=8.8.8.8  ,TS w2k8 SERVER2=172.16.1.1  ,Servidor de bkp=192.168.1.120  ,Servidor Oracle Focco=192.168.1.101  ,Firewall principal=10.0.0.1   |
| r    | EXTERNA=172.16.1.0  ,DMZ=10.0.0.0  ,QUALQUER REDE=0.0.0.0  ,LINK 2=201.2.55.99  ,Rede Interna=192.168.1.0                                                                         |
+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

Então, repare que a query ficou assim.
> select tipo,group_concat(descricao_ips,'=',range_ip,'  ') as grupos from tb_ips group by tipo;

Aqui vamos montar os grupos pelo seu tipo, então tudo que for do tipo 'H' vai concatenar pela descricao+IP, e dando um espaço.

Se for usar em alguma pagina php, ou html pode fazer a quebra 
> select tipo,group_concat(descricao_ips,'=',range_ip,'<br>') as grupos from tb_ips group by tipo;


-- if/else no sql
Na verdade aqui vamos utilizar o 'case' do mysql, ele fica mais fácil de entender em uma grande consulta.

Vamos fazer da seguinte maneira, se for do tipo H vai mostrar HOST, se for do tipo R vai mostrar REDE.

MariaDB [db_painel]> select (CASE WHEN tipo='r' then 'REDE' ELSE 'HOST' END) AS TIPO_DECODE,tipo from tb_ips;
+-------------+------+
| TIPO_DECODE | tipo |
+-------------+------+
| REDE        | r    |
| HOST        | h    |
| HOST        | h    |
| REDE        | r    |
| REDE        | r    |
| HOST        | h    |
| REDE        | r    |
| REDE        | r    |
| HOST        | h    |
| HOST        | h    |
| HOST        | h    |
+-------------+------+
11 rows in set (0.00 sec)

Então a clausula CASE funciona da seguinte maneira.
(CASE WHEN tipo='r' THEN 'REDE'   // Se tipo for igual a R então imprime REDE

ELSE 'HOST'  // Se não for do tipo R no caso vai ser do tipo H, então por sua vez imprime HOST

END) // Finaliza o bloco.

Você pode estar se pensando e se quero validar mais informações.... poderia implementar um case dentro do outro...


(CASE WHEN tipo='r' THEN 'REDE' 
ELSE (  (CASE WHEN tipo='h' THEN 'HOST' 
       ELSE 'TIPO DESCONHECIDO'  
       END)  )  
END) 

Repare que aqui já temos os dois CASE dentro um do outro, e assim pode fazer uma pilha....

SQL ainda tem muito mais funções, é espetacular...

Vale lembrar que quanto menos linhas de código o sistema tiver mais performático ele vai ser, pois são menos tratamentos na programação para validar os dados.

abraços
marcos carraro.

Read More

segunda-feira, 4 de novembro de 2013

Botando para Funcionar zend-framework 2 + apache + mariadb + Criação de Modulos + NetBeans no Fedora 19

Buenas,

Decide começar a estudar o zf2, então nada melhor do que colocá-lo para funcionar.

Então bora lá.

# yum install httpd mariadb mariadb-server php php-common php-pecl-apc php-cli php-pear php-pdo php-mysqlndphp-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml phpMyAdmin git

Feito isso já temos o webserver rodando, com Apache,PHP,MariaDB,phpMyAdmin.

Agora vamos instalar o tão falado zend framework 2.

Já tenha instalado o NetBeans 7.4

Verifique se já não esta instalado o ZF2.
Caso ele não esteja já instalado, seleciona a aba Plug-ins Disponíveis e lá procure por 'zend' e instale os pacotes php-zend framework e zend framework2.

Feito esta configuração, precisamos do "esqueleto" do FZ2, para isso no NetBeans selecione "Ferramentas -> Opções"

Repare que já tem o link para download, faz o download e selecione o mesmo.
Para os apreçados https://github.com/zendframework/ZendSkeletonApplication/archive/master.zip

Porém ainda fala configurar o composer, o composer no netbeans serve para indicar as bibliotecas que o zend vai precisar, para isso.

cd /usr/sbin ; php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Ao finalizar a instalação, no netbeans devemos fazer a busca do composer. Em: "Ferramentas -> Opções -> Aba Composer (Pesquisar)"


Então agora chegou a hora de criar o nosso novo projeto.

Vá em novo-projeto selecione PHP, informe os dados necessários, porém ao chegar no fim vai ter o php-frameworks, selecione zend2-framework.

Aguarde alguns instantes e seu projeto já estará pronto.

Após ~5min ta pronto, você é obrigado a visualizar esta tela, se estiver visualizando parabéns o zend esta ok.

Acesse a máquina...
por...

http://ip_da_maquina/zend-dev/public

Obs:. zend-dev é o nome do projeto que eu dei para meus estudos.

Como o zend utiliza MVC, ele mantem já uma estrutura para isso.


Vamos criar então alguns módulos.

para criar esta módulos nos precisamos utilizar o zftool.

Para isso.

# cd /usr/sbin

# composer.phar require zendframework/zftool:dev-master

# cd /var/www/html/Dropbox/zend-dev
Esta é a pasta principal do meu projeto.

Vamos criar o modulo chamado cadastro_uf
# php ./vendor/bin/zf.php create module cadastro_uf /var/www/html/Dropbox/zend-dev/

Para confirmar verifique em...
# ls -la

# ls module/
Application
Cadastro_uf

Bueno, agora o que me restas é estudar mais para começar a programar e criar as classes, as view, templates... e bora lá.

abraços

Referencias:


Read More

Posts que a turma mais esta lendo...

Posts que a turma mais esta lendo...

Marcos Carraro