Subscribirse al RSS Feed
(CodeAR)

codeAR es un Agregador de Noticias que intenta capturar los blogs de los desarrolladores Argentinos. Para saber que piensan, que están desarrollando, que están leyendo, que están imaginando.
Si tenes un blog sobre desarrollo de sistemas o relacionado al tema, te invitamos a participar de este Planeta, envianos un mail con la dirección de tu blog.

Ssh port forwarding

desde aurelianito por aurelianito (noreply@blogger.com)
Cada día que uso ssh me gusta más. Acá dejo anotado como forwardear un puerto al que me puedo conectar desde el server, para poder conectarme desde el cliente:

ssh -L bind_cliente:port_cliente:host_server:port_server usuario@host

Happy hacking,
Aureliano.

rsync iterado

desde aurelianito por aurelianito (noreply@blogger.com)
Hice un scriptcito en python que corre rsync muchas veces para mantener actualizado un directorio. Lo pongo acá por si le sirve a alguien más (o a mi mismo más tarde).

#!/usr/bin/env python

import subprocess
import sys
import time

def main():
    while True:
        try:
            subprocess.check_call([
                "rsync",
                "-z",
                "-r",
                "--delete",
                "--exclude=*.pyc",
                "--exclude=*.log"
            ] + sys.argv[1:])
            print ".",
            sys.stdout.flush()
            time.sleep(1)
        except subprocess.CalledProcessError, e:
            if e.returncode in [10,11,12,14,22,23,24,30,35]: # See http://wpkg.org/Rsync_exit_codes
                print "R",
                sys.stdout.flush()
            else:
                raise

if __name__ == '__main__':
    main()


Happy hacking,
Aureliano.

Comparando costos de Amazon EC2 y Google Computing Engine

Estuve mirando y por suerte son prácticamente similares las tablas disponibles en cada site (EC2 / GCE) y es relativamente sencillo compararlas [1][2].

Para sus Data Centers en USA, establecí las siguientes relaciones:

  • En las versiones de VMs “standard“, los precios son exactamente iguales, con configuraciones llamativamente similares.
  • En las versiones “high memory“, es más barato Google (la mitad), aunque Amazon te da el doble de CPUs por una VM con la misma cantidad de memoria.
    Ej: Google te da 4 CPUs / 26 GB de RAM y Amazon en cambio te da 8 CPUs para su configuración de 26 GB de RAM. Dado que estamos en “high memory“, igualé a cantidad de memoria disponible para luego decir “Google es la mitad de barato”.
  • En las versiones “large” (“high cpu” de Google), Amazon es un 15% más caro para igual cantidad de CPUs, pero te da el doble de memoria en sus VMs.

Observaciones:

  • Se desprende de lo anterior Amazon EC2 ofrece perfiles más simétricos que Google comparando la relación de cantidades de CPU/Memoria. Puede ser útil para algunas aplicaciones o no, ya que va obviamente asociado al costo.
  • Amazon tiene configuraciones con más CPUs ya que llega a 32 CPUs y más memoria también: 244 GB; Google llega a 16 CPUs y 104 GB de memoria.
  • No comparé tamaños de almacenamiento, asumo que no tiene tanta relevancia para nuestra aplicación (se disponen de varias decenas de GB en disco en ambos).
  • Amazon dice que te incluye discos de estado sólido (SSD). Google te cobra ambos (?) 0,04 USD por GB/mes el disco estándar, 0,325 USD GB/mes el SSD.
  • Fundamental para la región en la que vivo: Amazon tiene Data Center en San Pablo (Brasil), Google no; sólo sirve VMs desde USA, Europa y Asia/Pacífico.
  • Amazon tiene diferentes tipo de instancias, en este caso comparé las “Bajo demanda” aka “Dedicadas” (según el lugar que se mire en la documentación), que son las más caras. Las otras son tipo prepagas (“Instancias Reservadas”), donde según entiendo, uno abona un importe fijo y después usa X cantidad de tiempo y se descuenta del fijo.
    Hay otros tipos de instancias pero no se ajustan a nuestro uso (“Instancias Puntuales” y “Instancias optimizadas para EBS”). En este apartado, pareciera que Amazon tiene largamente muchas más ofertas y más desarrollo del negocio que Google.

Bonus Track: versus Linode.com

  • Linode tiene hasta 20 CPUs / 96 GB RAM máximo [3].
  • Linode es mucho más barato que ambos; es más simple su tabla de precios y más “1 a 1″ la distribución de CPUs / RAM (4GB / 4CPUs, 8 GB / 6 CPUs, y así hacia arriba), además de que da bastante más storage en SSD.
    Por ejemplo, 4 GB / 4 CPUs en Linode: USD 0,06/hora (USD 40/mes), mientras que en Amazon estamos en USD 0,28/hora por 15GB / 4 CPUs o USD 0,105/hora por 3,75GB / 2 CPUs. Eso sí, Linode está en USA (Newark/Atlanta/Dallas/Fremont), Europa (Londres) y Asia (Tokio), no en Sudamérica.
  • Comparando Linode contra GCE:
    • 1 Linode (2 GB de RAM/ 2 CPUs / 3 TB transfer / 48 GB SSD): U$S 20/mes.
    • 1 GCE (1,70 GB RAM / CPUs “shared” (?) / 48 GB SSD): U$S 33.29/mes (no dicen si hay límite de transferencia).
  • A Linode lo conocemos los que estamos “en la pomada”, y hay casos en donde suena mucho mejor “lo tengo repartido en la nube de Amazon/Google”, nobleza obliga.

[1] http://aws.amazon.com/es/ec2/purchasing-options/dedicated-instances/
[2] https://cloud.google.com/products/compute-engine/
[3] https://www.linode.com/pricing

¿Sugerencias, comentarios?

Saludos

Imperdibles (septiembre 15th – septiembre 17th)

desde Hipertextos (desde La Plata) por Christian Silva

Algunos vínculos interesantes que voy coleccionando en Delicious

  • “Creamos Google para los usuarios, no para los websites” – El otro día Eric Schmidt dijo claramente que Google fué creado para los usuarios y no para los websites; lo dijo en medio de la investigación de la UE sobre abuso de posición dominante, o monopolio, y el mayor peso que le da a sus sitios frente a los de la competencia… con unos ejemplos perfectos
  • Neutralidad de la red: indefiniciones e imprecisiones a la orden del día – El Senado de la Nación se apresta a tratar varios proyectos de ley sobre “neutralidad de red”, que se hallan pendientes de dictamen en la Comisión de Sistemas, Medios de Comunicación y Libertad de Expresión de ese cuerpo. Ha trascendido por diversos medios un predictamen que unificaría los diversos proyectos. A nuestro juicio, si se avanzara en ese sentido el propósito quedaría completamente desvirtuado, y a continuación analizaremos por qué.
  • ¿Diseñador o periodista? ¿Quién hace las aplicaciones de noticias para celulares? – Si bien la interacción entre el diseño de una plataforma y el contenido periodístico siempre ha estado en discusión en la historia de los medios, hoy ese debate se profundiza con el creciente uso de aplicaciones de celulares de medios informativos. En muchos casos, son los diseñadores del software los que condicionan qué tipo de noticias van a ser publicadas/vistas desde esas aplicaciones. El Nieman Lab acaba de publicar un artículo sobre una investigación cualitativa realizada en base a entrevistas con diseñadores de aplicaciones.
  • Channeling Engelbart: Augmenting Human Education – Gardner Campbell not only teaches the ideas of Doug Engelbart — the visionary who invented the mouse, hypertext and many more of the digital tools so many people use every day — he understands that Engelbart’s technological attempt to “augment human intellect” also ought to be a central goal of pedagogy.
  • ¿A dónde va a parar nuestra insaciable sed de datos? – Parece que cuanto más importante ha de ser nuestra privacidad, invadidos como estamos por tanto intrusismo publicitario, más vulnerable nos hacemos creyendo en la inocencia de la democracia de la Red. Así, cuando aceptamos las cookies de un determinado sitio web, sin saberlo, estamos dando información sobre nuestros hábitos de navegación a terceros.

Se viene el Emprender 2014 Rio Cuarto

El evento emprendedor mas importante del interior de Argentina se realizará el 26 de Septiembre en el Teatro Municipal de Río Cuarto, se trata del Emprender 2014.

Tal como se viene realizando hace un par de años, éste evento esta dirigido a jóvenes emprendedores o aspirantes, empresarios y estudiantes de secundario / universidad, profesionales y quien sea que tenga espíritu emprendedor.

Como siempre la entrada es libre y gratuita, lo que si por un tema de lugar físico (se realiza en el Teatro Municipal) es que se requiere una inscripción previa para poder confirmar el lugar.

Dentro del mismo sitio web, se encuentra el formulario de inscripción y mas información sobre el evento.

La entrada Se viene el Emprender 2014 Rio Cuarto aparece primero en Un Sanjuanino en Rio Cuarto.

desde Blog de UsabilidadWeb.com.ar por Carlos (noreply@blogger.com)

Curso Full Stack JavaScript MEAN: MongoDB, Express, AngularJS, Node.js

Curso Integral Estándares Web W3C y Full Stack JavaScript MEAN (MongoDB, Express, Angular, Node). Desarrollo de Aplicaciones Web Escalables.

MEAN hace referencia a las Arquitecturas desarrolladas con la base de datos noSQL MongoDB, Express.js , Angular.js y Node.js, con estas tecnologías tenemos todo lo necesario para desarrollar aplicaciones web Frontend, Backend y Base de Datos.

MEAN permite escribir una aplicación web de principio a fin usando sólo javascript, con sus diferentes librerias. El stack MEAN permite escribir aplicaciones SPA (Single Page Application) en las que el cliente web mantiene gran parte de la lógica de aplicación y el lado del servidor implementa la API necesaria para darle soporte, evitando así los continuos requests HTTP de todo el documento html. Node.js permite el uso de JavaScript en el servidor y establece el concepto de programación no-bloqueante. Curso Full Stack JavaScript MEAN: MongoDB, Express, AngularJS, Node.js

This is what I do

desde Gastón Ramos por Gastón Ramos

Cuando era chico tenía gustos musicales bastante variados, podía escuchar Rata Blanca, Soda Stereo, Phill Colins, etc pero me acuerdo hubo un tema que me gustó muchisimo y ese tema es “Karma Chameleon” de Culture Club, me acordé de este por que ayer leía un artículo en una revista y recomendaban el último disco que se llama “This is What I do”. Acá les dejo un link dónde hay dos temas en vivo de Cuture Club:

Y acá les dejo el link del torrent de dónde pueden descargar el último disco “This is what I do”

Descargar Torrent


Tagged: culure club, musica

¿Por qué ignora esto?

desde aurelianito por aurelianito (noreply@blogger.com)
Encontré la extensión hg-isignored que sirve para saber qué regla del .hgignore matchea con un archivo. Podés ver cómo configurarla en esta respuesta de StackOverflow.

Happy hacking,
Aureliano.

Imperdibles (septiembre 12th – septiembre 15th)

desde Hipertextos (desde La Plata) por Christian Silva

Algunos vínculos interesantes que voy coleccionando en Delicious

  • ContentBuilder.js (plugin de jQuery) Interesante experimento: edición en caliente desde la misma página web – This is a demo of ContentBuilder.js, a rich content editor Jquery plugin with beautiful blocks to drag & drop. Click on the content to start editing. Open the right panel to drag & drop content blocks.
  • Mercè Molist: “El verdadero hacker brilla por sí mismo” – "El hacker nace con la tecnología, con la necesidad de comprender cómo funcionan las cosas complejas, de imaginar cómo hacerlas funcionar de otra manera y de crear a partir del conocimiento adquirido". "Si hay dos bandos, policías y criminales, está claro dónde se alineará un hacker ético"
  • Critical analysis of interactive media with software affordances – There is a long standing, and unsettled debate surrounding the ways that technology influences society. There is strong scholarship supporting the social construction perspective, arguing that the effects of technology are wholly socially and politically determined. This paper argues that the social constructivist position needs to be expanded if it can be useful for more than observing the ways technologies are designed and used.
  • Presentan una cámara profesional de diseño abierto y modular – Una compañía llamada Apertus está buscando apoyo para crear una nueva cámara profesional, la Axiom Beta, pero con una diferencia: lo está haciendo como un proyecto abierto, en el que el posible cliente pueda configurar el hardware y el software que da vida a la cámara a su antojo.

Colgadas de pydev

desde aurelianito por aurelianito (noreply@blogger.com)
Pydev me colgaba el eclipse cuando abría un archivo con muchos errores. Para que no se cuelgue más tuve que editar el eclipse.ini y agregarle al final
-Djava.net.preferIPv4Stack=true
Más detalles en http://stackoverflow.com/questions/7463691/eclipse-pydev-completion-hangs-yet-again.

Sudoers en Ldap

desde El blog de Pablo por pablo

Agregar el esquema Sudoers desde un archivo .ldif

Descargamos sudo.ldif y lo copiamos a /opt/sudo.ldif

dn: cn=sudo,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: sudo
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'User(s) who may  run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'Host(s) who may run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Command(s) to be executed by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'User(s) impersonated by sudo (deprecated)' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Options(s) followed by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'User(s) impersonated by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC 'Group(s) impersonated by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL DESC 'Sudoer Entries' MUST ( cn ) MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ description ) )

Importamos el esquema a nuestra base Ldap

ldapadd -Y EXTERNAL -H ldapi:/// -f /opt/sudo.ldif
service slapd restart

Generamos una Unidad Organizacional y la configuración para el usuario Usuario1

##########################################
# ARCHIVO /opt/crearSudoers.ldif 
##########################################
dn: ou=Sudoers,dc=midominio,dc=com,dc=ar
objectClass: organizationalUnit
ou: Sudoers
 
dn: cn=defaults,ou=Sudoers,dc=midominio,dc=com,dc=ar
objectClass: top
objectClass: sudoRole
cn: defaults
description: Default sudoOption's go here
sudoOption: env_keep+=SSH_AUTH_SOCK
 
dn: cn=seguridad,ou=Sudoers,dc=midominio,dc=com,dc=ar
cn: seguridad
objectclass: top
objectclass: sudoRole
sudocommand: /sbin/iptables -L -n
sudohost: ALL
sudouser: usuario1

Agregamos dicha estructura al Ldap

ldapadd -x -D cn=admin,dc=midominio,dc=com,dc=ar -W -f /opt/crearSudoers.ldif

Debería quedar algo similar a la siguiente captura

Captura de pantalla de 2014-09-10 13:10:59

Configuracion del lado del cliente

Instalamos el sudo modificado para ldap, para esto debemos permitir que se elimine sudo

export SUDO_FORCE_REMOVE=yes
apt-get install sudo-ldap

Si ejecutamos sudo -V como root, vemos sus parámetros aplicados, buscamos “–with-ldap-conf-file=NOMBRE_ARCHIVO” (en mi caso /etc/sudo-ldap.conf) que es de donde toma el archivo de configuración y creamos un enlace simbolico a /etc/ldap.conf

ln -s /etc/ldap.conf /etc/sudo-ldap.conf

Definimos el path donde se encuentra la UO de sudoers agregando la siguiente linea en /etc/ldap.conf

sudoers_base ou=Sudoers,dc=midominio,dc=com,dc=ar
sudoers_debug 1

Solo falta modificar la configuración del nsswitch (en /etc/nsswitch.conf) para que busque primero en el archivo /etc/sudoers y en caso de no existir en el directorio Ldap.

sudoers: files ldap

desde Blog de UsabilidadWeb.com.ar por Carlos (noreply@blogger.com)

Cursos Full-Stack JavaScript MEAN y Full Stack Web Developer (Python/web2py)

Curso Desarrollo Full-Stack JavaScript MEAN (MongoDB - Express - Angular - Node). Javascript en Frontend, Backend, Base de datos. Curso Full Stack Web Developer (Python/web2py) en usabilidadweb.com.ar

Resoluciones del Nuevo Mes: Septiembre 2014

desde Angel "Java" Lopez por lopez

Un poco tarde esta vez, es tiempo de revisar mis resoluciones de Agosto:

- Escribir un reemplazo de jQuery para ser usado en tests de consola con Node.js [completo] ver repo
- Escribir funciones simples en JavaScript para manipulación de arreglos [completo] ver repo
- Continuar con proyecto Liqueed [completo] ver repo
- Comenzar con Aktores Distribuido [parcial] ver repo
- Comenzar con AjErl Distribuido [pendiente]

Además, trabajé en:

- Dar una charla de introducción a Express [completo] ver repo ver presentación ver ejemplos
- Mejorar AjScript [completo] ver repo
- Mejorar RuScript, Ruby intérpreter en JavaScript [completo] ver repo
- Refactor SimplePipes [completo] ver repo
- Generar código del servidor Node.js/Express desde RAML [completo] ver repo
- Crear un sitio dinámico descripto en JSON para Express [completo] ver repo
- Mejorar RustScript, intérpreter de Rust en JavaScript [completo] ver repo
- Crear Mochy, test framework a la Mocha [completo] ver repo
- Crear RSharp, language intérpreter de lenguaje R en C# [completo] ver repo
- Refactorizar (y simplificar) SimpleRules, motor de reglas en JavaScript [completo] ver repo
- Primeros ejemplos para SimpleMule [completo] ver repo
- Mejorar salida para SimpleUnit [completo] ver repo

Mis resoluciones para el nuevo mes:

- Aktores distribuidos
- AjErl distribuidos
- Soporte web y ejemplo en RuScript
- Completar Mochy
- Mejorar RSharp
- Trabajar con NodeJs en Deep Learning, Internet of Things, Artificial Intelligence
- Trabajar en Code Generation usando AjGenesis para Node
- Trabajar en Liqueed Project

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Viejos nuevos proyectos

desde aurelianito por aurelianito (noreply@blogger.com)
Estoy con ganas de encarar algún proyecto más o menos grande y tengo varias cosas en la cabeza, así que quería pedirles su opinión sobre qué piensan que estaría bueno hacer. Y si algun@ de ustedes tiene ganas, capacidad y tiempo de hacerlos conmigo, o tiene alguna idea que piense que estaría buena y quiera compartir, también estaría bueno. Las opciones que se me ocurren por ahora son:
  • Seguir con mi framework web homenaje a sandro.
  • Hacer un software para optimizar cortes de tela, haciendo una heurística para resolver 2D packing. La idea sería comercializarlo.
  • Aprender coreano, para poder leer un montón de cosas sobre como jugar al go. L@s mejores jugador@s y la mayoría de la bibliografía, son coreanos, chinos y japoneses. Y el coreano parece el lenguaje más fácil de los 3.
  • Hacer todos los cursos de Easy y dejar de ser un inútil para arreglar cosas en mi casa.
  • Seguir el desarrollo de mi notación de tango y hacer un animador en 3D de los pasos anotados.
Escucho ideas y busco compinches,
Aureliano.

Imperdibles (septiembre 11)

desde Hipertextos (desde La Plata) por Christian Silva

Vínculos interesantes que voy coleccionando en Delicious

  • 20 Useful Tools & Apps For Everyday UX Tasks – Working in an UX team usually requires mastering quite a few online tools. Whether you’re new to the user experience world, or you’re a seasoned professional you should never stop looking for online solutions that can make your work easier, faster and, most importantly, simply better. That’s why we’ve prepared a list of 21 tools that could help you in your everyday UX tasks.
  • ¿Cómo aprenden los humanos? – Quizá me aparte un poco del tópico central de este blog, pero creo que vale la pena rescatar este viejo gráfico que hice hace algunos años sobre las diferentes teorías del aprendizaje… teorías que muchas veces se utilizan como marcos teóricos en investigaciones sobre TIC y educación, porque en definitiva, para comprender como aprendemos utilizando tecnologías, resulta fundamental la referencia a la naturaleza misma de todo aprendizaje.
  • Slowdown Day o el día que internet se hizo lenta para mostrarte la importancia de la neutralidad – El ‘Slowdown Day’ es el día de la protesta a favor de la neutralidad de la red y en contra de las aspiraciones de los operadores de cable en Estados Unidos. Un buen número de sitios, entre los que están Mozilla, Netflix, Reddit, Vimeo o WordPress, se ha sumado a la protesta. Internet no funcionó más despacio este 10 de septiembre, pero puede haber parecido que lo hacía porque la idea es que todas estas plataformas muestren una página con el icono de la típica rueda cargando (sin parar de cargar), simbolizando lo que ocurriría si se rompiera la neutralidad de la red.
  • El listado más completo de convocatorias para artistas y gestores de todas las disciplinas (septiembre 2014 – enero 2015) – Con la intención de facilitarte el trabajo de búsqueda y selección, TAB te presenta este listado que reúne las mejores convocatorias vigentes con un formato lo más útil posible, ordenando las mismas por fechas límite, zonas geográficas -España, América Latina, Europa, etc.- y disciplinas. Este artículo se concibe como un work in progress, por lo que te recomendamos que lo consultes y compartas regularmente.
  • El máster que pretende hackear la Universidad – Quizá despiste que sus edificios sigan en pie. Pero no se confundan. Las instituciones se hallan en ruinas. Ruina ética y ruina estética. El color pardusco que indica que algo pertenece al pasado ha tiznado todo. Todo. Hasta los tabiques de la universidad.

Como bootear tus antiguas aplicaciones para Ms-DOS en CD o USB “Bien Facil”

desde Blog tech-nico.com por soporte

En este paso a paso, vamos a ver como crear un disco booteable en CD para levantar tu viejo sistema hecho para correr en DOS.

Tendremos el beneficio de que emularemos el floppy disk “driver A” por medio del BIOS (unidad 0). Utilizaremos un software que se llama BCD/BFD con el agregado de algunos driver de CDROOM para que permita ademas bootear en dispositivos SCSCI.

Paso 1, descomprimimos esto (descargar).

Paso 2, pegamos los archivos y/o carpetas de nuestro viejo software en la ruta: tech-nico_boot\cds\cdromsi\files\

Paso 3, vamos a la consola de windows. —- Inicio – Ejecutar – cmd

Paso 4, nos movemos con “cd” a la carpeta “tech-nico_boot”

command

Paso 5, Ejecutamos el comando “bcd cdromsi”

Paso 6, si queremos grabar el ISO en un CD presionamos “Enter” y ponemos un CD en blanco (el mismo software se ocupa de grabarlo), y si no lo queremos quemar en CD y solo nos interesa el ISO, miramos cual es la ruta del ISO y lo buscamos antes de presionar cualquier tecla, ya que al presionar “A-abort” nos elimina el ISO.

iso_path

Ya tenemos nuestro disco listo para bootear. Facil no?.
Con el ISO podriamos crear un USB boot. (No lo probe pero deberia funcionar).

Como tip adicional. Si queremos que se auto ejecute un exe o bat al iniciar el CD tenemos que editar el archivo tech-nico_boot\cds\cdromsi\files\autorun.bat

Fuente: http://www.nu2.nu/

Este post se publico primero en tech-nico.com

Noticias relacionadas

Configurar un cliente Linux para autenticar contra un servidor Ldap

desde El blog de Pablo por pablo

Instalamos los paquetes necesarios del lado del cliente

sudo apt-get install ldap-auth-client nscd

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

sudo auth-client-config -t nss -p lac_ldap

En el archivo /etc/ldap.conf modificamos las siguientes lineas:

host IP_SERVIDOR_LDAP
base dc=midominio,dc=com,dc=ar
uri ldapi://IP_SERVIDOR_LDAP
uri ldap://IP_SERVIDOR_LDAP/
ldap_version 3
rootbinddn cn=admin,dc=midominio,dc=com,dc=ar
pam_password md5
nss_base_passwd	ou=Users,dc=midominio,dc=com,dc=ar?one
nss_base_shadow	ou=Users,dc=midominio,dc=com,dc=ar?one
nss_base_group	ou=Groups,dc=midominio,dc=com,dc=ar?one

Montar un servidor LDAP en Linux

desde El blog de Pablo por pablo

Si llegaste acá buscando como instalar un Ldap, es porque ya sabes que se trata de una base de datos en forma de árbol, bla, bla, bla… así que vamos al grano.

Instalación del servidor Ldap

Lo primero que hay que hacer es instalar el demonio slapd del servidor OpenLdap e instalar ldap-utils, un paquete que contiene utilidades de administración de LDAP.

Esto se hace mediante el siguiente comando, y aunque en la instalación solo nos pide definir la password de administrador (admin), debemos inmediatamente reconfigurarlo para setear algunos parámetros mas.

apt-get install slapd ldap-utils
dpkg-reconfigure slapd

Captura de pantalla de 2014-09-10 13:10:59

Ingresamos el dominio

Captura de pantalla de 2014-09-10 13:11:04

…el nombre de la organización

Captura de pantalla de 2014-09-10 13:11:09

…la contraseña de administrador

Captura de pantalla de 2014-09-10 13:11:17

…repetimos dicha contraseña

Captura de pantalla de 2014-09-10 13:11:25

Escogemos el tipo de base de datos backbend. Si se lee la explicación que da el cuadro de diálogo se observa que se recomienda utilizar la base de datos HDB y no la BDB, además de la justificación de porque escoger dicha opción.

Captura de pantalla de 2014-09-10 13:11:31

…si desea que se borre la base de datos cuando se purgue el paquete slapd

Captura de pantalla de 2014-09-10 13:11:36

Captura de pantalla de 2014-09-10 13:11:40

Captura de pantalla de 2014-09-10 13:11:45

Agregar usuarios, grupos o modificar contraseñas mediante LdapScripts

El paquete ldapscripts contiene scripts configurables para facilitar la gestion de usuarios y grupos LDAP.

apt-get install ldapscripts
cat /etc/ldapscripts/ldapscripts.conf
 
SERVER="ldap://localhost"
BINDDN="cn=admin,dc=midominio,dc=com,dc=ar"
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
USHELL="/bin/bash"
PASSWORDGEN="pwgen"
RECORDPASSWORDS="no"
PASSWORDFILE="/var/log/ldapscripts_passwd.log"
LOGFILE="/var/log/ldapscripts.log"
TMPDIR="/tmp"
LDAPSEARCHBIN="/usr/bin/ldapsearch"
LDAPADDBIN="/usr/bin/ldapadd"
LDAPDELETEBIN="/usr/bin/ldapdelete"
LDAPMODIFYBIN="/usr/bin/ldapmodify"
LDAPMODRDNBIN="/usr/bin/ldapmodrdn"
LDAPPASSWDBIN="/usr/bin/ldappasswd"
echo -n 'pass' -- /etc/ldapscripts/ldapscripts.passwd
chmod 400 /etc/ldapscripts/ldapscripts.passwd

Agregar usuario

ldapadduser usuario grupo

Cambiar password

ldapsetpasswd usuario

Migrar usuarios/contraseñas y grupos de Linux y generar el ldif

MigrationTools es un paquete de herramientas que nos ayudaran a agregar los objetos al dominio con plantillas predefinidas, para utilizarlas ejecutaremos los siguientes comandos.

apt-get install migrationtools
cat /etc/migrationtools/migrate_common.ph
 
$NAMINGCONTEXT{'passwd'} = "ou=Users";
$NAMINGCONTEXT{'group'} = "ou=Group";
 
$DEFAULT_MAIL_DOMAIN = "midominio.com.ar";
$DEFAULT_BASE = "dc=midominio,dc=com,dc=ar";
 
$IGNORE_UID_BELOW = 1000;
$IGNORE_UID_ABOVE = 30000;
/usr/share/migrationtools/migrate_passwd.pl /etc/passwd -- /opt/usuariosMigrados.ldif

Instalar phpLdapAdmin, un administrador web

phpLDAPadmin también conocido como PLA, es una herramienta para la administración de servidores LDAP escrito en PHP, disponible bajo licencia GPL, basado en interfaz Web. Trabaja en varias plataformas, pudiendo acceder al servidor LDAP desde cualquier lugar en Internet usando un navegador Web.

Posee una vista jerárquica basada en árbol en donde se puede navegar por toda la estructura de directorio. Permite ver los esquemas LDAP, realizar búsquedas, crear, borrar, copiar y editar entradas LDAP, incluso copiar entradas entre servidores LDAP.

apt-get install phpldapadmin

Editar /etc/phpldapadmin/config.php y modificar las variables “server” y “login”

$servers-- setValue('server','base',array('dc=midominio,dc=com,dc=ar'));
$servers-- setValue('login','bind_id','cn=admin,dc=midominio,dc=com,dc=ar');

Se accede vía ldap.midominio.com.ar/phpldapadmin

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Captura de pantalla de 2014-09-10 13:10:59

Añadir Unidades Organizacionales, Grupos y Usuarios

#####################################################################################
#		ARCHIVO /opt/crearOU_Grupos_Usuarios.ldif
#####################################################################################
#		UNIDADES ORGANIZACIONALES
dn: ou=Users,dc=midominio,dc=com,dc=ar
objectClass: organizationalUnit
ou: Users
#		GRUPOS
dn: ou=Groups,dc=midominio,dc=com,dc=ar
objectClass: organizationalUnit
ou: Groups
 
dn: cn=administradores,ou=Groups,dc=midominio,dc=com,dc=ar
objectClass: posixGroup
cn: administradores
gidNumber: 26000
 
#		USUARIOS
dn: uid=usuario1,ou=Users,dc=midominio,dc=com,dc=ar
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: usuario1
sn: usuario1
givenName: usuario1
cn: Pepe Puertas
displayName: Pepe Puertas
uidNumber: 26001
gidNumber: 26000
userPassword: {crypt}$1$hzFrywwZ$QLx4hBHkTS9NaG.C6bkwe.
gecos: Pepe Puertas
loginShell: /bin/bash
homeDirectory: /home/usuario1
ldapadd -x -D cn=admin,dc=midominio,dc=com,dc=ar -W -f /opt/crearOU_Grupos_Usuarios.ldif

Con esto deberíamos tener andando el servidor Ldap, con el usuario Pepe integrante del grupo Administradores

Imperdibles (septiembre 9th – septiembre 11th)

desde Hipertextos (desde La Plata) por Christian Silva

Algunos vínculos interesantes que voy coleccionando en Delicious

  • Aprueban en Rosario ordenanza sobre “open data” – La Municipalidad de la ciudad santafesina de Rosario, la tercera en población de la Argentina, deberá hacer públicos todos los datos de gobierno y publicarlos en un sitio web y con formatos abiertos reutilizables. Así lo establece una ordenanza que sancionó el 4 de septiembre el Concejo Deliberante rosarino. La iniciativa del edil radical Sebastián Chale es para garantizar el derecho de acceso a la información y transparentar la gestión local.
  • The Internet’s Original Sin – The fiasco I want to talk about is the World Wide Web, specifically, the advertising-supported, “free as in beer” constellation of social networks, services, and content that represents so much of the present day web industry. I’ve been thinking of this world, one I’ve worked in for over 20 years, as a fiasco since reading a lecture by Maciej Cegłowski, delivered at the Beyond Tellerrand web design conference. Cegłowski is an important and influential programmer and an enviably talented writer. His talk is a patient explanation of how we’ve ended up with surveillance as the default, if not sole, internet business model.
  • Un Encuentro con la tevé interactiva – Es directora de la National Film Board de Canadá. Firmó un convenio con el Canal Encuentro para producir un documental interactivo. La investigadora contó a Página/12 la experiencia en su país. El documental, en producción, saldrá en los próximos meses.
  • La nueva edad dorada del videojuego – Para Shigeru Miyamoto es un paseo por el campo. Para Tim Schafer y Yu Suzuki, la ópera de nuestra era. Para Jonathan Blow, el diseño perfecto. Para Raúl Rubio, decir adiós al acné. Para Dong Nguyen, lo que le sale de dentro. Para Peter Molyneux, ser Dios. Son creadores y sus obras y metas no pueden ser más dispares. Pero coinciden en dos puntos fundamentales: todos se consideran artistas y el medio en el que expresan su arte es el videojuego.

MKE Solutions se incorpora al Cluster Tecnológico Rio Cuarto

Una noticia que me llena de orgullo es la incorporación de MKE Solutions al Cluster Tecnológico Rio Cuarto a partir de este mes (Septiembre).

Este es un paso importante ya que le permite a MKE Solutions incorporarse a una asociación civil que se dedica a impulsar el desarrollo y estimular el crecimiento regional.

Estuve leyendo algunos números en una nota de La Voz que comenta que hay unas 25 empresas tecnológicas en Río Cuarto que facturan unos 30 millones de pesos (no dice en que periodo) pero estimo que será anual; es un número importante que inyecta en la región dinero y toma mano de obra especializada y calificada, algo que abunda en este ciudad gracias a las ofertas universitarias y tercearias que hay.

Hay una nota en MKE Solutions que habla al respecto.

La entrada MKE Solutions se incorpora al Cluster Tecnológico Rio Cuarto aparece primero en Un Sanjuanino en Rio Cuarto.

Mentalidad fija o mentalidad en creciemiento

desde Gastón Ramos por Gastón Ramos

Anoche terminé de escuchar el podcast de Satori Time acerca de este tema de la mentalidad fija o mentalidad en crecimiento, la verdad que me encantó y voy a explicar esto de forma muy breve: en el podcast da un ejemplo y es el siguiente: Suponte que vas a la facultad a rendir un exámen y estando en el mismo te vas sin hacer nada, después llegás a dónde dejaste tu auto estacionado y ves que tenés una multa por estar mal estacionado, si tu pensamiento es: “- El mundo está contra mío” entonces tienes una mentalidad fija; En cambio el pensamiento de una persona con mentalidad en crecimiento sería: “Tengo que estudiar más para el próximo exámen y tengo prestar más atención a dónde estaciono el auto”.
Desde hace un tiempo, probablemente unos años atrás, vengo intentando tener pensamientos más positivos acerca de las cosas “negativas” que me pasan y vez de renegar, intento hacer algo para que eso negativo cambie les digo no es para nada fácil, pero es una muy buena forma de administrar la energía, por que renegar y ser negativo produce un desgaste de energía totalmente innecesario. Un ejemplo que me viene a la mente acerca de mí mismo es: desde hace varios años que vengo teniendo pensamientos negativos acerca de mi vida “musical” por que hace mucho tiempo que no toco en una banda y por que cada vez que intenté formar parte de alguna siempre se pinchaba por algo generalmente ajeno a mí, entonces ahora cambié ese pensamiento y empecé a tocar más la guitarra, sacar temas que me gustan y cantar, por más que no tenga una banda igual estoy en movimiento.
Sorprendentemente hace poco menos de dos meses un amigo que toca la batería me llamó para que toque con él, y después se sumó un bajista, además ya aprendí 4 o 5 temas de los que vine sacando sólo, así que la mentalidad en crecimiento y el pensamiento positivo dan frutos!
Acá les dejo el link al podcast de Satori Time, que me encanta:

http://satoritime.com/

Este es el episodio que habla de la mentalidad fija o mentalidad en crecimiento:

http://satoritime.com/10/


Tagged: hábitos, positivo, sin levantar el lápiz

LUSAT-1 dando señales de vida

Leyendo el boletín que envía el Radio Club Argentino encuentro una noticia que me alegra mucho. El satélite argentino LUSAT-1, también conocido como Oscar 19 y LO-19, ha dado señales de vida.

Este es el primer satélite argentino, proyectado y construido por AMSAT Argentina (Amateur Satelite) un grupo de radio aficionados dedicado a los satélites, de cual fui socio en los 90′s.

Utilice varias veces el LUSAT-1 cuando hacía los experimentos con satélites, también en ese tiempo utilizaba el DOVE-17 (lanzados ambos al mismo momento) y contactaba casi a diario con el  PBBS de la Estación Espacial Rusa MIR.

Se lanzo en 1990 desde la Guyana Francesa en un cohete Ariane 4. Desde entonces ha completado mas de 128.000 órbitas y es uno de los satélites de radioaficionados mas antiguos que hay.

Según el comentario textual de Pedro Converso LU7ABF:

Supimos que había vuelto a transmitir un par de años atrás, sólo mientras estaba expuesto a la luz solar, pero a las 00:40 del 14/08 y a las 00:11 del 15/08 pasados, ambas hora local, y sin demasiadas expectativas, recibimos la portadora que emite el satélite en 437.125 KHz. Es casi un milagro que luego de 25 años, las baterías de Ni-Cd del LUSAT-1 aun puedan tomar y conservar carga como para permitirle transmitir durante la noche. Nos sorprendió su intensa portadora de 900 mW en 437.125 MHz, 22 minutos después de salir de la sombra terrestre”

Que alegría me ha dado la noticia, porque me ha hecho recordar mi adolescencia y el packet radio. En este momento el LUSAT-1 solo transmite telemetría y su transponder digital no esta operativo.

LUSAT-1

La entrada LUSAT-1 dando señales de vida aparece primero en Un Sanjuanino en Rio Cuarto.

Imperdibles (septiembre 2nd – septiembre 9th)

desde Hipertextos (desde La Plata) por Christian Silva

Algunos vínculos interesantes que voy coleccionando en Delicious

  • Crónica Z muta, crece: Más colaboradores, más contenidos – La universidad es un gran “laboratorio”, donde los estudiantes tienen la posibilidad de crear, experimentar y generar sus propias producciones. Junto a Dardo Ceballos, con quien estamos a cargo de la cátedra periodismo Científico y Tecnológico de tercer año de la Licenciatura en Periodismo de la Universidad Abierta Interamericana, Rosario, creemos que es importante que los trabajos realizados por los alumnos sean publicados en un sitio que aborde los temas que se trabajarán durante el cuatrimestre. El objetivo es que el resultado final, luego de una proceso de investigación, de creación, redacción y producción sea plasmado en un medios digital.
  • How To / Why Leave Facebook – Una serie de argumentos claros y contundentes sobre porque deberíamos dejar de usar Facebook y una serie de sugerencias para hacerlo a la manera de Nick Briz.
  • 50 consejos, trucos y datos de Twitter – Pasamos mucho tiempo investigando y escribiendo sobre las mejores estrategias en Twitter. Existen tantos matices que siempre hay algo nuevo que aprender a la vuelta de cada esquina. Con estos 50 consejos, trucos y datos de Twitter nos gustaría compartir con vosotros algunos de nuestros consejos favoritos y otros trucos que hemos aprendido a lo largo del camino, así como algunos datos sorprendentes sobre la maravillosa tierra de los 140 caracteres.
  • El lenguaje para las interfaces de usuario – Las interfaces de usuario son una parte muy importante de las aplicaciones web ya que estas son la carta de presentación de nuestro trabajo, hacer interfaces de usuario personalizadas puede complicarse un poco sobretodo para personas que no sean muy hábiles con el JavaScript por eso solemos usar librerías como JqueryUI para crear los elementos en estas interfaces.
  • How to Save Tweets for any Twitter Hashtag in a Spreadsheet – Wouldn’t it be nice if Twitter had an Export button? You search for something, maybe a trending #hashtag or your brand name, and all the matching tweets would get saved in a spreadsheet. And the archive would update itself as new matching tweets are posted on Twitter in the future.

RuScript, Ruby Intérprete en JavaScript (1) El Proyecto

desde Angel "Java" Lopez por lopez

Desde hace unos meses estoy trabajando en mi tiempo libre en:

https://github.com/ajlopez/RuScript

Y escribiendo todo siguiendo el flujo de TDD (Test-Driven Development) (ver la historia de commits)

La idea es tener un intérprete de Ruby escrito en JavaScript, que pueda correr en el browser o en el server (en este caso con Node.js). No estoy implementando un compilador a JavaScript, porque quiero seguir “baby steps”, y porque veo que la semántica de Ruby puede ser bastante distinta de la de JavaScript en algunos casos. La resolución de métodos a invocar, o ver si una variable es de instancia, de clase o local a una función, son temas que difieren entre los dos lenguajes. Así que me he decantado por escribir un intérprete.

Estoy aplicando “dog fooding”, porque el parser está construido basado en:

https://github.com/ajlopez/SimpleGrammar

Que también estoy aplicando en otros proyectos, como RustScript. (Hay implementación de SimpleGrammar en C#, ver GrammGen). Fragmento de las reglas definidas para el parser de RuScript:

// Expression Level 1
get('Expression1').generate('Expression'),
get('Expression1', 'Plus', 'Expression0')
    .generate('Expression1', function (values) { return new AddExpression(values[0], values[2]); }),
get('Expression1', 'Minus', 'Expression0')
    .generate('Expression1', function (values) { return new SubtractExpression(values[0], values[2]); }),

// Expression Level 0
get('Expression0').generate('Expression1'),
get('Expression0', 'Multiply', 'Term')
    .generate('Expression0', function (values) { return new MultiplyExpression(values[0], values[2]); }),
get('Expression0', 'Divide', 'Term')
    .generate('Expression0', function (values) { return new DivideExpression(values[0], values[2]); }),

// Term
get('Term').generate('Expression0'),
get('Term', 'LeftBracket', 'ExpressionList', 'RightBracket')
    .generate('Term', function (values) { return new IndexedExpression(values[0], values[2]); }),
get('Integer').generate('Term'),
get('@@', 'Name').generate('ClassVariable', 
    function (values) { return new ClassVariableExpression(values[1].getName()); }),
get('@', 'Name').generate('InstanceVariable', 
    function (values) { return new InstanceVariableExpression(values[1].getName()); }),
get('Name').generate('Term'),
get('InstanceVariable').generate('Term'),
get('ClassVariable').generate('Term'),
get('String').generate('Term'),
get('Array').generate('Term'),
get('LeftParenthesis', 'Expression', 'RightParenthesis')
    .generate('Expression0', function (values) { return values[1]; }),
get('LeftBracket', 'RightBracket')
    .generate('Array', function (values) { return new ArrayExpression([]); }),
get('LeftBracket', 'ExpressionList', 'RightBracket')
    .generate('Array', function (values) { return new ArrayExpression(values[1]); }),


Por cada elemento que voy descubriendo, voy armando una expresión, que puede evaluarse dado un contexto (un contexto indica cuales son las variables accesibles en determinado momento, y sus valores respectivos). Ejemplo:


function NameExpression(name) {
    this.evaluate = function (context) {
        var value = context.getValue(name);
        
        if (typeof value == 'function')
            return value();
        
        return value;
    };
    
    this.getName = function () { return name; };
    
    this.setValue = function (context, value) {
        context.setLocalValue(name, value);
    }
}

function InstanceVariableExpression(name) {
    this.evaluate = function (context) {
        if (!context.$self.$vars)
            return null;
            
        return context.$self.$vars[name];
    };
    
    this.getName = function () { return name; };
    
    this.setValue = function (context, value) {
        if (!context.$self.$vars)
            context.$self.$vars = { };
            
        context.$self.$vars[name] = value;
    }
}

function ClassVariableExpression(name) {
    this.evaluate = function (context) {
        if (!context.$self.$class.$vars)
            return null;
            
        return context.$self.$class.$vars[name];
    };
    
    this.getName = function () { return name; };
    
    this.setValue = function (context, value) {
        if (!context.$self.$class.$vars)
            context.$self.$class.$vars = { };
            
        context.$self.$class.$vars[name] = value;
    }
}

function ConstantExpression(value) {
    this.evaluate = function () {
        return value;
    };
}


Tengo acceso a JavaScript desde Ruby, por ejemplo, un test:


exports['Evaluate JavaScript global name'] = function (test) {
    global.myglobal = 42;
    var context = contexts.createContext();
    var parser = parsers.createParser("js.myglobal");
    //parser.options({ log: true });
    var expr = parser.parse("Expression");
    var result = expr.value.evaluate(context);
    test.equal(result, 42);
}



El “namespace” js es el que posibilita acceder a las variables definidas en JavaScript y a todo su ecosistema, ya sea en el browser o en el servidor Node.


Espero poder presentar mi avance en la RubyConf 2014 de Argentina.


Próximos pasos: acceder a los “require” de Node.js, ejemplos de sitios web usando Node.js/Express, ejemplos de consola, ejemplos en el browser, etc.


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Rock n' Linux: Instalación y puesta a punto de ArchLinux

desde Bunker Blog por Sergio Alonso (noreply@blogger.com)
Publicado por Alejandro Cobo - enlace original presente en http://rocknlinux.blogspot.com.es/2013/01/instalacion-y-puesta-punto-de-archlinux.html

Rock n' Linux: Instalación y puesta a punto de ArchLinux: Lo que empezó siendo un guión para uso propio de los pasos a seguir durante la instalación y post-instalación de ArchLinux , ha ido creciend...

Inside Google Brain Founder Andrew Ng's Plans To Transform Baidu

Little known outside China, the Chinese search engine Baidu scored a coup earlier this year when it hired Andrew Ng to be chief scientist and open a new artificial intelligence lab in Silicon Valley. Ng, a Stanford computer science professor who headed the Google Brain AI project and then cofounded the online education startup Coursera, is the foundation for Baidu’s plan to transform itself into a global power.

Instalar DNSCache de D. J. Bernstein

desde El blog de Pablo por pablo

Instalar un cache de DNS sobre Ubuntu es realmente sencillo gracias a los paquetes de D.J.Bernstein.

En primer lugar debemos instalar el paquete dnscache-run y sus dependencias (daemontools daemontools-run djbdns dnscache-run ucspi-tcp)

apt-get install dnscache-run

El svscan verifica dentro del directorio /service los programas a ejecutar, pero como esta carpeta no es creada durante el proceso de instalación arreglarlo y generar un enlace simbólico a /etc/dnscache

mkdir /service
ln -s /etc/dnscache /service

Ahora debemos configurar las variables de entorno de la siguiente manera:

Editamos /etc/dnscache/env/IP y modificamos el valor por defecto con nuestra IP.

vi /etc/dnscache/env/IP
192.168.1.10

y declaramos que redes pueden utilizar nuestro cache de DNS

touch /etc/dnscache/root/ip/192.168.1
touch /etc/dnscache/root/ip/10.10

El tamaño por default del cache es de 1M, se puede agrandar un poco cambiando las siguientes variables:

echo 100000000 > /service/dnscache/env/CACHESIZE
echo 104857600 > /service/dnscache/env/DATALIMIT

para ponerlo en funcionamiento debemos arrancar el servicio

/sbin/start svscan
update-service --add /etc/dnscache

Si queremos hacerla completa, podemos generar un script que actualice periódicamente los Root Hints. Si pegamos el siguiente código en /opt/actualizar_root_servers.sh y le damos permiso de ejecución (chmod +x /opt/actualizar_root_servers.sh) se puede agregar en el crontab para que se ejecute automáticamente.

#!/bin/bash
# Fuente: http://thedjbway.b0llix.net/djbdns/dnsroots.html
 
dnsip `dnsqr ns . | awk '/answer:/ { print $5; }' |sort` > /opt/root_servers_temp.txt 2>> /opt/actualizar_root_servers.log
echo "`date` - Listado de root servers obtenido:" >> /opt/actualizar_root_servers.log
cat /opt/root_servers_temp.txt >> /opt/actualizar_root_servers.log
echo "`date` - Fin del listado de root servers obtenido" >> /opt/actualizar_root_servers.log
 
# Si la cantidad de root servers es mayor que 8 cambiar la configuración
NRO_ROOT_SERVERS=`wc -l /opt/root_servers_temp.txt |cut -d' ' -f 1`
if [ $NRO_ROOT_SERVERS -ge 8 ]; then
    # echo $NRO_ROOT_SERVERS es mayor o igual que 10
    echo "`date` - Se obtuvieron $NRO_ROOT_SERVERS servidores de DNS raiz que se usaran para actualizar la conf. de root servers" >> /opt/actualizar_root_servers.log
    cp /etc/dnsroots.global /etc/dnsroots.global.old
    cp /opt/root_servers_temp.txt /etc/dnsroots.global
    cp /etc/dnsroots.global /service/dnscache/root/servers/@
    svc -du /service/dnscache
else
    echo "`date` - Se obtuvieron $NRO_ROOT_SERVERS servidores de DNS raiz, no se modifica la conf. de root servers" >> /opt/actualizar_root_servers.log
#    echo $NRO_ROOT_SERVERS es menor que 10
fi

Referencias:

 

Access Manager: Portal Cautivo Gratuito

Buscando entre algunos radius disponibles gratuitos me encontré con Access Manager, un sistema administrador de HotSpot gratuito.

El framework esta escrito en PHP y permite levantar un Freeradius y a través del portal se podrá proveer conectividad a través de HotSpot. Se pueden aplicar políticas de ancho de banda, planes de servicios, etc.

Lo bueno que tiene es la integración con PayPal y la generación de vouchers. El sistema soporta multi routers porque es un radius, tan solo hay que relacionarlo con un router configurando el radius cliente del mismo. En MikroTik se realiza en /radius.

Hay un demo online para ver la interfaz como se administra y tiene un foro con algunos tips de la aplicación.

Access Manager: Free HotSpot Management Software

La entrada Access Manager: Portal Cautivo Gratuito aparece primero en Un Sanjuanino en Rio Cuarto.

El perro y la gallina

desde Gastón Ramos por Gastón Ramos

La otra vez pasé las gallinas de la jaula en donde crecieron desde pollitos al gallinero más grande, por que ya no entraban, en su nuevo lugar iban a estar más cómodas. Agarré primero una y después otra y una vez dentro de su nuevo hogar noté que estaban terriblemente asustadas las dos y al rato ví que las otras gallinas empezaron a atacarlas, le daban picotazos y las increpaban de la forma que podían, en el momento pensé “ya se van a acostumbrar los dos bandos” y las dejé, nos fuimos a hacer las cosas del día a día… Cuando volvimos a la tardecita había una gallina de las que estaban en la jaula (las foráneas) afuera del gallinero, las otras la increparon tanto que hiceron un hueco y lograron escaparse, el problema es que afuera de la jaula había alguien esperandolás…

marrow


Tagged: sin levantar el lápiz

Ágiles Argentina 2014 – Primeras Jornadas Nacionales de Metodologías Agiles

desde Angel "Java" Lopez por lopez

Argentina (y Buenos Aires) sigue siendo un lugar de gran actividad en la difusión de lo ágil en el desarrollo de software y otros ámbitos. Se vienen dos días de jornadas, viernes 26 y sábado 27 de Septiembre, ver:

http://www.meetup.com/agiles-bsas/events/191103222/

Friday, September 26, 2014 9:00 AM
to Saturday, September 27, 2014, 6:00 PM

Universidad de Belgrano
Lacroze 1947, Buenos Aires (map)

Realizaremos nuestras primeras Jornadas Nacionales de Metodologías Agiles, en Formato Open Space.
Nos juntamos con ganas de compartir experiencias, buenas prácticas y aprender más sobre metodologías agiles.

Más información en el sitio oficial:

http://aa2014.agiles.org/

El formato es Open Space, no hay una agenda predefinida. Se puede ir proponiendo y votando temas en:

https://agilesargentina.uservoice.com/forums/261590-%C3%81giles-argentina-2014-26-y-27-sept-en-buenos-aire

Ágiles Argentina 2014, las Primeras Jornadas Nacionales de Metodologías Ágiles, es un evento de la Comunidad Ágil Argentina. Tendrá como sede a la Universidad de Belgrano , en la Ciudad de Buenos Aires, los dias 26 y 27 de Septiembre. Ver detalles del evento en http://aa2014.agiles.org/

Una novedad, el catering (comida, bebidas, infusiones, etc) será autoorganizado, comprometerse en alguno de los puntos de:

http://aa2014.agiles.org/catering-auto-organizado/

Si esto no es lo ágil, lo ágil ¿donde está? :-)

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Living with Web Apps

I decided to spend a day using only the web for all the tasks that people use their mobile phone for. No exceptions. Everything interaction that I do must be via the web.

Herramientas del día a día

desde Gastón Ramos por Gastón Ramos

Durante mi jornada de trabajo de programador, uso varias herramientas, algunas las uso desde hace mucho otras no tanto, por ejemplo, para abrir y editar archivos uso emacs, que todavía no lo sé manejar como quisiera, pero es altamente poderoso.
Otra cosa que uso es screen para multiplexar sesiones de bash en una misma terminal.
Además de estas dos cosas uso mucho git, y en particular estoy aprendiendo a usar Magit que es un modo de emacs para git.
Acá dejo unos links útiles más que nada para tenerlos para mí, todos en un sólo lugar.

Emacs card reference:

http://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf

Screen:

http://aperiodic.net/screen/quick_reference

Magit:

http://magit.github.io/documentation.html

Guard:

https://github.com/guard/guard


Tagged: emacs, git, herramientas, ruby

Hackathon Abierto en Buenos Aires

desde Angel "Java" Lopez por lopez

El próximo sábado 30 de Agosto, se realizará el primer Hackathon abierto del grupo Java Argentina, en las oficinas de MuleSoft en Buenos Aires. Más detalles en:

http://www.meetup.com/jugargentina/events/197071352/

Saturday, August 30, 2014
11:00 AM to 8:00 PM
MuleSoft
Av Corrientes 316, Capital Federal, Buenos Aires (map)

Planta Baja

Vamos a estar organizando el primer hackathon abierto del grupo. La idea es juntarnos a las 11AM, arrancar al medio dia, y terminar a las 8pm. Ahi vienen las presentaciones, algunos premios y cerramos con algo para comer y tomar.

Las reglas:

• Se puede usar cualquier lenguaje, no solo Java o que corra en la JVM. 

• Hay que contribuir a un proyecto Open Source. Puede ser cualquiera, no necesariamente famoso (ej: Mule ESB, Spring, Go, Vertx, etc). 

• Dura 8 horas. 

• Equipos de 1 hasta 5 integrantes

• Se va a evaluar el impacto de la contribución.

Estamos definiendo algunos premios para el equipo ganador y menciones. Apenas tengamos algo les avisamos.

Prometemos comida, bebidas y diversion!, por lo que pedimos que se registren todos los participantes, así podemos calcular bien las cantidades. 

Apuren a anotarse ya que vamos a tener cupo limitado!

Lo bueno es que puede usarse cualquier lenguaje, y al parecer, puede trabajarse sobre un proyecto nuevo o existente, mientras sea Open Source. Espero que haya cerveza :-)

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Próximo Meetup JavaScript en Buenos Aires: Express y D3

desde Angel "Java" Lopez por lopez

Se viene en Septiembre el próximo meetup de JavaScript, en Buenos Aires, ver detalles para el 11 de Septiembre en:

http://www.meetup.com/Meetup-js/events/202355182/

Retomamos la sana costumbre de reunión y discusión tecnológica con colegas de la comunidad.

Como siempre, la modalidad es la misma, arrancamos 6:30, y para los que van llegando tenemos algo para tomar, comer y charlar. A las 7 arranca la primer charla. Charlas:

Angel ‘Java’ Lopez – Introduccion a Express
Juan Pablo Kutianski – Introducción a D3

Como en la última oportunidad vamos a transmitir el evento por HO para los que no puedan venir.
Los esperamos!

Como otras veces, organizado por la gente de @scvsoft. Seguro, picada y cerveza (también medialunas y bebida cola, urrgg… :-)

Sí, voy a estar dando una charla corta sobre Express, el framework web más popular montado sobre Node.js. Veremos de usar el generador básico que viene con Express 4.x, qué funcionalidad básica da, el manejo de los middleware, el ruteo, la generación de vistas usando lenguajes de templates, y la exposición de APIs devolviendo JSON simple. Haremos código en vivo sencillo, y luego pasaré a ejemplos armados, con acceso, por ejemplo, a MongoDB. Realmente, Express es muy flexible, y se ocupa de pocas cosas, dejándonos a nosotros aprovechar el resto del ecosistema de Node. En ese sentido, no es un framework “pesado” o con mucho “opinionated”. Para algunos, esto es una ventaja, pero para otros no. A mí ese “approach” me gusta, porque permite elegir herramientas y librerías según el contexto y la necesidad, en vez de embarcarse en una gran solución única. Pero verán Uds. que les parece.

También estará el bueno de @baldpower dando una charla sobre D3, la librería de JavaScript para gráficos dinámicos, y hasta en tiempo real. Ver

http://d3js.org/

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Chau facebook por una semana…

desde Gastón Ramos por Gastón Ramos

Esta semana voy a probar hacer un pequeño experimento, es muy simple, no voy a usar facebook por una semana, para absolutamente nada, lo voy a desinstalar del celular y no lo voy a usar en la compu. Tengo permitido postear los artículos de mi blog, por que esto se hace forma automática y no hace falta abrir facebook para esto, el experimento comienza hoy… me voy a desinstalar facebook chau :)

 

4532958301_8cbb417996_m


Tagged: experimento, facebook, hábitos

Copy: Haciendo backups en la nube

Hace unos días conocí el servicio de Copy, un sistema de almacenamiento en la nube similar a DropBox, Google Drive, etc, de la empresa Barracuda  (NYSE: CUDA)

Lo bueno que tiene es que te dan 15GB gratis, actualizables hasta 25GB a través de un sistema de invitaciones. Al momento de uno registrarse, si viene referido por alguien, le dan 5GB adicional a ambos.

Tiene un sistema para compartir muy interesante, que lo comenta el video que pongo al final del post. El nombre es Fair Storage.

Soporta todos los sistemas operativos para la instalación del cliente y su utilización es similar a los demás sistemas cloud, uno elige una carpeta en donde tendrá que colocar los archivos que quiere subir a internet. Lo interesante que tiene Copy, es que no hace falta duplicar el contenido de un directorio si queremos tenerlo en un disco local y también en la carpeta de Copy, tan solo hace falta hacer un enlace simbólico en Linux o un acceso directo en Windows para que esa carpeta ya sea sincronizada.

A su vez tiene la posibilidad de importar / sincronizar los archivos con otros sistemas como DropBox, Google Drive, Box, etc.

Para hacer backups está muy interesante, de hecho lo he empezado a implementar en el server de maquinas virtuales, en donde puse un servidor de backup con NFS y es al mismo NFS que lo sincronizo con la cuenta Copy, con lo cual el sistema de backup se hace bastante simple al trabajar con NFS -Network File System-

El agente Linux tiene un entorno gráfico similar al de MacOS y Windows, pero adicionalmente trae un cliente de consola con lo que no hay que tener un servidor X para poder utilizarlo.

Con solo ejecutar una linea de comando colocando las entradas correspondiente, el cliente se conecta al servicio Copy con los datos ingresados y sincroniza la carpeta designada.

Los pasos para la instalación y ejecución de Copy en consola directamente son:

Descargar el agente de Linux:
wget https://copy.com/install/linux/Copy.tgz --no-check-certificate
Descomprimimos el archivo descargado
tar xvzf Copy.tgz
Ingresamos al directorio de la arquitectura respectiva del server
cd copy/x86_64
Ejecutamos el agente con los siguientes datos de entrada
./CopyConsole -u=correo_electronico_de_la_cuenta_copy -r=/directorio_a_sincronizar -p=password_de_la_cuenta_copy
Obtendremos algo así:

Using profile /root/.copy/config.ini
User from cmdline xx@xx.net
Root from cmdline /srv
Password from cmdline
Starting copy...success
Logged in as user: 'xx@xx.net' Copy folder is: '/srv'
Press enter to exit
Syncing 2.5 GB (Uploading @ 248 kB/sec)

Eso es todo, ahora tenemos un sistema de backup en la nube que con la capacidad que te brinda Copy en relación a otros sistemas similares, es una buena opción de Backup Cloud.

Les paso mi referido para que uds obtengan 5GB mas (total 20GB) y a mi me brinde 5GB mas por haberlos referido (negocio para todos).

https://copy.com?r=1aBMYu

El video del sistema Fair Storage:

La entrada Copy: Haciendo backups en la nube aparece primero en Un Sanjuanino en Rio Cuarto.

Velocity 2014 - WebPagetest Power Users

Velocity 2014 on some of the more advanced features in WebPagetest.

StackOverflow Readers Are Not Your Average Web Developers

We knew StackOverflow was different. Turns out it's, well, really different.

The technical Q&A site looks like your standard Web developer hangout. But according to new data from IEEE Spectrum, its community has some unusual technical tastes.

Skyball

Una skyball, o spaceball, es una pelota pesada que tiene una tasa de descenso consistente y que no posee movimiento lateral.

Skyball

Se utiliza de la siguiente manera:

  1. Suelta la skyball e iguala su tasa de descenso.
  2. Vuela relativo a ella.
  3. Aprende a tomarla y ponla nuevamente en el aire.
  4. Repite los pasos anteriores hasta los 5000 pies (1500 metros).
  5. Tómala y ya no la dejes ir.

Cómo hacer una skyball?

  1. Haz un orificio en una pelota de tenis regular de manera que puedas llenarla con bolitas o perdigones de plomo. El peso adecuado es entre 590 y 600 gramos (completa).
  2. Fija a la pelota una cuerda de plegado (o similar) dejando una cola de entre 20 y 25 centímetros.
  3. Cierra la pelota cociéndole algunos puntos y/o con cinta adhesiva.

Notas:

  • Lo importante es darle el peso adecuado.
  • Variando el largo de la cola se cambia la tasa de descenso.
  • Pequeños ajustes al largo de la cola afecta su estabilidad. Quítar de a 1/2 centímetro o menos por cada vez.
  • Se pueden encontrar bolitas de plomo más pequeñas en tiendas de buceo.
Para volar de panza, la skyball debe pesar unos 545 gramos (armada, pelota + plomo + cola) y tener una cola de entre 25 y 30 centimetros de largo. Algunos pueden decirte que es demasiado larga, pero siempre puedes acortarla para hacer que la skyball caiga más rápido.

Seguridad:

  • Perder la skyball es peligroso. Salta siempre con una persona que sea capaz de recuperarla (ball master).
  • Utiliza la pelota sólo si estás seguro de poder agarrarla todo el tiempo.
  • Antes de saltar, haz una puntería exacta.
  • Si no está seguro que el salto será seguro para personas que están en tierra, quédatela!

Fuentes:

Optimising for Touch on the Responsive Web

I’m Rory Pickering, User Experience Designer for BBC iPlayer Radio, and previously GEL (Global Experience Language).

When I was working in the GEL team, I was involved in producing design guidelines to inform our web-based products across the BBC. One such guideline gives recommendations on how to optimise our products for touch input (in simple terms, to make things ‘touch-friendly’)....

Construido con Eco v0.1