VERSION ACTUAL :

Inicio de sesión

Raulito el Friki

Raulito El Friki

COMENTARIOS

EN LINEA

Hay actualmente 0 usuarios conectados.

NUEVOS

  • flolivar
  • k sengoku
  • Kurma
  • fedora2015_es
  • joe.solo

Agregador de canales de noticias

Descargar ISO 27001 – ISO 9001 – ISO 26000

elj0na - Lun, 02/16/2015 - 21:50

Comparto con ustedes las siguientes ISO

ISO 27001 Information technology – Security techniques – Information security management systems – Requirements

ISO 9001 Quality management systems

ISO 26000 Socially responsible


El cerdo y la gallina

Jose Salgado - Lun, 02/16/2015 - 18:05

animal

Hablamos mucho de sinérgias, acuerdos, consensos, pero hay un detalle importante que hay que saber distinguir, no siempre ambas partes se juegan lo mismo. Suele ser normal que alguien quiera lanzar una asociación o proyecto y le salgan personas por todos los lados diciendo que fantástico, pero a la hora de la verdad, cuando hay que bajar a las trincheras, acaban siendo cuatro gatos quienes trabajan mientras el resto ejercen el nombre arte de opinar desde la grada.

He vivido en mis carnes más de una vez este fenómeno, y lo he experimentado en diferentes contextos: asociacionismo de barrio, sindicatos, grupos de profesionales, desarrollando software libre, y al final, son siempre un cinco por ciento que sacan el trabajo adelante y unos pocos quienes quieren ponerse la medalla.

Es por esto que cada vez veo con mejores ojos distintos niveles de participación, y en consecuencia, de poder de decisión. Si un grupo realiza todo el trabajo, no tiene sentido que todos puedan decidir -si opinar-

Si entramos en el mundo de la emprendeduría, no es suficiente con ser socio, hay que bajar a las trincheras y pelear en el barro, en el día a día, donde cada pequeña victoria tiene el sabor de guerra ganada. Socios que simplemente acuden a las reuniones a decir lo que piensan, criticar lo que se ha hecho, y aportar ideas que más que acelerar el crecimiento y expansión, consume recursos internos dejando al equipo bloqueado, no interesan como socios activos. Elaborar una estructura donde haya distintos niveles de socios, y de como se reparte el trabajo y las decisiones, es la parte más importante de cualquier tipo de aventura donde intervienen más de dos personas.

Y para esta teoría, vuelvo a ejemplificar con el proyecto de huevos fritos con bacon. Se han de unir dos perfiles, gallinas y cerdos, ¿pero adivinar quién pone más de su parte para que el plato salga adelante?

Película: Animal Farm

El cerdo y la gallina ha sido escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Fricciones, retrasos y poder de decisión

Jose Salgado - Dom, 02/15/2015 - 18:05

decidir

El tiempo es un factor vital en cualquier negocio, quizás por eso decimos que el tiempo eso oro, y perder el tiempo es algo que no debería de aceptarse. Para desgracia nuestra y de todos los sistemas de gestión de recursos humanos, el tiempo siempre se escabulle entre los dedos de forma inevitable. El café que nos tomamos, la charla que tenemos sentados en la mesa de un compañero, etc… Pero por mucho que nos moleste estos minutos no orientados a la productividad pura, yo creo que son necesarios en su justa medida para crear un entorno informal adecuado y que la información -formal y no formal- fluya dentro de la organización.

El verdadero devorador de tiempo, que afecta tanto a la productividad como a la moral, es el que ocurre cuando las respuestas se retrasan de forma injustificada o bien, se se escala la decisión a un tercero para obtener el visto bueno. ¿En cuantas ocasiones hemos enviado una pregunta, bien redactada y escrita con educación, y no hemos tenido respuesta?, al no tener respuesta tenemos que volver a enviar otro mensaje, llamar por teléfono y que la respuesta sea la clásica: si, lo he visto y me lo estoy mirando. Y en este proceso contemplativo pueden pasar días o semanas.

Una vez superas este escollo y obtienes la información, toca negociar los detalles, que suele caer en una de estas dos categorías: o bien ha de preguntar a un superior si se puede hacer, o bien espera hasta el final para preguntar. En ambos casos te ves sumido de nuevo en el proceso de perseguir a un proveedor, patrocinador o cliente hasta tener una respuesta, que en caso de ser negativa, te obliga a iniciar el proceso desde cero otra vez, con el cansancio mental que esto conlleva.

Me fascina, y lo hace desde un punto de vista puro de RRHH, como es posible que una persona que está al cargo de un proceso, producto o departamente no sea capaz de decir nada en absoluto y tenga que consultarlo todo. ¿No se dan cuenta que es una pérdida de tiempo y dinero, para el posible cliente y para ellos?. Si tu equipo es bueno, deja que tome decisiones, seguro que alguna vez se equivocará, pero seguro que si tiene un buen mentoring aprenderá y todos ganaremos en el proceso.

Realmente no me cabe en la cabeza que personas que están en lugares para ocupar una silla sin decir ni si, ni no, ni todo lo contrario. Me agota mentalmente, acaba con mi paciencia, y lo más habitual es que busque una empresa alternativa que me ofrezca el servicio, me da igual que sea más cara, pero me da poca confianza una empresa que no da poder a sus empleados en el proceso de tomar decisiones y tienen a los clientes a la espera de una aparición divina para poder decidir.

Película: Sophie’s Choice

Fricciones, retrasos y poder de decisión ha sido escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Haga su sitio web de su sucursal virtual

E-ais - Sáb, 02/14/2015 - 22:34
Para muchas empresas los espacios en línea que crean deben ser polivalente; que necesitan para crear la cultura de la marca y la autonomía es de la comunidad, pero también tienen que dar lugar a conversiones de ventas. Es por esta razón que su sitio web, no su página de Facebook, debe ser el foco central de la estrategia online y social. Su sitio web tiene dos características muy e-aisnoreply@blogger.com0

