viernes, 11 de diciembre de 2009

Google Chrome beta para Linux.


Google ha publicado una versión beta de su navegador Chrome para Linux...

puedes descargarlo desde el mismo sitio de Google Chrome.

Obtendrás un paquete .deb, el cual es sencillo instalar.

hasta ahora no e visto bugs de consideración, pero esperemos pronto se publique una versión estable.

saludos

El software y las pirámides.

La mayor parte del software que se desarrolla hoy en día es similar a las pirámides egipcias: millones de ladrillos apilados uno encima de otro, sin integridad estructural, y construidas a base de fuerza bruta y miles de esclavos.

– Alan Kay

sábado, 11 de julio de 2009

MOC Music On Console



Reproductores para linux hay mucho... Banshee, rhythmbox, vlc, etc....
y desde hace mucho utilizo MOC, y habia olvidado platicarles acerca de este reproductor...

Asi que al grano... MOC es un rerpoductor que se ejecuta en la consola, por lo tanto las ventajas que nos proporciona es qeu consume pocos recursos, ademas que para los Geeks es una buena opcion para reproducir musica jojojoj.

Pues bien.. Instalarlo es muy facil.. en la consola instalenlo con la ayuda de apt-get install

sudo apt-get install moc

y listo.... ahora para ejecutarlo deben hacerlo directo desde la consola, escribiendo:

mocp

Ahora para utilizar MOC tienen los siguientes comandos (si tienen alguna duda pueden consultarlo en la consola escribiendo mac mon:
  • tecla a ------> enviar cancion o carpeta a la lista de reproduccion
  • tecla d ------> quitar de la lista de reproduccion
  • tecla <> ----> subir y bajar el volumen
  • tecla n ------> reproducir siguiente cancion
  • letra q ------> salimos del cliente, pero el servidor sigue ejecutandose, es decir, podemos utilizar este comando para regresar a la consola y ejecutar otras tareas, pero la MOC sigue reproduciendose
  • letra Q ------> Salir definitivamente de MOC, matando el proceso del cliente y servidor.

saludos.

miércoles, 1 de julio de 2009

Instalar Moovida en Ubuntu 9.04


Moovida es el redisenio (perdo por no usar la letra enie) del media center llamado Elisa.
La instalacion es sencilla:

Primero agregamos la siguiente linea a los origenes de software, para esto nos dirigimos a la siguiente ruta:
Sistema > Administracion > Origenes de softwae > Software de terceros.

Y como les comentaba anteriormente, agregamos la siguiente linea:
deb http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu jaunty main


Una vez agregado, al cerrar la aplicacion, nos perida recargar la lista, hazlo... y una vez actualizada la lista, abre la terminal (o consola) y teclea (o copialo jeeje, recuerda que para copiar texto en la terminal, lo haces con la combinacion de teclas CTRL + SHIFT + V) lo siguiente:

gpg --keyserver keyserver.ubuntu.com --recv 26C2E075 && \
gpg --export --armor 26C2E075 | sudo apt-key add - && \
sudo apt-get update


Por ultimo ya puedes instalar Moovida:

sudo aptitude install moovida
Saludos a todos.

domingo, 31 de mayo de 2009

Montar touchpad en Ubuntu

Hola.. despues de mucho tiempo ejeje.

Un amigo me platicaba que al instalar ubuntu 9.04, tenia el problema que linux no reconocia el touchpad de su notebook.

Por alguna razon linux no lo monta automaticamente.
Lo que podemos hacer es lo siguiente:
  • presionamos las teclas ALT y F2 para ejecutar la aplicacion de acceso rapido.
  • tecleamos la palabra: gnome-terminal.
  • esto nos abrira la terminal de linux (hacemos esto entendiendo que solo el teclado si nos funciona, y el touchpad no. jejej).
  • ahora solo nos queda ejecutar 2 instrucciones para montar el touchpad, la primera instruccion que debes escribir es la siguiente: sudo modprobe -r psmouse
  • te pedira tu pass de root, solo escribela para que la instruccion se ejecute.
  • por ultimo escribimos la segunda instruccion: sudo modprobe psmouse proto=imps
  • y listo... ya podemos mover nuestro cursor jejeej.
saludos a todos y espere les sea de utilidad

domingo, 19 de abril de 2009

Malditas drogas....

Sin palabras... :)


lunes, 2 de marzo de 2009

Propiedades automáticas en C#

Los cambios que aporta .NET en los lenguajes vienen promovidos para mejorar la experiencia de desarrollo de manera sutil y dramática y con esto mejora la productividad y reduce la cantidad de código que tenemos que escribir.

Nueva característica de C#: Propiedades automáticas.

Si somos desarrolladores en C#, normalmente escrbimos las clases con propiedades básicas como en el código siguiente:

public class Persona

    {

        private string nombre;

        private string apellido;

        private int edad;


        public string nombre

        {

            get { return _nombre; }

            set { _nombre = value; }

        }


        public string apellido

        {

            get { return _apellido; }

            set { _apellido = value; }

        }


        public int edad

        {

            get { return _edad; }

            set { _edad = value; }

        }

    }


No estamos añadiendo ninguna lógica en las propiedades Get/Set, todo lo contrario, lo que estamos haciendo es asignar los valores a una variable. 

El compilador de C# nos proporciona una forma elegante para hacer que el código que escribamos sea más conciso mientras mantiene la flexibilidad de las propiedades usando una nueva característica conocida como “propiedades automáticas”. Las propiedades automáticas nos permiten evitar la declaración manual de variables privadas y escribir el código de los métodos get/set – En lugar de eso, el compilador puede crear automáticamente las variables privadas necesarias y el código por defecto de los métodos get/set por nosotros.

Por ejemplo, usando las propiedades automáticas podemos reescribir el código anterior de la siguiente manera:

    public class Persona

    {

        public string nombre {get; set;}

        public string apellido {get; set;}

        public int edad { get; set; }

    }

Cuando el compilador de C# se encuentre con los Get/Set’s vacíos, como en el código anterior, generará automáticamente una variable privada en la clase, e implementará las propiedades públicas get y set para ella. El beneficio de esto es que desde un punto de vista de tipo-contrato, la clase será exactamente igual que la primera implementación de la que hablábamos más arriba. Esto significa que –al contrario que las variables públicas – más adelante podemos añadir validación lógica en el método set sin tener que cambiar ningún componente externo que referencie a mi clase.

Saludos.

miércoles, 4 de febrero de 2009

lunes, 2 de febrero de 2009

Comando lshw

Hace poco me preguntaron acerca de algun comando que despliegue en su totalidad todas las caracteristicas del cual consta nuestro equipo.

El comando lshw nos ayuda en este aspecto.
Bloque entrecomillado
solo teclea en la terminal:
sudo lshw


Saludos...

viernes, 30 de enero de 2009

Instalando Ruby On Rails en linux


Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato oficial de paquete y canal de distribución de librerías y aplicaciones Ruby.

Podemos instalarlo desde apt en debian ó desde el mismo Rubygems

sudo aptitude install rails

ó con este comando tambien

sudo gem install rails

Ahora crearemos nuestro primer proyecto:

rails mi_proyecto
cd mi_proyecto

Esto creará una seria de archivos y directorios para nuestro proyecto. La estructura sería la siguiente:

  • app:Acá se almacenará los componentes de nuestra aplicación: vistas y 'helpers', controladores y modelos.
  • config:Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).
  • public:Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.
  • script:Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician en servidor web (server).

Servidor Web:
RoR cuenta con su propio servidor para desarrollo, el cuál nos permite visualizar nuestro proyecto, para correrlo debemos de escribir en la consola lo siguiente, siempre y cuando estemos dentro de la carpeta de nuestro proyecto:

ruby script/server

Ahora abrimos un navegador y tecleamos http://localhost:3000 Y nos aparecerá la pantalla principal de Ruby On rails:

Saludos y espero les sea muy util esta informacion.

Instalando Ruby y Apache en Linux


Para desarrollar aplicaciones para web utilizo (por motivos laborales) .Net de microsoft (si... de microsoft, recuerden que hay la implementacion de .Net para linux y sistemas Unix :)).

Pero me gusta la idea que que existen otras alternativas, quisas mejores en varios aspectos a asp.net.

Llevo un tiempo desarrollando cosillas en ruby on rails, y es un framework de desarrollo muy bueno.

Asi que hoy vamos a ver los pasos para instalar ruby y el servidor Apache en linux (utilizaremos Ubuntu 8.10, aunque funcionara para cualquier sistema basado en Debian).

Asi que comencemos:


Primeramente instalamos los paquetes necesarios:

sudo aptitude install ruby libapache2-mod-ruby eruby rubygems

Una vez instalado los paquetes, hay que configurar apache, para ello editamos el archivo apache.conf:

sudo gedit /etc/apache2/apache2.conf

Y agregamos en cualquier parte al final del archivo lo siguiente:

##Configurando paquetes de Apache
AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /cgi-bin/eruby

Para que apache interprete el comando Action es necesario hacer un enlace:

sudo cd /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/actions.load actions.load

Ahora linkeamos el interprete eruby:

sudo cd /usr/lib/cgi-bin
sudo ln -s /usr/bin/eruby eruby

Y reseteamos apache:

sudo /etc/init.d/apache2 force-reload
sudo /etc/init.d/apache2 restart

Ahora si, ya podemos crear archivos .rb ó .rhtml, nuestra primera prueba sería con el editor de textos crear un archivo llamado hialien.rhtml y le agregamos lo siguiente:

*html*
<% print "hola mundo!" %>
*html*


remplazas los asteriscos por estos simbolos < > ya que blogger no me lo imprime ejej

Podemos crear también un script en ruby, este lo llamaremos hialien.rb :

#!/usr/bin/env ruby
print "Hi Alienware...! \n"

Este lo corremos desde la consola con:

ruby hialien.rb

Pues bien, ya tenemos Ruby y apache instaladon en linux, ademas de crear un archivo sencillo para ver como se ejecuta...

Mas adelante veremos como instalar Rails, el cual nos ayudara a realizar websites de una manera facil, y cuando digo facil, es porque es facil :).

Saludos

Mono 2.2... listo.

El pasado 13 de enero fue liberado la version estable de mono 2.2.
Algunas de las novedades y mejoras son las siguientes:

  • Una nueva clase llamada Mono.CSharp.Evaluator que permite a los desarrolladores embeber el compilador C# dentro de sus aplicaciones.
  • Nueva shell interactiva para C#, el comando para llamarla es csharp
  • 200 bugs reportados en las windowforms han sido resueltos
  • ASP.NET 3.5 SP1 ha sido implementado.
Para ver las notas de lanzamiento, vayan a este link.
Tambien pueden descargar desde aqui Mono 2.2 para la plataforma que utilices (linux, mac, windows)

Saludos...

sábado, 10 de enero de 2009

Descargar windows 7 beta.

 

windows-7-logo

Links de descargar de Windows 7, recordando que es una versión Beta.

Descargar Windows 7 32bits (2,44GB)

Descargar Windows 7 64bits (3,15GB)

 

Saludos…

lunes, 15 de diciembre de 2008

Visual Studio 2010, Novedades presentadas en el PDC 2008


Un resumen respecto a las innovaciones a la plataforma de desarrollo .NET presentadas en el PDC.



  • Puedes escribir aplicaciones que saquen provecho de Windows 7 utilizando Win32/C++ y Visual Studio 2010

  • Visual Studio 2010 incorpora soporte para desarrollo multi-core, de tal forma que podrás, por ejemplo, saber en qué core de tu equipo está corriendo un pedazo de código al depurar la aplicación.


Mejoras incorporadas en .NET Framework 3.5 SP1



  • Mejoras a los gráficos.

  • Soporte para pixel shader!

  • Las aplicaciones .NET arrancan más rápido

  • Mejoras a Windows Presentation Foundation (WPF)

  • Mejoras a la experiencia de usuario al usar Click Once

  • Viene incorporado con Windows 7

  • Windows Presentation Foundation

Esta semana se liberan nuevos controles para WPF:



  • Ribbon. Dado que ahora Windows 7 incorpora al Ribbon de Office 2007 como parte integral, puedes usarlo en cualquiera de tus aplicaciones!

  • Datagrid (al fin!)

  • Calendar

  • DatePicker

  • Visual State Manager. El mismo que ya tenía Silverlight 2.

  • Jump Lists. Permiten agregar tareas contextualizadas a tu aplicación en el nuevo task bar.

  • Las aplicaciones WPF entienden las capacidades de multi-touch nativamente, sin cambios a tu código.

  • Una simpática aplicación de fotos, llamada Photo Suru, demuestra las capacidades de WPF en Windows

.Net Framework 4.0


  • Ahora puedes cargar tus aplicaciones de corran en un framework inferior a .NET 4.0 directamente en .NET 4.0, sin necesidad de recompilar.

  • Mejoras a la interoperabilidad entre código administrado y no administrado

  • Incorpora el Managed Extensibility Framework. Esta te permite extender las capacidades de una aplicación existente, según los puntos de extensibilidad definidos en la aplicación.

Visual Studio 2010



  • El primer Community Technology Preview (CTP) estará disponible dentro de poco desde acá.

  • El diseñador de WPF mejora considerablemente.

  • Estará completamente construido en WPF.

  • Posee soporte para multiples monitores.

  • Soporte mejorado para refactoring.

  • Mejoras a la visualización del código.

  • Mejoras al desarrollo orientado a pruebas.

  • Mejoras a la extensibilidad de VS 2010 con plugins. Una demo muy simpática mostró cómo mostrar informacion de bugs alojados en Team Foundation Server (TFS) directamente en el editor de código.

  • Mejoras al soporte de REST.

  • jQuery estará integrado a VS 2010.

  • ASP.NET MVC estará incorporado en VS 2010.

  • La API para caché distribuido recientemente anunciado estará integrado en VS 2010.

  • Soporte para múltiples versiones de web.config (para pruebas, staging, deployment, etc.).


Silverlight 2.0


  • Ya está instalado en aproximadamente 100,000,000 de máquinas.

  • Sus capacidades de manejo de medios ya están siendo probadas con éxito en sitios como el de NBC, Olympics y NetFlix.

  • Nuevo Silverlight Toolkit gratuito. Incorpora nuevos controles como treeview, expander y charts!!! Descárgalo desde acá.

  • Nuevo diseñador para Silverlight 2 en Visual Studio 2010, con soporte WYSIWYG, databinding y más.

  • Silverlight va a poder correr dentro o fuera del navegador.

Saludos...

Actualización 10.5.6 de Mac OS X

Para los usuarios y amantes de las Mac, llega la actualización 10.5.6 disponible en el apartado de "Actualización de Software" de tu Mac.

El fabricante ha hecho oficial los cambios que se ven afectados, y son los siguientes:

  • Mejora las conexiones AirPort, incluida las mejoras en itinerancia sobre grandes redes inalámbricas sobre equipos basados en Intel.

  • Mejora la fiabilidad de sincronización de la libreta de direcciones con el iPhone y otros dispositivos y aplicaciones.

  • Incluye varias mejoras en el rendimiento en juegos.

  • Soluciona posibles errores gráficos con determinadas tarjetas ATI.

  • La sincronización con MobileMe es más rápida, solucionando los tiempos de sincronización de los contactos, calendarios y marcadores.

  • Mejora el servicio de archivos de Apple, especialmente cuando se hace uso de un directorio alojado en un servidor AFP.

  • Mejora la fiabilidad y rendimiento con las tarjetas 3G de AT&T.

  • Soluciona problemas con algunas impresoras USB de Brother y Canon.

  • Corrige el problema que provocaba que Time Machine no encontrara el volumen de almacenamiento.

  • Mejora la compatibilidad de Time Machine con Time Capsule.

  • Añade un apartado de TrackPad en el panel de preferencias.

  • Mejora el rendimiento del juego de ajedrez (¡por fin!)

Visto en: Genbeta

sábado, 13 de diciembre de 2008

Memoria SWAP en linux


Cuando tu computadora necesita correr aplicaciones que son mas pesados que tu capacidad de memoria física instalada, los sistemas operativos mas modernos usan una tecnología llamada swapping, en la cual trozos de memoria son temporalmente almacenados en el disco duro mientras que la otra data es movida hacia el espacio de la memoria física Aquí hay algunas técnicas que te pueden ayudar a administrar mejor el swapping en los sistemas Linux y obtener el mejor performance del subsistema swapping de Linux.

Linux divide su memoria RAM en trozos de memoria llamados pages (paginas). Swapping es el proceso en el cual un page de memoria es copiado en el espacio del disco duro preconfigurado, llamado espacio o partición swap, para liberar ese page de memoria. El tamaño combinado de la memoria RAM y la partición swap es la cantidad memoria virtual disponible.

Swapping es necesario por dos importantes razones. Primero, cuando el sistema necesita mas memoria que la RAM es disponible, el kernel intercambia las pages usadas y proporciona mas memoria a la aplicación (proceso) que lo necesita inmediatamente. Segundo, un significante números de pages usadas por una aplicación durante su fase de inicio puede ser solo usada para la inicialización y luego no usada otra vez. El sistema puede intercambiar aquellas pages y liberar la memoria para otra aplicación o incluso para la cache de disco.

Como sea, swapping tiene una desventaja. Comparado a la memoria, el disco es muy lento. La velocidad de la memoria puede ser medida en nanosegundos, mientras que la del disco es medida en milisegundos, por eso acceder al disco puede ser diez veces mas lento que acceder a la memoria física.

Linux tiene dos formas de intercambiar (swap) espacio:
La partición swap y el archivo swap. La partición swap es una sección independiente del disco duro usada únicamente para intercambio. ningún otro archivo puede residir ahí El archivo swap es un archivo especial en el fichero del sistema (filesystems) que reside entre tu sistema y los archivos de datos.
Para ver cuanto espacio de intercambio tienes, usa el comando: swapon -s
Tendras una salida parecida a esta (dependiendo tu equipo):

agentdavid@Alienware:~$ swapon -s
Filename Type Size Used Priority
/dev/sda6 partition 497972 0 -1


Cada linea lista un espacio swap diferente que esta siendo usado por el sistema. Aquí el campo Tipo (Type) indica que este espacio swap es una partición en vez de un archivo y el campo Filename muestra que esta en el disco sda4. El tamaño (Size) esta mostrado en kilobytes, y el campo Used muestra cuantos kilobytes de espacio swap esta siendo usado. El campo Priority le indica a Linux cual es el espacio que debe ser usado primero. Una de las grandes ventajas del swapping en subsistemas Linux es que si montas dos o mas espacios swap (de preferencia en dos dispositivos diferentes) con la misma prioridad, Linux intercalara su actividad de swapping entre ellos, lo cual puede incrementar la performance del swap.


Actualmente las distros basadas en linux ya traen una interfaz durante la instalacion, para asignar la memoria swap, e incluso linux puede asignarlo automaticamente.
Pero siempre es importante entender y conocer como manualmente asignar la medida correcta de swap en nuestro equipo.
En un post futuro platicare acerca de este tema.

Informacion del Sistema en Linux

Sistemas basados en GNU/Linux (Al igual que sus parientes basados en Unix como BSD o los de Macinstosh) conservan la tradición de tener multitud de comandos que permiten conocer el estado del sistema. Es decir, cada uno da pequeñas piezas de información sobre multitud de partes diferentes de lo que esta sucediendo en tu sistema Linux. Algunos de estos comandos pueden ser ejecutados por cualquier usuario y otros varios solo por root. En esta ocasión te presento, sin ningún orden en específico, una recopilación de los más útiles y usados de estos comandos.
  • uname
    Imprime información del sistema
    agentdavid@Alienware:~$ uname -r
    2.6.27-10-generic
    agentdavid@Alienware:~$ uname -a
    Linux Alienware 2.6.27-10-generic #1 SMP Fri Nov 21 12:00:22 UTC 2008 i686 GNU/Linux
    agentdavid@Alienware:~$

  • fdisk
    Permite manipular/crear particiones en Linux, pero tiene una interesante opción de consulta, -l:

    agentdavid@Alienware:~$ fdisk -l

    Disk /dev/sda: 160.0 GB, 160041885696 bytes
    255 heads, 63 sectors/track, 19457 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x0002ecbc

    Device Boot Start End Blocks Id System
    /dev/sda1 * 1 63 506016 83 Linux
    /dev/sda2 64 10261 81915435 83 Linux
    /dev/sda3 10262 18929 69625710 83 Linux
    /dev/sda4 18930 19457 4241160 5 Extended
    /dev/sda5 18930 19457 4241128+ 82 Linux swap / Solaris

    Disk /dev/sdb: 40.0 GB, 40007761920 bytes
    255 heads, 63 sectors/track, 4864 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x000063b0

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 4863 39062016 c W95 FAT32 (LBA)

    Podemos observar en este listado varios aspectos muy útiles, primero que tenemos dos dispositivos conectados al sistema, /dev/sda y /dev/sdb, los dos son discos duros, el primero es el propio del equipo y tiene varias particiones, incluso determinamos cual es la partición de arranque que es /dev/sda1. El segundo dispositivo contiene una partición Windows como podemos ver en la columna 'System' del último renglón 'W95 FAT32', que indiscutiblemente es de Windows, no es una memoria flash por el tamaño (Disk /dev/sdb: 40.0 GB) mostrado. Asi que se trata de un disco duro externo.

  • free
    ¿Sientes tu sistema demasiado lento?, comienza checando con free que despliega como se encuentra de saturada la memoria física RAM y la de la partición SWAP.


    total used free shared buffers cached
    Mem: 2063268 966572 1096696 0 27836 509908
    -/+ buffers/cache: 428828 1634440
    Swap: 497972 0 497972
    agentdavid@Alienware:~$
    La línea 'Mem:' es la memoría fisica RAM, que en este ejemplo tiene 2 GB de los cuáles se están usando 989 megas, bastante razonable todavía, la línea 'Swap:' muestra la partición de swap (lo que en Windows se le conoce como archivo de intercambio), que generalmente se establece al doble de la RAM y que idealmente no debe estar usada, como el ejemplo lo muestra. Cuando tu línea Swap muestra demasiado uso y casi nada libre, tienes serios problemas de rendimiento, considera entonces en incrementar tu RAM. Prueba con free -mt para ver una línea más al final con la suma de las dos Mem + Swap.

  • lsmod
    Muestra el status de los módulos del kernel actualmente cargados en el sistema.


    Module Size Used by
    ipv6 263972 10
    af_packet 25728 2
    i915 38144 2
    drm 86056 3 i915
    binfmt_misc 16904 1
    ppdev 15620 0
    container 11520 0
    pci_slot 12552 0
    sbs 19464 0
    sbshc 13440 1 sbs
    wmi 14504 0
    acpi_cpufreq 15500 0
    cpufreq_powersave 9856 2
    cpufreq_ondemand 14988 0

    .......... (La lista aun sigue...)
  • lspci
    Lista los dispositivos PCI del sistema.


    00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
    00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
    00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
    00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
    00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
    00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
    00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
    00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
    00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
    00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
    00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
    00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
    00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
    00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
    00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
    00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
    02:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
    05:07.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
    05:07.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller
    05:07.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
    05:07.3 SD Host controller: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller
    05:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
  • lsusb
    Lista los dispositivos usb del sistema.


    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • df
    Reporta el uso de espacio en los discos duros.

    agentdavid@Alienware:~$ df
    S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
    /dev/sda5 9843276 4081848 5261408 44% /
    tmpfs 1031632 0 1031632 0% /lib/init/rw
    varrun 1031632 108 1031524 1% /var/run
    varlock 1031632 0 1031632 0% /var/lock
    udev 1031632 2756 1028876 1% /dev
    tmpfs 1031632 232 1031400 1% /dev/shm
    lrm 1031632 2000 1029632 1% /lib/modules/2.6.27-10-generic/volatile
    /dev/sda1 67648684 34771872 32876812 52% /media/Area51
Saludos...

domingo, 30 de noviembre de 2008

Acerca de la arquitectura MVC


El Modelo Vista Controlador (MVC) 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 modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio; y el controlador es el responsable de recibir los eventos de entrada desde la vista.

pero veamoslo mas a detalle:

  • 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 importes 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.

Muchos sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para gestionar los datos. En MVC corresponde al modelo.

Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:

1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace)

2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.

3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.

4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, el patrón de observador puede ser utilizado para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista.

5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

Saludos...

Instalar Adobe Reader 8.1.3 en Ubuntu 8.10


En linux existen excelentes visores de documentos PDF, pero si eres de los que quieres disfrutar de la lectura de ficheros PDF, utilizando este clasico programa, ahora es muy sencillo, ya que existe en extencion .DEB:

descargar Adobe con extension .DEB


Encontraras el programa en el menu:

Aplicaciones > Oficina.

Si no usas Ubuntu o Debian, puedes probar a descargar una version para tu distribucion en :

Ver lista de descargas Adobe reader para otras distribuciones
Saludos.

Instalando Oracle 10g Enterprise en Ubuntu 8.10



La versión Express de Oracle 10g si que viene con soporte directo para Ubuntu, pero si por alguna mágica razón necesitas instalar la Enterprise, que solo viene con soporte oficial para Red Hat, SUSE y Oracle Linux.

Vamos a instalar la versión 10.2.0.1.0, así que la puedes ir bajando y desempacando que pesa casi 700MB.

El instalador espera que los binarios de basename y awk esten en /bin y no en /usr/bin, asi que crearemos unos soft links.

sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/awk /bin/awk

SUSE y Red Hat utilizan el grupo nobody para el usuario nobody, pero los sistemas basados en Debian utilizan el grupo nogroup. Así que creamos el nuevo grupo.

sudo addgroup nobody

Ahora podemos correr el instalador gráfico, pero con un parámetro indicándole que ignore los pre-requisitos, sino detectara que estas utilizando una distribución no soportada oficialmente y cancelara la instalación. Si evitas instalar la base de datos desde este punto y solo instalar las herramientas la instalación durara mucho menos, pero si el tiempo no es problema para ti, créala de una vez y así te ahorras crear el listener y la base de datos manualmente.

./runInstaller -ignoresysprereqs

Al finalizar la instalación, el instalador te pedirá instalar un archivo de bash como root, ejecútalo con sudo tal cual te lo muestra y no tendrás problemas.

Probablemente tengas problemas con librerías faltantes, entonces es muy recomendable incluir las librerías que trae oracle y así te evitas estar compilandolas. Ademas de ejecutarla una vez puedes meterla a tu archivo .bashrc y que se cargue automáticamente cuando inicies sesión.

export LD_LIBRARY_PATH=/path/de/tu/instalacion/lib/

En mi caso también me dio problemas por una librería faltante llamada libaio, pero sin problemas se instala porque se encuentra también en los repositorios de ubuntu.

sudo aptitude install libaio-dev

Listo! Ya tienes una instalación funcional de Oracle 10g Enterprise.

Ojo, que Oracle no te instalara los menús de accesos directos a la diferentes aplicaciones, pero aún asi tienes todo dentro del directorio /bin. Por mencionar algunos comandos útiles:

Para administrar (crear, borrar, editar) listeners y otras herramientas de red, como conectarte a una base de datos externa:

netca

Para administrar tus bases de datos (crear, borrar, etc):

dbca

Para iniciar o parar el database control:

emctl start dbconsole
emctl stop dbconsole

Para iniciar o parar el servicio web de iSQL*Plus:

isqlplusctl start
isqlplusctl stop

Para iniciar o parar listeners:

lsnrctl start
lsnrctl stop

Para entrar a la consola de SQL*Plus

sqlplus

Espero les sea de utilidad, Saludos.

Informaci
ón basada en La guia de Taw's