Jornada de Python en Luján: PyDay Luján 2012

Replico FYI:

PyAr, el grupo de usuarios de Python Argentina, está orgulloso de presentar una nueva Jornada del lenguaje Python 2012 (PyDay) en la Universidad Nacional de Luján, el día Sábado 5 de Mayo de 2012 de 11Hs a 18Hs.

Durante el Python Day se darán pequeños cursos y charlas relacionadas a este lenguaje, creando un espacio en donde cualquier persona interesada pueda acercarse para preguntar, aprender y experimentar con esta herramienta.

Python es un lenguaje moderno, sencillo de aprender pero muy poderoso en cuanto a la cantidad de aplicaciones en las que es usado profesional y académicamente: en sitios web, en juegos, aplicaciones de escritorio y en scripting en general, etc…

El publico al que nos dirigimos es de todos los niveles, pero estamos muy interesados en acercar Python a quienes solo lo conocen de oído o directamente no saben de que tipo de lenguaje se trata. Tendremos charlas especiales para ellos.

Con esta misma invitación damos por iniciado el Call For Charlas; aquellos interesados ya pueden proponer nuevas charlas y son bienvenidos los colaboradores y empresas/entidades interesadas en participar y auspiciar la jornada.

Cualquier duda o consulta, el mail de contacto es pydaylujan@gmail.com
El encuentro se llevará a cabo en el pabellón 400 de la sede central de la UNLu http://www.unlux.com.ar/como-llegar/

La entrada libre y gratuita (previa inscripción web), ¡los esperamos!

Open Security Training, CS:APP y gPEFile

Finalizando las vacaciones, antes de reincorporarme al trabajo diario, dediqué unos días a seguir uno de los cursos de análisis de malware que tenía agendado desde hace tiempo, en este caso, el de Open Security Training.

La gente de OST provee el material, los ejemplos y los videos en línea para que uno vaya, a su tiempo, incorporando conocimientos repartidos en las siguientes clases:

Beginner Classes

Intermediate Classes

Advanced Classes

La primera clase sirve como base para las siguientes y discurre sobre los conceptos iniciales, describe el hardware sobre el que se programa en lenguaje ensamblador, describe con varios ejemplos las instrucciones del lenguaje más comunes, y muestra cómo seguir la ejecución de un programa con en Windows con Visual Studio Debugger (u OllyDbg, que no es tan distinto) y en GNU/Linux con gdb. Como bien hace mención el instructor, con conocer algunas pocas instrucciones ya es posible leer la mayoría de los programas.

La clase finaliza dejando como tarea el análisis y la resolución del clásico ejercicio de “bomba binaria” de la asignatura Arquitectura de Computadores de la Carnegie Mellon University, la cual requiere conocer técnicas básicas de ingeniería inversa para progresar a traves de las diferentes fases de la bomba, dando las respuestas correctas y evitando “explotarla”. Sin duda es un ejercicio que me ha entretenido mucho, me ha hecho pensar bastante, y que realmente debo recomendar como un buen inicio al arte de la ingeniería inversa.

Buscando información sobre el tema dí con el libro de cabecera de tal asignatura: Computer Systems: A Programmer’s Perspective, cuya edición 2011 es altamente recomendable. Está escrito en un lenguaje claro pero detallado, con ejemplos concretos (casi diría “palpables”) para explicar las abstracciones de sistema, y con un amplio conjunto de ejercicios para realizar. El sitio web contiene algunas secciones de ejemplo que sirven como preview, así como también material adicional al texto en papel. En retrospectiva, es el libro que me tendrían que haber recomendado cuando cursé las materias de arquitectura.

La clase “The Life of Binaries” trata efectivamente sobre “la vida de los ejecutables”, desde su creación: parsing del código fuente, abstract syntax trees, estrategias de compilación, lenguajes intermedios, enlazado del binario final; hasta su carga en memoria por el loader del sistema operativo y posterior ejecución en el computador. Se dan descripciones detalladas sobre los formatos binarios Portable Executable (PE) de Windows y Executable and Linkable Format (ELF) de Linux. El recorrido por el formato PE y su estructura, basado en el trabajo realizado por Ero Carrera, es muy completo y esclarecedor. La clase abarca también algunas de las técnicas que de ocultamiento y hooking utilizadas comúnmente en el malware, cómo funcionan realmente los virus de computadora, y qué técnicas es posible utilizar fácilmente para brindar mayor seguridad a los binarios que se generan.

A partir de esta clase se me ocurrió aprovechar el excelente trabajo realizado por Carrera con la biblioteca pefile y desarrollar con python-gtk2 un visor de archivos PE para interfaz gráfica, inspirado en el utilizado en los videos de entrenamiento. Dejo algunas capturas de la primera versión que no da vergüenza mostrar. El código, como siempre, se puede descargar desde el link que sigue y las correcciones y sugerencias serán bienvenidas.

Descargar: gpefile.py (v0.19, 78 KB)

Último cambio: Agregado despliegue de recursos RT_BITMAP, RT_GROUP_CURSOR, RT_GROUP_ICON, RT_STRING, GIF y PNG.

Me queda pendiente continuar con las clases siguientes, en cuanto el tiempo me lo permita. A la gente detrás del proyecto de Open Security Training, mi sincero agradecimiento por la dedicación y por el material brindado generosamente a la comunidad.

Ciclo de charlas de Software Libre 2011

El Grupo de Usuarios de Software Libre de la Universidad Nacional de Luján (UNLUX) invita a toda la comunidad, profesionales e interesados en Tecnologías de la Información y la Computación al “Ciclo de charlas de Software Libre — CDC SoL” edición 2011.

Este es un evento gratuito, abierto, de interés general, orientado a toda la comunidad y destinado a la difusión y capacitación en el cual expertos en diferentes áreas hablaran sobre temáticas del Software Libre. Habrá charlas técnicas e informativas, cuyos principios fundamentales son el fomento y la difusión del software libre tanto en el uso de herramientas cotidianas, como también para el desarrollo de modelos de negocio sustentables.

El CDC SoL 2011 se llevará a cabo el día 19 de noviembre de 2011 de 10 hs. a 18 hs. en la sede central de la Universidad Nacional de Luján.

Para obtener más información o registrarse como asistentes pueden dirigirse al sitio oficial cdcsol.unlux.com.ar o bien al correo organizacion@unlux.com.ar.

¡Esperamos contar con la participación de todos!

Implementación de Servidores Linux 2009

Leo en Kriptópolis que ya está disponible para descarga desde el sitio de Alcance Libre la edición de agosto septiembre del libro “Implementación de Servidores Linux 2009” de Joel Barrios Dueñas, compartido bajo licencia Creative Commons Reconocimiento – NoComercial – CompartirIgual 2.1.

El contenido del libro está basado en CentOS 4 y 5 y en sus 600 páginas comprende:

  • ¿Que es GNU/Linux?
  • Estándar de Jerarquía de Sistema de Ficheros
  • Instalación en modo texto de CentOS
  • Instalación en modo gráfico de CentOS
  • Cómo iniciar el modo de rescate en CentOS
  • Iniciando el sistema en nivel de ejecución 1 (nivel mono-usuario)
  • Cómo compilar el núcleo (kernel) de GNU/Linux en CentOS
  • Cómo gestionar espacio de memoria de intercambio (swap) en GNU/Linux
  • Procedimientos de emergencia
  • Cómo optimizar el sistema de archivos ext3
  • Cómo configurar y utilizar Sudo
  • Cómo crear cuentas de usuario
  • Breve lección de mandatos básicos
  • Funciones básicas de vi
  • Introducción a sed
  • Introducción a AWK
  • Permisos del Sistema de Ficheros
  • Cómo utilizar el mandato chattr
  • Creando depósitos yum
  • Uso de yum para instalar y desinstalar paquetería y actualizar sistema
  • Cómo utilizar RPM
  • Cómo crear paquetería con rpmbuild
  • Cómo asignar cuotas de disco
  • Introducción a TCP/IP
  • Introducción a IP versión 4
  • Cómo configurar correctamente los parámetros de red
  • Cómo configurar acoplamiento de tarjetas de red (bonding)
  • Cómo conectarse a una red Wifi desde la terminal
  • Cómo utilizar lsof
  • Cómo utilizar Netcat (nc)
  • Como utilizar Netstat
  • Cómo utilizar ARP
  • Introducción a IPTABLES
  • Cómo utilizar CBQ
  • Introducción a SELinux en CentOS 5 y Fedora
  • Cómo configurar un servidor DHCP en una LAN
  • Cómo configurar vsftpd (Very Secure FTP Daemon)
  • Cómo configurar pure-ftpd
  • Cómo configurar OpenSSH.
  • Cómo utilizar OpenSSH con autenticación a través de clave pública
  • Cómo configurar OpenSSH con Chroot
  • Cómo configurar NTP
  • Cómo configurar Clamd.
  • Cómo configurar el sistema para sesiones gráficas remotas
  • Cómo configurar un servidor NFS
  • Cómo configurar Samba básico
  • Cómo configurar Samba denegando acceso a ciertos ficheros
  • Cómo configurar Samba con Papelera de Reciclaje
  • Cómo instalar y configurar Samba-Vscan en CentOS 5
  • Cómo configurar Samba como cliente o servidor WINS
  • La ingeniería social y los [incorrectos] hábitos del usuario
  • Configuración básica de Sendmail
  • Opciones avanzadas de seguridad para Sendmail
  • Cómo configurar Sendmail y Dovecot con soporte SSL/TLS
  • Cómo configurar Cyrus IMAP
  • Instalación y configuración de SquirrelMail (correo a través de interfaz HTTP )
  • Cómo instalar GroupOffice en CentOS
  • Apéndice: Enviar correo a todos los usuarios del sistema
  • Cómo configurar clamav-milter
  • Cómo configurar spamass-milter
  • Cómo configurar un servidor NIS
  • Cómo configurar OpenLDAP como servidor de autenticación
  • Cómo configurar OpenLDAP como libreta de direcciones
  • Cómo configurar OpenLDAP con soporte SSL/TLS
  • Cómo instalar y configurar MySQL
  • Configuración básica de Apache
  • Cómo habilitar los ficheros .htaccess y SSI )Server Side Includes) en Apache
  • Cómo configurar Apache con soporte SSL/TLS
  • Cómo configurar un servidor de nombres de dominio (DNS)
  • Cómo configurar Squid: Parámetros básicos para Servidor Intermediario Proxy
  • Cómo configurar Squid: Acceso por autenticación
  • Cómo configurar Squid: Restricción de acceso a Sitios de Red
  • Cómo configurar Squid: Restricción de acceso a contenido por extensión
  • Cómo configurar Squid: Restricción de acceso por horarios
  • Cómo configurar squid con soporte para direcciones MAC
  • Apéndice: Listas y reglas de control de acceso para Squid
  • Cómo configurar un muro cortafuegos con Shorewall y tres interfaces de red
  • Cómo configurar un servidor de OpenVPN en CentOS 5
  • Cómo configurar SNMP
  • Cómo configurar MRTG
  • Cómo instalar Java 1.5 en CentOS 5
  • Cómo instalar la complemento (plug-in) Flash Player para Firefox y otros
  • Cómo configurar escáner en red
  • Usando Smartd para anticipar los desastres de disco duro
  • Cómo crear un disco con instalación personalizada de CentOS 5
  • Glosario de mandatos básicos
  • Ejercicios

En resumen: un libro más que completo.

Para quien lo desea en papel, se pueden adquirir copias impresas en Lulu.com.

Ciclo de charlas UNLUX 2008: Integrando Disciplinas

El Grupo de Usuarios de Software Libre de la Universidad Nacional de Luján (UNLUX) invita a toda la comunidad educativa, profesionales e interesados en Tecnologías de la Información al “Ciclo de charlas UNLUX 2008”.

Esta segunda edición tiene por objetivo difundir el software libre integrando las diferentes áreas de la comunidad y de nuestra Universidad (sectores estudiantiles, docentes y no docentes), y extender el conocimiento acerca de esta nueva tendencia tecnológica presentando sus virtudes desde diferentes puntos de vista.

La jornada estará compuesta por charlas técnicas e informativas, cuyos principios fundamentales son el fomento y la difusión del software libre como herramienta de uso cotidiano, y se llevará a cabo el sábado 22 de noviembre de 2008 en la sede central de la Universidad Nacional de Luján.

La apertura de las charlas se realizará a las 10:00 hs. y el cronograma de las mismas se extenderá hasta las 18:00 hs. aproximadamente, con un receso entre las 13:00 y las 14:00.

Como es usual, el encuentro es libre, gratuito y abierto a la comunidad. La única y humilde condición de acceso es TRAER MATE.

Encontrarán más información en el sitio web del UNLUX.

Esperamos contar con la participación de todos!!

Disponibles en Internet algunos cursos de Stanford

Gracias al gran Tomás me entero de que la Universidad de Stanford ha puesto en Internet algunas de las clases que imparte en su escuela de ingeniería, gracias al programa Stanford Engineering Everywhere (SEE), que ofrece material de algunos de los cursos impartidos en dicha institución. Hay videos y transcripciones de las clases en varios formatos. Los cursos actualmente disponibles pertenecen a las áreas de Ciencias de la computación, Inteligencia artificial y Sistemas lineales y optimización.

Bien por esta iniciativa, no tanto por la otra, de la que me ha advertido Gustavo.

Materiales del máster de Software Libre de la UOC

Esta es una del mes pasado que me había quedado en el borrador, sin publicar. Por suerte Marcelo había avisado en la lista del Unlux.

kokiperex cuenta en Barrapunto:

Me entero por la lista Linux de la PUCP de una buena noticia: la Universitat Oberta de Catalunya (UOC) ha liberado todos los materiales didácticos de su Máster oficial de Software Libre. Son catorce cursos y se pueden descargar desde su portal OpenCourseWare. Hay cursos de redes, seguridad, bases de datos, desarrollo de software, etc.

El material disponible corresponde a los cursos:

Videos y material de cursos universitarios sobre Ciencias de la Computación (en inglés)

En el sitio web http://www.aduni.org/courses/ se encuentran disponibles bajo licencia CCA-SA los videos y el material completo (en inglés) de los cursos sobre Ciencias de la Computación dictados por la ArsDigita University durante los años 2000 y 2001.

El ArsDigita University (ADU) fue un programa anual e intensivo de pos-bachillerato en Informática basado en el curso de pre-graduados del Massachusetts Institute of Technology (MIT). El programa no requería el pago de cuotas, fue financiado y apoyado por la ArsDigita Foundation, y la mayoría de los instructores eran profesores del MIT. La misión principal de la ADU y del sitio web de ADUni.org es “… ofrecer la mejor educación en Ciencias de la Computación del mundo, a nivel de pre-graduado, a la gente que actualmente no puede acceder a ella”.

Los cursos con material disponible son:

Matemática para ciencias de la computación, dictado por Tara Holm
Una introducción básica al Cálculo y al Álgebra lineal. Comprende cálculo diferencial: gráficas de funciones, límites, derivadas, diferenciación sobre problemas del mundo real; cálculo integral: suma, integración, áreas bajo la curva y cálculo de volúmenes; álgebra lineal: espacios de vector, transformaciones lineales, matrices, operaciones sobre matrices y diagonalización.

Estructura e interpretación de programas de computadora, por Holly Yanco
Una introducción a la programación y al poder de la abstracción, basado en el libro homónimo de Abelson y Sussman. Los conceptos clave incluyen: construcción de abstracciones, procesos computacionales, procedimientos de orden superior, datos compuestos, abstracciones de datos, operaciones genéricas, intercambio de mensajes, flujos, interpretación de lenguajes de programación, modelo de máquina, compilación y lenguajes embebidos.

Matemática discreta , por Shai Simonson
Este curso cubre los tópicos matemáticos más relacionados con la Informática: lógica, relaciones, funciones, teoría de conjuntos, técnicas de demostración, inducción matemática, teoría de grafos, combinatoria, probabilidad discreta, recursividad, relaciones recursivas y teoría numérica.

Cómo funcionan las computadoras, por Gill Pratt
Incluye las bases del diseño lógico digital, arquitectura y organización de computadoras, lenguaje ensamblador, diseño de procesadores, jerarquías de memoria. El conjunto de problemas se basa en la utilización del simulador RISC Beta-Sim.

Diseño orientado a objetos, por David Goddeau
Los conceptos del paradigma orientado a objetos, utilizando Java, con énfasis en Ingeniería de Software.

Algorítmos, por Shai Simonson
Se estudia el diseño de algoritmos de acuerdo a su metodología y aplicación. Las metodologías vistas incluyen: divide y vencerás, programación dinámica y algoritmos voraces. Las aplicaciones comprenden ordenamiento, búsqueda, algoritmos de grafos, algoritmos geométricos, matemáticos y de búsqueda de cadenas.

Sistemas, por Luis Rodriguez
Se centra en la ingeniería de sistemas de software y hardware: técnicas para el control de la complejidad, infraestructura de sistemas, redes y sistemas distribuidos, atomicidad y coordinación de actividades en paralelo, recuperación y confiabilidad, privacidad de la información, y el impacto de los sistemas de computación en la sociedad.

Aplicaciones web, por Philip Greenspun
Trata sobre el diseño de un sitio web dinámico con un back-end de base de datos, incorporando lenguajes de scripting, cookies, SQL y HTML. Enfatiza las interfaces computadora-humano y el despliegue gráfico de la información.

Teoría de la computación, por Shai Simonson
Un tratamiento teórico sobre qué puede hacerse y cuán rapido. Se habla sobre aplicaciones, compiladores, búsqueda de cadenas y diseño de circuitos de control. Se analizan las máquinas de estado finito, gramáticas libres de contexto y máquinas de Turing, con sus variaciones; y se bosquejan las nociones de decibilidad, teoría de la complejidad y problemas NP-Completos.

Inteligencia artificial, por Patrick Winston
Un vistazo rápido sobre la inteligencia artificial desde los puntos de vista técnicos y filosóficos. Los temas incluyen búsqueda, A*, representación del conocimiento y redes neuronales.

Taller de Unix
Un taller de auto-aprendizaje para conocer y/o volver a ver un amplio conjunto de herramientas de Unix tales como shell scripts, awk, lex, yacc, grep, etc.

Sistemas de gestión de bases de datos, por Ravi Jasuja
Discurre sobre los sistemas de base de datos desde la capa física, B-trees y servidores de archivos, hasta la capa abstracta del diseño relacional. Incorpora alternativas y aproximaciones genéricas al diseño y la administración de base de datos relacionales y orientadas a objetos, estándares SQL, lenguajes algebraicos de consulta, restricciones de integridad, disparadores, dependencias funcionales, formas normales, transacciones, seguridad y data warehousing.

Probabilidad aplicada, por Tina Kapur
Se enfoca en el análisis, modelado y cuantificación y de la incertidumbre mediante la enseñanza de variables aleatorias, procesos aleatorios simples y sus distribuciones de probabilidad, procesos de Markov, teoremas de límites, elementos de inferencia estadística y toma de decisiones bajo condiciones de incertidumbre.

Realmente encontré aquí un compendio de recursos muy interesantes sobre ciencias de la computación, disponibles para todo el mundo. Lamentablemente, debido a dificultades para encontrar financiamiento y disputas legales entre los fundadores y miembros de la corporación, el programa fue discontinuado tras la graduación de la primer promoción.

Ojalá que sigan surgiendo proyectos de esta naturaleza, que permitan acercar el conocimiento, en forma libre y gratuita, hacia toda la comunidad. Y si fuera en castellano, mucho mejor…

CD-ROM de materiales de FLOSSIC 2007

En el marco del Congreso Internacional de Sistemas de Software Libre y de Código Abierto desarrollado en Jerez de la Frontera los días 7, 8 y 9 de marzo de 2007 se distribuyó un CD-ROM recopilatorio de documentación digital acerca de software libre.

Entre los contenidos del mismo figuran las actas de los trabajos presentados en el congreso, libros y artículos sobre la filosofía del software libre, documentos, tutoriales, guías y manuales muy completos sobre aplicaciones y sistemas operativos libres.

Pueden acceder a la versión on-line del CD-ROM, aunque les recomiendo que descarguen el contenido del mismo porque es una muy buena compilación.

Van mis felicitaciones a los editores del CD.

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress