Archive of articles classified as' "desarrollo"

Back home

Configurar l’idioma Català a Linux

30Jul10

Estic fent algunes probes per a mostrar les dates a PHP en Català. Al meu servidor local tot funcionava correctament, pero al passar-ho al servidor remot ha deixat de funcionar.

El codi font es el següent (en PHP):

setlocale(LC_ALL, $lang . "_ES.UTF-8");
echo strftime("%A %e de %B del %Y a " . $translate->_("las") . " %H:%M", strtotime($time));

En castellà funcionaba correctament, pero al passar-ho al català no funciona.

Per a que funcioni, he hagut de fer la següent modificació: Obrir el fitxer /var/lib/locales/supported.d/local i afegir la darrera línea.

es_ES.UTF-8 UTF-8
ca_ES.UTF-8 UTF-8

Despres de desar el fitxer, he executat la següent comanda:

sudo dpkg-reconfigure locales

I ja ha funcionat, ja puc veure la data tant en català com en castellà :) !

No Comments

Iterar sobre array en PHP y Javascript

26May10

¡Porfin lo encontré!

En PHP hacemos el típico foreach:

foreach($array as $key => $value) {
echo "clave = " + $key;
echo "valor = " + $value;
}

Y en Javascript también se puede hacer del siguiente modo:

for(i in array) {
alert("clave = " + i);
alert("value = " + array[i]);
}
No Comments

Por qué Zend Framework?

26Dec09

El otro día recibí un comentario de un lector de mi blog y me preguntaba:

Pau, por que  Zend Framework? Vi que hace un tiempo habías hecho un post sobre CakePHP.

Voy a dar la respuesta a este comentario en forma de post. Es cierto que había escrito un post sobre CakePHP. Un amigo (Xavier Orduña) me lo presentó y lo probé. Entonces aún no conocí­a ningún framework de desarrollo y, al topar por primera vez con Cake, me pareció una manera muy rápida de agilizar el desarrollo de una aplicación web.

Un tiempo más tarde, y sin haber profundizado con Cake, probé Zend Framework. También me lo recomendó otro amigo (Claudio Cossio) y tengo que confesar que me gustó más que Cake.

Ya llevo un tiempo desarrollando con Zend y después de un par de proyectos, puedo sacar las siguientes conclusiones. Antes advierto que no soy un experto en frameworks, he tocado mas o menos en profundidad Zend, he jugado con CakePHP y Django (para Python) y me han hablado muy bien de Symphony, así que ya aviso que mi punto de vista va a estar desviado.

  1. Documentación correcta: Acostumbro a consultar su documentación a menudo y está bastante bien, con ejemplos bastante bien explicados y sobretodo prácticos.
  2. Sencillo: Es relativamente sencillo de montar una aplicación básica con Zend Framework. Si luego quieres ir un poco más allá ya en cuanto a complejidad, ya vas a tener que mirarte la documentación.
  3. Completitud de módulos: Tiene módulos para casi todo. Una vez empiezas a programar con él, cada vez que revisas los módulos encuentras alguno que te va a ser útil.
  4. Zend está detrás: El hecho de que Zend, la compañía que desarrolla PHP está detrás de este framework me da una cierta seguridad de que será mantenido y que dará soporte por mucho tiempo.
  5. Patrones de base de datos: Me encanta el patrón de diseño que usa ZF para acceso a la base de datos: Table Data Gateway y Row Data Gateway. Me imagino que la mayoría de frameworks deben usar cosas parecidas, pero la manera en que lo resuelve Zend Framework es especialmente cómoda para el programador.

Por último, cito las palabras del amigo Carlos Buenosvinos en una de las discusiones del Grupo de programadores PHP Barcelona, en respuesta a “¿Qué framework PHP usáis?“:

Has de considerar, la comunidad, la continuidad, performance, si está basado en componentes o no (migrar o nueva aplicación desde 0), contenido en la red, libros (material didáctico), oferta de desarrolladores (en el caso de que quieras contratar), funcionalidades totales, funcionalidades que se adaptan a tus requerimientos, funcionalidades que le faltan para tu aplicación, si tienes desarrolladores en tu equipo que ya conozcan algún framework, soporte con PHP 5.3 (compatibilidad hacia atrás, sin compatibilidad, …), etc. No te dejes llevar por modas, como siempre, la respuesta es depende.

Pues nada, saludos y disfruten de las vacaciones de navidad (quien las tenga!).

No Comments

Resumen de iWeekend Barcelona 09

24Nov09

Este pasado fin de semana he tenido la oportunidad de asistir a iWeekend Barcelona. El evento se ha celebrado en Barcelona Activa y ha agrupado a más de 50 emprendedores que se han repartido para tirar adelante 4 proyectos.

En mi opinión, la fase de selección de proyectos es una de las partes más interesantes de iWeekend. Los emprendedores proponen la idea y tienen que seducir a los asistentes para atraer los recursos que la desarrolladán durante el fin de semana.

A continuación describo los proyectos que se han llevado a cabo durante este di

  • Vox Populi: Sistema de recolección y gestión de incidencias para ayuntamientos via móvil
  • Partido de Internet: Movimiento democrático que se constituye como partido político para regenerar la democracia
  • GoodBuyAmigo: Plataforma donde pedir consejo a tus amigos antes de hacer una compra online
  • alertas.de Servicio de alertas al móvil, correo electrónico y redes sociales a partir de unas preferencias especificadas

