Posts Tagged ‘Programació’

Curs de Go en Català

Dimarts, juliol 29th, 2014

Si voleu aprendre a programar en Go de google, hi ha uns tutorials en diverses llengues, entre elles el Català.

 

http://go-tour-ca.appspot.com/#1

go-tour-ca-codic-cat

 

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Afegir l’hora a una plantilla Smarty

dimecres, juliol 10th, 2013

Si heu d’afegir l’hora a una plantilla d’Smarty és molt fàcil:

 

Hora local: {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

PHP 5.4 incorpora facilitats de control de progrès de la pujada

dilluns, febrer 18th, 2013

Una barra de progrès d'exempleUna de les noves característiques de PHP 5.4 és que facilita, a través de $_SESSION fer un seguiment de com va la pujada dels arxius que estem enviant.

Això és interessant perquè mentre un procés de PHP està rebent els arxius per POST, un altre pot estar atenent crides Json del navegador, i així mostrar la títpica barra de tasques.

Aquesta funcionalitat és molt interessant però heu de tenir en compte, que si heu fet que la SESSION del vostre projecte es recuperi de base de dades perquè teniu diversos frontals web, estareu afegint una càrrega de fins a 100 queries sobre la base de dades per cada arxiu (una per cada punt percentual).

Això es pot modificar amb la directiva de PHP.ini

session.upload_progress.freq =  "1%"

Podeu especificar “10%” per a que només faci 10 queries. També podeu especificar bytes.

Aquests articles us resultaran interessants:

http://docs.php.net/manual/en/session.upload-progress.php

http://php.refulz.com/new-in-php-5-4-improvements-in-session-extension/

 

També heu de parar atenció als temes de control de sessió, per a evitar els problemes de bloqueigs de sessions.

Si treballeu amb un sol servidor web i feu servir session_start estareu bloquejant l’accès d’altres processos a la sessió (per exemple peticions Ajax). Si no coneixieu  això reviseu session_write_close();

Aquest article us ajudarà: http://konrness.com/php5/how-to-prevent-blocking-php-requests/

session.upload_progress.freq =  "1%"

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Una anàlisi del codi font de Duke Nukem 3D

dissabte, febrer 16th, 2013

duke3dEn Fabien Sanglard fa una anàlisi brillant del codi de Duke Nukem 3D, un joc ja antic però que va ser trencador a la seva època.

Per a aquells que us agradi la programació de videjocs, no us podeu perdre els seus comentaris sobre el codi i com esmicola els aspectes bons i els dolents, del codi.

No us perdeu la resta de seccions de la seva web on hi ha altres anàlisi brillants així com videojocs fets per ell per a diferents plataformes, amb els codi font per a baixar.

Imprescindible! També comenta problemes molt tècnics amb el compilador d’Android i el tractament dels char de C, com unsigned char o signed char depenent de la plataforma, i els problemes que li va ocasionar això en processadors ARM (per a Android), i amb quin debugger ho va solucionar.

Un geni de la programació que si us agrada la informàtica i la programació tant com a mi, no podeu deixar passar.

http://fabiensanglard.net/duke3d/index.php

 

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

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.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

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.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Vídeo: WatNan (Humor informàtic)

dimecres, gener 18th, 2012

Un vídeo realment hilarant per als qui treballem amb programació.

És en anglès, però perfectament intel·ligible.

Veure a: https://www.destroyallsoftware.com/talks/wat

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Emprar JQuery i Smarty

dimecres, gener 11th, 2012

JQuery és empradísism a Internet per a desenvolupar la part visual, coneguda com Front-End, i Smarty és un sistema de plantilles que s’empra molt en programació en PHP.

JQuery empra una nomenclatura tipus:

<script> 
    $('metode_pagament').click(
        function() { 
            $('capa_tarjeta').appendTo('#capa_tipus_pagament'); 
        }
      ); 
</script>

Aquest codi dins una plantilla d’Smarty, coneguda com tpl, provocarà un error ja que els corxets { } són emprats per Smarty per a indicar on comença codi que executa Smarty, i com JQuery o Javascript empren els corxets { } això confondrà a l’intèrpret, retornant un error.

Això se soluciona facilment obrint una etiqueta d’Smarty {literal}:

{literal}
<script> 
    $('metode_pagament').click(
        function() { 
            $('capa_tarjeta').appendTo('#capa_tipus_pagament'); 
        }
      ); 
</script>
{/literal}

Amb això funcionarà el vostre codi.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Debuguejar codi PHP de servidor

dijous, desembre 29th, 2011

A partir de PHP 5.3 tenim una funció molt pràctica que ens permet debuguejar, especialment al costat servidor.

Es tracta de register_tick_function.

Aquesta funcionalitat ens permetrà fer una crida a tick_handler, cada interval especificat per el número de ticks, i d’aquesta manera podrem tracejar en quin moment peten els programes més difícils de debuguejar o que casquen perquè falla nginx, un altre component o llibreria o perquè s’omple la memòria.

declare(ticks=1);

// Una funció que es crida a cada esdeveniment tick
function tick_handler()
{
    $st_traces_de_debug = debug_backtrace();

    // FileUtils és una classe meva per a treballar en arxius
    // En aquest cas enregistrarem l'arxiu i el número de línia que s'ha executat correctament
    FileUtils::setMessageLog($st_traces_de_debug[1]['file'] . ' ' .$st_traces_de_debug[1]['line']);
}

register_tick_function('tick_handler');

Si us va millor enlloc d’usar un mètode com al meu exemple_ setMessageLog de la classe FileUtils, podeu fer servir una funció disponible al mateix codi com en aquest exemple:

function escriu_a_arxiu_log($s_cadena = '/* res a escriure */', $s_file = '/tmp/carles-debug.log')
{
    $s_datahora = date("Y-m-d h:i:s");

    $o_fh = fopen($s_file, 'a') or die("no puc obrir l'arxiu");
    fwrite($o_fh, $s_datahora.' '.$s_cadena."\n");
    fclose($o_fh);
}

// Per a invocar la funció
escriu_a_arxiu_log('Test');

D’aquesta manera anem enregistrant totes les comandes que s’executen correctament.

Agraïments: Edu.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Alliberat Charles proxy 3.6.5

divendres, desembre 9th, 2011

La versió 3.6.5. de Charles, el complement Shareware per a Firefox, fou alliberada ahir.

Charles és un programari de proxy, que funciona com a complement de Firefox, i que ens permet conèixer tot el tràfic que circula entre el navegador i els diferents servidors, fins i tot el tràfic d’aplicacions Flash o Java i el tràfic SSL.

Aquesta darrera versió soluciona bastants bugs.

El podeu descarregar des de la seva web:

http://www.charlesproxy.com/download/

 

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Executar l’entorn de programació d’Office VBA

dilluns, setembre 19th, 2011

A les darreres versions d’Office l’eina de programació és desactivada.

Per a executar l’entorn de programació d’Office, Visual Basic for Application, només cal prèmer de manera simultània ALT + F11.

 

 

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

com.nokia.warlock.protocolstack Exception a un iPhone

dilluns, agost 15th, 2011

M’ha cridat molt l’atenció aquesta excepció que m’ha donat l’iPhone.

Bàsicament es tractava d’un article a Llibertat.cat que obria des de l’aplicació d’iPhone, doncs algú l’havia pujat al seu perfil.

Per algun motiu llibertat.cat no es trobava disponible en aquells moments i l’aplicació de Facebook per a iPhone va donar una exception (error).

Em vaig quedar astorat en veure que el nom de la classe era com.nokia

Està emprant apple llibreries de comunicacions de nokia?.

Algú en té la resposta?.

 

Adreça curta Twitter: http://wp.me/pzeab-1RH

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Una curiositat de PHP floatval

diumenge, agost 7th, 2011

De vegades PHP té comportaments d’allò més emprenyadors, per no dir erronis.

Avui podeu provar aquest codi que retorna un resultat que em sembla molt divertit.

<?php
/*
* @author Carles
* @website http://codic.cat
* */

$s_valor_comu='10.10 raons';
$s_valor_divertit='-';

$i_valor_comu=floatval($s_valor_comu); 
$i_valor_divertit=floatval($s_valor_divertit); 

echo "Partint de $s_valor_comu el valor que us espereu és $i_valor_comu\n"; 
echo "Partint de $s_valor_divertit el valor que no us espereu és $i_valor_divertit\n"; 

Quan executeu el codi veureu que us retorna -0.

-0 pot semblar un valor no gaire perillós però pot fer que falli el vostre codi en diversos punts.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Veure els arxius ocults i l’extensió en Windows 7 mitjançant un script

dijous, juny 2nd, 2011

Una empresa per a la que treballo fa servir windows 7 per als ordinadors de desenvolupament, i tots són connectats al domini.

El problema és que tenen una política al domini per la qual, en iniciar sessió i periòdicament, es modifica el registre de windows i fan que no es vegi l’extensió dels arxius, i que no es vegin els arxius ocults.

Això és extremadament molest per als desenvolupadors ja que necessitem saber quina extensió té cada arxiu.

Per això, vaig fer un petit script, o guió, que torna activa al registre de windows veure l’extensió  dels arxius, i veure els arxius ocults.

 

' @author Carles Mateo
' @desc mostra_amagats.vbs Mostrar l'extensió dels arxius. Mostrar arxius ocults.
' @

Set o_sh = CreateObject("WScript.Shell")
s_laClau = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden"
' Opcional si es vol llegir
' i_setHidden = o_sh.RegRead(s_laClau)
' msgbox i_setHidden

i_setHidden = 1
o_sh.RegWrite s_laClau,i_setHidden,"REG_DWORD"

s_laClau = "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt"
i_setHidden = 0
o_sh.RegWrite s_laClau,i_setHidden,"REG_DWORD"

s_laClau = "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden"
i_setHidden = 1
o_sh.RegWrite s_laClau,i_setHidden,"REG_DWORD"

s_laClau = "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\AlwaysShowMenus"
i_setHidden = 1
o_sh.RegWrite s_laClau,i_setHidden,"REG_DWORD"

Set o_sh = Nothing

Adreça curta Twitter: http://wp.me/pzeab-1PZ

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Folles matemàtiques

dilluns, maig 16th, 2011

Ara fa uns dies em va venir un dubte al cap.

Havia de calcular la intersecció d’uns rectangles, que podien superposar-se o no, i podien trobar-se a qualsevol punt de les coordinades x y z.

Vaig començar a preparar els algoritmes i els càlculs matemàtics i de seguida em vaig adonar que podia tenir coordinades als valors negatius.

I un dubte em va assaltar.

Suposant que el rectangle 1 és parcialment dins del rectangle 2, si calculava el fragment del vòrtex x en comú fent:

$i_espai_comu_eix_x = $i_rectangle1_x_fi - $i_rectangle2_x_inici;

En aquest cas el rectangle 1 és el negre i el rectangle 2 el vermell.

Em vaig adonar que el final de l’eix x del polígon 1 podia acabar a la posició -2 per exemple, i el principi de l’eix x del polígon 2 podia començar a la posició -4, així que em trobaria amb que l’espai comú seria el resultat de fer:

-2 – (-4)

I això em va fer ballar el cap.

Si a tres pomes li en restes una te’n queden dues.

Però com li restes, li sostraus, -4 a -2.

En aquells moments estava una mica espès. Havia treballat moltes hores i dormit poc.

Vaig comentar-li a un amic, i tampoc sabia com enfocar-ho.

Així que us plantejo aquest divertiment matemàtic.

Hi podeu pensar una mica i a continuació us n’explico la solució.

Davant el dubte un ordinador ens dóna el resultat:

<?php
    $i_valor=-2;
    $i_valor2=-4;

    $i_resultat=$i_valor-$i_valor2;$i_resultat2=$i_valor+$i_valor2;

    echo "El resultat del misteri $i_valor - $i_valor2 és: $i_resultat\n";
    echo "El resultat sumant $i_valor + $i_valor2 és: $i_resultat2\n";

Jo he anomenat aquest arxiu follesmatematiques.php així que el podeu executar amb:

php -f follesmatematiques.php

El resultat que us donarà és que -2 – (-4) = 2 o si feu -4 -(-2) = -2

I ara us explico diferents possibilitats per a comprendre la solució.

Si tenim -4 vol dir que tenim 4 vegades el valor -1, així que si li restem -2, és a dir 2 vegades -1, només ens queden 2 -1, o sigui -2.

Una altra possibilitat és descompondre-ho matemàticament:

-4 – (-2) = (-1*4) – (-1*2) = -1 * (4-2) = -2

Una altra possibilitat és pensar en el compte bancari: Si a un compte corrent li han aplicat un càrrec de -2 euros, i el banc l’anul·la per que ha estat un error, és a dir resta o sostreu els -2 euros, vol dir que els hi sumarà. O sigui que si tenim – (-2) és com si tinguéssim +2.

Un divertiment per a qui us agradi fer ballar el cap amb problemes i preguntar-vos sobre l’origen (que no el “PORQUÉ”) de les coses.

Adreça curta Twitter: http://wp.me/pzeab-1Pw

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy