<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Mostofreddy]]></title><description><![CDATA[Mostofreddy]]></description><link>http://mostofreddy.com.ar/</link><generator>Ghost 0.5</generator><lastBuildDate>Wed, 03 Jun 2015 19:41:12 GMT</lastBuildDate><atom:link href="http://mostofreddy.com.ar/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Cómo instalar y configurar Vagrant correctamente]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2015/03/vagrant-logo.png" alt=""></p>

<p>En un post anterior (<a href="http://mostofreddy.com.ar/6-motivos-para-utilizar-vagrant/">6 motivos para utilizar Vagrant</a>) vimos porque necesitamos utilizar Vagrant, ahora vamos a ver como instalarlo y configurarlo correctamente.</p>

<h2 id="quesvagrant">¿Qué es Vagrant?</h2>

<p><a href="http://www.vagrantup.com/">Vagrant</a> es una aplicación open source escrita en Ruby que nos permite crear y configurar ambientes virtuales de desarrollo de forma sencilla y rápida. Nos abstrae del sistema de virtualización (VMWare, VirtualBox, AWS, etc) y del SO (Windows, Linux, Mac) permitiendonos compartir una ambiente de desarrollo en cualquier entorno que se desee. Además esta integrado con herramientas de automatización de configuración como Chef o Puppuet.</p>

<h2 id="instalacin">Instalación</h2>

<p><strong>Virtualbox</strong></p>

<p>Vagrant funciona sobre un sistema de virtualización, en este tutorial usaremos Virtualbox.</p>

<pre><code>sudo apt-get install virtualbox  
</code></pre>

<p><strong>Vagrant</strong></p>

<p>Como en los repositorios oficiales de Ubuntu no se encuentra la última versión de Vagrant, la bajamos desde su <a href="http://www.vagrantup.com/downloads">sitio</a></p>

<p><img src="http://mostofreddy.com.ar/content/images/2015/03/vagrant-download.png" alt=""></p>

<p>Y para instalarla usamos el siguiente comando:</p>

<pre><code>cd ~/Downloads  
sudo dpkg -i vagrant_1.7.2_x86_64.deb  
</code></pre>

<h2 id="comandosdisponibles">Comandos disponibles</h2>

<p>Antes de ver como crear un ambiente, repasemos que comandos nos brinda Vagrant:</p>

<table class="table">  
    <tr><th>box</th><td>permite crear/eliminar/etc boxes</td></tr>
    <tr><th>destroy</th><td>elimina una máquina virtual</td></tr>
    <tr><th>halt</th><td>apaga una máquina virtual</td></tr>
    <tr><th>init</th><td>inicializa en el directorio acutal un ambiente vagrant creando un Vagrantfile inicial</td></tr>    
    <tr><th>package</th><td>empaqueta nuestro entorno actual en un nuevo box rehutilizable</td></tr>
    <tr><th>reload</th><td>reinicia una máquina virtual</td></tr>
    <tr><th>resume</th><td>inicializa una máquina que fue suspendida</td></tr>
    <tr><th>ssh</th><td>accede al shell de la máquina virtual</td></tr>
    <tr><th>status</th><td>devuelve el estado de la máquina virutal</td></tr>
    <tr><th>suspend</th><td>suspende una máquina virtual</td></tr>
    <tr><th>up</th><td>crea y configura una máquina virtual según un archivo Vagrantfile</td></tr>
</table>

<p>La lista completa de comandos se puede encontrar en la <a href="http://docs.vagrantup.com/v2/cli/index.html">documentación oficial de Vagrant</a></p>

<h2 id="boxes">Boxes</h2>

<p>Un Box es una máquina virtual empaquetada. Cuando creamos una máquina virtual debemos indicar de que box la vamos a clonar. </p>

<p>Vagrant proporciona algunos boxes <a href="https://atlas.hashicorp.com/boxes/search">oficiales</a>, aunque podemos encontrar un listado <a href="http://www.vagrantbox.es/">no oficial</a>.</p>

<p>Para poder utilizar un Box es necesario primero agregarlo a nuestro repositorio local de boxes. Ej: instalaremos un box de CentOS:</p>

<pre><code>vagrant box add chef/centos-6.5  
</code></pre>

<p>Para ver que box tenemos en nuestro sistema local, podemos usar el siguiente comando:</p>

<pre><code>vagrant box list  
</code></pre>

<h2 id="vagrantfile">Vagrantfile</h2>

<p>El archivo Vagrantfile es el corazón de Vagrant, en el se detalla toda la configuración que tendrá la máquina virtual.</p>

<p>Podemos crear nosotros mismos el archivo o utilizar el comando <code>init</code>, este comando creara un archivo con una configuración básica.</p>

<pre><code>vagrant init  
</code></pre>

<p>Veamos un ejemplo sencillo:</p>

<pre><code># -*- mode: ruby -*-
# vi: set ft=ruby :

# Variables
VAGRANTFILE_API_VERSION = "2"  
box      = 'chef/centos-6.5'

# Vagrant config
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|  
  config.vm.box = box
end  
</code></pre>

<h3 id="configuracindevirtual">Configuración de virtual</h3>

<p>En nuestro archivo Vagrantfile podemos configurar un montón de cosas, entre ellas:</p>

<table class="table">  
    <tr>
        <td>config.vm.boot_timeout</td>
        <td>Tiempo de espera para que Vagrant inicialice. Default: 300 segundos</td>
    </tr>
    <tr>
        <td>config.vm.box</td>
        <td>Box de la cual se va a clona la máquina actual</td>
    </tr>
    <tr>
        <td>config.vm.box_check_update</td>
        <td>Si el valor es TRUE, comprueba si existe una actualización del Box. Default: true.</td>
    </tr>
    <tr>
        <td>config.vm.box_url</td>
        <td>Url/Path donde Vagrant bajará la Box definida en config.vm.box. Si se especifica un BOx de <a href="https://atlas.hashicorp.com/">HashiCorp's Atlas</a>, este valor no es necesario.</td>
    </tr>
    <tr>
        <td>config.vm.box_version</td>
        <td>Indica la versión de la Box</td>
    </tr>
    <tr>
        <td>config.vm.hostname</td>
        <td>Define el hostname de la virtual</td>
    </tr>
    <tr>
        <td>config.vm.network</td>
        <td>Configuración extra de red</td>
    </tr>
    <tr>
        <td>config.vm.post_up_message</td>
        <td>Mensaje que se muestra luego de vagrant up</td>
    </tr>
    <tr>
        <td>config.vm.provider</td>
        <td>Indica si el <a href="http://docs.vagrantup.com/v2/providers/configuration.html">sistema de virtualización</a> que será usado.</td>
    </tr>
    <tr>
        <td>config.vm.provision</td>
        <td>Indica que sistema de <a href="http://docs.vagrantup.com/v2/provisioning/">automatización</a> se usara para instalar todas las dependencias y software (Puppet, Chef, Bash Script, etc)</td>
    </tr>
    <tr>
        <td>config.vm.synced_folder</td>
        <td>Permite compartir un directorio</td>
    </tr>
    <tr>
        <td>config.ssh.username</td>
        <td>Setea el user que utiliza Vagrant. Default: vagrant</td>
    </tr>
</table>

<p>Las demás opciones de configuración se pueden ver en la <a href="http://docs.vagrantup.com/v2/vagrantfile/index.html">documentación oficial</a></p>

<h3 id="forwarddepuertos">Forward de puertos</h3>

<p>Muchas veces vamos a necesitar forwardear algún puerto (ej: puerto 80) eso es muy fácil:</p>

<pre><code>config.vm.network "forwarded_port", guest: 80, host: 8000  
config.vm.network "forwarded_port", guest: 8080, host: 8080  
</code></pre>

