Archive for the ‘Programació’ Category

Alliberat PHPStorm

dijous, juliol 5th, 2012

Avui s’ha alliberat la versió 4.0.3 (release 117.694) d’aquest genial programari IDE (Entorn de Desenvolupament Integrat).

Alliberat Sublime 2

dimecres, juny 27th, 2012

Ahir va ser alliberat el magnífic editor Sublime Text 2.

Sublime 2 és un editor molt lleuger, escrit en Python, i que va molt bé per a programar en PHP especialment en projectes tan grans que l’Eclipse rebenta.

No té tantes funcionalitats, però és un gran editor i sobretot molt ràpid.

Està disponible per a Linux, mac, i windows.

Enviar un zip al vol amb C#

divendres, juny 8th, 2012

Si voleu generar un arxiu zip amb C# i enviar-lo per web probablement us trobareu amb que s’us genera corrupte o que funciona en els clients amb windows però no amb els de Linux.

Això es deu a que .NET envia unes línies de control, i ho fa de manera automàtica, per tant corrompran el final del contingut binari que esteu enviant.

Un codi que us funcionaria seria:

Response.Clear();
// Arxius grans
Response.BufferOutput = false;
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + filename);
using (ZipFile zip = new ZipFile())
{
    zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding("iso-8859-2");
    zip.TempFileFolder = AppConfig.rutaArrelAplicacio + @"\tmp";
    zip.AddDirectory(AppConfig.rutaArrelAplicacio + @"\carpeta_a_comprimir");
    // Això envia l'arxiu comprimit a la sortida estandard
    zip.Save(Response.OutputStream);
}
// Tanquem la connexió de manera que .NET no enviarà res més
Response.Close();

Response.Close(); és qui finalitza l’enviament de dades al navegador.

Smarty Debug

divendres, maig 11th, 2012

Si programeu plantilles (templates) d’Smarty hi ha una comanda que us anirà molt bé:

{debug}

Si poseu aquesta comanda al principi de la plana, obre una finestra nova amb les variables declarades i els seus valors.

Alliberat PHP 5.4.3 i 5.3.13

dimecres, maig 9th, 2012

Tal i com ens informa la web oficial de PHP s’han alliberat dues versions noves de PHP per a solucionar un forat de seguretat relacionat amb la configuració del producte en mode CGI.

És recomanable actualitzar tant aviat com us sigui possible.

http://www.php.net/archive/2012.php#id2012-05-08-1

Alliberat Toad 11.5

Dimarts, maig 8th, 2012

Per als que treballeu amb Oracle, és d’interès que Quest Software ha alliberat la versió 11.5 de Toad.

Encara que aquest programari és bastant “buggy”, és a dir, que acostuma a contenir força errors, i peta sovint, cal dir que és una eina imprescindible per a treballar amb Oracle.

Més de 2 milions de desenvolupador l’empren al món.

Les millores que presenta són:

  • Enhanced Query Builder – Provides the look and feel of a modeling tool; makes building complex queries simpler and more intuitive than ever before.
  • Enhanced Code Analysis – Includes additional rules like naming conventions and rule customization; integrates with version control to validate code quality as changes are made.
  • Enhanced DB Health Check – Supports Exadata for efficient Exadata health management.
  • Enhanced Data Compare and Synch – Includes a faster data compare-and-synch engine that enables one-click synchronization.
  • Oracle Applications Express (APEX) Support – Lets you export APEX objects and their dependencies to script files for migration and rebuilding tasks.
  • Workspaces – Allows you to define your workspaces and save multiple UI layouts.
  • Integration with Project Lucy – Integrates with the Project Lucy online analytical resource for DBAs; offers unique insight on system and data performance; lets you compare your performance metrics with the user community’s.

Aquí podeu veure un vídeo on expliquen les millores (en anglès):

 

Compilar PHP 5.4 a Ubuntu Linux 12.04

divendres, maig 4th, 2012

PHP 5.4 no està disponible encara compilat per a Ubuntu Linux 12.04 Precise Pangolin.

Per tant, si volem instal·lar-lo al nostre sistema, n’haurem de baixar els codis font des de php.net i compilar-los.

Per a fer-ho anirem a www.php.net i baixarem els codis fonts de PHP 5.4.

Descomprimim l’arxiu i des de terminal li diem:

./configure

Si obtenim l’error:

configure: error: xml2-config not found. Please check your libxml2 installation

Vol dir que no tenim l’arxiu xml2-config, que per canvis a Ubuntu 12.4 no s’instal·la.

L’instal·larem amb:

sudo apt-get install libxml2-dev

Llavors tornarem a fer:

./configure

Un cop fet correctament farem

./make

I això ens haurà generat dins de la carpeta sapi/cli l’arxiu php binari.

Si volem també podem fer:

./make test

Que verifica la nostra instal·lació i si detecta problemes ens demana d’enviar-ho als creadors, per a localitzar el problema.

 

Excerpt in English: How to install PHP 5.4 in Ubuntu 12.04 Precise Pangolin by compiling it.

Alliberat Apache Tomcat 7.0.27

diumenge, abril 8th, 2012

El proppassat dia 5 d’Abril s’alliberà la versió 7.0.27 d’Apache Toomcat, el servidor d’aplicacions d’Apache per a Java.

Aquesta versió soluciona força bugs, i implementa noves funcionalitats com ara:

– Suport per al protocol WebSocket (RFC6455) (aqeusta és una de les funcionalitats més interessants de HTML 5)

També millora la prevenció de memory leaks i soluciona errors al connector HTTP NIO.

Podeu veure la llista de millores a http://tomcat.apache.org/tomcat-7.0-doc/changelog.html

 

Inserir un text a la segona línia d’un arxiu (Shell Script)

dilluns, març 26th, 2012

Avui estava automatitzant un procès per tal que en canviar de branca del SVN, a l’entorn de desenvolupant, m’afegís una línea extra al bootstrap del projecte PHP en que treballo.

Bàsicament l’arxiu original fa:

<?php
/**************
  Comentaris
 **************/

I jo volia que fes:

<?php
require_once "classes_prova/TestUtilitats.php";
/**************
  Comentaris
 **************/

Com ho he realitzat ha estat emprant aquestes línies de Shell Scripting:

awk 'NR==1{print; print "require_once \"/www/projectes/classes_prova/TestUtilitats.php\";"} NR!=1' /www/projectes/projecte_x/app/index.php > /www/projectes/projecte_x/app/index.php.2
mv /www/projectes/projecte_x/app/index.php /www/projectes/projecte_x/app/index.php-default
mv /www/projectes/projecte_x/app/index.php.2 /www/projectes/projecte_x/app/index.php
chown apache /www/projectes/projecte_x/app/index.php

Avançament de les característiques de xdebug 2.2 (PHP)

dijous, març 22nd, 2012

Al bloc de Derick Rethans ens avancen algunes de les novetats de la funcionalitat xdebug_var_dump() , que per cert sobrecarrega la nadiva var_dump, de xdebug 2.2, actualment en desenvolupament.

M’agrada especialment la funcionalitat de mostrar colors d’un dump (volcat de dades) a un terminal.

Aquesta funcionalitat és suportada només a consoles unix, executant des de línia de comandes.

Curs de formació PHP

divendres, març 2nd, 2012

Estic a punt de començar a impartir un curs nocturn per a ser Programador Junior en PHP.

El curs que començo a donar el 12 de Març, és molt pràctic i està orientat a persones que treballen o estiguin en situació d’atur i que vulguin fer-se una carrera en el món de la informàtica, encara que també se’n poden beneficiar emprenedors que vulguin programar els projectes per la seva banda.

Es tracta d’una formació presencial, a Barcelona, de 20:00 a 22:00 hores de dilluns a dijous, i té una durada d’un mes.

Ofereixo facilitats de pagament.

Si esteu interessats/des o voleu rebre més informació contacteu-me.

Alliberat Sublime Text 2 (beta) build 2181

dijous, febrer 23rd, 2012

S’ha alliberat la versió 2181 de Sublime Text Editor 2.

Aquesta versió està disponible en beta (encara no és versió final).

L’editor Sublime és un entorn de programació (IDE) per a programar en diferents llenguatges.

És molt lleuger, ja que està escrit en Python i no pas en Java com es fa habitualment, i és multiplataforma.

Es troba disponible per a:

Linux 32 bit

Linux 64 bit

Mac Os X

windows 32

windows 64 bit

Aquest programa no és Programari Lliure si no que demanen que si s’utilitza es registri. Nogensmenys té un preu baix.

Bàsicament aquesta versió presenta millores, encara que segueix sense poder-se imprimir i la súper útil funcionalitat Ctrl + el nom del mètode o la variable, tampoc no està implementat.

El podeu descarregar des de la seva web:

http://www.sublimetext.com/download

sshfs muntar una carpeta a través de ssh

divendres, febrer 3rd, 2012

En Linux muntar una carpeta de servidor per Samba i treballar-hi amb projectes de PHP, suposa alguns problemes.

En primer lloc és molt lent i nombrosos programes perden molta estona, minuts, en recuperar els arxius d’un directori.

Després no està gens recomanat per a Subversion.

A part hi ha problemes de permisos entre usuaris de Linux, i sovint problemes amb la data i hora dels arxius al repositori Samba.

I suposa greus problemes si unim Samba + SVN + PhpStorm.

Aquests problemes desapareixen si enlloc de Samba utilitzem sshfs, que és una utilitat que ens permet muntar carpetes al nostre sistema d’arxius, tenint simplement un usuari ssh.

Jo tinc m’he fet un petit script o guió, que em munta una carpeta cada cop que el crido:

#!/bin/sh
usuari_devel=carles
sshfs $usuari_devel@devel.servidor.codic.cat:/home/OFICINES/$usuari_devel /home/$usuari_devel/devel

Per a instal·lar-lo:

sudo apt-get install sshfs

Gràcies Xavier Vidal.

Li vaig trobar un problema, que és quan poses l’ordinador en modus de suspensió (sleep/suspend), ja que després no pots accedir a la carpeta, ni desmuntar, ni tornar a muntar-la amb sshfs.

L’he pogut solucionar fent:

fusermount -u $mountpoint_devel

tot just abans de suspendre l’ordinador.
En tornar-lo a iniciar després, caldrà obrir una connexió ssh cap al servidor manualment (ssh elmeuservidor), i després podem tornar a llençar sshfs per a muntar la carpeta.

Linux: Saber quins processos estan emprant la swap

dilluns, gener 30th, 2012

Hi ha diverses maneres de conèixer quins processos estan tirant de swap (de disc), i per tant fan que el sistema vagi lent.

Us adjuntaré una manera fàcil, i una manera via script.

La manera fàcil, si la utilitat top és instal·lada al sistema és tan simple com invocar-la:

htop

Llavors prèmer O (per a ordenar) i p i després Enter, el que ens mostrarà per ordre de consum de memòria swap una llista amb els processos.

L’script, especialment útil si treballeu amb un servidor, és el següent:

psres=$(ps -eo rss,vsz,user,pid,tty,time,cmd); set -- $(/bin/echo "$psres" | head -n1); shift; shift; echo "SWAP $*"; echo "$psres" | awk 'BEGIN {ORS=""; getline} {print $2 - $1 " "; for (i=3; i<NF; i++) print $i " "; print $NF "\n"}' | sort -rn | head

Aquest script l’he vist a la següent plana: http://muzso.hu/2010/08/11/how-to-find-the-processes-using-the-most-swap-space-in-linux

PHP: Afegir arrays

dijous, gener 19th, 2012

Suposem que tenim un array amb codis postals.

Pe:

$st_codis_postals = array('08021' => 'Barcelona',

25520 => 'El Point de Suert (Lleida)',

17452 => 'Massanes (Girona)',

// I així successivament

);

Llavors volem afegir una entrada en la primera posició, ja que una plantilla d’Smarty utilitzarà l’array per a mostrar un combo.

Si afegim la clau 0, el que tindríem és:

‘08021’ => ‘Barcelona’,

25520 => ‘El Pont de Suert (Lleida)’,

17452 => ‘Massanes (Girona)’,

0 => ‘Triï la població’

Però les funcions que podem utilitzar per a fer un merge entre arrays o fer a afegir a la primera posició provoquen una reordenació de les claus numèriques.

Per tant no les podem fer servir, i fer servir un bucle per a això és exagerat i ineficient.

La solució, bastant simple, és fer:

$st_array_definitiva = array(0 => ‘Triï la població’) + $st_codis_postals;

Això farà la feina.

Només heu de vigilar de no tenir claus repetides ja que + afegeix les claus que no estan repetides.