Antes que nada he de anunciar la retirada del proyecto para el concurso de Software Libre de la Universidad de La Laguna. Asi mismo me gustaría anunciar un cambio restructural del framework que mejorarán notablemente la programación así como la velocidad de carga.
Alguna ventaja tenía que tener desarrollar un proyecto de cierto tamaño compuesto de dos partes (IberOgre y Sion Tower). Cuando estoy atascado en uno le doy un impulso al otro y eso es precisamente lo que me ha pasado los últimos días con el sistema de colisiones de Sion Tower. Tras horas de lectura, aprendizaje
The first application that Learnie is going to integrate is named Coltrane. This app was developed by James Bennet on the book “Practical Django Projects”. Coltrane is a blog app that combines the simplicity within the ease-of-use. I am going … Continue reading →
Bueno gente, aquí os dejo unas de las normas para crear un producto de garaje como son todos los nuestros
The 11 rules of the HP Garage (where all began)
Ya tenemos nueva versión. ¿Qué lo hace distinto de la anterior?, pues principalmente, que ya se integra con un mini-explorador que permite visualizar los distintos clados en wikipedia. Es algo cutre puesto que se usa el nombre del nodo con el nombre del artículo de wikipedia. Si éste no existe, aparecerá la página de wikipedia que te propone crear un nuevo artículo.He aquí un video:Para conseguir integrar el explorador, sencillamente he hecho uso del módulo de Qt WebKit. Sí, habeis leido bien, he migrado el proyecto a Qt, y la verdad es que estoy muy satisfecho, casi todo lo que te imagines Qt te lo ofrece: te ahorra el trabajo de controlar los dobleclicks, te permite crear señales entre funciones puesto que contiene un mecanismo interno de signal and slots, búsqueda de contenidos en el código HTML, widgets de openGL, etcétera. Además, está perfectamente documentado. Vamos, toda una delicia de librería.Por ejemplo, para controlar la animación, tengo un reloj que da pulsos cada 40 milisegundos —y así tenemos 25 fotogramas por segundo—, y ese reloj está conectado con el slot PhyloTree::animate(), de modo que cada pulso es una señal, y la función animate es un callback que la recibe, aunque todo ese proceso es controlado por Qt. El siguiente paso importante a dar es que el software interactúe con el API de wikipedia para obtener la información deseada de forma robusta.Otra característica de la que me estoy preocupando en mantener es el «smootheado» de todos los elementos animables posibles, así, si el usuario mueve la cámara con el ratón, la posición no cambia inmediatamente, sino de forma suave hasta su posición final. Lo mismo ocurre si cambiamos el tamaño de la ventana, que tanto el viewport como el miniexplorador integrado se mueve a la nueva posición y tamaño de forma progresiva.Por último, hay un desarrollador y ahora colega que va a experimentar en una nueva rama de git con el paso a 3D del árbol, al que incluso añadirá efectos de desenfoque, y también la posibilidad de ver el árbol con profundidad mediante el uso de gafas cromáticas; todo un lujo.
Introduction
I love Ruby. It is expressive. It is powerful. But above all, it has the coolest ecosystem I have ever seen. The ecosystem for a programming language is the stack of tools, practices and conventions that programmers of a particular programming language share in common. A culture that defines its members as Rubyist.
The Rubyist’s mind thinks like this:
Nobody said that your ruby code won’t execute unless it follows the rules I said. This is just what I have seen so far, what seems to be the usual practice, the way I perceive the Ruby culture.
I didn’t say anything about the language. I am just talking about the Ruby culture. I just saying that their culture, their community, it just rocks and that’s why I decide to use Ruby as my main programming language.
This is the first issue of a series of articles concerning Ruby and its ecosystem. Let start by setting up Ruby itself.
RVM
RVM is the Ruby Version Manager. Do you remember what I said about Rubyist’s ability to embrace change? This is the main tool. Ruby programmers usually have many versions of ruby install. Mainly 1.9 and 1.8. This is how you install it:
First, you need to get Git using any of these methods:
# Any Platform:
From the website: http://git-scm.com/
# Mac OS:
$ brew install git # Homebrew
or
$ port install git # Macports
# Linux
$ apt-get install git-core
Then install RVM:
# Just copy/paste this and hit enter.
$ bash <<( curl http://rvm.beginrescueend.com/releases/rvm-install-latest )
Add this snippet to the end of your .bash_profile or .zshrc
# This loads RVM into a shell session.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
Now we are going to install Ruby 1.9 without using sudo. We never use sudo.
$ rvm install 1.9.2
If you run into:
ld: in /usr/local/lib/libxml2.2.dylib, file was built for i386
which is not the architecture being linked (x86_64)
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/x86_64-darwin10.6.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1
You need to install libxml2
brew install libxml2
Now, Rubyist use Gems. Gems are small pieces of functionality, like bricks, that helps you to build your big & cool application.
Normally, in order to install a gem, like rspec, you do:
$ gem install rspec
But when you do this you are installing that specific version of the RSpec gem to all users. This way, we can only have one version of that gem. But what happens if you are working in 8 projects and each one of them needs an specific version of rspec, or it will not work?
Enter RVM’s Gemsets.
A Gemset is a set of gems, identified by a name which is completely independent of any other gemset or global gems. So we have the project Fenix and the project Hidra and we want to have a gemset for each of them.
# Create folder
$ mkdir hidra
$ cd hidra
# Automatically use and/or create the gemset Hidra
# when entering this folder (and subfolders).
# We save that conf to a .rvmrc file.
# This file is automatically read by RVM.
$ "rvm --create use '1.9.2@Hidra'" > .rvmrc
# reenter the folder.
$ cd ..
$ cd hidra
# Now, let install many gems ^_^!
# This will install gems under the current gemset
# that you are using, that's is the Hidra gemset.
$ gem install jekyll
Building native extensions. This could take a while...
Successfully installed liquid-2.2.2
Successfully installed fast-stemmer-1.0.0
Successfully installed classifier-1.3.3
Successfully installed directory_watcher-1.3.2
Successfully installed syntax-1.0.0
Successfully installed maruku-0.6.0
Successfully installed jekyll-0.10.0
7 gems installed
# Not lets create the project Fenix.
$ cd ..
$ mkdir fenix
$ "rvm --create use '1.9.2@Fenix'" > .rvmrc
$ gem install rails
...large output ...
# Not let check that we have truly have separate sets of gems.
$ gem list
...will show the list of gems for the fenix gemset ...
$ cd .. && cd hidra
$ gem list
...will show the list of gems for the hidra gemset ...
They are different! ^_^
More tricks:
I don’t need the documentation that is installed for every gem. So:
# ~/.gemrc or /etc/gemrc:
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
Another one: Instead of
# .rvmrc
rvm --create use '1.9.2@Fenix'
you can write this so that it creates the gemset in whatever is the default ruby version.
# .rvmrc
# Either create a gemset mongoid-site or use the existing one
rvm gemset create "Fenix"
rvm gemset use "Fenix"
Introduction
I love Ruby. It is expressive. It is powerful. But above all, it has the coolest ecosystem I have ever seen. The ecosystem for a programming language is the stack of tools, practices and conventions that programmers of a particular programming language share in common. A culture that defines its members as Rubyist.
The Rubyist’s mind thinks like this:
Nobody said that your ruby code won’t execute unless it follows the rules I said. This is just what I have seen so far, what seems to be the usual practice, the way I perceive the Ruby culture.
I didn’t say anything about the language. I am just talking about the Ruby culture. I just saying that their culture, their community, it just rocks and that’s why I decide to use Ruby as my main programming language.
This is the first issue of a series of articles concerning Ruby and its ecosystem. Let start by setting up Ruby itself.
RVM
RVM is the Ruby Version Manager. Do you remember what I said about Rubyist’s ability to embrace change? This is the main tool. Ruby programmers usually have many versions of ruby install. Mainly 1.9 and 1.8. This is how you install it:
First, you need to get Git using any of these methods:
# Any Platform:
From the website: http://git-scm.com/
# Mac OS:
$ brew install git # Homebrew
or
$ port install git # Macports
# Linux
$ apt-get install git-core
Then install RVM:
# Just copy/paste this and hit enter.
$ bash <<(curl http://rvm.beginrescueend.com/releases/rvm-install-head)
Now we are going to install Ruby 1.9 without using sudo. We never use sudo.
$ rvm install 1.9
Now, Rubyist use Gems. Gems are small pieces of functionality, like bricks, that helps you to build your big & cool application.
Normally, in order to install a gem, like rspec, you do:
$ gem install rspec
But what you do this you are installing that specific version of the RSpec gem to all users. This way, we can only have one version of that gem. But what happens if you are working in 8 projects and each one of them needs an specific version of rspec, or it will not work?
Enter RVM’s Gemsets.
A Gemset is a set of gems, identified by a name which is completely independent of any other gemset or global gems. So we have the project Fenix and the project Hidra and we want to have a gemset for each of them.
# Create folder
$ mkdir hidra
$ cd hidra
# Automatically use and/or create the gemset Hidra
# when entering this folder (and subfolders).
# We save that conf to a .rvmrc file.
# This file is automatically read by RVM.
$ "rvm --create use '1.9.2@Hidra'" > .rvmrc
# reenter the folder.
$ cd ..
$ cd hidra
# Now, let install many gems ^_^!
# This will install gems under the current gemset
# that you are using, that's is the Hidra gemset.
$ gem install jekyll
Building native extensions. This could take a while...
Successfully installed liquid-2.2.2
Successfully installed fast-stemmer-1.0.0
Successfully installed classifier-1.3.3
Successfully installed directory_watcher-1.3.2
Successfully installed syntax-1.0.0
Successfully installed maruku-0.6.0
Successfully installed jekyll-0.10.0
7 gems installed
# Not lets create the project Fenix.
$ cd ..
$ mkdir fenix
$ "rvm --create use '1.9.2@Fenix'" > .rvmrc
$ gem install rails
...large output ...
# Not let check that we have truly have separate sets of gems.
$ gem list
...will show the list of gems for the fenix gemset ...
$ cd .. && cd hidra
$ gem list
...will show the list of gems for the hidra gemset ...
They are different! ^_^
More tricks:
I don’t need the documentation that is installed for every gem. So:
# ~/.gemrc or /etc/gemrc:
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
Another one: Instead of
# .rvmrc
rvm --create use '1.9.2@Fenix'
you can write this so that it creates the gemset in whatever Ruby the system has installed.
# .rvmrc
rvm --create use '@Fenix'
Aunque ya hace algo más de un mes de la noticia del lanzamiento de la nueva versión de sQLite en Infant acabamos de incorporarla a la aplicación para no quedarnos desactualizados aunque los cambios no nos influyen demasiado (así que ha sido mas que nada por provar) y lo único que se ha tenido que hacer es cambiar el amalgamation que se incluye con cada versión. Los cambios más importantes de esta nueva versión son:
Además si le quereis echar un ojo también esta disponible la lista completa de cambios en la que se indican todos los detalles.