Hoy vamos a la inversa del otro día. Queremos generar una clase con la cual podamos consumir un determinado web service.
miércoles 13 de julio de 2011
jueves 7 de julio de 2011
Codigos Postales - Argentina
La idea prncipal de este tutorial es enseñarle como aprovechar el sistema de Codigo Postales del Correo Argentino. Veran que se puede obtener un codigo postal de una ciudad simplemente haciendo un Post a una pagina determinada.Es realmente facil.
Cada provincia tiene un codigo. Ese codigo se usa para formar la pagina a la cual se le va hacer la peticion. Como datos hay que pasarle la variable localidad con el nombre entero o uno parte de la ciudad que estemos buscando. Como resultaro obtendremos codigo html, que representa una lista HTML con los resultado.
Aca les paso el codigo, esta hecho en python pero es muy facil de interpretar y llevar a otro lenguaje.
Cada provincia tiene un codigo. Ese codigo se usa para formar la pagina a la cual se le va hacer la peticion. Como datos hay que pasarle la variable localidad con el nombre entero o uno parte de la ciudad que estemos buscando. Como resultaro obtendremos codigo html, que representa una lista HTML con los resultado.
Aca les paso el codigo, esta hecho en python pero es muy facil de interpretar y llevar a otro lenguaje.
miércoles 6 de julio de 2011
Detectar dispositivos móviles en Blogger
Tratando de hacer este blog muchísimo más amigable para smartphone y además como parte del rediseño completo del sitio me encontré husmeando en las plantillas de blogger con el siguiente código:
<b:if cond='data:mobile == "false"'>Que en definitiva te permite detectar si el dispositvo es un movíl o si es una computadora.
martes 5 de julio de 2011
Buscar coordenas de una ciudad usando Google
Hoy necesitaba buscar las coordenadas de varias ciudades de Argentina, por lo que hice este scirpt.
Toma como entrada un arivo llamado citys.txt con el formato "codigo postal, nombre ciudad".
Y devuelve un archivo con las coordenadas, y la provincia entre otras cosas.
Toma como entrada un arivo llamado citys.txt con el formato "codigo postal, nombre ciudad".
Y devuelve un archivo con las coordenadas, y la provincia entre otras cosas.
Etiquetas:
Desarrollo,
Google,
Javascript,
minidom,
python
Asignarle un Alias a un Namespaces en Visual Studio
Otra cortita y al pies. Esta es mas bien un SNIPPET de código. Muchas veces tenemos namespace de nombre largo o de complicada lectura y lo que queremos es reducir el impacto visual y mejorar la legilibilidad del código, sobretodo si estamos compartiendo o trabajando en conjunto sobre el mismo. Es por esta razones que resulta interesante asignarle alias a los NAMESPACES.
El código necesario es el siguiente:
El código necesario es el siguiente:
Etiquetas:
Alias para Namespace,
C#,
Desarrollo,
Snippet
Generar una Interface a partir de un WSDL
Cortita y al pie!
Un par de veces en el trabajo me enfrenté al problema de tener que a partir de un WSDL tener que generar la interfaz para un Web Service de manera de que otro servicio pueda consumir los datos que le iba a ofrecer. En varias de esas oportunidades terminabamos cambiando la óptica, porque no conocía la manera de como generar un Web Service a partir de un WSDL. Pero hoy me enteré en la búsqueda de otra cosa que con el siguiente comando, podemos generar a partir de un WSDL una interfaz PUNTO.NET para luego crear nuestro Web Service. Lo único que restaría es hacer una clase que la implemente.
El comando es el siguiente:
Un par de veces en el trabajo me enfrenté al problema de tener que a partir de un WSDL tener que generar la interfaz para un Web Service de manera de que otro servicio pueda consumir los datos que le iba a ofrecer. En varias de esas oportunidades terminabamos cambiando la óptica, porque no conocía la manera de como generar un Web Service a partir de un WSDL. Pero hoy me enteré en la búsqueda de otra cosa que con el siguiente comando, podemos generar a partir de un WSDL una interfaz PUNTO.NET para luego crear nuestro Web Service. Lo único que restaría es hacer una clase que la implemente.
El comando es el siguiente:
domingo 3 de julio de 2011
Separador (clearfix) CSS sin etiquetas HTML
Cada vez que utilizamos la propiedad float:left/right en nuestro CSS, para armar la estructura de nuestro sitio, tenemos que estar atentos a que si los bloques que estamos "flotando" tienen distinto alto puede ocurrirnos que los bloquespresenten un comporamiento no deseado.
Es por esto que al final de los elemento flotantes colocabamos un elemento de bloque con la propiedad clear:both para solucionar este inconveniente o asegurar la disposición que estabamos buscando. Ya que este elemento se situaba por debajo de todos los bloques y cerraba nuestro contenedor.
El problema de esta solución es que estamos agregando HTML a la página que no tiene ningun sentido (semántico) para el contenido y el significado del sitio. Además si el contenido que se genera es dinámico tenemos que asegurarnos que el elemento se agregue al final para que no produzca efectos colaterales y se cierre correctamente el contenedor.
Es por eso que desde CSS-Tricks nos acercan esta solución CSS:
Es por esto que al final de los elemento flotantes colocabamos un elemento de bloque con la propiedad clear:both para solucionar este inconveniente o asegurar la disposición que estabamos buscando. Ya que este elemento se situaba por debajo de todos los bloques y cerraba nuestro contenedor.
El problema de esta solución es que estamos agregando HTML a la página que no tiene ningun sentido (semántico) para el contenido y el significado del sitio. Además si el contenido que se genera es dinámico tenemos que asegurarnos que el elemento se agregue al final para que no produzca efectos colaterales y se cierre correctamente el contenedor.
Es por eso que desde CSS-Tricks nos acercan esta solución CSS:
.grupo:before,
.grupo:after {
content:"";
display:table;
}
.grupo:after {
clear:both;
}
.grupo {
zoom:1; /* For IE 6/7 */
}
viernes 1 de julio de 2011
Título semántico en listas HTML
Al tratar de otorgarle más semántica nuestro marcado HTML nos hemos encontrado que no exista dentro de nuestra lista (UL) una etiqueta para informar el título de la lista (algo que describa los elementos de la misma). En cambio etiquetas como "fieldset" tienen a "legend" para titularlas
Ejemplo:
También tenemos a "thead" y "th" para generar encabezados semánticos a nuestras tablas.
Como en las listas no existe nada de esto, pensé en utilizar el atributo title de todo elemento y combinarlo un poco con los pseudo-elementos "before" y "after" para poder obtener mi título semántico.
El código es el siguiente:
Y el CSS aplicado:
Para obtener este resultado
Ejemplo:
También tenemos a "thead" y "th" para generar encabezados semánticos a nuestras tablas.
Como en las listas no existe nada de esto, pensé en utilizar el atributo title de todo elemento y combinarlo un poco con los pseudo-elementos "before" y "after" para poder obtener mi título semántico.
El código es el siguiente:
<ul title="Navegadores que soportan título semático en UL OL DL">
<li>IE 8+</li>
<li>FF 3+</li>
<li>Chrome</li>
<li>Opera 6+</li>
<li>Safari 4+</li>
</ul>
Y el CSS aplicado:
ul{
list-style-type:square;
padding-left:20px;
}
ul:before{
content:attr(title);
position:relative;
left:-20px;
color:blue;
font-weight:bold;
}
Para obtener este resultado
jueves 23 de septiembre de 2010
Instalar Impresora HP en Debian
Seguramente han logrado instalar sus impresoras utilizando Cups. Pero que hay si estas son de las que vienen con Wifi y encima traen scanner. ¿Sera posible hacerlo funcionar en linux?
Pues claro. En los repositorios un par de paquetes importanticimos para la instalacion de las impresoras/scanner Hp. Este paquete se llama hplip. Tambien recomiendo instalar hplip-gui. Para esto desde consola ejecutamos como root:
Una vez que tengamos esto instalado. Recomiendo no usar cups para instalar la impresora. Ya que esta aplicacion de HP nos la configurara automaticamente y la tendremos disponible para mas tarde configurarla desde CUPS.
Entonces para poder instalarla desde una consola como root
Pues claro. En los repositorios un par de paquetes importanticimos para la instalacion de las impresoras/scanner Hp. Este paquete se llama hplip. Tambien recomiendo instalar hplip-gui. Para esto desde consola ejecutamos como root:
# aptitude install hplip hplip-gui
Una vez que tengamos esto instalado. Recomiendo no usar cups para instalar la impresora. Ya que esta aplicacion de HP nos la configurara automaticamente y la tendremos disponible para mas tarde configurarla desde CUPS.
Entonces para poder instalarla desde una consola como root
Etiquetas:
Debian,
f4500,
f4580,
hp,
hp-toolbox,
hplip,
impresora,
instalar drivers,
Linux,
scanner,
wifi
lunes 20 de septiembre de 2010
Un simple pero efectivo atoi
Hace mucho que no escribo en esta seccion del blog, pero bueno, no se alarmen. Hoy en uno de los foros que leo me pidieron que les enseñe a crear un atoi (convertir de cadena a entero) en c. Y como fue codigo 100% hecho por mi se me ocurrio compartirlo. Ademas por la explicacion que hice. Aqui va el codigo.
'5' - '0' = 5
'2' - '0' = 2
La idea es restar siempre el primer elemento de la secuencia ordenada de caracteres que queramos. Es posible aplciar esta tecnica para averiguar el numero de letra( 'g' - 'a').
Luego pensemos en un poco de matematica:
2345 = 2 x 1000 + 3 * 100 + 4 * 10 + 5
Esta idea nos da una pequeña intuicion. Tenemos que ir multiplicando cada digito(obtenido con la tecnica anterior) por un multiplo de 10 segun corresponda. Pero no es muy conveniente llegar al digito menos representativo para empezar a multiplicar.
Existe una mejor tecnica. Miren esta descomposicion efectuada gracias a la distribucion del producto:
2345 = 2 x 1000 + 3 * 100 + 4 * 10 + 5 = (2 * 100+ 3 * 10 + 4) * 10 + 5
Si seguimos desarrollando de esa manera, observaremos que al agregar un nuevo digito al numero, simplemente multiplicamos por 10 el numero anterior y le sumamos el digito siguiente:
numero = numero * 10 + digito
Todos sabemos que al multiplicar un numero por diez, se corre la coma a la derecha, apareciendo un cero final. Simplemente hay que sumarle el digito obtenido y listo.
Un agregado mas, en el for se recorre hasta que se obtiene un final de cadena. Pero se puede modificar para que recorra siempre que se obtenga un digito. Cuando este no aparezca mas se corta. Osea podremos parciar numeros desde cadenas como estos "1234holamundo"
Les dejo la pista para esto. En el for deberian chequear esta condicion: '0'<= cadena[i]<='9'
numero = 0;
for(i=0;cadena[i] != '\0' ;i ++) {
digito=cadena[i] - '0';
numero = numero * 10 + digito;
}
Como cada caracter es representado por un numero, a esto le podemos restar otros caracteres para obtener otro caracter o un numero. Por ejemplo para obtener el digito 5 desde el caracter '5' podemos hacer:'5' - '0' = 5
'2' - '0' = 2
La idea es restar siempre el primer elemento de la secuencia ordenada de caracteres que queramos. Es posible aplciar esta tecnica para averiguar el numero de letra( 'g' - 'a').
Luego pensemos en un poco de matematica:
2345 = 2 x 1000 + 3 * 100 + 4 * 10 + 5
Esta idea nos da una pequeña intuicion. Tenemos que ir multiplicando cada digito(obtenido con la tecnica anterior) por un multiplo de 10 segun corresponda. Pero no es muy conveniente llegar al digito menos representativo para empezar a multiplicar.
Existe una mejor tecnica. Miren esta descomposicion efectuada gracias a la distribucion del producto:
2345 = 2 x 1000 + 3 * 100 + 4 * 10 + 5 = (2 * 100+ 3 * 10 + 4) * 10 + 5
Si seguimos desarrollando de esa manera, observaremos que al agregar un nuevo digito al numero, simplemente multiplicamos por 10 el numero anterior y le sumamos el digito siguiente:
numero = numero * 10 + digito
Todos sabemos que al multiplicar un numero por diez, se corre la coma a la derecha, apareciendo un cero final. Simplemente hay que sumarle el digito obtenido y listo.
Un agregado mas, en el for se recorre hasta que se obtiene un final de cadena. Pero se puede modificar para que recorra siempre que se obtenga un digito. Cuando este no aparezca mas se corta. Osea podremos parciar numeros desde cadenas como estos "1234holamundo"
Les dejo la pista para esto. En el for deberian chequear esta condicion: '0'<= cadena[i]<='9'
Etiquetas:
atoi,
C,
c++,
char to int,
conversion,
Desarrollo
miércoles 18 de agosto de 2010
Inicio de sesion automatico en Windows XP/Vista/7
Nos molesta mucho tener que escribir la contraseña que cada vez que prendemos la sesion. Pues aqui les paso un truquito para iniciar automatica.
control userpasswords2
Escojemos la cuenta de usuario que queremos utilizar y destildamos la opcion “Los usuarios deben introducir un nombre de usuario y contraseña para utilizar el ordenador”.
Aqui nos pediran la contraseña del usuario y listo. Damos en aceptar... Apartir de ahora se iniciara sesion automaticamente.
Vamos a inicio, ejecutar, y escribimos: (por lo general en windows vista o seven no aparece el boton ejecutar, simplemente en el buscador ponemos "Ejecutar")
control userpasswords2
Escojemos la cuenta de usuario que queremos utilizar y destildamos la opcion “Los usuarios deben introducir un nombre de usuario y contraseña para utilizar el ordenador”.
Aqui nos pediran la contraseña del usuario y listo. Damos en aceptar... Apartir de ahora se iniciara sesion automaticamente.
jueves 12 de agosto de 2010
Montar imagenes .iso .nrg en Linux
Aqui les paso dos rapidos comandos, para montar Iso y NRG (archivo imagen del Nero) desde la consola de linux:
sudo mount -t iso9660 -o loop archivo.iso /directorio/de/montaje
Para montar los NRG debemos agregar un pequeño offset para asi saltaernos datos que solo le importan al Nero.
sudo mount -t iso9660 -o loop archivo.iso /directorio/de/montaje
Para montar los NRG debemos agregar un pequeño offset para asi saltaernos datos que solo le importan al Nero.
sudo mount -t iso9660 -o loop,offset=307200 imagen.nrg /directorio/de/montaje
Etiquetas:
consola,
Imagen de CD,
Iso,
Linux,
montar iso,
mount
domingo 25 de julio de 2010
Convertir cadenas de caracteres a fecha en Excel
| Microsoft Excel - Todas las Versiones |
Muchas veces se dá al estar trabajando con distintos sistemas de información que al exportar la información desde el sistema a Excel para producir informes resulta que las fechas, no vienen en un formato legible para Excel, provocandonos un dolo de cabeza para nosostros. Aca voy a compartir con uds una simple formula para convertir las siguientes tipos de cadenas de texto a fechas:
- dd-mm-aaaa
- dd.mm.aaaa
=FECHANUMERO(CONCATENAR(EXTRAE(Celda;1;2);"/";EXTRAE(Celda;4;2);"/";EXTRAE(Celda;7;4)))
Donde Celda representa la celda donde esta la cadena a convertir.Finalmente seteamos el formato de la celda como fecha.
Para convertir las siguientes tipo de cadenas:
- dd-mm-aa
- dd.mm.aa
=FECHANUMERO(CONCATENAR(EXTRAE(Celda;1;2);"/";EXTRAE(Celda;4;2);"/";EXTRAE(Celda;7;2)))
Donde Celda representa la celda donde esta la cadena a convertir.
Finalmente seteamos el formato de la celda como fecha.
Y el ultimo caso es para fechas con el siguiente formato:
- ddmmaaaa
=FECHANUMERO(CONCATENAR(EXTRAE(Celda;1;2);"/";EXTRAE(Celda;3;2);"/";EXTRAE(Celda;5;4)))
Donde Celda representa la celda donde esta la cadena a convertir.
Finalmente seteamos el formato de la celda como fecha.
Desactivar la reproduccion automatica de CD/DVD y Pendrive en Windows XP
Esta cansado de que muchos virus le infecten la maquina porque conectar un Pendrive en su computadora. Sos de lo que trabajan en la escuela o el trabajo y traes informacion en el pendrive y se te infectan la maquina.
Al hacer esto saldra una ventana que nos dejara elegir entre varias opciones. Hacemos click en Habilitada y en "Desactivar reproduccion automaticab en:" elegimos la opcion en todos los dipositivos.
Una vez hecho esto, para no esperar a reiniciar hay que ejecutar el siguiente comando: gpupdate
Y Listo!! Con eso desactivamos las reproducciones automaticas!
La mayoria de estos virus se instalan en un archivo conocodi como "autorun.inf" que windows esta acostumbrado a ejecutar cuando se conecta un dispositivo. Por eso te recomendamos desactivar esta opcion de la siguiente mantera:
Primero hacemos click en inicio y vamos a ejecutar. Despues tipeamos gpedit.msc. En la ventana que se abrio debemos ir, en la barra de la izquierda, a
Configuración del equipo/Plantillas Administrativas/Sistema y luego buscamos la opcion Desactivar reproducción automática.Al hacer esto saldra una ventana que nos dejara elegir entre varias opciones. Hacemos click en Habilitada y en "Desactivar reproduccion automaticab en:" elegimos la opcion en todos los dipositivos.
Una vez hecho esto, para no esperar a reiniciar hay que ejecutar el siguiente comando: gpupdate
Y Listo!! Con eso desactivamos las reproducciones automaticas!
Etiquetas:
CD,
DVD,
pendrive,
reproduccion automatica,
USB,
Windows XP
Cómo modificar el espacio reservado en disco a Restaurar sistema en Windows Vista
Como pudimos observar, en Windows XP modificar este tamaño era simple. Accediamos a mi PC, propiedades, ibamos a la solapa Restaurar Sistema. Elegiamos uno de los disco y podiamos modificar el tamaño.
Para ver cuál es el espacio máximo asignado a las copias sombra, siga estos pasos:
1) Hacemos click en inicio y y vamos a busqueda rapida.
2) Escriba cmd y seleccione el programa ofrecido tras finalizar la búsqueda con el botón derecho del mouse. Haga clic sobre Ejecutar como administrador.
3) Proporcione credenciales administrativas o haga clic sobre Continuar, lo que proceda.
4) En la ventana de línea de comandos, tipee lo siguiente y pulse INTRO:
Si somos de esas personas que cuidamos la pc y no precisamos tanto espacio para restaurar el equipo, por lo tanto queremos reducirlo debe hacer lo siguiente:
En la misma consola que abrimosanteriormente tipeamos:
Vssadmin devolverá el siguiente mensaje: Se cambió correctamente el tamaño de la asociación de almacenamiento de instantáneas.
Pero desde Windows Vista esta opcion se ah modificado y no se encuentra mas ahi. Desde ahora hay que hacerlo desde la consola. Por eso aqui unos comandos utiles para poder resolver esto:
1) Hacemos click en inicio y y vamos a busqueda rapida.
2) Escriba cmd y seleccione el programa ofrecido tras finalizar la búsqueda con el botón derecho del mouse. Haga clic sobre Ejecutar como administrador.
3) Proporcione credenciales administrativas o haga clic sobre Continuar, lo que proceda.
4) En la ventana de línea de comandos, tipee lo siguiente y pulse INTRO:
vssadmin list shadowstorageObserve en la salida del comando la línea Espacio máximo del almacenamiento de la instantánea:. Ese el espacio máximo reservado.
Si somos de esas personas que cuidamos la pc y no precisamos tanto espacio para restaurar el equipo, por lo tanto queremos reducirlo debe hacer lo siguiente:
En la misma consola que abrimosanteriormente tipeamos:
vssadmin resize shadowstorage /on=C: /For=C: /MaxSize=5GB(reemplazamos C por la unidad correspondiente y tambie modificamos MaxSize por el valor deseados)
Vssadmin devolverá el siguiente mensaje: Se cambió correctamente el tamaño de la asociación de almacenamiento de instantáneas.
Tener en cuanta que en la unidad donde este instalado el sistema es donde mayor tiene que ser el espacio reservado. A demas, cuanto menos espacio alla menor va a ser la cantidad de instantaneas. Por lo que no se podra vovler varios dias atras.
Suscribirse a:
Entradas (Atom)