Archive for ‘Tutorial’

mayo 12, 2012

Ya no mas tutoriales de Oracle u otra herramienta no libre

por Josue Ortega

Desde ya hace unos meses había publicado un tutorial de como instalar Oracle 11 EE en Debian, como todos sabemos Oracle es software privativo, el tutorial existía debido a que tuve una practica en un curso de la universidad donde se me pedía instalarlo y la documentación para instalarlo en Debian GNU/Linux era escasa y confusa.

Las noticias recientes acerca de Oracle, me han hecho reaccionar y decidir ya no seguir escribiendo tutoriales para esta herramienta y eliminar los existentes.

El propósito del blog es compartir conocimiento libre, fomentar el uso de herramientas privativas es totalmente contradictorio a este propósito, aunque el tutorial sea «libre», por lo tanto:

He decidido ya no publicar tutoriales y recomendaciones para este DBMS u otra herramienta que no sea totalmente libre.

Anuncio publicitario
Etiquetas: , , ,
octubre 8, 2011

Introducción a Programación Orientada a Objetos en Java

por Josue Ortega

En el Javaday 2011organizado por GuateJug tuve el privilegio de compartir la charla «Java para principiantes(Introducción Orientada a Objetos)». Así que aquí les dejo la presentacion y el código que utilice durante la charla. La presentacion esta bajo la licencia  Creative Commons Attribution-ShareAlike 3.0 Unported License. El código que use de ejemplo esta bajo la licencia GPL v3.

Cualquier duda o comentario pueden hacerlo por aquí   

Link de descarga:

http://dl.dropbox.com/u/19691162/intruduccion_objetos_Javaday2011.zip

septiembre 26, 2011

Java Day 2011

por Josue Ortega

El ocho de Octubre se estará celebrando el Java Day organizado por el Grupo de usuarios de Java de Guatemala (Guate-jug). El evento será en el Centro TIC’s del Intecap, de 9 a 17 horas.

Se estaran impartiendo charlas que han sido dividades en tres secciones:

  • Java General
  • Java Básico
  • Java Intermedio / Java Web
Para que los participantes se puedan ubicar como se sientan mas comodos.
Tengo el privilegio de compartir una charla: «Java para Principiantes» lógicamente en la sección de Java Básico. Básicamente serán conceptos de Programación Orientada Objetos utilizando Java, así que si aún no tienes claro lo que es programar en Java o andas perdido en la Programación Orientada a Objetos esta es una buena oportunidad para aprender acerca de estos temas.
Para los que estamos un poco mas avanzados en este lenguaje, también habrán charlas para nosotros.
Pueden revisar el horario de las conferencias para apartar su tiempo en :
junio 23, 2011

Problemas con el Window Manager (xfwm4) en XFCE 4.8[SOLUCION] Debian [testing]

por Josue Ortega

Después de probar XFCE en mi desktop decidí usarlo en mi netbook, despues de estar usandolo por un par de días al iniciar sesión me tope con la sorpresa de que las ventanas no se podían mover y aparecían sin bordes.

El problema radica en que xfwm4 no corre al iniciar sesión, este paquete se encarga de manejar la posición de las ventanas.

Una solución temporal que encontré fue correr xfwm4 desde una terminal y mandandole de parametro –replace:

$ xfwm4 --replace

Pero esto solucionaba el problema temporalmente ya que al iniciar sesión de nuevo el problema persistía.

La solución que encontre es funcional pero aun asi sigo pensando que no es la mejor, fue borrar en el directorio:

 . /cache/sessions

los archivos de XFCE, con esto se arregla el problema de que no corra xfwm4.

mayo 25, 2011

Tutorial Jlex y Cup

por Josue Ortega

Finalmente tengo una versión final del tutorial de Jlex y Cup que empece a escribir y un tiempo atrás y no había podido terminarlo por falta de tiempo.

El tutorial se encuentra en la seccion de Jlex y Cup de este blog.

Enlace:

https://openfecks.wordpress.com/jlex-y-cup/

abril 15, 2011

Tarjeta Broadcom BCM4313 802.11 en Kernel 2.6.38-2-686 en Debian Testing

por Josue Ortega

Por mucho tiempo espere el cambio del kernel 2.6.32 en Debian, hasta que hoy en la mañana despues de hacer el respectivo apt-get update, me tope con que ya estaba en los repositorios testing de la distribución 😀 . No lo pensé 2 veces era hora de hacer el upgrade en mi Netbook. Luego de hacer una actualizacion de casi de 300 Mb. Cuando el kernel se estaba instalando se me advirtio que algunos modulos podrian no funcionar. Luego de reiniciar el sistema me vengo a topar que mi tarjeta wireless no funcionaba.

Era de esperarlo, no hay drivers libres para Broadcom y el kernel en Debian es totalmente libre por lo tanto no iba a funcionar  a la primera. Era hora de hacer una busqueda y arreglar el problema. Aqui les dejo la solucion:

Debido a que necesitamos software no libre, primero que nada debemos verificar que tengamos el respositorio Non-Free y si no es asi lo agregamos:

# Debian Wheezy (testing)
deb http://ftp.us.debian.org/debian wheezy main contrib non-free

Hacemos el respectivo update en aptitude:

#aptitude update

Terminado esto procedemos a instalar los paquetes  module-assistant y wireless-tools:

# aptitude install module-assistant wireless-tools

Ahora hay que hacer un build e instalar los modulos broadcom-sta, usando module-assistant:

# m-a a-i broadcom-sta

Luego de esto hay que descargar los modulos conflictivos

# modprobe -r b44 b43 b43legacy ssb brcm80211

Cargamos el modulo wl

# modprobe wl

Y por ultimo verificamos si nuestro dispositivo tiene interface

# iwconfig

Y con esto ya podemos seguir usando nuestra tarjeta wireless con el nuevo Kernel 🙂

agosto 25, 2010

Cambiar tamaño a Disco Virtual en Virtual Box

por Josue Ortega

Desgraciadamente no todo es color de rosa en esta vida, el proyecto de Organización de Lenguajes y Compiladores 2 tiene que ser desarrollado en Window$, y esa no fue una buena noticia para mí. Así que en vez de cambiar la tabla de particiones de mi disco decidí correr este «Sistema Operativo» desde una maquina virtual.

Instale Virtual Box  y  de acuerdo con los requerimientos de XP fije un tamaño de disco. Y cuando estaba en el desarrollo del proyecto me tope con que el espacio ya no era suficiente para hacer una actualización  de una de las herramientas que estoy utilizando. Despues de una tarde entera probando diferentes cosas, encontré la solución ya que Virtual Box no cuenta con la facilidad de cambiar el tamaño al disco virtual.

Bueno, para hacer mas grande el disco virtual, básicamente vamos a hacer una copia del contenido del archivo que contiene el disco a un archivo mas grande y luego utilizaremos un Live CD de GParted o de Ubuntu.

Los pasos a seguir son:

  1. Crear el archivo vdi en Virtual box y enlazarlo con la maquina donde se corra el sistema operativo en cuestión
  2. Bootear con el Live CD en la maquina virtual, asegurandonos que los 2 arhivos vdi estén enlazados con la maquina.
  3. Haciendolo desde el Live CD de Ubuntu: Liste los discos con: sudo fdisk -l . Nos fijamos en las ubicaciones de los discos, en mi caso eran /dev/sda/dev/sdb
  4. Procedemos a copiar el contenido del archivo antiguo(sda) al contenido del archivo nuevo(sdb) dd if=/dev/sda of=/dev/sdb
  5. Reiniciamos la maquina virtual con el Live CD y buscamos la aplicacion de Gparted, lo abrimos, elegimos nuestro nuevo disco donde copiamos el contenido, y procedemos a cambiar el tamaño.
  6. Desenlazamos el disco antiguo de la maquina virtual, configuramos el nuevo como primario maestro e iniciamos.
  7. Verificamos que todo funcione , eliminamos el archivo antiguo VDI y con eso esta listo nuestro cambio de tamaño del disco virtual 🙂

Bueno espero que con esto se ahorren un poco de tiempo

saludos

julio 29, 2010

Saludando al mundo con Ensamblador

por Josue Ortega

La semana pasada me dejaron una tarea introductoria al lenguaje ensamblador que consistía en explicar como se hace el famoso programa de «hola mundo». Asi que decidí subir el «how to» por que me gusto como quedo :P.
El «how» to esta escrito para ser compilado con GAS en la arquitectura IA-32 bueno aquí les va:

Para poder programar en lenguaje ensamblador en nuestro sistema operativo
gnu/linux necesitamos tener instalados GNU Binutils, en el cual estan contenidos
el compilador de ensamblador:as y el linker: ld.
Ya que tenemos instalado el binutils, ya podemos trabajar y hacer nuestros
programas en lenguaje ensamblador.
A continuación imprimiremos en pantalla “Hola Mundo” en ensamblador y lo
compilaremos con GAS.
El código es :

.text
.global _start
_start:
movl $len,%edx
movl $msg,%ecx
movl $1,%ebx
movl $4,%eax
int $0x80
movl $0,%ebx
movl $1,%eax
int $0x80
.data
msg:.ascii"hola mundo"
len=15

A continuación una breve explicacion de cada linea del codigo anterior:
Como se puede notar las directivas van antecedidas por un punto “.”.
Directiva text:
Esta directiva indica donde es el inicio de codigo en el arhivo .as
Directiva global:
Con esta directiva se indica que la etiqueta “_start” es visible para todas las
partes del programa.
Directiva data:
En esta sección se declaran las variables inicializadas, como en este caso la
variable msg que se especifica que es de tipo ascii y su contenido es la cadena
“hola mundo”.
También la variable len que se le asigna el numero 15.
_start: indica donde inicia el programa
A continuación detallare la acción de las lineas de código

movl $len,%edx # mueve el contenido de len al registro edx
movl $msg,%ecx #mueve el contenido de msg a el registro ecx
movl $1,%ebx #coloca el valor de 1 al registro ebx
movl $4,%eax #coloca el valor de 4 al registro eax
int $0x80 #hace la llamada al sistema para kernel mode
movl $0,%ebx #coloca el valor de 0 en el registro ebx
movl $1,%eax #coloca el valor de 1 en el registro eax
int $0x80# llamada al sistema para kernel mode

Básicamente lo que el código anterior hace es mandar de parámetros al kernel el
contenido de los registros para que las acciones correspondientes sean
ejecutadas.
En el registro eax se debe posicionar el codigo de la llamada al sistema que
deseamos ejecutar, en este caso para write, es el numero 4.
En el registro ebx se coloca el codigo de la llamada al sistema para la accion
que se debe realizar despues de imprimir en pantalla, en este caso 1 para que
salga.
En el registro ecx se coloca el valor del mensaje y en el edx el tamaño de la
cadena. El write en un HLL se veria: write(salir, mensaje, len)
Para salir del programa se coloca 0 en el registro ebx y 1 en el eax, y de
ultimo se hace la llamada al sistema.
Compilar el Archivo:
Para compilar el archivo se utiliza el comando as con el parametro -o que genera
una salida con extension .o que contiene codigo objeto.

    as -o hola.o hola.as

Linkear el archivo:
Una vez compilado y con nuestro archivo con codigo objeto necesitamos linkear
nuestro archivo para crear un ejecutable con todas las librerias necesarias

ld -s -o hola hola.o

Una vez creado el ejectable, nuestro programa ya esta listo para correr:

./hola

Y finalmente el output

josue@desktop:~/assembler$ ./hola
hola mundo
abril 12, 2010

Instalacion de Oracle 11g en Debian Lenny

por Josue Ortega

He abierto una nueva sección en el blog dedicada a el manejo de Oracle, y el primer tema de esta sección es la instalacion de Oracle 11g en Debian Lenny

El enlace es

https://openfecks.wordpress.com/oracle/instalacion-de-oracle-11g-en-debian-lenny/

marzo 18, 2010

Manipulando el MBR

por Josue Ortega

El MBR(Master Boot Record) es el primer sector del disco (los primeros 512 bytes), en el se encuentra la tabla de particiones, código ejecutable que el BIOS ejecuta cuando el sistema esta iniciando.

EL MBR se encuentra dividido de la siguiente manera:

446 bytes  Codigo ejecutable

64 bytes    Tabla de Particiones

2 bytes      Firma de Unidad Arrancable

Como nos podemos dar cuenta es un sector muy importante en nuestro disco, asi que si queremos hacer cambios en el disco donde nuestro MBR puede salir afectado, no esta demas hacer un backup de él.

Esto se hace:

dd if=/dev/hda of=/mbrbackup.bin bs=512 count=1

lo que hace la linea anterior es lo siguiente:

if: Con esto indicamos cual es nuestro archivo de entrada (Input File), en mi caso hda.

of: Indicamos nuestro archivo de salida(Output File), en el ejemplo el archivos se llama mbrbackup.bin, y se escribira en el root.

dd: segun el man de dd, el dd:copia un fichero (de la entrada estándar a la salida estándar,  por  omisión)con  un  tamaño  de bloque seleccionable por el usuario, a la par que, opcionalmente, realiza sobre él ciertas conversiones.

bs: indica el tamaño del bloque, en este caso 512, porque es el tamaño del sector.

count: indica el numero de sectores a copiar, 1 debido a que solo copiaremos el MBR.

Hecho esto ya podemos copiar el archivo creado y guardarlo en un lugar seguro.

Para volver a escribir el MBR en el sector 0, solo basta con cambiar las direcciones de el archivo de entrada, y el de salida seria el sector 0:

dd if=/mbrbackup.bin of=/dev/hda bs=512 count=1

En el caso anterior en if, iría la dirección donde tenemos nuestro backup.

Si por alguna razon loca, queremos borar el MBR, solo basta escribir 0’s en ese sector:

dd if=/dev/zero of=/dev/hda bs=512 count=1

OJO, si no ponemos los parametros: bs, y count, llenaremos de ceros todo el disco.