Introduza o termo a pesquisar e clique Enter.

Tag: php

IO Error

Jul 10 29

Escrito por Dextro @ 29/07/10 11:07 | Comentar »

Desde que mudei o servidor onde está alojado este blog (estou agora na Linode btw) que andava com um pequeno problema na minha instalação do wordpress. Basicamente sempre que queria fazer o upload de um ficheiro recebia um críptico “IO Error” no formulário de upload em flash mas curiosamente o upload “normal” funcionava perfeitamente.

Muitas voltas dei para tentar perceber o que se passava mas os logs do apache nada indicavam e fazer debug a flash não é propriamente algo que eu saiba fazer porém dei de caras com um plugin que resolve o problema: NO SSL Flash Upload.

A situação coloca-se quando ligamos a opção FORCE_SSL_ADMIN no wordpress com um certificado ssl gerado por nós. Nesta situação o upload em flash deixa de funcionar e a única forma de resolver é desactivando a encriptação durante o upload dos ficheiros. Claro que isto apresenta um buraco de segurança por isso é um concessão que se tem de fazer pela comodidade de poder enviar mais do que um ficheiro simultaneamente. Ou isso ou pagar por um certificado como deve de ser.

Javascript no Servidor

Jul 10 06

Escrito por Dextro @ 06/07/10 3:07 | 8 Comentários »

Como tinha dito antes tenho andado a brincar com algo que apelidei de TV Wall e essa brincadeira passa principalmente por usar JavaScript e funcionalidades novas do HTML5…

Pois bem, aplicações web a correrem praticamente só no cliente são muito giras realmente mas infelizmente ainda são precisas algumas coisas do lado do servidor e para essas tenho andado a usar o bom e velho PHP… E php serve, php dá para responder a pedidos, php cumpre a sua função admiravelmente e acima de tudo php funciona de uma maneira que eu compreendo muito bem: eu aponto-lhe um url e ele corre o script que se encontra nesse url. Serve perfeitamente mesmo que não seja a solução mais moderna ou a que escale da melhor forma.

Mas eu não quero usar php e tenho andado a apaixonar-me cada vez mais com JavaScript. Acima de tudo eu gosto da ideia de que uma aplicação não corre mas sim responde a pedidos. As aplicações não passam variáveis, passam mensagens (e essas mensagens são em JSON no meu caso). O que eu queria mesmo era usar JavaScript em todo o lado e guardar todos os meus dados em JSON.

Guardar os dados já consigo, tenho o belo do CouchDB a deixar-me guardar lá objectos JSON com uma bela api via REST, mas a minha grande duvida é como raios vou usar javascript no servidor…

Temos o Node.js, o Narwall com o Nitro, temos o Ringo e mais uns quantos e a verdade é que eu estou totalmente perdido… Eu não só não sei em qual deles pegar como não faço a mais pálida ideia de como começar a programar o que quero que ele faça… Alguém me consegue dar uma ajudinha?

TV Wall

Jun 10 26

Escrito por Dextro @ 26/06/10 3:06 | 4 Comentários »

Paleta de Cores do TV WallHá coisa de um mês atrás estava eu ligeiramente aborrecido e com vontade de fazer algo criativo mas sem grandes ideias. Não sei muito bem como mas veio-me à cabeça uma única ideia marada de tentar preparar um design com rectângulos. Não sabia para que é que iam servir os rectângulos nem sequer muito bem o aspecto que queria que a coisa tivesse, só sabia mesmo que tinha de ter rectângulos espalhados por todo o lado e atirei-me ao editor de imagem.

O primeiro passo foi escolher umas cores. É engraçado como a cor castanha, que em tempos praticamente declarei como a minha maior inimiga, se tornou ultimamente numa autentica constante em todos os designs que faço. Um sinal da minha evolução nesta arte suponho.

Escolhidas as cores comecei a brincar com vários tipos de conjugações mas faltava sempre uma razão de ser para aquilo. O que iam conter aqueles quadrados? A resposta veio mais tarde quando decidi colocar em dia as minhas séries ao descobrir que o MyTVShows do Ivo estava novamente em baixo: os quadrados vão ter séries!

