Iniciar Sesion

Planet

Actualización FrameWork

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.

  1. Se ha escrito nuevamente todo el sistema
  2. Incluye nuevas ventajas como la utilización de templates para la página principal
  3. Se ha eliminado la interacción del FTP en cada conexión, ahora sólo se usará cuando sea necesario.
  4. Se ha eliminado el CMS integrado, se pondrá como una sección aparte para los que no quieran usar el grid960.

Luces, sombras y entorno en IberOgre

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

Manual Instalación Servidor LAMP

Buenas, ya he desarrollado otro manual para la instalación del servidor LAMP, en formato pdf, podeis descargarlo desde Mi forja, también podéis ver dicho manual, en la sección manuales.

First app, Coltrane blog

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 →

Manual Configuración Módulo Xbee

Buenas, ya he desarrollado el manual de la configuración de los módulos xbee, en formato pdf, podeis descargarlo desde Mi forja, también podéis ver dicho manual, en la sección manuales.

¿Creamos un producto-garaje?

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)

  • Believe you can change the world.
  • Work quickly, keep the tools unlocked, work whenever.
  • Know when to work alone and when to work together.
  • Share – tools, ideas. Trust your colleagues.
  • No politics. No bureaucracy. (These are ridiculous in a garage.)
  • The customer defines a job well done.
  • Radical ideas are not bad ideas.
  • Invent different ways of working.
  • Make a contribution every day. If it doesn’t contribute, it doesn’t leave the garage.
  • Believe that together we can do anything.
  • Invent.

link

Versión v0.3

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.

The Ruby programmer stack 1: RVM

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:

  • KISS – Keep it simple.
  • DRY – Don’t repeat yourself
  • Test Driven Development – Rubyist don’t write tests that checks the validity of code. They write code that passes the agreed Test.
  • Agile – Rubyist embrace change. They design their applications to embrace change.
  • Documentation is important, but it is not the final product. Documentation is useful, concise, to the point, with code examples. No 900 pages manual.

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"

The Ruby programmer stack 1: RVM

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:

  • KISS – Keep it simple.
  • DRY – Don’t repeat yourself
  • Test Driven Development – Rubyist don’t write tests that checks the validity of code. They write code that passes the agreed Test.
  • Agile – Rubyist embrace change. They design their applications to embrace change.
  • Documentation is important, but not the product. Documentation is useful, to the point, with code examples. No 900 pages manual.

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'

SQLite 3.7.4

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:

  • Añadida sqlite3_blob_reopen() para permitir a un objeto existente sqlite3_blob clonarse en una nueva fila.
  • Mejora del rendimiento mediante sqlite3_blob_reopen() para FTS (Full Text Search)
  • En los VFSes (Virtual File Systems) que no permiten memoria compartida se permite el acceso a las bases de datos WAL (Write Ahead Logging) cuando PRAGMA locking_mode es EXCLUSIVE.
  • Mejoras en EXPLAIN QUERY PLAN.
  • Añadido sqlite3_stmt_readonly().
  • Añadido PRAGMA checkpoint_fullfsync.
  • Añadida la opción SQLITE_FCNTL_FILE_POINTER a sqlite3_file_control().
  • Añadido el soporte de FTS4 y mejoras en la funcion FTS matchinfo().
  • Añadido el módulo test_superlock.c que muestra un ejemplo de código sobre como obtener el bloqueo exclusivo de rollbacks (vuelta hacia atrás de transacciones) y bases de datos WAL.
  • Añadido el módulo test_multiplex.c que muestra un ejemplo de VFS que provee de multiplexado de una base de datos partiendola en multiples ficheros de un tamaño definido.
  • Corregido bug crítico asociado con la optimización de la operación OR.

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.

Distribuir contenido

Colabora