Arquivo da categoria ‘web’

Javascript (Ajax) e HTML em Lisp

Domingo, 12 de Outubro de 2008 - Lucindo

Para testar algumas coisas refiz hoje o código do post Common Lisp e Ajax. Desta vez estou usando o patch para o HT-AJAX com suporte e jQuery. Além disso, para gerar código JavaScript uso Parenscript. Assim todo HTML e JS é produzido por s-exps:

(eval-when (:compile-toplevel :load-toplevel :execute)
(defparameter *dependencies*
‘(:asdf […]

HT-AJAX e jQuery

Domingo, 1 de Junho de 2008 - Lucindo

HT-AJAX (documentação aqui) é uma extenção do Hunchentoot que permite exportar suas funções lisp de modo que elas podem ser acessadas via JavaScript, usando AJAX. Um pequeno exemplo de uso dessa biblioteca está nesse post.
HT-AJAX suporta vários AJAX processors, como Prototype e Dojo, mas não jQuery. Então fiz um pequeno patch adicionando suporte a jQuery.
Download: […]

Logo legal

Quinta, 22 de Maio de 2008 - Lucindo

Logo do IRRLAB (site pessoal do Ivan):

Hunchentoot e REST, parte 2: suporte a ETags

Domingo, 27 de Abril de 2008 - Lucindo

Bom, esse post é mais um snippet de como implementar um serviço REST usando Hunchentoot. Dessa vez adicionei suporte a ETags no código do outro post. Ficou assim o tratamendo das requisições:
(defvar *data-id* “e8d8993494ffc11:b8e”)
(defun get-data-id (target)
“get the last id for requested data”
*data-id*)

(defmethod handle :around (request-method)
“ETag support for all methods”
[…]

David Heinemeier Hansson na Startup School 2008

Domingo, 20 de Abril de 2008 - Lucindo

Como programador ele é um ótimo businessman

Hunchentoot e REST

Domingo, 20 de Abril de 2008 - Lucindo

Um snippet de teste que eu fiz para um serviço REST usando Hunchentoot.
Usando função genérica é possível fazer um “pattern matching” e a implementação fica parecida com Erlang/YAWS (a vir no BedDB).

(eval-when (:load-toplevel :compile-toplevel :execute)
(require ‘hunchentoot))

(defpackage :ht-rest
(:use :common-lisp :hunchentoot))

(in-package :ht-rest)

(defun add-dispatcher (dispatcher-fn)
“Helper function to add dispatcher functions to dispatch […]

Benchmarks

Terça, 27 de Novembro de 2007 - Lucindo

O Ivan colocou na sua página dois benchmarks interessantes:

Expressões regulares: tempo para verificar se 170K strings são URLs
“Hello Interwebs!”: número de requests por segundo em uma página dinâmica

Linguagens testadas: C, C++, Java, Perl, Python, Ruby, Ocaml, PHP, D, Erlang e Common Lisp.
Observação: Nenhum dos testes prova nada além do que um bando de programadores não […]

Milki: esboço de wiki em Common Lisp

Quarta, 14 de Novembro de 2007 - Lucindo

Eu precisava de uma wiki para ajudar a organizar idéias de um projeto. Depois de conversar com os outros envolvidos eu fiquei de instalar uma em um servidor para começarmos a usar no dia seguinte.
Resolvi que seria uma experiência interessante escrever uma wiki em CL. Como precisávamos da wiki para o dia seguinte eu tinha […]

Server lisp no unix

Sábado, 20 de Outubro de 2007 - Lucindo

Uma maneira fácil de rodar o seu server feito em lisp (talvez uma aplicação web usando Hunchentoot) é com o Detachtty.
No Ubuntu ou Debian basta apenas: apt-get install detachtty
Vamos supor que sua aplicação pode ser carregada com o arquivo web-app.lisp e iniciada com (web-app:start). No linux, com SBCL pode fazer o seguinte script:

#!/bin/bash

detachtty \
[…]

Ajax simples

Quinta, 20 de Setembro de 2007 - Lucindo

Warning: Isso deve ser muito manjado, eu que nunca tinha visto. Estou escrevendo só para não esquecer
Imagine o seguinte caso de uma aplicação web: o usuário executa uma ação e o servidor apenas precisa ser notificado, todos os dados necessários para uma eventual alteração da tela já estão presentes. É o caso por exemplo de […]

(blog ‘lucindo) | http://blog.lucindo.com.br