Google Website Translator Gadget

miércoles, 30 de julio de 2014

Hadoop: Llista d'eines relacionades

Hadoop logo
Apache Hadoop

Hadoop

Apache Hadoop es un framework "open-source" per a emmagatzemament i processament a gran escala sobre hardware distribuit divers de dades massives (Big Data).

Hadoop forma part de tota una sèrie de desenvolupaments, projectes derivats, adaptacions, etc.. molt llarg de entendre si no treballes habitualment en aquest entorn, per això es tan interessant el recull que han publicat a Barrapunto i que pots trobar a: http://hadoopecosystemtable.github.io/



Enllaços relacionats:




miércoles, 23 de julio de 2014

Oracle: Optimització SELECT amb LIKE, UPPER i PrepareStatement

www.oracle.com

Optimització SELECT, LIKE, UPPER, PrepareStatement

Quan comences a treballar en un projecte, es bó anar anotant totes aquelles millores que poden ser incloses a la següent versió.
Una de les més habituals es l'optimització de les sentències d'accés a BB.DD. (i possiblement de tot el disseny de la BB.DD), que si no poden ser optimitzades en una primera instància, caldrà revaluar-les a posteriori.

Al següent enllaç he trobat informació força interessant sobre una sèrie de punts a tenir en compte per a diverses BB.DD. com Oracle, MySQL, SQL Server.
PasExemple
Crear la sentència amb UPPER
SELECT first_name, last_name, phone_number
FROM employees
WHERE UPPER(last_name) = UPPER('Rincewind')
Crear un índex sobre el camp amb UPPER
FBI - Function Based Index
CREATE INDEX emp_up_name
ON employees (UPPER(last_name));
Coordinar amb el Database Manager la actualització de les estadístiques (DBMS_STATS)Per defecte els FBI no s'utilitzen per al càlcul del execution plan.
Consulta a Oracle algunes altres advertències com, per exemple, incidències amb les funcions.Oracle Database cannot convert data in all cases, even when conversion is explicitly requested.
En el cas de PrepareStatement es important tenir en compte:
- El ? ha de estar sense cometes.
- Les cometes s'afegeixen al assignar la variable

sql_inst="SELECT * FROM C01001 WHERE UPPER(DESCRIPTION) LIKE ? ";
...
stmt.setString(1, "%"+Bean.getDescription().toUpperCase()+"%");

Nota: Per al cas de SQLServer, el procediment difereix una mica, consulltar l' article complert per a obtenir més informació.



Enllaços relacionats:




miércoles, 16 de julio de 2014

La web per a mòbils: JavaScript (JS)

JS logo
www.w3.org-script
JavaScript es un dels components bàsics de la Web per a mòbils i en general del augment de usabilitat de les pàgines Web, per tant es molt recomanable fer un curs prou profund per a entrar en detalls interns del llenguatge per a treure-li tot el rendiment que permet.

Donat que no em considero un especialista en programació, i potser en cap altre cosa més, aquí deixo alguns dels punts més interessants per a estudiar d'aquest llenguatge.

Els punts més interessants de les funcions JavaScript

ConcepteOpcions d'ús

Llibreries gratuïtes

No declaració de paràmetres

Els paràmetres es poden invocar sense haver-los de declarar.
Es tractanten com un array.

Funcions de nombre de paràmetres indefinits. No cal fer una funció per 1 paràmetre, una altre per a 2, una altre per a 3,...

Per exemple es pot avaluar el nombre de paràmetres amb:
arguments.length:

function exemple(){
return (arguments[0]+"-"+arguments[1]);
}

Crida:
example ('a','b');
=> a-b

Inicialització paràmetres molt senzilla

Paràmetres per defecte amb || (OR lògic)

function exemple(){
var par1=(arguments[1]||"res-de-res");
return (arguments[0]+"-"+par1);
}

exemple('a');
=> a-res-de-res
Permet inicialitzar tots els paràmetres amb una instrucció molt simple, evitant llargs if i molt codi de comprovació
Claretat de prioritat dels operadors i funcions.Mozilla - Prioritat
Mozilla - Expressions
Suport a caràcters UNICODE
\0, \x00, \u0000
\t, \x09, \u0009
\", \x22, \u0022
\', \x27, x\u0027

Gran quantitat de events programables

Molts apareguts amb HTML5 que amplien les possibilitats de programació.
setInterval()
onload()
onresize()
Events, Objecte Windows, ...

Funcions matemàtiques

w3schools- Objecte Math
n.toFixed(1) - arrodonir al primer decimal

JSON - JavaScript Object Notation

JSON.org
JSON.org un format de conversió a text molt estès (en alguns àmbits esta desplaçant a XML) amb llibreriesper a la majoria de llenguatges i mètodes per a serialitzar i enviar informació a través d'una línia de comunicació.
JSON.stringify(object)
JSON.parse(string_JSON)



Enllaços relacionats:




martes, 15 de julio de 2014

LOPD i les transferències SFTP (Secure FTP)

AEPD logo
AEPD

LOPD i SFTP

Es suficient la transferència de dades a través de SFTP per a la AEPD?

Donat que poden ser ambigües, especifiquem que volen dir les sigles:
  • SFTP entenem "SSH File Transfer Protocol" o "Secure File Transfer Protocol"
  • LOPD entenem la "Llei Orgànica de Protecció de Dades"
Aquesta es una pregunta difícil de respondre, i de moment només al abast del gust de cada auditor, advocat o la pròpia AEPD. Veiem que es pot fer, donat que no sóc advocat, i com es pot argumentar (o salta a la part de conclusió):

D'acord amb la Guia de Seguretat (la darrera publicada al 2010):
(pag. 12) transmissió de dades a través de xarxes electròniques xifrades
...
(pag. 13) els accessos a través de xarxes de telecomunicacions han de garantir un nivell de seguretat equivalent al dels accessos en modo local.
...
(pag. 26) fitxers de nivell alt, que es transmetin a través de xarxes públiques o inalàmbriques de comunicacions electròniques es realitzaran xifrant prèviament aquestes dades
...
D'altre banda hi ha una sèrie de recomanacions que també es publiquen, per exemple, per a laboratoris farmacèutics (2004) on indica:
(pag. 12) Les mesures ... referides al article 26 104(correcció meva) del reglament seran d'aplicació a la transmissió de dades... quan sigui necessària la utilització de xarxes la titularitat de les quals sigui aliena a la pròpia empresa...
Per la seva banda, les consultes web han de realitzar-se utilitzant un protocol segur (del tipus https)...

D'acord a la definició de SFTP, per exemple de la Wikipedia:
...
SecureFile Transfer Protocol) és un protocol del nivell d'aplicació que proporciona la funcionalitat necessària per a la transferència i manipulació de fitxers en un flux de dades fiable
...

Conclusió

Per tot això, a falta d'una confirmació de la AEPD, o del advocat de torn, SFTP podria ser un protocol acceptable.


Informació addicional

Com a auditors ens caldrà una verificació. Podem utilitzar la pròpia guia de comprovació:
(pag. 51) Comprovacions a realitzar:
La transmissió de dades a través de xarxes es realitza de forma xifrada (o qualsevol altre mecanisme que garanteixi que la informació no sigui intel·ligible ni manipulada per tercers?
Aquest mecanisme es eficaç?
En general es molt recomanable revisar la legislació vigent (en constant manipulació) al buscadors del BOE. Pots seguir els:

Enllaços relacionats:





miércoles, 9 de julio de 2014

HTML5 i JS: local Storage

JS logo
www.w3.org-script
Una altre gran avantatge de la programació amb HTML5 i JS es la inclusió de emmagatzemament local permanent, i a més, de manera senzilla.

Hi ha força informació disponible a dev.w3.org

De manera simple:
  • Hi han dades que es poden guardar en sessió i permanents
  • Es tracten com a propietats de 2 objectes: localStorage, sessionStorage
  • Es important tenir en comte la inicialització de les variables
  • Es important gestionar primer les dades al xStorage i desprès fer la presentació a DOM, i no al revés.

function init_segons()
{ localStorage.segons = "0.0";
localStorage.llista = "";
}

function afegir()
{ // Afegim + per forçar conversió a num.
localStorage.segons = +localStorage.segons + 0.1;
}

function mostrar()
{ /* Mostrar canvia respecte a ver. anteriors.
Invoca al procés de increment i plasma el que hi ha al storage. */
cl.html((+localStorage.segons).toFixed(1));
rep.html(localStorage.llista);
};


miércoles, 2 de julio de 2014

HTML5 i CSS3: Fonts d'informació i generadors

CSS3 logo
http://www.w3.org/Style/CSS/

Fonts d'informació

Al començar a programar en HTML5 i CSS3 cal obtenir una font d'informació fiable i que aporti exemples, i els apartats més interessants.

Faig aquí un recull de llocs on tractar aquests temes.
TemaOn?
HTML GeneralHTML (ENG)
Un excel·lent resum de HTML5 de 1 pàgina (Gràcies a Smashingmagazine.com)
CSS GeneralCSS(ENG)
<div>DIV (ENG)
<nav>
Exemple display:inline
nav (ENG)
Exemples menu horitzontal (Spanish)
<Canvas>
Grafics
Canvas (ENG)
canvas i SVG (ENG)
SVG (ENG)
Un  generador gratuït i força interessant: canva.com
CSS selectors:
# . *
CSS Selectors (ENG)
Herència i cascada
FontsW3.org-fonts
Font, @Font-face
CSS3 Fontface
Generadors CSSCSS3generator.com
Gradients Generator
CSSPortal.com Rounded-corner, menus i 1000 trucs
CSS3maker.com - menus i més
CSS3.com
media

Utilitzat per a disseny adaptable ("responsive") a diferents dispositius
Screen resolution
alistapart.com - Responsive
<link rel='stylesheet' media='only screen and (min-width:530px) and (min-device-width:480px)' href='screen-480.css' />
CSS Selectors

::after

W3schools-Selectors
p::after
{content:"- Remember this";}
per exemple, afegeix el text a tots els paràgrafs.


Enllaços relacionats: