Computer Science is no more about computers than astronomy is about telescopes. Edsger W. Dijkstra

Próximamente Solución del Reto

2008-10-06 23:48:23-05

Mi pensar

Quiero avisar que en una semana más pondré la solución al reto que puse aquí en mi blog de la mononeurona. Para los que hayan tratado de resolverlo, tienen tiempo para hacerlo.

Como información adicional, este problemilla formó parte de un concurso local del ACM ICPC en la UTM, cuando fui jurado junto con mi cuate Juquila, y pues planteé este problema basándome en la idea de un problema de un SRM en Topcoder. No es exactamente la misma redacción que se usó en el concursito de la UTM, pero el problema a resolver es el mismo.

Permalink: http://www.mononeurona.org/users/entry/thot/1576


Mi nueva página

2008-09-29 13:10:09-05

Mi pensar

Después de que me quitaron mi página de mictlan. Pues estoy tratando de levantar mi nueva página. Desgraciadamente apenas la estoy armando, estoy utilizando Joomla. Ya le puse el Geshi para resaltado de código. Y casi tiene toda la información que tenía la anterior, esto es, casi nada.

Lo único que he agregado nuevo, es la utilización de getopt para obtener los parámetros en un programa en C, por el reto que había puesto asarch.

Esperemos ahora sí pueda continuar todo lo que me he propuesto para esta página.

 

Permalink: http://www.mononeurona.org/users/entry/thot/1564


Mi primer aporte en código al Software Libre.

2008-09-15 22:30:44-05

Programacion

La semana pasada estuve muy contento, porque afortunadamente fue aceptado mi proyecto en el Joomla Code.

El proyecto es muy simple es un módulo y un componente para administrar Efemérides, utilizando el poder del framework MVC que tiene Joomla para programar sus nuevos componentes, el cual no es nada despreciable. Este proyecto lo programé como un aporte para la migración de la página Revolucionemos Oaxaca a un nuevo servidor, con la nueva versión de Joomla 1.5 y con un nuevo diseño. Todo esto se hará próximamente, confiemos en que no pase de mediados del próximo mes.

Si alguien gusta simplemente se tiene que registrar en el Joomla Code, y unirse al proyecto. Es bastante simple el componente, y por lo mismo adecuado para quien desee iniciarse programando componentes en Joomla lo pueda hacer sin ningún problema. Si alguien gusta testearlo también se agradecería mucho.

Esta es mi primera aportación en código a la comunidad de Software Libre, no es gran cosa pero por algo se empieza.

Permalink: http://www.mononeurona.org/users/entry/thot/1550


Mis reflexiones sobre las "Fiestas Patrias"

2008-09-14 13:11:05-05

Mi pensar

Advertencia: Está a punto de leer opiniones personales sobre algún tema, lo cual puede ser aburrido y a veces contrario a sus forma de ver las cosas. Eso forma parte de la siempre necesaria diversidad de pensamiento. Léase bajo su propio riesgo. 

Caminando por las calles de algunas ciudades de Oaxaca, he notado ese fenómeno que seguramente se está dando en la mayoría de lugares en territorio mexicano, la famosa "exaltación del mexicanismo" en base a banderitas y demás artículos (chinos) que por alguna extraña razón hacen sentir a las personas más "mexicanas". Es extraño que en México ser mexicano se reduzca a "dar el grito de independencia, apoyar a la selección y ponerte borracho en las fiestas patrias". Cada vez que veo esto mientras camino, siento tristeza. Al buscar justificantes hay muchas, la ignorancia, la desinformación, la terrible influencia de los medios, y demás.

Pero ahora que se acerca el "Día de la Independencia", ¿qué festejamos? se supone que festejamos la "liberación" de México de la tiranía de la corona española. Bien. Y se gritará "¡Viva México! ¡Viva la independencia!", bla, bla. Y lo gritará quien se supone es el presidente de este país, y lo gritará con completo cinismo. ¿Cómo se puede gritar eso cuando ese "presidente" ha firmado la Iniciativa Mérida que es una forma de romper con esa "independencia" (1,2)? ¿Cómo se puede gritar eso cuando trata de regalar el único recurso que mantiene a flote el país, el petróleo, a empresas españolas (1,2,3), irónicamente cuando se festeja la independización de España?

Podría consolarme diciendo que "ahora ya no estamos bajo una monarquía, y menos extranjera". Pero no es gran consuelo, tomando en cuenta que "lo nuevos reyes" de México es menos del 5% de la población y esta "cúpula de poder" es una cúpula corrupta que puede matar (como ejemplo las locutoras triquis), desaparecer (la desaparición forzada de 2 eperristas ), cometer ilícitos (nexos de la cúpula con narcotraficantes y demás, por ejemplo el caso del procurador de tabasco), pasarse por el triunfo las leyes, dónde les importa un carajo lo que piense la mayoría de la gente, dónde usan los medios y son capaces de crear un clasismo estúpido en el mexicano desinformado, todo esto con total impunidad.

Otra forma de consuelo podría ser "pero hay democracia". Vaya ingenuidad, en un país con un par de fraudes electorales en menos de 25 años. Con un control electoral asqueroso en todos los estados, con representantes "populares" que simplemente buscan su beneficio o el beneficio de los "neoreyes".

Siempre que camino, y surgen todos esos pensamientos se me viene a la mente una canción "Neopatria" de un trovador poblado llamado Gerardo Pablo, aquí un pequeño extracto:

"Para quien no se ha dado cuenta
que la serpiente ya ha mordido
varias veces a nuestra águila

Y que no puede volar
y lleva tanto tiempo encadenada
entre los aguijones de un nopal"

Creo que el único consuelo que siempre está ahí, es la esperanza de que las cosas cambien, y sobre todo de tratar de que eso suceda aunque sea con esas pequeñas acciones que están en nuestras manos.
 

Permalink: http://www.mononeurona.org/users/entry/thot/1548


Reto

2008-09-01 23:09:22-05

Programacion

Tomando en cuenta los retos que ha puesto asarch. (El primero usando unos comando de shell para hacer renombrado de grupos de archivos y el segundo de modificar el programa en C de saidjosé para que tomara los parámetros desde la línea de comandos, en estilo BSD y GNU). Ahora quisiera poner uno pequeño pero que tiene que ver con lógica y programación. Trataré de poner todas las restricciones que tenga el problema para encontrar la manera óptima de resolverlo.

Veamos el siguiente planteamiento:

Un pintor quiere pintar una línea de casas de un fraccionamiento, solamente es una calle. Y lo tiene que hacer de diferentes colores sin que un color se repita para 2 casas adyacentes, solamente cuenta con 3 colores para elegir. El tiempo para pintar una casa dependerá del tamaño de la casa, del color a utilizar y del color que tenga la casa en ese momento. El problema para el pintor es que necesita hacerlo lo más rápido posible, porque entre menos días se tarde ganará más, y podría seguir pintando algún fraccionamiento.

Entrada: Constará de un entero n en la primera línea, que dice el número de casas. Seguido de n líneas, cada una con 3 enteros representando el tiempo que se tardará el pintor en esa casa para cada color. Podrá haber hasta 10,000 casas.

Salida: Simplemente se debe imprimir el tiempo mínimo para pintar todas las casas.

Ejemplo:


Entrada:
3
26 40 83
49 60 57
13 89 99
 
Salida:
96

Restricciones: Se puede hacer en cualquier lenguaje de programación, hasta se puede solucionar simplemente con pseudocódigo. La restricción es que debería correr en menos de 1 segundo, para eso tomaremos como base que aproximadamente 1000,000,000 de operaciones (sumas, restas, comparaciones, etc) se ejecutan en aproximadamente 1 seg.

Cualquier duda que tengan sobre el problema, se las puedo aclarar. Si necesitaran ayuda sobre como leer la entrada o desplegar la salida, también se puede apoyar con eso.

Permalink: http://www.mononeurona.org/users/entry/thot/1531


Instalando OpenBSD 4.3

2008-08-20 18:10:31-05

Programacion

Pondré aquí una guía rápida para la instalación de OpenBSD 4.3, aunque recomiendo ampliamente la guía de instalación de OpenBSD que está en la página oficial, ya que contempla la mayoría de casos que se pueden encontrar durante la instalación. Aunque no hay documentación "en exceso" de OpenBSD la que se encuentra es de muy buena calidad.

Lo primero que hay que hacer es descargar el ISO de la página de OpenBSD, en este caso es la versión para plataforma i386, para todas las demás en este enlace.

Ya teniendo la imagen ISO, lo quemamos en algún CD. (No creo que necesite ser tan explícito, pero aún así lo pongo).

Reiniciamos la máquina y booteamos con el CD.

Lo primero que preguntará es qué deseamos hacer:

root on rd0a swap on rd0b dump on rd0b
  erase ^?, werase ^W, kill ^U, intr ^C, status ^T
  (I)nstall, (U)pgrade or (S)hell?

En este caso elegimos instalar. (Upgrade instalará nuevos archivos pero no sustituye ningún archivo de configuración, Shell brindará un entorno para desarrollar tareas de mantenimiento).

Después de esto preguntará, qué tipo de terminal.

Terminal type: [vt220] (presionamos enter)
kbd(8) mapping? ('L' for list) [none]
(Si se presiona enter pondrá el teclado en la distribución estándar en inglés, si se quiere la distribución latina sería la).

Ahora procedemos con la instalación:

Proceed with install? [no] y

Available disks are: wd0.
  Which one is the root disk? (or done) [wd0]

En este caso, voy a utilizar todo el disco para OpenBSD
Do you want to use *all* of wd0 for OpenBSD? [no] y

Ahora procedemos a crear las particiones y especificar su punto de montaje:

Para eso primero mostramos la información del disco, con p m

> p m

La partición c: sería el disco completo:

Para agregar una partición simplemente a . Por ejemplo: a a, a b, a d, a e, etc. Simplemente preguntará el offset  (normalmente se le da Enter nada más), el tamaño, el tipo de sistema de archivos y el punto de montaje.

Ya creadas las particiones presionamos q para salir.

> q

Write new label?: [y] (Presionamos Enter)

Pedirá confirmación para todas las particiones con su respectivo punto de montaje, presionamos Enter, cuando estemos seguros de que ya está todo bien, tecleamos done. Con eso se procederá a guardar la información en el disco.

Le ponemos nombre al sistema:

System hostname (short form, e.g. 'foo'): shunashi

Configuramos la red (aquí el ejemplo que viene en la guía de instalación de OpenBSD, porque no guardé la configuración que hice en el server en que estaba trabajando), en este ejemplo se tienen 2 tarjetas de red, una se configurará con IP fija y otra con DHCP, sin tener IPv6 y :

 

Configure the network? [yes] Enter Available interfaces are: fxp0 xl0. Which one do you wish to initialize? (or 'done') [fxp0] xl0 Symbolic (host) name for xl0? [puffy] Enter The media options for xl0 are currently media: Ethernet autoselect (100baseTX full-duplex) Do you want to change the media options? [no] Enter IPv4 address for xl0? (or 'dhcp') 192.168.1.254 Netmask? [255.255.255.0] Enter IPv6 address for xl0? (or 'rtsol' or 'none') [none] Enter Available interfaces are: fxp0. Which one do you wish to initialize? (or 'done') [fxp0] Enter Symbolic (host) name for fxp0? [puffy] Enter The media options for fxp0 are currently media: Ethernet autoselect (10baseT half-duplex) Do you want to change the media options? [no] Enter IPv4 address for fxp0? (or 'none' or 'dhcp') dhcp Issuing hostname-associated DHCP request for fxp0. DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 1 DHCPOFFER from 73.34.136.1 DHCPREQUEST on fxp0 to 255.255.255.255 port 67 DHCPACK from 73.34.136.1 bound to 69.241.244.76 -- renewal in 1800 seconds. IPv6 address for fxp0? (or 'rtsol' or 'none') [none] Enter No more interfaces to initialize. DNS domain name? (e.g. 'bar.com') [my.domain] example.com DNS nameserver? (IP address or 'none') [68.87.77.130 68.87.72.130] Enter Use the nameserver now? [yes] Enter Default route? (IP address, 'dhcp' or 'none') [dhcp] Enter Edit hosts with ed? [no] Enter Do you want to do any manual network configuration? [no] Enter 

Le escribimos el password para root.

Password for root account? (will not echo) pasguor
Password for root account? (again) pasguor
 

Elegimos el medio de instalación:

Location of sets? (cd disk ftp http or 'done') [cd] (Presionamos enter)

Available CD-ROMs are: cd0.
  Which one contains the install media? (or 'done') [cd0]  (Presionamos enter, o elegimos el lector donde tengamos la instalación)
  Pathname to the sets?  (or 'done') [4.3/i386] (Presionamos enter)

          [X] bsd
          [X] bsd.rd
          [ ] bsd.mp
          [X] base43.tgz
          [X] etc43.tgz
          [X] misc43.tgz
          [X] comp43.tgz
          [X] man43.tgz
          [X] game43.tgz
          [ ] xbase43.tgz
          [ ] xetc43.tgz
          [ ] xshare43.tgz
          [ ] xfont43.tgz
          [ ] xserv43.tgz
  Set name? (or 'done') [bsd.mp] (En mi caso presioné done, porque no necesitaba modo gráfico, en caso de necesitarlo hay que marcas todo lo que es para el modo X, y se marcaría el bsd.mp si es un sistema multiprocesador).


Preguntará si está listo para instalar.

Ready to install sets? [yes] (Enter)

Preguntará de nuevo la localización de los conjuntos de archivos para instalación, ahí nada más presionamos enter, porque ya los instalamos.

Location of sets? (cd disk ftp http or 'done') [done]

Ahora elegimos que se levante el demonio para el ssh, en este caso para poder administrarlo remotamente:

Start sshd(8) by default? [yes] y

No se pondrá un servidor NTP.

NTP server? (or 'none' or 'default') [none] (Enter)

Y tampoco correr el modo X.

Do you expect to run the X Window System? [no] (Enter en mi caso)

Tampoco cambiaremos la consola por default.

Change the default console to com0? [no] (Enter)

Finalmente elegimos la zona horaria. En mi caso sería México/

 

Saving configuration files......done. Generating initial host.random file ......done. What timezone are you in? ('?' for list) [Canada/Mountain] ? Africa/ Chile/ GB-Eire Israel NZ-CHAT UCT America/ Cuba GMT Jamaica Navajo US/ Antarctica/ EET GMT+0 Japan PRC UTC Arctic/ EST GMT-0 Kwajalein PST8PDT Universal Asia/ EST5EDT GMT0 Libya Pacific/ W-SU Atlantic/ Egypt Greenwich MET Poland WET Australia/ Eire HST MST Portugal Zulu Brazil/ Etc/ Hongkong MST7MDT ROC posix/ CET Europe/ Iceland Mexico/ ROK posixrules CST6CDT Factory Indian/ Mideast/ Singapore right/ Canada/ GB Iran NZ Turkey zone.tab What timezone are you in? ('?' for list) [Canada/Mountain] Mexico Select a sub-timezone of 'US' ('?' for list): General Setting local timezone to 'Mexico/General'...done.

Algunas cuestiones después de instalar:

Algunas cuestiones que recomiendan al presionar # man afterboot

Lo primero podría ser limitar el acceso de root de forma remota. Al archivo /etc/ssh/sshd_config  en la línea PermitRootLogin se pone "no".

Otra cosa que se debería hacer es solucionar las erratas con el código actual del kernel. Para eso primero se obtiene la versión "current" del kernel.

# cd /usr
# export CVSROOT=anoncvs@anoncvs1.ca.openbsd.org:/cvs
# cvs -d$CVSROOT checkout -P src

Esto tardará un buen tiempo según tu conexión. La ventaja es que después simplemente se tendrá que actualizar de la siguiente forma:

# cd /usr/src
# export CVSROOT=anoncvs@anoncvs1.ca.openbsd.org:/cvs
# cvs -d$CVSROOT up -Pd

(Para quien maneje subversion esto será fácil de entender). Compilamos

# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make
...
# make install

 

Damos privilegios a un usuario


Sabemos que no es muy recomendable estar siempre logueado como el usuario root para realizar labores de mantenimiento, vamos a darle permisos a un usuario para que pueda tener privilegios con sudo.

# visudo
abajo de root, agregamos
thot   ALL=(ALL) SETENV: ALL

Con eso le damos los permisos que tiene root, al usuario thot
 

Instalar Ports


Para poder instalar los ports de OpenBSD (que no son más que programas en su formato binario), primero tenemos que agregar la fuente de donde la tomaremos:


$ export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/`machine -a`/

Esto podemos agregarlo al archivo ~/.profile para que cada vez que se inicie sesión esté disponible.

Instalamos las aplicaciones con las pkg* tools.


Por ejemplo:

$ sudo pkg_add -i dmidecode
(una herramienta para mostrar de forma "legible para humanos" información sobre el hardware).

 

Espero en un futuro poner un ejemplo de la configuración de Packet Filter, y Squid.

Permalink: http://www.mononeurona.org/users/entry/thot/1515


Introducción a los JSF's (II)

2008-08-19 11:15:28-05

Programacion

(Esta es un continuación de este tutorial)

2. Empezando a trabajar con el proyecto

Antes de empezar con el proyecto existen 2 archivos importantes que se crean automáticamente con el proyecto, el web.xml y el faces-config.xml (este nombre se podía cambiar al momento de crear el proyecto), los cuales se pueden encontrar fácilmente en la ventana "Projects" en "Configuration Files".
web.xml - Contendrá información sobre como se filtrarán los jsp, cómo se mapearán las direcciones de los mismos, el tiempo de sesión, etc.
faces-config.xml - Contendrá información como las reglas de navegación, los controladores que se utilizarán, la inyección de datos a los controladores, el alcance de los datos, etc.

Empecemos creando un nuevo jsp, para mostrar un pequeño formulario de registro. Trataré de dar los pasos lo más explícito que pueda pero sin caer en la exageración (la retroalimentación sería muy útil).

Clic derecho sobre el proyecto (Mononeurona) -> New -> JSP, el nombre del archivo será "registro.jsp" (el .jsp no será necesario escribirlo). Debe elegirse JSP con syntaxis estándar (lo cual se encuentra por defecto seleccionado). Después clic en Finish. Con eso tendremos un JSP creado y abierto en el editor.

Para empezar a agregar características de JSF, tendremos que agregar los "taglibs" que utilizaremos. Para esto simplemente agregamos este código al principio del archivo.
 alt

Ahora ponemos las siguientes etiquetas dentro del cuerpo de HTML (body). El "h:form", "h:inputtext" y "commandbutton" se puede agregar utilizando simplemente la paleta (Ctrl+Shift+8) y arrastrando los componentes hacia el editor. Pero no es estrictamente necesario.

alt
 

Con eso ya tenemos creados nuestro formulario creado. Los h:inputText, y los h:commandButton son elementos que vienen en los taglib que hemos definido con anterioridad así como el "f:view", el prefijo que se especificó al inicio es el que se utiliza aquí.
 

Ahora vamos a crear una pantalla de "registro completado", será un JSP y se creará de la misma forma que el anterior, en este caso con nombre: finalizado.jsp
 

Aunque no las vamos a ocupar todavía ponemos los taglibs:
 alt

Y creamos el código html necesario para mostrar la pantalla de registro completado.

alt

Ahora vamos a agregar unas reglas de navegación en el archivo "faces-config.xml", para poder lograr la comunicación entre los 2 jsp que creamos.
 alt

Como se puede ver la regla de navegación se podría interpretar como: "De la vista "registro.jsp" cuando se de el caso de que envíe un "submit" se dirigirá a finalizado.jsp"

Ahora se puede ejecutar la aplicación. Simplemente agregue a la dirección /faces/registro.jsp.
alt

Escriba algo en los campos y presione Submit.

alt

Como se puede notar hasta este momento, no hemos agregado código en Java. Eso será en la siguiente parte del tutorial.

Permalink: http://www.mononeurona.org/users/entry/thot/1512


Introducción a los JSF's (I)

2008-08-10 20:53:00-05

Programacion

JSF o Java Server Faces es un framework para aplicaciones web basado en Java que nos facilita la forma en que podemos manejar la vista en nuestros proyectos web. Se podría decir que son una "evolución" de los JSP (Java Server Pages).

Con este tutorial se trata de dar una pequeña introducción de cómo utilizar los JSF's. Cabe mencionar que para eso utilizaremos un patrón MVC. Todo se manejará a través de un controlador para nuestra vista, se tendrá un "bean" para guardar los datos, que además eso nos permitiría unirlo con una capa de persistencia (la capa de persistencia es la que nos permitirá conectarnos a la base de datos y guardar/leer los datos en ella) ya sea por medio de JDBC o Hibernate por ejemplo.

Tratándose simplemente de un especificación los JSF's tienen diferentes implementaciones, una de las más utilizadas es MyFaces de Apache. Para este ejemplo y para no complicar mucho las cosas se utilizará la implementación de JSF's 1.2 que provee Sun directamente con NetBeans, que correremos sobre un servidor Apache Tomcat 6.

Lo que haremos será un formulario de registro para una página. Con algunas validaciones.

1. Creación del proyecto

Para empezar tenemos que crear un nuevo proyecto en NetBeans.  (File->New Project)

alt

 

Elegimos el tipo de proyecto, en este caso sería una aplicación Web.

alt

Le ponemos nombre a la aplicación, para este ejemplo usaré "Mononeurona".

alt

Elegimos el servidor en el que va a correr la aplicación, la versión de Java EE que utilizaremos y la ruta del Contexto (esto último sería la ruta que se verá en el navegador).

alt

Ahora elegimos el framework a utilizar, en este caso será JavaServer Faces y elegimos que las librerías que utilizaremos serán las de JSF 1.2, y con eso finalizamos la creación del proyecto.

alt

Con esto terminamos de crear el proyecto, en la siguiente entrega empezaremos a crear nuestros primeros JSF's.

Permalink: http://www.mononeurona.org/users/entry/thot/1490


Instalando NetBeans 6.1 en Linux

2008-08-05 11:50:11-05

Programacion

(Comentario personal, puede evitarse sin que afecte el tutorial)
 Java no es un lenguaje que me agrada mucho. A pesar de que conozco la potencia que tiene Java y su amplia gama de aplicaciones, sigue sin gustarme. A muchos les agrada porque es la llave para un trabajo bien remunerado, por su amplia difusión en la industria. Pero pues bueno, cada quien sus gustos. Como esa es la herramienta a utilizar en mi trabajo actual, pondré unos pequeños tutoriales sobre tecnologías Java para compartir el conocimiento, por si alguien le quiere entrar a aprenderlo.
(Fin del comentario personal)

Una nota importante antes de empezar. Se supone que Java lo liberaron bajo una variante de la GPLv2 (realmente se encuentra bajo una licencia dual de la CDDL de Sun y la GPLv2, la CDDL no cumple con las características para ser considerada una licencia libre), pero algunos de los componentes del núcleo de Java siguen estando cerrados por protecciones de patentes. Según Sun, se liberará completamente a finales de este año. Por lo tanto (por desgracia) estaremos usando herramientas NO LIBRES, o por lo menos, no completamente. Esa es la razón por la que se encuentre en la sección "non-free" de Debian.  

NetBeans es un IDE para el desarrollo de proyectos Java y algunos otros lenguajes. Gasta muchos recursos, pero tiene algunas características que facilitan el desarrollo, al igual que Eclipse, otro IDE también muy completo. Posiblemente después agregue algún tutorial para instalar Eclipse. Ahora empecemos con la instalación:

1. Instalar Java (la versión de Sun)


NetBeans puede correr con la versión libre de Java, pero desgraciadamente la mayoría de proyectos que creemos no se ejecutarán o marcarán errores extraños por la falta de la versión de Sun.

En un distribución Debian (o basada en Debian), se deben agregar que tome la sección non-free de los repositorios. Y le damos un:

# aptitude update

# aptitude install sun-java6-jdk



En cualquier otra distribución si lo tienen en sus repositorios puede instalarla de ahí. En caso de que no sea así, pueden bajar el instalador de la página de Sun.

2. Configurar el uso de la máquina virtual de Java.


Normalmente el "runtime" de Java en Linux, está configurado para que utilice la implementación libre de Java. Para cambiarlo por la implementación de Sun hacemos lo siguiente:

# update-alternatives --config java

Hay 4 alternativas que proveen `java'.

  Selección     Alternativa
-----------------------------------------------
*         1    /usr/lib/jvm/java-6-sun/jre/bin/java
 +        2    /usr/lib/jvm/java-gcj/jre/bin/java
          3    /usr/bin/gij-4.2
          4    /usr/bin/gij-4.3

Pulse
para mantener el valor por omisión [*] o pulse un número de selección:


Se elige la implementación de Java de Sun, para usarla por omisión.

3. Instalar NetBeans.

 


Primero tenemos que descargar el NetBeans de la página de Sun. Pueden bajar la versión de NetBeans según lo que vayan a programar, para el siguiente tutorial que espero poner en esta página sería conveniente descargar la versión de Web & JavaEE, y lo más fácil aunque sea más pesada es descargar la versión que trae todo.

Ya cuando se tenga descargado el archivo. Como superusuario (para que quede disponible para todos los usuarios del equipo) ejecutamos el archivo.

# sh netbeans-6.1-ml-linux.sh
Configuring the installer...
Searching for JVM on the system...
Extracting installation data...
Running the installer wizard...


Aparecerá un asistente para la instalación de NetBeans.
alt

En la siguiente pantalla aparecerá lo siguiente y se tendrá que aceptar la licencia dual de la que ya se habló antes:

alt

Ahora se elige la ruta de instalación. Esto es importante porque en caso de que no cree un acceso en su escritorio,  podrán obtener el ejecutable dentro de esta ruta.

alt

A continuación se configurarán los puertos que manejará el servidor GlassFish.

alt

Después mostrará una pantalla con la información final sobre la instalación.

alt

Al darle clic en el botón "Install" simplemente es cosa de esperar a que se termine de instalar todo lo necesario:
alt

Al final de la instalación aparecerá una pantalla informándonos que la instalación ha concluido:
alt

¡¡Y listo!!  con eso tendremos instalado el entorno de desarrollo NetBeans 6.1 en nuestra computadora. Simplemente en tu entorno gráfico puedes buscar dentro de los menús si se encuentra un enlace a NetBeans, en caso de que no aparezca se puede agregar el enlace a : {$RUTANETBEANS}/bin/netbeans
Donde {$RUTANETBEANS} es la ruta que se eligió durante la instalación.

Permalink: http://www.mononeurona.org/users/entry/thot/1483


Instalación Rápida de Karamelo

2008-08-02 18:56:01-05

Programacion

Muchas veces nos quejamos de tiempo para hacer algunas cosas, lo cual es mi caso. Por eso me decidí a utilizar el cakephp-instaweb para instalar Karamelo. Basándome en el tutorial del Aarkerio, pondré este pequeño how-to muy parecido, pero que difiere en la forma de configurar el Postgresql.

Instalación de Paquetes


Lo primero que necesitamos es instalar todos los paquetes que ocuparemos:

Para cualquier distribución basada en Debian, usamos aptitude o apt-get:

# aptitude install postgresql php5 php5-pgsql subversion cakephp-instaweb

o en su defecto : $ sudo aptitude install postgresql php5 php5-pgsql subversion cakephp-instaweb

Si usan alguna distribución diferente, simplemente usen la forma de instalar propia de la distro (yum, emerge, etc.), o compilen si gustan.

Creamos nuestro directorio de trabajo:

Lo crearemos en nuestro $HOME y se llamará "devel"

$ mkdir $HOME/devel && cd $HOME/devel
   (Por si alguien no lo sabe, el && es para que si se ejecuta satisfactoriamente el primer comando, ejecute el segundo).

Descargar CakePHP y Karamelo


Descargamos el código fuente de CakePHP, y lo ponemos en un directorio llamado karamelo. (Recordar que ya estamos en el directorio $HOME/devel]).

$ svn co https://svn.cakephp.org/repo/branches/1.2.x.x/cake/ karamelo

Un paso intermedio que muchas veces no es necesario. En caso de que su descarga del repositorio de CakePHP tuviera un directorio app dentro. Tienen que borrarlo:
$ rm karamelo/app -Rf

Descargamos la nueva versión de Karamelo y lo ponemos en el directorio de aplicación del Cake que descargamos anteriormente.

$ svn co https://devel.mononeurona.org/repos/karamelo/trunk/app karamelo/app

Con esto simples pasos ya tenemos la versión actual de CakePHP y la versión en desarrollo de Karamelo en nuestra computadora. Ahora falta algo importante configurar la BD.

Configuración de la BD


Como superusario, cambiarse al usuario postgres. De cualquiera de estas 2 formas.
$ su root
# su postgres    
 
O en su caso:
$ sudo su postgres

Creamos un nuevo usuario para manejar la base de datos de karamelo.

postgres$ createuser karamelo -P

Pedirá la contraseña 2 veces, la cual será "karamelo" (sin las comillas). También pedirá los privilegios que se brindarán al usuario. Le pueden poner que "sí" a ser superusuario, en caso que así lo deseen. No afectará para este ejemplo.
¿Será el nuevo rol un superusuario? (s/n) n
¿Debe permitírsele al rol la creación de bases de datos? (s/n) n
¿Debe permitírsele al rol la creación de otros roles? (s/n) n



Creamos la base de datos:
postgres$ createdb -E UNICODE KARAMELODB -O karamelo -W

Pedirá una contraseña, la cuál es "karamelo". Si se le quita la -W no pedirá contraseña y no debería afectar en nada.

Nos  salimos del usuario postgres, y del usuario root. (con exit)

Creación de las tablas y configuración de la aplicación


Ahora creamos las tablas necesarias para la BD.

Nos cambimos de directorio:
$ cd $HOME/devel/karamelo/app/config/sql/postgresql

Ejecutamos el script para la creación de todas las tablas:

$ psql KARAMELODB -h localhost -U karamelo -W < karamelo.sql
La contraseña que pedirá será "karamelo"


Editamos el archivo de configuración (con el editor que gusten vi, emacs, nano, gedit, etc):
$HOME/devel/karamelo/app/config/database.php.default y lo guardamos en el mismo directorio como database.php. Y dejamos el arreglo $default, como sigue:


   public $default = array(
                'driver' => 'postgres',
                'persistent' => false,
                'host' => 'localhost',
                'port' => 5432,
                'login' => 'karamelo',
                'password' => 'karamelo',
                'database' => 'KARAMELODB',
                'schema' => 'public',
                'prefix' => '',
                'encoding' => 'UTF-8'
        );


Nos cambiamos de directorio:

$ cd $HOME/devel/karamelo

$ cakephp-instaweb


Entramos a un navegador a la siguiente dirección: http://localhost:3000

Listo!!!!

Karamelo

Ahora nada más loguearse como:
Login: john@site.edu
Password: karamelo


Nota muy importante:

Esto únicamente la tendría que hacer una sola vez para probar Karamelo. Para actualizar la versión de Karamelo. Simplemente tendrían que hacer lo siguiente:

$ cd $HOME/devel/karamelo/app
$ svn update


Y con eso tendrán la versión más actual (en desarrollo) de karamelo.

De nuevo ejecutan:
$ cd $HOME/devel/karamelo && cakephp-instaweb

Y lo tendrán en la dirección:  http://localhost:3000

¡Reportar bugs ayuda al desarrollo, no se olviden de hacerlo!

Permalink: http://www.mononeurona.org/users/entry/thot/1479


Login



Remember me:
thot
Amante de la libertad y por lo mismo un ferviente partidario del software libre.
linux politica programming software libre hacking
Powered by:
Despabilando la MonoNeurona.org
Livechat

<-Nombre
jairo wrote:
cual es el otro blog de thot
on 9/8/08

souf wrote:
está vivo... ¡VIVO!
on 10/6/08

souf wrote:
¡funciona!
on 10/6/08

souf wrote:
yes
on 10/6/08

thot wrote:
simón, s1mo yo creo que sí. Hay que ponerse de acuerdo.
on 6/5/08

s1m0 wrote:
que onda thot ps el aarkerio que tiene ganas de un curado de melon jaja ps ahora que vayamos a teotihuacan jaja como vez??
on 2/5/08

teosho wrote:
que tal alocardio_tut
on 26/4/08

aarkerio wrote:
Viendo si el livechat sirve
on 5/4/08

gmarin38 wrote:
q onda ponte chingon ya falta poco tiempo para tu taller :P
on 10/10/07

norcorp wrote:
guayabin que paso como has estado?
on 25/8/07

¿Qué estuve haciendo?
Yo
3 weeks ago
Felicidades a Vendaval. Más vale tarde que nunca.
on 14/9/08
Ni pedo, metí mejor imágenes del código.
on 19/8/08
no puedo publicar la segunda parte de la intro a JSF's
on 19/8/08
Por el modo "paranoico" del filtrado en el editor de la mononeurona...
on 19/8/08
Estaría chido que Centauro tuviera GeSHi
on 12/8/08
Preparando introducción a JSF's para la mononeurona
on 10/8/08
Muy buen libro por cierto. Da asco ver las porquerías que hacen algunos curas.
on 5/8/08
Ah caray! apenas lo presentan? y yo la lo leí :|
on 5/8/08
Algún otro mononeurón recibe errores de postgres cuando entra a la mononeruona?.
on 5/8/08
Galerias
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2008.