E assim surgiu o TV Wall: uma “parede” virtual onde se pode colocar as nossas series favoritas. No inicio a ideia era só isto: não havia cá episódios, nem sequer sinopses, apenas as séries e umas imagens bonitas mas o salto para algo mais completo e funcional era fácil de fazer e a API do TheTVDB estava mesmo ali à mão de semear com virtualmente tudo o que é preciso.

TV Wall - Mockup TV Wall - Mockup de janela modal TV Wall TV Wall - Single

 
Tinha então uma ideia e o aspecto da mesma, duas partes já por si complicadas, mas faltava coloca-la em prática e acima de tudo saber como o fazer. Em que linguagens? Em que meio? Para mim a resposta foi simples: Javascript, HTML e CSS. Andava já há uns bons 3 anos a prometer a mim mesmo que ia aprender mais de Javascript e esta foi uma oportunidade de ouro para o fazer.

Meti mãos ao trabalho e comecei a desenvolver código javascript para tornar isto funcional. Pelo caminho fui aprendendo a fazer pedidos AJAX, a converter de XML para JSON usando php e até como executar código assíncrono em php. No futuro ainda tenho planeado usar o Local Storage e o Session Storage que vieram com o HTML5 para guardar informações, um interface catita para telemóveis com touchscreen e ligação ao MyTVShows para poder marcar episódios como vistos.

PHP pode parecer uma opção estranha no meio disto tudo mas tem uma razão muito simples: não tenho dinheiro actualmente para um VPS onde montar algo mais catita como Rhyno e CouchDB mas está planeado para um futuro próximo se possível bem como uma forma de tornar isto em algo ainda mais útil do que possam imaginar. Esta ultima porém é uma ideia que pode demorar ainda muito tempo (e dinheiro) a realizar, considerem-se no entanto teased.

Para já fica aqui a minha versão alpha do TV Wall com o código praticamente colado com fita-cola, as engrenagens a funcionarem à base de doses volumosas de WD40 e a exigir Webkit ou Firefox 3.5 (ou superior). Notem no entanto que tenho andado a testar só em Firefox devido ao belo do Firebug que muita dificuldade tenho em largar porém façam favor de me avisar de todos os problemas que encontrem nos comentários deste artigo ou via Twitter. Aguardo com expectativa as vossas opiniões.

Link: TV Wall

Quando Javascript não faz tudo

Jun 10 06

Escrito por Dextro @ 06/06/10 0:06 | Comentar »

…ou quando precisamos de esconder uma API Key dos visitantes e precisamos de criar um pequeno proxy para os nossos pedidos AJAX.

No meu caso precisava de esconder a minha API Key e consequentemente virei-me para o PHP (a linguagem com que estou mais familiarizado) para criar um pequeno proxy para os pedidos (depois veio a tornar-se ainda mais util ao permitir-me criar copias locais das imagens por exemplo).

Mas deixemos-nos de paleio, passemos ao código:


	// The url of the request
	$url = "http://some.host/api/endpoint/request"
	$cacheTimeout = 0 // No cache in this example

	// Create the curl resource
	$ch = curl_init();

	// Set the url in curl
	curl_setopt($ch, CURLOPT_URL, $url);

	// Tell curl to return the reply as a string
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

	// Make the request
	$output = curl_exec($ch);

	// Free the curl resource
	curl_close($ch);

	if (!$output) {
		echo "";
	}

	try {
		//Set the proper headers (there's no cache in this example btw)
		header('Cache-Control: no-cache, must-revalidate');
		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $cacheTime) . ' GMT');
		header('Content-type: application/json');
		header('Content-Disposition: inline; filename=' . $file . '.json');

		// Process the XML and convert it to JSON. Then output it.
		$xml = new SimpleXMLElement($output);
		echo json_encode(new SimpleXMLElement($xml->asXML(), LIBXML_NOCDATA));
	} catch(Exception $e) {
		echo 'Caught exception: ' .  $e->getMessage() . '\n';
	}

E cá está o código que faz um pedido GET usando o CURL a um serviço que retorna XML. Como bónus o código ainda converte de XML para JSON que IMHO é um formato muito mais jeitosinho de se trabalhar.

Notem que a gestão de erros aqui é praticamente inexistente e que devem sempre limpar o input do utilizador antes de fazer o que quer que seja com ele (mas isso é o ABC de programação web e já todos sabem).

wp-replyto 0.1.1

Jun 08 03

Escrito por Dextro @ 03/06/08 23:06 | 4 Comentários »

Ao comentar no meu blog notei uma coisa, passo a vida a escrever @comment-author-name repetidas vezes quando estou a responder a comentários e começa a tornar-se cansativo.

Para resolver a situação decidi implementar um pequeno javascript para automatizar o processo mas isso deixava-me o código do template um pouco feio. A solução: experimentar escrever um plugin para o wordpress para fazer isso e limpar o código.

Daí saiu o wp-replyto 0.1.1, um pequeno plugin que adiciona um link que adicionar “@comment-author-name” ao fim da textbox dos comentários e nada mais. Simples e eficaz.

Download WP-ReplyTo 0.1.1

Continuar a ler esta entrada >>

Portefólio Update

Jun 08 01

Escrito por Dextro @ 01/06/08 10:06 | Sem Comentários »

Um pequeno teaser do meu novo portefólioTenho aproveitado alguns tempos livres que tenho arranjado para ir preparando um novo portefólio para mim (para substituir a desgraça que tenho agora) e decidi deixar aqui um cheirinho.

Basicamente meti-me a fazer um pequeno script em php que lê as subpastas de uma pasta do servidor que contêm pequenos ficheiros .inf com as informações dos sites. Assim torna-se mais fácil para mim actualizar o portefólio e, graças ao uso da biblioteca smarty, mais fácil alterar o layout sempre que me apetecer.

Ainda não sei se vou libertar o código do script mas se houver interessados eu penso nisso (é um código trivial no entanto).

Agora o próximo passo a concluir nisto é dar um toque de Hijax ao script, ou seja, por aquilo tudo a funcionar a-la-Ajax sem precisar de recarregar a página e com efeitos todos xpto. Já que é um portefólio ao menos que salte á vista não? :roll:

Ideias para o verão

Mai 08 31

Escrito por Dextro @ 31/05/08 14:05 | 3 Comentários »

Ok, agora que já tenho as aulas todas para trás das costas e já só me faltam 2 semanas e meias de aulas tenho andado a pensar nas coisas que gostaria de fazer durante este verão (partindo do pressuposto que não aparece algo para me ocupar o tempo). As ideias são as seguintes:
 

  • Aprender JavaScript (e mais concretamente começar a brincar com algo tipo Prototype e script.aculo.us)
  • Acabar o sistema de login do PHPBridges
  • Cuscar o Vala

E pronto, acho que já estou safo para os próximos meses de férias.

PS: Alguém sabe de um bom livro sobre Protype e/ou script.aculo.us?

Duvida sobre AJAX

Mai 08 27

Escrito por Dextro @ 27/05/08 18:05 | 16 Comentários »

Ok tenho uma dúvida um pouco grande: se uma pessoa dá numa de GMail e afins e decide usar o poder do Ajax para ir carregando a informação como é que lidamos com a barra de endereço? Eu bem sei que esta pergunta pode parecer um pouco ignorante mas a verdade é que eu sou ainda um ignorante nisto do AJAX.

Colocando um aspecto mais prático na minha questão: eu estou a desenvolver um pequeno script php que lista todas as subpastas de um directório do servidor que contenham um ficheiro ini para mostrar os meus diversos sites (é para actualizar o meu portefólio) e estou a ponderar usar este projecto para desenvolver os meus conhecimentos de Javascript e AJAX.

A grande questão que tenho é a seguinte: se eu usar o AJAX para carregar as informações e ir mudando as páginas como é que lido com a barra de endereço? Se alguém me puder ajudar nisto eu agradecia imenso porque ainda não entendo muito bem como é que se processam as interacções cliente-servidor nisto do AJAX.

PS: Peço desculpas por todo e qualquer palavreado caro que tenha usado incorrectamente.

TekPT