Software Libre y GNU linux
Bienvenidos al Blog de zkorpio. sitio para tratar temas acerca de Software libre.

Independientemente del sistema operativo que usemos sea este privativo o libre algo super importante que debemos hacer cuando administramos una red es hacer el denominado subnetting.


A que me refiero con esto? lo voy a explicar con un ejemplo:

imaginemonos que estamos en la empresa X y ellos ese momento tienen a su disposiciòn 16 màquinas, estas se van a conectar por una red de area local (lan), entonces nuestro trabajo es asignar a cada una de éstas una ip para que se puedan identificar en dicha red.

Podríamos tomar en consideraciòn que al no ser una red muy grande podemos utilizar una de clase C que va de los siguientes rangos: 192.xxx.xxx.xxx hasta 223.xxx.xxx.xxx y este tiene una mascara de subred 255.255.255.0

Digo que podríamos utilizar este tipo de red porque si nos fijamos en su mascara al tener un solo 0 esto quiere decir que podríamos tener hasta 255 máquinas conectadas cada una con su ip teóricamente porque en realidad podríamos usar 253 direcciones pues hay 2 que se reservan para uso de red y broadcast.

La parte facil es que podría usar cualquiera de estas 253 posibilidades para asignar a mis máquinas una ip ej:

maquina 1= 192.168.0.50 maquina 2= 192.168.0.80 maquina 3= 192.168.0.150 . . . maquina 16= 192.168.0.230

Pero al hacer esto estaríamos desperdiciando 237 ips que quedarían por ahi regadas (253-16) y esto no es recomendable pues puede degradar el rendimiento de nuestra red (cada vez que se hace broadcast tengo que comunicarme con tooodo mi rango de 253 posibilidades) y tambien podría tener problemas de seguridad pues los usuarios podrian cambiarse a su antojo de ips y de esta forma evitar algun tipo de bloqueo a nivel de direcciones, saltarse el proxy etc...

Lo mejor es entonces tratar de usar esta clase de red "C" pero acomodandolo a nuestras necesidades tratando en lo posible de que no queden muchas direcciones libres, de esta forma obtengo un mejor performance y de paso le doy un toque de seguridad, todo esto lo hago con el famoso subnetting.

Entonces el requisito del problema es claro: Deseo tener una red en la que solo use 16 direcciones ip, y evitar en lo posible tener regadas el resto de las 237 direcciones que no voy a usar.

Al grano, veamos un poquito de teoría específica que nos va a servir mas adelante 1) cada direccion ip ej: 192.68.10.16 si lo transformamos a codigo binario no es mas que un conjunto de ceros y unos entonces:

192.168.10.16 == 11000000.10101000.00001010.00010000

con esto deducimos que la direccion ip no es mas que un conjunto de 4 octetos binarios.

2) si nos fijamos en la mascara de esta clase de red clase C que es 255.255.255.0 si decimos que solo podemos usar 255 direcciones (teoricas) podemos deducir entonces que solo el ultimo octeto será usado para nuestros hosts y en binario nos quedaría:

255.255.255.0 == 11111111.11111111.11111111.00000000
                 ---------\/---------------.---\/---
                          RED                 HOST
Si has podido notar de ahora en adelante VAMOS A USAR 1 PARA NUESTRA PARTE DE RED Y 0 PARA NUESTRA PARTE DE HOST esto es muy importante para lo que vamos a hacer mas adelante.

Para hacer subnetting tenemos una pequeña formula: 2(exp n)-2 (dos elevada a la N menos 2) para no complicarnos solamente usaremos en principio 2(exp n)


Con esta premisas vamos para adelante:

les recuerdo el enunciado: Sea la red 192.168.10.0 (con esto me refiero a la red) deseo hacer subnetting para 16 usuarios.

1)al ser una red clase C mi mascara pura (cuando uso toooodas las 255 ips) será 255.255.255.0 entonces necesito subnetear la parte de host o sea mi mascara comenzaria asi:

255.255.255.00000000

2)para que pueda dejar solo 16 hosts para que se puedan usar entonces necesito pasar lo que me sobre al segmento de red para esto empleo la formulita 2(exp n) :

2(exp n)== 16 (host que necesito) => n=5 => 2(exp 5)==32

pero porque no use n=4 asi tendría justo los 16 hosts que necesito? No lo hice porque ese 16 es teórico y lo que necesito en realidad serían unos 18 para que pueda usar efectivamente mis 16 y como el numero que le sigue a 4 es 5 entonces para n uso el 5...

3) vamos a trabajar con la parte de 00000000 de nuestra mascara (255.255.255.00000000)

cuando necesito contar hosts (en mi ejemplo 16) lo vamos a hacer DE DERECHA A IZQUIERDA; vamos a tomar 5 ceros porque n==5 y los ceros que me sobren se lo pasaremos a la parte de red quedando asi.

              255.255.255.00000000
              |--------------|-----|
                   red       host


4)vamos a poner en práctica la teoría y convertir nuestro segmento de red en 1 (unos) y nuestro segmento de hosts en 0 (ceros) asi:
        
             255.255.255.11100000
            |--------------|-----|
                  red       host


5) Con este resultado podemos concluir que 2(exp 5)==32 numero de usuarios por subred y 2(exp 3)==8 subredes.

6)Al hacer solamente esta pequeña conversiòn ya podemos contar con nuestra nueva mascara de subred, esto lo hacemos transformando el binario obtenido (11100000) a decimal asi:

255.255.255.224

7)Pero bien en el paso 5 ya dedujimos que tendremos 8 subredes y 32 ips con la mascara 255.255.255.224 con esto tendríamos el ejercicio completo, pero que pasaría si quisieramos saber por ejemplo el numero de ip y broadcast que tendra nuestra subred numero 6 entonces haríamos lo siguiente.

8)Cogemos la ip pura (192.168.10.0) y la parte de host la convertimos a binario asi:

192.168.10.00000000

como nuestro ejercicio nos decía que 2(exp 5)== numero de host y 2(exp 3)== numero de subredes entonces:

          192.168.10.00000000
          -------------|----|
             subred     host


cogemos la parte de los ceros de subred: 000| 00000

y hacemos las posibles conbinaciones de binarios con estos 3 ceros de la subred asi: red host 000| 00000 posicion 0 001 00000 posicion 1 010 00000 posicion 2 011 00000 posicion 3 100 00000 posicion 4 101 00000 posicion 5 --- cogemos esta porque comienza por posicion cero 110 00000 posicion 6 111 00000 posicion 7


entonces tenemos la siguiente fila de la tabla anterior: 101 00000 == convertido a decimal toda la fila == 160 como deseo conocer tambien la ip de broadcast entonces convierto todo mi segmento de hosts a 1(unos) 101 11111 == convertido a decimal toda esta fila == 191

Entonces el resultado quedaría de la siguiente forma:

ip de red de la subred 6 == 192.168.10.160 ip de broadcast de la subred 6 == 192.168.10.191 --------------------------------------------------------------------------------------------


Puede darse el caso contrario es decir que dada una red 1921.68.10.0 deseo tener unas 16 subredes (antes fueron 16 hosts recuerdas?)

la formula es la misma solo que ahora busco un numero N que elevado me de como resultado al menos 18 entonces N==5

Entonces hago el proceso contrario, voy a pedir prestado unos bits al segmento de host (para sacar mis 32 subredes) este proceso lo hago de IZQUIERDA A DERECHA

255.255.255.0 == 11111111.11111111.11111111.00000000
                 ---------\/---------------.---\/---
                          RED                  HOST


11111111.11111111.11111111.00000000
--------------------------------|--|
          RED                   HOST


Como antes para saber mi nueva mascara transformo los ceros de la parte de red a unos (1) asi:

11111111.11111111.11111111.11111.000 en binario== 255.255.255.255.251 ESTA ES MI NUEVA MASCARA.

con esto he creado 32 subredes de las cuales 30 son subredes útiles cada una con 8 usuarios con 6 ip útiles

De esto si deseo ademas saber la ip y broadcast de la subred 6 entonces:

                     red   host
                     00000| 000  posicion 0  
                     00001  000  posicion 1  
                     00010  000  posicion 2  
                     00011  000  posicion 3  
                     00100  000  posicion 4
                     00101  000  posicion 5 --- cogemos esta porque comienza por posicion cero
                     00110  000  posicion 6
                     00111  000  posicion 7
                       .
                       .
                       .  
                     11111  000  posicion 32


usemos la fila escogida:
00101000 a decimal == 40 => nuestra ip será 192.168.10.40
para broadcast no nos olvidemos que la parte de host la hacemos (1) entonces 00101111 a decimal == 47 => nuestro broadcast será 192.168.10.47

---------------------------------------------------------------------------------------------


Un ejemplo algo diferente es si yo tengo una direccion IP (163.35.208.1) y tambien tengo la máscara (255.255.252.0) y deseo saber que tipo de red tengo entonces hacemos un denominado AND lógico a nuestros binarios:

1)Esta red es clase B por lo tanto una mascara pura sería 255.255.0.0 y la de nuestro ejemplo es: 255.255.252.0 por lo tanto si convertimos a binario la parte de host:

255.255.11111100.00000000

de esta conversiòn puedo deducir que tendre 2 (exp 6)subredes y 2(exp10) hosts teoricas.

Pero regresemos a lo propuesto entonces cogemos los 2 datos que tenemos y hacemos un and logico:

163.35.208.1 and 255.255.252.0 -------------- 163.35. xxx.0

con el xxx trabajaremos que es el que varía para el ejemplo:

208 en binario= 11010000 and 252 en binario= 11111100 ---------- 11010000 esto en decimal == 208 => mi ip de red sería 163.35.208.0

mi ip de broadcast sería == 163.35.11010011.11111111
continuara....
Continua...

 

Luego de haber pasado un tiempo desde la época de C, C++, Visual Basic 6.0, Visual.net C#, Visual j++, (todos entornos Microsoft que es lo que dan en la U.) he estado buscando un lenguaje de programación con el cual especializarme y que lleve en escencia la filosofía de software libre o el opensource.

Luego de haber pasado un tiempo desde la época de C, C++, Visual Basic 6.0, Visual.net C#, Visual j++, (todos entornos Microsoft que es lo que dan en la U.) he estado buscando un lenguaje de programación con el cual especializarme y que lleve en escencia la filosofía de software libre o el opensource.

Despues de pasarme un buen tiempo consultando con expertos en diferentes áreas de la Arquitectura de Software, visitando foros en los que se llevan a cabo calurosas discusiones acerca de "que lenguaje es el mejor" y tambien tratando de ver las nuevas tendencias pude llegar a la conclusión de que los lenguajes orientados a objetos son lo mas práctico al momento, y uno de los mas completos, funcionales y productivos que he podido encontrar es Java, despues de su liberación se espera avances mas rápidos en cuanto a tecnología de desarrollo web y móvil respecta; esto junto a un IDE que esta sonando mucho en la web como lo es Netbeans aspiro jugaran un papel importantísimo en cuanto a productividad se refiere. Me he comprado el libro thinking java versión español cuarta edición 2007 el mismo tiene unas 1000 hojas y se ve muy completo, cuando lo termine posteare mis experiencias al respecto.

El problema ahora mismo con este lenguaje es que la curva de aprendizaje es un poco larga justamente por las posibilidades que nos ofrece, por esta razón tambien he buscado uno que me pueda brindar rapidez en desarrollo web para usarlo bajo el modelo de prototipos o XP (Extreme Programming), obviamente que sea orientado a objetos, para poder ofrecer a mis clientes un desarrollo rápido, efectivo y que se pueda ajustar a sus necesidades (asi como las mias por supuesto).