<p><strong>Nota:</strong> Tengan en cuenta que el puerto 22 (ssh) no es necesario forwardear ya que Vagrant lo hace automáticamente al puerto 2222.</p>

<p><a href="http://docs.vagrantup.com/v2/networking/forwarded_ports.html">Más info.</a></p>

<h2 id="conclusin">Conclusión</h2>

<p>Vagrant es una excelente herramienta para homogeneizar todos los ambientes de desarrollo de la empresa, tener replicas de los ambientes productivos y simplificar el día a día en nuestro trabajo.</p>]]></description><link>http://mostofreddy.com.ar/como-instalar-y-configurar-vagrant/</link><guid isPermaLink="false">b4513b19-f3f4-4bfc-b65d-21e6dfebd274</guid><category><![CDATA[vagrant]]></category><category><![CDATA[puppet]]></category><category><![CDATA[virtualizacion]]></category><category><![CDATA[chef]]></category><category><![CDATA[virtualbox]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Mon, 23 Mar 2015 21:43:31 GMT</pubDate></item><item><title><![CDATA[6 motivos para utilizar Vagrant]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2015/03/vagrant-logo.png" alt=""></p>

<p>Cuantas veces hemos dicho alguna de estas frases en el día a día de nuetro trabajo o quizas codeando en nuestras casas por la noche: </p>

<ol>
<li>En mi maquina funciona (obviamente en producción/testing no).  </li>
<li>Configurar el entorno de desarrollo consume mucho tiempo.  </li>
<li>Necesito probar el desarrollo en distintos ambientes.  </li>
<li>Todos los desarrolladores del equipo usan distintas máquinas y sistemas operativos.  </li>
<li>Tenes proyectos de desarrollo en paralelo donde las dependencias entran en conflicto.  </li>
<li>Necesitas un ambiente de desarrollo/testing igual al de producción.</li>
</ol>

<p>Cuando aparecen estas preguntas es sintoma que algo esta mal y se necesita una solución, es ahí donde aparece y toma fuerza Vagrant.</p>

<h2 id="quesvagrant">¿Qué es Vagrant?</h2>

<p><a href="http://www.vagrantup.com/">Vagrant</a> es una aplicación open source escrita en Ruby que nos permite crear y configurar ambientes virtuales de desarrollo de forma sencilla y rápida. Nos abstrae del sistema de virtualización (VMWare, VirtualBox, AWS, etc) y del SO (Windows, Linux, Mac) permitiendonos compartir una ambiente de desarrollo en cualquier entorno que se desee. Además esta integrado con herramientas de automatización de configuración como Chef o Puppuet.</p>

<h2 id="instalacin">Instalación</h2>

<p><strong>Virtualbox</strong></p>

<p>Vagrant funciona sobre un sistema de virtualización, en este tutorial usaremos Virtualbox.</p>

<pre><code>sudo apt-get install virtualbox  
</code></pre>

<p><strong>Vagrant</strong></p>

<p>Como en los repositorios oficiales de Ubuntu no se encuentra la última versión de Vagrant, la bajamos desde su <a href="http://www.vagrantup.com/downloads">sitio</a></p>

<p><img src="http://mostofreddy.com.ar/content/images/2015/03/vagrant-download.png" alt=""></p>

<p>Y para instalarla usamos el siguiente comando:</p>

<pre><code>cd ~/Downloads  
sudo dpkg -i vagrant_1.7.2_x86_64.deb  
</code></pre>

<p>En un post posterior vermos como configurar correctamente Vagrant.</p>]]></description><link>http://mostofreddy.com.ar/6-motivos-para-utilizar-vagrant/</link><guid isPermaLink="false">5548b5c3-3d7b-448b-aca8-0a9e851693e3</guid><category><![CDATA[vagrant]]></category><category><![CDATA[puppet]]></category><category><![CDATA[virtualizacion]]></category><category><![CDATA[chef]]></category><category><![CDATA[virtualbox]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Mon, 23 Mar 2015 21:40:48 GMT</pubDate></item><item><title><![CDATA[Configurar correctamente Ubuntu luego de instalarlo]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2015/03/ubuntu-logo112.png" alt=""></p>

<h2 id="actualizardistribucin">Actualizar distribución</h2>

<p>Lo primero que debemos hacer es actualizar la distribución</p>

<pre><code>sudo apt-get update  
sudo apt-get upgrade  
sudo apt-get dist-upgrade  
sudo apt-get install linux-headers-`uname -r`  
</code></pre>

<h2 id="bsicosdecompilacin">Básicos de compilación</h2>

<p>Luego, nos aseguramos de instalar lo básico para compilar cualquier paquete que necesitemos instalar.</p>

<pre><code>sudo apt-get install build-essential  
sudo apt-get install automake make cmake libtool autoconf  
</code></pre>

<h2 id="terminal">Terminal</h2>

<p>La terminal de ubuntu es nuestro caballito de batalla para todo lo que querramos hacer, la que viene por defecto esta bien, pero a mi me gusta tener un poco mas de funcionalidades y elijo terminator (existen muchas otras). </p>

<pre><code>sudo apt-get install terminator  
</code></pre>

<p>Ah y claramente no podemos olvidarnos de nuestro amigo VIM</p>

<pre><code>sudo apt-get install vim  
</code></pre>

<h2 id="multimedia">Multimedia</h2>

<p><strong>Codecs</strong></p>

<p>Si queremos ver películas o escuchar música estas libs son indispensables</p>

<pre><code>echo 'deb http://download.videolan.org/pub/debian/stable/ /' | sudo tee -a /etc/apt/sources.list.d/libdvdcss.list &amp;&amp; echo 'deb-src http://download.videolan.org/pub/debian/stable/ /' | sudo tee -a /etc/apt/sources.list.d/libdvdcss.list &amp;&amp; wget -O - http://download.videolan.org/pub/debian/videolan-apt.asc|sudo apt-key add -  
sudo apt-get install libxine1-ffmpeg mencoder flac faac faad sox ffmpeg2theora  
sudo apt-get install libmpeg2-4 uudeview libmpeg3-1 mpeg3-utils mpegdemux liba52-dev  
sudo apt-get install mpeg2dec vorbis-tools id3v2 mpg321 mpg123 libflac++6 totem-mozilla  
sudo apt-get install icedax lame libmad0 libjpeg-progs libdvdcss2 libdvdread4  
sudo apt-get install libdvdnav4 libswscale-extra-2  
sudo apt-get install ubuntu-restricted-extras  
sudo /usr/share/doc/libdvdread4/install-css.sh  
</code></pre>

<p><strong>Editor de imágenes</strong></p>

<p>Siempre tenemos alguna imagen que debemos modificar</p>

<pre><code>sudo apt-get install gimp gimp-data gimp-plugin-registry gimp-data-extras  
</code></pre>

<p><strong>Visor de videos</strong></p>

<p>Ideal para ver nuestras películas favoritas</p>

<pre><code>sudo add-apt-repository ppa:videolan/stable-daily  
sudo apt-get update  
sudo apt-get install vlc  
</code></pre>

<h2 id="torrents">Torrents</h2>

<p>Lo mejorcito (según mi opinion)</p>

<pre><code>sudo apt-get install deluge  
</code></pre>

<h2 id="gnome3">Gnome3</h2>

<p>Nose a ustedes, pero a mi Unity aún no me termina de cerrar o será que me mal acostumbre a Gnome3...</p>

<pre><code>sudo add-apt-repository -y ppa:gnome3-team/gnome3  
sudo apt-get install gnome-shell gnome-tweak-tool gnome-shell-extensions  
</code></pre>

<h2 id="chrome">Chrome</h2>

<pre><code>wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -  
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" &gt;&gt; /etc/apt/sources.list.d/google.list'  
sudo apt-get update  
sudo apt-get install google-chrome-stable  
</code></pre>

<h2 id="java">Java</h2>

<pre><code>sudo add-apt-repository ppa:webupd8team/java  
sudo apt-get update  
sudo apt-get install oracle-java8-installer  
sudo update-java-alternatives -s java-8-oracle  
</code></pre>

<h2 id="flash">Flash</h2>

<pre><code>sudo apt-get install flashplugin-installer  
</code></pre>

<h2 id="otros">Otros</h2>

<p><strong>Comprimir/descomprimir</strong></p>

<pre><code>sudo apt-get install rar unrar zip unzip  
</code></pre>

<p><strong>Mensajeros</strong></p>

<pre><code>sudo apt-get install pidgin  
sudo apt-get install amsn  
sudo apt-get install skype  
</code></pre>

<p><strong>Windows fonts</strong></p>

<pre><code>sudo apt-get install ttf-mscorefonts-installer  
sudo fc-cache  
</code></pre>

<h2 id="cleanup">Clean up</h2>

<pre><code>sudo apt-get -f install  
sudo apt-get -y autoremove  
sudo apt-get -y autoclean  
sudo apt-get -y clean  
</code></pre>]]></description><link>http://mostofreddy.com.ar/configurar-correctamente-ubuntu-luego-de-instalarlo/</link><guid isPermaLink="false">6b4cc8ca-3450-4227-a498-6b6968247e7b</guid><category><![CDATA[linux]]></category><category><![CDATA[ubuntu]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Sat, 21 Mar 2015 20:42:10 GMT</pubDate></item><item><title><![CDATA[Básicos sobre fotografía - Apertura de diafragma]]></title><description><![CDATA[<p>La apertura es uno de los principios básicos que aprendemos cuando comenzamos en el mundo de la fotografía, y es importante que lo entendamos porque afecta directamente a nuestras fotografías.</p>

<p>El <strong>diafragma</strong> o también conocido como <strong>apertura</strong> es la cantidad de luz que una cámara permite pasar a través de su lente a la hora de tomar una fotografía. Podemos decir que funciona como el ojo humano, el iris se abre o se cierra para permitir que entre más o menos luz.</p>

<p>Algunos conceptos:</p>

<ul>
<li>Lo abierto que está el diafragma es lo que se llama <strong>apertura de diafragma</strong>. </li>
<li>La apertura de diafragma se mide en números <strong>f</strong>. </li>
<li>La <strong>luminosidad</strong> de un objetivo ó <strong>número f</strong>, es el cociente entre su distancia focal y el diámetro de su abertura. </li>
<li>El salto de un valor al siguiente se denomina <strong>paso</strong>.</li>
</ul>

<p>Actualmente se adopto una escala de números f como standard de valores de luminosidad para que sea universal para todos los formatos y objetivos. La escala es la siguiente:</p>

<p><img src="http://mostofreddy.com.ar/content/images/2014/12/numeros-f-1.jpg" alt=""></p>

<p>La relación entre los números f es que por cada paso la luminosidad se duplica o se divide por dos si la aumentamos o la reducimos respectivamente. Así f/11 tiene el doble de luminosidad que f/16 y la mitad que f/8.</p>

<p>Cada objetivo tiene una apertura de diafragma máxima. Si son objetivos con distancia focal fija la apertura máxima es fija, para zooms la apertura máxima puede cambiar según varía la distancia focal o puede ser fija. La apertura de diafragma máxima viene indicada en los objetivos.</p>

<ul>
<li><p><strong>14-42mm 1:3,5-5,6</strong> significa que el objetivo tiene una distancia focal que varía entre 14 y 42 mm. En su distancia focal mínima (14mm) tiene una apertura máxima de f3,5, y en su focal máxima (42mm) tiene una apertura máxima de f5,6.</p></li>
<li><p><strong>16-45mm 1:4</strong> significa que el objetivo tiene una distancia focal que varía entre 16 y 45 mm y en todo este rango la apertura máxima es de f4.</p></li>
</ul>

<h2 id="enqueinfluyelaaperturadeldiafragma">¿En que influye la apertura del diafragma?</h2>

<p>La apertura tiene principalmente consecuencias directas en 2 características: <strong>la profundidad de campo</strong> y la <strong>nitidez</strong> de la fotografía.</p>

<p>Usar nuestro diafragma en cualquier de sus extremos (tanto muy abierto como muy cerrado) hará que la nitidez de nuestras imágenes se resienta. Podemos decir que cuanto más cerrado esté el diafragma (mayor numero f) mayor debería ser la nitidez y por el contrario, a más abierto (menor numero f) menor es la nitidez, pero la nitidez también depende de la difracción, que aumenta al cerrar el diafragma. Por tanto, mientras por un lado la nitidez aumenta al cerrar el diafragma, por otro disminuye al incrementarse la difracción.</p>

<p>Como consecuencia se considera que la mayor nitidez se produce con los diafragmas que están uno o dos pasos más abiertos que el máximo del objetivo, aunque finalmente dependerá de cada objetivo. </p>

<p>La profundidad de campo, es probablemente más interesante, ya que nos permite ver más claramente los resultados, pero al ser un tema mas largo lo veremos en otro post.</p>

<hr>

<p>fuentes</p>

<ul>
<li><a href="http://foto.difo.uah.es/curso/el_diafragma_y_el_obturador.html">el diafragma y el obtulador</a></li>
<li><a href="http://www.thewebfoto.com/2-hacer-fotos/202-apertura-de-diafragma">2.02 – Apertura de diafragma</a></li>
<li><a href="http://www.memoflores.com/abc/diafragma.html">Diafragma</a></li>
<li><a href="http://www.xatakafoto.com/curso-de-fotografia/curso-de-fotografia-14-la-apertura-ejemplos-practicos">Curso de Fotografía: 15. La apertura : Ejemplos prácticos</a> </li>
</ul>]]></description><link>http://mostofreddy.com.ar/basicos-sobre-fotografia-apertura-de-diafragma/</link><guid isPermaLink="false">f88cad84-a38e-4257-81d5-354c8c6b7608</guid><category><![CDATA[fotografia]]></category><category><![CDATA[apertura diafragma]]></category><category><![CDATA[distancia focal]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Fri, 19 Dec 2014 05:59:04 GMT</pubDate></item><item><title><![CDATA[Introducción a SNMP – Protocolo de gestión de red “¿simple?”]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2014/12/snmp.jpg" alt=""></p>

<p>En la empresa donde trabajo manejamos distintos dispositivos de red y para comunicarnos con ellos usamos el protocolo SNMP y me parecio buena idea hacer un pequeño resúmen de que trata este protocolo.</p>

<p>El <strong>protocolo de gestión de red simple</strong> o <strong>SNMP</strong> (Simple Network Management Protocol), es un protocolo de la capa de aplicación que facilita el intercambio de información de gestión entre dispositivos de red. Surge a raíz del interés mostrado por la IAB (Internet Activities Board) en encontrar un protocolo de gestión que fuese válido para la red Internet, dada la necesidad del mismo debido a las grandes dimensiones que estaba tomando. Los tres grupos de trabajo que inicialmente se formaron llegaron a conclusiones distintas, siendo finalmente el SNMP (RFC 1098) el adoptado, incluyendo éste algunos de los aspectos más relevantes presentados por los otros dos: HEMS (High-Level Management System) y SGMP (Simple Gateway Monitoring Protocol).</p>

<p>Este protocolo es parte del conjunto de protocolos TCP/IP (Transmission Control Protocol/Internet Protocol) y, por su amplia utilización en redes empresariales, es considerado el estándar de facto en detrimento del protocolo CMIP (Common Management Information Protocol) de la familia de protocolos OSI (Open Systems Interconnection), más utilizado en las grandes redes de las operadoras de telecomunicación. </p>

<p>SNMP permite a los administradores: gestionar el rendimiento, encontrar y solucionar problemas, y planificar el crecimiento futuro de la red. Si bien SNMP se diseñó, en un principio, con el propósito de hacer posible supervisar de forma sencilla y resolver problemas, en routers y bridges; con su ampliación, este protocolo puede ser utilizado para supervisar y controlar: routers, switches, bridges, hubs, servidores y estaciones Windows y Unix, servidores de terminal, etc.</p>

<h2 id="componentesbsicosdesnmp">Componentes básicos de SNMP  </h2>

<p>Los componentes básicos de una red gestionada con SNMP, son: </p>

<ul>
<li><strong>agentes</strong>: componentes software que se ejecutan en los dispositivos a gestionar</li>
<li><strong>gestores</strong>: componentes software que se ejecutan en los sistemas de gestión de red. </li>
</ul>

<p>Un sistema puede operar exclusivamente como gestor o como agente, o bien puede desempeñar ambas funciones simultáneamente.</p>

<h2 id="mensajessnmp">Mensajes SNMP  </h2>

<h3 id="agente">Agente</h3>

<ul>
<li><em>Trap</em>: Un mensaje espontáneo enviado por el Agente al Administrador, al detectar una condición predeterminada, como es la conexión/desconexión de una estación o una alarma. </li>
<li><em>Get Request</em>: Una petición del Administrador al Agente para que cambie el valor contenido en el MIB referente a un determinado objeto. </li>
</ul>

<h3 id="gestor">Gestor</h3>

<ul>
<li><em>Get Request</em>: Una petición del Administrador al Agente para que envíe los valores contenidos en el MIB (base de datos).</li>
<li><em>Get Next Request</em>: Una petición del Administrador al Agente para que envíe los valores contenidos en el MIB referente al objeto siguiente al especificado anteriormente.</li>
<li><em>Get Response</em>: La respuesta del Agente a la petición de información lanzada por el Administrador.</li>
</ul>

<h2 id="queseguridadbrindasnmp">Que seguridad brinda SNMP?  </h2>

<p>SNMP no tiene muy buen soporte en la cuestión de autenticación por que tan solo ofrece un esquema de dos palabras claves que son publica y privada esto quiere decir:</p>

<ul>
<li>Publica: esta permite a los gestores realizar peticiones de valores de variables.</li>
<li>Privada: esta permite realizar peticiones de escritura.</li>
</ul>

<p>Por eso es importante para la seguridad tener en cuenta estos valores y cambiarlos si se considera necesario.</p>

<h2 id="ventajas">Ventajas  </h2>

<ul>
<li>sencillez frente a la complejidad inherente a CMIP</li>
<li>su capacidad de simplificar la gestión de
la red  </li>
<li>permite la conversión de los protocolos</li>
<li>posee un diseño muy simple es fácil de implementar y comprender</li>
<li>en la actualidad es el sistema mas extendido</li>
<li>no asume muchos recursos</li>
</ul>

<h2 id="desventajas">Desventajas  </h2>

<ul>
<li>consume un considerable ancho de banda</li>
<li>seguridad muy baja</li>
<li>sus funciones suelen ser muy limitadas</li>
<li>suele ocupar cierta capacidad en el ancho de banda de la red.</li>
</ul>

<h2 id="mib">MIB  </h2>

<p>La Base de Información Gestionada (Management Information Base o MIB) es un tipo de base de datos que contiene información jerárquica, estructurada en forma de árbol, de todos los dispositivos gestionados en una red de comunicaciones. Es parte de la gestión de red definida en el modelo OSI. Define las variables usadas por el protocolo SNMP para supervisar y controlar los componentes de una red. Está compuesta por una serie de objetos que representan los dispositivos (como enrutadores y conmutadores) en la red. Cada objeto manejado en un MIB tiene un identificador de objeto único e incluye el tipo de objeto (tal como contador, secuencia o gauge), el nivel de acceso (tal como lectura y escritura), restricciones de tamaño, y la información del rango del objeto.</p>

<p>La MIB-II es la base de datos común para la gestión de equipos en internet. Esta MIB se ha actualizado bastantes veces. Originalmente estaba definida en el RFC 1213. Con la aparición de SNMPv2 y SNMPv3 esta MIB se amplió y se dividió en varios RFCs: RFC 4293, RFC 4022, RFC 4113, RFC 2863 y RFC 3418. Se apoya en el modelo de información estructurada definido en el RFC 1155, que establece las bases para definir la MIB, indica los tipos de objetos que se pueden usar y define el uso de ASN.1.</p>

<hr>

<p><strong>fuentes</strong></p>

<ul>
<li><a href="http://www.snmp.com/protocol/snmp_rfcs.shtml">RFCs</a></li>
<li><a href="http://es.wikipedia.org/wiki/Management_Information_Base">wikipedia</a></li>
<li><a href="http://principiatechnologica.com/2013/04/07/introduccion-a-snmp-protocolo-de-gestion-de-red-simple/">Introducción a SNMP – Protocolo de gestión de red “¿simple?” </a></li>
<li><a href="http://www.ramonmillan.com/tutoriales/snmpv3.php">SNMPv3 (Simple Network Management Protocol version 3)</a></li>
<li><a href="http://infraestructurayserviciosdered.blogspot.com.ar/2012/03/snmp.html">SNMP</a></li>
* 
</ul>]]></description><link>http://mostofreddy.com.ar/introduccion-a-snmp-protocolo-de-gestion-de-red-simple/</link><guid isPermaLink="false">ff750101-6339-4fb7-9628-6fc329272b57</guid><category><![CDATA[snmp]]></category><category><![CDATA[tcp/ip]]></category><category><![CDATA[gestion de red]]></category><category><![CDATA[mib]]></category><category><![CDATA[oid]]></category><category><![CDATA[snmp comunidad]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Fri, 19 Dec 2014 04:35:03 GMT</pubDate></item><item><title><![CDATA[Instalación y configuración de SSH]]></title><description><![CDATA[<p>El protocolo SSH (Secure Shell) es una herramienta que nos permite conectarnos a equipos remotos (Servidores en Producción) así mismo, nos da la capacidad de llevar a cabo tareas administrativas dentro del mismo como, activar o apagar servicios; también nos permite copiar datos de forma segura, gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. </p>

<h2 id="instalacion">Instalacion  </h2>

<p><strong>Debian/Ubuntu</strong></p>

<pre><code>sudo apt-get install ssh  
</code></pre>

<p><strong>CentOS/RedHat/Fedora</strong></p>

<pre><code>sudo yum install ssh  
</code></pre>

<h2 id="inciarydetenermanualmentedelservidorssh">Inciar y detener manualmente del servidor ssh  </h2>

<pre><code># inicio
$ /etc/init.d/ssh start

# apagado
$ /etc/init.d/ssh stop 

# reinicio
$ /etc/init.d/ssh restart 
</code></pre>

<h2 id="establecerconexinsshanuestroservidor">Establecer conexión SSH a nuestro servidor  </h2>

<p>Ir a la consola y escribir</p>

<pre><code># usando puerto default (22)
$ ssh usuario_remoto@ip_remota

# usando otro puerto (ej 4444)
$ ssh -p 4444 usuario_remoto@ip_remota
</code></pre>

<p>Luego nos pide la contraseña del usuario. La primera vez que nos conectemos a un servidor tarda un poco más y nos pide confirmación tecleando "yes" con todas sus letras, las subsiguientes ya no. Sabemos que estamos conectados porque el prompt cambia y aparece en lugar del nombre de nuestro host el nombre del host remoto. </p>

<h2 id="evitarquenospidaelpasswordcadavez">Evitar que nos pida el password cada vez  </h2>

<p>Siempre que conectemos a un ordenador remoto con SSH nos va a pedir el password de acceso para asegurarse de que tenemos permisos. Hay una forma de evitar que nos pida el password siempre haciendo que el ordenador remoto confíe en nosotros. Para ello hemos de generar un par de claves DSA que se usarán en la relación de confianza: </p>

<pre><code>$ ssh-keygen -t rsa
</code></pre>

<p>Una vez generada la copiamos al usuario del ordenador remoto con el que queremos mantener la relación de confianza usando el comando ssh-copy-id. Este es un ejemplo del uso con la salida del programa: </p>

<pre><code>$ ssh-copy-id usuario_remoto@ip_remota

Now try logging into the machine, with "ssh 'usuario_remoto@192.168.0.1'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
</code></pre>

<p>Ahora solo hay que arrancar el agente SSH para que recuerde nuestra contraseña. Nos pregunta la contraseña y ahora ya podemos acceder al ordenador remoto sin tener que escribir el password cada vez. </p>

<pre><code>$ ssh-add
</code></pre>

<h2 id="configuracin">Configuración  </h2>

<p>La ubicación de los ficheros <strong>referentes al servidor</strong> se encuentran en la ruta: /etc/ssh/ </p>

<ul>
<li><strong>moduli</strong>: Contiene grupos Diffie-Hellman usados para el intercambio de la clave Diffie-Hellman que es imprescindible para la construcción de una capa de transporte seguro. </li>
<li><strong>ssh_config</strong>: El archivo de configuración del sistema cliente SSH por defecto. Este archivo se sobrescribe si hay alguno ya presente en el directorio principal del usuario</li>
<li><strong>sshd_config</strong>: El archivo de configuración para el demonio sshd</li>
<li><strong>ssh<em>host</em>dsa_key</strong>: La clave privada DSA usada por el demonio sshd</li>
<li><strong>ssh<em>host</em>dsa_key.pub</strong>: La clave pública DSA usada por el demonio sshd</li>
<li><strong>ssh<em>host</em>rsa<em>key</em></strong>: La clave privada RSA usada por el demonio sshd para la versión 2 del protocolo SSH.
_ *ssh<em>host</em>rsa<em>key.pub</em>_: La clave pública RSA usada por el demonio sshd para la versión 2 del protocolo SSH. </li>
</ul>

<p>La ubicación de los ficheros <strong>referentes al cliente</strong> se encuentran almacenados en el directorio de trabajo de cada usuario:</p>

<p>Ejemplo: <code>/home/miusuario/.ssh/</code></p>

<ul>
<li><strong>identity.pub</strong>: La clave pública RSA usada por ssh para la versión 1 del protocolo SSH.</li>
<li><strong>known_hosts</strong>: Este archivo contiene las claves de host DSA de los servidores SSH a los cuales el usuario ha accedido. Este archivo es muy importante para asegurar que el cliente SSH está conectado al servidor SSH correcto. </li>
</ul>

<h3 id="configuracindeficheroetcsshsshd_config">Configuración de fichero /etc/ssh/sshd_config</h3>

<p><strong>Cambiando el puerto</strong></p>

<p>SSH tiene asignado por defecto el puerto 22, esto es algo que conocen todos nuestros posibles atacantes , por lo que es una buena idea cambiarlo. Se recomienda usar un puerto cualquiera por encima del 1024, así que usted puede elegir el que quiera. Ej:</p>

<pre><code>Port 59345  
</code></pre>

<p><strong>Protocolos ssh</strong></p>

<p>La versión 1 de openSSH hace uso de varios algoritmos de cifrado de datos mas sin embargo, algunos de estos algoritmos han dejado de ser mantenidos por sus creadores y por lo tantopresenta serios huecos de seguridad que potencialmente permite a un intruso insertar datos en el canal de comunicación. Para evitar el uso del protocolo 1 y sus posibles ataques a este, basta con indicar que solo admita comunicaciones de ssh basadas en el protocolo 2. </p>

<pre><code>Protocol 2  
</code></pre>

<p><strong>Denegar acceso a usuario root</strong></p>

<p>Este es quizá el parámetro mas importante de seguridad que podemos indicar para blindar nuestro servidor. Una manera de deshabilitar el logeo al sistema a través de la cuenta de root es poner en 'no' la variable PermitRootLogin , con esto el usuario root no tendrá permiso de acceder mediante ssh y por lo tanto cualquier intento de ataque directo a root será inútil. Con esto siempre tendremos que ingresar como un usuario normal y ya estando adentro entonces mediante un <code>su -</code> cambiarnos a la cuenta de root. </p>

<pre><code>PermitRootLogin no  
</code></pre>

<p><strong>Tiempo para hacer login</strong></p>

<p>Aqui le podemos indicar el tiempo que tiene un usuario para hacer login correctamente antes de que se le cierre automáticamente la sesión</p>

<pre><code>LoginGraceTime 20  
</code></pre>

<p><strong>Restringiendo usuarios e ips</strong></p>

<p>Con esta opción no solo podemos decir que usuarios tendrán acceso, sino también desde que IP podrán conectar (descartando las otras) sea pública o privada. En el ejemplo estaríamos dando acceso al usuario "admin" desde "cualquier lugar", al usuario "local" solamente si conecta desde la IP 192.168.1.151 (LAN) y al usuario "remote" solamente desde la ip 85.46.127.23 (WAN)</p>

<pre><code>AllowUsers admin local@192.168.1.151 remote@85.46.127.23  
</code></pre>

<p><strong>Cantidad máxima de intentos al loguearse</strong></p>

<p>Esta opción nos permite introducir un numero máximo de intentos de login antes de que el servidor le de una patada y cierre la conexión. Esto nos permitirá aumentar nuestras defensas ante posibles ataques por fuerza bruta, ya sean scripts automatizados o algún hacker juguetón. Que valor poner ya depende de cada uno. Para que sea realmente efectivo yo no pondría más de 2 intentos.</p>

<pre><code>MaxAuthTries 2  
</code></pre>

<p><strong>Cantidad de sesiones simultáneas</strong></p>

<p>Esta opción nos permite indicar cuantas sesiones puede haber conectadas simultáneamente por SSH. Depende de las necesidades de cada uno.</p>

<pre><code>MaxStartups 2  
</code></pre>

<hr>

<h4 id="fuentes">fuentes:</h4>

<ul>
<li><a href="http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m5/instalacin_de_servidor_de_ssh.html">Instalación de servidor de SSH</a></li>
<li><a href="http://www.taringa.net/posts/linux/8966113/Montar-Servidor-SSH-en-Linux-Ubuntu.html">Montar Servidor SSH en Linux [Ubuntu]</a></li>
<li><a href="http://porelamorderoot.net/index.php/seguridad/17-tutorial-configurar-servidor-ssh-en-ubuntu-server-administracion-remota">[TUTORIAL] Configurar servidor SSH en Ubuntu Server (Administración Remota)</a></li>
<li><a href="http://www.guia-ubuntu.com/index.php?title=Servidor_ssh">Servidor ssh</a></li>
</ul>]]></description><link>http://mostofreddy.com.ar/instalacion-y-configuracion-de-ssh/</link><guid isPermaLink="false">91957346-d534-430d-bb8f-c4db57fcfffa</guid><category><![CDATA[ssh]]></category><category><![CDATA[scp]]></category><category><![CDATA[remote login]]></category><category><![CDATA[config ssh]]></category><category><![CDATA[sshd]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Fri, 19 Dec 2014 03:24:32 GMT</pubDate></item><item><title><![CDATA[Sistemas & Fotografía - #1]]></title><description><![CDATA[<p>Algunas notas sobre sistemas y fotografía que me interesaron durante estos dias</p>

