viernes, 31 de octubre de 2008

Colocar icono de papelera en Ubuntu

Este simple tip les va a explicar como colocar el icono de la papelera de reciclaje en Ubuntu Linux.
En el escritorio presionan ALT + F2 para que les aparezca el cuadro de ejecutar una aplicacion y escriben gconf-editor


Ahora vas seleccionando , apps , nautilus, desktop y seleccionan trash_icon_visible. También verán que pueden colocar el home del usuario y el icono de la computadora.
Para quitarlos deben realizar este mismo paso, no pueden seleccionarlos y quitarlos así simplemente.

jueves, 30 de octubre de 2008

Salio Ubuntu 8.10 Intrepix Ibex

Ya salio la ultima versión de GNU/Linux Ubuntu 8.10 Intrepix Ibex, con lo que me da a pensar, que sera record en descargas, con el correr de los dias lo veremos. Que trae de nuevo esta polémica y al mismo tiempo exitosa distribución de Canonical

  • GNOME 2.24

  • X.Org 7.4

  • Linux kernel 2.6.27

  • Encrypted private directory

  • Guest session

  • Network Manager 0.7

  • DKMS + Samba 3.2

  • PAM authentication framework

  • Totem BBC plugin

  • Server Virtualization

  • Notable inclusion in the main repository

  • Boot degraded raid setting

  • Service command now supported

  • OpenLDAP using ''cn=config''

  • Service-aware Uncomplicated Firewall (ufw)

  • Compiler security-hardening features by default

  • Network services compiled as position-independent executables

Les dejo el link para la descarga DESCARGAR desde el sitio oficial

Tip= Este enlace anda muy bien! DOWNLOAD

martes, 28 de octubre de 2008

Instalar Compiz Fusion en Debian Lenny 5.0

Voy a explicar, como en sencillos pasos , pueden instalar Compiz Fusion en Debian Lenny 5.0. Hay que tener configurada la placa de video, en el caso de ser Nvidia seguir este tutorial y en el caso de ATI seguir este tutorial.

Primero debemos tener en los repositorios la opcion non-free, por ejemplo:

deb http://ftp.us.debian.org/debian/ lenny main
non-free contrib
deb-src http://ftp.us.debian.org/debian/ lenny main
non-free contrib

deb http://security.debian.org/ lenny/updates main contrib
non-free
deb-src http://security.debian.org/ lenny/updates main contrib
non-free

En el caso de que ustedes no lo tengan, agreguen a sus repositorios
non-free y luego actualizen con apt-get update.

Ahora vamos a abrir una terminal como root y vamos a instalar los paquetes:

libcompizconfig0 - Librerias para la configuracion de compiz-fusion
compizconfig-settings-manager - Panel de Configuracion de compiz-fusion
compiz-fusion-plugins-extra - Compiz Fusion plugins - extra collection
compiz-fusion-plugins-main - Compiz Fusion plugins - main collection
python-compizconfig - Compizconfig bindings para python

# apt-get install libcompizconfig0 compizconfig-settings-manager compiz-fusion-plugins-extra compiz-fusion-plugins-main

Luego si son usuario de Gnome
# apt-get install compiz-gnome

Si son usuario de KDE
# apt-get install compiz-kde

lunes, 27 de octubre de 2008

Redimensionar una particion con GParted


Gparted es una editor de particiones de Gnome, que se puede instalar en Linux o podemos descargar un Live CD y correrlo. Lo podemos descargar desde el sitio oficial haciendo clic en este LINK . Lo que voy a hacer en este tutorial es tomar una partición con Windows Vista, redimensionar el espacio y dejar espacio libre para instalar una distribución de Gnu/Linux.


Es muy recomendable realizar un backup de la partición, si bien Gparted es muy seguro, talvez el disco tenga sectores defectuosos o el sistema de archivos dañado y podamos perder información. Una vez descargada la imagen y grabada en un CD, vamos a iniciar el Live CD de Gparted y ya directamente nos muestra las opciones y nuestras particiones en el disco.



Pueden descargar la imagen para verla mucho mas grande.

Ahora seleccionan la partición de desean redimensionar, yo en el ejemplo seleccione sda3 y voy a quitarle espacio. Ahora vamos a apretar la opción Redimensionar/Mover.

Se nos va a abrir una ventana de dialogo que lo que vamos a hacer es poner que espacio libre queremos y que espacio dejamos para la partición con Windows. Por ejemplo Tamaño nuevo es el tamaño para mi partición con Windows, si le queremos dejar 40 GB deberá decir 40.000 aproximadamente.

Una vez hecho esto, le damos redimensionar/mover nuevamente y se cerrara esa ventana de dialogo, y ahora le damos APLY para comenzar a redimensionar. Este proceso llevara un tiempo, y entre las tareas que realiza se destacan la comprobacion de errores en el sistema de archivos, la reducción de la partición y la calibración de la misma.

Una vez finalizado reiniciamos y entramos en Windows, caqui en Vista intentara recuperar y chequear si encuentra algún problema con el sistema de archivos debido al redimensionamiento, acá debemos tener mas paciencia aun, como uno hora aproximadamente, pero una vez finalizado, ya podemos instalar Linux en nuestro espacio vació.

Mucha Suerte!

sábado, 25 de octubre de 2008

Informacion acerca de mi PC

Muchas veces se nos puede presentar que queremos saber por ejemplo, la temperatura o el tipo de microprocesador de una pc con GNU/Linux, si bien hay Desklets para esto, muchas veces tenemos que monitorear remotamente y no tenemos un entorno gráfico, pero si, siempre tenemos a mano una consola.

Monitorear la temperatura del microprocesador
$ watch cat /proc/acpi/thermal_zone/THRM/temperature

Aceleración de Vídeo
$ glxinfo | grep "direct rendering"
direct rendering: Yes

Cantidad de Memoria disponible (en MB)
$ free -tm

Version del Linux
$ cat /proc/version

Versión del microprocesador
$ cat /proc/cpuinfo | grep "model name"

Versión del Kernel
$ uname -r

viernes, 24 de octubre de 2008

Debian anuncia la 5ta release de Debian Etch


El proyecto Debian a anunciado oficialmente la 5ta release de la version Debian 4.0 llamada ETCH. Segun lo anunciado, esta ultima corrige muchas vulnerabilidades de seguidad y ajustes a serios problemas.

Aqui les voy a dejar algunos mirrors para su descarga http://www.debian.org/mirror/list tambien se puede actualizar mediante apt-get , para esto leer en detalle el manual de sources.list (man sources.list)

jueves, 23 de octubre de 2008

Instalar flash player Debian

Despues de unos dias de inactividad, vuelvo a colocar un tip para instalar el flash player para Debian, tanto la version estable Etch, como la version testing Lenny.

Primero y principal, en los repositorios debemos agregar la linea non-free, ya que el plugin no es libre, para esto editamos la linea de nuestro archivo source.list

# vim /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ lenny main
non-free contrib
deb-src http://ftp.us.debian.org/debian/ lenny main
non-free contrib

Ustedes tendran su repositorio favorito, la idea es agregar al que ustedes tienen non-free como lo ven recalcado en negrita. Lo demas puede diferir, por ejemplo a ustedes en lugar de decir lenny les puede decir etch, esto no lo modifiquen, dejenlo tal cual lo tienen.
Ahora actualizamos la lista
# apt-get update

El paquete que tenemos que instalar se llama mozilla-plugin-gnash
# apt-get install mozilla-plugin-gnash

Una vez instalado se debe reiniciar el navegador y ya tenemos nuestro plugin instalado.
En el supuesto caso de que no les funcione, pueden descargar desde :

http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash

El tar.gz, este archivo lo vamos a desempaquetar y descomprimir. Luego le damos permisos de ejecucion, finalmente cerramos el navegador y ejecutamos el ejecutable (valga la redundancia)

$ tar xzvf install_flash_player_10_linux.tar.gz
$ cd install_flash_player_10_linux
$ chmod +x flashplayer-installer
$ sh flashplayer-installer

Notaran que esto lo ejecute todo como usuario, no lo hagan como root porque no lo van a poder instalar.
Luego abren el navegador, van a youtube.com por ejemplo y a disfrutar!

lunes, 20 de octubre de 2008

Recuperar contraseña de root "VIDEOTIP"

Que tal a todos, en esta ocasión, vamos a recuperar la contraseña de cualquier usuario, por ejemplo root, con el método GRUB, como lo llamo. Si bien hay varias formas de hacerlo, aqui va una





Los pasos fueron los siguientes:
  1. En GRUB se modifico la linea del kernel, se borro ro y se puso init=/bin/bash
  2. Luego como la raíz se monta como solo lectura, la remontamos como rw con el comando # mount -o remount,rw /dev/hda3
  3. Ahora le cambiamos la contraseña al usuario que deseamos #passwd root
  4. Y finalmente reiniciamos el sistema.

A 4 años de la primera version de Ubuntu

El 8 de julio de 2004, Mark Shuttleworth y la empresa Canonical Ltd. anunciaron la creación de la distribución Ubuntu. Ésta tuvo una financiación inicial de 10 millones de dólares (US$). El proyecto nació por iniciativa de algunos programadores de los proyectos Debian, Gnome porque se encontraban decepcionados con la manera de operar del Proyecto Debian, la distribución Linux sin ánimo de lucro más popular del mundo. De acuerdo con sus fundadores, Debian se trataba de un proyecto demasiado burocrático donde no existían responsabilidades definidas y donde cualquier propuesta interesante se ahogaba en un mar de discusiones. Asimismo, Debian no ponía énfasis en estabilizar el desarrollo de sus versiones de prueba y sólo proporcionaba auditorías de seguridad a su versión estable, la cual era utilizada sólo por una minoría debido a la poca o nula vigencia que poseía en términos de la tecnología Linux actual. Tras formar un grupo multidisciplinario, los programadores decidieron buscar el apoyo económico de Mark Shuttleworth, un emprendedor sudafricano que vendió la empresa Thawte a VeriSign, cuatro años después de fundarla en el garaje de su domicilio, por 575 millones de dólares estadounidenses (US$). Shuttleworth vio con simpatía el proyecto y decidió convertirlo en una iniciativa autosostenible, combinando su experiencia en la creación de nuevas empresas coesas. Mientras los programadores armaban el sistema, Shuttleworth aprovechó la ocasión para aplicar una pequeña campaña de mercadotecnia para despertar interés en la distribución sin nombre (en inglés: the no-name-distro). Tras varios meses de trabajo y un breve período de pruebas, la primera versión de Ubuntu (Warty Warthog) fue lanzada el 20 de octubre de 2004.

sábado, 18 de octubre de 2008

Comando nice VideoTIPS

El comando nice, corre un programa modificando la prioridad programada.
Lo que explico con este comando es como reprogramar para darle mas prioridad a un proceso y por lo tanto hacerlo correr mas rapido. Aqui en el video tutorial lo van a ver ejemplificado


viernes, 17 de octubre de 2008

Centos server install 4.7


Acaba de salir la version 4.7 del server install de Centos. La imagen ISO esta disponible en torrent si puedes descargarla desde este LINK

SHA1SUM del archivo torrent = 779adf04b554ee01d05520936bb406a16a85d45c MD5SUM CentOS-4.7.ServerCD-i386.iso = 429c3c5d627682d5d9e8084c8e5456cd SHA1SUM CentOS-4.7.ServerCD-i386.iso = 6272d724f0abb95d2a5652724fe6b3740706d543


Tambien pueden acceder a los mirrors desde este LINK

Instalacion OpenOffice 3.0

En esta oportunidad voy a instalar OpenOffice 3.0 en un Slackware 12.1, pero creo que también funcionaria en otras distribuciones, sobre todo las que manejan paquetes RPM, caso Mandriva, Fedora, etc.. ya que la instalación esta basada en RPM.


Prerequisitos
Algo muy bueno que tiene Open Office 3 es la interacción con Java que la debemos aprovechar, por eso debemos asegurarnos de tener JRE instalado y en lo posible, una versión superior a 1.4. Podemos encontrar la versión de Java para Linux desde este LINK

Instalación
El software lo podemos bajar desde la pagina de OpenOffice o si quieren lo pueden bajar directamente de AQUI que es un enlace directo a la pagina de OpenOffice

Una vez descargado el archivo lo vamos a descomprimir
$ tar OOo_3.0.0_LinuxIntel_install_wJRE_es.tar.gz
$ cd OOO300_m9_native_packed-1_es.9358/

Ahora nos logeamos como root , y listamos los archivos con un ls, veremos que hay un script para correr, para una instalación desde el entorno gráfico, pero nosotros no la vamos a seguir, nosotros vamos a entrar en un directorio llamado RPMS

$ su
# ls
JavaSetup.jar RPMS/ installdata/ licenses/ readmes/ setup* update*
# cd RPMS/

Ahora vamos a instalar los paquetes
# rpm -Uivh *.rpm

Esto instalara OpenOffice dentro de /opt/openoffice.org3 ahora podemos hacer lo siguiente, creamos enlaces simbólicos a /usr/bin de cada programa o agregamos al PATH /opt/openoffice.org3/program

Vamos a chequear que esto funcione. Con el usuario que actualmente tenemos logeados en el entorno gráfico abrimos una consola y ejecutamos

$ /opt/openoffice.org3/program/swriter


Ahora a hacer los accesos en nuestro escritorio y ha TRABAJAR!!!



jueves, 16 de octubre de 2008

Wallpapers Animados para GNU/Linux

Te gustaria tener un escritorio animado como este en tu Linux?


Bueno no es muy muy complicado de hacerlo, tienes que tener compiz fusion instalado y utilizar xwinwrap
xwinwrap es una aplicacion que permite a los usuario de xgl reemplazar un fondo de pantallas comun y corriente con una pelicula o un screensaver.

El sitio oficial para descargar xwinwrap es http://swik.net/xwinwrap en donde te muestra las opciones que tiene, como configurarlo y el link para descargarlo. Pero para los afortunados Ubunturos existe ya un paquete precompilado que lo pueden descargar desde AQUI , sino mas simple sudo apt-get install xwinwrap.

Para quienes lo compilen a mano, es solo un archivo, un simple make y ya esta!

Una vez instalado a ejecutarlo, y verdaderamente es muy simple:

Screensaver -> desktop
xwinwrap -ni -argb -fs -s -st -sp -a -nf -- /usr/lib/misc/xscreensaver/glmatrix -root -window-id WID

Movie -> desktop

xwinwrap -ni -o 0.6 -fs -s -st -sp -b -nf -- mplayer -wid WID -quiet movie.mpg

Software para Ubuntu - Getdeb

GETDEB es un sitio web realizado por colaboradores para usuarios de cualquier distribución Ubuntu. Lo útil de GetDeb es la cantidad de software para Ubuntu (y derivados), importantes actualizaciones y software que aún no esta disponible en los repositorios oficiales de Ubuntu.


El software esta muy bien distribuido por categorías : Audio , herramientas de desarrollo, juegos, gràficos y diseño gráfico, Internet y redes, Vídeo, herramientas de sistemas ,etc.. Además puedes buscarlas por arquitectura y distribución, luego cada paquete tiene su captura, una breve descripción y el enlace directo de descarga.

Los paquetes GetDeb se construyen usando Debian / Ubuntu, siguiendo la norma de construcción de los paquetes , esto reduce el esfuerzo de desarrollo y asegura el mismo nivel de calidad. Cabe señalar también que no proporcionará a los paquetes básicos o grandes bibliotecas, que podrían causar problemas de dependencias o de otras cuestiones importantes, o en caso de encontrar un paquete roto , la recuperación sera fácil pudiendo volver a instalar el paquete oficial de Ubuntu.

Login SSH sin password

Como configurar SSH para acceder "sin password" de forma rápida y sencilla.
Esto puede prestarse a discusion, que es mas seguro?, si escribir el password cada vez que nos conectamos por ssh o no. Bueno cada uno lo piensa y luego actua, yo me guardo mi opinion.
La situacion es la siguiente, en el origen y en el destino tenemos el usuario Beagle con el mismo password en ambos lados, entonces vamos a generar las llaves publicas y privadas con lo que nos aseguraremos que realmente es desde mi pc y al destino al que nos estamos conectando.

Descomentar primero esta linea del archivo /etc/ssh/sshd_config del destino
#AuthorizedKeysFile %h/.ssh/authorized_keys

y reiniciar el servicio
# /etc/init.d/ssh restart

1) En el origen ejecutar la siguiente línea de comandos en la shell (no introducir passphrase) :

origen:/home/beagle# ssh-keygen -t rsa

Le damos ENTER a todas las opciones, con este comando creamos las llaves publica y privada de autenticación.

2) En el destino, creamos, en caso de que no exista, la carpeta ~/.ssh

destino:/home/beagle# mkdir .ssh/
destino:/home/beagle# touch .ssh/authorized_keys

3) Finalmente, introducimos la llave pública del origen en el fichero de llaves autorizadas del destino, si no lo pueden hacer porque les dice que el archivo es de solo lectura, detengan ssh , agregen la llave y luego restarteen ssh

origen:/home/beagle# cat .ssh/id_rsa.pub

ssh-rsa CCCAB3NzaC1yc2EAAAABIwAAAQEAog102xUyos+PDRZzX2XzvUnHWlTZKfmW/vrGhaTGWy6kfHrAHtAmdQSHO68V3G7Fi389p6HqtUTCa1mN/9QQWfN5XsD9yRMhawr/GMMqP2aWLIhEJJmPg3W8el32VZ6C1hvWOwAkW5nrCgQivaI6Q7e6jYtYodZ2x+yPxmjBWA2yJLlUeaTe51OVOl0L3eZs/Og7uIWBObpsDiNoy2NJlKz+FIjudTELm4fTJVdWlIQVvxUV8g49XOmDzKyGY9k04jclRmMlYIy374ev0U5th0SiC5d7mXsv1bQ23ovONz67LZeHwN1YbzIWsnDEzocmx0XVTG2QYzDCszJaudWu/w== beagle@slackware

El codigo que les muestra lo deben agregar en el destino en .ssh/authorized_keys
destino:/home/beagle# vim .ssh/authorized_keys

4) Ya podemos acceder vía ssh sin clave:

origen:/home/beagle# ssh ipdestino

Con esto ya podremos conectarnos sin necesidad de poner la contraseña.
Como en los dos servidores tengo el mismo usuario solo hago ssh destino, sino tendria que hacer ssh usuario@destino.

martes, 14 de octubre de 2008

Curso Completo de PHP - Capitulo 1

Introducción
Que es PHP?
El lenguaje PHP es un lenguaje de programación de código abierto que posee variables, sentencias condicionales, bucles, funciones, etc, etc.PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos MYSQL. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML

Capitulo 1
  • "Introducción a PHP"
  • "Operadores y Variables"
  • "Constantes"
  • "Estructuras de Control"

"Introducción a PHP"
Previo a esto, lo mas recomendable es instalar un servidor Apache con soporte para PHP, pueden seguir esta guia http://linuxsix.blogspot.com/2008/10/instalacion-de-apache-2-con-modulos.html

Vamos a ver un ejemplo super sencilla para ver como funciona PHP, en su editor de texto preferido, puede ser gedit o kwrite, yo voy a utilizar VI vamos a escribir el siguiente código y lo guardamos como intro.php en /var/www/blog (suponiendo que /var/www es el home de Apache)


<?php

echo "HOLA MUNDO";

?>




También se puede envever en html el código PHP de la siguiente manera


<html>

<head>

<title>Introduccion a  PHP</title>

</head>

<body>



<?php

// Esto imprimira por pantalla Hola Mundo //

echo "HOLA MUNDO";

?>



</body>

</html>


Ahora abrimos nuestro navegador Web preferido y ejecutamos http://localhost/blog/intro.php y deberíamos ver

HOLA MUNDO

Esto indicaría que nuestro script en PHP funciona correctamente y que además nuestro servidor web esta habilitado con soporte para PHP. Algunas aclaraciones, si queremos insertar comentarios dentro del código los encerramos entre dobles (// prueba //) Ahora si queremos insertar mas de una linea lo haremos así
/* linea 1 de comentario
comentario
comentario */

"Operadores y Variables"
"Variables"
Una variable es un contenedor de información, en el que podemos meter números enteros, números decimales, caracteres... el contenido de las variables se puede leer y se puede cambiar durante la ejecución de una página PHP.

En PHP todas las variables comienzan con el símbolo del dólar $ y no es necesario definir una variable antes de usarla. Tampoco tienen tipos, es decir que una misma variable puede contener un número y luego puede contener caracteres.

Vamos a verlo con un ejemplo


<html>

<head>

<title> Introduccion a PHP </title>

</head>

<body>



<?php

$num0 = 10;

$num1 = 5;

$decimal = 3.22;

$frase = "Hola Mundo";

echo "$num0 y $num1 , el numero decimal es $decimal y la frase del dia es $frase";

?>



</body>

</html>



"Operadores"
En el ejemplo anterior vemos como guardamos variables numéricas y letras en $num0 , $num1, $decimal y $frase y luego las imprimimos por pantalla

Ahora vamos a los operadores, los operadores mas conocidos son los operadores aritméticos, suma , resta , division, multiplicación , incrementacion y decrementacion. Vamos a conocerlos con otro ejemplo


<html>

<head>

<title> Introduccion a PHP </title>

</head>

<body>



<?php

//Ingresamos 2 variables numericas//

$num0 = 14;

$num1 = 7;

echo $num0+$num1."<br>";

echo "El numero $num0 menos el numero $num1 es igual a ".($num0-$num1)."<br>";

echo "$num0 por $num1 = ".($num0*$num1)."<br>";

echo $num0 / $num1."<br>";

$num0++;

echo "Incrementamos 1 = $num0"."<br>";

$num1--;

echo "Decrementamos 1 = $num1";



?>



</body>

</html>



Veran varias cosas, por ejemplo que dentro del echo puedo tener las variables echo $num0+$num1."&lt;br&gt;"; y el texto, tambien notaran esto "&lt;br&gt;"
El punto es un caracter de contatenacion es decir, lo que hace es concatenar por ejemplo echo "hola "."Mundo" se veria Hola Mundo y "&lt;br&gt;"; lo que hace es bajar un renglon abajo, mas adelante iremos agregando estas cositas, como por ejemplo para hacer negrita o subrayar.

"Operadores de Comparacion"
Los operadores de comparación son usados para comparar valores y así poder tomar decisiones.


Operador Nombre Ejemplo Devuelve cierto cuando:

== Igual $a == $b $a es igual $b

!= Distinto $a != $b $a es distinto $b

&lt; Menor que $a &lt; $b $a es menor que $b

&gt; Mayor que $a &gt; $b $a es mayor que $b

&lt;= Menor o igual $a &lt;= $b $a es menor o igual que $b

&gt;= Mayor o igual $a &gt;= $b $a es mayor o igual que $b


Esto lo aplicaremos mas adelante cuando veamos estructuras de control, pero se pueden dar una idea para que sirven, se pueden comparar 2 valores y a partir de ahi ejecutar una u otra sentencia. Igualmente les dejo un ejemplo


<html>

<head>

   <title>Introduccion a PHP</title>

</head>

<body>



<?php

   $a = 8;

   $b = 3;

   $c = 3;

   echo $a == $b,"<br>";

   echo $a != $b,"<br>";

   echo $a < $b,"<br>";

   echo $a > $b,"<br>";

   echo $a >= $c,"<br>";

   echo $b <= $c,"<br>";

?>



</body>

</html>



"Constantes"
Antes que nada , para ahorrar espacio, ya no les voy a pegar el codigo html, solo les voy a poner las sentencias php, ustedes se lo agregan cuando crean el script.

Una constante es un identificador para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecución del script. (Las constantes especiales __FILE__ y __LINE__ son una excepción a esto, ya que actualmente no lo soin). Una constante es sensible a mayúsculas por defecto. Por convención, los identificadores de constantes suelen declararse en mayúsculas

El nombre de una constante sigue las mismas reglas que cualquier etiqueta en PHP. Un nombre de constante válido empieza con una letra o un caracter de subrayado, seguido por cualquier número de letras, números, o subrayados. Se podrían expresar mediante la siguiente expresión regular: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Se definen usando la funcion define(), una vez definida no puede ser modificada ni eliminada, veamos un ejemplo


<?php

define("CONSTANTE", "Esta es una Constante");

echo CONSTANTE; // OJO QUE NO SE COLOCA $ DELANTE!!! //

echo Constante; // Esto nos imprimiria Constante ya que es sencible a mayus y minus//

?>



" Estructuras de Control "
Una estructura de control para que sea sencillo de enterder hace lo siguiente, evalua una condicion, si es verdadera ejecuta una o varias sentencias o si es falta ejecuta otras sentencias

IF
Realiza una comparacion, si devuelve TRUE (verdadero) ejecuta la primer parte del codigo y si es FALSE(falso) ejecuta la segunda parte del codigo, podemos ejecutar cuantas sentencias por lineas queramos. Si es solo una linea de sentencia no es necesario los corchetes, aunque es conveniente siempre ponerlos para no olvidarlos!

Ejemplo:

<?php

$num0 = 10 ;

$num1 = 18 ;

if ($num0 > $num1){

echo "$num0 es mayor a $num1"."<br>";

echo "Hola Mundo";}

else {

echo "$num0 es menor a $num1";}

?>


Aqui utilizamos los "Operadores de Comparacion" que vimos mas arriba y vamos jugando con ellos

ELSEIF
Que lo que hace es otro if dentro del else, lo vemos mejor con un ejemplo


<?php

$var1 = 5;

$var2 = 3;



if ($var1 < $var2){

echo "$var1 es menor a $var2";}

elseif ($var1 == $var2){

echo "$var1 es igual a $var2";}

else {

echo "$var1 es mayor a $var2";}

?>




WHILE
La sentencia es simple, se define una condicion, y mientras esta es verdadera (TRUE) se ejecuta la/as sentencia/as en forma de bucle, es decir, no se va a detener hasta que el valor de la condicion sea FALSE, Ejemplo



<?php

$i = 1;

while ($i <= 10) {

echo "Ahora la variable vale $i"."<br>";

$i++;}

echo "Fin del While";

?>



DO WHILE
While, lo que hace es comparar y ejecutar, do while, primero ejecuta y despues compara, Ejemplo


<?php

$i=1;

do {

echo "la variables vale $i"."<br>";

$i++;

}while($i <= 10);

?>




FOR
FOR trabaja de la siguiente manera, se carga una variable inicial, se evalua una condicion y luego se realizan operaciones, veamos con un ejemplo la utilidad de FOR


<?php

for ($i = 1; $i <= 10; $i++) {

echo "la variable vale ahora $i"."<br>";}

?>



Veamos esto en detalle, lo primero $i = 1 define la variable i en 1, luego realizar la consulta igual que en if o en while, luego incrementa el valor en 1 , y debajo va ejecutando las sentencias que queramos. Tambien se puede colocar un if o un while debajo del for para realizar otras cosas, ejemplo



<?php

for ($i = 1; $i <= 10; $i++) {

echo "la variable vale ahora $i"."<br>";

if ($i == 6){

echo "la variable i ya es igual a 6 y se sale con un break"."<br>";}

}

?>

SWITCH
Muchas veces se nos plantea, diversas opciones que debemos ir comparando con un if, esto nos genera tener muchos if envevidos unos dentro de otros y se hace algo engorroso, para lidiar con este problema existe SWITCH, digamos que tenemos que elegir entre 3 climas, calor , templado y calor, con if serian como minimo 3 consultas, ahora veran que simple los simplificamos con switch



<?php

$i = gol;

switch ($i){

case calor:

echo "el clima esta caluroso";

break;

case templado:

echo "el clima esta templado";

break;

case frio:

echo "Abrigarse que hace frio";

break;

default:

echo "clima incorrecto";}



?>



default: lo que hace es , cuando no coincide ningun valor del case, ejecuta sus sentencias

BREAK
BREAK escapa a las estructuras de control o bucles while, for o switch

Quedan algunas sentencias mas por ver que se iran agregando con el tiempo, no se agregan ahora porque utilizan funciones o arrays que todavia no hemos visto. Esto es todo por ser la primera entrega, nos vemos la proxima!

Compilacion Kernel (2.6.27)

Primero voy a explicar cada numero del kernel 2.6.27
2 = Indica que el numero de version, en este caso la 2
6 = Subversion del nucleo, si es par indica que es estable y si es impar que es beta, estas no estan pensadas para un usuario comun
27 = Numero de revision mayor, cuando se aplican algunas correcciones de fallos se aumenta este numero

Exite un cuarto numero que se aplica cuando se corrijen errores graves y arreglos inmediatos

Hay varias formas de compilar un kernel o nucleo de Linux, los usuario de debian tienen su forma generando un paquete .deb,por ejemplo, esta es la forma clasica y util para todas las distros

Descargamos de la pagina www.kernel.org, la ultima version del kernel, en mi caso, la 2.6.26.6
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2

Ahora descomprimimos
# tar xjvf linux-2.6.27.tar.bz2

Ahora comienza la configuracion del nuevo kernel de linux, esta es la parte mas importante, aqui hay que conocer y tener bien en claro el hardware que tenemos, hay muchas herramientas para conocerlo, lspci, lsusb, el archivo fstab,etc, etc, pero no vamos a hacer incapie en esta explicacion

# /usr/src/linux-2.6.27/make menuconfig

En el menu config nos encontramos con
* Se compila dentro del kernel, es decir, es parte del kernel
M Modulo , se carga como modulo

Debajo tenemos la opcion Help que nos da mas ayuda para saber que es cada cosa, dedicarle un momento , sobre todo si es la primera vez, yo no voy a decirles que sacar y que poner, eso va de acuerdo a cada pc, por eso la idea de compilar un kernel tambien es para optimizar para nuestro harware. Una vez lista todas las opciones se graba el .config y se sale.

#make clean
#make dep #Compilamos las dependencias , con este kernel no es necesario este comando, yo por las dudas...

Luego a compilar nuestro kernel y tener mucha paciencia
# make bzImage modules modules_install

*ATENCION* Los Usuario de Debian mirar debajo

Copia la imagen del kernel compilado en /boot
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27

Copiar System.map que contiene los servicios que usan los modulos
# cp System.map /boot/System.map-2.6.27

Ahora vamos a generar el archivo initrd, este sera util para cargar todo lo necesario para que el kernel arraque, por ejemplo el file system. Demora unos segundos, tener paciencia.
# mkinitramfs -o /boot/initrd.img-2.6.27 2.6.27

El siguiente paso es editar el gestor de arranque, en nuestra caso es GRUB
# vim /boot/grub/menu.lst

Se debe agregar lo siguiente

title Debian GNU/Linux, Kernel 2.6.27 #Este es el nombre que nos aparecera en el grub al iniciar
root (hd0,0) #Talvez lo vean raro, pero yo tengo debian en mi primer #particion
kernel /boot/vmlinuz-2.6.27 root=/dev/sda1 ro #Ubicacion del nuevo kernel
savedefault /boot/initrd.img-2.6.27 #Ubicacion de initrd

Esta linea que deben agregar es igual a las que actualmente tienen, lo unico que se modifica es la version del kernel
Una vez hecho esto solo se debe reiniciar nuestro sistema y cargar la nueva version del kernel.

A los usuario de Debian, podemos compilar el kernel a la Debian way, (necesitamos tener instalado kernel-package), luego de ejecutar make menuconfig, es decir , de configurar nuestro kernel, vamos a generar el .deb del kernel y de los modulos

# make-kpkg --initrd kernel-image

Y para instarlos

dpkg -i kernel-version

Ahora podemos ir a configurar GRUB como he explicado.

lunes, 13 de octubre de 2008

Reparacion del Hard Disk con sectores defectuosos

En esta oportunidad, vamos a ver como podemos realizar comprobaciones e intentar reparar nuestro disco rígido en gnu/linux. Lo primero que vamos a necesitar es un live cd, eso es muy sencillo de conseguir, a mi me gusta mucho DSL Damm Small Linux (DESCARGAR) ya que es muy liviano, tiene bastantes herramientas y carga practicamente en cualquier pc, digo esto porque a veces tenemos esas pc's viejitas donde un Live CD de Ubuntu, por ejemplo, no carga.

Bueno ahora como detectamos que nuestro disco rígido tiene errores?
  • Porque cuando intentamos por ejemplo compilar algo a mano nos devuelve errores de "hdaIO dma" Entrada y Salida
  • fdisk -f nos indica que tenemos errores
  • Al formatear ya nos indica que hay sectores defectuosos

Nosotros trataremos de repararlo, pero, no siempre se logra, si el disco tiene una falla física, es decir, se raya algunos de los platos, esto es imposible de recuperar, ahora si la falla es "Lógica" podemos correr algunas herramientas que aquí detallo:

  • GPART
Gpart es una herramienta que intenta supuestamente reparar la tabla de partición primaria del disco en caso que en el sector 0 este dañado , sea incorrecto o eliminado. DESCARGAR

  • Badblocks
Badblocks busca en una partición bloques con errores, por ejemplo /dev/hda1, esta herramienta la vamos a utilizar mas adelante así que no entrare en detalles ahora.

  • e2fsck
Chequea el sistema de archivos ext3/ext2 en una partición extendida, si cuando particionamos el disco, creamos una partición extendida.

  • fsck
Chequea y repara un sistema de archivos, también voy a explicarlo mas adelante.

Estas son algunas herramientas, hay muchas mas y si quieren pueden comentarlas, sin ningún inconveniente.

Lo primero que debemos hacer , es crearnos un backup de nuestros archivos, ya que siempre es conveniente trabajar con el disco limpio, también se recomienda hacer un formateo de bajo nivel, pero nosotros nos centramos a reparar en lo posible el disco.

Una vez que tenemos hecho nuestro backup, vamos a iniciar con un live CD , pero no debemos montar la partición a reparar, en nuestro caso HDA1.

Ahora comenzamos borrando todo el disco para ver si nos tira algún error

# dd if=/dev/zero of=/dev/hda1
Si nuestro disco tiene algún error seguramente nos dirá algo como lo siguiente

end_request: I/O error, dev 03:01 (hda), sector 2738288

Trataremos de repararlo, podemos bajarnos "gpart" , pero deberemos instalarlo en nuestro Live CD, sino sacar el disco, ponerlo en otra pc con Linux, y correrlo desde ahí, esto es incomodo, prefiero trabajar con un live cd.

Ahora vamos a intentar reparar este bloque, para eso corremos
# badblocks -f -s /dev/hda

Esto sera de solo lectura, es decir, no aplicara ninguna modificación, ahora si queremos reparar ejecutamos

# badblocks -w -s /dev/hda

Una vez finalizado esto, esperemos ver reparado los sectores defectuosos, como he dicho anteriormente, si los errores son físicos ya no podemos hacer nada.

Por ultimo vamos a correr fsck para chequear y reparar algún error en un sistema de archivo, la sintaxis seria

# fsck /dev/hda

Las posibles salidas serán :
0 - Sin errores
1 - Errores de sistema de archivo corregidos
2 - Reiniciar el sistema
4 - Errores en el sistema de archivos sin reparar
8 - Error operacional
16 - Error de sintaxis
32 - fsck cancelado por el usuario
128 - Error de librerías

Ahora en el caso de que la partición sea extendida corremos e2fsck
# e2fsck /dev/hda1

Las salidas son iguales a las de fsck así que no las vuelvo a detallar.

Por ultimo si esto no les funciona o nos les repara el disco, pueden probar el formateo de bajo nivel, pero ya puedo adelantarles que los sectores del disco son irreparables.

Que hacemos ahora si tenemos sectores que no podemos reparar, pues lo siguiente:
Desde un live cd ejecutamos

# fdisk -l /dev/hda
Device Boot Start End Blocks Id System
/dev/hda1 * 1 4801 38564001 83 Linux

38564001 es la cantidad de bloques, ahora vamos a separar los defectuosos

# badblock /dev/hda > badblocks

Esto nos puede llevar mucho tiempo, correrlo en una noche y en lo posible con nice. Ahora vamos a crear el sistema de archivos ext3 pero omitiendo los bloques dañados

# mkfs.ext3 -l badblocks /dev/hda1

Una vez terminado este proceso, montamos /dev/hda1 en por ejemplo /mnt/hda y ejecutamos df -h para ver la cantidad en MB de bloques dañados