Ingenieria de software vrs. ciencias de la computación

Aunque aun esta en debate que la ciencia computacional es una ciencia como tal. En las ultimas semanas he tenido esta comparativa en la cabeza desde que hable con un fisico de la USAC en un sabado de trollware libre. Me gustaria compartirlo con la mis pocos lectores :).

A diferencia de otras universidades la USAC (donde yo estudie), tiene como nombre en la carrera «Ciencias y Sistemas» que al menos que alguien me corrija se refiere a Ciencias de la Computación y Sistemas de información.

En los tiempos de universidad y estudio recuerdo que la gente maldecia grandemente a cursos como:

  • Compiladores
  • Sistemas Operativos
  • Teoría de Sistemas
  • Arquitectura del computador y ensambladores(ese si lo maldije yo por la dificultad :P)

Los principales argumentos que escuche:

  • Enseñan cosas viejas
  • Enseñan cosas que no sirven para la vida
  • Que hueva aprender algo que las herramientas ya hacen

Esto debido al ¿mal? enfoque que ha tenido la carrera respecto a lo que se debe estudiar. Como en los post anteriores que hice acerca de ingeniería en la USAC, resalte el hecho de que la carrera tiene 2 areas bastante contrastadas. Y en lugar de complementar la ingeniería de software con las ciencias computacionales o viceversa se producen sentimientos encontrados porque la mayoría de gente solo quiere aprender a fabricar software y ya.

No digo que lo anterior sea malo, sin embargo en un ambiente donde conviven las 2 areas aparecen catedráticos enseñando cosas practicas para producir software (como en los cursos de Software Avanzado en la era Contreras) vrs. cosas muy teóricas que son la base de la computación como la conocemos (como en los cursos de Arquitectura del Computador con Escobar).

Por ejemplo en Estados Unidos se suelen hacer combinaciones más digeribles por decirlo asi. Como en el MIT donde se combinan Ciencias Computacionales con Ingenieria Electronica. Pero siendo realista en guate hay que hacerle huevos como se pueda y no culpo a los genios que se han ido de guate. Es de lo mejor que pudieron hacer.

Y es que en realidad la ingenieria de software no se trata de entender como funcionan las cosas fondo. Se trata de entender teorias para hacer diseños de software funcional y entregarlo a tiempo o al menos intentarlo.

Por ejemplo un ingeniero de software no se deberia preocupar de los algoritmos de planificacion del sistema operativo asignen el segmento de memoria que el considera correcto para su aplicación. El a lo mucho se debería de preocupar por saber que el sistema operativo que elegiría tiene buen rendimiento y soporta sus herramientas.

Sin embargo las ciencias computacionales son un area totalmente diferente donde el objetivo contrario a la ingenieria de software si es entender como funcionan las cosas y en dado caso mejorarlas.

Podriamos tomar a Torvalds como el ingeniero de ciencias computacionales lidiando con cuestiones de computabilidad, y a Young o Ewing como los ingenieros de software que hicieron del trabajo de Torvalds uno de los productos más exitosos a nivel empresarial (Red Hat le dicen :P).

¿Entonces que propongo?

  • Si tanta fuera la gana de dejar a un lado el aprender como funcionan las cosas pues cambiar el nombre de la carrera a Ingeniería de Software o separarlas. Si ahora hasta Ingeniería Ambiental hay y los cursos se parecen a Industrial. Asi no habría gente quejándose de porque aprender como funcionan las cosas y que por ejemplo no los dejen usar las Collections Frameworks de Java en cursos de estructuras de datos.
  • O si en verdad se quiere tomar lo mejor de los dos mundos pues al menos aclararle esto a la gente, para que ya no surjan excusas como las anteriores.

¿Que opinan ustedes?

Reflexiones de chat #1

Todos aquellos chats que merecen ser vistos por el mundo.

Invitado especial: maxein

μαχ ©ε®η@ dice:
[22:37:46] jajaja vas a terminar amando la musica electro
tuxtor@shekalug.org ~ $ echo «Picando codigo» dice:
[22:37:57] en realidad la musica electronica no me parece mala
[22:38:04] la computadora tiene derecho a expresarse xDD
μαχ ©ε®η@ dice:
[22:38:51] jajajaaj la vddd la cataloo arriba del perreo pero abajo del resto
tuxtor@shekalug.org ~ $ echo «Picando codigo» dice:
[22:39:51] simon ahi un maje se caga en la expresion de la computadora
[22:40:02] aunque han de sintetizar con una 386 porque el mismo ritmo tiene
[22:40:11] hasta pacman usaba mejor las tarjetas de sonido de 8 bits
μαχ ©ε®η@ dice:
[22:40:30] jajajaa LOL creo q voy a despertar a mi mama con la risa jaja
tuxtor@shekalug.org ~ $ echo «Picando codigo» dice:
[22:40:56] lo voy  a poner en mi blog
[22:41:02] algo asi de, reflexiones con maxein
[22:41:03] jajaja
μαχ ©ε®η@ dice:
[22:41:07] jajajaaj

Migrar de fglrx a radeon (xorg 1.4 a 1.5 y kernel .28 a .29) en Gentoo

Desgraciadamente y como ya se habran dado cuenta en alguna de mis tantas maldiciones , ati en linux es y seguira siendo una basura respecto a intel o nvidia.

Me vi en la necesidad de migrar al driver libre radeon porque ati dijo que ya no soportaria más actualizaciones para la x200m en linux y por el lado de windows solo dara actualizaciones «criticas».

Al no ofrecer más actualizaciones con las nuevas caracteristicas del kernel y xorg me sucede lo siguiente:

  • No puedo usar el driver con el nuevo esquema EXA/UXA
  • No puedo usar un kernel «oficialmente» despues del 2.6.28
  • No puedo usar una nueva rama de xorg-server que no sea la 1.4 porque la 1.5 necesita el kernel .29 y su nueva infraestructura.

Me gustaria que hubieran sido como nVidia, que aunque ya me paso al club de los legacy con mi fx5700 aun me va a seguir dando actualizaciones para que siga funcionando el driver con los nuevos xorg y kernel.

Pero bueno este post es para contarles lo que tuve que hacer y algunas cosas con las que me tope para migrar desde el no tan buen driver propietario al muy verde driver libre (lo digo porque tiene peor rendimiento 3D). Asi que investigando un poco encontre que podia usar el driver sin dri y con dri.

Sin dri:

  • Volvieron a funcionar las caracteristicas del kernel tuxonice
  • No tuve problemas con pm-utils
  • Sigue funcionando el segundo monitor
  • No hay 3D

Con dri:

  • El 3D es aceptable un poco más feo que el propietario pero suficiente para open arena
  • Ya no funciona pm-utils
  • Sigue funcionando el segundo monitor
  • En vano las caracteristicas del tuxonice

Vamos al tutorial:

Primero:

Migramos a un kernel limpio de la rama .29 o .30 de preferencia. En mi caso opte por tuxonice, en este solo debemos de tomar en cuenta activar la opcion de evdev para las nuevas funciones de xorg con hal, lo encuentran en:

Device Drivers —>

Input device support —>

Event interface.

Si queremos activar el dri compilamos el modulo de dri y el driver radeon:

<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)

<M> radeon

Segundo:

Editamos el valor VIDEO_CARDS en nuestro make.conf removemos fglrx y agregamos radeon.

Luego de esto actualizamos xorg-server con todo y sus dependencias . Esto es muy importante y no debe ser omitido (la opción u y N por supuesto) o tendremos problemas de versiones (en mi caso la salida mostraba un «Mismatch Version»).

emerge -uavN xorg-server

O tambien podemos actualizar todo incluyendo fuentes, y demás modulos no criticos del xorg.

emerge -uavN xorg-X11

Tercero

El nuevo xorg tiene un monton de cambios ya descritos en la documentación de gentoo, solo me limitare a decir que además de lo que dice ahi, yo tuve que reconstruir todos los paquetes de la categoria x11-drivers, de ahi todo me funcióno.

Si los fdi no son copiados simplemente el teclado y el mouse no funcionaran.

En mi caso borre el xorg.conf, copie los fdi y aqui estoy tecleando de nuevo.

Cualquier duda especifica espero comentarios.

Cuarto:

Ya que hasta este punto estaba muy cansado pude observar que puedo utilizar el xorg.conf y tambien las reglas fdi, como tenia que habilitar el dri por aquello de las LAN partys, decidi crear un xorg.conf solo con lo necesario. Tal ves si averiguo despues como diablos crear el .fdi actualice el post, mientras tanto esto utilice en mi xorg.conf

# Auto-generated by mkxf86config
Section «ServerLayout»
# Serial Mouse not detected
Identifier     «X.Org Configured»
Screen      0  «aticonfig-Screen[0]» 0 0
EndSection
Section «Module»
Load  «ddc»
Load  «vbe»
Load  «GLcore»
Load  «dbe»
Load  «dri»
Load  «extmod»
Load  «glx»
Load  «bitmap»
Load  «record»
Load  «synaptics»
EndSection
Section «Monitor»
Identifier   «Monitor0»
HorizSync    28.0 – 96.0
VertRefresh  50.0 – 75.0
EndSection
Section «Monitor»
Identifier   «aticonfig-Monitor[0]»
Option «VendorName» «ATI Proprietary Driver»
Option «ModelName» «Generic Autodetecting Monitor»
Option «DPMS» «true»
EndSection
Section «Device»
### Available Driver options are:-
# sw_cursor is needed for some ati and radeon cards
# The following line is auto-generated by x11-misc/mkxf86config
# BusID       «PCI:1:0:0»
Identifier  «Card0»
Driver      «ati»
VendorName  «All»
BoardName   «All»
Option «sw_cursor»
#Option     «hw_cursor»
#Option     «NoAccel»
#Option     «ShowCache»
#Option     «ShadowFB»
#Option     «UseFBDev»
#Option     «Rotate»
EndSection
Section «Device»
Identifier  «aticonfig-Device[0]»
Driver      «radeon»
Option «Accel» «true»
Option «AccelMethod» «EXA»
Option «RenderAccel» «true»
Option «DRI» «true»
#BusID       «PCI:1:5:0»
EndSection
Section «Extensions»
Option «Composite» «disable»
EndSection
Section «Screen»
Identifier «Screen0»
Device     «Card0»
Monitor    «Monitor0»
DefaultDepth     24
SubSection «Display»
Depth     1
Modes    «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth     4
Modes    «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth     8
Modes    «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth     15
Modes    «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth     16
Modes    «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth     24
Modes    «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth     32
Modes    «1024×768» «800×600» «640×480»
EndSubSection
EndSection
Section «Screen»
Identifier «aticonfig-Screen[0]»
Device     «aticonfig-Device[0]»
Monitor    «aticonfig-Monitor[0]»
DefaultDepth     24
SubSection «Display»
Viewport   0 0
Depth     24
EndSubSection
EndSection
Section «dri»
Mode 0666
EndSection

Section «ServerLayout»

Identifier     «X.Org Configured»

Screen      0  «Screen[0]» 0 0

EndSection

Section «Module»

Load  «ddc»

Load  «vbe»

Load  «GLcore»

Load  «dbe»

Load  «dri»

Load  «extmod»

Load  «glx»

Load  «bitmap»

Load  «record»

Load  «synaptics»

EndSection

Section «Monitor»

Identifier   «Monitor[0]»

Option «DPMS» «true»

EndSection

Section «Device»

Identifier  «Device[0]»

Driver      «radeon»

Option «Accel» «true»

Option «AccelMethod» «EXA»

Option «RenderAccel» «true»

Option «DRI» «true»

EndSection

Section «Extensions»

Option «Composite» «disable»

EndSection

Section «Screen»

Identifier «Screen[0]»

Device     «Device[0]»

Monitor    «Monitor[0]»

DefaultDepth     24

SubSection «Display»

Viewport   0 0

Depth     24

EndSubSection

EndSection

Section «dri»

Mode 0666

EndSection

Acceder a un lector SD en un reproductor sansa fuze

Autor: dawnzy en flickr
Autor: dawnzy en flickr

Hace rato que tengo un reproductor sansa fuze, la verdad podria hablar maravillas de el pero las caracteristicas que me gustan y que patean a los gumaros al ipod son:

  • Tiene total compatibilidad con Linux, mac y windows, FreeBSD (o cualquier sistema con stack USB) sin necesidad de aplicaciones propietarias.
  • Reproduce más formatos como el no tan popular pero libre ogg (al menos para la musica, para videos hay que utilizar el sansa media converter o saber la perfecta combinación en ffmpeg 😉 ).
  • Además del audio tiene radio, grabador, lector SD.
  • Vale mucho menos que el ipod por la misma capacidad.
  • No me interesa pertenecer a la elite, me gusta el Heavy Metal y ya.

Ya que no me gusta burlarme de las desgracias y la gente que ha tirado su dinero vamos al tutorial, recientemente adquiri una tarjeta SD de 2 gb pero por pereza no habia podido/querido configurar el kernel a la medida que utilizo. Al conectar el reproductor sencillamente no funcionaba el SD, FAIL de capa 8 sin duda.

Sin embargo googleando un poco encontre que basta activar esta opcion en el kernel para que busque y reconozca dispositivos con varios LUN (Logical Unit Number) en el mismo bus:

Device Drivers –>SCSI Device support –> Probe all LUN on each SCSI device.

kernel

Luego a recompilar, si no lo han hecho nunca significa que este tip no es para ustedes. Pero si compilaron a lo bestia o el amigo de a la par les «enseño» a compilar el kernel, igual pueden dejarme un comentario.

En post como estos me pregunto si a alguien les sirven mis tutoriales . . .  xD

Que no te vendan HPC por HTC

El dia de ayer me puse a jugar ouija, para entrar en contacto con la zona fantasma. Lastimosamente esa basura nunca se movio y decidi usar un atajo, asi que le prendi al cartoon y estaban pasando Danny Phantom. El pobre tipo me comentaba que necesitaba altos recursos para poder ejecutar su Flash Player y tenia el dinero para invertir (un momento . . . creo que fue un mi amigo que usa Flash en Linux), asi que le comente la opción de los clusters.

Continue reading →

Dandole un respiro al abismo

En estos dias le voy a hacer un par de cambios al blog espero conservar mi uptime, podran observar que agregue un par de plugins y quite otros.

Todo esto porque wordpress 2.8 esta teniendo muchas actualizaciones y la ultima me quebro tres plugins que tenia desde hace 2 años, cuando wordpress ni siquiera tenia administrador de plugins.

Todo sea para hacer más placentero el trolling el navegar el sitio.

Ya regresaron las caritas ;).

PD: Si miran algo extraño no duden en enviarme un mensaje, si es demasiado raro ya de plano me hackearon jajaja.

Haciendo overclock a una tarjeta nvidia en tres patadas

Una de las particularidades de los sistemas UNIX en general es que son altamente personalizables. Recuerdo que cuando usaba el otro sistema era aficionado a hacerle overclock a mi tarjeta porque podía jugar (lastimosamente aqui no U_U). Cuando hice el cambio a opensuse recorrí n tutoriales solo para encontrarme métodos a bajo nivel y bastante trabajosos para mi gusto. El dia de ayer volví a hacer overclock y no recordaba que linea agregar al xorg y me volví a encontrar los mismos malos tutoriales ¬¬.

ADVERTENCIA: Aumentar la velocidad del reloj de la GPU podria dañarlo, te quedas sin garantia y podria explotar (esto ultimo no es comun pero quien sabe :P).

Al final supe que era bastante fácil, si tenemos el driver propietario basta con agregar una linea al xorg en la sección «Device»

Option   «Coolbits» «1»

Con esta linea se habilita un nuevo panel en el panel de configuración de nvidia (nvidia-settings) con el que puedo overclockear al alcance de un par de clicks.

overclock

Y claro que hay forma de hacerlo en la CLI, pero ¿quien necesita hacer overclock al driver de video si no vas a tener las X corriendo?

A new blog experiment

When  I was a child, I started English courses over an over again, CIAV, Harmon Hall, .. . , every academy that you can imagine. My problem was that I didn’t see the English as an interesting thing and I didn’t take the TOEFL test so seriously. After this, I started the university, and my time to study and read another things was reduced abruptly.

Continue reading →

Nueva imagen para shekalug.org

Lastimosamente aun somos pocos en shekalug y nos costaba darle movimiento al dominio principal shekalug.org, teniamos un joomla un poco estancado, pero ya que todos terminamos publicando los eventos y siempre hablamos de software libre, decidimos mejor hacer un planet.

Hoy en la madrugada me puse manos a la obra y decidi echar mano de un par de plugins de planet para wordpress y generar una version alpha para el nuevo sitio de shekalug

Un par de plugins por aqui, un par de block a navegadores viejos, y por lo pronto va quedando asi, ya que no soy el diseñador confiare en que el diseñador oficial encuentre una buena plantilla o trabaje una en todo caso :D.

La nueva imagen
La nueva imagen

Agradeceria sus sugerencias.