dijous, 31 de desembre del 2009

Save MySQL!

Michael Widenius, fundador i primerenc desenvolupador de MySQL ens informa de que s'ha creat una campanya per a salvar la llicència GPL del MySQL.

La compra de SUN per Oracle, pot fer perillar el desenvolupament del MySQL, pedra angular de la InterNet que coneixem avui en dia.

La majoria d'aplicacions a InterNet còrren en un clàssic LAMP: Linux, Apache, MySQL i PHP, i un canvi en el model de llicència de MySQL seria catastròfic per al desenvolupament de la xarxa, doncs el fet de poder tenir un entorn de programació totalment OpenSource aporta un munt d'aplicacions al consum de la xarxa de xarxes.

És important donar suport a aquesta petició abans del 4 de gener del 2010:


dimecres, 30 de desembre del 2009

Google SideWiki

A principis de desembre d'enguany Google ha creat el plugin SideWiki per a Google Chrome, funcional també en el Chromium, la versió per a Linux del navegador de Google.

La SideWiki és una eina que permet contribuir informació d'ajuda a qualsevol plana web d'InterNet.



A més de poder fer anotacions per a una plana web o una part de la plana web, podem llegir les anotacions que altres persones han realitzat en el Google SideWiki, i propagar aquests comentaris en blocs Blogger i altres xarxes socials com Facebook, twitter i perfils Google.

dissabte, 12 de desembre del 2009

Importar dades CSV a MySQL

Per a importar un arxiu de dades separades per comes (CSV) a una taula MySQL, emprarem la instrucció LOAD DATA INFILE:

load data local infile 'categories.csv'
into table categories
fields terminated by ','
enclosed by '"'
lines terminated by "\n"
(catCodi, catDesc);


Tots els fulls de càlcul permeten la exportació a CSV, pel que amb aquesta senzilla instrucció podrem importar ràpidament dades a MySQL.

dimecres, 2 de desembre del 2009

VirtualBox 3.1 en català

SoftCatalà ha alliberat la traducció al català de la darrera versió del VirtualBox a l'endemà de de sortir la versió ianki.

El Sun xVM VirtualBox (també conegut simplement com a VirtualBox) és un programa que permet la virtualització de sistemes operatius. Per virtualització de sistema operatiu s'entén la instal·lació d'un sistema operatiu dins d'un altre emulant un maquinari virtual. D'aquest manera podem, per exemple, tenir un Windows on treballem normalment (sistema amfitrió) i instal·lar un Linux virtual (sistema hoste) com si fos una aplicació més, tot i que el rendiment no és el mateix que si instal·lessim directament el Linux.

El VirtualBox es pot instal·lar sobre Windows, Linux, Mac OS X, OS/2 Warp, i Solaris. Com a sistemes hostes permet Windows, Linux, FreeBSD, OpenBSD, OS/2 Warp, i Solaris.

La versió que us oferim n'és la gratuïta per a un ús personal i d'avaluació. Per a entorns empresarials cal pagar una llicència o descarregar-se la versió lliure. Per a més informació i descàrrega en tots els sistemes operatius visiteu el seu lloc web.

dilluns, 23 de novembre del 2009

Extensions per a Gimp

Instal·lant el paquet gimp-plugin-registry disposarem d'una sèrie de plugins força interessants per al Gimp:
sudo apt-get install gimp-plugin-registry

La imatge es correspon al Save for Web.

Destaquem

* Contact Sheet:
Genera un full de contacte de les imatges d'una carpeta.

* David's Batch Processor (1.1.7):
Un senzill processador d'imatges desatès (batch) per al Gimp.

* Fix-CA (3.0.2):
Corregeix aberracions cromàtiques en fotografies.

* Liquid Rescale (0.4.0-4):
Millora el reescalat d'imatges.

* Save for Web (0.28.5):
Permet experimentar en diferents formats com quedarà l'arxiu i visualitzar prèviament el resultat i conèixer la mida de l'arxiu resultant.

* Separate+ (0.5.1):
Separació de colors RGB i exportació a CMYK.

* Wavelet Denoise (0.2-beta):
Reducció de soroll en imatges.

La relació de plugins la trobareu a http://packages.ubuntu.com/jaunty/gimp-plugin-registry

divendres, 20 de novembre del 2009

Salts de pàgina amb CSS

En una plana HTML, si volem un salt de pàgina en una posició concreta del document, afegirem l'estil CSS page-break-before:
h1 {
font-size: 3em;
page-break-before: always;
}

Aquest estil indica al navegador que quan s'imprimeixi la plana, sempre que trobi una capçalera principal H1, executi un salt de pàgina abans d'imprimir el contingut d'aquest.

Per sol·lucionar el problema de tenir la primera plana en blanc per un salt de pàgina provocat per la primera capçalera del document, emprarem la pseudo-classe :first-child
h1:first-child {
page-break-before: auto;
}


Establint el valor per omissió que te la propietat page-break-before per al primer element H1 del document.

dissabte, 7 de novembre del 2009

corretge.com@googlewave.com

Corretgé.com ja està a la Google Wave!





I aquí el video extens:


És una eina que promet molt, el futur ja és aquí.

Disposem encara d'algunes invitacions de comptes Google Wave per als nostres clients, demaneu-la a:

corretge.com@googlewave.com

dijous, 5 de novembre del 2009

Open I/O per a RPGLE a l'AS/400

Al darrer RPG & DB2 Summit, es va comentar bastant una novetat força interesant, l'Open I/O for RPG.



Sembla ser que la V7R1, que sortirà a la primavera del 2010, ja inclou aquesta especificació que permet als programes escrits en RPG accedir a arxius plans directament, sense haver de fer tot el muntatge d'API's de l'IFS.

Segons hem llegit, aquesta opció també s'afegirà a l'actual V6R1.

Una modernització de l'RPG que serà benvinguda per la comunitat de desenvolupadors d'AS/400.

dilluns, 19 d’octubre del 2009

IBM Systems Magazine gratuït

Llegint informació sobre la darrera RPG & DB2 Summit, on ha participat el nostre estimat Scott Klement, he vist un anunci de subscripció gratuïta a la revista IBM Systems Magazine, amb una suculenta URL:

http://www.ibmsystemsmagpowersystemsibmidigital.com

I registrant-se, podem accedir als continguts d'aquest interessant magazine:

dimecres, 7 d’octubre del 2009

DNS resource records

A DNS zone database is made up of a collection of resource records. Each resource record specifies information about a particular object. For example, address mapping (A) records map a host name to an IP address, and reverse-lookup pointer (PTR) records map an IP address to a host name. The server uses these records to answer queries for hosts in its zone. For more information, use the table to view DNS resource records.

Resource record Abbreviation Description
Address Mapping records A The A record specifies the IP address of this host. A records are used to resolve a query for the IP address of a specific domain name. This record type is defined in RFC 1035.
Andrew File System Database records AFSDB The AFSDB record specifies the AFS or DCE address of the object. AFSDB records are used like A records to map a domain name to its AFSDB address; or to map from the domain name of a cell to authenticated name servers for that cell. This record type is defined in RFC 1183.
Canonical Name records CNAME The CNAME record specifies the actual domain name of this object. When DNS queries an aliased name and finds a CNAME record pointing to the canonical name, it then queries that canonical domain name. This record type is defined in RFC 1035.
Host Information records HINFO The HINFO record specifies general information about a host machine. Standard CPU and operating system names are defined in the Assigned Numbers RFC 1700. However, use of the standard numbers is not required. This record type is defined in RFC 1035.
Integrated Services Digital Network records ISDN The ISDN record specifies the address of this object. This record maps a host name to the ISDN address. They are used only in ISDN networks. This record type is defined in RFC 1183.
IP Version 6 Address records AAAA The AAAA record specifies the 128-bit address of a host. AAAA records are used like A records to map a host name to its IP address. Use AAAA records to support IP version 6 addresses, which do not fit the standard A record format. This record type is defined in RFC 1886.
Location records LOC The LOC record specifies the physical location of network components. These records could be used by applications to evaluate network efficiency or map the physical network. This record type is defined in RFC 1876.
Mail Exchanger records MX The MX records defines a mail exchanger host for mail sent to this domain. These records are used by SMTP (Simple Mail Transfer Protocol) to locate hosts that will process or forward mail for this domain, along with preference values for each mail exchanger host. Each mail exchanger host must have a corresponding host address (A) records in a valid zone. This record type is defined in RFC 1035.
Mail Group records MG The MG records specifies the mail group domain name. This record type is defined in RFC 1035.
Mailbox records MB The MB records specifies the host domain name which contains the mailbox for this object. Mail sent to the domain will be directed to the host specified in the MB record. This record type is defined in RFC 1035.
Mailbox Information records MINFO The MINFO records specifies the mailbox that should receive messages or errors for this object. The MINFO record is more commonly used for mailing lists than for a single mailbox. This record type is defined in RFC 1035.
Mailbox Rename records MR The MR records specifies a new domain name for a mailbox. Use the MR record as a forwarding entry for a user who has moved to a different mailbox. This record type is defined in RFC 1035.
Name Server records NS The NS record specifies an authoritative name server for this host. This record type is defined in RFC 1035.
Network Service Access Protocol records NSAP The NSAP record specifies the address of a NSAP resource. NSAP records are used to map domain names to NSAP addresses. This record type is defined in RFC 1706.
Public Key records KEY The KEY record specifies a public key that is associated with a DNS name. The key could be for a zone, a user, or a host. This record type is defined in RFC 2065.
Responsible Person records RP The RP record specifies the internet mail address and description of the person responsible for this zone or host. This record type is defined in RFC 1183.
Reverse-lookup Pointer records PTR The PTR record specifies the domain name of a host for which you want a PTR record defined. PTR records allow a host name lookup, given an IP address. This record type is defined in RFC 1035.
Route Through records RT The RT record specifies a host domain name that can act as a forwarder of IP packets for this host. This record type is defined in RFC 1183.
Start of Authority records SOA The SOA record specifies that this server is authoritative for this zone. An authoritative server is the best source for data within a zone. The SOA record contains general information about the zone and reload rules for secondary servers. There can be only one SOA record per zone. This record type is defined in RFC 1035.
Text records TXT The TXT record specifies multiple strings of text, up to 255 characters long each, to be associated with a domain name. TXT records may be used along with responsible person (RP) records to provide information about who is responsible for a zone. This record type is defined in RFC 1035.
TXT records are used by iSeries DHCP for dynamic updates. The DHCP server writes an associated TXT record for each PTR and A record update done by the DHCP server. DHCP records will have a prefix of AS400DHCP:.
Well-Known Services records WKS The WKS record specifies the well-known services supported by the object. Most commonly, WKS records indicate whether tcp or udp or both protocols are supported for this address. This record type is defined in RFC 1035.
X.400 Address Mapping records PX The PX records is a pointer to X.400/RFC 822 mapping information. This record type is defined in RFC 1664.
X25 Address Mapping records X25 The X25 record specifies the address of an X25 resource. This record maps a host name to the PSDN address. They are used only in X25 networks. This record type is defined in RFC 1183.


Extret del manual d'IBM sobre DNS.

dimarts, 6 d’octubre del 2009

Com pujar un SAVF del PC a l'AS/400

A l'AS/400 crearem l'objecte de tipus SAVF a la biblioteca que ens interesi, en aquest cas CORRETGE1.
CRTSAVF CORRETGE1/ITKSRC
Al PC iniciarem una connexió FTP amb l'AS/400
ftp as400.corretge.ct
Un cop loginejats, indicarem que ens volem moure amb el format de noms complert teclejant
quote site namefmt 1
quote site listfmt 1

Si ho fem desde FileZilla, a l'apartat de log premem botó dret del ratolí Introdueix una ordre específica... i introduim les ordres sense quote.

I ens situarem a la biblioteca on hem creat els SAVF.
cd /qsys.lib/corretge1.lib
Ara ens situarem a la carpeta del PC on tenim els arxius
lcd /home/usuari/arxius
Podem certificar que estem on toca amb la comanda pwd.
Indiquem al servidor FTP que enviarem dades en format binary fent
bin
i pujarem l'arxiu
put itksrc.savf
Un cop pujat, finalitzarem la connexió ftp amb ç
quite

A l'AS/400 visualitzarem informació del SAVF, sobretot esbrinarem com s'ha creat si amb SAVOBJ o amb SAVLIB fent
DSPSAVF CORRETGE1/ITKSRC

dilluns, 28 de setembre del 2009

Per què no Windows?

Extret d'una interessant guia de migració a Linux.

Windows i Office funcionen bé. Per què preocupar-me'n?

Restriccions

Restriccions Una còpia legal de Windows és cara, però què us donen? Windows i Office tenen llicència d'ús, no es venen.

Per utilitzar aquests productes, hem d'acceptar diverses restriccions. En la majoria de llicències de Windows, no podeu aprofitar el programari quan canvieu d'ordinador. Fins i tot, us podeu trobar que no podeu agafar el vostre programari i anar a donar un tomb. Qui pot fer funcionar el programari? En quin ordinador? Què podeu fer amb ell? La llista de restriccions és llarga i alguns punts són indignants.

Llegiu el nostre article complet: Restriccions

Que me'n dius de l'elecció?

Que me'n dius de l'elecció?El programari hauria de venir sense panys pel mig.

Per què els formats de l'Office són tan difícils d'exportar? Per què els formats canvien constantment? Per què hi ha programes que no podeu desinstal·lar? Probablement, si cerqueu la llibertat d'elecció, els productes Microsoft no estan fets per a vosaltres.

Llegiu el nostre article complet: Que me'n dius de l'elecció?

Sense codi font

Sense codi fontEl codi font (els detalls del funcionament d'un programa) de Windows i del programari privatiu estan ocults. En aquest sentit, ningú no té permís legal per a entendre com funcionen aquests programes.

Si no podeu veure el codi font, no podeu contractar algú perquè faci les correccions pertinents, modifiqui o avaluï la vostra seguretat amb aquell programa.

I, sabeu què? Amb el programari lliure, els virus i programes espia (spyware) són ineficaços. Per tant, ningú us vendrà un suplement de seguretat. Les empreses que comercialitzen amb programari de seguretat, en la qual Microsoft és ara un jugador important, prefereixen que utilitzeu Windows.

Llegiu el nostre article complet: Sense codi font

Treballeu per a una societat lliure

Treballeu per a una societat lliureUna societat lliure necessita programari lliure. Necessita la llibertat per inspeccionar, aprendre i modificar el programari segons convingui.

Els ordinadors s'utilitzen per compartir idees, cultura i informació. Sense aquestes llibertats en el programari, ens arrisquem a perdre el control sobre el que compartim.

Això ja ha començat a passar avui en dia. Amb tecnologies que molesten i retallen les nostres llibertats com el DRM (Gestor de Restriccions Digitals), o la Computació de Confiança, ens amenacen a deixar de ser partícips de la cultura.

Si heu d'abandonar les vostres llibertats a l'hora d'utilitzar el programari, probablement no us agradi tot això.

Llegiu el nostre article complet: Treballeu per a una societat lliure

Molta gent troba que Windows, que no deixa de ser una peça decent de programari, treu tants drets a l'usuari, que no val la pena utilitzar-lo. Mac OS no és pas millor.

Si trobeu atractiu el programari lliure, podem suggerir-vos Migrar a Linux.



dijous, 24 de setembre del 2009

MySQL WorkBench 5.1.18 per a Ubuntu

MySQL WorkBench és un assistent al disseny de bases de dades MySQL. El podeu descarregar des d'ací.És força complert, i molt útil el poder fer enginyeria inversa i a partir d'una base de dades ja consolidada recuperar la definició al banc de treball.

Es pot fer el seguiment de la versió Alpha via Twitter.

dilluns, 21 de setembre del 2009

Serveis de Corretgé.com

Relació de serveis oferts per Corretgé.com


Estratègia InterNet
- Registre de dominis .com, .cat, .org, .net, etc...
- Lloguer d'espai web.
- Lloguer/Administració de servidors dedicats o virtuals.
- Integració del seu domini amb Google Apps (Net Access)
- Possicionament Google.
- Visibilitat a InterNet sense costos d'infraestructura.
- Instal·lació i manteniment de Tallafocs.
- Instal·lació i manteniment de VPN's
- Formació Linux Server i Desktop.

Ordinadors, perifèrics i consumibles
- Venda d'ordinadors portàtils, torres i servidors
- Reparació d'ordinadors.
- Assemblat d'ordinados fets a mida (Atenea I)
- Venda d'impressores, escaners, etc...
- Venda de tintes d'impressora, tonners, etc...
- Venda de peces i recanvis informàtics.
- Venda de peces per a Modding (Tunning Informàtic)
- Configuració de Windows, Mac, Linux i AS/400.

Programació i anàlisi de processos
- Anàlisi dels processos de negoci i creació de programes informàtics que millorin la seva competitivitat.
- Gestor de continguts empresarial amb sortida parcial a InterNet.
- Creació d'ExtraNets i IntraNets.
- Programació a mida en PHP, RPGLE i .NET de tot tipus d'aplicacions.
- Integració de dades multiplataforma: Windows, Linux, Mac, AS/400: XML, JSON, CVS, ODBC, JDBC, etc...
- Especialistes en programació d'aplicacions d'escriptori en entorn web client/servidor.
- Especialistes en WebServices: SOAP, AJAX, ZAJAJ, etc...
- Especialistes en reporting automàtic enviant PDF's generats dinàmicament per correu electrònic.
- Gestió de fluxos de treball.
- Creació de guies d'estil i frameworks per a departaments informàtics.

dimarts, 15 de setembre del 2009

Establint la zona horària servidor Ubuntu

Sovint al llogar un servidor ens trobem que generalment estan configurats amb horari UTC. Hi ha molts avantatges d'emprar aquest horari, sobretot el fet que sempre es manté, no te canvis d'horari a l'estiu ni a l'hiven.

Amb tot, si volem que el nostre servidor es regeixi per l'horari del país, executarem
sudo dpkg-reconfigure tzdata



Indicarem el continent on estem i el país per tal de que així ens assigni la data que toca:
dt set 15 08:44:02 CEST 2009

CEST vol dir Central European Summer Time.

dimecres, 9 de setembre del 2009

Seguretat (?) en Joomla. Part III

Un bon lloc de referència per a estar al dia de les vulnerabilitats de Joomla que es van descobrint és Secunia.

La recerca concreta a Joomla ens reporta una sèrie d'incidències molt ben catalogades.

Moltes vulnerabilitats, com la trobada el 7 de setembre d'enguany que es correspon a Joomlub, són de components Joomla, no del nucli pròpiament dit, pel que resulta imprescindible fer una recerca dels problemes coneguts de cada mòdul abans que la seva instal·lació pugui comprometre tot el nostre sistema.



Observem que el proveïdor d'aquest plugin de Joomla ja ha corretgit l'error ràpidament, i actualitzant-se a la darrera versió ja no serem vulnerables.

Relació de les incidències de Joomla i d'alguns dels seus components al web de Secunia:

Joomla! 1.x

Acajoom GPL 3.x (component for Joomla!)
Acajoom PRO 1.x (component for Joomla)
Account Expiration Control 0.x (component for Joomla)
AKReservations 1.x (component for Joomla)
Alberghi 2.x (component for Joomla)
Almond Classifieds 7.x (component for Joomla)
Archaic Binary 1.x (component for Joomla)
astatsPRO 1.x (component for Joomla)
BazaarBuilder Shopping Cart 5.x (component for Joomla!)
Bible Study 6.x (component for Joomla)
BookFlip 2.x (component for Joomla)
Brightcode Weblinks (component for Joomla)
BSQ Sitestats 1.x (component for Joomla)
BSQ Sitestats 2.x (component for Joomla)
Colophon 1.x (component for Joomla)
Community Builder 1.x (component for Joomla)
com_hashcash 1.x (component for Joomla)
Custom QuickIcons 1.x (component for Joomla)
Custompages 1.x (component for Joomla)
D4J eZine (Component for Joomla) 2.x
Dada Mail Manager 2.x (component for Joomla)
DatsoGallery 1.x (component for Joomla)
DigiFolio 1.x (component for Joomla)
DigiStore 1.x (component for Joomla!)
DS-Syndicate 1.x (component for Joomla)
DT Register 2.x (component for Joomla)
EasyBook 1.x (component for Joomla)
Eventing 1.x (component for Joomla!)
eWriting 1.x (component for Joomla)
EXP Shop 1.x (component for Joomla)
Fantasy Tournament 2009.1.5 (component for Joomla)
Flash Image Gallery 1.x (component for Joomla)
Flash Magazine Deluxe (component for Joomla!)
Flash Tree Gallery 1.x (component for Joomla!)
GameQ 4.x (component for Joomla)
Gary's Cookbook 2.x (component for Joomla)
gigCalendar 1.x (component for Joomla!)
Hotel Booking System 1.x (component for Joomla)
hwdVideoShare (component for Joomla) 1.x
IDoBlog 1.x (component for Joomla)
Ignite Gallery 0.x (component for Joomla)
iJoomla RSS Feeder 1.x (component for Joomla!)
iJoomla RSS Feeder 2.x (component for Joomla!)
ionFiles 4.x (component for Joomla)
IXXO Cart 3.x (component for Joomla)
JA Showcase 1.x (component for Joomla)
JCE Admin Component 1.x (component for Joomla)
JD-Wiki 1.x (component for Joomla)
JIM 1.x (component for Joomla)
Jobline 1.x (component for Joomla)
Jom Comment 2.x (component for Joomla)
Joomla!12Pictures 1.x (component for Joomla)
Joomla!FlashFun 1.x (component for Joomla)
Joomlaboard 1.x (component for Joomla)
JoomlaDate 1.x (component for Joomla)
joomlaradio 5.x (component for Joomla)
joomlaXplorer 1.x (component for Joomla)
Joomlub (component for Joomla)
JoomRadio 2.x (component for Joomla)
Joovideo 1.x (component for Joomla)
JotLoader 1.x (component for Joomla)
Jumi 2.x (extensions for Joomla)
KBase 1.x (component for Joomla)
Kunena 1.x (component for Joomla)
Letterman 1.x (component for Joomla)
Letterman Subscriber Module 1.x (for Joomla)
Live Chat 1.x (component for Joomla)
Live Ticker 1.x (component for Joomla)
Mad4Joomla Mailforms 1.x (component for Joomla)
McQuiz 0.x (component for Joomla)
mDigg (component for Joomla)
mediaslide 0.x (component for Joomla)
Messaging 1.x (component for Joomla)
MisterEstate 1.x (component for Joomla!)
MooFAQ 1.x (component for Joomla!)
MyContent 1.x (component for Joomla)
nBill 1.x (component for Joomla)
NeoRecruit 1.x (component for Joomla)
NeoReferences 1.x (component for Joomla)
Nice Talk 0.x (component for Joomla)
OwnBiblio 1.x (component for Joomla)
Panoramic Picture Viewer 1.x (component for Joomla)
PaxGallery 0.x (component for Joomla)
perForms 1.x (Component for Mambo / Joomla)
PinMe! 2.x (component for Joomla)
PollXT 1.x (component for Joomla)
PrayerCenter Component 1.x (component for Joomla)
Pro Desk 1.x (component for Joomla)
PU Arcade 2.x (component for Joomla)
Quiz 0.x (component for Joomla)
Quran 1.x (component for Joomla)
Rapid Recipe 1.x (component for Joomla)
RD-Autos 1.x (component for Joomla!)
rekry!Joom 1.x (component for Joomla)
Restaurante 1.x (component for Joomla)
RS-Monials 1.x (component for Joomla)
RWCards 3.x (component for Joomla)
Search and Archive 2.x (component for Joomla!)
Security Images 3.x (component for Joomla)
Simple Shop Galore 3.x (component for Joomla)
SimpleFAQ 2.x (component for Joomla)
UHP 0.x (component for Joomla)
UIajaxIM 1.x (component for Joomla)
VirtueMart Google Base 1.x (component for Joomla)
VirtueMart Joomla! eCommerce Edition 1.x
Volunteer Management System 2.x (component for Joomla)
WebAmoeba Ticket System 2.x (component for Joomla!)
Webring 1.x (component for Joomla)
WMT Portfolio 1.x (component for Joomla)
yvComment 1.x (component for Joomla)

Evidentment la majoria de llocs no necessiten tenir instal·lats tots els components de Joomla, reduint així la superfície de risc. El que si que cal tenir present és que algú tècnicament capacitat haurà de supervisar regularment una instal·lació d'aquestes característiques, aplicant les actualitzacions de seguretat del nucli Joomla i dels components emprats.

dimarts, 8 de setembre del 2009

Seguretat (?) en Joomla. Part II

En aquest post investigarem una eina que escaneja 466 vulnerabilitats conegudes del Joomla. Aquesta eina es va actualitzant a mesura que es coneixen noves vulnerabilitats.

Es tracta del OWASP Joomla! Vulnerability Scanner.

Crearem un compte nou amb un usuari sense cap permís excepte a la seva pròpia carpeta /home. Aquestes eines de seguretat són molt interessants, però mai podem permetre que puguin comprometre el nostre sistema.

Certificarem que estem a la darrera versió del WWW/Mechanize.pm fent
sudo apt-get install libtest-www-mechanize-perl


Descomprimim l'arxiu a una carpeta d'aquest usuari i el fem executable
chmod u+x joomscan.pl

El programa ens avisa de que sobretot només ho fem servir en servidors nostres, així que executant
./joomscan -u www.elnostrejoomla.cat
iniciarem l'anàlisi de vulnerabilitats.

divendres, 4 de setembre del 2009

Xulleta de Blender

Blender és un programa de disseny 3D Open Source, servit des del servei de paqueteria standard d'Ubuntu.

En aquest enllaç obtindreu una molt útil xulleta de les mil comandes que te Blender.

Realment és una eina molt potent, i en mitja tarda podem aconseguir resultats espectaculars:

dijous, 3 de setembre del 2009

Seguretat (?) en Joomla. Part I


Joomla és un dels gestors de contingut Open Source més emprats actualment. L'origen el trobarem en el Mambo i realment és un sistema molt còmode de fer servir i gestionar.

Si mai decidim d'instal·lar un sistema d'aquest tipus sense coneixements informàtics ni de seguretat, haurem de tenir present de destinar una tarda al mes instal·lant els paquets d'actualització de seguretat que es van generant.

Sovint nouvinguts al món de la informàtica serveixen als seus clients aquest aplicatiu rebentant preus i sense opció de manteniment... i al final, com sempre, les coses massa barates surten cares.

Aquest és el primer d'una sèrie d'articles sobre seguretat en Joomla, i us oferirem una sèrie d'eines per esbrinar si el vostre portal està correctament configurat.

Sense entrar en la infinitat d'scripts que existeixen per aquest propòsit, avui parlarem d'una eina on-line, JoomlaScan què un cop acceptat el certificat ens permetrà veure les vulnerabilitats del lloc Joomla scanejat.

Per exemple, el web de la UPN (Unión del Pueblo Navarro) presenta 4 de les 165 vulnerabilitats conegudes d'aquest gestor de continguts. De fet, amb una n'hi ha prou. El web de la UPN fa molt de temps que està deixat de la ma de Déu i no actualitza Joomla :-)

El servei on-line és de pagament, la seva seguretat bé s'ho val!

Per aquests tests farem servir webs el més llunyanes possibles, no sigui que algú es molesti ;-)

dissabte, 29 d’agost del 2009

Aplicacions multiidioma amb valors de programa.

A Corretgé.com fa temps que vam apostar per a la utilització de gettext per a la internacionalització de les nostres aplicacions.

La facilitat a l'hora de distribuir les cadenes de l'aplicació a traductors, amb arxius .po que personal no informàtic pot traduir, ha estat determinant.

El mòdul Zend_Translate del Zend Framework ha simplificat moltíssim la configuració del sistema multiidioma, llegint el arxius .mo, la compilació dels .po creats amb poEdit, sense haver d'instal·lar rés al sistema, i el que és més important, sense haver de respectar l'arbre de carpetes que requeria el mòdul gettext de php.

Amb la següent tècnica, podrem a més a més indicar valors variables a les cadenes a traduir:

/**
* certifiquem en fase de construcció que el control existeixi.
*/
if (!method_exists($this, $this->control))
{
throw new UbqException(sprintf($this->strl->_("*UBQ0002 - No existeix el controlador %s."), $this->control));
}


En aquest cas concret, la classe Zend_Transalte està instanciada a la propietat strl de la classe mestre de l'aplicació. El mètode gettext es pot cridar com a gettext o com a _. El poEdit recupera les cadenes automàticament emprant els dos mètodes.

La funció sprintf és l'encarregada de les substitucions, actua com pritf però retornant la cadena enlloc de posar-la al buffer de sortida.

Els paràmetres de sprintf, en aquest cas la propietat control, substitueixen els valors de substitució, en aquest cas %s.

Així, la cadena quedarà traduida d'aquesta manera dins l'arxiu .po :

#: app/app.abstract.php:65
#, php-format
msgid "*UBQ0002 - No existeix el controlador %s."
msgstr "*UBQ0002 - Controller %s does not exist."


gettext té una gestió de plurals per als valors de substitució numèrics molt complerta i amb suport amb plurals complexos com els de les llengües eslaves.

divendres, 28 d’agost del 2009

Instal·lant llibreries per a projectes web

Per a optimtizar l'espai en disc dels servidors, instal·larem totes les llibreries PHP en una carpeta única anomenada NetStudio.


mkdir /var/www/NetStudio


I procedirem a instal·lar diferents llibreries d'ús comú:

- crtphpfwk. Framework que modela les etiquetes HTML en objectes PHP.

svn co http://crtphpfwk.googlecode.com/svn/branches/2.0 crtphpfwk


- zajaj. Crida a mètodes de classes PHP desde JavaScript.

svn co http://zajaj.googlecode.com/svn/trunk zajaj


- jQuery. Llibreria de productivitat JavaScript.

svn co http://jqueryjs.googlecode.com/svn/trunk jquery-svn
cd /var/www/NetStudio/jquery-svn/jquery
make jquery
make pack


- jQuery-UI. Llibreria User Interface de jQuery

svn co http://jquery-ui.googlecode.com/svn/tags/latest jqueryUI-svn



- jsTree. Llibreria jQuery tree plugin (afegit maig del 2010)

svn checkout http://jstree.googlecode.com/svn/trunk/ jstree-svn



Tots els sevidors virtuals que emprin jQuery tindran aquesta instrucció

Alias /jquery /var/www/NetStudio/jquery-svn
Alias /jqueryUI /var/www/NetStudio/jqueryUI-svn
Alias /jstree /var/www/NetStudio/jstree-svn



- ZendFramework. Framework de Zend.

svn co http://framework.zend.com/svn/framework/standard/trunk ZendFramework


Afegirem aquest path al php.ini

include_path = ".:/var/www/NetStudio/ZendFramework/library"

Microsfot està destrossant la seva llibertat

Amb el llançament de Windows 7 a l'octubre, Microsoft ven la nova versió del seu sistema operatiu amb una combinació d'amenaces i por.

Amenacen amb deixar de donar suport a les versions anteriors de Windows a llarg termini, i perquè el seu sistema és propietat, en lloc de programari lliure com GNU / Linux, es depèn de Microsoft per a proporcionar actualitzacions de seguretat i correccions d'errors.

Amb l'amenaça de retirar el seu suport, tracten amb mà dura els seus usuaris per tal que comprin noves versions del seu programari, fins i tot quan no els necessiteu, provocant conseqüències negatives a la seva capacitat per operar, abusant un cop més de la seva posició de monopoli, i de manera explícita induir a la dependència amb proveïdors.

Com els seus plans per a incloure les restriccions de DRM amb Windows Vista, els continus atacs de Microsoft contra la seva seguretat, privacitat i la llibertat no són cap error. Microsoft té una llarga història de manipulació dels fabricants d'ordinadors en la instal·lació dels seus productes en els equips que vostè compra.

Vostè mereix poder cooperar oberta i lliurement amb altra gent que utilitza programari. Es mereix poder aprendre com funciona el programari i ensenyar-ho als seus estudiants. es mereix poder contractar al seu programador preferit per arreglar-ho quan falla.

Vostè es mereix programari lliure.

dijous, 6 d’agost del 2009

Habilitant compressió GZip per a arxius servits per l'Apache

Seguint les recomanacions de Google per a la millora de la velocitat de càrrega de les planes, habilitarem al nostre servidor l'opció de compressió d'arxius amb el mod_deflate.

sudo a2enmod deflate

i editarem l'arxiu /etc/apache2/mods-available/deflate.conf per afegir els arxius JavaScript i CSS:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
</IfModule>


Reiniciem l'Apache i ja ho tindrem activat:

dijous, 30 de juliol del 2009

Compromeses les contrasenyes de Perl Monks

En Toni Hermoso Pulido ha informat d'una notícia preocupant, uns hackers han entrat com a root a un dels servidors de Perl Monks i han recuperat totes les contrasenyes de tots els usuaris, ja que estaven guardades en text pla!

Resulta increhible que a aquestes alçades algú encara guardi les contrasenyes dels usuaris en text pla, o en sistemes d'encriptació reversible, que un cop coneguda la clau mestre, seria el mateix.

D'entrada desconfieu dels llocs on al demanar la contrasenya oblidada, us la diuen, senyal de que és reversible o no encriptada.

Aquest agost mirarem de fer una repassada a temes de seguretat, moltes empreses no contemplen el manteniment de les aplicacions en xarxa i aquest entorn és massa virulent com per a deixar els sistemes i les aplicacions abandonades.

dimarts, 21 de juliol del 2009

Neither 'subtree_check' or 'no_subtree_check' specified for export

Si fem servir el sistema de compartició d'arxius NFS (Network File System) observarem que d'ençà la versió 1.0 de nfs-utils un valor per omissió ha canviat.

Neither 'subtree_check' or 'no_subtree_check' specified for export "n.n.n.0/24:/var/vm". Assuming default behaviour ('no_subtree_check'). NOTE: this default has changed since nfs-utils version 1.0.x

subtree_check
Verify requested file is in exported tree
This is the default. Every file request is checked to make sure that the requested file is in an exported subdirectory. If this option is turned off, the only verification is that the file is in an exported filesystem.
no_subtree_check Negation of subtree_check
Occasionally, subtree checking can produce problems when a requested file is renamed while the client has the file open. If many such situations are anticipated, it might be better to set no_subtree_check. One such situation might be the export of the /home filesystem. Most other situations are best handed with subtree_check.



Per evitar tornar a veure aquest missatge d'error a l'arrancada, editarem /etc/exports i afegirem el paràmetre no_subtree_check a cada carpeta exportada.

dijous, 16 de juliol del 2009

Configurant un DHCP Server

Per norma general, els routers que ens instal·len els proveïdors d'InterNet ja duen un servidor DHCP (Dynamic Host Configuration Protocol) integrat. Generalment fan el que necessitem, però no sempre...

En aquest document tenim les pases per a la instal·lació d'un servidor DHCP:

Primer de tot instal·larem el paquet dhcp3-server
sudo apt-get install dhcp3-server

La inicialització del servidor petarà, doncs no hi ha definida cap interfície de xarxa associada.

Editem l'arxiu /etc/default/dhcp3-server i indiquem la interfície de xarxa que escoltarà les peticions:
INTERFACES="eth1"

Editem l'arxiu /etc/dhcp3/dhcpd.conf on configurem realment el servidor DHCP buscant les seccions:

# option definitions common to all supported networks...
option domain-name "elmeudomini.ct";
option domain-name-servers 80.58.61.250, 80.58.61.254;


El servidors de noms seran els que trobarem si fem cat /etc/resolv.conf en un ordinador correctament configurat dins la mateixa xarxa.

Els rangs d'IP són adaptables a cada xarxa:
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.128 192.168.1.192;
option domain-name-servers 80.58.61.250, 80.58.61.254;
option domain-name "elmeudomini.ct";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}


Si volem assignar una IP fixe a una tarja de xarxa en concret, crearem una entrada com aquesta, indicant la MAC Address de la tarja de xarxa i la IP que volem assignar, fora del rang automàtic.
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host elmeuordinador {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.1.33;
}


Iniciem el servei, i ja tindrem el servidor de DHCP instal·lat en un dels servidors Ubuntu de la nostra xarxa.

sudo /etc/init.d/dhcp3-server start

divendres, 10 de juliol del 2009

Editant NAT en router Cisco 827

El router Cisco 827 és una gran i versatil màquina. Amb les següents passes configurarem la taula NAT (Network Address Translate) des de terminal.
Per a accedir a les comandes potents cal estar en modus privilegiat:
telnet xx.xx.xx.xx (IP local del router)
Username: admin
Password: *************
enable
Password: *************

Si fem ? per a visualitzar totes les comandes disponibles, veurem que la llista és més extensa.

Per a visualitzar la configuració actual farem
show configuration
I ens fixarem en les línies que diuen
ip nat inside source static tcp ###IP ###PORT interface ###IFACE ###PORT

Entrarem en modus configuració ATENCIÓ tot el que indiquem són paràmetres de configuració inmediat, així que s'ha d'anar amb compte.
configure terminal
Indicarem la nova translació que s'ha de fer:
ip nat inside source static tcp ###IP ###PORTintern interface ###IFACE ###PORTextern
###IP és la IPv4 local de la màquina que gestionarà el trànsit.
###PORTintern és el port que gestionarà
###IFACE és el nom de la interficie de xarxa exterior, generalment ATM0.1
###PORTexter és el port per on rebem la comunicació.

Fem les proves de que realment és el que volem i desem la configuració
end
copy running-config startup-config


Si no volem fer els canvis permanents farem
write memory

I visualitzarem la configuració amb
show running-config

En cas de que volguem el·liminar alguna entrada, la repetirem amb un no al davant.

dimarts, 7 de juliol del 2009

Problemes amb tecles en VMware Web Console i Ubuntu 9.04

Si ens trobem que el VMware Web Console no respon adequadament al teclat, segons es comenta en aquest enllaç, a partir d'Ubunut 8.10 s'empra Xorg 1.4, que empra un nou driver evdev que gestiona els dispositus, també el teclat. Aquest driver fa que el teclat envii diferents codis, per exemple Re Pàg mostra una barra invertida \ !!!!

editarem l'arxiu de configuració ~/.vmware/config i afegirem

xkeymap.noKeycodeMap = "TRUE"
xkeymap.keycode.108 = 0x138


La darrera instrucció és per a la tecla AltGr, hem obtingut el codi amb l'aplicació xev.

Iniciar Skype a l'arrancada d'Ubuntu

Per arrencar l'Skype tant bon punt arrenquem el nostre escriptori a l'Ubuntu, anirem al menú Sistema / Preferències / Aplicacions d'inici i afegirem:

Nom: Skype

Ordre: skype

I premem afegir.

Podeu localitzar-nos a l'skype: corretge_com

dijous, 2 de juliol del 2009

Softcatalà presenta la traducció al català del navegador Firefox 3.5

Softcatalà, conjuntament amb la comunitat de Mozilla, presenta la traducció al català de la nova versió 3.5 del Firefox, el mundialment reconegut navegador web.

La publicació d'aquesta nova versió es realitza de forma simultània en més de 70 llengües, la qual cosa fa que sigui una de les aplicacions informàtiques amb més traduccions.

Algunes de les novetats més importants d'aquesta nova versió són:

  • Rendiment: El Firefox 3.5 inclou el TraceMonkey, un nou motor de Javascript que fa que sigui el doble de ràpid que el Firefox 3 i deu vegades més ràpid que el Firefox 2.
  • Formats multimèdia oberts: s'ofereix la primera integració nativa d'àudio i vídeo sense que calgui cap connector addicional, i gràcies a la tecnologia lliure Ogg. Això obre un nou panorama a la xarxa, on el Flash pot deixar de ser un element indispensable de les animacions i dels vídeos de reproducció habitual.
  • Mode de navegació privat: gràcies a aquesta característica, en qualsevol moment podem fer que la nostra navegació no deixi cap mena de rastre del nostre recorregut per la xarxa a l'ordinador on ens trobem.
  • Navegació amb geolocalització integrada: s'obre la porta a la creació d'aplicacions que responen d'acord amb la vostra ubicació, oferint-vos d'aquesta manera un contingut plenament personalitzat en funció del lloc on us trobeu. Alhora, aquesta funcionalitat roman a la vostra elecció en tot moment, per tal que pugui garantir-se la vostra privadesa.
  • Millor recuperació de les sessions: si sobtadament s'ha tancat el Firefox mentre navegàveu o hi escrivíeu, ara podeu recuperar les pestanyes i finestres individualment, permetent-ne excloure així aquelles que puguin ser problemàtiques.
  • Implementació de noves tecnologies web: tipus de lletra descarregables dels mateixos llocs web, millora en l'ús del CSS, gestió d'estructures de dades de Javascript (com ara JSON) més eficient, etc.

Podeu obtenir-ne més informació consultant una llista detallada de les característiques i les notes d'aquesta versió.

Paral·lelament, durant els darrers mesos han aparegut diferents complements que milloren àmpliament les capacitats d'interacció de l'usuari amb el navegador. Aquest és el cas del Personas, que permet ampliar el ventall d'aparences disponibles per a la nostra interfície, o bé l'Ubiquity, encara en fase experimental, que enllaça la xarxa al propi llenguatge natural.

Com en anteriors ocasions, i per tal de fer conèixer les innovacions darrere del llançament, hi haurà diferents actes festius arreu del món i també al nostre país (per confirmar a Cerdanyola del Vallès i a Barcelona).

Podeu baixar Firefox 3.5 en català per a Windows, GNU/Linux i MacOSX des del Rebost de Softcatalà.

Quant a Softcatalà

Softcatalà és una associació sense afany de lucre que treballa per la normalització de la llengua catalana en el sector informàtic relacionat amb Internet i les noves tecnologies, a partir de la traducció de programari lliure i de distribució gratuïta. Per a més informació sobre els programes que aquesta associació ha traduït al català, podeu consultar el seu lloc web a http://www.softcatala.org.

Enllaços

dimarts, 30 de juny del 2009

Alliberada la versió 5.3.0 de PHP

Finalment ha arribat la 5.3 de PHP! Hi havia rumors de que es podria aplaçar l'entrega al setembre, però finalment l'equip de desenvolupadors de PHP ha complert i l'ha alliberat a finals de juny, data en que es finalitzava la creació de tests del Quality Assurance Team.

Les característiques més destacables són:
  • Suport per a namescpaces. Això ens evitarà col·lisions de nomenclatura de classes i una millor organització de l'ambit de cada classe i les variables globals.
  • Funcions lambda.
  • Millores en el rendiment i la gestió de memòria.
  • Suport experimental per a Windows X64. Cada cop hi ha més empreses que empren PHP en entorns Windows, i PHP no pot dar l'esquena a aquesta realitat.
  • I moltes altres.
En aquest enllaç trobarem la llista d'incompatibilitats amb les versions anteriors, poques, però cal tenir-les en compte abans de fer la migració.

Ara falta esperar quant de temps trigarà Ubuntu en certificar aquesta versió i incloure-la a la paqueteria.

dilluns, 29 de juny del 2009

Inauguració nou despatx a Verges

El proper dissabte 4 de juliol, a les 17 hores, inaugurem el nou despatx de Serveis Informàtics Corretgé.com a Verges.

Tothom hi és convidat!

dilluns, 22 de juny del 2009

Visita a l'Internauta

El darrer dissabte 20 de juny vam visitar el programa d'en Vicent Partal l'Internauta amb la Mercè Molist i en Martí Crespo.

Va ser una tertulia força interessant i divertida, on vam explicar el llenguatge de programació PHP en general, i la PHP TestFest d'enguany en particular.

Podeu escoltar el programa en aquest podcast.

dimarts, 16 de juny del 2009

Llistar discos amb menys d'un 20% d'espai lliure

Amb el mandat df i l'ajuda de les Regular Expression obtindrem aquesta informació del sistema d'una tacada:

df -h | grep '[089][0-9]%'

Ens mostrarà els discos que estiguin entre un 80% i un 100% d'ocupació.

Si volem veure tots els discos no executarem la pipe de filtrat grep.

dilluns, 15 de juny del 2009

Instal·lació d'un entorn de desenvolupament PHP

Presentació a la PHP TestFest del 2009 sobre com instal·lar un entorn de desenvolupament PHP integral amb cost zero

dijous, 11 de juny del 2009

Arriba la PHP TestFest d'enguany

Es comença a sentir la remor de les tecles, la PHP TestFest 2009 és arribada.

El proper dissabte 13 de juny, a partir de les 10:30 a la Sala Polivalent de l'Ajuntament de Verges (Baix Empordà) comença la PHP TestFest d'enguany.

PHP és un llenguatge de programació interpretat, orientat a l'entorn web, però també de propòsit general. És el tercer llenguatge més emprat al món després de Java i els .NET i el segon a Europa.

El compilador PHP és de Codi Lliure, i a banda de l'empresa Zend que hi contribueix notablement, milers de programadors i programadores d'arreu del món contribueixen a aquest projecte.

Quan s'està planificant una nova versió, el Quality Assurance Team convoca a la gent que programa en PHP arreu del món per a que escrigui scripts de test i recomana la convocatòria de TestFests per a fomentar la comunicació i cohesió dels grups de programació PHP.

Un script de test és un script amb extensió .phpt, enlloc de l'extensió .php habitual, on tenim seccions diferenciades, només dues les més importants i mandatòries:

--FILE--
On inserim el codi PHP que s'ha d'executar.

--EXPECT--
On indiquem quin és el resultat esperat de l'execució del codi esmentat.

Quan es fan les proves d'una nova versió del compilador interpret, certificarem ràpidament si funciona correctament si el resultat que dona el nou compilador és l'esperat.

A més a més, en el procés de testeig s'anoten les instruccions del compilador que s'han executat, certificant la seva sol·lidessa o preveient llacunes de codi mai executat, susceptible de tenir errors... o no.

Abans de la Revolució del Programari Lliure, crear programes costava molts diners: El preu dels compiladors i dels entorns de desenvolupament eren desmesurats. Avui en dia la creació de Software s'ha humanitzat, i la barrera econòmica és la humana i la de sistemes. També existeixen eines de pagament que fan més rendibles l'hora de treball, sí, però sempre opcionals, mai condicionants de la creació de programes que la seva utilitat repercuteix al gruix de la societat.

Així doncs participar en una PHP TestFest és una manera de retornar el servei que ens ofereix el Programari Lliure. Una mena de pagament en espècies per les plusvàlues generades pels retorns de les inversions que ens hem estalviat.


L'agenda per aquest dissabte serà:

  • 10:30 Presentació de la PHP TestFest amb passi d'una presentació de na Zoe Slattery Coordinadora de les PHP TestFest.
  • 11:00 Presentació del grup CCCPHP.
  • 11:30 Taula rodona sobre programació PHP i presentació de com muntar un entorn de programació PHP integral amb eines OpenSource.
  • 12:30 Explicació de pautes i Redacció de tests.
  • 14:00 Dinar.
  • 16:00 Redacció de tests.
  • 18:00 Execució dels tests.

Tothom és benvingut a la PHP TestFest, si no programeu tests, recomanem que vingueu a les xerrades del matí.

dimecres, 10 de juny del 2009

Girant dates timestamp de MySQL a Pantalla i viceversa

Amb aquesta funció de quatre línies de codi, aconseguirem girar una data Timestamp, data + hora, tant si ens arriba en format MySQL yyyy-mm-dd hh:ii:ss com si ens arriba de pantalla en format europeu dd/mm/yyyy hh:ii:ss


/**
* Girem una data/hora en format MySQL a *EUR i viceversa
*
* @param string $timestamp
* @return string
*/
function giraTimestamp($data)
{
/**
* Mirem que la cadena compleixi amb els requisits de :
* entre 1 i 4 posicions decimals
* seguit d'un separador vàlid
* seguit d'entre 1 i 2 posicions decimals
* seguit d'un separador vàlid
* seguit d'entre 1 i 4 posicions decimals
* seguit d'un espai
* seguit d'entre 1 i 2 posicions decimals
* seguit d'un separador :
* seguit d'entre 1 i 2 posicions decimals
* seguit d'un separador : o no, doncs els segons no són obligatoris
* seguit d'entre 0 i 2 posicions decimals
*
* guardant-nos les xifres d'any, mes i dia i la data complerta
*/
if (preg_match('/(\d{1,4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,4})\s(\d{1,2}\:\d{1,2}\:?\d{0,2})/', $data, $jData))
{
/**
* Esborrem la primera possició de l'array resultant que és la cadena
* que s'ha parsejat.
*/
array_shift($jData);

/**
* Extraiem de l'array l'hora:minut:segon
*/
$jHora = array_splice($jData, 3);

/**
* Si la primera xifra te 4 posicions, vol dir que venim de
* MySQL, i representarem la data girada amb / com a separador
* En cas contrari, vol dir que venim de pantalla, i el
* separador serà l'standard de MySQL.
*/
if (strlen($jData[0]) == 4)
{
$separador = '/';
}
else
{
$separador = '-';
}

/**
* Retornem la data
*
* girem l'array que conté any,mes,dia o dia,mes,any
* la convertim a una cadena separant cada element pel separador calculat
* afegim espai blanc i l'hora complerta
*/
$ret = implode($separador, array_reverse($jData)) . ' ' . $jHora[0];

return $ret;
}
}


Per als camps de tipus date, que no tenen l'hora, la cadena de parseig serà:


/(\d{1,4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,4})/

dilluns, 1 de juny del 2009

Visualitzar clients AbanQ a dotProject