Encontré un Maravilloso lenguaje de scripts dinámico llamado Ruby, que junto al framework llamado Rails definitivamente rompen paradigmas sobre como desarrollar software.

Con Ruby on rails (RoR) podemos desarrollar aplicaciones web de una forma realmente rápida, segura cuyo lema es "convención sobre configuración", cuya base formúla que si hay algo en desarrollo que es repetitivo entonces "Para que repetirlo?"; Este lenguaje/framework a diferencia de otros lenguajes cuyo Marketting nos hacen ver como si fueran la panacéa, se ha desarrollado siguendo las sugerencias y experiencias REALES de los desarrolladores quienes venían perdiendo mucho tiempo en el ciclo de vida del Software (desarrollo, mantenimiento, migraciones, escalabilidad); Asi que podemos decir que con RoR podemos ahorrarnos todos los problemas que por mas de 10 años los desarrolladores con experiencia les ha tocado sufrir al respecto.

Pero bueno no todo lo que se lee o escucha en la web tiene por que ser cierto asi que me he dedicado a leer un excelente libro que por un corto periodo de tiempo se esta regalando en la web; este se llama Build Your Own Ruby on Rails Web Applications de Patrick lenz que he notado es super práctico y te lleva de la mano en la creación de una web de opiniones completa.

Son unas 450 hojas en Inglés, voy por la 220 y uff me ha cambiado por completo la forma de pensar como programador. El hecho de ver al software con una perspectiva de MVC (modelo, vista, controlador) me permite facilmente separar la lógica de negocio/programación; Asi, con el modelo pienso como estará estructurada mi base de datos, en la vista sobre como estará la presentación visual orientada a mi cliente, y en el controlador como voy a interactuar entre el modelo y las vistas; A futuro, si deseo hacer cambios en la parte gráfica me remito a las vistas, si hay un cambio de mi bdd me dirijo al modelo etc... Con esto no pierdo tiempo entre miles de líneas de código porque aparte Ruby es un lenguaje super intuitivo que se asemeja a nuestro con lo que me ahorro muchas líneas redundantes muchas veces en otros lenguajes; Esto acompañado de helpers, generadores de código (por lo general repetitivo) me hacen ver una sola palabra: PRODUCTIVIDAD! Hasta ahora voy fascinado, les recomiendo leerse este libro que aunque está en inglés bien vale la pena para reforzar conocimientos de lenguaje extrangero ;) Este es el link que descarga directa, espero lo sepan aprovechar pues lo ofrecen gratis por 36 dias mas:

enlace libro RoR

En todo caso si desean una copia impresa del mismo me pueden contactar a: escorpio_ec@yahoo.com
Para muestra un botón, aca el video de como crear un blog con ruby on rails en 15 minutos:
Continua...

 

Hace un par de días me atreví a actualizar mi Ubuntu Feisty Fawn al renovado Gutsy Gibbon y aprovechar de esta forma mucha de las mejoras que nos ofrece el software libre.

No representó gran dificultad esta tarea, nada mas un update-manager

Hace un par de días me atreví a actualizar mi Ubuntu Feisty Fawn al renovado Gutsy Gibbon y aprovechar de esta forma mucha de las mejoras que nos ofrece el software libre.

No representó gran dificultad esta tarea, nada mas un update-manager -d desde mi consola y con privilegios de root; aunque lo tuve que hacer un par de veces pues me generaba un error en algunos sources list; luego de esto obtuve un mensaje que se me avisaba que habian paquetes obsoletos que necesitaría desinstalar ej: beryl y otros mas, al constatar que ninguno de estos iba a afectar a lo que ya tenía instalado en mi sistema acepté la condición y luego de algunas horas de descarga tenía mi nuevo Ubuntu casi totalmente funcional.

Y digo casi totalmente funcional pues una de mis aficiones es trabajar bajo el entorno 3d que nos ofrece beryl, pero luego haberse terminado la fusión entre Beryl y Compiz, ahora el paquete en Gnu-linux se llama compiz-fusion, entonces lo único que tuve que hacer es instalar desde mi consola este paquete: apt-get install compiz-fusion y listo, mi sistema mas funcional, estable y rápido que Feisty en mi amd de 64 bits.

Continua...

 

Si una empresa adquiere una licencia de software ej: windows xp, puede considerar que es propietario del software en realidad?

Si una empresa adquiere una licencia de software ej: windows xp, puede considerar que es propietario del software en realidad?



Si analizamos que segun el CLUF de la licencia de windows xp dice explìcitamente que el software por el que se pagó no se puede alquilar o revender y si este lo comparamos con un verdadero activo por ejemplo el inmobiliario en el que es completamente legal arrendarlo o hacer lo que deseamos entonces podemos concluir que mal haría una empresa en considerar que al adquirir (comprar) una licencia de software propietario esta pase a ser un activo mas para una empresa. Además si a esto le sumamos el controversial TCO (total cost of ownership), en el que por ejemplo por un software propietario como empresa he pagado unos 10.000 dólares en licencias y despues de un tiempo me doy cuenta de que para seguir teniendo un soporte y actualizaciones tengo que pagar unos 2000 dolares por año sino me encontraré con un software obsoleto entonces si que solamente lo estoy arrendando y en ningun momento será completamente de mi propiedad.



Pero si hablamos de software libre; pues una empresa que se haga un desarrollo a medida sobre este modelo de licenciamento (gpl, gpl2 etc...) estará seguro que con su software podrá hacer lo que desee, sea arrendarlo, venderlo y no estará sujeto a un pago anual en cuanto a licencias; si, es verdad talves necesite pagar por nuevas modificaciones pero será obviamente por mejoras totalmente palpables a sus propios intereses y beneficios pero en ningun momento estará atado por ningun lado; si el que me desarrollo mi herramienta se va, me da un pesimo servicio, cobra demasiado etc. pues busco otra persona/empresa que lo haga como lo deseo pues soy un auténtico dueño de mi código. Bajo esta premisa SOFTWARE LIBRE= ACTIVO DE UNA EMPRESA.


Reflexiones originales leídas en: web de pastillaroja.net

Continua...

 

Con unos pequeños cambios temporales en nuestro repositorio de Feisty podemos tener el nuevo y renovado OpenOffice 2.3 cuya versión trae cambios por demas importantes y significativos (ver link en ingles).
informacion sobre los cambios

Para esto solamente hacemos en una consola:

  • 1) Hacemos un backup de nuestros sources list:
sudo cp /etc/apt/sources.list /etc/apt/sources.backup
  • 2) Con esto cambiamos los repos de Feisty Fawn 7.04 a Gutsy Gibbon 7.10 beta
sudo sed -i 's/feisty/gutsy/g' /etc/apt/sources.list
  • 3) Con esto actualizamos nuestras listas de paquetes y por supuesto el OpenOffice que tengamos instalado
sudo apt-get update && sudo apt-get install openoffice.org -y
  • 4) Volvemos a nuestro repositorio de Feisty que lo teníamos previamente instalado:
sudo cp /etc/apt/sources.backup /etc/apt/sources.list && sudo apt-get update

Continua...

 

Que buena noticia he recibido estos días al leer la noticia de que el INEN en Ecuador rechazó y voto por el NO a la adopción de el OOXML que tanto pedía Microsoft fuera aprobado como norma ISO, después de fuertes debates entre nuestra querida ASLE (Asociación de Software Libre del Ecuador) y Microsoft en el que cada uno expuso sus puntos de vista; finalmente los miembros de INEN se dieron cuenta de las malas prácticas o intenciones monopolísticas así como de un formato (OOXML) lleno de agujeros y problemas y le dijo NO. A esta campaña ya se unieron algunos países como Brasil y Canadá en América, esperemos que para el próximo año haya una mayoría y triunfe la libertad frente al monopolio. acá un mapa actualizado de las decisiones que se van tomando al respecto en el mundo: Si te interesa el tema y deseas profundizar sobre lo que se esta tratando (Peleando) por favor mira el siguiente link: informaciòn adicional Continua...

 

Una herramienta a modo de consola muy potente es ffmpeg que debemos instalarlo en nuestro sistema, para ello en una consola y como root digitamos:

  • apt-get install ffmpeg (debemos estar conectados a internet y tener previamente configurados y actualizados nuestros sources list).
listo eso es todo ahora ya podemos convertir nuestros videos entre diferentes tipos de formatos, para mi necesidad:
  • ffmpeg -i Videoconextension.flv -ab 56 -ar 22050 -b 500 -s 320x240 Videonuevo.mpg
para ver mas opciones en una consola: man ffmpeg Continua...

 

Hoy deseo convertir unos videos en formato .avi a formato vcd para verlos en mi reproductor y he encontrado una excelente herramienta en modo gráfico que se llama tovid, acá los pasos para instalarlo en ubuntu feisty fawn
  • Hay que instalar unas dependencias:
  • en consola y como root:
  • sudo apt-get install txt2tags mencoder mjpegtools ffmpeg python python-wxtools python-imaging libcairo2 python cairo imagemagick dvdauthor dvd+rw-tools vcdimager transcode sox normalize-audio
  • He instalado todas las dependencias porque quiero tener una completa funcionalidad son como unos 40 mb mas o menos, si deseas menos funcionalidades entonces visita la web del creador para que veas que dependencias son necesarias y cuales son opcionales web tovid
  • luego descarga el archivo source (existe binario para ubuntu pero según posteos dicen que hay problemas con el mismo)
  • descarga el source de tovid
  • (el enlace puede variar, esta actualizado al 19 de junio del 2007)
  • en una consola digita lo siguiente para descomprimirlo:
  • tar -zxvf tovid-0.30.tar.gz
  • entra en su directorio:
  • cd tovid-0.30
  • una vez adentro:
  • ./configure
  • su -c "make install" (te pedirá la contraseña de root para poder instalar el paquete en el sistema)
Listo eso es todo ahora ya puedes disfrutar de tu tovid para codificar en distintos formatos. (para ejecutar el programa alt+f2 y pones ahi tovidgui) Continua...

 

El nuevo formato de Microsoft office para los documentos es con extensión .docx, para configurar nuestro openoffice y poder abrirlo fácilmente con nuestro ubuntu (probado con feisty fawn) lo podemos hacer en unos sencillos pasos:
  • Descarga el siguiente paquete RPM que desarrollo Novell librería para abrir .docx .
  • Da doble click en el archivo descargado y descomprimelo en cualquier lugar de tu escritorio.
  • En una consola entra al directorio descomprimido y digita lo siguiente:
  • sudo cp usr/lib/ooo-2.0/program/OdfConverter /usr/lib/openoffice/program/
  • sudo cp usr/lib/ooo-2.0/share/registry/modules/org/openoffice/TypeDetection/Filter/MOOXFilter_cpp.xcu /usr/lib/openoffice/share/registry/modules/org/openoffice/TypeDetection/Filter/
  • sudo cp usr/lib/ooo-2.0/share/registry/modules/org/openoffice/TypeDetection/Types/MOOXTypeDetection.xcu /usr/lib/openoffice/share/registry/modules/org/openoffice/TypeDetection/Types/
Con esto lo que hacemos es copiar (ubicar) los archivos necesarios en los directorios de nuestro openoffice para que de acá a futuro reconozca los documentos con extensión .docx . Listo eso es todo, ahora cuando tengas un documento .docx lo único que hay que hacer es: click derecho sobre el documento y darle a abrir con openoffice (writter).
Continua...

 

Hoy he querido borrar unos dvds re-escribibles que tenía por ahi guardados y para mi sorpresa en nautilus no encontre la opción para borrarlos; para solucionar este inconveniente (espero que futuras versiones de Ubuntu la traiga) hice lo siguiente: desde consola digité:

  1. dvd+rw-format -force /dev/hdd (/dev/hdd es mi unidad, si no lo sabes mira en /etc/fstab)
  2. instalé el paquete udftools: sudo apt-get install udftools
  3. mkudffs /dev/hdd
listo con eso lo solucioné. Continua...

 

Hoy voy a sacar unos backups desde una laptop hacia un server de 64bits mas precisamente un amd 3200+ 64 bits, y me entero que mi programa favorito usado para sacar backups el partimage tiene problemas para correr sobre entornos de 64 bits, cada vez que lo ejecutaba después de instalarlo (sudo apt-get install partimage) obtenía un mensaje como este: This version has been compiled with an uncompatible version of gcc. Entonces googleando un poquito encontré una solución algo chapucera pero efectiva:

  1. sudo apt-get install partimage (instalo el partimage).
  2. cd /tmp (me muevo al directorio temporal).
  3. wget http://switch.dl.sourceforge.net/sourceforge/partimage/partimage-0.6.4-static.tar.bz2 (bajo esta versión de partimage de la página oficial).
  4. tar xjf partimage-0.6.4-static.tar.bz2.1 (descomprimo el paquete descargado).
  5. sudo mv partimage /usr/sbin/ (muevo el ejecutable que se crea al descomprimir a mi sitio de ejecutables del sistema).
luego a jugar y sacarle provecho al partimage en un amd64 ;) Continua...

 

Muchas veces podemos cometer el error de otorgar a nuestros usuarios demasiados permisos los cuales sin exagerar pueden llegar a ser fatales si no tenemos los cuidados suficientes, acá un link donde se habla de como con un par de comandos podemos dejar a nuestro sistema operativo inútil (algo así como un format c: en Windows), así que MUCHO OJO CON LA CUESTION DE PERMISOS....

Muchas veces podemos cometer el error de otorgar a nuestros usuarios demasiados permisos los cuales sin exagerar pueden llegar a ser fatales si no tenemos los cuidados suficientes, acá un link donde se habla de como con un par de comandos podemos dejar a nuestro sistema operativo inútil (algo así como un format c: en Windows), así que MUCHO OJO CON LA CUESTION DE PERMISOS.... El enlace al artículo Si no deseas visitar la página anterior acá un extracto del mismo:
  1. cat /dev/[urandom | random | zero ] > /dev/[hda - sda - ..] el dispositivo urandom y random son dispositivos especiales en un GNU/Linux, estos dispositivos generan bits aleatorios, este comando entonces llenaría el dispositivo completo de ‘basura’ causando una perdida de datos y una destrucción completa del OS
  2. rm -rf / este es el clásico, por error lo he hecho y puedo decir que produce fallos antes de causar una destrucción masiva como generalmente se piensa, aunque si existe una perdida considerable de datos.
  3. chmod -R 777 / se puede llegar a dejar un sistema operativo totalmente arruinado después de esto, a pesar que los datos no se pierden, muchas cosas quedaran inoperable, ya que alguna que otra aplicación necesita permisos específicos para funcionar.
  4. chmod -R 000 / es una variación al anterior, a pesar de que muchos datos son totalmente recuperables, creo que después de cualquiera de estos dos comandos tendría que ser necesario reinstalar todo.
  5. apt-get remove –purge libc6 este es especifico para debian, y sus hijos pródigos :D, difícilmente ejecutable por error, pues el sistema de paquetería pide la confirmación ya que esto es casi insólito, debido a eso, apt-get le pide al usuario escribir: “Si, haga lo que digo!”(ojo, que la expresión tiene que ir tildada y con sus signos de admiración como la ley manda).
  6. :> /etc/password && :> /etc/shadow && :> /etc/inittab && :> /etc/fstab ….. a pesar de todo, esto podría generar fácilmente un verdadero dolor de cabeza para ser restaurado nuevamente, especialmente si el equipo en cuestión tiene muchos usuarios o muchas particiones
  7. rm /usr/lib/libstdc++.so.6 esta librería es importante para muchas aplicaciones básicas, por lo que vendría a ser un poco lastimoso ejecutar ese comando
  8. Instalar windows pues, fuera de todas las anteriores, esta opción es la mas destructiva de todas .
Espero podamos todos tomar conciencia de un tema tan delicado pero aunque no se crea muchas veces olvidado como son los permisos para nuestros usuarios.
Continua...

 

Para muchos, el cambio de un sistema operativo a otro puede llegar a ser frustrante pues uno se acostumbra a usarlo (windows) y saber de memoria donde esta cada cosa; Cuando queremos aprender un nuevo sistema operativo (gnu- linux) nos podemos perder pues la forma en que gnu- linux se maneja, es algo diferente a lo que estamos acostumbrados.

Para muchos, el cambio de un sistema operativo a otro puede llegar a ser frustrante pues uno se acostumbra a usarlo (windows) y saber de memoria donde esta cada cosa; Cuando queremos aprender un nuevo sistema operativo (gnu- linux) nos podemos perder pues la forma en que gnu- linux se maneja, es algo diferente a lo que estamos acostumbrados. Pero si tenemos la convicción de que queremos aprender a usar un sistema operativo Libre, Seguro, Amigable y que nos nos presenta limitaciones como la parte propietaria en primer lugar considero deberíamos tomar en consideración lo siguiente: 1) Necesariamente la práctica nos llevara a dominar el uso del sistema operativo. (todavía recuerdo la primera vez que me senté frente a un entorno Windows y tooodas las malas noches que tuve que pasar para aprender a manejarme por el entorno y aparte lidiar con toooodos los problemas a los que microsoft nos expone a diario), asi que A PRACTICAR. 2) No debemos esperar que las cosas que hacíamos en Windows esten en el mismo lugar en Gnu- linux, pues éste último no pretende ser una copia, desea llegar a ser un SO amigable y usable pero NO SERA IGUAL A WINDOWS, si bien es cierto proyectos como Openoffice han optado por parecerse a Microsoft Office para tener una facilidad en su migración pero es importante que si deseamos usar de ahora en adelante un paquete ofimático libre (openoffice) nos demos un tiempo para leer como usarlo pues hay cosillas que no son iguales y pueden desanimar a los futuros usuarios. Esto lo digo porque una de mis labores es ayudar a migrar a las empresas a un entorno libre y muchas veces me encuentro con frases como "AAH PERO EN MICROSOFT OFFICE ESTO LO TENIA DE ESTE COLOR Y EN ESTE LUGAR", hagamos el esfuerzo por aprender, se nos esta entregando un entorno libre, lo menos que podemos hacer para reconocer este esfuerzo es poner de nuestra parte y aprender. 3) No existe un manual perfecto, cada uno tendrá sus pros y contras destacando que hay muchos que se centran en facilitar el paso de un entorno privativo (windows) a uno libre (gnu- linux), busquemos un poquito mas en google y 100 por ciento seguro encontraremos un manual que se adapte a las necesidades segun el nivel de usuario que seamos (novato, intermedio, avanzado), con todo al final de este artículo les adjunto unas guías que me sirvieron mucho en mis inicios. 4)Gnu- Linux no es el sistema operativo perfecto, tambien tiene sus problemillas en el uso diario, aunque tengo que reconocer que la mayoría de problemas que he tenido han sido por mi culpa pues al no haber entendido bien como instalarlo, como configurarlo obviamente obtuve problemas; pero por otro lado claro que tiene problemillas: a veces el entorno gráfico se me ha caido (en 5 segundos vuelvo a iniciarlo y no pierdo tiempo, no es necesario reiniciar la maquina), algunos programas que me hubiese gustado usar algunas veces me ha sido imposible correrlos por a o b incompatibilidad con mis librerías etc, pero no me ha sido impedimento de seguir trabajando ya que existen muchas alternativas; una vuelta por google y solucionado ;) . Lo interesante de estos problemillas es que tu puedes aportar activamente con la comunidad de software libre porque cuando tienes alguna incompatibilidad casi siempre tienes una pantallita al frente tuyo que te dice "se detecto un problema, desea reportar este bug a la comunidad?", le damos aceptar y al poco tiempo ya he tenido solucionado el inconveniente (que alguien me diga si en un entorno privativo esto es posible jeje ). 5) Ninguna distribución gnu-linux es mejor que otra, CON TODAS LAS DISTRIBUCIONES es posible hacer lo que otras hacen, la única diferencia es que algunas distros ya vienen con paquetes instalados o configurados y listos para usar, no es que Redhat es mejor o Ubuntu es peor o lo que sea, en todas las distros con las que me he topado (mandriva, debian, ubuntu, redhat, centos, mint, knoppix, gnoppix, kubuntu etc. ) siempre me ha sido posible instalar los paquetes que necesitaba, claro en algunas distros muchas veces ya vienen paquetes mas actualizados y en otras no, la diferencia que he notado ha sido porque algunas distros prueban por mas tiempo las aplicaciones y cuando las consideran bien estables las sacan a la comunidad, mientras que otras tienen políticas diferentes, ejemplo: ubuntu y debian y si es alguna aplicación no muy popular a veces me ha tocado compilar desde fuentes que tampoco es cosa de otro mundo, solo un poquitin de paciencia y listo; Otra de las diferencias que pueden tener es el tiempo que se demora cada distro para sacar una nueva version por ejemplo Centos demora como 2 años (mas o menos) en sacar una nueva versión lo que la hace mas práctica para entornos de servidores y por ejemplo mandriva que saca sus versiones cada 6 meses (mas o menos) que la hace mas factible para entornos de workstation; ahora mismo estoy trabajando con Ubuntu pues esta ultimamente ha alargado un poco mas su tiempo de vida entre versiones y sus paquetes los he encontrado mas actualizados asi que me ha servido tanto para servers como para workstation, en resumen como dijo un colega: LA MEJOR DISTRO ES LA QUE SE ACOMODA A TUS NECESIDADES Y CON LA QUE TE SIENTAS E IDENTIFIQUES MEJOR, pero la única forma de descubrirlo es ir probando, aunque los foros tambien nos pueden dar una idea de como va todo esto. Bueno no me alargo mas, espero estos tips le sirvan a aquellos usuarios que desean sentir la libertad de usar sus compus sin limitaciones, les puedo decir que es una verdadera satisfacción y tranquilidad trabajar con un entorno sin tener que preocuparme por antivirus, pantallazos azules etc, a la vez que éticamente siento que ayudo a mi país pues ayudo a que la piratería no progrese y dañe mas nuestra sociedad. Links para comenzar (los he buscado actualizados, pero en escencia son los mismo que usé en mis inicios): de linux a windows linux para novatos manual de linux entorno gráfico en linux http://moranar.com.ar/lin/ldesktops1.html>linux para principiantes http://nellyvi.blogspot.com/2007/01/unac.html>manual de linux http://www.wikilearning.com/manual_online_de_linux-wkccp-509-5.htm>manual online de linux Si deseas algo mas interactivo inscríbete sin costo a este curso virtual: http://www.wikiaula.org/aula/>curso de linux gratis
Continua...

 

Hoy compré un nuevo disco duro para usarlo como backups de mi lan en casa y me dió por configurar Samba para poder compartir archivos entre gnu-linux y windows y encontré una guía rápida y efectiva para mis necesidades: Hoy compré un nuevo disco duro para usarlo como backups de mi lan en casa y me dió por configurar Samba para poder compartir archivos entre gnu-linux y windows y encontré una guía rápida y efectiva para mis necesidades: http://www.vensign.com/2007/03/18/instalando-samba-en-ubuntu-debian-para-compartir-archivos-e-impresoras-en-redes-windows/ En todo caso, por si el link esta caído acá posteo (copy and paste) este excelente artículo:

Samba es un programa Open Source que nos permite compartir archivos e impresoras desde una computadora Linux a PC con MS Windows como si fuera una mas de ella, lo cual es muy util ya que podemos tener un servidor de archivos y de impresión basado en Linux colocado en una red donde se conectan PC con Windows.

La página oficial de Samba la puedes encontrar aquí

En este tutorial veremos como instalar Samba en un PC con Ubuntu o Debian instalado.

Lo primero es instalar Samba (como siempre les recuerdo que para instalar cualquier cosa en Linux necesitan tener privilegios de administrador o ser root, en el caso de utilizar Ubuntu colocando sudo antes de los comandos permite adquirir privilegios de root), ejecutamos el siguiente comando:

apt-get install samba smbfs

El archivo de configuración de Samba puede ser encontrado en /etc/samba/smb.conf vamos a editar este archivo, primero realizamos una copia de respaldo:

cp -p /etc/samba/smb.conf /etc/samba/smb_18032007_copia.conf

Siempre es bueno realizar una copia de los archivos de configuración que modifiquemos en caso de que cometamos algun error podamos volver a la configuración inicial, además a mi me gusta agregarle la fecha en que realice la copia para tener un registro.

Luego procedemos a modificar el archivo:

En Debian:

nano /etc/samba/smb.conf

En Ubuntu:

sudo gedit /etc/samba/smb.conf

Nota: Si estas en KDE en cambio de GNOME cambia gedit por kate

En el archivo de configuración cambia donde dice workgroup = MSHOME (puede ser distinto en tu caso) a:

workgroup = MIGRUPO

Donde MIGRUPO es el nombre del grupo de trabajo de MS Windows o el nombre de dominio, de donde será parte el servidor Samba. Tienes que configurar el mismo grupo de trabajo en tus computadoras Windows, esto lo puedes hacer en Panel de control>Sistema>Nombre de Equipo>Cambiar Nombre.

Si quieres tambien puedes cambiar la linea donde dice server string esto es simplemente la descripción que verá tu grupo del servidor puedes colocar algo como:

server string = %h Servidor de archivos

%h lo que hace es imprimir el nombre de host de tu servidor.

Guarda los cambios y sigamos.

Como crear, editar o eliminar usuarios en Samba

Los usuarios que queremos que tengan acceso al servidor Samba deben estar creados como usuarios en nuestro servidor linux, podemos crear un grupo samba y agregar a ese grupo todos los usuarios que tendrán acceso al servidor samba:

Para agregar un usuario a linux podemos utilizar el comando:

adduser nombre_usuario

Nos pedira la clave que queremos utilizar para ese usuario y algunos datos que son opcionales, luego podemos cambiar sus privilegios.

Supongamos que tenemos un usuarios ya creado llamado jose y que lo queremos agregar a los usuarios de Samba, para esto ejecutamos el siguiente comando:

sudo smbpasswd -a jose

Nos aparecerá algo como:

smbpasswd -a jose New SMB password: Retype new SMB password: Added user jose.

Colocamos la clave que queremos que tenga ese usuario para ingresar al servidor Samba, la clave puede ser distinta a la clave que tiene el usuario para ingresar a Linux.

Vamos a crear un nuevo archivo donde estarán todos los usuarios autorizados para conectarse al Servidor de Samba, para esto ejecutamos:

En Debian:

nano /etc/samba/smbusers

En Ubuntu:

sudo gedit /etc/samba/smbusers

En el nuevo archivo copiamos la siguiente línea:

nombre_enlinux = “Nombre en Windows”

Donde nombre_enlinux es el nombre del usuario que tenemos en linux en este caso jose y Nombre en Windows es el nombre del usuario de red en Windows. Tenemos que agregar una nueva línea por cada usuario que creemos para Samba.

Para editar un usuario ejecutamos:

smbpasswd -a nombre_usuario

Para borrar un usuario ejecutamos:

smbpasswd -x nombre_usuario

Ahora que ya tenemos a los usuarios creados procedamos a ver como se compaten archivos y directorios.

Compartiendo Archivos con Samba

Vamos a modificar el archivo de configuración de Samba:

En Debian:

nano /etc/samba/smb.conf

En Ubuntu:

sudo gedit /etc/samba/smb.conf

Busca la línea que dice:

; security = user

Y la modificamos por:

security = user username map = /etc/samba/smbpasswd

Con esto lo que estamos haciendo es diciendole a Samba que vamos a autentificar por usuario y donde está la lista de los usuarios permitidos que fue la que creamos anteriormente.

Para darle acceso a los usuario a sus respectivos directorios home o personales, hacemos lo siguiente:

Buscamos las línea donde dice

;[homes] ; comment = Home Directories; ;browseable = no ;valid users = %S ;writable = no

Y le quitamos el ; para descomentarlos, y en writable le cambiamos no por yes para que el usuario pueda escribir en el directorio.

Siempre que cambiemos la configuración del archivo smb.conf debemos ejecutar el siguiente comando:

testparm

lo que hace este parámetro es verificar que los parámetros del archivo smb.conf estén correctos, luego que nos diga que todo esta bien ejecutamos:

/etc/init.d/samba restart

para aplicar los cambios.

Ahora si quieremos compartir un directorio que llamaremos grupo hacemos lo siguiente, primero creamos la carpeta que queremos compartir si ya no la habíamos creado:

mkdir /home/grupo chmod 777 /home/grupo

