jueves, 17 de abril de 2014

OpenSUSE 13.1 y MySQL

Haciendo pruebas con OpenSUSE 13.1 me doy cuenta de que viene precargado mariadb y no lograba activar y habilitar el MySQL, me funciono realizando lo siguiente:

1. Instalar a traves de YaST mysql-community-server; esto implicará que el mismo YaST solicite desinstalar mariadb-server y mariadb-client; se debe autorizar la desinstalación ya que la versión mariadb que viene preinstalada en OpenSUSE 13.1 no es compatible con MySQL 5.6.

2. Una vez instalado mysql-community-server se debe crear un archivo usando el siguiente comando:
    • sudo vi /lib/systemd/system/mysqld.service
    • El contenido del archivo debe ser el siguiente:
[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/mysql start
ExecStop=/etc/rc.d/mysql stop

[Install]
WantedBy=multi-user.target

3. Posteriormente usar el siguiente comando:
    • sudo systemctl daemon-reload 
4. Entrar nuevamente a YaST en la sección de System, y luego en Service Manager localizar mysqld y habilitar el servicio.

5. Posteriormente cerrar el YaST y en la terminal teclear:
    • sudo mysql_secure_installation
Esta opción solicitará la contraseña del root, si es la primera vez que se ejecuta es en blanco; posteriormente solicitará algunos datos de la instalación.
6. Finalmente regresar a YaST nuevamente a System y Service Manager localizar mysqld e indicar que debe iniciar el servicio.


De esa forma me funciono, espero te sea de utilidad !!! 


Referencias:
http://superuser.com/questions/384365/systemctl-enable-differs-from-systemctl-start-how
http://en.opensuse.org/SDB:MySQL_installation
https://bugzilla.novell.com/show_bug.cgi?id=846422
https://bugzilla.novell.com/show_bug.cgi?id=840159


lunes, 17 de marzo de 2014

VirtualEnv + Python MySQL error: command 'cc' failed with exit status 1 Mac OSX

Tratando de usar Django + MySQL dentro de virtualenv, en un entorno Mac OSX Mavericks, al parecer el procedimiento previo que había seguido ya no funciona igual; al correr el comando sudo pip install mysql-python, me genera el siguiente error:

error: command 'cc' failed with exit status 1

La forma en como lo solucione fue la siguiente:

Instale el XCode desde la AppStore, no se si este se encuentre gratuito ya que hace ya un tiempo lo había comprado.

Posteriormente utiizando el comando:
$ vi ~/.bash_profile 

Agregue los siguientes parametros:
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
 
Una vez realizado lo anterior ahora si utilizando el comando:
$ pip install mysql-python

Quedará instalado; es probable que salgan algunos warnings, sin embargo deberá ser posible utilizarlo para desarrollar.


Espero te sea de utilidad !



Referencias:
http://stackoverflow.com/questions/19769648/cant-install-discount-with-pip-error-command-cc-failed-with-exit-status-1
http://stackoverflow.com/questions/22413050/cant-install-python-mysql-library-on-mac-mavericks?lq=1

miércoles, 15 de enero de 2014

Copiar archivos vía ssh (Amazon) utilizando el archivo .pem


Bien este post es de solo una instrucción sin embargo considere importante dejarlo aquí para no andarlo buscando posteriormente ya que el comando no me funcionaba, se trata de copiar un archivo desde el equipo al servidor vía ssh utilizando un archivo pem especificamente lo estoy haciendo con un servidor Amazon EC2, les dejo el comando:

$scp -i /Ruta/al/archivo.pem -P [puerto] arch_origen.txt root@[IP]:/ruta/destino/arch_destino.txt

Con esto copiará el archivo arch_origen.txt en la carpeta donde se esta corriendo el comando y lo dejará en la /ruta/destino/ con el nombre arch_destino.txt


Espero te sea de utilidad !


Referencias:
http://www.howtogeek.com/66776/how-to-remotely-copy-files-over-ssh-without-entering-your-password/
http://stackoverflow.com/questions/11388014/using-scp-to-copy-a-file-to-amazon-ec2-instance
http://www.hypexr.org/linux_scp_help.php
http://superuser.com/questions/188411/ssh-why-doesnt-get-command-work

sábado, 11 de enero de 2014

GraphViz + Django 1.6.1 + OSX

GraphViz es una herramienta muy útil para generar automáticamente diagramas UML de las clases que se tienen en un proyecto, anteriormente había hecho una entrada relacionada con dicha herramienta sin embargo se ha actualizado y ahora son menos pasos:

PASO 0 Instalar django-extensions

$ sudo easy_install django-extensions

PASO 1 Instalar GraphViz

Puedes descargarlo desde aquí: http://www.graphviz.org/Download_macos.php

PASO 2 Instalar el pygraphviz

$ sudo pip install pygraphviz

PASO 3 Instalar herramientas adicionales:

$ sudo pip install pyparsing==1.5.7
$ sudo pip install pydot

PASO 4 Modificar el archivo settings.py añadiendo dentro de INSTALLED_APPS django_extensions:

INSTALLED_APPS = (
    'django.contrib.admin',
    ...
    'django_extensions',
)


USO

Con lo anterior ya tenemos instalada la herramienta podemos ver la ayuda de la siguiente forma:
$ python manage.py graph_models --help

Para generar rapidamente el diagrama en formato png:
./manage.py graph_models -a -g -o mi_proyecto.png


Saludos y espero te sea de utilidad !




lunes, 6 de enero de 2014

Instalar Django + MySQL + OSX Guía Rápida (5 Pasos Generales)

Esta es una guía rápida que utilizo para desarrollar proyectos con Django:

PASO 0 Instalando herramientas de desarrollo 

Deberás tener MySQL instalado, debido a los cambios que generalmente existen una opción es entrando en el siguiente link (Ojo es importante que lo manejes todo con 64bit o 32bit, te recomiendo todo lo que instalemos en 64bits):
http://dev.mysql.com/downloads/mysql/

Si ya tienes instalado virtualenv no necesitas realizar este bloque de comandos 

$ sudo easy_install -U distribute 
$ sudo easy_install pip
$ sudo pip install virtualenv

Instalar librería para enlace de Python con MySQL compatible con Django


NOTA: Como prerequisito instale: wget.

Descargar el mejor instalador para mac y ponerlo a funcionar, aquí la info: 
http://brew.sh



PASO 1 Inicializando Proyecto

Crear el directorio:
$ mkdir miproyecto
$ cd miproyecto

Instalando utilizando una maquina virtual
$ virtualenv vmiproyecto
$ source vmiproyecto/bin/activate

Instalar django en la maquina virtual 
(vmiproyecto) $ sudo pip install django

Conexión de MySQL-Python 
(vmiproyecto) $ sudo brew install mysql    # Instala también libmysqlclient-dev
(vmiproyecto) $ sudo pip install mysql-python

Crear proyecto
(vmiproyecto) $ django-admin.py startproject miproyecto

Probar instalación:
(vmiproyecto) $ cd miproyecto
(vmiproyecto) $ python manage.py runserver

Entrar al navegador y probar con http://127.0.0.1:8000

PASO 3 Trabajando con git

Dentro de nuestro proyecto vamos a inicializar el sitio con el siguiente comando:
(vmiproyecto) $ git init

Antes de cualquier cosa le diremos a git que no debe trackear el archivo settings_local.py, que contendrá la configuración necesaria para la conectividad local, así como también los archivos *.swp ya que utilizó vim como editor; para esto debemos editar el archivo .gitignore, el cuál se debe crear si no existe y colocar dentro, el siguiente contenido (Puede usar $ vi .gitignore): 
settings_local.py
*.swp
*.pyc

Una vez realizado lo anterior utilizaremos la siguientes instrucciones para añadir a nuestro primer commit los archivos del proyecto:
(vmiproyecto) $ git add .
(vmiproyecto) $ git commit -m "Inicializando proyecto: miproyecto"

NOTA: Es recomendable utilizar algún sitio como github o bitbucket para llevar el control de versiones respaldando el código en un lugar externo, así como también el uso de diversas ramas según sea necesario.

PASO 4 Generando settings_local.py

Este archivo será diferente en el entorno de producción y en el entorno de desarrollo fue por eso que se agrego al .gitignore. Para lo anterior debemos crear el archivo settings_local.py con el siguiente contenido:

DATABASES_LOCAL = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'basededatos',
        'USER': 'usuario_basededatos',
        'PASSWORD': 'clave_usuario_basededatos',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }

}

PASO 5 Modificando la configuración del settings.py

#Esta instrucción sirve para cerrar la sesión una vez cerrado el navegador:
SESSION_EXPIRE_AT_BROWSER_CLOSE=True
...
#En el archivo settings.py eliminar la variable DATABASES = ... y dejar lo siguiente:
import settings.local.py
DATABASES = DATABASES_LOCAL
...
#Elegir el lenguaje del sistema en el ejemplo vemos español-México:
LANGUAGE_CODE=’es-MX’
...
#En caso de usar las zonas seleccionar la zona correcta desde: 
#http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
TIME_ZONE='America/Mexico_City'
...
#Desactivar Time Zone en ocasiones guarda la fecha y hora de acuerdo a 
#la zona horaria configurada, a menos que lo necesites puedes dejarlo
#activado, en mi caso particular no lo requiero.
USE_TZ=False


Referencias:
https://dl.dropboxusercontent.com/u/43970274/websites/desarrolloweb/index.html#settings
http://stackoverflow.com/questions/7335853/mysql-python-installation-problems-on-mac-os-x-lion
http://dev.mysql.com/doc/refman/5.0/es/resetting-permissions.html







domingo, 22 de diciembre de 2013

Explorador de Archivos en Vim (File Explorer) en OSX

Me estoy haciendo definitivamente adicto a Vim, ahora veremos como instalar el explorador de archivos.

