Social

sábado, 27 de abril de 2013

Java: Leer/Escribir Json con Gson

Gson es un parser que nos permite leer cadenas obtenidas de archivos Json hecho para Java que fue realizado por Google. A diferencia de otros parsers detecta la estructura del .json y nos permite asignarle estos valores aun Objeto definido por nosotros si las estructuras coinciden, en otras palabras nos permiten parsear objetos json a objetos java.

Se puede descargar la librería Gson de code.google.com o directamente de este link <-click.

En este caso se usará la clase Hijo para definir la estructura que tendrá el json. Hijo es un pojo sencillo como se ve a continuación:

El siguiente código muestra como leer una cadena json haciendo uso de la librería gson y sus métodos, para instanciar un objeto Hijo con sus datos según el json:


Este código da como resultado lo siguiente:

  45
  Pepe

Por otro lado si se desea escribir una cadena json en base a un objeto, en este caso Hijo, simplemente se debe utilizar el siguiente código:


El código anterior da como resultado la siguiente salida en consola:

{
   "nombre":"Juan",
   "apellido":"Carabela",
   "edad":46,
   "hijo":{
      "nombre":"Rambo",
      "apellido":"Carabela",
      "edad":21
   }
}

jueves, 25 de abril de 2013

JavaFX: Tabla Editable


Dentro de las capacidades de las tablas de JavaFX esta la posibilidad de crear celdas personalizadas con otros elementos visuales. En este caso usamos un TextField para permitir crear el efecto de una tabla editable. 


Para entender el código es recomendable haber leido el post que se indica al principio. Ya que se usa una lista de objetos base para llegar la tabla, se necesita definir en este objeto. En este caso es el mismo de la entrada anterior.


Para lograr editar la tabla, se necesita crear un nuevo tipo de celda. En este caso se crea la clase EditingCell que hereda de la celda. Luego se sobrescriben los métodos. El método start inicia la edición y si la celda es nula inicializa el TextField con el método createTextField() con un listener para detectar las teclas Enter y Esc. Luego el método cancel simplemente llama al de la clase superior y maneja el TextField. El método uptate también llama al de la clase superior y actualiza la visualización de la celda mostrando el TextField o no cuando se esta editando. El ultimo método simplemente devuelve el contenido de la celda.

Finalmente le asignamos a la columna deseada una función de retorno o callback. En este caso se le asigna solamente a la columna Teléfono.

lunes, 22 de abril de 2013

HTML: La ñ y vocales con tilde

Debido a la gran cantidad de exploradores web, que usan diferentes métodos de codificación muchas veces la letra ñ y las vocales con acentos suelen tener problemas para desplegarse. Sí usan codificaciones com la UTF-8 se pueden evitar estos problemas. Para utilizarla basta con definir dentro de la metadata lo siguiente para el HTML:


Pero esto no aplica en otra codificaciones, por tal motivo existe la opción de reemplazar estos caracteres por códigos. Estos códigos son los siguientes:

  • &ntilde;    =    ñ
  • &Ntilde;   =   Ñ
Y en el caso de las vocales con acento:
  • &aacute   =   á
  • &eacute   =   é
  • &iacute    =   í
  • &oacute   =  ó
  • &uactue   =  ú
  • &Aacute  =  Á
  • &Eacute  =   É
  • &Iacute   =   Í
  • &Oacute  =  Ó
  • &Uactue  =  Ú
Intercambiando estos códigos por los caracteres se puede escribir el siguiente mensaje:

       La compa&ntilde;&iacute;a &copy;

y obtendriamos:
    
       La compañía ©

Como se puede observar se uso &copy; para representar el simbolo de copyrights. Existen mas códigos que los mencionados aquí. Estos los pueden observar en la este enlace.

HTML: Códigos HTML - Caracteres y símbolos

En la siguiente tabla se observan los códigos ASCII estándar, nombres de entidades HTML, ISO 10646, ISO 8879, ISO 8859-1. Estos son soportados por todos los navegadores de Internet:

HTMLHTML
DecHexSímboloNumeroNombreDescripción

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F

!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
&#32;
&#33;
&#34;
&#35;
&#36;
&#37;
&#38;
&#39;
&#40;
&#41;
&#42;
&#43;
&#44;
&#45;
&#46;
&#47;

&quot;



&amp;








espacio
signo de cierre de exclamación / admiración
comillas dobles
signo de número
signo de dólar
signo de porcentaje
signo "&" / ampersand
comilla / apóstrofe
paréntesis izquierdo
paréntesis derecho
asterisco
signo de más / adición
coma
signo de menos / sustracción / guíon / raya
punto
barra oblicua - barra de división
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
&#48;
&#49;
&#50;
&#51;
&#52;
&#53;
&#54;
&#55;
&#56;
&#57;
&#58;
&#59;
&#60;
&#61;
&#62;
&#63;











&lt;

&gt;
cero
uno
dos
tres
cuatro
cinco
seis
siete
ocho
nueve
dos puntos
punto y coma
signo de menor que
signo de igual
signo de mayor que
signo de interrogación - cierre
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
&#64;
&#65;
&#66;
&#67;
&#68;
&#69;
&#70;
&#71;
&#72;
&#73;
&#74;
&#75;
&#76;
&#77;
&#78;
&#79;















símbolo arroba














80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
&#80;
&#81;
&#82;
&#83;
&#84;
&#85;
&#86;
&#87;
&#88;
&#89;
&#90;
&#91;
&#92;
&#93;
&#94;
&#95;


























corchete izquierdo
barra inversa
corchete derecho
signo de intercalación - acento circunflejo
signo de subrayado
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
&#96;
&#97;
&#98;
&#99;
&#100;
&#101;
&#102;
&#103;
&#104;
&#105;
&#106;
&#107;
&#108;
&#109;
&#110;
&#111;















acento grave














112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
&#112;
&#113;
&#114;
&#115;
&#116;
&#117;
&#118;
&#119;
&#120;
&#121;
&#122;
&#123;
&#124;
&#125;
&#126;


























llave de apertura - izquierda
barra vertical
llave de cierre - derecho
signo de equivalencia / tilde
(no definido en estándar HTML 4)
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F













































(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F













































(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
(no definido en estándar HTML 4)
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF

¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬

®
¯
&#160;
&#161;
&#162;
&#163;
&#164;
&#165;
&#166;
&#167;
&#168;
&#169;
&#170;
&#171;
&#172;
&#173;
&#174;
&#175;
&nbsp;
&iexcl;
&cent;
&pound;
&curren;
&yen;
&brvbar;
&sect;
&uml;
&copy;
&ordf;
&laquo;
&not;
&shy;
&reg;
&macr;
espacio sin separación
signo de apertura de exclamación / admiración
signo de centavo
signo de Libra Esterlina
signo de divisa general
signo de yen
barra vertical partida
signo de sección
diéresis - umlaut
signo de derechos de autor - copyright
género feminino - indicador ordinal feminino
comillas anguladas de apertura
signo de no - símbolo lógico
guión débil
signo de marca registrada
macrón - raya alta
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
°
±
²
³
´
µ

·
¸
¹
º
»
¼
½
¾
¿
&#176;
&#177;
&#178;
&#179;
&#180;
&#181;
&#182;
&#183;
&#184;
&#185;
&#186;
&#187;
&#188;
&#189;
&#190;
&#191;
&deg;
&plusmn;
&sup2;
&sup3;
&acute;
&micro;
&para;
&middot;
&cedil;
&sup1;
&ordm;
&raquo;
&frac14;
&frac12;
&frac34;
&iquest;
signo de grado
signo de más o menos
superíndice dos - cuadrado
superíndice tres - cúbico
acento agudo - agudo espaciado
signo de micro
signo de fin de párrafo
punto medio - coma Georgiana
cedilla
superíndice uno
género masculino - indicador ordinal masculino
comillas anguladas de cierre
fracción un cuarto
fracción medio - mitad
fracción tres cuartos
signo de interrogación - apertura
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
À
Á
Â
Ã
Ä
Å
Æ
Ç
È
É
Ê
Ë
Ì
Í
Î
Ï
&#192;
&#193;
&#194;
&#195;
&#196;
&#197;
&#198;
&#199;
&#200;
&#201;
&#202;
&#203;
&#204;
&#205;
&#206;
&#207;
&Agrave;
&Aacute;
&Acirc;
&Atilde;
&Auml;
&Aring;
&AElig;
&Ccedil;
&Egrave;
&Eacute;
&Ecirc;
&Euml;
&Igrave;
&Iacute;
&Icirc;
&Iuml;
A mayúscula con acento grave
A mayúscula con acento agudo
A mayúscula con acento circunflejo
A mayúscula con tilde
A mayúscula con diéresis
A mayúscula con anillo
diptongo AE mayúscula (ligadura)
C cedilla mayúscula
E mayúscula con acento grave
E mayúscula con acento agudo
E mayúscula con acento circunflejo
E mayúscula con diéresis
I mayúscula con acento grave
I mayúscula con acento agudo
I mayúscula con acento circunflejo
I mayúscula con diéresis
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
à
á
â
ã
ä
å
æ
ç
è
é
ê
ë
ì
í
î
ï
&#224;
&#225;
&#226;
&#227;
&#228;
&#229;
&#230;
&#231;
&#232;
&#233;
&#234;
&#235;
&#236;
&#237;
&#238;
&#239;
&agrave;
&aacute;
&acirc;
&atilde;
&auml;
&aring;
&aelig;
&ccedil;
&egrave;
&eacute;
&ecirc;
&euml;
&igrave;
&iacute;
&icirc;
&iuml;
a minúscula con acento grave
a minúscula con acento agudo
a minúscula con acento circunflejo
a minúscula con tilde
a minúscula con diéresis
a minúscula con anillo
diptongo ae minúscula (ligadura)
c cedilla minúscula
e minúscula con acento grave
e minúscula con acento agudo
e minúscula con acento circunflejo
e minúscula con diéresis
i minúscula con acento grave
i minúscula con acento agudo
i minúscula con acento circunflejo
i minúscula con diéresis
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
Ð
Ñ
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
&#208;
&#209;
&#210;
&#211;
&#212;
&#213;
&#214;
&#215;
&#216;
&#217;
&#218;
&#219;
&#220;
&#221;
&#222;
&#223;
&ETH;
&Ntilde;
&Ograve;
&Oacute;
&Ocirc;
&Otilde;
&Ouml;
&times;
&Oslash;
&Ugrave;
&Uacute;
&Ucirc;
&Uuml;
&Yacute;
&THORN;
&szlig;
ETH islandesa mayúscula
N mayúscula con tilde - eñe mayúscula
O mayúscula con acento grave
O mayúscula con acento agudo
O mayúscula con acento circunflejo
O mayúscula con tilde
O mayúscula con diéresis
signo de multiplicación
O mayúscula with slash
U mayúscula con acento grave
U mayúscula con acento agudo
U mayúscula con acento circunflejo
U mayúscula con diéresis
Y mayúscula con acento agudo
THORN islandesa mayúscula
s minúscula (alemán) - Beta minúscula
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ
&#240;
&#241;
&#242;
&#243;
&#244;
&#245;
&#246;
&#247;
&#248;
&#249;
&#250;
&#251;
&#252;
&#253;
&#254;
&#255;
&eth;
&ntilde;
&ograve;
&oacute;
&ocirc;
&otilde;
&ouml;
&divide;
&oslash;
&ugrave;
&uacute;
&ucirc;
&uuml;
&yacute;
&thorn;
&yuml;
eth islandesa minúscula
eñe minúscula - n minúscula con tilde
o minúscula con acento grave
o minúscula con acento agudo
o minúscula con acento circunflejo
o minúscula con tilde
o minúscula con diéresis
signo de división
o barrada minúscula
u minúscula con acento grave
u minúscula con acento agudo
u minúscula con acento circunflejo
u minúscula con diéresis
y minúscula con acento agudo
thorn islandesa minúscula
y minúscula con diéresis

viernes, 19 de abril de 2013

Java: Convertir fecha y hora entre zonas horarias o timezones

Para cambiar fechas y horas en Java se usa la clase TimeZone. Existen varias formas de realizar esta conversión pero en este caso usaremos un DateFomat para obtener la fecha transformada en forma de un String. El siguiente código realiza el cambio de zona horaria:

La salida sería la siguiente:


Java: Manejo de Cadenas. Método String.split().

En Java el método split(String regEx) nos permite dividir una cadena en base a las ocurrencias de una expresión regular definida dentro. Ya que es una expresión regular puede ser simplemente una letra, coma, signo o una construcción mas elaborada.

Hay que tomar en cuenta que existen símbolos especiales en las expresiones regulares como el punto, el signo más, los corchetes, etc. No se pueden agregar literalmente ya que dan problema. En caso de querer usarlos como cadenas se debe indicar usando \\. Por ejemplo \\. \\+ \\[ etc.

A continuación código para ejemplificar el método:


La salida del código seria la siguiente:

jueves, 18 de abril de 2013

Java: Convertir Date a String

Para convertir un objeto del tipo Date a String debemos tomar en cuenta que java usa siempre un formato por default. Por suerte existe la clase DateFormat que tiene varias implementaciones pero en este caso la veremos con SimpleDateFormat. Estas clases nos permiten convertir un objeto Date a String usando un formato o sintaxis que se adecue a nuestra necesidades.

El siguiente ejemplo muestra el cambio de la fecha actual a varios formatos:


El código anterior nos permite obtener la fecha y la hora, pero se pueden obtener los minutos, los segundos, el año y cualquier otro tipo de información que este dentro de la fecha. El resultado del código anterior es el siguiente:


En la siguiente imagen se pueden observar algunos ejemplos de SimpleDateFormat con sus resultados en String.


lunes, 8 de abril de 2013

Instalar Linux Centos 6.4

CentOS es una distribución de Linux basada en Red Hat, y muy utilizada en entornos de Computación, donde las herramientas de clustering tienen un peso superior al resto de herramientas, y es que CentOS incorpora de forma nativa muchas aplicaciones dedicadas al agrupamiento de servidores.

Si bien es cierto estas aplicaciones pueden ser instaladas en cualquier otra distribución Linux, la facilidad que introduce CentOS ha hecho que esta distribución sea muy vista en Centro de Computación y todos aquellos lugares donde se desee mantener agrupaciones de servidores.



El siguiente video muestra como instalar CentOS paso a paso en su version 6.4:




jueves, 4 de abril de 2013

Java: Operadores especiales

Muchas veces nos encontramos en Java con un operador mas-igual (+=), por-igual (*=), etc. Sin saber que realizan. Aunque el título del post menciona operadores especiales, estos lo que tienen es que no son muy usados. La idea de usar estos operadores es reducir el numero de visitas de memoria que se hacen, aunque no se percibe en una corrida, si se usa en un bucle con miles de ciclos puede hacer una diferencia. El siguiente código muestra algunos ejemplos.



Como se puede observar, estos operadores no se limitan simplemente a operaciones entre variables tipo int. También puede usarse en cualquier tipo de variable u objeto que utilice los operadores básicos (+,-,*,/) como se ve en el String para concatenar. El código anterior, daría como resultado lo siguiente: