Ecrã enrolável

Parece que a corrida dos ecrãs flexíveis está a aquecer, depois da Samsung por várias vezes ter mostrado algo neste campo é Sony que agora mostra os seus trunfos com um ecrã que pode ser enrolado como podem ver:

Isto promete, e quem sabe promete para um futuro próximo.

Javascript, HTML e CSS

Bem, estas são as bases de construção de aplicações web e juntando a PHP por exemplo e quem sabe XML, a quantidade de tecnologias que é necessário dominar para criar uma aplicação web pode ser realmente grande. Existem várias alternativas, como o GWT e outros para tornar a criação de aplicações dependente de apenas uma linguagem, mas nem sempre serão tão versáteis como se pode desejar.

E nisto que tenho estado a mexer, com JQuery a ajudar. E devo dizer que se torna por vezes bastante difícil separar código de apresentação em especial quando o lado servidor necessita de alterar a apresentação em si.

Mas tirando isso vou partilhar dois pequenos “snippets” relativos a tornar uma aplicação web a comportar-se mais como uma aplicação de desktop.

Desactivar botão direito

Isto pode ser algo controverso, mas já lá vai o tempo em que era uma táctica para evitar que se visse o código fonte da página. Acho esta técnica útil em imitar o comportamento de aplicações desktop porque estas só mostram o menu de botão direito se tiverem algo para mostrar, de outro modo porque mostrar o menu do browser? Talvez em determinadas áreas mostrar um menu da aplicação em si.


$(document).ready(function(){$(document).bind('contextmenu',function(e){return false;});});

Código muitíssimo simples em JQuery. Podendo-se fazer bind de uma função apropriada nas zonas que se realmente quer o botão direito a funcionar.

Impedir a selecção de texto

Mais uma vez isto não é para proteger os conteúdos. Faz-me um bocado de confusão poder seleccionar certos textos, como por exemplo o de botões, quer sejam elementos formatados para parecer botões como os inputs.

[unselectable=on]
{
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
cursor: default;
}

Este CSS é algo ligeiramente estranho e tudo tem razão de ser:

  1. Estamos a criar uma nova propriedade de elementos de nome unselectable, que quando igualada a on irá fazer com que o elemento use o estilo definido. A razão para colocar o estilo deste modo é que o Internet Explorer suporta esta propriedade exactamente com o efeito que desejamos.
  2. Utilizamos -moz-user-select: none; para alcançar o efeito no Firefox
  3. Utilizamos -khtml-user-select: none; para termos o efeito em browsers Webkit
  4. O estilo user-select: none; é o correcto em CSS 3, mas no entanto, como podem calcular pelos estilos já indicados, não é ainda suportado totalmente em todos os browsers.
  5. O rato passa normalmente para o cursor de selecção quando sobre texto, isto é evitado com o cursor: default;

Atenção a ter é que, como é uma propriedade, não é herdado pelos elementos filhos, esses continuarão a ter texto seleccionável na maioria dos browsers.

Para utilizar basta:


<span unselectable="on">Não podes seleccionar isto</span>

Consegui verificar o funcionamento em IE8, Firefox 3.6.3, Chrome 5.0.375.29 dev (que altera o cursor do rato para o de selecção sempre que se arrasta o rato) e Opera 10.53. O meu Safari 4 recusa-se a arrancar sem crashar imediatamente por isso não deu para ver.

Publicado em CSS, Javascript. 1 Comment »

CodeIgniter e os espaços

Ora uma das coisas que rapidamente comecei a utilizar foi o comando redirect e este mostrou um dos pequenos erros que se podem cometer sem nos apercebermos.

O comando redirect (e não ficaria espantado em relação a outros que modifiquem a tag <head>) só funciona se os ficheiros de código não contiverem linhas antes ou depois das tags de php.

Esquerda é correcto, o da direita dá problemas

Ora isto é fácil de passar despercebido se utilizarmos um IDE que não tenha número de linhas, e também pode surgir devido a alguns IDEs automaticamente adicionarem linhas após o fecho das tags no template de novo ficheiro php.

Os espaços após as tags também afectam do mesmo modo.

CodeIgniter

Ironia das ironias para alguém que teve formação académica em ASP.Net com C# e SQL Server, acabei por ficar a trabalhar em PHP, Java e MySQL em Linux. Agora  decidi “brincar” um pouco em casa com frameworks PHP. A que acabei por escolher para experimentar foi a CodeIgniter, que me parece razoável sendo apenas extras e não algo completamente novo com PHP como linguagem de programação.

A primeira barreira que encontrei foi o definir um .htaccess para tornar desnecessário o uso de index.php no endereço, isto deveria ter sido simples, mas o exemplo que fornecem não é grande espada no que toca a redireccionamentos para o javascript e css. Acabei por criar eu um desta forma:

RewriteEngine on
RewriteCond $1 !^(index\.php|incs/.*\.js|estilos/.*\.css|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

Isto serve para uma estrutura de directoria deste género:

Em que estilos serve para conter os css e o incs os ficheiros de javascript.

Isto não significa que tenha desistido completamente de ASP.Net, na realidade até estou muito curioso em relação ao MVC, um paradigma que gostei de utilizar em programação para desktop e que o CodeIgniter também utiliza.

Apache e Pando

E apenas um aviso, mas deve-se ter algum cuidado quando se utiliza o computador pessoal para realizar trabalho. No meu caso, eu tinha o Pando Media Booster instalado, e este por vezes usa a porta 443 o que impede o Apache de arrancar ou funcionar correctamente.

Pode-se nem ter propriamente a noção que está instalado, pois algumas aplicações com instalações web usam-no em vez de soluções tradicionais baseadas em bit torrents.

POL – Plantas On-Line

O projecto de final de curso está acabado há já algum tempo e até já se encontra em funcionamento na Câmara Municipal da Mealhada . O projecto chama-se POL – Plantas On-Line e podem descobrir mais sobre ele em: http://pol2blog.wordpress.com/

Publicado em Projecto. 2 Comments »

Ubiquity

A Mozilla anda a experimentar com um criador de Mashups dinâmico de nome Ubiquity. Dinâmico no sentido de que não é criar em nenhum local em especifico para uso posterior, mas sim criar no/com o conteúdo com que se está a mexer.

Leia o resto deste artigo »

Publicado em Curiosidades. 1 Comment »

Fontes na web

Um dos cuidados que se deve ter ao desenvolver uma página web é a escolha de fontes de texto, não só devido à aparência, mas também à disponibilidade.

Sempre que não usamos fontes de texto criadas especialmente para a página usamos fontes de sistema, isto resulta normalmente bem, mas tem um senão. Leia o resto deste artigo »

Publicado em Misc. Leave a Comment »

Windows 7 em imagens

A PDC2008 parece estar a trazer algumas novidades interessantes, uma das quais é o lançamento oficial de screenshots do Windows 7.

Ambiente de Trabalho do Windows 7 pre-release

Ambiente de Trabalho do Windows 7 pre-release

Leia o resto deste artigo »

Mapguide em Windows Vista

Tenho andado às voltas para conseguir colocar o Mapguide a funcionar no meu ambiente nativo, o Windows Vista, que não é suportado de origem, pois o Mapguide apenas suporta IIS 5 e 6.

No entanto consegui colocar a funcionar graças a este guia.

Leia o resto deste artigo »