<p><strong>Sistemas</strong></p>

<ul>
<li><a href="http://geekytheory.com/las-9-cosas-mas-dificiles-que-tienen-que-hacer-los-desarrolladores/">Las 9 cosas más difíciles que tienen que hacer los desarrolladores</a></li>
<li><a href="http://picodotdev.github.io/blog-bitix/2014/12/8-plus-libros-para-mejorar-como-programadores/">8+ libros para mejorar como programadores</a></li>
<li><a href="http://derickrethans.nl/code-coverage.html">Code Coverage: The Present</a></li>
<li><a href="https://www.squizlabs.com/php-codesniffer/2.0.0-released">PHP_CodeSniffer 2.0.0 released</a></li>
<li><a href="http://www.sitepoint.com/analyzing-php-project-jenkins/">Analyzing a PHP Project with Jenkins</a></li>
<li><a href="http://culttt.com/2014/12/10/modules-domain-driven-design/">What are Modules in Domain Driven Design?</a></li>
<li><a href="http://ubunlog.com/ubuntu-core-la-apuesta-de-ubuntu-en-la-nube/">Ubuntu Core, la apuesta de Ubuntu en la Nube</a></li>
<li><a href="http://webadictos.com/2014/12/11/here-maps-para-android/">HERE Maps ya está disponible gratis para Android</a></li>
<li><a href="http://www.canal-ar.com.ar/21015-Argentina-baja-tres-lugares-en-el-indice-TIC-de-la-UIT.html">Argentina baja tres lugares en el índice TIC de la UIT</a></li>
<li><a href="http://css-tricks.com/design-considerations-text-images/">Design Considerations: Text on Images</a></li>
<li><a href="http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543">Token-Based Authentication With AngularJS &amp; NodeJS</a></li>
<li><a href="http://picodotdev.github.io/blog-bitix/2014/12/8-plus-libros-para-mejorar-como-programadores/">8+ libros para mejorar como programadores</a></li>
<li><a href="https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md">PSR-5: PHPDoc</a></li>
<li><a href="http://www.ticbeat.com/tecnologias/machine-el-gran-proyecto-de-hp-para-revolucionar-la-computacin/">The Machine, el gran proyecto de HP para revolucionar la computación</a></li>
<li><a href="http://cloud.ticbeat.com/pydio-una-alternativa-open-source-dropbox-para-la-empresa/">Pydio: una alternativa open source a Dropbox para la empresa</a></li>
</ul>

<p><strong>Fotografía</strong></p>

<ul>
<li><a href="http://altfoto.com/2014/11/primeras-reglas-fotograficas">10 fotógrafos de National Geographic cuyas imágenes cambiaron sus vidas</a></li>
<li><a href="http://www.thenuproject.com/">The NU Project</a></li>
<li><a href="http://www.blogdelfotografo.com/ideas-creativas-para-fotografiar-tu-peque/">17 Ideas Creativas Para Fotografiar a Tu Peque</a></li>
<li><a href="http://time.com/3572139/time-top-10-photos-2014/">TIME Picks the Top 10 Photos of 2014</a></li>
<li><a href="http://altfoto.com/2014/12/muere-michel-du-cille-fotografo-ganador-tres-premios-pulitzer">Muere Michel du Cille, el fotógrafo ganador de tres premios Pulitzer</a></li>
<li><a href="http://www.xataka.com/fotografia/tecnica-y-creatividad-para-amantes-de-la-fotografia-en-blanco-y-negro">Técnica y creatividad para amantes de la fotografía en blanco y negro</a></li>
<li><a href="http://www.blogdelfotografo.com/20-trucos-color-fotografia/">20 Trucos Para Jugar con el Color en tus Próximas Fotografías</a></li>
</ul>]]></description><link>http://mostofreddy.com.ar/miscelaneas-1/</link><guid isPermaLink="false">72058842-b4fe-4873-806a-39cf6d6ccc21</guid><category><![CDATA[fotografia]]></category><category><![CDATA[sistemas]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Fri, 19 Dec 2014 01:01:51 GMT</pubDate></item><item><title><![CDATA[Software Engineering: Cohesión]]></title><description><![CDATA[<p>Del latín cohaesum, cohesión es la acción y efecto de adherirse o reunirse las cosas entre sí. La cohesión, por lo tanto, implica algún tipo de unión o enlace.</p>

<p>En sistemas, cohesión hace referencia a la forma en que agrupamos unidades de software (modulos, subrutinas, métodos, etc) en una unidad mayor. Por ejemplo, la forma en la que agrupamos funciones en una librería, o la forma en la que agrupamos métodos en una clase, o la forma en la que agrupamos clases en una librería, etc...</p>

<p>Otra definición que encontré: "La cohesión tiene que ver con que cada módulo del sistema se refiera a un único proceso o entidad. A mayor cohesión, mejor: el módulo en cuestión será más sencillo de diseñar, programar, probar y mantener."</p>

<p>Una buena regla en el desarrollo de software es buscar una <strong>cohesión alta</strong>.</p>

<h2 id="tiposdecohesin">Tipos de cohesión</h2>

<p>(fuente <a href="http://es.wikipedia.org/wiki/Dise%C3%B1o_estructurado">wikipedia</a>)</p>

<ul>
<li><strong>Cohesión funcional</strong>: Los elementos del módulo están relacionados en el desarrollo de una única función.</li>
<li><strong>Cohesión secuencial</strong>: Un módulo realiza distintas tareas en secuencia, de forma que las entradas de cada tarea son las salidas de la tarea anterior. No es una mala cohesión si las tareas implicadas no son muy complejas y requieren pocas líneas de código.</li>
<li><strong>Cohesión comunicacional</strong>: El módulo realiza actividades paralelas usando los mismos datos de entrada y salida. Como en el caso anterior, tampoco se trata de un mal tipo de cohesión si las tareas son relativamente sencillas.</li>
<li><strong>Cohesión procedimental</strong>: El módulo tiene una serie de funciones relacionadas por un procedimiento efectuado por el código (a modo de biblioteca). Es similar a la secuencial, pero puede incluir el paso de controles. Será deseable que las funciones estén relacionadas o realicen tareas dentro del mismo ámbito (p.e. la biblioteca string.h de C contienen funciones para operar con cadenas de caracteres).</li>
<li><strong>Cohesión temporal</strong>: Los elementos del módulo están implicados en actividades relacionadas con el tiempo.</li>
<li><strong>Cohesión lógica</strong>: Las actividades que realiza el módulo tienen la misma categoría. Esto es, es como si se tuvieran partes independientes dentro del mismo módulo.</li>
<li><strong>Cohesión casual o coincidente</strong>: Los elementos del módulo contribuyen a las actividades relacionándose mutuamente de una manera poco significativa. Este tipo de cohesión viola el principio de independencia y de caja negra de los módulos.</li>
</ul>

<p>Les dejo una imagen que encontre donde muestra los factores que afectan la cohesion (<a href="http://www.ongei.gob.pe/publica/metodologias/Lib5081/caP0642.htm">fuente</a>)</p>

<p><img src="http://mostofreddy.com.ar/content/images/2014/12/IMG00077.GIF" alt=""></p>]]></description><link>http://mostofreddy.com.ar/basicos-1-cohesion/</link><guid isPermaLink="false">ef018a4d-cb68-4560-a425-509296fce2b6</guid><category><![CDATA[ingenieria de software]]></category><category><![CDATA[cohesion]]></category><category><![CDATA[acoplamiento]]></category><category><![CDATA[poo]]></category><category><![CDATA[Software Engineering]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Sat, 13 Dec 2014 17:25:18 GMT</pubDate></item><item><title><![CDATA[Como compilar NodeJS en Ubuntu y CentOS]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2014/12/nodejs.png" alt=""></p>

<p><a href="http://nodejs.org/"><strong>Node.js</strong></a> es un entorno de programación en la capa del servidor basado en el lenguaje de programación ECMAScript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el motor V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web.2 . Fue creado por Ryan Dahl en 2009 y su evolución está apadrinada por la empresa Joyent, que además tiene contratado a Dahl en plantilla.3 4 (fuente: <a href="http://es.wikipedia.org/wiki/Node.js">wikipedia</a>)</p>

<p>Todas las distros de Linux tienen en sus repositorios una versión de nodejs para descargar, lo que pasa a veces, es que esa versión esta desactualizada y es allí cuando debemos compilar.</p>

<p>Los pasos son idénticos en cualquier distribución de linux</p>

<pre><code>$ wget http://nodejs.org/dist/v0.10.33/node-v0.10.33.tar.gz
$ tar xzvf node-v* &amp;&amp; cd node-v*
$ ./configure
$ make
$ sudo make install
</code></pre>

<p>Para comprobar su correcta instalación podemos correr los siguientes comandos</p>

<pre><code>$ node --version
$ npm --version
</code></pre>]]></description><link>http://mostofreddy.com.ar/como-compilar-nodejs-en-ubuntu-y-centos/</link><guid isPermaLink="false">e99d1dcb-1f7e-48af-8e3b-a7b709ec928b</guid><category><![CDATA[linux]]></category><category><![CDATA[nodejs]]></category><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Thu, 11 Dec 2014 15:40:54 GMT</pubDate></item><item><title><![CDATA[Programas de fotografía en Ubuntu Open Source]]></title><description><![CDATA[<p>Bueno, mi primer post sobre fotografía!</p>

<p>Como buena persona de sistemas que soy, tengo todas las PCs con alguna distro de Linux y obviamente ninguna Windows. Esto, en el mundo de la fotografía, es todo un problema ya que los dos programas principales (<a href="http://www.adobe.com/la/products/photoshop.html">Photoshop</a> y <a href="http://www.adobe.com/la/products/photoshop-lightroom.html">Ligthroom</a>) solo estan disponibles en Windows. </p>

<p>Ok, algunos dirán que con wine o playonlinux alguna de las versiones se puede instalar, lo he probrado sin muy buen resultado y por ese motivo empece a buscar alguna alternativa, existen varias pero por temas de tiempo solo estaré probando dos.</p>

<h2 id="gthumb">Gthumb</h2>

<p><img src="http://mostofreddy.com.ar/content/images/2014/12/GThumb_Logo-svg.png" alt=""></p>

<p><a href="http://gthumb.sourceforge.net/">gthumb</a> es un visor de images muy liviano con el cual podremos visualizar todas nuestras fotos en raw sin instalar ninguna otra librería. Lo podemos instalar mediante su ppa de la siguiente forma:</p>

<pre><code>$ sudo add-apt-repository ppa:webupd8team/gthumb
$ sudo apt-get update
$ sudo apt-get install gthumb
</code></pre>

<h2 id="darktable">Darktable</h2>

<p><img src="http://mostofreddy.com.ar/content/images/2014/12/photo.jpg" alt=""></p>

<p><a href="http://www.darktable.org/">Darktable</a> vendría a reemplaza a Ligthroom de Adobe. También lo instalamos mediante su ppa:</p>

<pre><code>$ sudo add-apt-repository ppa:pmjdebruijn/darktable-release
$ sudo apt-get update
$ sudo apt-get install darktable
</code></pre>

<h2 id="otros">Otros</h2>

<p>Hay muchos otros programas que por el momento no estare probando pero les dejo la lista y luego si quieren me cuentan:</p>

<ul>
<li><a href="http://www.gimp.org/">Gimp</a> + ufraw (reemplaza a Photoshop)</li>
<li><a href="http://f-spot.org/">F-Spot</a> (muy simple para retocar basicamente y organizar)</li>
<li><a href="http://rawtherapee.com/">RawTherapee</a> (editor de raw, parece muy completo)</li>
<li><a href="https://www.digikam.org/">digiKam</a> (para organizar las fotos y ediciones simples)</li>
<li><a href="http://www.kornelix.com/fotoxx.html">Fotoxx</a> (retoques básicos)</li>
<li><a href="https://www.cybercom.net/~dcoffin/dcraw/">DCRAW</a> (revelar ficheros RAW desde línea de comandos</li>
<li><a href="http://www.fotolinux.org/category/fotografia-linux/">Link</a> donde dindica como instalar lightroom y photoshop en linux</li>
</ul>]]></description><link>http://mostofreddy.com.ar/programas-de-fotografia-en-ubuntu/</link><guid isPermaLink="false">6afd1769-d38b-4c23-8ff3-1b6615c4e6b4</guid><category><![CDATA[linux]]></category><category><![CDATA[ubuntu]]></category><category><![CDATA[photo]]></category><category><![CDATA[fotografia]]></category><category><![CDATA[photoshop]]></category><category><![CDATA[lightroom]]></category><category><![CDATA[darktable]]></category><category><![CDATA[rawtherapee]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Thu, 11 Dec 2014 00:33:25 GMT</pubDate></item><item><title><![CDATA[Cómo configurar VIM como editor por defecto]]></title><description><![CDATA[<p>Es una tonteria pero no me gusta nano y siempre debe googlearlo para encontrar el comando..</p>

<pre><code>sudo update-alternatives --config editor  
</code></pre>]]></description><link>http://mostofreddy.com.ar/como-configurar-vim-como-editor-por-defecto/</link><guid isPermaLink="false">bd913dda-8dcb-4188-87f1-02d25bdfdcef</guid><category><![CDATA[linux]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Sun, 07 Dec 2014 20:51:05 GMT</pubDate></item><item><title><![CDATA[Como compilar PHP correctamente]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2014/12/c0d23d2d6769e53e24a1b3136c064577-php_logo.png" alt=""></p>

<p>Por lo gral todos solemos instalar PHP desde los repositorios de alguna distro de Linux o usar algún paquete tipo XAMP en Windows, pero pocos son lo que compilamos PHP. </p>

<p>Veamos, ¿tiene alguna ventaja compilarlo? todo depende que tipo de proyecto tengas, en que servidor lo vas a correr, etc. De todas formas nunca esta mal saber un poquito mas de las herramientas y tecnologías que usamos a diario.</p>

<p>Personalmente siempre compilo PHP, suelo usar varias distros y cada una lo instala en el lugar que se le ocurre, al compilarlo me aseguro que sin importar en que servidor este, siempre estará en el mismo directorio y con los módulos que necesito. Otra ventaja que le encuentro es que puedo tener varias versiones instaladas de PHP en el mismo servidor para poder probar compatiblidades de alguna librería que este desarrollando. </p>

<p>Bueno, veamos como hacerlo:</p>

<p>Primero debemos descargar la última versión desde el <a href="http://php.net/downloads.php">site de PHP</a> (en este caso la última es la 5.6.3) y descomprimimos el archivo</p>

<pre><code>tar -xzvf /path/to/file/php-5.6.3.tar.gz  
cd php-5.6.3  
</code></pre>

<p>Ahora viene la magia, son tres comandos básicos:</p>

<pre><code>./configure
make  
sudo make install  
</code></pre>

<p>El comando <code>./configure</code> prepara todo para la compilación, si lo corremos de esa forma toma todos los valores por defecto, pero hay uno que deberíamos cambiar:</p>

<ul>
<li>prefix: indica en que directorio se compilará php</li>
</ul>

<p>Luego están las opciones para indicar que módulos queremos habilitar y cuales no. Lo que suelo hacer es utilizar el flag <code>--disable-all</code> que desabilita todos y luego voy habilitando el que necesito.</p>

<p>Para habilitar un módulo debemos usar <code>--enable-xxx</code> o <code>--with-xxx</code> según corresponda o <code>--disable-xxx</code> o <code>--without-xxx</code> para desabilitarlo.</p>

<p>El comando nos quedaría así:</p>

<pre><code>./configure \
    --prefix=/usr/local/php/php_5.6.3 \
    --with-apxs2=/usr/local/apache2/bin/apxs \
    --disable-all \
    --enable-session \
    --enable-libxml \
    --enable-dom \
    --enable-filter \
    --enable-pdo \
    --enable-phar \
    --enable-simplexml \
    --enable-soap
    ...
</code></pre>

<p><strong>Tip:</strong> si correcmos <code>./configure --help</code> nos mostrará todos los flagas que estan permitidos.</p>

<p>Si solo queremos instalar php par que corra en consola podemos utilizar </p>

<pre><code>sudo make install-cli  
</code></pre>

<p>Hay muchas opciones que se pueden configurar, todo depende de lo que uno necesite.</p>]]></description><link>http://mostofreddy.com.ar/como-compilar-php-correctamente/</link><guid isPermaLink="false">e7714ae6-eb7e-44da-9cbc-f8be04fe56c3</guid><category><![CDATA[php]]></category><category><![CDATA[howto]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Sun, 07 Dec 2014 20:19:10 GMT</pubDate></item><item><title><![CDATA[Instalar SqlDeveloper en Ubuntu]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2014/Oct/oracle-sql-developer.png" alt=""></p>

<p>SQLDeveloper es una de las mejores herramientas para manejar bases de datos Oracle desde Linux.</p>

<p>Su instalación es bastante sencilla pero con algunos temitas.</p>

<p><strong>Paso 1</strong></p>

<p>Descargar el .rpm desde la página de <a href="http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html">oracle</a></p>

<p><strong>Paso 2</strong></p>

<p>Transformar el archivo .rpm a .deb, para ese usaremos un comando llamado alien</p>

<pre><code>sudo apt-get install alien

cd [path_to_sqldeveloper_rpm]

sudo alien --scritps sqldeveloper-[..].rpm
</code></pre>

<p><strong>Paso 3</strong></p>

<p>Instalar</p>

<pre><code>sudo dpkg -i sqldeveloper[...].deb  
</code></pre>

<p><strong>Paso 4</strong></p>

<p>Configurar el path de Java SDK, esto se realiza en la variable SetJavaHome del archivo de configuración</p>

<pre><code>sudo vim /opt/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf

SetJavaHome /usr/lib/jvm/java-7-oracle  
</code></pre>

<p><strong>Paso 5</strong></p>

<p>En mi caso, tambien tuve que parchear el ejecutable agregando la siguiente linea al principio del script</p>

<pre><code>sudo vim /opt/sqldeveloper/sqldeveloper/bin/sqldeveloper

unset -v GNOME_DESKTOP_SESSION_ID  
</code></pre>]]></description><link>http://mostofreddy.com.ar/instalar-sqldeveloper-en-ubuntu/</link><guid isPermaLink="false">16b4e5a7-dc3d-4f0e-9cd1-f624e1da77cb</guid><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Fri, 24 Oct 2014 14:38:15 GMT</pubDate></item><item><title><![CDATA[How to - Ghost Update]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2014/Aug/ghost.png" alt=""></p>

<p>En este artículo vamos a ver como actualizar la plataforma de blogging Ghost.</p>

<p>En el mes de Agosto, el equipo de Ghost lanzo la versión 0.5, la actualización mas grande hasta el momento, las 3 más importantes (<a href="https://gist.github.com/ErisDS/b7aa1a6e954f415cbb5b">lista completa</a>)</p>

<ul>
<li>Soporte multiusuario</li>
<li>JSON API</li>
<li>Se reescribio el administrador en EmberJS</li>
</ul>

<h2 id="comoactualizar">Como actualizar</h2>

<p>La guía oficial se puede encontrar en el <a href="http://support.ghost.org/how-to-upgrade">site de soporte</a>, pero en resumen hay que seguir los siguientes pasos:</p>

<p>1) Realizar backup</p>

<pre><code>tar -zcvf ghost.tar.gz ghost  
</code></pre>

<p>Entrar a <code>/ghost/debug</code> y realizar backup de la base de datos</p>

<p>2) Descargar la nueva versión</p>

<pre><code>wget https://ghost.org/zip/ghost-0.5.0.zip  
</code></pre>

<p>3) Descomprimir  </p>

<pre><code>unzip ghost-0.5.0.zip  
</code></pre>

<p>4) Borrar los siguientes archivos de la versión que tengamos intalada  </p>

<pre><code>rm index.js  
rm packages.json  
rm core -Rf  
rm content/themes/casper -rf  
</code></pre>

<p>5) Copiar los nuevos archivos  </p>

<pre><code>cp ghost-0.5.0/index.js ghost/index.js  
cp ghost-0.5.0/packages.json ghost/packages.json  
cp ghost-0.5.0/core ghost/core -Rf  
cp ghost-0.5.0/content/themes/casper ghost/content/themes/casper  
</code></pre>

<p>6) Instalar  </p>

<pre><code>npm install --production  
</code></pre>

<p>7) Reiniciar ghost</p>]]></description><link>http://mostofreddy.com.ar/how-to-ghost-update/</link><guid isPermaLink="false">a97b2eaf-d1d1-4f6d-a241-3ce7b466d8dc</guid><category><![CDATA[tryghost]]></category><category><![CDATA[ghost]]></category><category><![CDATA[blogging]]></category><category><![CDATA[emberjs]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Sat, 16 Aug 2014 13:16:16 GMT</pubDate></item><item><title><![CDATA[Instalar servidor MySQL en CentOS 6.x desde repositorios]]></title><description><![CDATA[<p><img src="http://mostofreddy.com.ar/content/images/2014/Aug/mysql_logo.png" alt=""></p>

<p>Para instalar el servidor Mysql en CentOS hay que ejecutar el siguiente comando por consola</p>

<pre><code>yum install mysql mysql-server  
</code></pre>

<p>Luego iniciamos el servicio  </p>

<pre><code>service mysqld start  
</code></pre>

<p>Posteriormente, procedemos a configurarlo con el script que provee Mysql  </p>

<pre><code>mysql_secure_installation  
</code></pre>

<p>Por último, hacemos que el servicio se ejecute automáticamente  </p>

<pre><code>chkconfig –level 2345 mysqld on  
</code></pre>]]></description><link>http://mostofreddy.com.ar/instalar-servidor-mysql-en-centos-6-x-desde-repositorios/</link><guid isPermaLink="false">66e850b8-1160-49d3-98d3-f4956ba871b6</guid><category><![CDATA[linux]]></category><category><![CDATA[mysql]]></category><category><![CDATA[base de datos]]></category><category><![CDATA[ddbb]]></category><dc:creator><![CDATA[Federico Lozada Mosto]]></dc:creator><pubDate>Sat, 16 Aug 2014 11:38:01 GMT</pubDate></item></channel></rss>