A través de este sitio: http://www.vim.org/scripts/script.php?script_id=1658 encontramos el proyecto de github de nerdtree, con los siguientes comandos podemos realizar la instalación:

$ cd ~/.vim/bundle    #NOTA: Se debe tener el directorio bundle creado previamente
$ git clone https://github.com/scrooloose/nerdtree.git    #NOTA: Implica tener instalado git
$ cp nerdtree/autoload/nerdtree.vim ~/.vim/autoload/nerdtree.vim
$ cp nerdtree/doc/NERD_tree.txt ~/.vim/doc/NERD_tree.txt
$ mkdir ~/.vim/lib  #NOTA: Yo no tenía este directorio
$ cp -rf nerdtree/lib/nerdtree ~/.vim/lib/nerdtree
$ mkdir ~/.vim/nerdtree_plugin
$ cp -rf nerdtree/nerdtree_plugin ~/.vim/
$ cp nerdtree/plugin/NERD_tree.vim ~/.vim/plugin/NERD_tree.vim
$ mkdir ~/.vim/syntax
$ cp -rf nerdtree/syntax ~/.vim/


Una vez realizado lo anterior ya podemos usar el plugin, bien para utilizarlo de forma básica abrimos vim, de entrada ya debe mostrar como un explorador de archivos muy diferente, pero para darle más poder agregaremos al .vimrc la siguiente instrucción:

map < silent > < C-n > :NERDTreeToggle< CR > 
#NOTA: Eliminar espacios en blanco

Con la instrucción anterior abrimos y cerramos el directorio utilizando las teclas Ctrl+N cuando nos posicionamos en un archivo podemos dar ENTER para abrir el archivo o podemos presionar i para que se abra haciendo split con el archivo anterior.

 Dejaré las referencias por si quieres investigar más opciones.

Espero te sea de utilidad !



Referencias:
http://make-believe.org/in-words/post/vim-is-forever/
http://www.vim.org/scripts/script.php?script_id=1140
http://www.youtube.com/watch?v=CPu9mDpSYj0

miércoles, 18 de diciembre de 2013

Instalando vim-airline OSX

Buscando potenciar el uso de vim me tope con un plugin que me dejo atónito con dicha herramienta puedes hacer algo como lo que se ve en las siguientes imágenes:



En cuanto lo vi me dije, tengo que tenerlo, pero al principio creí que solo era un plugin y son varios para lograr el funcionamiento máximo me aboqué solo en algunos de ellos que son los que utilizaré y dejo aquí como es de costumbre el procedimiento para instalarlo, el cuál esta basado para OSX pero es probable que no haya mucha diferencia para MsWindows.

Por principio de cuentas no tenía mucha experiencia instalando plugins para vim por lo que también lo veremos aquí.

PASO 1 | Descargar vim-airline

Con el fin de llevar algo de orden todo lo que descargue lo dentro del directorio ~/.vim/bundle de esa manera desde ahí puedo trabajar y copiar lo que se necesita. El primer comando que vamos a ejecutar entonces es:

$ cd ~/.vim/
$ mkdir bundle                 # Solo en caso de no tener este directorio
$ git clone https://github.com/bling/vim-airline.git

PASO 2 | Instalar vim-airline

Con el paso anterior nos descargara el proyecto en una carpeta con el mismo nombre dentro de vim-airline ahí tendremos una carpeta de nombre autoload, doc y plugin. Estas carpetas debemos copiarlas al directorio ~/.vim solo hay que tener cuidado que si ya tenemos las carpetas entonces solo copiar el contenido de ellas dentro del directorio correspondiente (Si copiamos la carpeta directamente podemos borrar lo que estaba ahí).

Esto es el contenido de:
 ~/.vim/bundle/vim-airline/autoload/ copiarlo a ~/.vim/autoload/
 ~/.vim/bundle/vim-airline/doc/ copiarlo a ~/.vim/doc/
 ~/.vim/bundle/vim-airline/plugin/ copiarlo a ~/.vim/plugin/

Básicamente este es el proceso de instalación de un plugin en vim, se descarga y luego se mueven los archivos que se encuentran en los directorios autoload, doc y plugin a los directorios raíz.

PASO 3 |  Activar la barra y el airline

Para activarlo es muy sencillo necesitamos editar el archivo ~/.vimrc para esto podemos hacer el siguiente comando:

$ vi ~/.vimrc

Dentro de ese archivo colocaremos las siguientes líneas:
   set laststatus=2
   let g:airline#extensions#tabline#enabled = 1       "Habilita los tabs, para cambiar de tab presionar gt

Guardamos el archivo y al volver a entrar veremos las primeras posibilidades que nos ofrece este StatusLine de vim.

PASO 4 |  Uso de Git

Como podemos observar en la barra podemos ver las inserciones y la rama que estamos utilizando en git, para eso debemos instalar dos plugin (El proceso es el mismo que con el airline, solo recuerda que en esta ocasión ya debes tener las carpetas autoload, doc y plugin, por lo que solo deberás copiar los contenidos de cada carpeta). Dichos plugin son los siguientes:

https://github.com/airblade/vim-gitgutter
https://github.com/tpope/vim-fugitive

Una vez instalado lo anterior podrás ver la rama y el control de modificaciones de los archivos.

PASO 5 |  Fuentes especiales

Hasta el paso anterior ya queda algo bastante funcional, lo siguiente es solo para darle un poco de formato utilizando fuentes especiales, es importante mencionar que esto solo me funcionó en MacVim. Para instalar dichas fuentes es necesario realizar varios procesos:

5.1 Instalar Home Brew (Solo en caso de no tenerlo instalado):

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
$ brew update

5.2 Instalar font

$ brew install fontforge            #Si ya estaba instalado ejecutar $ brew uninstall fontforge

5.3 Obtener el directorio de fontpatcher del repositorio:
https://github.com/Lokaltog/vim-powerline/tree/develop/fontpatcher
NOTA: Solo ese directorio ya que lo necesitaremos para instalar las fuentes.

5.4 Descargar las fuentes de: https://github.com/Lokaltog/powerline-fonts

5.5 Una vez obtenidas las fuentes será necesario correr el siguiente comando:

$ fontforge -script /ruta/al/fontpatcher.py "Ubuntu Mono derivative Powerline.ttf"
Realizando los cambios correspondientes: la ruta del fontpatcher.py y el archivo Ubuntu Mono derivative Powerline.ttf es solo como ejemplo, debe sustituirse por el que se desea instalar.

5.6 Realizado el proceso anterior entonces podemos añadir a nuestro .vimrc lo siguiente:

let g:airline_powerline_fonts=1

5.7 En el .gvimrc elegimos el tipo de fuente que escogimos en el punto 5.5:
set guifont=Ubuntu\ Mono\ derivative\ Powerline\
set anti gfn=Ubuntu\ Mono\ derivative\ Powerline:h19

De esta forma aparecerán los iconos, espero te sea de utilidad !



Referencias:
https://github.com/bling/vim-airline
https://github.com/airblade/vim-gitgutter
https://github.com/tpope/vim-fugitive
http://brew.sh/