[GLKM] Documentación y definición
Para que un proyecto software se lleve a cabo siempre van a hacer falta los mismos pasos. Quizás, según la experiencia o profesionalidad del equipo que lo lleve a cabo, se puedan omitir algunos pasos.
Los primeros pasos van encaminados a encontrar un problema a solucionar. A buscar una necesidad que necesita ser resuelta.
Es decir, lo que hay que hacer es definir que va a hacer el proyecto.
Otra parte que se da es la de documentación. Porque casi siempre que llevas a cabo un proyecto vas a necesitar saber cosas que desconoces. Tienes que
Ojo, muy importante, en el software, como en la vida, estamos sometidos continuamente a cambios, nuestros o del entorno y tienen una incidencia importantísima en el proyecto.
De nuevo, quiero decir que llevar a cabo un proyecto software no es lineal. No es:
- escabar
- cimientos
- cemento
- ladrillo
- tubos
- luz
- ventanas
- puertas
- …
Se trata de:
- Documentarse. Adquirir conocimientos que no posees
- Definir funcionalidades
- Planificar proyecto
- Diseñar
- Implementar
- Probar
- Documentar. Que consiste en describir lo que estas haciendo.
Y cualquiera de estas directrices se puede tener que realizar, y se realizan, en mayor o menor medida, en cualquier momento del proyecto.
Concretamente estoy en fase de documentación desde hace unos cuantos meses ya. Pero es que me es muy fácil esparcirme y de repente ponerme a hacer otra cosa. Lo que se llama falta de concentración (o motivación, ni yo lo se).
Me estoy documentando para ver cómo se escriben interfaces gráficos usando las librerías GTK/GNOME. Además estoy intentado usar un IDE para GNOME llamado anjuta, pero entre que estoy usando la versión que esta en fase de desarrollo (y falla) y que no se manejarlo muy bien, me está costando. Es que no me apetece escribirlo yo todo.
Además me facilita el código para poder hacer la aplicación fácilmente traducible a cualquier idioma.
También me estoy leyendo un manual de C++, que casi no me acordaba de la última vez, a parte de que estoy aprendiendo cosas sobre las que no tenía ni idea de su existencia.
A la vez que me documento (y me disperso), me he ido informando de las herramientas con similares cometidos que ya existen, para ver que me podían aportar cada una de ellas.
Según sabía y descubría más o menos que quería hacer e ido indagando que cosas podía o no usar. Por ejemplo, si usar DBUS para comunicar ciertos eventos. Por ejemplo, si permitir trabajo en red.
Algunas de las características las busco porque un proyecto fin de carrera requiere manejar distintas tecnologías (o debería).
Por otra parte busco que las tecnologías del proyecto encajen y tengan sentido en el programa de forma que lo hagan más usable y útil.
Como veis todo este X se encuentra bajo que yo llamo el caos ordenado o el orden caótico. Muchas ideas y actividades aparentemente inconexas pero a su vez interrelacionadas y que se respetan mucho.
Etiquetas: glkm, Informática, profesional, ProyectosProyecto Fin de Carrera: Gnome Linux Kernel Monitor (GLKM)
Con esta entrada anuncio el lanzamiento público del que va a ser mi proyecto Fin de Carrera.
El título es provisional.
Muchos estaban deseando obtener información sobre él. Pues ahora lo vais a poder seguir de cerca.
En las últimas dos semanas he estado configurando la página web y algunos de los servicios necesarios para tener en marcha la infraestructura mínima necesaria para llevar a cabo un proyecto de software libre.
De acuerdo con mi tutor no habría problema en que hiciera todo esto.
Lo que he hecho en concreto ha sido instalar y configurar un software para web que suministra herramientas muy útiles para el desarrollo de un proyecto software. En concreto trac, muy usado en proyectos de software libre.
Trac incluye wiki, navegador de código fuente, gestor de tickets. Además permite extender sus funcionalidades mediante un sistema de plugins.
Con el wiki puedo crear páginas web con la información que crea necesaria.
Con el navegador de código permito a cualquiera ojear el desarrollo del código fuente.
El gestor de tickets es una idea sencillamente genial. En base a esto puedes reportar fallos (bugs) y sugerir funcionalidades (features). Mezclando un poco todo esto puedes seguir cuánto falta para alcanzar cierta meta del proyecto (Roadmap).
El apartado de evolución (Timeline) también es muy útil porque en base a todo (repositorio de código, edición de wiki, gestión de tickets) puedes ver toda la evolución que tiene el proyecto. Es información útil para un desarrollador, para un aquel que no le interesen esto detalles iré narrando en la bitácora la evolución de todo.
La única cosa que me falta para cubrir todos los aspectos de un proyecto de software libre es una lista de correo o foro, pero cómo de momento el único desarrollador voy a ser yo, lo dejo para más adelante. El tiempo dirá.
Lo podéis seguir todo desde:
Etiquetas: glkm, Informática, profesional, ProyectosResponder
Hoy un copia y pega. No siempre hay que escribir lo que uno piensa, hay otros que lo hacen por ti, y mejor.
En este caso el texto es de quotidiana.
[quotidiana] Responder
Dice la gente que me conoce que soy un poco borde, que doy unas contestaciones que a veces molestan a la gente y que en alguna ocasión me han buscado mas de una movida, pero es mi voz y mi forma de hablar, no puedo remediarlo.
Con mis usuarios voy un poquito mas allá, con ellos no es involuntario, que no me corto un pelo vamos.
Cuando entras de nuevo a un sitio donde no conoces a la gente, bueno te cortas un poco o al menos intentas ser políticamente correcto y/o usas palabras neutras hablando en plural o en tercera persona, pero cuando sabes de que pie cojea cada uno, empiezas a repartir galletas verbales a diestro y siniestro. Algunos días incluso piensas cual seria la aleación mas adecuada para el machete.
Tengo incluso algunas respuestas estándar para cada pregunta. Algunos ejemplos:
Suena el teléfono.
Usuario: Tengo un problema
Respuesta: Y a mi que (alusión a la entrepierna masculina en algunas ocasiones) me importa?
Usuario: No se como se hace tal cosa
Respuesta: En tu currículum no ponía que sabias informática?
Usuario: Oye me puedes hacer “tal cosa que yo no se hacer y aunque no tenga nada que ver contigo seguro que tu si, tenga que ver con la edición de vídeo, la contabilidad transnacional avanzada o la física cuántica” (Nota: y lo peor es que seguramente sea capaz de hacerlo con mayor o menor ayuda de google)
Respuesta: Si claro. Me puedes tu hacer “lo que este haciendo en ese momento” mientras tanto.
Usuario: Yo no se hacer eso.
Respuesta: En ese caso mi obligación es solicitar formalmente que te despidan y me paguen tu sueldo.
Usuario: Oye te podría traer el ordenador de casa que me pasa “tal gilipollez derivada de alguna mierda que me he bajado” y le echas un ojo (variante “y me instalas tal cosa“)
Respuesta: Si lo prefieres me paso por tu casa por la tarde y te lo miro y así no tienes que venir cargado/a
Usuario: OK y te invito a una cerveza.
Respuesta: Bueno en realidad cobro 50€ la hora y la cerveza suele ser por cortesía.
Llegados a este punto generalmente la gente se raja con algún comentario del tipo “pues si que te vendes caro” o similar (nota: ver el pringao how-to para entender la idea de por que no se debe trabajar gratis, aunque se trate de un precio simbólico), los que no se rinden, suelen aducir que usan su equipo DOMéstico para trabajar en casa por lo que en ese caso se les pide autorización escrita del director de su unidad “para cubrirme las espaldas si me preguntan que estoy haciendo”, y de ahí no ha pasado ninguno hasta hoy. Si es el director el que lo solicita, bueno su ordenador permanecerá bajo mi mesa durante un par de meses y cada vez que pregunte saldré corriendo “buf, imposible, estoy hasta arriba”, aunque este navegando.
Quizás sea el momento de aclarar, que si el sysadmin de tu empresa te ha hecho esta púa alguna vez, es que eres gilipollas y le caes mal. Sin mas, a la gente simpática es un placer cederles tiempo y recursos de la empresa que nos explota a ambos.
Mención aparte merecen los ignorantes, los que parecen pensar que te han contratado para hacerles la vida mas cómoda, que eres un electrodoméstico que hace cualquier cosa que se les pase por la cabeza:
Usuario: Oye sabes donde esta el documento tal
Respuesta: Donde tu lo hayas puesto.
Usuario: Es que no lo he hecho yo.
Respuesta: Pues pregúntaselo al que lo haya hecho.
Y si insiste en que no sabe quien lo ha hecho, tenso silencio.
También están los que creen que TU eres la respuesta para todo:
Usuario: Oye como hago para calcular el minuto en que la luna estaba en piscis con ascendiente en mercurio según el calendario mesopotámico en notación anglosajona inversa teniendo en cuenta la citación del esparto en el índice Nikei.
Respuesta: Documentándote?
Este también es bastante común:
Usuario: ¿Qué le pasa a la maquina de café?
Respuesta: Vale, se la respuesta. Pero ¿me puedes desarrollar la cadena de razonamientos exacta que has usado para llegar a la conclusión de que soy la persona adecuada para venir a preguntarle una gilipollez de ese calibre?
Reconozco que esta es mi favorita y que me ha costado años perfeccionar la cara de poker y aguantarme la risa para decir algo así sin añadir “débil mortal” segundos antes de hundirle las cervicales con un mazo de siete libras.
Otra de mis favoritas y que aparta de ti en pasillos y ascensores al cretino en cuestión un par de semanas como mínimo:
Usuario: Que Marca/modelo de “aparato electrónico caro-que-te-cagas” me recomiendas.
Respuesta: Eso cuesta mi sueldo de tres meses, no he visto uno en la vida.
Pero sin duda hoy me he superado, y lo mejor es que ha sido con toda naturalidad y la voz se ha corrido de tal manera que nadie me ha preguntado la más mínima gilipollez innecesaria en el resto del día.
Estaba yo a lo mio, tranquilamente sentado, concentrado en mi tarea y pensando en mis cosas cuando una voz me ha interrumpido para preguntarme alguna imbecilidad que tranquilamente podía seguir esperando inmersa en la estulticia de su dueño. Por lo que me he visto obligado a responder con voz firme:
¿Me vas a dejar cagar tranquilo?
Si te ha gustado, te gustará el
!!! Enlace recomendado ¡¡¡¡¡
Etiquetas: Críticas, Humor, Informática, Nocturnos, Pensamientos, profesionalDe ofuscación de código, código que se imprime a si mismo y tatuajes
Hace aproximadamente un año, le comentaba a mi compañero y amigo Juan (Ingeniero Informático ya, no como yo, que soy un vago) que había visto un tipo que tenía tatuado un código fuente (un programa) que se imprimía a sí mismo.
En principio me costó entender el concepto, pero luego ya lo entendí. Un programa que se imprime a sí mismo, pero sin leer el fichero fuente. Es de estos problemas que parece trivial pero que cuesta un cojón encontrar una solución. Para buscarle las vueltas también se puede buscar el que tengan menor código y más allá que sea código ofuscado.
Pues resulta que, como no, a él se le había ocurrido también hacer lo propio. Y allí estuvimos un rato, en el laboratorio de la facultad revisando el código que escribió porque no terminó de funcionar por alguna chorrada (o algo así recuerdo). Lo hicimos funcionar, no era ni ofuscado ni poco código, pero es fácil perderte leyendo el código. No lo publico porque vete tú a saber ande andará ya.
Cualquier buscador seguro que tiene dicha información a tiro de piedra. Es
Mi mente me engañaba entonces (como muchas otras ocasiones), no era ese el tema exactamente el de los tatuajes.
Creo que era el siguiente código, que su autor había presentado en el concurso (sí, lo hay) de ofuscación de código en lenguaje C.
int i;main(){for(;i["]<i;++i){–i;}”];read(’-'-’-',i+++”hell\
o, world!\n”,’/'/’/'));}read(j,i,p){write(j/p+p,i—j,i/i);}
La segunda línea comenzando por un o,world, no es casual.
El tatuado nos desvela en su página para que sirve ese código y cómo realizar la deducción hasta llegar a un resultado un poco más claro.
int i;
main()
{
for (; *(”hello, world!\n” + i); write(1, “hello, world!\n” + i++, 1));
}
En resumidas cuentas esto imprime “hello, world!” por la pantalla.
Si es que, en el momento que eres capaz de ponerte a pensar esto, ya sabes que tu cabeza no rige muy bien (yo lo intento asumir). Pero no te haces un tatuaje.
Lamentablemente, en el momento de escribir esta entrada, las fotos del tatuaje no están disponibles en su página. Pero sí he encontrado alguna desde los buscadores.
Voilá.
Por cierto, el código tiene copyright y el autor dice se mantiene en el economato (anonimato).
Etiquetas: Álbum, fotografías, friqui tatuaje, Informática, Libre-copyleft, Ocio-Cultura, ofuscacion codigo, profesional, tattoo code, tatuaje codigo, thomas covellFirewall en Debian/Linux. Guardog vs Firestarter
Hace tiempo leía yo en algún lugar…
On Tue, 30 Mar 2004, XXX YY wrote:
> Listeros, unas preguntas. Estoy recibiendo estos mensajes en consola :
>
> Mar 30 11:20:22 mail kernel: martian source 192.168.x.x from 192.168.x.x, on dev eth1
> Mar 30 11:20:22 mail kernel: ll header: ff:ff:ff:ff:ff:ff:00:0b:db:18:fe:3d:08:00
>
> ¿Qué son?
…
En todo caso, lo que está diciendo es que por la interfaz eth1 se recibió un paquete cuya dirección de origen es _imposible_ a la luz de la actual configuración de interfaces/tabla de rutas; en otras palabras, por esa interfaz nunca podría venir un paquete con la dirección que vino, por tanto es un paquete “marciano” que, de paso, es obvio con sólo mirar el encabezado “extraño” [3].
Quizás alguien está haciendo spoofing, o bien alguna máquina tiene una muy mala configuración IP.
> ¿Son un problema?
Si, paquetes inesperados que llegan por un camino por el cual no pueden llegar indica algún problema de audacia (cracker), indolencia (administrador que no configuró correctamente los segmentos IP) o incoherencia (interfaces/tablas de rutas no cónsonas con la necesidad).
Usando paquetes como éstos se pueden atacar vulnerabilidades remotas en stacks TCP/IP (¿cuáles?, ahora no se me ocurre ninguna particular, pero las hay). Usando las IP que ocultaste, la MAC que aparece presentada en el encabezado, un sniffer, arping y otras herramientas similares puedes determinar cuál es la máquina que está generando esos paquetes y golpear al dueño con algún objeto contundente.
Por eso es un paquete marciano.
> ¿Cómo puedo correjir el problema?
Revisa las tres posibilidades anteriores: spoofing, mala configuración IP en los clientes, mala configuración IP en el servidor.
[1] Las máquinas en una red IP _nunca_ deben llamarse como “lo que hacen” sino con un nombre único, preferiblemente siguiendo un tema. Lo que haces no es más que un “rol”, y como los roles cambian pero los nombres no, se utiliza un alias (CNAME en DNS) para asociar roles a nombres. Eso permite comenzar con una sola máquina que tenga todos los roles, y luego agregar máquinas y cambiar roles… pero el resto de la configuración puede quedar exactamente igual, en particular para los clientes y sus aplicaciones que suelen ser los más afectados cuando hay cambios de máquinas servidoras.
[2] El syslog acompaña cada mensaje con el nombre de la máquina origen, porque puede configurarse para que reciba todos los mensajes de todas las máquinas, cosa que es más práctica porque así hay un sólo sitio donde estudiar logs.
[3] La primera parte del encabezado (ff:ff:ff:ff:ff:ff) corresponde a la dirección MAC origen, que corresponde al broadcast local. Digo que es muy obvio porque _nunca_ se usa ese tipo de direcciones en un intercambio Ethernet:
a. Cuando el origen conoce al destino, ambos serán MACs específicas.
b. Cuando el origen no conoce al destino, el origen será una MAC específica y el destino será ff:ff:ff:ff:ff:ff (esto es un caso de ARP).
c. Cuando el origen no conoce su dirección IP y quiere averiguarla, el origen será 00:00:00:00:00:00 y el destino será ff:ff:ff:ff:ff:ff (esto es RARP, BOOTP y/o DHCP).
d. No hay otro caso.
El kernel sabe tanto IP e Ethernet como el Comer, así que puede sacar la misma conclusión que yo y decir que hay algo anormal en el paquete, en consecuencia la notificación.
*** Fin correo electrónico de la persona XXX YY
De Cortafuegos y Firewalls
Aunque GNU/Linux goza de buena salud en seguridad y velocidad de respuesta para cerrar fallos nunca está demás configurar un Cortafuegos (firewall).
Los eruditos dicen que *BSD son más seguros. Más rápidos es corregir fallos. Presumen de ello. Yo no digo que si, ¿ni que no?, porque aun no he probado a usar un sistema *BSD.
Yo conozco dos grandes soluciones para el diseño de los mismos. Guardog y Firestarter. Porque aquí tu puedes diseñar tu cortafuegos, quieres saber lo que hace.
Uno me permite diseños complejos de enrutado, etc. Es Guardog que se usa junto con Guidedog para permitir NAT o redireccionamiento de puertos, creo, yo lo uso únicamente para NAT.
La pareja Guardog-Guidedog es mágica. Te permite diseñar redes pensando en zonas. Tal y como se diseñan las redes. El día que se configure mediante dibujos (tal y como lo explican en la Universidad) será la bomba.
Pantallazos de Guardog y Guidedog:
Otro me permite blindar una sola máquina. Firestarter. También tiene interfaz de monitorización.
Pantallazos de Firestarter:
Existe otro programa que permite control remoto e interactividad en tiempo real. No recuerdo el nombre pero si que estaba en Debian. Si alguien se interesa lo puedo buscar o lo puede buscar (ya sabiendo que existe).
Permite interactividad con las reglas según llegan los paquetes a las colas de recepción y envio. Pero no es tan bonito y “usable” como los de “esto que pase, esto que no” destinados a window$. Además que lo de tu si vale, se termina haciendo pesado y muchas veces ni prestas atención con tal de que desaparezca el mensajito.
A los especialistas y los puristas estos artilugios les incomodan. A mi me mola, porque lo de las reglas de los cortafuegos me parece un coñazo sobervio. Quisiera saber mucho más del tema, pero quiesiera ser especialista en tantas cosas que no me cunde el tiempo.
Estas herramientas son muy cómodas por tanto.
Referencias y enlaces
Etiquetas: debian, gnu, Informática, linuxSouth Park atrapado en el arte ASCII
No he conseguido que se alineara bien en HTML así que he puesto una captura de pantalla del fichero de texto.
[Briconsejo: Diseño WEB para todos]
A la hora de insertar este tipo de figuras hay que tener en cuenta que no todo el mundo usa un navegador web estandar y estas muestras artísticas pueden ser muy molestas.
Por ello hay que facilitar saltarlas. además, por supuesto de su descripción.
Inicio código:
[<a id="ASCII-chart" href="#continuarascii">saltar la figura ASCII</a> o consultar la <a rel="Alternate" href="ruta/ascii-descripcion.html">descripción del gráfico</a>]
<pre>
FIGURA DE ARTE ASCII
</pre>
<a id=”continuarascii”></a>
Fin código.
Referencias:
Pongo también fichero de texto plano y la página donde encontré a South Park.
Algún ejemplo más de arte ASCII (DVD, animaniac, tux)
Arte ASCII en la wikipedia española
Arte ASCII en la wikipedia inglesa
¿Informático, alguna vez pensaste que sabías desarrollar software?
La lista que sigue es una incompleta guía de aproximaciones, estilos y filosofías de desarrollo software.
- Agile software development
- Best practice
- Cathedral and the Bazaar
- Design-driven development (D3)
- Dynamic Systems Development Method (DSDM)
- Extreme Programming (XP)
- Iterative and incremental development
- KISS principle (Keep It Simple, Stupid)
- MIT approach, see Worse is better
- Quick-and-dirty
- Rational Unified Process (RUP)
- Scrum (management)
- Spiral model
- Test-driven development (TDD)
- Waterfall model
- Worse is better (New Jersey style)
- You Ain’t Gonna Need It (YAGNI)
Y que luego resulte que en España aún no se nos reconoce como ingenieros informáticos.
Somos menospreciados hasta el punto de que nadie sabe lo que hacemos.
Venga coño.
Si por casualidad alguien sabe qué hacemos y qué podemos hacer los informáticos, me gustaría que se atreviese a escribirlo.
Sería feliz con 3 opiniones.
Abstenerse informáticos de carrera o de formación profesional. No se las equivalencias fuera de España para los niveles de conocimiento mencionados.
[ wikipedia ] thanks to and info up to date in.
Etiquetas: Informática, Nocturnos, Pensamientos, profesionalFlash Player 7. Problemas con las fuentes en GNU/Linux
Ando un poco arto de esta puta mierda de compañia que es Adobe y su política para con el mundo del software libre.
Pero más aun con la panda de capullos que utilizan su “guay” “Flash” para hacer páginas web.
Esto del flash me empieza a recordar a la santería en medicina.
¿Vale para algo?
Ha algunos parece que si les vale.
Muy bonito, muy decorativo. Muy torpe, restrictivo, muy para unos selectos.
El problema creo que me ocurre desde que actualize las X a X11R7.
No se qué tipo de compilación tendrán que hacer en Adobe que requiere de tanto esfuerzo como para no intentar lanzar versiones decentes al menos de su reproductor. No se qué tipo de programador mete a pelo un constante de una ruta de archivo.
No se por qué esta gente aun sigue en su borrico.
Bueno, quizás me haga una idea.
Las posibles soluciones que he encontrado han apuntado a problemas con el servidor de fuentes, con las rutas de las fuentes, etc.
Un FAQ sobre macromedia flash para GNU/Linux desde donde terminé llegando a los siguientes enlaces
Bug en Red Hat sobre la ruta del servidor de fuentes (xfs) empotrada
[Adobe.com]Foro de Adobe sobre el problema de las fuentes con flash en GNU/Linux
Gnash, el flash de GNU aun no está listo para funcionar como plugin de firefox. Al menos la versión que he probado que estaba empaquetada en .deb. Porque el reproductor a secas si que me ha mostrado a cálico.
En este hilo de la lista de gnash hay alguien que ya esta empaquetando el .deb para Debian.
Pero nada ha solucionado aun el problema.
Yo creo que mi problema, el de Debian tiene que venir de alguna ruta en las fuentes de TrueType o algo por el estilo.
Sigo sin ver las letras en páginas como motogp.com (de prueba) o en el callejero de páginas amarillas, o lo que más me fastidia, las estadísticas de google.
Puedo vivir sin todas esas cosas. Tengo mil alternativas.
Callejeros, jajejijoju, viamichelin.es, qdq.com, google maps, el callejero del ayuntamiento de madrid.
Estadísticas de google,tengo awstats, para lo básico me tira.
Pero no puedo vivir sabiendo que no he arreglado algo que no funciona.
Que mal debe de estar esto del flash, que he visto que no soy el primero al que se le ocurre instalar mediante wine el firefox versión Window$ con el flash 8 versión Window$.
Me he autocensurado. En mi primera estancia el título de la entrada era, “El Puto Flash Player de los cojones”.
Pido disculpas. Tambien a mi mismo. Lo he hecho tras analizar claridad contra la libertad de sentimientos.
Por problemas técnicos, esta entrada se debía haber publicado antes de ayer. Pero se hace hoy (jueves), cuando ya mágicamente he arreglado el problema con las fuentes. Lo único nuevo que hice fue reinstalar todos los paquetes de fuentes que tenía instalados (busqué todos los paquetes con la palabra fonts en su nombre o descripción mediante synaptics). Me parece que modifiqué/borré alguna entrada font.d o algún fichero de descripción de alguna fuente al usar la herramienta mkfontdir (indebidamente deduzco)
Etiquetas: debian, gnu, Informática, linux, profesionalEstos son los resultados para ...













Últimos comentarios