Archive for the 'Programación' Category

Simple WorldPouco 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().

Chuzame! chúzame -

Anunciouse 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:

  1. Apache License 2.0
  2. BSD
  3. LGPL 2.0 ou 2.1
  4. 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.

Chuzame! chúzame -

Qt é unha biblioteca multiplataforma escrita en C++ para, principalmente, crear interfaces gráficas. Esta biblioteca está dispoñible baixo dúas licenzas:

  1. Q Public License
  2. 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.

Chuzame! chúzame -

Simple WorldA 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
Código fonte de fibonacci.swl Código obxeto de fibonacci.swo
Chuzame! 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:

  1. Pódese usar OpenMP con moitos compiladores e en varias plataformas distintas.
  2. O compilador encárgase da xestión das liñas de execución de forma transparente.
  3. O código inicial só precisa dunhas pequenas modificacións.
  4. 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).

Chuzame! chúzame -

About

You are currently browsing the Cousas de xentiña weblog archives for the Programación category.

Longer entries are truncated. Click the headline of an entry to read it in its entirety.

Categories

Calendario

novembro 2008
L M M X V S D
« set    
 12
3456789
10111213141516
17181920212223
24252627282930
3K2 theme by Hakan Aydin