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.
martes, 5 de julio de 2011
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:
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Pablo
0
comentarios
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:
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Pablo
0
comentarios
Etiquetas:
C#,
Desarrollo,
Web Services,
WSDL
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
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Pablo
0
comentarios
Etiquetas:
CSS,
Desarrollo,
HTML,
Semántica
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
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Sam
0
comentarios
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'
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Sam
0
comentarios
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:
Para montar los NRG debemos agregar un pequeño offset para asi saltaernos datos que solo le importan al Nero.
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
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Sam
0
comentarios
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!
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Sam
0
comentarios
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.
jueves, 22 de julio de 2010
Acceso web desde Python
Este tutorial se trata de acceder a una pagina web desde Python, obtener su codigo de fuente, y asi poder realizar ciertas acciones.
Empecemos por un codigo simple pero efectivo:
Ahora un poco mas avanzado. Veremos como pasar informacion por metodo "POST" muy util para llenar formularios automaticamente. O tambien logins.
Ademas pueden ver que añadimos la variable con los datos al metodo "urlopen" como un parametro mas.
Fijense que estamos tratando de loguernos con facebook. Por lo que busque los nombre de los campos de usuario y contraseña, como tambien la pagina a la que es redireccionado el explorador al tocar el boton de login.
Pero son necesarias un par mas de cosas para poder loguernos en facebook. Necesitamos activar las cookies; sino nos rechazaran. Para esto miren este codigo:
Pero se llevaran una gran sorpresa si lo prueban con facebook. Ya que facebook tiene cierta restriccion con las cookies. Al ingresar a la pagina principal de facebook, se setean ciertas cookies que son necesarias para loguearse. Por lo tanto, pueden observar que no funcionan las cookies con facebook, en cambio, si funciona con otras paginas.
Pero siempre existe una solucion para esto. La idea es acceder primero a la pagina principal de facebook, obtener las cookies. Y luego loguearnos. Asi quedara el codigo:
Empecemos por un codigo simple pero efectivo:
import urllib2,urllibCon ese simple codigo veremos que se imprime en la consola el codigo de fuente de la pagina de google.
f = urllib2.urlopen("https://www.google.com.ar")
print f.read()
f.close()
Ahora un poco mas avanzado. Veremos como pasar informacion por metodo "POST" muy util para llenar formularios automaticamente. O tambien logins.
import urllib2,urllibComo veran añadimos una variable mas al codigo con la informacion del metodo POST. Por lo general se debe guardar el nombre del objeto seguido con la informacion. Pero para esto sugiero leer tutoriales de programacion web.
params = urllib.urlencode({"email": "xxxxxxxxxxxxxx@gmail.com", "pass": "xxxx"})
f = urllib2.urlopen("https://login.facebook.com/login.php?login_attempt=1",params)
print f.read()
f.close()
Ademas pueden ver que añadimos la variable con los datos al metodo "urlopen" como un parametro mas.
Fijense que estamos tratando de loguernos con facebook. Por lo que busque los nombre de los campos de usuario y contraseña, como tambien la pagina a la que es redireccionado el explorador al tocar el boton de login.
Pero son necesarias un par mas de cosas para poder loguernos en facebook. Necesitamos activar las cookies; sino nos rechazaran. Para esto miren este codigo:
import urllibAqui lo que hacemos previamente es crear un objeto "opener" de la libreria urllib pero le seteamos ciertos campos antes de abrir una pagina. No como antes que abriamos la paginade una. Simplemente este campo es para activar las Cookies.
import urllib2
datos = urllib.urlencode({'email':'tu_correo','pass':'tu_contrasenia'})
o = urllib2.build_opener(urllib2.HTTPCookieProcessor)
res = o.open('https://login.facebook.com/login.php?login_attempt=1', datos)
Pero se llevaran una gran sorpresa si lo prueban con facebook. Ya que facebook tiene cierta restriccion con las cookies. Al ingresar a la pagina principal de facebook, se setean ciertas cookies que son necesarias para loguearse. Por lo tanto, pueden observar que no funcionan las cookies con facebook, en cambio, si funciona con otras paginas.
Pero siempre existe una solucion para esto. La idea es acceder primero a la pagina principal de facebook, obtener las cookies. Y luego loguearnos. Asi quedara el codigo:
import urllib
import urllib2
datos = urllib.urlencode({'email':'tu_correo','pass':'tu_contrasenia'})
o = urllib2.build_opener(urllib2.HTTPCookieProcessor)
o.open('https://www.facebook.com')
res = o.open('https://login.facebook.com/login.php?login_attempt=1', datos)
martes, 20 de julio de 2010
Instalar placa wireless Realtek RTL8101E/RTL8102E
Yo, como uno entre otros, hemos tenido problema al instalar este tipo de placa wifi en una Notebook. Despues de unos dias de lucho logre encontrar la solucion.
Buscando por internet me topaba siempre con los driever de mi placa. Los compilaba pero nada sucedia...mi placa parecia ser detectada, veia las redes pero a la hora de conectar nada sucedia.
Por eso decidi cambiar mi distribucion hacia Debian. Durante la instalacion el mismo sistema me advirtio que iba a tener problema con cierto driver porque no era 100% software libre. Asi que me recomendo agregar las ramas contrib y non-free al siguiente repositorio:
deb http://ftp.de.debian.org/debian/ squeeze main
Nuestro repositorio deberia quedar asi:
deb http://ftp.de.debian.org/debian/ squeeze main contrib non-freeEsto se puede hacer desde Synaptics o desde el archivo /etc/apt/sources.list.
Una vez que tenemos esto, debemos actualizar los repositorios (aptitude update). Y ahora con los nuevos paquetes detectados debemos buscar el paquete: firmware-realtek.
Este paquetes nos instala el driver de la placa de red. Justamente, esto era lo que me faltaba antes para que terminara de funcionar.
Como acababa de hacer una instalacion limpia de debian, todavia me faltaban los driver de mi placa de red wifi. Asi que volvi a entrar a esta pagina: www.realtek.com , Buscamos los driver de nuestra placa y los decargamos.
Luego los descomprimimos, ya vienen instalados programas visuales para hacer esto.
En la carpeta que descomprimimos vamos a una consola, y ahi tipeamos como superusuario:
makemake install
Con esto ya tenemos instalado el driver. Solo nos faltaria rebootear la Pc o desde la consola escribir:
modprobe r8192se_pci
Y eso es todo.
Por si no encuentran el firware desde el synaptics, por problemas de versiones (yo lo instale en la version squeeze) aca el dejo el link del paquete: Firmware-realtek
lunes, 26 de abril de 2010
Guia rapida SVN - Subversion
Subversion es lo que se llama un sistema de control de versiones centralizado (como CVS). Esto se usa con muchísima frecuencia en la industria del software. Su uso -tal como su nombre lo indica- es para ir controlando las distintas versiones del código fuente. Para explicarlo de manera sencilla digamos que hay un repositorio que tiene el código de una aplicación X y 3 miembros (A, B y C).
En una primera instancia los 3 miembros descargan el código fuente y “A” modifica un archivo y luego lo sube al servidor. Así, en el servidor tendremos lo que se llama una nueva revisión del proyecto. El miembro B “actualiza” y se le indica que hay un archivo que ha sido modificado y se descarga en su equipo. Le parece bien el cambio, pero le hace un arreglo y edita otro archivo y luego actualiza la versión del servidor. Un rato después el último miembro actualiza el proyecto y se encuentra con 2 nuevos archivos que han sido modificados.* Así cada miembro del proyecto puede acceder cada vez que va a trabajar a los cambios que han hecho los demás.*
Instalación
Si queremos llegar a alguna parte primero necesitamos descargar la herramienta. Como es habitual, podemos encontrarla en los repositorios con el nombre de subversion.
Sistema > Administración > Gestor de paquetes Synaptic
Buscamos subversion y lo instalamos
O lo instalamos de manera fácil:
sudo apt-get install subversion
Conceptos
Para utilizar las funciones básicas de Subversion tenemos que manejar algunos conceptos:
Lo primero será descargarnos el código del proyecto con el siguiente comando (en la carpeta donde pensamos trabajar posteriormente):
$ svn checkout http://svn2.assembla.com/svn/nalga
Luego de la descarga subiremos nuestras modificaciones:
$ svn commit
Puede ser que se abra tu editor de texto (en mi caso Nano) para escribir un mensaje que acompañe la revisión y cuando salgas del editor tu archivo se enviará al repositorio.
Lo más probable que para poder subir archivos necesites tener una cuenta que te será entregada por el admin del servidor y este será el momento que te la soliciten (Nombre de Usuario y Contraseña).
Si acaso quieres agregar un mensaje y evitar que se abra el editor de texto puede agregar el modificador -m:
$ svn commit -m mensaje
En tu segundo día vas a seguir trabajando, pero antes debes comprobar si algún miembro hizo alguna modificación. Podrías descargar nuevamente todo el código, pero no tendría mucho sentido ya que seguramente no existirán cambios en todos los archivos; por esto Subversion cuenta con nuestra tercera función básica:
$ svn update
Como no nos gusta gastar nuestros dedos de más podemos utilizar abreviaciones para estas funciones: checkout (co), commit (ci) y update (up). Otras funciones útiles son:
log: Muestra los mensajes de las revisiones
diff (di): Muestra las diferencias entre la revisión seleccionada
help: La nunca bien ponderada ayuda (que por cierto, fue la que me enseño)
En una primera instancia los 3 miembros descargan el código fuente y “A” modifica un archivo y luego lo sube al servidor. Así, en el servidor tendremos lo que se llama una nueva revisión del proyecto. El miembro B “actualiza” y se le indica que hay un archivo que ha sido modificado y se descarga en su equipo. Le parece bien el cambio, pero le hace un arreglo y edita otro archivo y luego actualiza la versión del servidor. Un rato después el último miembro actualiza el proyecto y se encuentra con 2 nuevos archivos que han sido modificados.* Así cada miembro del proyecto puede acceder cada vez que va a trabajar a los cambios que han hecho los demás.*
Instalación
Si queremos llegar a alguna parte primero necesitamos descargar la herramienta. Como es habitual, podemos encontrarla en los repositorios con el nombre de subversion.
Sistema > Administración > Gestor de paquetes Synaptic
Buscamos subversion y lo instalamos
O lo instalamos de manera fácil:
sudo apt-get install subversion
Conceptos
Para utilizar las funciones básicas de Subversion tenemos que manejar algunos conceptos:
- Repositorio: Lugar de la red donde se almacena el código fuente del proyecto.
- Check-out (co): Descargar el código fuente desde el repositorio.
- Check-in o commit (ci): Subir los archivos modificados al repositorio.
- Update (up): Comparar el código de mi equipo con el del repositorio y descargar sólo las modificaciones.
Lo primero será descargarnos el código del proyecto con el siguiente comando (en la carpeta donde pensamos trabajar posteriormente):
$ svn checkout http://svn2.assembla.com/svn/nalga
Luego de la descarga subiremos nuestras modificaciones:
$ svn commit
Puede ser que se abra tu editor de texto (en mi caso Nano) para escribir un mensaje que acompañe la revisión y cuando salgas del editor tu archivo se enviará al repositorio.
Lo más probable que para poder subir archivos necesites tener una cuenta que te será entregada por el admin del servidor y este será el momento que te la soliciten (Nombre de Usuario y Contraseña).
Si acaso quieres agregar un mensaje y evitar que se abra el editor de texto puede agregar el modificador -m:
$ svn commit -m mensaje
En tu segundo día vas a seguir trabajando, pero antes debes comprobar si algún miembro hizo alguna modificación. Podrías descargar nuevamente todo el código, pero no tendría mucho sentido ya que seguramente no existirán cambios en todos los archivos; por esto Subversion cuenta con nuestra tercera función básica:
$ svn update
Como no nos gusta gastar nuestros dedos de más podemos utilizar abreviaciones para estas funciones: checkout (co), commit (ci) y update (up). Otras funciones útiles son:
log: Muestra los mensajes de las revisiones
diff (di): Muestra las diferencias entre la revisión seleccionada
help: La nunca bien ponderada ayuda (que por cierto, fue la que me enseño)
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Publicado por
Pablo
0
comentarios
Etiquetas:
Comandos,
Linux,
Subversion,
SVN
Suscribirse a:
Entradas (Atom)