He formado parte del equipo que ha desarrollado alertas.de, junto con Miguel Florido y Santiago Lizardo. Hemos tenido la mala suerte de no poder formar parte de un grupo multidisciplinar, pero que nos ha permitido tirar adelante el proyecto con mucha agilidad.

De izquierda a derecha: Santiago, Pau y Miguel

En el otro lado del charco, nuestro estimado socio y amigo Claudio Cossio ha promovido el iWeekend en México obteniendo un éxito rotundo, tanto de asistencia como de repercusión en toda latinoamerica. ¡Enhorabuena!

Notas:

  • He recopilado algunos post con opiniones del iWeekend.
  • En Barcelona Activa me encontré con los chicos de Eventuo, hacía ya un tiempo que no nos veíamos y hemos dicho de quedar para comer para ponernos al día.
No Comments

PHP Conference 2009

15Oct09

La gente de PHP Barcelona se han animado, como cada año, a montar una la PHP Conference 2009, una conferéncia relacionada con PHP que se celebrará el 30 y 31 de Octubre en el Citilab, en Cornellà. Como podéis ver, el planning parece muy interesante.

Seguramente asistiré, como mínimo el sábado. Para los amantes del Facebook han creado el evento. Si os habéis decidido a venir apuntaros e invitar a todos vuestros colegas.

http://www.facebook.com/event.php?eid=150863109670

De cara a la promoción podéis seguir también a su twitter:

http://twitter.com/phpbarcelona

Han empezado a usar el topic #phpbcn2009 si alguno se anima a hablar de la conference usándolo más promoción para el evento de una manera sana y gratuita.

¡Espero veros ahí!

No Comments

API de Google Translate

9May09

Esta mañana he jugado con la API de google translate. Ha sido bastante sencillo ya que hay muchos ejemplos en la web.

En mi caso, tengo una aplicación bilingue donde los usuarios pueden escribir la descripción de un producto. La idea es que al cambiar de idioma se cambie el idioma de todo (incluido el texto insertado por el usuario).

Aquí os dejo el código de pruebas:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
 
<script type="text/javascript">
    google.load("language", "1");
</script>
 
<script>
    function translate(source, dest) {
        var div_source = document.getElementById("my_div_" + source);
        var div_dest = document.getElementById("my_div_" + dest);
        alert(div_source.value);
        google.language.translate(div_source.value, source, dest, function(result) {
            alert(result.translation);
          if (!result.error) {
            div_dest.value = result.translation;
          }
        });
    }
</script>

Pues esto es todo.

2 Comments

JAVA Method: boolean isInteger()

5Feb09

Hoy tenía la necesidad de ver si un texto es un entero o no. He estado buscando un buen rato en google hasta que he dado con ella. Aquí os la dejo:

private static boolean isDouble(String str) {
        try {
                double v = Double.parseDouble(str);
                return true;
        } catch(NumberFormatException e) {
                return false;
        }
}
 
private static boolean isInteger(String str) {
        try {
                int v = Integer.parseInt(str);
                return true;
        } catch(NumberFormatException e) {
                return false;
        }
}

It works! :)

No Comments

Smarty: cuantas veces pasamos por el bucle?

31Oct08

Estamos trabajando con Zend Framework y Smarty como motor de plantillas. Me he encontrado con la necesidad de contar las veces que itero sobre un bucle.

Lo comparto porqué me he estado un rato para sacarlo:

Opción 1: Usar el “counter” de Smarty

{assign var="n" value="0"}
{counter start=0 print=false assign=n}
{foreach from=$array item=element}
    {counter print=false}
    //Hacer algo
{/foreach}
n = {$n}

Opción 2: Usar el “section” de Smarty (por Jordi Catá)

{section name=index loop=$array}
    n = {$smarty.section.index.total}
{/section}

Opción 3: Contando el numero de elementos del array

n = {$array|@count}

+info: Smarty {counter}
+info: Smarty {assign}

Saludos!

Nota: Que frío hace por aquí … a veces incluso nieva (vía Chus in Reading).

3 Comments

Beques de programari lliure

8Sep08

Avui he vist vía mossegalapoma que la Generalitat de Catalunya ha obert 20 beques per a que estudiants participin en projectes de desenvolupament de programari lliure.


Personalment m’interessa força, no només per la remuneració (2.000€) sinó per tot el que es pot aprendre col·laborant en aquests tipus de projectes de programari lliure. El problema es que aquest quatriméstre marxo d’Erasmus a UK i ja estic liat amb un projecte.

Jo porto temps desenvolupant coses per a mi mateix i la meva experiència personal es que al costat de gent es molt més fàcil treballar. A part de que “on hi ha mes gent, hi ha més coneixement“, el treball es fa molt més entretingut i mai està de més fer una mica de networking. Així que tots aquells que dubteu, animeu-vos a participar. Hi ha projectes molt interessants ;)

No Comments

Web.py, i=web.input() y isset

25Jul08

Estas son las palabras clave de este post. Llevo un rato buscando pero no he encontrado nada al respecto y me parece una cosa básica. Al final he dado con ello.

Tengo una aplicación en Python con el framework web Web.py. Quiero recoger un parámetro (da igual si es GET o POST) pero este parámetro no siempre lo voy a tener.

En PHP usamos la función isset($_GET['clave']) y lo que buscaba era una función similar en Python.

Resultado:

class nombre_de_la_clase:
def GET(self):
i = web.input()
for key, value in i.items():
print “key = %s” % key
print “value = %s” % value

Pues ahí lo dejo!

Nota: ¿MacBook Touch? (applesfera, xataca, informatica-practica) … ¿Serà verdad?

2 Comments