Archive for the 'Programación' Category
Primeiro bug en Simple World 1.0a1
2 Comments Published novembro 14th, 2007 in Programación, Simple World
Pouco durou a ledicia. Esta primeira versión de Simple World é un pouco de portas para dentro. Necesitaba libera-lo código por aquilo de release soon, release often e xa había varios meses dende que anunciara a especificación de Simple World 1.0. Debido a que esta versión ten unha funcionalidade reducida e nada espectacular, decidín non publicita-la (freshmeat.net, sourceforge.net, etc). Só o anunciei aquí e na páxina do proxecto. Así que, as modestas 18 descargas dos dous primeiros días viñeron por sorpresa. Pero, como dicía, pouco durou a ledicia.
O mesmo día que publiquei Simple World 1.0a1 xa vin que brainless actuaba dun xeito raro: podía moverse unha única vez e despois só xiraba ó seu redor. Onte, ó día seguinte, descubrín de onde viña o problema: a implementación dun xenerador de números pseudo aleatorios era de risa. Despois de calcular un par de números aleatorios chegaba a un punto onde sempre devolvía o mesmo valor.
O algoritmo que escollera, linear congruential generator (LCG), non é ningunha marabilla. Se se usa para calcular valores nun espazo en dúas dimensións acaba devolvendo valores que se poden agrupar en distintas rectas separadas por unha distanza constante as unhas das outras. Ó final acabei mirando como se implementa o algoritmo LCG a bliblioteca C de GNU (glibc). Esta debería ser a implementación que debería estar en Simple World 1.0a1, pero sempre andamos con presas e claro...
Ó final, tomeimo a mal, e para Simple World 1.0a2 implementarei un xerador de números pseudo aleatorios máis "aleatorio". Quedoume un resultado moi semellante ó usado pola implementación da glibc da función rand().
chúzame - Qt 4.3.1 poderase usar con máis licenzas de software libre (pero aínda non coa GPLv3)
0 Comments Published agosto 10th, 2007 in Programación, Software LibreAnunciouse recentemente a saída da versión 4.3.1 de Qt. A novidade máis destacada desta versión é que se poderá usar dende unha maior cantidade de licenzas de software libre mediante o engadido dunha excepción á licenza GPLv2 que usa Qt. Algunhas das novas licenzas coas que se poderá usar Qt son:
- Apache License 2.0
- BSD
- LGPL 2.0 ou 2.1
- Mozilla Public License (MPL) 1.0 ou 1.1
A GPLv3 non é unha destas novas licenzas, así que, seguimos sen poder usar a biblioteca Qt en software baixo a GPLv3. Afortunadamente estase a traballando no asunto. Segundo palabras dun dos desenvolvedores de Qt:
Sobre a GPL v3, estamos traballando activamente no asunto. Polo que entendo, é un paso máis grande [que o dado para permitir as outras licenzas libres] e non algo que poidamos ofrecer cunha Excepción [á licenza de Qt].
Vía Barrapunto.
Vía KDE.news.
chúzame - O software GPLv3 non pode usar Qt
1 Comment Published xullo 19th, 2007 in Programación, Software LibreQt é unha biblioteca multiplataforma escrita en C++ para, principalmente, crear interfaces gráficas. Esta biblioteca está dispoñible baixo dúas licenzas:
- Q Public License
- GNU General Public License version 2 sen a cláusula "or any later version"
Estas dúas licenzas son incompatibles coa nova GNU General Public License version 3. Isto significa que, agora mesmo, non se poderá empregar esta biblioteca con software baixo a GPLv3.
Estiven buscando información pola páxina de Trolltech a ver se atopaba algunha información sobre a súa postura sobre a GPLv3. Non atopei nada, tan só unha anotación nun blogue anunciando a aparición dun esbozo. Espero que na próxima versión de Qt engadan como terceira licenza a GPLv3.
chúzame - Primeiro programa executado por SWcpu
0 Comments Published xullo 11th, 2007 in Programación, Simple World, Software Libre
A CPU de Simple World (SWcpu) aínda non está acabada de todo, fáltalle envia-las interrupcións provocadas por instruccións ou direccións de memoria erróneas. Aínda así, a SWcpu xa executou o primeiro programa.
O programa en cuestión é moi sinxelo, xa que só calcula os números da secuencia de Fibonacci dende o 1 ata 32768 sen parar. Pero serviu para probalo compilador e a CPU.
| Código fonte de fibonacci.swl | Código obxeto executado por SWcpu |
|---|---|
![]() |
![]() |
chúzame - O 13 de maio publicouse GCC 4.2, a nova rama estable da colección de compiladores de GNU. A novidade máis destacada desta nova versión é a inclusión de GOMP, unha implementación de OpenMP desenvolvida polo proxecto GNU.
OpenMP é unha interface de programación de aplicación, para as linguaxes de programación C, C++ e Fortram, que permite que código que se executa linealmente se poida executar en paralelo. Dito de outra forma, facilita o código se execute por distintas liñas de execución cun esforzo mínimo. Para conseguir isto, só se requiren pequenos cambios ó código orixintal. As características máis destacadas de OpenMP son:
- Pódese usar OpenMP con moitos compiladores e en varias plataformas distintas.
- O compilador encárgase da xestión das liñas de execución de forma transparente.
- O código inicial só precisa dunhas pequenas modificacións.
- Pódese elexir entre executar o código final linealmente ou en paralelo.
OpenMP parece a panacea para o programador. Pero, desconfiado e curioso como son o primeiro que me plantexei foi proba-la auténtica facilidade da API de OpenMP e a súa eficenza comparada coa programación a man de liñas de execución mediante o uso de POSIX threads (pthreads).
chúzame - 




