February 2, 2013

MBA IBC 1st Semester Notes (Offenburg)

Notes for 1st Semester of MBA International Business Consulting (University of Applied Sciences Offenburg)


April 7, 2011

Capistrano: Managing an uploads folder

I just found a useful Capistrano recipe for keeping user generated content (a.k.a. uploads) persistent between deployments:

http://www.simonecarletti.com/blog/2009/02/capistrano-uploads-folder/

EDIT: I would like to extend the script to many folders. Any idea?

March 2, 2011

Capistrano as my default deployment tool

In the last post (a whiiile ago) I described my Git workflow to deploy my production server. One of the drawbacks was that everytime I pushed changes to the main repo I had to manually log in my Dreamhost shared host via SSH and then: 1) pull changes, 2) migrate database schema, 3) rebuild sphinx index, 4) restart passenger server. I wrote a bash script to get the job done, but it was prone to errors and not elegant, so I decided to give Capistrano a try.

After reading the Getting Started and From the Beginning guides I got a good idea of what to do next. Basically my setup is as follows:

File: benoror@macmini:~/simpleapp/Capfile


File: benoror@macmini:~/simpleapp/config/deploy.rb


So now when I make changes to the code I simply follow this workflow in my local machine:


  1. git add . && git commit -a -m "Commit Msg" && git push
  2. cap deploy
  3. cap deploy:migrate


That's it!


The next step is to setup a staging server, until then see you soon ...

June 10, 2010

Using Git in Rails production server workflow

In my projects I use Git as part of the deployment process. When I'm developing a new app and it's ready for production first I setup a non-bare repo in the Rails project itself:
benoror@macmini:~/simpleapp $ git init
benoror@macmini:~/simpleapp $ git add .
benoror@macmini:~/simpleapp $ git commit -a -m "First commit"
Then I just zip and copy the project to the production server. After extract it I clone it as a bare repo:
benoror@dreamhost:~ $ git clone --bare simpleapp simpleapp.git
This bare repo will act as the main repo (who said central?). Then I just add a remote origin in my computer:
benoror@macmini:~/simpleapp $ git remote add origin ssh://benoror@production.com/~/simpleapp.git
I assume you already copied your SSH keys and credentials. The workflow is as follows:

1. When I make changes in my computer just commit and push:
benoror@macmini:~/simpleapp $ git push origin master
2. Then I log into my production server and pull changes in the non-bare repo:
benoror@macmini:~/simpleapp $ ssh production.com
benoror@dreamhost:~ $ cd simpleapp

benoror@dreamhost:~/simpleapp $ git
pull
3. I have automatized the deployment process with a script that pull changes, restart Passenger, migrate db in case of schema has changed and finally re-index Sphinx.

:wq



February 23, 2010

Elementary-Mod AUR Package


I just uploaded a PKGBUILD for this great GTK theme to AUR.

*It only works with patched package nautilus-elementary.


September 1, 2009

Sync your dotfiles with GitHub

I'm tired of trying to keep my config files homogeneous between my linux-notebook and my mac mini, so I decided to store them in 'the cloud'. I chose GitHub because I'm learning Git and it has a neat web interface.

Step 1
Create dotfiles dir in my linux notebook, as the most recent configs reside there

benoror@gateway:~$ mkdir ~/dotfiles
benoror@gateway:~$ mkdir ~/dotfiles
benoror@gateway:~$ mv .bashrc ~/dotfiles/
benoror@gateway:~$ mv .vimrc ~/dotfiles/
benoror@gateway:~$ mv .vim ~/dotfiles/
(... ... ...)
benoror@gateway:~$ mv .ssh ~/dotfiles/

Step 2
Link those files back to my home dir

benoror@gateway:~$ ls -Ad /dotfiles/ | xargs -I _ ln -s _

Step 3
Create a neat readme file and make git ignore those sensitive files!

benoror@gateway:~/dotfiles/$ echo "Welcome to my public dotfiles" > README
benoror@gateway:~/dotfiles/$ echo ".secret" >> .gitignore
(...)
benoror@gateway:~/dotfiles/$ echo ".ssh/*" >> .gitignore

Step 4
Download Git and confiigure it

benoror@gateway:~/dotfiles/$ git config --global user.name "Benji Orozco" benoror@gateway:~/dotfiles/$ git config --global user.email benoror@gmail.com

Step 5
Sign-up at GitHub, and create a repo called 'dotfiles'. Follow the instructions to include your dsa-key, it's straight forward. Then create the repo locally and push it to your github:

benoror@gateway:~/dotfiles/$ git init benoror@gateway:~/dotfiles/$ git add .
benoror@gateway:~/dotfiles/$ git status
benoror@gateway:~/dotfiles/$ git commit -a -m 'first commit'
benoror@gateway:~/dotfiles/$ git remote add origin git@github.com:benoror/dotfiles.git benoror@gateway:~/dotfiles/$ git push origin master

That's It

Next article: Cloning Git Repos and mixing them with Dropbox

November 14, 2008

Segunda Entrega Robot en OpenGL


Para la segunda entrega del robot en OpenGL tuvimos que agregar muchas mas features:

  • Iluminación ambiente
  • Iluminación con color en movimiento
  • Materiales (Usamos Oro, Bronce y Plata)
  • Reflexiones
  • Primitiva creada desde cero
Para verlo en `wire mode` se usa la tecla 'W'. Para aumentar o disminuir la cantidad de triangulos de la primitiva se usa la tecla 'A' y 'a'.

* Como el servicio pastebin caduca a los pocos días en esta ocasion no publicaré el codigo hasta encontrar otro servicio similar con mejores prestaciones. Si saben de alguno no duden en comentarme. Si quieres el código con gusto se los proporcionare personalmente.

November 4, 2008

Mejora el arranque de GNOME Terminal

En sistemas basados en Debian (Ubuntu, Mint, etc.) y tal vez en otras distribuciones sucede que la terminal de GNOME (y algunas otras aplicaciones) puede tardar en arrancar porque decide buscar el hostname de la maquina local en 127.0.0.1, cuando en estos sistemas esta fijado en 127.0.1.1. Nuestro archivo /etc/hosts luce asi:
127.0.0.1 localhost
127.0.1.1 inspiron
Para solucionarlo tenemos que agregar nuestro hostname a la primera linea asi:
127.0.0.1 localhost inspiron
127.0.1.1 inspiron
Visto en: LinuxMint Wiki | Gentoo Forums

November 1, 2008

Robot en OpenGL

Desarrollé un robot humanoide en OpenGL y GLUT para una clase y se los comparto aquí. Mueve los miembros en todos los ejes y tiene limites "naturales". Código. Compilenlo asi:
cc robot.c -lglut -lGL -lGLU -pthread -lm -Wall -o robot