CSSVista

January 28th, 2008

Quem já andou a brincar com Cascading Style Sheets, ou simplesmente CSS, já perdeu muitas horas para conseguir que o mesmo estilo surtisse exactamente os mesmos efeitos nos diversos browsers.

Infelizmente desconheço algum método a seguir completamente fiável de forma a evitar o referido em cima, no entanto, descobri o CSSVista que é bastante útil para evitar grandes perdas de tempo.

Este programa permite:

  • Fazer/editar/ver os CSS de uma página e em realtime ver o resultado no IE e FF.
  • Fazer o resize para 1024×768, 800×600 ou uma outra resolução à nossa escolha.
  • Marcar elementos (tag’s) especifico, divs, spans, etc.
  • Desactivar imagens ou CSS’s presentes na página.

O modo de funcionamento é semelhante a um browser normal.

Para fazer download do programa, basta irem ao site da Litmus.

Continuando a onda geek

July 21st, 2007

Só para Geeks/nerds do linux…

 Sandwish

Relógio Binário

July 21st, 2007

Um relógio binário, tal como o nome indica, é um relógio que indica as horas em binário (0’s e 1’s) e actualmente estão a ser vendidos em grande parte de lojas (online ou não) de gadgets.

Relógio Binário

Estes relógios possuem 10 leds, geralmente divididos em 2 linhas, 4 em cima e 6 em baixo. Com estes 10 leds é possível representar as horas e os minutos do dia. E isto como?

Os 4 leds superiores, equivalem a: 8 - 4 - 2 - 1 (horas) e os inferiores a: 32 - 16 - 8 - 4 - 2 - 1 (minutos)

Agora para saber as horas, é tão simples quanto somar os valores representados pelos leds acesos, por exemplo, imaginando que x é led ligado e o é led ligado:

0 x 0 0
x 0 0 x 0
04:36

0 x x x
x x x 0 0 0
07:56

E por aí fora…

Mais mais geek/nerd do que ter um relógio binário, é fazer um! ;)

<?php

// Definir as horas/minutos para as variaveis em binário

$h = decbin(date(”h”));
$m = decbin(date(”i”));

// Só para manter os respectivos 4 e 6 bits

$h = substr( “0000″, 0, 4 - strlen( $h ) ) . $h;
$m = substr( “000000″, 0, 6 - strlen( $m ) ) . $m;

// Separar cada bit

$h = preg_split( ‘//’, $h, -1, PREG_SPLIT_NO_EMPTY );
$m = preg_split( ‘//’, $m, -1, PREG_SPLIT_NO_EMPTY );

// Ciclo para cada bit (correspondendo às horas)

foreach ( $h as $hora ) {
echo “<img src=\”" . $hora . “.jpg\” />”;
}
echo “<br />”;

// Ciclo para cada bit (correspondente aos minutos)

foreach ( $m as $min ) {
echo “<img src=\”" . $min . “.jpg\” />”;
}
echo “<br />”;

?>

 

Agora para terminar e completar este mini-geek-psycho-relógio-binário, é só colocar na mesma directoria duas imagens com os nomes 1.jpg e 0.jpg correspondendo ao led aceso e desligado (1 para aceso, 0 para desligado).

That’s all folks!

É por estas coisas que começo a duvidar da minha sanidade mental, eu prometo que vou tentar fazer algo mais produtivo.

Thumbnails de Flash

July 19th, 2007

Pois, na continuação do Post anterior, os problemas surgiram realmente quando o objectivo passou a ser criar um thumbnail de um Flash (.swf).

Quanto a este mini-megalonomo-problema em linux, encontrei apenas uma solução quase que viável. O quase que serve para avisar que é uma solução ainda com bastantes problemas não funcionando ainda a 100%.
A solução passa pela aplicação flirt  diponível em http://sourceforge.net/projects/flirt/.

Ao testar esta solução, tive aproximadamente 10% de resultados favoraveis.
Espero melhor sorte para quem o usar.

Thumbnails de videos?!

July 19th, 2007

Perdi algumas horas para efectuar um thumbnail de um video com  a conversão do mesmo para .flv, para evitar que aconteça o mesmo com outros, aconselho os seguintes links:

Os links acima referidos, servem como referência para o “core” do processo.
O ffmpeg é uma colecção de librarias que permite gravar e converter audio digital e vídeo em vários formatos. O ffmpeg-php foi desenvolvido especialmente para o PHP e pode-se adicionar ao mesmo como sendo uma extensão, ou então, como parte integrante de raiz (no binário).

O GD é uma outra libraria escrita em C, e está disponível para programadores de PHP, Perl entre outras linguagens. GD permite, por exemplo, a criação dinamica de de PNG’s, JPG’s e GIF’s. Geralmente, o GD é utilizado para a criação de thumbnails, gráficos(, etc) à medida que sejam necessários (on the fly).

Após esta introdução muito simplicista, passo a descrever um exemplo da criação de um thumbnail de um video:

<?php
$filme = “filme.wmv”;
// Exemplo de uso da função criarThumbnail
// a linha seguinte utiliza a função imagejpeg(); para gerar uma imagem .jpg com o mesmo nome do filme definido em $filme.

imagejpeg(criarThumbnail( $filme, 95, 95), substr( $filme, 0, strrpos($filme, “.”) ) . “.jpg” );

// **********************************
// @Função: criarThumbnail();
// @Args:
//       - $srcFile -> Filme para criar thumbnail
//       - $thumbW -> Largura do thumbnail
//       - $thumbH -> Altura do thumbnail

function criarThumbnail( $srcFile, $thumbW, $thumbH ) {
$filme = new ffmpeg_movie($srcFile, false);
$numFrames = $movie->getFrameCount();
// pequeno work-around para forçar a captação da frame ( 10 tentativas )
$i = 0;
$frame = “”;
while( !is_object( $frame ) and $i++ <= 10 ) {
$ranFr = rand(1 , $numFrames);
$frame = $movie->getFrame(rand(1, ( $numFrames>2)?($numFrames-1):($numFrames) ) );
}
if( !is_object( $frame ) ) die( “Não foi possí­vel criar o thumbnail” );
$frame_thumb = $frame->toGDImage();

// Tamanho actual da frame_image
$width = imagesx( $frame_thumb );
$height = imagesy( $frame_thumb );

$thumb = @imagecreatetruecolor( $thumbW, $thumbH );
@imagecopyresized($thumb, $frame_thumb, 0, 0, 0, 0, $thumbW, $thumbH, $width, $height);

return $thumb;

}

?>

A (re)volta do Bem Vindo…

July 14th, 2007

Antes de mais, inicio este blog com um pedido de desculpas a todos aqueles que procuram Posts antigos, mas esses foram eliminados, daí que se quiserem informações sobre o passado, podem utilizar tiago@ptspot.com.

O título diz tudo, já parei de escrever no Blog, já voltei anteriormente a dar continuação ao blog, e agora espero que a re(volta) seja para continuar durante muito tempo.

O conteúdo do Blog não irá fugir muito ao anterior, irei escrever sobre os assuntos com maior interesse para mim, desenvolvimento web, segurança informática (mais relaccionada com Web) e música.

Um abraço,
Tiago Lopes