Levantar servidor Ruby on Rails en Ubuntu (y Fedora)

En unos momentos de distracción estaba revisando un poco el Ruby on Rails, quería levantarlo usando GNU/LInux como sistema operativo, a continuación narro la experiencia. Explicare tanto para Ubuntu, como para Fedora.

Lo primero es instalar el Ruby, a través de la terminal:

Ubuntu:

sudo apt-get install ruby-full build-essential

Fedora:

sudo yum install rubygem-rails

Luego de ello instalamos el gestor de paquetes “gem” propio de ruby:

Ubuntu:

sudo apt-get install gem

Fedora:

sudo yum install rubygem

Para el instalar el framework rails, necesitaremos sqlite3:

Ubuntu:

sudo apt-get install sqlite3 libsqlite3-dev

Fedora:

yum install rubygem-sqlite3-ruby

Luego la interfaz para conectar a sqlite3 desde ruby (Si aparecen muchos, escoger la ultima version), en estos casos, al usar gem, es independiente del sistema operativo que usemos:

sudo gem install sqlite3-ruby

Y por ultimo instalamos el framework rails, por medio de “gem”:

sudo gem install rails

Ahora vamos a crear un proyecto nuevo. Para ello usamos los comandos de rails:

rails new railtest

Con esto creamos la estructura de carpetas y algunas configuraciones por defecto, luego iniciamos el servidor:

ruby script/rails server

Y listo, podemos ver nuestra aplicacion en: http://localhost:3000/

VirtualHost en Fedora 15

En mi transición de Ubuntu a Fedora, y me era necesario trabajar con los VirtualHost para manejar varios proyectos.

En mi carpeta /var/webprojects/ es donde alojare proyectos con una configuracion predeterminada (usando Zend Framework), para ello vamos a modificar el httpd.conf agregando el VirtualHost:

<VirtualHost *:80>
    DocumentRoot /var/webprojects/project
    ServerName project.work
    ErrorLog logs/project.work-error_log
    CustomLog logs/project.work-access_log common
</VirtualHost>

Pero esto nos generara un conflicto, pues el localhost tambien apunta al puerto 80, lo que hace que ambos ServerName apunten a la misma carpeta, para evitar ello agregamos un VirtualHost para localhost:

<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName localhost
</VirtualHost>

Con esto tenemos separadas los ambientes de trabajo. Ahora agregamos el dominio en /etc/hosts :

127.0.0.1         project.work

Y por ultimo reiniciamos el servicio httpd:

# service httpd restart

Con esto logramos tener nuestros proyectos en instancias separadas.

Escribir codigo en la plataforma WordPress.com

Estoy iniciando con un blog, y también aprendiendo a usar la plataforma wordpress.com, el CMS lo conozco hace tiempo, pero es la primera vez que lo uso alojado en wordpress.com

Una de las primeras necesidades de todo desarrollador es publicar código, es por ello que intente encontrar la manera de publicar código, con un formato legible. Existen muchos plugins para ello, pero en WordPress.com lo trae nativamente, solo es necesario insertar el siguiente código en nuestra entrada (sin espacios en blanco al inicio y final):

[ sourcecode language="php" ]
<?php
echo 'Hola Mundo';
 ?>
[ /sourcecode ]

Lo que se retorna que el código se vea de la siguiente manera:

<?php
echo 'Hola Mundo';
?>

Tenemos varios lenguajes para presentar:

  • actionscript3
  • bash
  • coldfusion
  • cpp
  • csharp
  • css
  • delphi
  • erlang
  • fsharp
  • diff
  • groovy
  • javascript
  • java
  • javafx
  • matlab (keywords only)
  • objc
  • perl
  • php
  • text
  • powershell
  • python
  • r
  • ruby
  • scala
  • sql
  • vb
  • xml

Problema del index.php en Codeigniter 2.0

Me ha pasado, que en el proyecto que estoy desarrollando (hecho en Codeigniter 2.0) no he podido manejar muy bien las URL’s. Por ejemplo para ingresar al controlador test, tengo que hacerlo de la siguiente manera http://example.com/index.php/test y no con http://example.com/test para solucionar ello, debemos modificar el .htaccess de nuestro proyecto, por el siguiente.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Y con ello tenemos el problema solucionado, generalmente ocurre cuando nos alojamos en servidores tipo Dreamhost, Bluehost, etc.