A Corretgé.com hem decidit implementar el gestor de projectes dotProject 2.1.2 i adaptar-lo a les nostres necessitats.
El primer que farem serà que el llistat de companyies del dotProject es correspongui amb la relació de clients de l'AbanQ i així evitar haver d'entrar les fitxes a les dues aplicacions:
Prèvia còpia de seguretat de les dades, arrenquem el MySQL i emprem la base de dades on tenim el dotProject i esborrem la taula companies:
drop table companies

I procedim a la creació de la vista basada en les dades de client de l'AbanQ que tenim en aquest cas a la base de dades crtfaclux. A la relació de clients d'AbanQ també ha d'existir la nostra pròpia empresa, que identificarem com de tipus 6, Interna, que la detectem pel NIF:
create view companies as
select c.codcliente as company_id,
0 as company_module,
convert(c.nombre USING utf8) as company_name,
c.telefono1 as company_phone1,
c.telefono2 as company_phone2,
c.fax as company_fax,
convert(d.direccion USING utf8) as company_address1,
convert(d.provincia USING utf8) as company_address2,
convert(d.ciudad USING utf8) as company_city,
d.codpais as company_state,
d.codpostal as company_zip,
substring_index(c.email, '@', -1) as company_primary_url,
1 as company_owner,
convert(c.nombrecomercial USING utf8) as company_description,
CASE c.cifnif
when 'B17803586' then 6
else 1
end as company_type,
c.email as company_email,
convert(c.contacto USING utf8) as company_custom
from crtfaclux.clientes c
left join crtfaclux.dirclientes d on c.codcliente = d.codcliente and d.domfacturacion = 1


Si accedim al llistat de companyies de dotProject trobarem integrades tots els nostres clients, assigants com a owner de la companyia l'administrador del dotProject. Aquest camp no es pot canviar. Si es necessita canviar dades, el que haurem de fer és integrar-les de manera periòdica i no pas crear una vista.

dimarts, 26 de maig del 2009

Alliberada versió 0.3 de firePHP

Avui han alliberat la darrera versió del firePHP, l'eina de depuració complementaria al cel·lebradíssim firebug que permet enviar informació a la consola des d'scripts PHP que s'executen al servidor.

Per a fer-lo anar, cal descarregar-se la llibreria i desar-ho a una carpeta accessible pel servidor web.

divendres, 8 de maig del 2009

Com afegir posts a LinkedIn des de Blogger

Editant el format HTML del bloc i expanent els Widgets, afegint aquest codi al peu del post

<b:if cond='data:post.url'>
<a expr:href='&quot;http://www.linkedin.com/shareArticle?mini=true&amp;url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title + &quot;&amp;source=&quot; + data:blog.pageTitle + &quot;&amp;summary=&quot; + data:post.title'><img align='right' alt='publica post al LinkedIn' border='0' hspace='2px' src='http://www.linkedin.com/favicon.ico' style='padding: 0px;'/></a>
</b:if>

Facilitarem als visitants del nostre bloc la possibilitat de publicar directament el post en qualsevol dels grups LinkedIn al que pertanyi.

LinkedIn és una de les xarxes socials professionals més potents que existeixen.

Alliberada la PHP 5.3.0RC2

Avui han alliberat la Release Candidate 2 del PHP 5.3 que podeu descarregar d'aquest lloc.

En les properes 2-3 setmanes estarà disponible la RC3.

Es demana a la comunitat que descarregui aquesta versió i faci els tests (runtest) per certificar el correcte funcionament en quants més entorns millor.

Retorn del servei.

dijous, 30 d’abril del 2009

Instal·lant Ubuntu Jaunty UNR a un Asus eeePC 901

Per a instal·lar Ubuntu Jaunty Ubuntu-Netbook-Remix en un Assus eeePC seguirem aquestes pases:

En una màquina diferent descarregarem la darrera imatge UNR.
Instal·larem l'usb-imagewriter.
Connectarem una clau USB d'1 GB i executarem el menú Aplicacions -> Accessoris -> Image Writer. Triem la imatge descarregada i el dispositiu USB que volem formatar.

A l'eeePC tancat, inserim l'USB preparat, pitgem el botó d'arrencada i premem F2 durant 3 segons fins que surti la configuració de la BIOS. A l'apartat Boot indiquem que el primer dispositiu sigui l'USB, desem i reiniciem.

Ens apareixerà la pantalla típica d'instal·lació d'Ubuntu, anem seguint les pases per omissió fins a l'apartat de discos que indiquem que ho volem fer manualment:
- sda:
4GB ext2 punt de muntatge /
800MB ext3 punt de muntatge /tmp
8MB swap
8MB swap
- sdb:
16GB ext3 punt de muntatge /home

Hem deixat el sda de 4GB com a ext2 pq en origen està així, investigarem quina és la raó, però suposem que eś per evitar desgast innecessari de discos sòlids.

finalitzem la instal·lació, rebotem, et voilà :-)

Ens demanarà que actualitzem els paquets d'idiomes i ja tindrem el nostre eeePC clar i català.

dijous, 23 d’abril del 2009

Alliberada versió 9.04 d'Ubuntu

Aquesta tarda s'ha alliberat la primera versió del 2009 d'Ubuntu, la Jaunty Jackalope, descarregable des d'aquesta plana.

Per omissió s'instal·la d'una manera molt senzilla, en 7 pases, des del menú que ens mostra quan arrenquem des del CD descarregat.

En menys de 10 minuts tindrem operativa la darrera versió d'Ubuntu, nosaltres ho hem fet a una màquina virtual en un VMWare Server que s'executa a una Ubuntu Server:

Algunes novetats que inclou:
Kernel 2.6.28.11 (amb Ext4 i millor gestió de memòria)
GNome 2.26 amb una gestió millorada dels escriptoris amb múltiples monitors.
OpenOffice 3.0
Arrencada del sistema molt ràpida
Nous Themes

Si supera els tests, aquesta versió serà la instal·lada als ordinadors del nou despatx, i de moment pinta força bé.

dilluns, 20 d’abril del 2009

Oracle comprarà SUN

En Toni Hermoso informa d'una notícia Bomba: Oracle comprarà SUN per 7.400 milions de dollars, uns 5.700 milions d'Euros (els USA empren el que s'anomena Short Scale per a quantificiar un bil·lió).

Pagaran 9,5 USD per acció, preu de cotització de SUN a l'agost del 2008, molt per sobre dels 6,5 actuals i el doble dels 4,75 que cotitzaven abans del 17 de març, data en que es van fer públics els rumors de que IBM volia comprar SUN per 7.000 milions d'USD. SUN va trobar insuficient l'oferta d'IBM i van trencar unes converses molt avançades el 6 d'abril.L'aposta d'IBM era força interessant per al món Open Source: Assegurava la seva aposta per Java com a llenguatge inter-plataforma de propòsit general i mantenia desenvolupament de MySQL, com demostra la creació de l'IBMSB2i Storage Engine per a MySQL de l'AS/400.

L'aposta d'Oracle potser va més enrutada en assegurar-se poder servir als seus clients sol·lucions integrades amb maquinari, de fet històricament Oracle i SUN havien anat del braçet.

Possiblement també controlar els gestors de bases de dades que suporten SAP i potser incorporar a Oracle algunes de les funcionalitats de MySQL i viceversa. Seria fantàstic la creació d'un Oci Storage Engine per a MySQL ;-)