viernes, 5 de octubre de 2007

Creando un blog con CakePhp

Saludos lectores, esta ocasion escribire acerca de como crear un blog con CakePhp, este ejemplo lo tome del sitio oficial de cakephp este ejemplo constara de las siguientes operaciones:
  • Consulta de Articulos
  • Agregar nuevos Articulos
  • Modificar Articulo
  • Eliminar Articulo
Tratare de ser lo mas explicito posible

En primer lugar debemos crear nuestra tabla posts en Mysql:

CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);


INSERT INTO posts (title,body,created)
VALUES ('Primer Post', 'Este es el cuerpo del primer post.', NOW());
INSERT INTO posts (title,body,created)
VALUES ('Segundo Post', 'Este es el cuerpo del segundo post.', NOW());
INSERT INTO posts (title,body,created)
VALUES ('Tercer Post', 'Este es el cuerpo del tercer post.', NOW());

Ahora configuremos nuestra base de datos en cake, debemos abrir el archivo database.php que se encuentra en /app/config/database.php

var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'Tu_login',
'password' => 'Tu_password',
'database' => 'cake' );

Ahora crearemos nuestro Modelo Post

< ? php class Post extends AppModel { var $name = 'Post'; var $validate = array( 'title' => VALID_NOT_EMPTY,
'body' => VALID_NOT_EMPTY
);
}
? >

Aqui ponemos al array validate para asegurarnos q' a la hora q' se este ingresando un articulo los campos title y body no queden vacios.
Mediante la creación de un modelo es que se puede interactuar con la base de datos, con él se tiene las fundaciones para hacer las operaciones de ver, agregar, editar y eliminar.
Los modelos en CakePhp los debemos colocar en /app/models, en este caso el archivo que estamos creando es /app/models/post.php

Ahora pasamos a crear el Controlador

Post->findCount();
$conditions = array("id"=>"> 0");
$fields = array("id", "title", "body", "created");
$order = "Post.id DESC";
$limit = 10;
$this->set('pagination', $total_rows);
$this->pageTitle='Pagina Inicial';
$this->set('posts', $this->Post->findAll($conditions, $fields, $order, $limit));
}
function view($id)
{
$this->pageTitle='Articulos';
$this->Post->id = $id;
$this->set('post', $this->Post->read());
}
function add()
{
$this->pageTitle='Agregar Post';
if (!empty($this->data))
{
if ($this->Post->save($this->data))
{
$this->flash('Your post has been saved.','/posts');
}
}
}
function delete($id)
{
$this->pageTitle='Borrar Articulo';
$this->Post->del($id);
$this->flash('The post with id: '.$id.' has been deleted.', '/posts');
}
function edit($id = null)
{
if (empty($this->data))
{
$this->Post->id = $id;
$this->data = $this->Post->read();
}
else
{
if ($this->Post->save($this->data['Post']))
{
$this->flash('Your post has been updated.','/posts');
}
}
}
}
? >

El controlador es en donde se ejecutará toda la lógica de interacción con los posts. Debemos colocar este nuevo controlador en un archivo llamada posts_controller.php dentro del directorio /app/controllers

Dentro de nuestro controlador colocaremos todos los metodos necesarios para realizar nuestras operaciones en este caso el metodo index lo observaremos cunado el cliente coloque esta URL www.example.com/posts/index esto quiere decir que hay un controlador "posts", el cual posee un método (o función) "index".

Ahora que ya hemos conectado nuestra base de datos con el modelo y que la lógica ha sido definida en el controlador, vamos a crear una vista para el metodo index.
Las vistas de Cake deben ser colocadas en el directorio /app/views cada una dentro de un directorio llamado de acuerdo al controlador al que pertenecen (en este caso tendremos que crear un directorio llamado "posts" asi /app/views/posts/index.thtml


<h1> Blog posts </h1>


<div id="cuerpo">


< ? php foreach ($posts as $post): echo $post['Post']['id']; ? >
<div class="titulo">
<h1>
< ? php echo 'Titulo:'; echo $post['Post']['title']; echo '<a href="/posts/add"> Agregar Articulo </a>'; ? >

< ? php echo $html->link('Borrar',"/posts/delete/{$post['Post']['id']}",null,'Seguro?')?>
< ? php echo $html->link('Editar', '/posts/edit/'.$post['Post']['id']);?>
</h1>

<h3>
< ? php echo 'Creacion: '; echo $post['Post']['created']; ?>
</h3 >
</div>

<div class="arti">
<h4>

</h4>
</div>


</div>

Esta es la vista para agregar un Articulo:
/app/views/posts/add.thtml


<h1> Agregar Articulo </h1>
<form method="post" action="url('/posts/add')?>">
<p>
Titulo:
input('Post/title', array('size' => '40'))?>
tagErrorMsg('Post/title', 'Title is required.') ?>
</p>
<p>
Cuerpo del Articulo:
textarea('Post/body', array('rows'=>'10')) ?>
tagErrorMsg('Post/body', 'Body is required.') ?>
</p>
<p>
submit('Guardar post') ?>
</p>
</form>


Esta la vista para editar un Articulo:
/app/views/posts/edit.thtml


<h1> Editar Articulo </h1>
< form method="post" action="url('/posts/edit')?>" >
hidden('Post/id'); ?>
<p>
Title:
input('Post/title', array('size' => '40'))?>
tagErrorMsg('Post/title', 'Title is required.') ?>
</p>
< p >
Body:
textarea('Post/body', array('rows'=>'10')) ?>
tagErrorMsg('Post/body', 'Body is required.') ?>
</p>
<p>
submit('Actualizar') ?>
</p>
< /form>

Aqui les dejo el archivo .css que utilice para este ejemplo, este lo debemos colocar dentro del directorio /app/webroot/css/ y nombrarlo "cake.generic.css"


*{
margin:0;
padding:0;
}
body{
font-family:"frutiger linotype","lucida grande",helvetica,arial,sans-serif;
text-align:center;
color:#333;
font-size: 76%;
}
/* General Style Info */
a{
color:#003d4c;
text-decoration:underline;
}
a:hover{
color:#003d4c;
text-decoration:none;
}
a img{
border:none;
}
h1, h2, h3, h4{
font-weight:normal;
}
h1{
color: #003d4c;
margin:2px ;
font-size: 140%;
}
h2{
color:#c6c65b;
padding-top: 1em;
margin:0.3em 0;
font-size: 180%;
}
h3{
color:#003d4c;
padding-top:2px;
font-size: 120%;
}
h4{
color:#660000;
padding-top:0.5em;
font-size:120%;
}

ul, li {
margin: 0 12px 0 0;
padding-top: 2px;
}
#cuerpo{
color: black;
padding :10px 10px 10px 10px ;
border: 1px dotted #000000;
font-size: 80%;
}
.titulo{
color: black;
padding :10px 10px 10px 10px ;
border-top: 2px dotted orange;
font-size: 100%;
}
.arti{
color: #002e4d;
padding :20px 10px 50px 10px ;
font-size: 100%;
}
/* Layout */
#container{
text-align:justify;
border: 2px solid #000000;
margin: 10px 10px 10px 10px;
}
#header{
background-color:orange;
margin: 10px 10px 10px 10px ;
padding: 4px 20px;
border: 2px solid #666666;
}
#content{
/*clear:both;*/
padding: 00px 40px 10px 40px;
background-color: #eee;
color: #333;
border: 1px dotted #333333;
margin: 10px 10px 10px 10px;
width:680px;
}
#sidebar{
clear:both;
float:right;
padding: 10px 40px 10px 40px;
background-color: #eee;
color: #333;
border: 1px dotted #333333;
margin: auto 10px auto;
width:100px;
}
#footer{
clear:both;
padding: 6px 10px;
background-color:orange;
text-align: right;
border: 2px solid #999999;
margin: 10px 10px 10px 10px;/* n1=arriba n2=der n3=abajo n4=izq*/
}
/* forms */
form {
margin-top: 2em;
}
form div{
vertical-align: text-top;
margin-left: 1em;
margin-bottom:2em;
}
form div.date{
margin-left: 0em;
}
label {
display: block;
width: 140px;
font-size: 14px;
padding-right: 20px;
}
input[type=checkbox] {
float: left;
clear: left;
margin: 2px 6px 7px 2px;
}
input, textarea {
clear: both;
display:block;
font-size: 14px;
font-family: inherit;
}
select {
clear: both;
vertical-align: text-bottom;
font-size: 14px;
font-family: inherit;
}
option {
font-size: 14px;
font-family: inherit;
padding: 0 0.3em;
}
input[type=submit] {
display: inline;
vertical-align: bottom;
}
div.required {
clear: both;
color:#222;
font-weight:bold;
}

div.submit {
clear: both;
margin-top: 40px;
margin-left: 140px;
}


Debemos colocar un layout para mostrar nuestras vistas en /app/views/layouts/default.thtml



< html >
< head >

< title > Mi sitio :: < ? php echo $title_for_layout; ?> < /title >
< /head >

< body >

< ? php echo $content_for_layout ?>

</body >
< /html >

Ok pues espero sea de su agrado este ejemplo, mas adelante escribire algunos otros donde aremos uso de los helpers de Ajax

jueves, 20 de septiembre de 2007

Python + Gtk = PyGtk

Hola !!! esta ocasion tratare de explicar un poco acerca de como podemos crear una aplicacion de ventana con gtk y python. Para instalar esta libreria debemos acerlo de la siguiente forma:

apt-get install python-gtk2
Ahora debemos escribir el siguiente codigo en nuestro editor de textos favorito,

$nano pygtk1.py


#!/usr/bin/env python

#Importamos a las librerias con las q' trabajaremos
import pygtk
pygtk.require('2.0')
import gtk

#Creamos nuestra ventana Principal
window = gtk.Window()
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete-event", gtk.main_quit)
window.set_title("Primeros pasos con GTK")
window.set_default_size(450,250)

#Creamos un objeto layout para colocar nuestros widgets

lay = gtk.Layout(None,None)
lay.set_size(440,240)

#Creamos nuestros botones
b1 = gtk.Button(stock=gtk.STOCK_OK)
b2 = gtk.Button(stock=gtk.STOCK_CLEAR)

nombre = gtk.Label("Escribe tu nombre: ")
datos = gtk.Label("")

entry = gtk.Entry(max=30)
lay.put(nombre,50,50)
lay.put(entry,180,50)
lay.put(b1,170,100)
lay.put(b2,260,100)
lay.put(datos,200,180)

#Definimos nuestras funciones que haran caso a las llamadas de los botones

def on_b1_clicked(b1):
text=entry.get_text()
datos.set_text("Saludos " + text + " Bienvenido a PyGtk ")

def on_b2_clicked(b2):
entry.set_text("")
datos.set_text("")

#Añadimos las señales a la accion clicked de los botones
b1.connect("clicked", on_b1_clicked)
b2.connect("clicked", on_b2_clicked)

#Agregamos nuestro objeto contendor a la ventana

window.add(lay)
window.show_all()
gtk.main()

Ahora ejecutamos nuestro programa asi:

$python pygtk1.py

Aqui puedes encontrar mas informacion tutorial de Pygtk
Mas o menos asi les debe quedar

Bueno espero sea de su agrado este sencillo ejemplo, tratare de ser mas explicito en las siguientes entradas ..

Happy coding !!!

lunes, 17 de septiembre de 2007

Primeros pasos con CakePhp

Hola comunidad, pues despues de un largo rato de estar macheteandole a la documentacion de CakePhp, por fin me anime a escribir un poco acerca de la agotada configuracion que hay que hacerle a este framework :D, aqui les comparto mi experiencia:

Cakephp implementa el patron de diseño Modelo Vista Controlador (MVC) que es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página, el controlador es el Sistema de Gestión de Base de Datos y el modelo es el modelo de datos.
  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista
Aqui se observa el funcionamiento del patron MVC

Bueno ahora vamos a la parte practica..

Nos descargamos la version estable de Cakephp (aqui el link) y la guardamos en nuestro ruta de DocumentRoot

En Debian la ruta para almacenar nuestras paginas es /var/www/ (si has cambiado la ruta por default ahi coloca la bola .tar.gz), descomprimimos el archivo y lo renombramos como cake. Dentro de cake debemos tener los siguientes directorios: app/ cake/ docs/ index.php vendors/

Tambien edita el archivo default que esta en sites-available dentro de la carpeta de apache2 y edita la linea DocumentRoot asi:

DocumentRoot /var/www/cake/app/webroot/

Para todo esto debemos tener instalado LAMP en nuestro sistema, ahora creamos una base de datos en Mysql llamada cake. Bien solo nos falta modificar un archivo llamado database.php.default que esta dentro de app/config/ lo abrimos y lo editamos asi:



< ? php class DATABASE_CONFIG { var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'cake',
'prefix' => '');
}
?>


Donde en el elemento database pondremos el nombre de nuestra base de datos, y lo guardamos con el nombre de database.php Ahora solo nos queda checar en el navegador si ya funciona nuestro framework solo colocamos http://localhost y debemos observar algo similar a esto:




Nos vemos en la proxima entrada con un ejemplo mas con Cakephp... Happy Coding !!!

martes, 11 de septiembre de 2007

Las siete maravillas de la Tecnologia

Saludos comunidad ... esta vez escribo para comentarles que atraves de la seccion de tecnologia de el sitio 20 minutos me encuentro con un articulo que habla de la 7 maravillas de la tecnologia aqui les pongo la lista:

El ordenador más próximo al Polo Norte ocupa el primer lugar, una máquina propiedad de un laboratorio de la marina de EE UU que entre abril y octubre ofrece imágenes a través de su webcam , soporta temperaturas extremas y contribuye a la investigación de la zona.

Le sigue el ordenador más alejado de la tierra. Se trata de la computadora a cargo de la sonda Voyager 1 , que en la actualidad está a 4.000 millones de la Tierra, unas tres veces más lejos que Plutón. Es el objeto de fabricación humana que ha viajado a mayor distancia.

El centro de datos más misterioso es según CIO el que posee Google, y ocupa el tercer lugar de este ranking. Para hacerse una idea de sus dimensiones basta decir que el sistema de ventilación tiene el tamaño de un edificio de cuatro pisos, que en él pueden trabajar dos centenares de personas y pueden estar almacenados 200 petabytes de datos.

La cuarta maravilla del mundo tecnológico es un proyecto de computación distribuida , el E-SciencE II , que pone cientos de grandes ordenadores al servicios de investigación química o de geólogos. Actualmente 45 países utilizan esta infraestructura.

IBM y su supercomputador BlueGen/L, el mayor del mundo y líder del Top500 mundial, no podían quedar fuera de esta selección. Ocupa 2.500 metros cuadrados, ayuda a los investigadores a resolver cuestiones muy complicadas y consume la misma energía que un motor de 2000 caballos. Un monstruo de la ingeniería informática.

De lo más grande a lo más pequeño. El sexto puesto es para el modelo 02 del miniordenador OQO, el más pequeño de los que funcionan con Windows Vista. La séptima y última maravilla del mundo tecnológico según CIO es Linux, el sistema operativo libre creado por Linus Torvalds en 1991.

Como ven...

jueves, 6 de septiembre de 2007

Actualizando mi Debian Lenny !!!

Que onda comunidad linuxera les cuento que hace poco decidi cambiar mi distribucion Debian etch (estable) a la version testing, me estaba dando mucha flojera ya que tenia un buen de archivos que respaldar. La instalacion de Lenny no fue complicada al bootear con el cd escribi installgui, y despues de eso puro siguiente.. siguiente.. siguiente.. jajaja

Los repositorios que estoy utilizando son estos:

deb http://mmc.igeofcu.unam.mx/debian/ lenny main contrib non-free deb-src http://mmc.igeofcu.unam.mx/debian/ lenny main contrib non-free deb http://www.debian-multimedia.org testing main

Aqui les dejo una imagen de mi escritorio con Debian Lenny...

miércoles, 5 de septiembre de 2007

20 mandamientos para diseñar un sitio web

Saludos ... quitandole un poco el polvo a mi blog :D les comento esta nota que me encontre aqui sobre los aspectos mas importantes a tomar en cuenta a la hora de crear un sitio web, aqui les pongo una lista:

1. El usuario debe saber de que es el sitio en unos 10 segundos.
2. Haz el contenido “scaneable porque los usuarios no leen los sitios, los scanean (Jakob Nielsen).
3. No uses tipografías difíciles de leer en textos que quieres que se lean.
4. No solicites regitrarse al usuario a no ser que sea necesario.
5. No uses Flash sin una razón de peso (ojo que hay pocas).
6. No toques música en el sitio y si debes reproducir audio, deja que el usuario lo inicie.
7. No usues texto parpadeante.
8. Prefiere el CSS por sobre las Tablas.
9. Asegúrate que tus usuarios puedan buscar en todo el sitio
10. Usa navegación de texto y no con imagenes ni botones flash.
11. Si estás vinculando hacia un PDF o cualquier otro tipo de archivo que no sea html, házlo saber.
12. No uses estructuras de navegación complejas.
13. Evita por todos lo medios una Intro y una página “splash” que te lleve al contenido real.
14. No hagas sitios web compatibles solamente con un navegador específico
15. No subrayes texto a menos que sea un enlace
16. No uses Gifs Animados, ya no estamos en los años 90’s
17. No uses Pop-Ups aunque tu cliente te lo exija
18. No uses el Scroll horizontal, muchá gente ni lo notará
19. No cometas errores de ortografía porque pierdes la credibilidad.
20. Usa textos legibles en los sistemas CAPTCHA de los formularios.

Espero lo tomen en cuenta ...

miércoles, 25 de julio de 2007

Script en php para saber el número de visitas en una página web

Hola comunidad !!!
Esta vez estoy aquí para presentarles un script echo con php para saber cuantas visitas a tenido una página web, este script puede ser visible para todos los usuario o solo para el webmaster, aqui les pongo el código :




Debes de crear un archivo llamado 'count.txt' en el lugar donde pondras el script.
Buenos espero les sirva de algo ... Saludos !!!!!!!!!!!!

jueves, 19 de julio de 2007

Ajax Loading Gif Animator

Hola comunidad... encontré esta herramienta que me pareció muy interesante se llama Ajax Loading Gif Animator, la cual nos permite crear animaciones y botoncitos online para nuestras webs y usarlas libremente.

AjaxLoad permite crear barras de progreso, serpientes que se muerden la cola, flechitas… Todas aquellas pequeñas animaciones que hacen las delicias de las nuevas aplicaciones.

Podemos indicar el tipo de animación, los colores utilizados y listo, podemos bajar un gif animado como el resultado.

Unos ejemplos:







Aquí les dejo el enlace, a crear Gifs ....... http://www.ajaxload.info/

jueves, 21 de junio de 2007

CAKEPHP

CakePhp es un framework para desarrollar aplicaciones con php, utilizando el esquema MVC ( Modelo Vista Controlador) .
Es lo mismo q' Rails para Ruby, solo q' si quieres utilizar RoR tendras q' aprender un nuevo lenguaje, si ya sabes php y la programacion orientada a objetos te es familiar no tendras ningun problema al familiarizarte con CakePhp !!!! basicamente es una utilidad diseñada para facilitar el desarrollo de proyectos en php.

¿Para que sirve?
Facilita la creación de administradores para el manejo de contenido estandar (insertar, editar y eliminar registros), facilita la validación de los campos de los formulario, previene de ataques por SQL injection, facilita el testeo de las aplicaciones, facilita la interacción con la base de datos mediante el uso de ActiveRecord y tambien tiene un sistema de plantillas rápido y flexible.

¿Cómo utilzarlo?

Los requisitos mínimo son Apache con PHP 4.3.2 o superior y MySQL, si el mod_rewrite esta habilitado mejor que mejor.

Lo podemos descargar de su sitio oficial http://www.cakephp.org/downloads

Para la proxima tratare de explicar como instalar cakephp !!!

Happy codding ..

miércoles, 16 de mayo de 2007

HACIENDO PROMOCION DE GNU/LINUX...

Saludos comunidad linuxera, me entero por medio de los cuates en el IRC, q' un usuario de GNU/Linux a empezado a promover el uso de SL en los vagones del metro en el D.F. según cuenta q' acompaña los disco de Ubuntu con una hoja q' hace referencia al uso del SL, y pide una cooperación de 20 morlacos.
Podemos tomar este ejemplo para empezar a difundir el uso de SL en nuestra ciudad... y en sus alrededores muchos viajamos en transporte público y en vez de ir durmiendo =) podemos convencer a mucha gente en usar GNU/Linux.

Fuente http://nimrodphoinix.wordpress.com/gnulinux/

lunes, 30 de abril de 2007

Flisol 2007 en el Tec de TPAK

Hola, les cuento q' Flisol 2007 en el Tec de Tepeaca salio a la perfección, la verdad no esperabamos a tanta gente, en la parte de conferencias contamos con la presencia de ponentes de gran calidad como es el caso de Sonia Sanchez, egresada de la UNAM.
En la parte de talleres instalamos Debian GNU/Linux en uno de los laboratorios de la institución, la idea es q' los alumnos interesados en aprender Linux puedan asistir a practicar en las horas otorgadas a la comunidad linuxera de esta institución. De igual forma los chavos q' llevaron su Pc se llevaron la distro para trabajarla en su casa.
Un cuate de la Universidad Politecnica de Puebla Toño nos hizo el favor de impartir un pequeño taller de programación sobre el bash de Linux, en el cual enseño a los participantes a realizar un pequeño despertador.
También hubo un taller demostrativo de Fedora Core y Suse impartido por el compañero Paulo Endeler, pusimos una pequeña exhibición con Beryl, OpenOffice, Gnome, Kde, Blender y los paquetes q' puedes usar en Linux.





Bueno ps fue una grata experiencia haber participado en este evento, y
espero nos veamos en Flisol 2008..
Saludos ;-)

sábado, 14 de abril de 2007

Ubuntu Feisty Fawn

Hola, les comento q' ya puedes obtener CD's de Ubuntu 7.04, solo hay chance de pedir 3 discos. Es bueno q' Cannonical hayá decidido volver a regalar discos de Ubuntu, porq' es una muy buena forma de difundir el uso de GNU/Linux.
De esta forma Ubuntu se ha colocado en una de las distros mas populares.

Yo ya pedi mis 3 CD's de Ubuntu Feisty ... aqui

Saludos a todos !!!

martes, 10 de abril de 2007

Publicada Debian gnu/linux 4.0




El proyecto Debian se complace en anunciar la publicación oficial de la versión 4.0 de Debian GNU/Linux, nombre en clave etch, tras 21 meses de desarrollo constante. Debian GNU/Linux es un sistema operativo libre que soporta un total de once arquitecturas de procesador e incluye los entornos KDE, GNOME y Xfce.

Debian GNU/Linux 4.0 incluye un proceso de instalación totalmente integrado, incluyendo soporte de creación de usar particiones cifradas. Esta publicación introduce una nueva interfaz gráfica del sistema de instalación que soporta tanto grafías que utilizan caracteres compuestos como lenguas complejas. El sistema de instalación de Debian GNU/Linux ahora está traducido a 58 idiomas.

A partir de Debian GNU/Linux 4.0, se ha mejorado la seguridad y la eficiencia del sistema de gestión de paquetes. «APT seguro» («Secure APT») hace posible verificar la integridad de los paquetes descargados desde un servidor réplica. Además, no se actualizan los índices de los paquetes descargando un fichero completo, sino parcheándolo con archivos más pequeños que contienen sólo las diferencias con las versiones anteriores.

Debian GNU/Linux se ejecuta en ordenadores que van desde PDA y sistemas de bolsillo a supercomputadores, pasando por practicamente cualquier sistema intermedio. Se soportan un total de once arquitecturas: Sun SPARC (sparc), HP Alpha (alpha), Motorola/IBM PowerPC (powerpc), Intel IA-32 (i386) y IA-64 (ia64), HP PA-RISC (hppa), MIPS (mips, mipsel), ARM (arm), IBM S/390 (s390) y (introducido por primera vez en Debian GNU/Linux 4.0) AMD64 e Intel EM64T (amd64).

Se puede instalar Debian GNU/Linux de varias formas: desde DVD, CD, memorias USB y disquetes, o utilizando una red. El entorno de escritorio predeterminado es GNOME y se distribuye en el primer CD, se pueden instalar los entornos de escritorio K (KDE) y Xfce usando las dos nuevas imágenes de escritorio alternativas. También, por primera vez en Debian GNU/Linux 4.0, se proporcionan CDs y DVDs multiarquitectura que permiten la instalación de múltiples arquitecturas desde un único disco.

viernes, 6 de abril de 2007

Mononeurona.org en el IRC

Saludos comunidad, les cuento q' uno de los sitios q' mas visito http://mononeurona.org ya tiene presencia en irc en FreeNode.
El server es: irc.freenode.com y el canal es #mononeurona.org

Es una muy buena idea este canal, donde podremos charlar de todo los q' se expone en este gran sitio.

Be Free !!!

Crear Objetos con PHP5

Saludos a toda la comunidad, pues les cuento q' en estas vacaciones hemos estado trabajando un poco con objetos en php5 y archivos, la verdad no habia metido mano a esto pero ya le agarre el modo aqui les pongo un ejemplo:


escribe($contenido); // llamamos a la funcion escribe y le mandamos el a $contenido

?>


Espero les sirva para algo, y mas a delante voy a seguir poniendo mas ejemplos.

Happy codding ....

domingo, 1 de abril de 2007

PROTEGER TU CODIGO HTML

Saludos comunidad, le cuento q' para proteger tu código de los copiones del Internet ahora es muy fácil, sólo sigue los siguientes pasos:
Desconecta tu ordenador de internet.
Crea tu hoja de estilos.
Guárdala.
Apaga el ordenador.
Desmonta la caja del ordenador y saca el disco duro (si el archivo esta en un disco duro extraible puedes saltarte este paso).
Hazte con unos pasajes para un viaje por el atlántico.
Compra una caja fuerte, no es necesario que sea muy grande.
Mete el disco duro en la caja fuerte, mete tambien la llave y la combinación la pones aleatoria (no la apuntes en ningun lado ni la memorices).
Vete al viaje que has pagado (llevate la caja fuerte).
Cuando estes en medio del mar tira la caja fuerte (asegúrate de que nadie te vea).
Pégate un fiestazo en la disco del barco hasta que te caigas borracho.
¡Ya está! nadie podrá descargarse ahora esa maravillosa hoja de estilos ni copiar tus nuevas reglas e ideas.
Imaginen si los libros no se pudieran prestar ni copiar, pues no habría ningún tipo de conocimiento útil para nadie, pues con las webs es lo mismo, si no quieres compartir tu conocimiento no publiques nada.
Es bueno compartir, ya que asi aprendemos todos, aunque la internet no es nuestra hay maneras de hacer reconocer nuestro trabajo.
Piensalo muy bien ..... Seguimos navegando

sábado, 24 de marzo de 2007

amsn 0.97 beta en debian etch

Saludos comunidad, por medio del blog de mi cuate Abraham "kraxbox en el cyberweb" me entero de la instalacion de amsn 0.97 beta por medio de Subversion, y ps segui los pasos:

Primero q' nada instale Subversion

#apt-get install subversion

Este fue diseñado principalmente para el remplazo del famoso CVS (Sistema de Control de Versiones), es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como svn por ser ese el nombre de la herramienta de línea de comandos.
Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Despues de este choro viene la forma de la instalacion, nos jalamos una copia del amsn 0.97 del repositorio de esta forma:

# svn co https://svn.sourceforge.net/svnroot/amsn/trunk/amsn amsn

Ahora jalas los plugins y skins

#svn co https://svn.sourceforge.net/svnroot/amsn/trunk/amsn-extras amsn-extras


Copia los amsn-extras a la carpeta amsn/plugins y amsn/skins
En mi caso corri subversion como root, pero ya q' me habia bajados las copias entonces las cambie al usuario omix q' soy yo asi:

#chown omix:omix amsn amsn/* amsn-extras amsn/*

Ahora si como usuario omix

$ cp -r amsn-extras/plugins/* amsn/plugins
$ cp -r amsn-extras/skins* amsn/skins


Compila amsn

$ cd amsn
$ ./configure
$ make && make install && echo "Instalacion completa"

En caso de que salga un error en la configuracion necesitas instalar los dev de tcl , tk y g++:

#apt-get install tcl8.4-dev tcl8.4 tk8.4-dev tk8.4 libpng12-dev libjpeg62-dev tcltls g++



Listo tenemos nuestro amsn 0.97 beta instalado, disfrutenlo.

domingo, 18 de marzo de 2007

Sabes que significa tu nick?

Saludos, les cuento q' navegando por la red me encontre con estos links, son “decoders” de nicks,checalos para descubrir tu apodo virtual,

Un ejemplo del mio :

Aiglx+Beryl en una tarjeta intel corriendo en Debian Etch

Saludos comunidad linuxera, les cuento q' instale beryl en ina tarjerta intel con chip 845G en debian etch, aqui dejo los pasos q' segui, luego les pongo un video okas. =)

Primero actualizamos instalando los siguientes paquetes:

# apt-get install libdrm2 libpng3 libpng12-0 libpng12-dev
libxdamage1 libxcomposite1 x11proto-core-dev x11proto-composite-dev
x11proto-damage-dev x11proto-fixes-dev x11proto-gl-dev
x11proto-render-dev x11proto-randr-dev

# apt-get install libcairo2 libcairo2-dev libcairomm-1.0-0 libcairo-perl
libmono-cairo1.0-cil python-cairo libgl1-mesa-dev libgl1-mesa-dri
libgl1-mesa-glx libglu1-mesa libwxgtk2.4-1 libwxgtk2.6-0
mesa-common-dev mesa-utils libsvn1 libglitz1 libglitz-glx1
libxfont1 libfontenc1 libwnck-common libwnck18 libsvn1

Ahora editamos el sources.list

# nano /etc/apt/sources.list


y agregamos los siguientes repositorios:

deb http://debian.beryl-project.org/ etch main
deb-src http://debian.beryl-project.org/ etch main

Actualizamos los repositorios:

# apt-get update

Para instalar estos paquetes:

apt-get install beryl-core beryl-plugins-data beryl-plugins emerald beryl-settings beryl-manager beryl emerald-themes

Ahora sólo nos falta modificar nuestro xorg.conf

# nano /etc/X11/xorg.conf


En la seccion Module agregamos:

Load "dri"


En la sección de nuestra tarjeta intel agregamos:

Option "RenderAccel" "true"
Option “AllowGLXWithComposite” “true”

En la sección Server Layout:
Section "ServerLayout"
Option “AIGLX” “true”

Y al final agregamos:
Section "Extensions"
Option “Composite” “Enable”
EndSection
Section “DRI”
Mode 0666
EndSection

Ahora para verificar si está todo bién, reiniciamos las X de esta manera Ctrl+Alt+Backspace

saludos y disfruten de Beryl !!!

Nos leemos pronto..

domingo, 4 de marzo de 2007

Bootsplash grafico !!!


Estas cansado de ver las letras blancas y el fondo negro al cargar tu sistema operativo? pues splashy es la solucion, mediante el comando apt-get install splashy podras tener un arranque grafico con una barra de progreso y una imagen estos son los pasos q' segui:

1. Nos vamos a la pagina del proyecto splashy y nos dirigimos a la ficha archivos ("files").

2. Lo lógico sería bajarnos la última version, pero no hay paquete deb, así que, tome la version antigua *.deb

Lo instalamos asi
dpkg -i nombre_de_splashy.deb
lo mismo seria para el archivo de los themes.

3. Una vez instalado, deberemos modificar una línea en /boot/grub/menu.lst para que quede algo asi:
kernel /boot/vmlinuz-2.6.18-4-486 root=/dev/hda4 ro quiet splash vga=792

4. ¡Listo! Ahora, cada vez que iniciemos nuestro sistema, aparecerá una bonita pantalla con una barra cargando.

jueves, 22 de febrero de 2007

Internet hacia el 2015?

Chequense este video donde se muestra la evolucion de Internet a traves del paso del tiempo, esta de pensarse !!!




Saludos ... be free !!!

martes, 20 de febrero de 2007

Solucion a llave publica no disponible !!!

Saludos a todos los debianeros linuxeros, mi problema era q' al ejecutar el comando apt-get update tenia esto:

debianita:/opt# apt-get update
Des:1 http://debian.uchicago.edu etch Release.gpg [189B]
Des:2 http://debian.uchicago.edu etch Release [74,4kB]
Ign http://debian.uchicago.edu etch Release
Des:3 http://debian.uchicago.edu etch/main Packages [4300kB]
Des:4 http://debian.uchicago.edu etch/main Sources [1215kB]
Descargados 5589kB en 5m25s (17,2kB/s)
Leyendo lista de paquetes... Hecho
W: GPG error: http://debian.uchicago.edu etch Release: Las firmas siguientes no se pudieron verificar porque su llave publica no esta disponible: NO_PUBKEY A70DAF536070D3A1
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas

despues de dar un googlazo encontre la solucion en los foros de http://www.tuquito.org.ar/foros/viewtopic.php?t=584

#esto es lo q' hice:

debianita:/opt# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys A70DAF536070D3A1

#el resultado fue:

gpg: directorio `/root/.gnupg' creado
gpg: creado un nuevo fichero de configuracion `/root/.gnupg/gpg.conf'
gpg: AVISO: las opciones en `/root/.gnupg/gpg.conf' no estan aun activas en esta ejecucion
gpg: anillo `/root/.gnupg/secring.gpg' creado
gpg: anillo `/root/.gnupg/pubring.gpg' creado
gpg: solicitando clave 6070D3A1 de hkp servidor wwwkeys.eu.pgp.net
gpg: /root/.gnupg/trustdb.gpg: se ha creado base de datos de confianza
gpg: clave 6070D3A1: clave publica "Debian Archive Automatic Signing Key (4.0/etch) " importada
gpg: no se encuentran claves absolutamente fiables
gpg: Cantidad total procesada: 1
gpg: importadas: 1


#Despues de la respuesta de peticion escribi:

debianita:/opt# gpg --armor --export A70DAF536070D3A1 | apt-key add -
OK

#me dijo q' esta correcto y a continuacion

debianita:/opt#apt-get update

#la respuesta de apt-get update fue

Des:1 http://debian.uchicago.edu etch Release.gpg [189B]
Obj http://debian.uchicago.edu etch Release
Des:2 http://debian.uchicago.edu etch/main Packages/DiffIndex [2038B]
Des:3 http://debian.uchicago.edu etch/main Sources/DiffIndex [2023B]
Descargados 4250B en 4s (905B/s)
Leyendo lista de paquetes... Hecho

La verdad crei q' era cosa mas dificil, pero con la ayuda de toda la comunidad las cosas se facilitan de manera extraordinaria.

martes, 2 de enero de 2007

Manual de Instalacion de Debian !!!

Q' onda a toda la comunidad debianera, pues aprovechando el tiempo libre subi un pequeño manual de la instalacion de Debian en una pc 386, espero les sirva aqui esta la liga.

Instalacion de Debian.

Be free forever

Saludos ..

Un poco de perl !!!

Es un lenguaje de programacion diseñado por Larry Wall creado en 1987, Perl toma caracteristicas de C, del lenguaje interpretado shell y un grado inferior muchos otros lenguajes de programacion.

Estructuralmente, Perl está basado en un estilo de bloques como los del C, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script.


La sintaxis de Perl refleja la idea de que "cosas que son diferentes deben parecer diferentes". Por ejemplo, escalares, arrays y hashes tienen diferente sigil. Índices de array y claves hash usan diferentes clases de paréntesis. Strings y expresiones regulares tienen diferentes delimitadores estándar.

Perl está instalado por defecto en las distribuciones más populares de Linux incluyendo Gentoo, Debian y Suse.

Los usuarios de Microsoft Windows normalmente instalan una distribución binaria de Perl. Compilar Perl desde el fuente bajo Windows es posible, pero la mayoría de las instalaciones no disponen del necesario compilador de C.

La capa de emulación Cygwin proporciona otra forma de correr Perl bajo Windows. Cygwin proporciona en entorno parecido al Unix en Windows que incluye gcc, por lo que compilar Perl desde el código es una opción accesible para los usuarios que prefieren esta opción.

En Perl el tradicional programa q' todos hemos realizdo alguna vez con distintos lenguajes es "Hola mundo"

#!/usr/bin/perl -w
use strict;
print "¡Hola mundo!\n"; # "\n" es un 'nueva línea'


Bueno si te interesa aprender a programar en perl aqui te dejo unos links:

http://perlenespanol.baboonsoftware.com/tutoriales/aprendiendo_perl/perl_basico_parte_1.html

http://www.rafaelmp.net/




Feliz año 2007 !!

Hola, he tenido un poco abandonado mi blog pero a traves de este quiero decirle a todos mis amigos q' les deseo un feliz año 2007, en el cual puedan cumplir todos sus deseos y no esta por demas decir q' los amigos estamos en la buenas y en las malas.
Hay q' echarle artas ganas para salir adelante, suerte a todos.

BE HAPPY!!
FELICIDADES ....

ShareThis