La puedes crear donde quieras. Ahora vamos a modificar el archivo de smb.conf, voy a suponer que ya modificaste la parte de security y agregaste /etc/samba/smbusers a este archivo y que ya sabes como abrirlo para editarlo de ahora en adelante. Agregamos la siguientes lineas al final del archivo:

[Grupo] comment = Archivos Compartidos path = /home/grupo public = yes writable = yes create mask = 0700 directory mask = 0700 force user = nobody force group = nogroup

Analicemos esta estructura, comment simplemente es un comentario de lo que es la carpeta puedes colocar lo que quieras, path por supuesto es donde esta la carpeta que queremos compartir, public es si quieres hacer esta carpeta disponible publicamente o no, para cambiarlo simplemente coloca no, writable permite definir si se puede escribir en la carpeta o no, create mask y directory mask es la mascara con la que se crearan los archivos (es decir que privilegios tendrán los archivos y directorios creados) si quieras que puedan hacer cualquier acción en la carpeta coloca 0777 en ambas, force group y force user es para forzar que solo un grupo específico o usuario se pueda conectar a esta carpeta.

Si además queremos que solo un grupo de usuarios pueda accesar a la carpeta agregamos esta línea después de writable:

valid users = nombre_usuario1 nombre_usuario2

Donde puedes agregar los usuarios que quieras que tengan acceso.

Luego de que termines de agregar las carpetas que quieras compartir Guarda el archivo y probamos el archivo smb.conf y reiniciamos el servidor de Samba:

testparm /etc/init.d/samba restart

Compartiendo Impresoras

Voy a suponer que ya tienes una impresora conectada y funcionado en tu PC Linux.

Compartir impresoras en Samba es muy sencillo simplemente busca estas dos líneas en el archivo /etc/samba/smb.conf (Recuerda hacer una copia de respaldo) :

… # printing = cups # printcap name = cups …

Y descomentalas:

… printing = cups printcap name = cups …

Guarda el archivo cimprueba los parámetros de smb.conf y reinicia el servidor de Samba ejecutando:

testparm /etc/init.d/samba restart

Y eso es todo, ya puedes ir a tu PC Windows y buscar en tu grupo de trabajo las carpetas compartidas de Linux en Samba y además agregar la impresora.

Espero que les haya servido este tutorial, más adelante publicaré un tutorial acerca de como configurar un servidor WINS con Samba.

El manual oficial de Samba lo pueden conseguir aquí.

Continua...

 

Bueno por comentar algunos de mis avances, aunque me he tardado un poco ya que he estado a full de trabajo.
Bueno por comentar algunos de mis avances, aunque me he tardado un poco ya que he estado a full de trabajo. En primer lugar como el seminario-taller que recibí se baso en el pic 16f628 entonces me lancé a la busqueda de algun software gpl que llenara mis expectativas y que lo pudiera hacer desde gnu-linux; después de una búsqueda un poco laboriosa y despues de un poco de ensayos (prueba-error) he conseguido un entorno al parecer muy completo (eso lo comprobaré mas adelante) para la programación de pics no solamente para el 16fxxx sino para muchos con software libre bajo gnu-linux. 1)El primero es un IDE muy funcional llamado piklab el mismo que es al parecer el resultado de un fork de pikdev, pero mas completo que se encarga de dar un entorno de desarrollo de aplicaciones para programar pics de la microchip y también dspics, muy parecido al entorno de mplab. Este IDE trae integrado compiladores y ensambladores, de la cual nosotros podemos escoger el que mejor nos parezca o con el que mejor nos acomodemos por ejemplo: like gputils, sdcc, c18 Tambien podemos disponer de un simulador llamado gpsim (me parece que va solo a modo consola). Soporta el común de programadores como seriales, paralelos, ICD2, Pickit2, PicStart+. Sus componentes son: piclab, piclab-prog, piclab-hex Con todo esto y mucho mas ya solo nos queda elegir un buen compilador que se ajuste a nuestras necesidades y podemos lanzarnos a este fascinante mundo de los pics. Para el que desee profundizar en la práctica con este ide acá la web: http://piklab.sourceforge.net/ 2) Como lenguaje-compilador para la programación de los pics finalmente y luego de muchas discusiones técnicas en foros me he definido por uno llamado JAL, cuya licencia obviamente es gpl y que ya va por su segunda versión (aunque como me ha comentado su creador lo ha liberado bajo una licencia FREE-BSD). Jal actualmente soporta pics de las familias 16c84, 16f84, 12c508, 12c509, 16F877) y Ubicom SX (SX18 and SX28). Este lenguaje de alto nivel al parecer es tan bueno que por ejemplo lo están usando para programar el pic con el que hackean las consolas de wii ... JAL está basado en PASCAL, así que se imaginarán lo fácil que va a ser incursionar en este lenguaje :) la web para el que esté interesado: http://jal.sourceforge.net/ Por lo visto voy por buenos pasos en mi aventura de programar pics, aunque por el momento la info es algo escasa y por lo general en inglés y alemán, estoy tan entusiasmado que estoy documentando absolutamente todos mis avances y prácticas, si todo sigue saliendo así publicaré un libro que podría titularse: "PROGRAMACION DE PICS CON SOFTWARE LIBRE BAJO GNU-LINUX " o algo así de esta forma estaré ayudando a fomentar el uso de esta herramienta y de paso me hago algunos pesitos :) Bueno es todo hasta el momento, aca iré posteando mas avances.....
Continua...

 

Actualmente estoy en un seminario sobre programación de pics en lenguaje basic; la verdad es que me ha parecido fantástico pues me ahorra mucho tiempo que lo perdería haciéndolo en ensamblador; obviamente todo (o la mayor parte) lo deseo hacer con software libre así que una de mis tareas diarias es que lo que aprendo con software propietario busco reemplazarlo con software libre; respecto a este tema de programación de pics con lenguajes de alto nivel me he lanzado a la búsqueda de una alternativa libre y acá van mis avances...
Continua...