miércoles, 25 de marzo de 2015

Optimizar NetBeans

Para optimizar NetBeans que por lo general se siente pesado podemos desactivar los plugins que tiene instalados, por defecto y no vayamos a usar. Para ello haremos:

  1. Ir a Herramientas -> Complementos->Pestaña "Instalado".
  2. Seleccionar el checkbox del plugin a desactivar.
  3. Se activa el botón Desactivar en la parte inferior.
  4. Pulsar botón y listo. Ahora es necesario reiniciar el IDE. 
Hay que tener cuidado con que plugins desactivamos, hay plugins importantes dependiendo lo que uno programe, por ejemplo, si estas programando en PHP no se te vaya a ocurrir desactivar la pestaña de editor de PHP porque puedes dejar de incluir opciones importantes para el uso de PHP en tu IDE. 

En mi caso he desactivado plugins de frameworks (Symphony) que no utilizo o versionadores (CVS, Mercurial) que tampoco uso.

Así mismo se recomienda desactivar el escaneo automático. Para desactivarlo:
  1. Ir a Herramientas -> Opciones -> pestaña "Varios" -> subpestaña "Archivos".
  2. Desactivar el checkbox de "Habilitar auto-escaneo de fuentes".
Esta información la he sacado de este enlace el cual explica un poco más a detalle las acciones que se realizan. Muy útil y a lo cual agradezco mucho la información porque es de mucha ayuda aligerar el NetBeans, sobre todo en computadoras que no tienen tantos recursos disponibles.


¡Saludos javer@s!

Dando color y vida al prompt de consola linux

Comparto mi archivo .bashrc ubicado en mi directorio home de linux /home/vagabundo/ o ~/ con la configuración para mostrar colorcitos en la consola, sobre todo para todos aquellos que como yo la utilizamos como herramienta diaria linuxera:

_______________________________________ archivo .bashrc____
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
    else
color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# .bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi
#Muestra el Fortune del dia
fortune
________________________________________

Para más información de como personalizar las opciones de color aquí una página muy interesante e ilustrativa...

Aquí para acceder al enlace

¡A darle color a la vida javer@s!




Instalar y personalizar vim en CentOS

En realidad instalar VIM es muy fácil con la herramienta YUM :

yum install vim-X11 vim-common vim-enhanced vim-minimal

Como extra también aquí para instalarlo en ubuntu:

sudo apt-get install vim

Una vez hecho esto podemos cambiar nuestro archivo de configuración de vim '.vimrc ' el cual debe estar en nuestro directorio raíz de nuestro usuario en linux, este es un ejemplo que pueden usar, en caso de que no exista el archivo lo pueden crear:

set history=700          " Define cuantas lineas VIM recuerda en su history
                                        
set nocompatible
colo delek
syntax on         "Muy importante para activar el atractivo syntax highlight

set showmode

set autoindent
set smartindent
set backspace=eol,start,indent

set expandtab
set tabstop=4
set shiftwidth=4
set ruler

set number
set ignorecase
set smartcase
set hlsearch
set backup
set backupdir=~/vim/tmp/
set nowrap
set laststatus=2
set cmdheight=2

Aquí la página referencia de esta entrada:

Aquí para entrada en el sitio del autor original

¡Saludos javer@s!

Usando EXPLAIN para analizar consultas en MySQL

El uso de la herramienta EXPLAIN en MySQL es muy simple:

mysql> explain select * from tabla_x;
+----+-------------+---------+------+---------------+------+---------+------+------+-------+
| id | select_type | table   |type  | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | tabla_x | ALL  | NULL          | NULL | NULL    | NULL | 1002 |       | 
+----+-------------+---------+------+---------------+------+---------+------+------+-------+

Aquí podemos analizar algunos datos con respecto a nuestra consulta para optimizar nuestros queries sean simples, compuestos (digase con JOIN's y así) o muy complejos xD .

Entre algunas cosas que podemos observar es si usa llaves o indices, el numero de filas que estaría leyendo de la base de datos esa consulta. Por ejemplo un valor que deberíamos evitar en nuestras consultas es el campo 'type' con 'ALL' esto quiere decir que está leyendo la fila completa y no se remite a un campo en particular o a una llave en un índice, por lo tanto la consulta será más lenta que si hacemos uso de alguna de estas alternativas de optimización.

En esta página encontré varios ejemplos bastante ilustrativos y una explicación de cada campo del comando EXPLAIN que pueden consultar para más detalle:

Aquí

También pueden acceder a la ayuda de MySQL en internet.

¡Mucha suerte con sus consultas complejas! la necesitarán ;)

¡Saludos javer@s!

miércoles, 18 de marzo de 2015

Creando usuario en Linux y agregándolo a sudoers rápidamente

Rápidamente aqui los pasos para crear un usuario y agregarlo al grupo de sudoers en linux:

1. Crea su grupo


groupadd nuevogrupo

2. Crear usuario con opciones básicas:

useradd -g nuevogrupo -d /home/nuevousuario -m -s /bin/bash nuevousuario

3. Cambiar password

passwd nuevousuario

4. Agregar a la lista de sudoers. Para ello se debe modificar el archivo /etc/sudoers y agregar la linea del usuario en la sección siguiente:

## Next comes the main part: which users can run what software on 
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root ALL=(ALL) ALL
##Nuevo usuario con todos los permisos sudo
nuevousuario ALL=(ALL)  ALL

Listo, reiniciamos nuestra sesión y todo debe estar de lujo y en orden.

¡Saludos Javer@s!


martes, 10 de marzo de 2015

Acelerar importación de Base de Datos MySQL desde consola

HOla!
Esta ocasión platico lo que me pasó. Tratando de cargar una base de datos bastante grande (una tabla cuyo sql era de aprox 6GB), me encontré con la dificultad de que al importarlo a través de la linea de comandos de MySQL tardaba un demonial, más de lo que podría suponerse, tardando 20 segundos o más por cada 1000 registros (hablábamos de unos 5 millones de registros).
Me di cuenta que el dump lo habían generado desde una útil herramienta llamada SQLyog y que mi compañero desde su máquina haciendo el import con la misma herramienta tardaba muuuucho menos que yo.
Entonces vi que el archivo sql del dump no contenía ninguna clase de comentario ni directiva extra más que la carga de los datos, es decir, el create de la tabla y los inserts, ¡Ah claro! y que había sido hecho por SQLyog.

Encontré una página con algunas estrategias para acelerar los procesos de dump y de importación:

Aquí

Entre ellos uno me llamó la atención y parece la solución a mi problema. Al restaurar desde consola en linux sería bueno activar las directivas para cancelar varios chequeos que hace MySQL y acelerar el proceso.

(
    echo "SET AUTOCOMMIT=0;"
    echo "SET UNIQUE_CHECKS=0;"
    echo "SET FOREIGN_KEY_CHECKS=0;"
    cat dump.sql
    echo "SET FOREIGN_KEY_CHECKS=1;"
    echo "SET UNIQUE_CHECKS=1;"
    echo "SET AUTOCOMMIT=1;"
    echo "COMMIT;"
) | mysql -u... -p... target_database

o podemos crear un archivo para ejecutar desde el shell:

#!/bin/bash
MYSQL_USER="..."
MYSQL_PASSWORD="..."

function restore() {
    echo $1;
    (
        echo "SET AUTOCOMMIT=0;"
        echo "SET UNIQUE_CHECKS=0;"
        echo "SET FOREIGN_KEY_CHECKS=0;"
        cat "$1.sql"
        echo "SET FOREIGN_KEY_CHECKS=1;"
        echo "SET UNIQUE_CHECKS=1;"
        echo "SET AUTOCOMMIT=1;"
        echo "COMMIT;"
    ) | mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$1"
}

Con esto aceleramos mucho la inserción, sin embargo de todos modos tarda.

En la página donde saqué estas cosas también vienen otras recomendaciones que pueden ser bastante útiles al exportar e importar Bases de Datos en MySQL.


jueves, 5 de marzo de 2015

Especificar JDK para Tomcat (probado con 6 y 7) en Ubuntu

Este error puede ocurrir cuando recién instalamos Tomcat en nuestra máquina (Estoy usando Ubuntu).

no JDK found - please set JAVA_HOME

Para establecer valor para JAVA_HOME abrimos el archivo gedit /etc/default/tomcat# (# es el numero de la versión del Tomcat que estemos usando, ejem: tomcat6 ) usar:

gksudo gedit /etc/default/tomcat6 

En la parte del archivo donde dice:

# The home directory of the Java development kit (JDK). You need at least
# JDK version 1.5. If JAVA_HOME is not set, some common directories for 
# OpenJDK, the Sun JDK, and various J2SE 1.5 versions are tried.
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk

Descomentamos y cambiamos el valor de la variable JAVA_HOME por ejemplo:

JAVA_HOME=/usr/lib/jvm/java-7-oracle

Reiniciamos Tomcat, por ejemplo usando tomcat6

sudo /etc/init.d/tomcat6 restart

¡y listo!

Un plus que es si te aparece este error en NetBeans

CATALINA_HOME /conf/server.xml can’t be read

Generar la liga en el directorio base del Tomcat

# ln -s /etc/tomcat7 /usr/share/tomcat7/conf

Y despues asigna valor a tu CATALINA_HOME como /usr/share/tomcat7/conf

¡¡¡Y otra vez listo!!!


¡¡Saludos javer@s!