Liberado jQuery Archive List 3.0

Skatox - Sáb, 02/14/2015 - 12:54

Luego de mas de un año sin poder dedicarme a este proyecto personal, he podido liberar la versión 3.0 de jQuery Archive List un widget de WordPress para mostrar el historial de sitio de una mejor manera y con efectos de jQuery. El salto a la versión 3, es debido a grandes cambios en el código de Javascript y en algunas cosas internas de plugin.

Entre las mejoras de esta nueva versión podrán encontrar:

  • Re-escritura completa del código Javascript, ahora ocupa menos espacio, código mas entendible y debería funcionar mas rápido.
  • Finalmente he agregado soporte para tipos de entradas personalizadas, así que puedes usar este widget si tienes tipos de contenido personalizados.
  • Agregué la clase active a los elementos que enlazan a la página actual.
  • Agregué el atributo de título a los enlaces para generar código HTML validado por la W3C.
  • Se agregó traducción al Holadés (gracias a Patrick Schreibing).
  • Se migró la selección de categorías al API de WordPress.
  • Se solucionó errores de exclusión de categorías.
  • Se solucionó el error de la ausencia de la clase expanded  en los meses (gracias to pjarts).
  • Se solucionó el error de no expandirse los meses al seleccionar algunas opciones.

Descárgalo desde el gestor de Plugins de WordPress o desde el sitio oficial de jQuery Archive List Widget. Y cualquier reporte o duda, no te olvides de reportarla en los foros de soporte de WordPress.

LVM extension on the fly

Vanished - Vie, 02/13/2015 - 09:55
Introducció: En aquesta entrada mostrarem com veure si una partició configurada amb LVM es ampliable i com ampliar-la. L'ampliació d'una partició LVM és transparent per al sistema i no afecta el funcionament de les aplicacions en funcionant.

LVM: LVM estructura el disc amb Physical Volumes que formen Volume Groups. Aquestos volume groups s'assginen en porcions com a Logical Volumes.

Extensió: Si volem extendre un logical volume (LV) el primer que haurem de revisar és si el volume group al que pertany el LV disposa d'espai lliure sense assignar.

[root@home ~]# vgdisplay
--- Volume group ---
VG Name datavg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 186.27 GB
PE Size 4.00 MB
Total PE 47684
Alloc PE / Size 25600 / 100.00 GB
-> Free PE / Size 22084 / 86.27 GB
VG UUID 3r9tDv-34d4-6jbK-yLAA-YWMS-6qrx-Lr4EpM

--- Volume group ---
VG Name sysvg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 5
Open LV 5
Max PV 0
Cur PV 1
Act PV 1
VG Size 136.44 GB
PE Size 32.00 MB
Total PE 4366
Alloc PE / Size 3213 / 100.41 GB
-> Free PE / Size 1153 / 36.03 GB
VG UUID gWILlV-9nHJ-ioac-1ckD-RRID-xU2U-meXs2O
Una forma més abreviada i fàcil de veure la informació si només volem ampliar un volum es la següent:
[root@home ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 1 6 0 wz--n- 136.44g 36.03g
VolGroup1 1 6 0 wz--n- 186.27.36g 86.27g
També podem revisar els Physical Volumes, en aquest cas és el mateix però podria haver varios physical volumes assignats a un volume group:
[root@home ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/cciss/c1d0p2 sysvg lvm2 a-- 136.44G 36.03G
/dev/cciss/c1d1p1 datavg lvm2 a-- 186.27G 86.27G
Revisem quina és la partició que necessita ser redimencionada.
[root@home ~]# df -h
Filesystem Size Used Avail Use% Mount
...
/dev/mapper/sysvg-data
83G 73G 6.0G 93% /data
...
També podem veure aquesta informació de la següent manera (aquest exemple ve d'una màquina diferent):
[root@home2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
LogVol00 VolGroup -wi-ao--- 3.91g
LogVol01 VolGroup -wi-ao--- 2.93g
LogVol02 VolGroup -wi-ao--- 5.88g
LogVol03 VolGroup -wi-ao--- 3.91g
LogVol04 VolGroup -wi-ao--- 16.00g
LogVol05 VolGroup -wi-ao--- 20.00g
u01 VolGroup1 -wi-ao--- 15.00g
u02 VolGroup1 -wi-ao--- 126.00g
u03 VolGroup1 -wi-ao--- 73.00g
u04 VolGroup1 -wi-ao--- 15.00g
u05 VolGroup1 -wi-ao--- 15.00g
u06 VolGroup1 -wi-ao--- 15.00g
Una volta que sabem quin logical volume es el que volem amplicar i comprovem que el volume group associat té espai lliure el redimencionem amb:
[root@home data]# lvextend -L +6G /dev/mapper/sysvg-data
Extending logical volume data to 91.41 GB
Logical volume data successfully resized
Una volta redimencionat extenem el sistema de fitxers per a que es puga utilitzar tota la partició.
[root@home data]# resize2fs /dev/mapper/sysvg-data
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/mapper/sysvg-data is mounted on /data; on-line resizing required
Performing an on-line resize of /dev/mapper/sysvg-data to 23961600 (4k) blocks.
The filesystem on /dev/mapper/sysvg-data is now 23961600 blocks long.
Una volta realitzat el extend podem veure el resultat amb lvs.

Enllaços: LVM Howto
LVM CentOS

Sigue el dinero

Jose Salgado - Jue, 02/12/2015 - 18:05

dinero

Celda J14-J4, este es el resultado de cualquier tipo de negocio, importación, exportación, ventas, industrial, legal o ilegal. Al final hay una celda en excel que nos da el beneficio final después de imputar todos los gastos de explotación, producción, amortización, financieros e impuestos.

Con la tecnología actual, es posible cruzar nuestros gastos con los ingresos de terceros, y de este modo tener un mapa fiscal bastante acertado de lo que está sucediendo en la economía. En teoría, si eso se hace correctamente podríamos radiografiar la sociedad y detectar fugas de capitales, dinero negro, y cualquier otro tipo de actividad.

Pero supongo que este tipo de control no interesa, ni a nosotros que más de una vez hemos pagado sin IVA, ni a los que pagan el IVA pero desvían el cuatro por ciento a sociedades pantallas, paraísos fiscales y cuentas opacas. La diferencia es que los que despistamos el IVA no alcanzamos ni por casualidad el importe de los segundos, y en el caso que estubiera equivocado, es dinero que se inyecta de nuevo en circulación creando y manteniendo empresas y trabajo -ilegal, pero trabajo al fin y al cabo-. El segundo, no genera el mismo efecto en la economía porque desaparece del sistema.

Con esto de la lista Falcine me vienen dos sentimientos encontrados, me fascina que hacienda persiga a todo currito y autónomo con una dureza que haría las envidias de la Gestapo, y estas personas -curiosamente influyentes- no solo no se les persiga, sino que se les de un plazo para regularizar su situación para no caer en delito fiscal.

Siguiendo con el razonamiento, si Hacienda no puede perseguirlos porque no tiene medios, habría que darles más medios. Es algo que me parece lógico. Y si resulta que las leyes están mal diseñadas, habría que cambiarlas porque lo que no tiene nombre es que el peso de la ley vaya en función de lo alto que estés en el escalafón social.

Sumado a todo esto, me parece que hablamos más que hacemos, y si encontramos que es indignante que existan cuentas opacas en Suiza, es cuestión de prohibir el tráfico de dinero a esos países. Pero claro, falta voluntad política para hacerlo. No se si es por el efecto en los mercados o el efecto en las personas que se suponen que son respetables, pero no se hace.

Es que para decir la verdad, estoy hasta el gorro de el estado y de hacienda. Estoy montando una empresa y pago por todo, incluso antes de facturar, los servicios que recibo por mis impuestos son cada vez menores -las ayudas por hijo que se supone que me tenían que pagar en el 2011 me las pagarán en el 2019- y me toca mucho la moral este tipo de casos.

Ya lo decían en una serie, olvídate de la política, olvídate de todo, sigue el dinero, quién lo tiene, como se mueve. Dime dónde lo vas a gastar y de quién lo vas a recaudar. El dinero, en al final, es el reflejo de todo. Mientras no me expliquen de forma clara y transparente -no como el recibo de la luz- lo que quieren hacer y sobretodo, los planes para hacerlo, ambos dos sectores: los respetables y el estado, tiene todo mi particular desprecio, unos por ladrones y otros por colaboradores necesarios.

Por cierto, y a nivel de curiosidad, buscar las portadas de los periódicos de todos los medios el día que se publicaron las listas, a ver si encontráis la noticia en alguna portada. En una sociedad que importa más el pijama de Belén Esteban que el mecanismo que han usado para defraudar cientos de miles de millones, es una sociedad condenada a ser esclava. Y por no extenderme, por esto mismo creo que el único camino para regenerarnos consiste en apostar todo lo que nos queda en educación, a ver si conseguimos una generación que sepa pensar, sea crítica y no se dedique a mirar el dedo cuando señalamos la luna.

Película: Catch Me If You Can

Sigue el dinero ha sido escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Algunos apuntes sobre Bash

HelloIT - Jue, 02/12/2015 - 10:41

bashHe querido recoger algunas notas de Bash scripting para no tener que correr a Google (o a cualquier página de StackExchange) cada vez que las dudas me asalten.

/usr/bin/env bash vs /usr/bin/bash

Leí en la siguiente página sobre las "mejores prácticas en Bash" acerca del uso de "#!/usr/bin/env bash" en lugar del habitual "#!/usr/bin/bash" o "#!/bin/bash". La idea es usar"#!/usr/bin/env bash" pues de esta manera lo que hacemos es buscar en el PATH dónde está bash, el cual es probable se encuentre en ubicaciones distintas en servidores diferentes. Ésto evitará problemas portando scripts a otros entornos. [Más info] [2]

#!/usr/bin/env bash
Corchete simple vs Doble corchete

Básicamente, ambos sirven para evaluar expresiones. "[" es un alias para el comando "test" y tanto uno como el otro están disponibles en el estándar POSIX. "[[" sin embargo es una keyword, no un programa, y se trata una versión mejorada para evaluar expresiones, únicamente disponible en Bash, KornShell y Zsh. Si no estás preocupado por la portabilidad de tus scripts con sistemas donde no cuentes con Bash, es mejor usar siempre el doble corchete, por la funcionalidad extra que aporta (posibilidad de usar && y ||, expresiones regulares, pattern matching, etc.). [Más info] [2]

La siguiente evaluación será "true" pues b és mayor que a, 8 mayor que 4, y abcd entra dentro del patrón "a*":

if [[ b > a && 8 -gt 4 && abcd = a* ]]; then ...

PD: Dejo un enlace a la wikipedia donde se especifican los nombres en inglés de éstos símbolos, según la zona.

Doble paréntesis

El doble paréntesis en Bash se usa para evaluaciones aritméticas (casi idéntico a "let"), además de permitir manipulación de variables como lo haríamos en C, tipo (( var++ )).

Si ejecutásemos en Bash la siguiente instrucción, devolvería por pantalla el string "3+4":

a=3+4echo $a

En cambio, con el doble paréntesis podemos manipular operaciones aritméticas. Lo siguiente devolverá el número 10:

a=$(( 3 + 4 ))b=$(( a + 2 ))(( b++ ))echo $b
Comillas y dobles comillas

Todos los carácteres en una expresión entre comillas, son tratados como un string.

a=50;echo 'Aquí hay $a personas' Salida: Aquí hay $a personas

Las dobles comillas en cambio, permiten la expansión de los carácteres especiales ‘$’, ‘`’ y ‘\’ [Más info] [2]:

a=50;echo "Aquí hay $a personas" Salida: Aquí hay 50 personas
Control de errores y debug

En muchos sitios (aquí o aquí, por ejemplo) se insta a usar siempre, al inicio del script, el comando "set -e" (o lo que es lo mismo, "set -o errexit") lo cual detendrá la ejecución del script en caso de que algún comando produzca algún error. Sin embargo, al parecer en ocasiones ésto puede hacer que nuestro script no funcione como esperábamos, así que conviene ir con cuidado. [Más info] [2]

#!/usr/bin/env bash set -e

Referente al debug, podemos ejecutar un script en modo debug añadiéndo al incio del script "set -x" o ejecutándo el script directamente con "bash -x <script>".

#!/usr/bin/env bash set -x

 

Fuentes

http://mywiki.wooledge.org/BashFAQ/

http://kvz.io/blog/2013/11/21/bash-best-practices/

http://mywiki.wooledge.org/BashGuide/Practices

http://www.davidpashley.com/articles/writing-robust-shell-scripts/

Alfresco 5.0 and Liferay 6.2 CMIS integration

Tony de la Fuente - Mié, 02/11/2015 - 16:05
It is as easy as it sounds: Use same user and password in both servers, this can be done by having SSO or same LDAP on both applications. Also just use same user and password for both even with their internal DB. Add the two properties below to your Liferay configuration file and restart Liferay: 3rd: watch […]

Redimensionar fotos en bloque en Ubuntu y derivadas

eliasbrasa - Mar, 02/10/2015 - 11:01

Alguna que otra vez me ha tocado retocar el tamaño de unas fotos por diversas razones, por ejemplo si las voy a subir a una página web. La verdad es que redimensionar fotos de una a una puede convertirse en una tortura, por ello os voy a explicar como hacerlo:

Lo primero que debemos hacer es una copia de seguridad de las fotos y llevárnoslas a una carpeta aparte, para evitar problemas debemos siempre trabajar con una copia de seguridad ;) ;) ;) Vamos a utilizar una de las posibilidades del paquete ImageMagick, que normalmente viene instalado en estas distribuciones.

Abrimos el terminal y nos vamos a la carpeta donde estén esas fotos (en KDE te puedes ir con Dolphin y pulsar botón derecho –> acciones –> Abrir terminal aquí)

Ahora tenemos dos posibilidades, forzar una resolución o mantener la proporción:

Mantener la proporción pero mantener un ancho determinado: mogrify -resize 800 *.jpg

Obligar a una resolución determinada: mogrify -resize 800×600! *.jpg

Y tras un breve espacio de tiempo, dependiendo del tamaño de las fotos, tenemos las fotos reducidas en bloque.

Fuente: Muy Linux.


Korora 21 Disponible

Fedora Nicaragua - Mar, 02/10/2015 - 10:09


Korora, el remix de Fedora que busca hacer esta distribución mas amigable para nuevos usuarios de forma silimar a lo que hace Ubuntu con Debian, ya esta disponible para su descarga en la versión 21:


Así que si conoces a algun alguien que quiera dar su primeros pasos en Linux, pero no te gustaría verlo morir en el intento, Korora puede ser una buena opción para iniciarlo como su primer sistema operativo libre, con la ventaja de incluir todo lo que hace a Fedora Genial.

“Profe, ¿y esto para qué vale?”, mi conferencia en el II CEAM CLM

Gaussianos - Mar, 02/10/2015 - 05:45

El pasado día 16 de enero de 2015 tuve el honor de dar la conferencia de clausura del II CEAM de Castilla-La Mancha invitado por Juan Martínez Tébar. La charla en cuestión llevaba como título Profe, ¿y esto para qué vale?, y el objetivo de la misma fue dar algunas ideas, con ejemplos concretos, para responder a esa pregunta tan repetida por los alumnos de los distintos niveles educativos.

Podéis ver la charla completa en el siguiente vídeo:

"Profe, ¿y esto para qué vale?" Gaussianos en el II Congreso de Enseñanza y Aprendizaje de las Matemáticas from CRFP CLM on Vimeo.

Y no quiero dejar escapar esta oportunidad para destacar que en este evento tuve la oportunidad de conocer, entre otras personas, a Antonio Pérez Sanz y a Fernando Cuartero, además de poder compartir tiempo y conversación con el propio Juan Martínez Tébar, con Juan Medina (que también participó en el evento hablando de Owlas) y con José Ángel López Mateos y su compañera (no recuerdo el nombre), a los que además les tengo que agradecer que me devolvieran sano y salvo a mi humilde morada.

Entra en Gaussianos si quieres hacer algún comentario sobre este artículo, consultar entradas anteriores o enviarnos un mensaje.

Construye tú también el poliedro de Császár.

Optimiza el HTML, CSS, JS e imágenes de tu sitio web con Gulp

Skatox - Lun, 02/09/2015 - 08:00

Uno de los retos de los desarrolladores web al momento de crear páginas web, es encontrar el equilibrio perfecto entre ofrecer un sitio con excelente apariencia visual y usabilidad, pero cuyo tamaño sea lo menor posible para que la carga sea rápida. Pues un sitio web rápido permite: tener mas visitas con el rendimiento actual del servidor, se ahorran costos de ancho de banda, los usuarios sienten que es una buena página y navegan mas tiempo por ella, entre otras. Este procedimiento incluye varias tareas que realizan muchos desarrolladores web como: usar las versiones reducidas (comprimidas) de Javascript, comprimir y ofuscar nuestro código del lado del cliente,  optimizar las imágenes del sitio, comprimir los archivos CSS, combinar todos los archivos CSS y Javascript en un sólo archivo (para cada tecnología) para reducir el número de conexiones, etc. Algo que no es complicado pero consume tiempo y que se debe repetir cada vez que se hacen cambios en el sitio.

Gulp

Como este proceso es repetitivo y consume tiempo, lo mejor es hacer un script que automatice cada etapa, pero hoy en día existen herramientas como que nos permite facilitar todo lo mencionado anteriormente. En este artículo hablaré sobre Gulp, una herramienta para automatizar tareas que hace lo mismo que GruntJS pero es mas fácil de usar y entender.

¿Cómo empezar?

Para instalarlo, lo hacemos a través Node Package Manager de forma global para que se instale como un comando del sistema y poder ejecutarlo en cualquier parte:

npm install -g gulp

Luego en la raíz del proyecto creamos un archivo gulpfile.js donde especificaremos las tareas a realizar:

var gulp = require('gulp');
gulp.task('default', function() {
});
Añadir una tarea

Una tarea es un conjunto de procesos, por ejemplo, optimizar el código JS consiste en: reemplazar algunas liberias por sus versiones CDN, utilizar las versiones minificadas de librerías de terceros, luego concatenar los archivos, minificar y actualizar las referencias en el HTML. Cada uno de estos procesos podemos encontrarlos en el buscador de complementos de Gulp (en caso de no existir alguna puedes crearla y publicarla en Github) y se instalan con npm.

Gulp posee una importante característica: su sistema de flujos entre tareas. Cada una de ellas recibe un conjunto de data (generalmente archivos), realiza un proceso en ella y produce nueva data para ser enviada como entrada a otro flujo. Esto permite a tareas que modifiquen gran de archivos, hacer este procedimiento en RAM y solo escribir en el disco cuando ya se ha terminado de procesar todos los archivos, por lo que se ejecutará muy rápido.

Para verlo en acción, haremos una tarea para reducir el tamaño de los archivos JS como ejemplo, entonces nuestro primer paso es instalar el plugin uglify con NPM:

npm install --save-dev gulp-uglify

Luego se deben hacer dos cosas en el archivo gulpfile.js, una es importar esta el complemento en las dependencias y asignarla a una variable, luego con esta variable podemos ejecutar la función que se encargará de (en este caso) reducir el tamaño del código javascript. Para ello debemos hacer lo siguiente:

var uglify = require('gulp-uglify');
gulp.task('comprimir', function() {
gulp.src('lib/*.js')
.pipe(uglify())
.pipe(gulp.dest('dist'))
});

Como podrás observar, hemos creado una tarea llamada comprimir , que recibe un conjunto de archivos (los archivos JS ubicados dentro de /lib), crea una tubería y ejecuta uglify que se encargará de comprimir cada uno de los archivos, finalmente entrega el resultado a la tubería que se enviará a la ruta de destino (esta se puede definir a donde uno desee). Así sucesivamente podemos ir creando procesos como los mencionados anteriormente y luego agruparlo en unas tareas mas generales, por ejemplo, tareas para generar una versión para depurar (cuya fuente no este comprimida), una versión para producción, una versión de producción para pruebas, entre otros. Esto lo puedes hacer al final haciendo algo como esto:

gulp.task('produccion', ['comprimir', 'copiar','cdn', 'less']);
Ejecutar las tareas

Finalmente puedes ejecutar el comando gulp en la raíz de tu proyecto y empezará a realizar todas las tareas de forma automática. En caso de que quieras ejecutar solo una tarea, puedes pasar por parámetro el nombre de la tarea:

gulp produccion

Con esto generas la versión de producción, o  por ejemplo, si tienes una tarea llamada less para generar los archivos CSS desde LESS, simplemente ejecuta:

gulp less
Tareas recomendadas

Para optimizar un sitio web, generalmente utilizo imagemin, jshint, minify-css, notify, imagemin-pngquant, uglify, usemin. Con estas puedo comprimir imágenes, mejorar el código javascript, concatenar archivos, reducir el tamaño, entre otros. Aunque te recomiendo leer un artículo de Addy Osmani sobre optimización de webs, pues lista una gran cantidad de tareas que puedes ir probando para usar al momento de mejorar tus sitios.

Finalmente, como te darás cuenta con Gulp puedes crear sitios web mas óptimos y ahorrando mucho tiempo. Existen una gran cantidad de tareas existentes que puedes agregar a tu proyecto y facilitar tu trabajo, por eso te recomiendo chequearlas en el buscador de plugins de Gulp y si no existe, puedes crearla y ayudar a otros programadores que necesiten algo similar.

Libro: Seguridad en Unix y Redes

elj0na - Sáb, 02/07/2015 - 00:16

Partiendo la lectura de un nuevo libro SEGURIDAD EN UNIX Y REDES

Seguridad_Unix_Redes-OpenLibra-350x459


FEDORA 21 RELEASE PARTY LEON!!!!

Fedora Nicaragua - Jue, 02/05/2015 - 10:26
Este es un Repost del Articulo Publicado por Franko Ramírez en su blog para que aparezca en el Planet Fedora, en la Fiesta de Lanzamiento trabajaremos en indexar su blog al Planet.

Por favor visiten la publicación original en: https://networkfreesoft.wordpress.com/2015/02/05/fedora-21-release-party-leon/



Buenas noches, es para mí un honor poder anunciar que para este próximo sábado 7 de Febrero del año en Curso, se estará dando la primer actividad de Fedora en la ciudad de León, Nicaragua, comenzando desde las 2:30 con conferencias para todos los gustos y necesidades.
La actividad tendrá lugar en uno de los auditorios del edificio básico de la UNAN León. Contaremos con la participación de la Comunidad Local y de la Comunidad de Fedora Nicaragua.
Entre los participantes expositores tenemos a Neville Cross, embajador de Fedora en Nicaragua y uno de los principales promotores del Sistema Operativo. Además de él, contaremos con la participación de William Moreno quien llevará una charla sobre Cockpitp y otra sobre Emprendedores. Cabe destacar que tanto William como Neville no son informáticos de Estudio pero si de aplicación, lo cual viene a demostrar y desmentirde que el Software Libre está únicamente enfocado en aquellos con altos conocimientos de computación.
Omar Zapata y Franko Ramírez, miembros de la comunidad de Fedora León y parte del staff organizativo del mismo, impartirán una charla sobre Arduino y Fedora. Arduino es una plataforma de Open Hardware con gran potencial de desarrollo para pequeños sistemas domóticos e industriales.
Otra de las charlas que realmente motiva a muchos estudiantes de informática, sistema y telemática es la conferencia sobre Fedora Server, el último release de la versión en Servidores de Fedora promete dar de que hablar para bien y dejar a muchos boquiabiertos con las innovaciones que traen tanto en términos de funcionalidad como de seguridad, tan importante esta última que se ha decidido llegar una charla sobre ella para el día del evento.
Por último, la presentación de la comunidad, formas de colaborar y sobre todo, las mejoras que trae la última versión oficial del aclamado sistema operativo Fedora en la charla del Release Party promete llevar la experiencia a otro nivel con una mesa de instalación para aquellos que decidan a probar esta alternativa diferente al software convencional.
Ven y anímate este 7 de Febrero y déjate enamorar en este mes del amor y la amistad de un sistema diferente, estable y seguro y de una comunidad local naciente, pero con ánimos de hacer grandes cosas en pro del conocimiento libre.
Para mayor información puedes seguir el evento en Facebook, haciendo click al siguiente enlace: https://www.facebook.com/events/1021081117905336/?fref=ts

Configuración inicial de un servidor CentOS

HelloIT - Jue, 02/05/2015 - 07:07

centosHace ya unos años, y sin ningún software de administración tipo Puppet/Chef/Ansible, creamos un documento para que todos los técnicos pudieran decir la suya respecto a los pasos a dar tras instalar un sistema operativo Linux (CentOS en nuestro caso), con tal de no olvidarnos ninguno e ir mejorando entre todos este proceso de configuración inicial de un servidor. Eso significa que si tú, amado lector, tienes cualquier sugerencia de mejora, no dudes en dejarla en los comentarios.

Hoy en día, ese documento, muy pensado para instalaciones CentOS 6, tanto en entornos Cloud Computing como para en máquinas propias, es algo parecido a lo que listo a continuació.

NOTA: No te tomes todos los puntos al pie de la letra, seguramente querrás valorar si lo que propongo a continuación tiene sentido en tu entorno antes de aplicarlo, y seguro que más de un punto es mejorable.

1. Actualización del SO

Tras la instalación, es una buena idea forzar un update para estar a la última de los paquetes de nuestro SO.

yum update
2. Deshabilitar selinux

Selinux es una herramienta útil, pero que no compensa, y proporciona más dolores de cabeza de los que pretende solucionar. Es por eso que proveedores como RackSpace o Hetzner proveen sistemas con Selinux deshabilitado de fábrica. Si aún así quieres trabajar con Selinux, seguramente este sea el momento de configurarlo adecuadamente. En caso contrario, símplemente deshabilitalo tal y como sigue:

vi /etc/selinux/config SELINUX=disabled

Tras deshabilitarlo, será necesario reinciar el sistema para activar los cambio. Así pues, reinicia para evitar tener problemas con los próximos pasos.

3. Usuarios de sistema

Especialmente si se trata de una máquina creada a partir de una AMI (Amazon), pero en general con cualquier instalación del SO que no sea la oficial, se deberá revisar el archivo /etc/passwd en busca de usuarios creados en la propia AMI, y:

    • Cambiar el password del usuario de root
    • Deshabilitar (ponerles como shell un /sbin/nologin) o eliminar los usuarios innecesarios
    • Crear los usuarios (no root) que se usarán para conectar con el sistema via SSH.
    • Crear el Grupo de usuarios que se usará para aceptar conexiones SSH (por ejemplo "sshusers") y añadir a él los usuarios que usaremos para conectar via SSH (se habla de ésto en profundidad en el punto 5).

Para crear el grupo, bastará con ejecutar:

groupadd sshusers

Tras ello, podremos añadir los usuarios que tendrán acceso SSH al grupo, editando el fichero de grupos:

vi /etc/group

Además, se recomienda revisar el fichero sudoers para tener una idea de los usuarios que tienen permisos para hacer sudo, y quitar del mismo a los usuarios innecesarios.

cat /etc/sudoers

Recuerda usar "visudo" si vas a editar este fichero.

4. Cambiar useradd por defecto

Otra costumbre que tenemos es cambiar el default template del comando useradd para que los usuarios que se crean sin especificar shell, por defecto no tengan acceso a ninguna shell. Así evitaremos tener, por descuido, usuarios con acceso a la shell que no deberían tenerlo. Para ello, bastará con editar el fichero "useradd" e indicar como shell "/sbin/nologin":

vi /etc/default/useradd SHELL=/sbin/nologin/
5. Configurar OpenSSH correctamente

Se deberá revisar el fichero de sshd para permitir únicamente los métodos de conexión seguros. En este punto hay un muchas posibilidades y seguramente ésto sea suficientemente complejo como para contar con su propio post, así que te recomendaría documentarte un poco sobre cómo configurar OpenSSH de forma segura, antes de aplicar nada.

En mi caso, en este post me centraré en:

  • Asegurar que el protocolo de conexión es seguro
  • No permitir acceso SSH como root
  • Únicamente permitir acceso SSH a los usuarios autorizados (nunca "root"). En el ejemplo se tratará de los usuarios que pertenezcan al grupo "sshusers" que hemos creado en el punto 3.
  • Controlar el número de accesos para evitar ataques

Bastará con aplicar las siguientes directivas en el fichero de configuración "/etc/ssh/sshd_config":

Protocol 2 PermitRootLogin no MaxAuthTries 3 PasswordAuthentication yes MaxStartups 3 AllowGroups sshusers

Después de modificar, reiniciar el servicio sshd sin abandonar nunca el terminal actual, pues en caso de equivocarnos en algún punto, el terminal actual nos permitirá modificar la configuración de OpenSSH aun cuando hayamos cerrado el acceso por error.

/etc/init.d/sshd restart

Así pues, abriremos un nuevo terminal (repito: sin cerrar el actual) e intentaremos conectar con un usuario del grupo sshusers para comprobar que funciona. Una vez dentro, comprobaremos que también podemos cambiar a root sin mayores problemas:

su root -

Otra buena práctica, es intentar conectar por SSH directamente con root para verificar que en efecto, no podemos.

6. Configurar iptables

Tengo la sensación de que mientras escribo estas líneas, la explicación queda obsoleta, pues en las nuevas versiones basadas en RHEL7 iptables ha sido substituido por firewalld. En cualquier caso, respecto a iptables, usaremos un script cuya base servirá para únicamente aceptar las conexiones de entrada que se especifiquen de forma explícita.

Para ello, crearemos un fichero con el siguiente código (adaptado a las necesidades) para posteriormente ejecutarlo una vez, lo cual dejará iptables configurado.

cd path_to_scrips_folder vi set_iptables.sh
#!/bin/bash # Flush chains iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -F   # Set up default policies iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT   # Related and localhost iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -i lo -j ACCEPT   # Custom rules. Ej: # iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -p tcp --dport 443 -j ACCEPT   # Save settings service iptables save   # List rules iptables -L -v

Una vez añadidas las reglas necesarias, deberemos asegurarnos de que iptables se ejecuta al inicio, y posteriormente dar permisos de ejecución al script para poder aplicar los cambios.

chkconfig iptables on chmod 750 set_iptables.sh ./set_iptables.sh
7. Revisar los procesos de inicio

Se recomienda también, ver qué procesos se están ejecutando de inicio con la máquina, y deshabilitar aquellos que no interesen. Este punto está pensado para instalaciones de imágenes que no sean la Oficial de CentOS, como las AMIs de AWS o las imágenes predefinidas de RackSpace o Hetzner.  En general, si no te has bajado tú la imágen de CentOS de la página oficial, es interesante revisar este punto.

Con el siguiente comando, podremos listar los procesos que pueden ejecutarse al inicio, según el runlevel.

chkconfig --list
8. Configurar la zona horaria y el servicio de NTPd

Otro punto clave es mantener la hora de todos los sistemas sincronizada y actualizada, para evitar discrepancias. Para ello, podemos valernos de ntpd, el cual si no viene instalado se puede obtener con yum (yum install ntp).

grep -v "^$" /etc/ntp.conf | grep -v "^#" driftfile /var/lib/ntp/drift restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys server 0.es.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org
chkconfig ntpd on /etc/init.d/ntpd restart

Además de ntp, me gusta asegurarme de contar con la zona horaria especificada en mis servidores. Aquí tienes la documentación oficial.

cat /etc/sysconfig/clock ZONE="Europe/Madrid"
ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime
9. Revisar /etc/resolv.conf

Por lo general, cada proveedor que nos ofrezca una instalación propia de CentOS, incorporará sus propios servidores de nombres, que en la mayoría de casos serán más que suficientes para resolver las DNS. Sin embargo, será bueno revisar este fichero para asegurarnos de que efectivamente hay definidos unos servidores de nombres, y que éstos están funcionando o nos fiamos de ellos.

10. Modificar el hostname de la máquina

Revisar /etc/sysconfig/network para configurar un hostname correcto para nuestro servidor.

HOSTNAME=nombre.dominio

Hace falta reiniciar para aplicar los cambios

11. Modificar ulimit

Revisar el ulimit del servidor y aumentarlo según sea necesario. En las últimas versiones de CentOS estos parámetros vienen con valores más acordes a los tiempos actuales.

ulimit -a

La instrucción anterior nos mostrará los límites de procesos en ejecución por usuario configurados en nuestro sistema. La siguiente tabla muestra los límites y qué significan cada uno.

# - core - limits the core file size (KB) # - data - max data size (KB) # - fsize - maximum filesize (KB) # - memlock - max locked-in-memory address space (KB) # - nofile - max number of open files # - rss - max resident set size (KB) # - stack - max stack size (KB) # - cpu - max CPU time (MIN) # - nproc - max number of processes # - as - address space limit (KB) # - maxlogins - max number of logins for this user # - maxsyslogins - max number of logins on the system # - priority - the priority to run user process with # - locks - max number of file locks the user can hold # - sigpending - max number of pending signals # - msgqueue - max memory used by POSIX message queues (bytes) # - nice - max nice priority allowed to raise to values: [-20, 19] # - rtprio - max realtime priority   # Para kernels anteriores a 2.2.5, no podemos superar los 1024. Espero que no sea tu caso :-)

Modificaremos el archivo /etc/security/limits.conf y nos aseguraremos de modificar por lo menos, los límites correspondientes a nproc y nofile.

Cuidado, podría ser que en el server existiera el fichero llamado "90-nproc.conf" con un límite que sobreescribe los ulimits del fichero limits.conf:

/etc/security/limits.d/90-nproc.conf

Tras reiniciar el sistema veremos como los límites han adquirido los nuevos valores.

12. Connection Tracking

El connection tracking es el proceso del Kernel encargado de gestionar las conexiones que afectan al servidor. Así pues, las conexiones que podemos ver con un netstat, tienen un límite. Si se trata de un servidor web que va a soportar muchas conexiones o de un postfix que va a enviar muchos mails y por tanto va a abrir muchas conexiones, sería una buena idea revisar estos parámetros. Si quieres profundizar sobre el la tabla de conntrack, ya hablamos de ella hace un tiempo aquí.

Necesitaremos:

cat /proc/meminfo MemTotal: 49521980 kB
uname -m x86_64

Con ésto, usaremos la siguientes fórmula:

CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (x / 32)

Por ejemplo:

CONNTRACK_MAX =  (49521980 x 1024) / 16384 / (64 / 32) = 1547561,875 => 1547561

Ahora sabremos el número máximo de conexiones que podemos gestionar, y lo modificaremos en el /etc/sysctl.conf:

# Número máximo de asignaciones (calculo prévio) net.netfilter.nf_conntrack_max=1547561 # Timeout de 12 días en established (lo cambiamos a 12h) net.netfilter.nf_conntrack_tcp_timeout_established=43200 # Otros parámetros que podrían ser útiles ##net.core.somaxconn=65535 ##net.netfilter.nf_conntrack_tcp_timeout_time_wait=40 ##net.netfilter.nf_conntrack_expect_max=4096

Tras modificar los parámetros, deberemos aplicar los cambios y verificar que en efecto se han hecho efectivos:

sysctl -p cat /proc/sys/net/netfilter/nf_conntrack_max

Como muchas de las secciones de este post, los cambios se habrán aplicado en todas las sesiones tras el reinicio del server.

13. Mejorar el history

Puede ser muy interesante aumentar la capacidad del history del sistema, así como guardar la fecha en la que se ejecutó un determinado comando. Como "root", podremos mejorar el "history" de la máquina creando un script personalizado para el profile:

vi /etc/profile.d/custom.sh #Custom global bash parameters #Adding time to history and increasing it to 10000 linesexport HISTTIMEFORMAT="%h %d %H:%M:%S " HISTSIZE=10000

Tras el reinicio del server ya tendremos nuestro flamante "history" funcionando.

14. Mensaje de bienvenida

Otro punto interesante es el de mostrar un mensaje de bienvenida personalizado al loguearse al servidor. Es fráncamente fácil de conseguir, pues bastará con dejar el mensaje en el fichero motd:

vi /etc/motd ################################################################################## # Welcome to my super server # # All connections are monitored and recorded # # Please, disconnect IMMEDIATELY if you are not an authorized user! # ##################################################################################
15. Monitorización

Añade la máquina a tu sistema de monitorización (¿Alguien dijo Nagios?). Bajo mi punto de vista es importante que este punto se incluya dentro de la configuración inicial de un server, y no como un extra, pues en caso contrario, corres el riesgo de que el día a día retrase la monitorización del sistema y después tengas que correr para que el servidor no salga a producción sin estar monitorizado.

16. Backups

Tres cuartas partes de lo mismo respecto a los backups: no dejes la configuración del sistema de backups del server para más adelante, prepáralo todo ya. Recuerda que es interesante (por no decir imprescindible) guardar los backups fuera de la máquina, junto con los ficheros de configuración del server.

Ah, y asegúrate de que funcionan.

 

Hay otros muchos puntos que podrían tratarse aquí, y que dependerán de los servicios que alojará nuestro servidor, como por ejemplo si queremos habilitar IPv6 y por consiguiente configurar ip6tables, o si estamos instalando un servicio MySQL quizá querramos asegurarnos de que los logs se rotan con logrotate, así como que la configuración del servidor MySQL usa un fichero ibdata para cada tabla InnoDB. Si estás con Apache, recuerda configurar el timezone en el php.ini para evitar llenar de warnings los logs.

En cualquier caso, si has llegado a leer hasta aquí, seguramente tengas algo que aportar, así que no dudes en plasmar tus opiniones en los comentarios.

 

Fuentes:

Alfresco Tuning Shortlist

Tony de la Fuente - Jue, 02/05/2015 - 05:57
During last few years, I have seen dozens of Alfresco installations in production without any kind of tuning. That makes me thing that 1) nobody cares about performance or 2) nobody cares  about documentation or 3) both of them! I know people prefer to read a blog post instead the product official documentation. Since Alfresco […]

Mi entrevista en Coders Venezuela sobre desarrollo de WordPress y mas

Skatox - Mié, 02/04/2015 - 08:10

Hace unas semanas acepte la invitación de Osledy Bazo para participar en un proyecto de un podcast para Coders Venezuela sobre desarrolladores web Venezolanos, porque desde hace varios años soy seguidor del sitio y me gusta participar en este tipo de cosas. La entrevista, esta centrada en el desarrollo para WordPress, donde he estado realizando trabajos y plugins de código abierto desde hace tiempo. Sin embargo, en algunas partes hablo un poco sobre mi vida personal, trabajos, ideas, la academia, entre otras cosas.

En fin, les recomiendo escuchar la entrevista y si les gustó, compártanlo para apoyar este proyecto, pues me parece interesante para conocer programadores locales.

Enlace del podcast:

Segundo Podcast de Coders Venezuela – Miguel Angel Useche sobre desarrollo de plugins para WordPress.

Cuando dejas de ser el director de tu orquesta

Jose Salgado - Dom, 02/01/2015 - 18:05

jam session

El tiempo, a pesar de ser relativo, es un elemento que condiciona nuestro día a día. Podemos ejecutar dos acciones en un día o quizás veinte, depende de nuestro negocio, sector, etc.. Pero lo que está claro es que más allá del tiempo como factor de la física, en todo negocio hay algo tan o más importante que el tiempo, el tempo.

Cualquier aficionado a la música, ya sea melómano, punk-rocker o heavy es consciente de la importancia de este factor a la hora de interpretar una partitura. No es lo mismo un un adaggio que

Esto es un resumen del artículo Cuando dejas de ser el director de tu orquesta escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

El hábito puede que haga al monje

Jose Salgado - Jue, 01/29/2015 - 18:05

monjje

Corre por internet el mito de las diez mil horas que afirma que si dedicas esa cantidad de tiempo en practicar un objetivo acabarás siendo un auténtico maestro, ya sea en tenis, ajedrez, música, lo que sea porque no hay límite. No estoy yo muy de acuerdo con esto porque yo ya me puedo tirar cuatro años practicando ocho horas diarias que jamás me convertiré en un maestro del ajedrez.

Dicho esto, que creo que es importante dejarlo claro, parece obvio que cuanto más trabajes en un área, más tiempo dediques, hay

Esto es un resumen del artículo El hábito puede que haga al monje escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Páginas

Suscribirse a Fedora-es sindicador