Google Website Translator Gadget

lunes, 6 de octubre de 2014

I migro el blog.....

Com a part del propi aprenentatge, de tant en tant, em forço a provar altres plataformes, així que a partir d'ara aquest blog es publicarà a:

http://anewishope.wordpress.com/

miércoles, 10 de septiembre de 2014

Mozilla Firefox: Tancar la darrera pestanya sense que es tanqui el navegador

Mozilla Firefox logo
Mozilla Firefox

Tancar la darrera pestanya sense tancar el navegador

Tots els navegadors han anat incorporant una funcionalitat(?) que consisteix en tancar el navegador automàticament quan la darrera pestanya ("tab") es tanca.

Potser aquesta "millora" va molt bé en alguns entorns, però que passa si t'interessa mantenir-ho obert?

Tot i que segons les diferents tendències sembla que Firefox va perdent mercat davant Chrome, aquí tens, pas a pas, com fer-ho pel cas de Mozilla Firefox (verificat amb versió 31.0).


Acció
Anar a la barra d'adreces.
Escriure:
about:config

Sortirà un avís d'alerta. Acceptar.
Filtrar per:

close
Baixar fins:

browser.tabs.closeWindowWithLastTab

botó dret, "Commuta"

ha de quedar com a "false"

IMPORTANT!!!

Reinicia Firefox, no tanquis la pestanya perquè desfarà els canvis.

miércoles, 20 de agosto de 2014

WinSCP: Transferència SFTP automatitzada

WinSCP logo
WinSCP
La transferència de fitxers en entorn Windows a través de entorn gràfic es pot fer amb WinSCP, Filezilla i molts altres clients disponibles; però a l'hora d'automatitzar aquesta transferència WinSCP es, sinó la millor, de les millors eines que pots trobar.

La darrera versió publicada es la 5.5.4 (2014-06-10)

Per a mostra, diferents comandes que poden ser útils a l'hora de preparar un scripting bàsic:

Scripting WinSCP

AccióExemple
Enviament de fitxer amb renombrat a destí
put Clients.DAT Clients.TXT
activació de transferència ASCII o binary
option transfer ascii
canvi de permisos a destinatari
chmod 777 EXEMPLE.DAT
Es important gestionar correctament l'intercanvi de signatures.
open ..... -hostkey="ssh-rsa 2048 ff:33:ff:44:cc:22:dd:bb:99:99:66:11:22:33:44:55"
enviament opcional:

When specific file name is used, command fails when the file does not exist. When wildcard is used, command succeeds, without doing anything, if the wildcard does not match any file
from: Put: Remarks
# Executo un enviament múltiple
put EXEMPLE*.DAT
get REBO*.TXT



Enllaços relacionats:




miércoles, 13 de agosto de 2014

PostgreSQL: cicle de vida

PostgreSQL logo
PostgreSQL

cicle de vida de PostgreSQL

PostgreSQL és un un sistema gestor de base de dades (SGBD, DBMS) de codi lliure (Open Source), molt popular ja que es distribueix gratuïtament, i es una alternativa a altres sistemes de pagament (SQL Server, Oracle).

Com tot sistema que introduïm a la nostre empresa, cal que tinguem present el cicle de vida (lifecycle) per mantenir un cert nivell de suport i de protecció davant vulnerabilitats.

Les darreres versions (9.3.4) que pots obtenir aquí tenen una durada fins al 2016, però per a consultar-ho pots seguir els següents enllaços:



miércoles, 6 de agosto de 2014

Java 7: Enum Class

Java logo
java.com
Una de les coses més interessants que te Java son les classes Enum.

Les classes Enum son un tipus específic de classes que permeten acotar i definir els valors que pot tenir una variable.
La avantatge addicional que proporciona Java es que pots afegir  mètodes per a treballar amb elles, com per exemple:

Mètode
.values()Permet recorrer tota la llista de valors de la class Enum.
"...method that returns an array containing all of the values of the enum in the order they are declared..."
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY
}


for (Day dia_setmana : Day.values()) {
System.out.printf("El teu dia es:",dia_setmana);
}
toString()Retorna el text de la ennumeració.
Creació amb valorsAl crear un Enum, es pot assignar automàticament els valors.
En aquest cas cal afegir un constructor privat de la classe.
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);

private final double mass; // in kilograms
private final double radius; // in meters


// CONSTRUCTOR ADDICIONAL
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}

...
for (Planet p : Planet.values()) {
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}

Enllaços relacionats:



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:




miércoles, 25 de junio de 2014

SVG - Gràfics escalables per smartphones

SVG logo
SVG Wikimedia

SVG - ús a smartphones

SVG es un format de gràfic que permet l'escalat sense perdre qualitat al fer-ho.
Hi ha abundant informació als enllaços que hi han abaix, tant de editors, com de guies i manuals per a poder estudiar i analitzar les seves avantatges.
Hi han, però, alguns detalls i dubtes que he tingut al treballar amb SVG que comento a continuació.

Detalls interessants

ConsultaResposta
Ordre de les imatges (z-axis) L'ordre ve determinat per l'odre d'aparició en la definició del dibuix.
Per que quedi a la capa superior, simplement baixa'l dins de la descripció.
Format i CSSSVG permet una gestió de formats, amb la seva propi estructura, molt semblant a CSS.
El CSS es pot generar en un fitxer extern i invocar-lo just abans de la definició de la imatge, però es important que la crida sigui en format XML.
<?xml-stylesheet type="text/css" href="svg-style.css" ?>

Enllaços relacionats:




miércoles, 18 de junio de 2014

CSS3: Fonts, @font-face i Fira Sans

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

CSS3: Fonts, @font-face i Fira Sans

Entre altres funcionalitats pel disseny de pàgines, CSS3 permet la incorporació de diverses fonts, tant des del propi servidor com importades de un altres servidor.
Aquesta darrera es molt interessant per tal d'importar fonts des de servidors on estan publicades per a compartir, veiem els paràmetres i un exemple:

Exemple de codi:

@font-face
{
font-family:FiraSans, Georgia, Serif;
font-weight:900;

font-variant:small-caps;

src: url(https://github.com/buildingfirefoxos/Building-Blocks/blob/gh-pages/fonts/FiraSans/FiraSans-Regular.otf);
}

Repàs dels paràmetres principals

ParàmetreTractament
font-familyIndica la prioritat de les fonts disponibles.
font-weightEspecifica el "pes", per exemple negreta ("bold").
Hi ha una normalització del pes per a facilitar el tractament:
normal, bold, 100, 400, etc...
font-strechEspecifica principalment la relació entre alt i ample de la font.
No esta gaire suportat encara.
font-style
font-sizeEspecifica el tamany 
font-variantEspecifica el tractament del text. Té 2 opcions:
normal: Text normal
small-caps:
El text es genera automàticament en "Versalita"
FormatsWoff (Web Open Font Format): .woff
TrueType: .ttf Desenvolupat per Apple als 80'
OpenType: .ttf, .otf
Embedded-opentype: .eot
SVG Font: .svg, svgz. Típic de iOS (iPad, iPhone)

Webfonts.info es pot trobar una llista de llocs i plans per a descarregar embedded fonts, fontsquirrel.com i Google fonts disposen d'una àmplia llista també.

Enllaços relacionats:

miércoles, 11 de junio de 2014

HTML5, JS i geolocalització

JS logo
www.w3.org-script
Una altre de les avantatges de HTML5 i JS es la possibilitat que ha portat per a fer geolocalització.
La majoria de funcionalitats es basen en l'ús de Google Maps però donat que es un producte molt complert i complex, han sorgit llibreries com gmaps.js (hpneo) que ajuden molt a la programació de accions.


Mostra un mapa més gran

Amb les llibreries que es poden importar fàcilment:
<script type="text/javascript" src="zepto.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="gmaps.js"></script>
es poden construir ràpidament accions de posicionament de marques (markers), rutes, etc...
<script type="text/javascript">
var map, lat, lng;
...
$(function() // Function Ready al acabar de construir arbre DOM
{

function enlazarMarcador(e) // e= event que em passa la llibreria
{
// mostra ruta entre marcas anterior i actual
map.drawRoute({
origin: [lat, lng], // origen en coordenades previes
// desti en coordenades del click actual
destination: [e.latLng.lat(), e.latLng.lng()],
travelMode: 'driving',
strokeColor: '#000000',
strokeOpacity: 0.6,
strokeWeight: 5
});
lat = e.latLng.lat(); // guarda coords per següent enllaç
lng = e.latLng.lng();
map.addMarker({ lat: lat, lng: lng}); // Marker a mapa
$("#informatiu").html("AddRoute: a lat.:"+e.latLng.lat()+" long.:"+e.latLng.lng()+" Markers:"+map.markers.length);
};
...

Enllaços relacionats:




miércoles, 4 de junio de 2014

Windows 7: Problemes de sincronització fora de linea (offline folders)

Error amb offline folders

Problemes amb offline folders

Una de les avantatges del Offline folders (Fitxers fora de línea) es la capacitat de sincronització automàtica de fitxers a la xarxa.
Dic avantatges quan funciona, que moltes vegades no es així.

Una opció es programar un script de sincronització manual on sigui el usuari qui prengui conscientment les decisions.
Una altre es intentar arreglar les constants incidències que surten amb aquesta funcionalitat.
Pots provar aquests passos, per a fer un reset del repositori ("cache") de sincronització i començar de nou:

PasExemple
Normalment tens un avis al tauler de control i a la icona de la barra de tasques.
Obrir regedit.exe i baixar fins a la clau:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\Csc\Parameters

Crear un valor DWORD de 32 bits.

El valor s'ha d'anomenar FormatDatabase
donar-li el valor: 1

Reiniciar el equip i es forçarà una netejar.
Esborrar els fitxers restants que no sincronitzen.
Tornar a reiniciar i verificar que s'ha corregit la incidència.


Enllaços relacionats:




miércoles, 28 de mayo de 2014

HTML5: Video convertidors

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

HTML5: Formats de video

Una de les avantatges de HTML5 i CSS3 es que estandarditza els formats, una mica, i permet la gestió de vídeos sense complicar massa la programació.

Malgrat això moltes vegades ens cal preparar-ho en diversos formats i aquí es on entren les eines de conversió. De les que he provat jo em quedo amb les 2 següents:



EinaFuncionalitat
HandBrakeGratuïta. Open Source.
Eina gràfica molt fàcil de utilitzar. La que he provat es la versió HandBrake-0.9.9-1 sobre Windows

Contra: No admet tots els formats possibles.
FFmpegLa meva favorita. Gratuita. Publicada sota GNU.
Eina que permet la majoria de conversions.  Utilitza diverses llibreries que li permeten fer-ho.

Contra: Si no ets programador... no vinguis. Es una eina que funciona amb línia de comandes "Command line".

Permet fer coses increïbles com canviar de format:
ffmpeg -i MP4_origen.mp4 webm_desti.webm

Extreure DVD a mp4:
ffmpeg -i D:\VIDEO_TS\EXAMPLE.vob -c:a libmp3lame "C:\Carpeta amb espais\EXEMPLE.mp4"
O rotar un vídeo:
ffmpeg -i "C:\La meva carpeta\origen.mp4" 
-vf "transpose=dir=1:passthrough=portrait" 
"C:\La meva carpeta\GIRAT_90graus.mp4"
VLCEl famós Video Player també permet gravació, tot i que durant les proves (versió 2.1.3) a mi no m'ha funcionat correctament.
Altres eines disponibles, encara que no son totalment gratuïtes o tenen avisos, etc...

Una bona comparativa la pots trobar a:
Wikipedia - Comparativa de editors


Enllaços relacionats:




miércoles, 21 de mayo de 2014

Com actualitzar un controlador: Exemple Video Driver Update

Placa mare - Motherboard
Placa mare

Actualització de drivers de video

En alguns casos, sobretot en manteniment d'equips vells, pot succeir que el driver no sigui natiu i per defecte esculli un bàsic que si que estigui certificat.
En alguns casos, el driver més actual no funciona correctament sobre el Hardware antic.
Això es força molest en el cas del driver de vídeo on sense el natiu, costa molt accedir als missatges informatius, o llegir els logs.

Una opció per resoldre drivers de video.

El primer problema es trobar el driver compatible, antic o no, del fabricant. Sense això poca cosa podrem fer.
PasAcció
Obtenir un cmd d'administradorBotó Inici. Buscar "cmd". Quan es visualitzi:
Amb botó dret "Executar com Administrador"
Obtenir la propietat del drivertakeown /f c:\windows\system32\drivers\vgapnp.sys
Canviar els permisos del driver al usuari admin-user que especifiquem.cacls c:\windows\system32\drivers\vgapnp.sys /G admin-user:F
Modificar el fitxer amb notepad per que no sigui llegible.Per exemple afegir una 'x' al inici.
xMZ

Desinstal·lar el driver a "Device Manager"Demanarà un reinici.
Indicarà amb un missatge que no s'ha pogut carregar el dispositiu correctament.
Desprès del reinici: Instal·lar la actualització.Tornar a "Device Manager"
Buscar el driver (Video Controller, per exemple)
Actualitzar amb la nova versió buscant la versió on la tens preparada ("Browse for the Driver").
Recuperar el driver per defecte.Retirar la x del fitxer
c:\windows\system32\drivers\vgapnp.sys
Recuperar permisos del fitxerComparar amb qualsevol altre fitxer de drivers.
Afegir si cal "NT SERVICE\TrustedInstaller"










miércoles, 14 de mayo de 2014

AMI BIOS (American Megatrends): Les tecles de arranc

AMI - American Megatrends
AMI - American Megatrends
Una dels primers passos quan s'estandaritza un nou Hardware es preparar maquetes i adaptar les guies de desplegament.

El primer pas es accedir a la BIOS, i aquí cada equip te una forma de fer-ho.

Als següents links trobareu informació d'una de les més esteses: American Megatrends. En aquests cas, per exemple:

TeclaFuncionalitat
DEL keyBIOS SetUp
F11Source Boot Selection





Enllaços relacionats:





miércoles, 7 de mayo de 2014

CSS3: Forçar el tamany del contenidor DIV al tamany dels DIV continguts.

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

CSS3: Forçar el tamany DIV automáticament. 

Un dels problemes que tothom es troba al treballar amb DIV enlloc de taules TABLE es que al insertar una imatge aquesta pot desbordar el tamany del propi contenidor DIV.


El problema amb DIV incrustats

Veiem un exemple extret de PageAffairs i de Swiftthemes on esta molt ben explicat:
Comportament per defecteQue volem
from Swiftthemes.com

from Swiftthemes.com

CSS - Part 1

La solució prové d'incloure en CSS un style i afegir-ho als contenidors afectats. Veiem com funciona:
/* FIX to increase container size to the internal DIV size and avoid image floating outside the container DIV */

.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}


.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix {height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
/* END FIX */

:after indica que s'aplicarà desprès de la resta de elements.

HTML - Part 2

Als contenidors cal incloure:
<div id="main_container">
 <div id="foto">
    <img src="IMATGE_ENORME.png" height="233" width="320"/>
 </div>
 Text petit.<br>
 <div class="clearfix"></div>
</div>

Enllaços relacionats:




jueves, 24 de abril de 2014

CSS3: Cantonades arrodonides "Round corners" i text inclinat ("Rotate")

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

CSS3: "Round corners" i text inclinat 

Una de les avantatges de CSS3, que estalvia molt temps de feina, son les cantonades arrodonides ("Round Corner") i textos inclinats.
Ho veiem amb un exemple per tal que sigui més fàcil.


Cantonades arrodonides "Round corner"

Veiem el següent codi exemple, que serveix per al format d'aquest propi codi font:
.code{
margin-top: 20px;
padding-left: 5px;
font-family: monospace;
background-color: #000;
width: 100%;
border-top: 10px solid #ccc;

border-radius: 20px 15px 10px 5px;

box-shadow: 5px 3px 10px #000;

min-height: 80px;
color: #C0F146;
text-align: left;
font-size: 12px;
}
Amb la comanda border-radius defineixes quin radi d'arrodoniment ha de tenir aquesta cantonada arrodonida.

Text inclinat ("Rotate")

Veiem un altre cas amb text inclinat:
.demo-text {
padding:2%;
min-height:20px;
min-width:50px;
margin:2%;
/* border */
border:5px;
border-radius:20px;
border-style: dashed;
border-color:red;
box-shadow: 5px 5px 2px #888888;
/* position */
float:right;
display: table-cell;
text-align:center;
vertical-align: middle;

/*Rotate div */
 -ms-transform:rotate(30deg); /* IE 9 */
 -webkit-transform:rotate(30deg); /* Chrome, Safari, Opera */
 transform:rotate(30deg); /* Standard syntax */
}
Amb aquest codi, per exemple, podem aconseguir un text inclinat amb cantonada arrodonida:

exemple




Enllaços relacionats:




miércoles, 16 de abril de 2014

La CPU no arrenca!!! Ara que faig?

AMI - American Megatrends
AMI - American Megatrends

Problemes amb la CPU

Una notícia important en aquest món habituat a la immediatesa: El Hardware es fa malbé i cal reparar-ho o substituir-ho. No es infinit; ni tansols infal·lible.
Ara que ja ens hem trobat amb la incidència de que un equip no arrenca poden passar diverses coses i cal anar descartant que cal fer.

Coses que ens podem trobar:

  • El equip no arrenca (Boot)
  • No hi han alertes sonores ("beeps")
  • No hi han missatges d'error a la pantalla (BIOS messages).
  • No hi ha cap missatge "POST-  Power On Self Test" durant l'inici.

Pasos per a detectar l'òrigen:

wikimedia.org - motherboard
En aquest cas, partim de la base que un equip, que no ha estat modificat, ha deixat de funcionar.
  • Algunes recomanacions prèvies:
    • Fes-te amb un aspirador. Habitualment els ordinadors estan plens de pols.
    • Si estàs en un entorn empresarial afegeix una assegurança al preu del equip. T'estalvia temps i tens cobertes les incidències durant un temps.
  • Verificar si el ordinador rep electricitat. Sembla absurd, però ha passat que l'error estigui a endolls que s'han cremat.
  • El altaveu esta actiu i pot emetre els missatges d'error.
  • Si tens la sort que emeti una sèrie de "beep" pots consultar que volen dir a: Computerhope - Beep
  • No hi han peçes fora de lloc, cargols caiguts, targetes no insertades del tot.
  • Verifica si al arrencar els ventiladors del equip i de la CPU funcionen.
  • Si el equip arrenca però s'atura automàticament desprès d'uns segons, pot ser que estigui creient que el ventilador de la CPU no esta funcionant. Netejar internament de plaques de pols acumulades que eviten dissipació de calor.
  • Retirar tots els elements i deixar una configuració mínima: Placa base (Motherboard), Processador (CPU), 1 targeta de memòria (DIMM). Fer-ho progressivament per a verificar si es recupera el funcionament.
  • Retira totes les targetes (DIMM) de RAM excepte una. Anar rotant si no arrenca per a verificar que no hi hagi incidències a les memòries.
En el meu cas particular, seguint aquests passos, vaig detectar que la targeta gràfica addicional havia quedat malmesa.

Enllaços relacionats:




viernes, 11 de abril de 2014

JavaScript: Events tàctils amb llibreries

JS logo
www.w3.org-script

JavaScript: Events tàctils

Amb l'aparició i acceptació del iphone, sobre el 2007, l'ús dels events tàctils ("touch") comença a ser acceptat als diferents navegadors.
Poc a poc es van normalitzant i per exemple a Mozilla pots trobar una bona font de informació de com tratactar-los.
TapQuo també publica una guia gràfica (veure a meitat de la pàgina) molt útil per a les formacions.

Llibreries

Per a facilitar l'ús i programació dels diferents events apareixen llibreries que faciliten el seu tractament:
JQuery Mobile
Zepto JS
TapQuo JS (Una fantàstica empresa de Bilbao)

En el meu cas he estat jugant darrerament amb les llibreries de Zepto que ofereix de 2 llibreries:
  • touch.js: Events com tap, singletap, doubleTap, swipe, swipeUp,...
  • gesture.js: Events com pinc, pinchIn,pinchOut,
Amb aquestes llibreries pots programar, per exemple, un toc ("tap") o un desplaçament ("swipe") simplement fent:
...
<script type="text/javascript" src="zepto.min.js"></script>
<script type="text/javascript" src="touch.js" ></script>
...
<script type="text/javascript">
$(function()
{ var ditet = $('#areatactil');
var cl=$("#crono"); // crono
var rep=$("#liststop"); // inventory
...
function clear()
{if (!t)
{cl.html("0.0");
rep.html("Crono initialized<br>");
}
else
{ rep.html((rep.html()+"Crono running.<strong>Reset not allowed!</strong><br>"));
}
}
// Events de touch
ditet.on('swipe', clear);
...
<div id="areatactil">
<span id="crono"> 0.0 </span> segundos
<div id="liststop"></div>
</div>
...

Enllaços relacionats:

martes, 8 de abril de 2014

Múltiples imatges background amb CSS3

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

Múltiples imatges background amb CSS3

Una de les coses on habitualment puc cometre errors es a la sentència background amb diverses imatges.
Posem un exemple amb el següent CCS (que pots veure funcionant aquí):

Codi comentat:

.divimage{
padding:40px;
background:

url(http://upload.wikimedia.org/wikipedia/commons/f/f3/Airplane_GA_Black.svg)
 left top repeat-x,
url(http://upload.wikimedia.org/wikipedia/commons/7/7a/1a2.png)
 center no-repeat,
url(https://cdn1.iconfinder.com/data/icons/windows8_icons/26/airplane_take_off.png)
 left bottom repeat-x;

font-family: 'Roboto', sans-serif;
background-color:#a4d3ff;
box-shadow: inset 5px 5px 20px 5px #CCCCCC;
border-radius: 10px 0px 10px 0px;
}

Cal notar que:

  • entre les diverses imatges hi ha una coma (,)
  • Només hi ha una sentència background
  • Es pot combinar amb altres instruccions CSS 
  • Es poden importar imatges de fonts URL

Enllaços relacionats:




lunes, 7 de abril de 2014

Windows 7: Canviar el usuari quan hi ha "autologon"

Windows 7 logo
http://windows.microsoft.com/
En entorns industrials es habitual tenir actiu el "autologon" en equips, això es bàsic en sistemes industrials empotrats.
El "autologon" permet que automàticament una sèrie d'aplicacions puguin mostrar-se en pantalla, sense haver de connectar un teclat i un ratolí.

Però que passa quan cal canviar de usuari o sortir del usuari?
Al fer logoff o intentar canviar d'usuari, automàticament es torna a iniciar el usuari programat de manera que entres en un aparent bucle infinit.


Com es pot canviar (switch/logoff) el usuari a un equip amb autologon?

La manera més simple que he trobat es mantenir la tecla SHIFT apretada mentre es fa el procés d'arranc.

En alguns blogs i fors indiquen que a Windows 7 aquesta opció no esta disponible, però he experimentat que, si va desaparèixer, ara esta funcionant.

Com es pot retirar (turn off/disable) el usuari de autologon?

Un cop ja has aconseguit entrar, t'assalta el dubte de com retirar l'usuari permanentment. Només cal desactivar-ho a nivell de registry modificant amb regedit.exe:
HKey_Local_Machine\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

AutoAdminLogon=0

Com es pot activar el usuari de autologon?

Arribats a aquest punt, potser sigui interessant recordar com es pot registrar l'autologon amb un usuari.
Amb Windows7 hi han altres mètodes, però per compatibilitat i temes històrics, el que em sembla més adient es modificar-ho a nivell de regedit.exe:
HKey_Local_Machine\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
AutoAdminLogon = "1" (Enabled)
DefaultUserName = "xxx"
DefaultPassword = "xxxx0xxxx"
DefaultDomainName = "xxx.xxx"
tot això, a més, el pots preparar en un fitxer .reg per poder-ho fer massivament a instal·lacions industrials.


Altres comentaris:

Un tema a tenir en compte es que les opcions de logoff, switch user, etc... es poden desactivar per política (GPO).



Enllaços relacionats:




miércoles, 2 de abril de 2014

Windows 7: Path "All users/Desktop" i altres camins interessants.

Windows 7 logo
http://windows.microsoft.com/

Windows 7: Path especials.

Al desplegar accessos massius ens cal que tots els usuaris puguin accedir.
El que per a un Administrator era normal a XP a partir de Windows 7, i la millora de la seguretat que aporta, els accessos es fan d'una altre manera.
D'entrada es requereix accessos d'Administrador i visualitzar les carpetes que estan ocultes (hidden).

Anem a veure on estan ara aquests accessos (Nota: W7 es multiidioma. Pots fer servir el camí en English):


Accessos (Path)


Path XPPath Windows 7
C:\Documents and Settings\All Users\Start Menu\Programs\StartupC:\ProgramData\Microsoft\Windows\Menú Inicia\Programes

English:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
C:\Documents and Settings\All Users\DesktopC:\Usuaris\Públiques\Desktop

English:
C:\Users\Public\Desktop


Enllaços relacionats: