Forks: wsdl2html_ivmos y wallahack_ivmos

25406

English

¿Qué hacer si tus pull requests no son aceptadas pero no quieres que esas aportaciones queden perdidas en ramas de tu fork? En mi opinión, para eso precisamente son los forks y es una de las ventajas del software libre. Lo suyo es probar primero una pull request, tratar de aportar al proyecto, es lo más práctico ya que el coste de mantener tu propio fork es considerable. Sin embargo a veces no es posible hacer que tus cambios lleguen al proyecto original y las razones pueden ser varias. Es algo que me ha ocurrido recientemente con dos pull requests:

https://github.com/ivmos/wsdl2html_ivmos

👍

Esta pull request entre otras cosas añade soporte a la utilidad wsdl2html para que se pueda autogenerar documentación en html a partir del proyecto. En este caso entiendo perfectamente porqué la pull request no se aceptó. Mi aproximación es muy específica para el caso de uso que me interesa: generar comentarios de un proyecto Java en el cual el WSDL se genera con JAX-WS en lugar de escribirse directamente. Genero los comentarios a partir de esos ficheros Java, lo cual es no es una forma útil si trabajas directamente con el WSDL.

https://github.com/ivmos/wallahack_ivmos

😞

Esta otra pull request sin embargo es bastante más triste. Sencillamente el autor nunca me contestó. Extendí la utilidad Wallahack, que permite consultar Wallapop haciendo scrapping de forma que puedes escribir scripts que busquen resultados periódicamente. Por ejemplo usé este fork durante un tiempo para detectar anuncios nuevos de ordenadores antiguos. La diferencia principal entre mi fork y el proyecto principal es que puede parametrizarse y tiene un par de arreglos que lo hacen usable.

En ambos casos no tengo suficiente tiempo ni interés para darles más evolución, por ello sigo la convención de renombrar sencillamente a {originalName}_ivmos.


Español

What should I do if my pull request aren’t accepted and I don’t want those changes to be lost as branches in your fork? IMHO, that’s actually the reason forks make sense and a main advantage of open source. You should try a pull request, with the needed effort to make it successful as maintaining your own fork can quite a pain. However sometimes it’s not possible and your pull request is not accepted. That’s something I’ve seen at least 2 times I’m telling you about:

https://github.com/ivmos/wsdl2html_ivmos

👍

This pull request is a branch which adds support to wsdl2html project. In this case I understand perfectly why the PR wasn’t accepted. My approach is very specific to the use case I had: generating comments from a java project where WSDL was generated with JAX-WS instead of being written manually. I generate the comments from those java files, which is an approach that does not make sense if you have worked directly with the WSDL (comments should be there).

https://github.com/ivmos/wallahack_ivmos

😞

This other PR is sad though. It was simply never answered. I extended Wallahack, which is a java tool which queries Wallapop web so that you can write scripts that poll periodically for results. For example, I used it to check whether new old computers had been posted recently.

In both cases I don’t have time to invest more time on them, that’s why I follow the convention of renaming the forked project to {originalName}_ivmos instead of using a new fancy name.

Ikuspro es libre.

Ikuspro es el proyecto de fín de carrera que hice en su día en el que aprendí un montón de cosas sin las cuales no se me habría ocurrido empezar el proyecto PFA.

En su día ya comenté un poco de qué iba el tema . Tras eso la cosa terminó en que el proyecto obtuvo matrícula de honor.

Continue reading Ikuspro es libre.

[Destripando PHP] Las variables

Con esta entrada comienzo una serie en la que hablaré del lenguaje PHP atendiendo a cómo está implementado internamente, para cada post desarrollaré un pequeño PECL (extensión de PHP) que trabaje los conceptos. En realidad no haría falta recurrir a ese nivel para ver las estructuras internas ya que PHP5 tiene un API de Reflection, pero sí que es necesario para ver realmente cómo funcionan las cosas.
La motivación de esta serie es ir documentando lo que voy aprendiendo en mi estudio de PHP. En el desarrollo de mi PFC me enganché al tema de los intérpretes y ahora trato de continuar tomando PHP como ejemplo, al mismo tiempo me ayuda a tener una base sólida de cara al ZCE.

En este primer post veremos en profundidad cómo se trabajan las variables en PHP y su idiosincrasia.
Continue reading [Destripando PHP] Las variables

Ikuspro en beta

Ikuspro es el nombre del software que he desarrollado para mi PFC. Se trata de un simulador gráfico de programas.
La idea del proyecto es de mi director de PFC que es profesor del departamento de LSI de EUITI-BI e imparte clases de “Fundamentos de Informática” por lo que pensó que una herramienta de este tipo podría ser útil para quien se enfrenta por primera vez a la metodología de programación.
Con Ikuspro la ejecución de los programas se hace visual y gracias a ello se alivia un poco la sensación de abstracción que suele inspirar la programación. Es algo parecido a lo que ocurre con Logo, aquella tortuga que hacíamos mover por toda la pantalla sin darnos cuenta de que estábamos programando por primera vez.

De todos modos lo mejor es que ponga un ejemplo. Este código por ejemplo:

editor

Como puedes ver este código es C.

Ikuspro en la versión actual incluye un intérprete de C que he desarrollado con el objetivo de que puedan funcionar los ejercicios utilizados en la asignatura de “Fundamentos de Informática”. Este ejemplo es muy sencillo para no recargar esta entrada pero el intérprete de C de Ikuspro es bastante más avanzado soportando funciones, arrays, condicionales, bucles e incluso punteros parcialmente.

Hablo del intérprete como algo independiente de Ikuspro ya que una parte interesante del proyecto es que Ikuspro está pensado en realidad como un simulador gráfico que se puede extender en el futuro con nuevos intérpretes para otros lenguajes sin mayor dificultad. Siendo un poco más técnicos, lo que hace Ikuspro es ejecutar el intérprete adecuado para el tipo de programa en un hilo independiente comunicándose ambos como productor-consumidor vía mensajes XML.

A continuación la simulación gráfica que genera Ikuspro al término de este programa y digo al término ya que con Ikuspro se va viendo la ejecución del programa línea a línea, en realidad como si de un debugger se tratara sólo que mucho más fácil y sobre todo didáctico para el usuario objetivo.

simulacion

Además, Ikuspro también genera comentarios didácticos acerca de lo que va sucediéndo línea a línea y muestra la salida estándar del intérprete, que es fiel a lo esperable.
A continuación un pantallazo de Ikuspro donde puedes ver las diferentes partes y hacerte una idea del funcionamiento del mismo:

ikuspro

Enlace a imágen ampliada

Ikuspro está desarrollado enteramente en Java. El intérprete C que incorpora se ha desarrollado con ANTLR.

Por último, el título de esta entrada es “Ikuspro en beta” porque esta semana he terminado de realizar mis pruebas así que está listo para realizar pruebas con usuarios. Ikuspro actualmente está numerado como 0.9 en lugar de 1.0 para dar cabida a alguna idea interesante y factible que pueda surgir en las pruebas con usuarios.

Si has llegado a leer hasta aquí y te gustaría probar Ikuspro:

Página web provisional del proyecto Ikuspro