Mostrando entradas con la etiqueta Lectura Recomendada. Mostrar todas las entradas
Mostrando entradas con la etiqueta Lectura Recomendada. Mostrar todas las entradas

jueves, 25 de junio de 2015

¿Cómo tu código fuente podría salvar el mundo?

El camino por convertirse en un buen desarrollador nunca termina, recuerdo cuando apenas veía introducción a la programación, no importaba realmente cómo codificaba, el objetivo era un solo: ¡Que compilara! (...) Y sí, teníamos unos pequeños engendros en archivos de texto que con dificultad luego podríamos reconocer como propios.

Luego nos preocupamos por que el código hiciera lo que tenía que hacer, resultó ser el mismo engendro pero compilando y funcionando correctamente... Seguramente quienes no tomaron el camino del desarrollo hasta aquí llegaron. Sin embargo, quienes optamos por procesar el café para convertirlo en código seguimos avanzando, prontamente aprendimos mejores prácticas de programación, cómo nombrar adecuadamente nuestras variables, algunos frameworks que facilitaron nuestra vida y de repente nuestro trabajo drásticamente artístico pasó a hacer toda una pieza de ingeniería de software, cuyo diseño y funcionamiento impecable quizá contrastaban contra la poca documentación... ¡Pero es que ese código habla por sí mismo! No necesita más documentación.

 
Finalmente nos enseñaron algo de eficiencia, no lo explicaron en términos de "Complejidad algorítmica" y lo entendimos como "Si está lento, necesitas un mejor PC". Y así fue como toda una teoría de la computación pasó a segundo plano. Hoy no es raro encontrarnos con código productivo cuyos algoritmos están hechos, digamos, "A lo maldita sea", quizá por el empeño de dar una solución rápida a los proyectos, falta de experticia o quizá por nuestra falta de imaginación y no pensar un poco más allá.

Pero ¿Por qué es importante la eficiencia? Quizá debí empezar por aquí, pues un software diseñado con buenas prácticas y los mejores algoritmos no necesariamente sea el más rápido para procesar una acción, sino el que mejor administra los recursos que tiene para hacerlo... ¿Y qué es administrar mejor los recursos? ¿Es usar toda la RAM? ¡Para eso está! ¿Usar toda la CPU? ¡Para eso Intel/AMD lo construyó así! ¿Será acaso usar todo el disco duro? Pues para eso compramos discos ya en terminos de terabytes.

La respuesta es depende porque cada sistema y el negocio que está soportando tiene sus particularidades... Pero vayamos a un software que per se está poco o nulo optimizado ¿Qué pasaría si lo mejoramos en pro de la eficiencia? Mi respuesta es una teoría tan inquietante como sorprendente: ¡Podría salvar el mundo!. Tener código estructurado eficientemente necesariamente tendría un impacto positivo en el uso de los recursos, como comenté antes, esto no quiere decir que el usuario vea que ahora funciona más rápido aunque puede que sí, sino que reduciríamos, por ejemplo, la carga de uso media de CPU, quizá también liberemos algo memoria y por lo pronto también, quizá nos ahorremos un par de llamadas extras a los discos duros.

"Source Code" es una película por allá de 2011, no tiene nada que ver con el post pero me pareció graciosa la imagen para ambientar mi teoría.

¿Y cómo eso podría salvar el mundo? Bueno, alguna vez notaste que al exigir tu PC o portátil ¿Este se calienta más? Esto sucede porque de la misma forma, requiere más energía para responder a tus exigencias... Así las cosas, el primer paradigma a quitarnos de la mente es que sí se puede ahorrar energía eléctrica aún cuando el servidor esté encendido toda la noche. En Internet hay varias herramientas que puedes usar para calcular el uso de energía de un equipo de cómputo en ciertas circustancias. Para soportar mi teoría, encontré un interesante estudio de la Universidad de Pensilvania en el que tenemos el consumo en watts de varios equipos de cómputo sometidos a prueba:


Make & Model Basic Specifications Off (plugged in) Boot (peak) Moderate Use (range) Quiescent (5 minutes of no activity) Sleep
Apple iMac/Intel
21.5-inch
(purchased late 2012)
Core i5, 8.0 GB RAM,
1.0 TB hard drive,
OS X 10.8.2 (clean)
1 60 52-56 44
(18 w/ LCD in sleep)
1
Apple iMac/Intel
21.5-inch
(purchased late 2011)
Core i5, 4.0 GB RAM,
500 GB hard drive,
OS X 10.7.4 (clean)
1 105
92-96 88
(38 w/ LCD in sleep)
1
Apple iMac/Intel
27-inch
(purchased late 2009)
Core i5, 4.0 GB RAM,
1.0 TB hard drive,
OS X 10.7.4 (clean)
1 177 141-147 130
(73 w/ LCD in sleep)
1
Apple iMac/Intel
24-inch
(purchased early 2009)
Core 2 Duo, 4.0 GB RAM,
640 GB hard drive,
OS X 10.6.2 (clean)
1 141 146-154 88
(42 w/ LCD in sleep)
1
Dell Optiplex 9010 All-in-One
23-inch
(purchased late 2012)
Core i7, 8.0 GB RAM,
500 GB hard drive,
Windows 8 Pro (clean)
1 61 43-45 43-44 1
Dell Optiplex 9010
w/ Dell LCD
(purchased mid 2012)
Core i7, 8.0 GB RAM,
Windows 7 Ultimate (clean)
1 48 66 20-22 1
Dell Optiplex 990
w/ Dell LCD
(purchased mid 2011)
Core i7, 8.0 GB RAM,
Windows 7 Professional (clean)
1 86 33-37 28 1
Dell Optiplex 980
w/ Dell LCD
(purchased mid 2010)
Core i7, 4.0 GB RAM,
Windows 7 Professional (clean)
1 66 64-71 46-61 1
Dell Optiplex 780
w/ Dell LCD
(purchased late 2009)
Core 2 Duo, 4.0 GB RAM,
Windows 7 Professional (clean)
2 108 not tested not tested 1
Dell Optiplex 760
w/ 19-inch Dell LCD
(purchased late 2008)
Core 2 Duo, 2.0 GB RAM,
160 GB/7200 RPM hard drive,
UltraSharp 1907FPV display,
Windows 7 Ultimate (clean)
1 116 95-111 81-83
(50-52 w/ LCD off)
1
Lenovo ThinkCentre M91
w/ Lenovo LCD
(purchased early 2012)
Core i7, 8.0 GB RAM,
Windows 7 Professional (clean)
1 88 50-68 40 1

Computer Power Usage
https://secure.www.upenn.edu/computing/resources/category/hardware/article/computer-power-usage

Como podemos notar, un computador exigido al máximo está consumiendo hasta 40% más energía (Dependiendo del modelo) que el mismo equipo en un uso calificado como moderado. Claro, si hablamos de optimizar un algoritmo que se lleva el 100% de la CPU para que solo lo haga 60% no es una tarea fácil (Empezando porque en lo primero que pensaríamos es en comprar un nuevo servidor de acuerdo a nuestros fundamentos en optimización de algoritmos que mencioné antes), aunque he de decir también, que he visto casos en los que en verdad, hay soluciones supremamente sencillas para evitar esos picos de uso de hardware sin sacrificar considerablemente el estado del algoritmo.

Pero eso es un mundo ideal de unicornios y hadas madrinas, seamos incrédulos, supongamos que solo optimizamos con dificultad nada más que un 10% (...) Vienen entonces las siguientes preguntas a mi teoría ¿No se ahorrarán unos pocos watts al año? ¿Y si nuestro sistema corre sobre varios servidores?, ¿Por varios años?... Pues mi percepción es que en el estado en que tenemos a nuestro planeta, cada watt ahorrado, por ínfimo que parezca cuenta. La diferencia es la que haríamos todos si codificamos con la eficiencia en mente.

¿Cómo optimizar nuestro código para salvar al mundo? 


Mi recomendación básica, es ser muy aplicado con las buenas prácticas de programación, esto incluye:

  1. Usar los tipos de datos adecuados para nuestra aplicación. Ej. no usar integer si voy a guardar solo 1 y 0, en ese caso usar boolean ahorraría algo de memoria. 
  2. Analizar detenidamente las consultas a fuentes de datos de tal forma que solo se cargue la información necesaria y haciendo uso de las facultades del motor (Caché, llaves primarias, por ejemplo). 
  3. Arquitecta tu aplicación, diseños modulares y funciones centralizadas permitirán enfocarte mejor en la solución y eventuales inconvenientes de rendimiento. 
  4. Utiliza herramientas de análisis estático de código. Por ejemplo, en Java utilizo Sonar, que da muy buenos tips acerca de la codificación del software.
  5. Reduce al mínimo el nivel de verbosidad de logs de la aplicación y auditoría.
  6. Mientras tu software está en producción ¡Mide su rendimiento! 
  7. Y más importante, nunca dejes de pensar en cómo podrías hacer tu software mejor.
Puede que mi teoria resulte aún un poco fantasiosa y distante para nuestra realidad allá frente al código, pero sigo pensando que en nuestro que hacer diario, siempre podemos hacer algo para que nuestro mundo sea un mejor lugar, por ser más amigables con el medio ambiente... Si pensar desde el código fuente definitivamente no es una opción, seguro estarás pensando de qué otra pequeña forma, podemos salvar el mundo.

martes, 9 de noviembre de 2010

Fedora Magazine Cuarta Edición ¡Disponible!

La comunidad de Fedora Latam ha preparado una excelente edición (concretamente la cuarta) de Fedora Magazine, una revista orientada tanto a colaboradores como usuarios de ésta buena distribución.


Esta edición nos trae:


  • Las notas de lanzamiento de la recién salida Fedora 14, Laughlin.
  • Mini-tutorial sobre NTLMAPS. 
  • Proxy de autentificación sobre M$ISA Server Proxy
  • CouchDB: bases de datos Non-SQL. 
  • Anuncio oficial sobre la sede del Próximo FUDcon LATAM a realizarse del 26 al 28 de Mayo del 2011.
  • Y más!
La página oficial de Fedora Magazine en la Wiki de Fedora es:

Descarga Fedora Magazine:

lunes, 4 de octubre de 2010

Revista Linux+ Edición de Octubre ¡disponible!

Ya se encuentra disponible la edición de octubre y la novena publicación en línea en formato PDF de la revista Linux+.




En ésta edición tenemos:
  • Android en la era digital al alcance de tu dispositivo
  • ¿Que es el Sistema de Administración de Procesos?
  • Android en la Industria Musical: Aplicaciones en miniatura
  • Android y sus aplicaciones
  • Recuperación de archivos borrados o corruptos con Linux
  • Viviendo con Linux: historias reales de usuarios reales

Puedes descargarlo desde:
http://lpmagazine.org/es/magazine/1539-android-en-la-era-digital-al-alcance-de-tu-dipositivo-favorito-10-2010

martes, 31 de agosto de 2010

Revista Linux+ Edición de Septiembre ¡disponible!

Ya se encuentra disponible la edición de septiembre y la octava publicación en línea en formato PDF de la revista Linux+.


Como es costumbre este número nos trae interesantes artículos!

  • Gestión de backups mediante Bacula
  • Ad|Quiere: distribución gratuita para imágenes forenses
  • Virtualización en Entornos Corporativos
  • Consejos Prácticos en Seguridad TI
  • Dropbox: Mantén tus archivos sincronizados en la nube
  • Acceso a BBDD MySQL usando PHP
  • CheapSounD: Chiptunes, LoFi, Soundtrackers, 8-bits Bands y otras rarezas
  • “¿Café? No, gracias”, respondió el servidor DNS
Puedes descargarlo desde:
http://lpmagazine.org/es/magazine/1466-seguridad-ti-en-la-pyme-09-2010

lunes, 9 de agosto de 2010

Fedora LATAM Magazine

La comunidad de Fedora Latinoamérica ha presentado la primera edición de Fedora LATAM Magazine una interesante publicación e iniciativa en línea que pretende acercar más a los usuarios de ésta buena distribución con la comunidad y a su vez ser un medio más de aprendizaje y conocimiento.


Esta edición nos trae:

  • En conoce Fedora.
    Paul Frields: Experiencias a cargo de Proyecto Fedora.
  • Robótica Educativa.
    Fedora como sistema para la integración de conocimientos
  • Trucos.
    Obtener contraseñas de redes Wifi desde Fedora Parte1
    Instalando KVM con QEMO, Virtualiza!!
  • Comunidad.
    Freemedia en Latinoamérica
  • Eventos.
    FUDcon LATAM en Santiago
    FISL11, Porto Alegre viste Fedora

Puedes descargar Fedora LATAM Magazine desde:
http://tatica.fedorapeople.org/Latam-Magazine/0001/0001.pdf

lunes, 2 de agosto de 2010

Revista Linux+ Edición de Agosto disponible

Ya se encuentra disponible la edición de agosto y la séptima publicación en línea en formato PDF de la revista Linux+.


Esta edición nos trae:

  • Computación Híbrida: Co-diseño Hardware-Software
  • Ejercicio de Creación de Oferta y Demanda del Software Libre
  • Descubriendo Linux: ¿Qué debes saber si no sabes nada?
  • Virtualización con OpenVz
  • gPXE: Arranque de Sistemas Operativos en Red con Software Libre
  • Introducción al software multimedia en Linux
  • Grupos, usuarios y permisos en Linux
  • LocuLinux 2.0
  • Si quieres ser un experto… enseña sin presumir

Como verás, éste número no te los puedes perder, descárgalo desde:

http://lpmagazine.org/es/magazine/1295-computacion-hibrida-co-diseno-hardware-software-8-2010

jueves, 1 de julio de 2010

Revista Linux+ Edición de Julio disponible

Ya se encuentra disponible la edición de junio y la sexta publicación en línea en formato PDF de la revista Linux+.



En esta edición tenemos:

  • Metasploitable: Entorno de entrenamiento de Seguridad Informática
  • Kernel Linux: Conócelo a fondo
  • Linux SmartCheap: Construcción desde la nada
  • XHTML, PHP y SQL: Generación de exámenes online autocorregidos
  • Plataforma OSOR: Balanceo de máquinas virtuales en alta disponibilidad

Sin duda no te la puedes perder. Descarga:

http://lpmagazine.org/es/magazine/1056-pyflag-5-2010-65

domingo, 6 de junio de 2010

Revista Linux+ Edición de Junio disponible

Ya se encuentra disponible la edición de junio y la sexta publicación en línea en formato PDF de la revista Linux+.


En esta edición encontramos:

  • Hacking Arduino: ¿Cómo llegar al interior y modificarlo?
  • Cifrado de archivos: Protección con las herramientas open source
  • Soluciones sostenibles: Tecnologías para el desarrollo humano
  • Aplicaciones matemáticas en sistemas GNU/Linux
  • Asturix: libre, abierto y para todos
  • KontrolPack: Controla los equipos de tu red
  • Sé tu propio jefe

Puedes descargar la revista Linux+ desde:

http://lpmagazine.org/es/magazine/1096-proteccion-de-archivos-madiante-cifrado-6-2010-66

lunes, 3 de mayo de 2010

Revista Linux+ Edición de Mayo disponible

Ya se encuentra disponible la edición de mayo y la quinta publicación en línea en formato PDF de la revista Linux+.


En esta edición encontraremos:

  • PyFlag
    Interfaz gráfica de usuario para análisis forense
  • Plantillas Joomla
    Moderniza el diseno de tu web
  • Cómo elegir un buen hosting
    Qué aspectos deberías tener en cuenta
  • Paralelización de procesos
    En busca del tiempo escondido
  • Plataforma OSOR
    SAN de alta disponibilidad con Linux
  • Menores en redes sociales
    Uso del software libre en un movimiento social para su protección
Puedes descargar la revista Linux+ desde:
http://lpmagazine.org/es/magazine/1056-pyflag-5-2010-65

viernes, 2 de abril de 2010

Revista Linux+ Edición de Abril disponible

Ya se encuentra disponible la edición de abril y la cuarta publicación en línea en formato PDF de la revista Linux+.


 Esta edición nos trae:


  • Informática forense y software libre
  • Hachoir: Framework para manipular archivos binarios
  • Maemo 5: La apuesta de Nokia por el Software Libre…
  • Introducción al desarrollo de videojuegos con SDL.NET
  • Endian Firewall: un cortafuegos para todos los públicos
  • De Claroline a Mentor
  • De vender cajas a preocuparse por el cliente
Para descargar Linux+ por favor visita:
http://lpmagazine.org/es/magazine/1045-informatica-forense-y-software-libre-4-2010-63

jueves, 4 de marzo de 2010

Revista Linux+ Edición de Marzo disponible

Ya se encuentra disponible la edición de marzo y la tercera publicación en línea en formato PDF de la revista Linux+.


En esta edición destaca:
  • Un router BGP sobre GNU/linux
  • DBAN: Elimina de forma segura toda la información de tu disco duro
  • Recolección de datos en GNU/Linux para propósitos forenses
  • Airbase y KARMetasploit: Despliegue de puntos de acceso ilícitos (Rogue AP)
  • Iniciación a MySQL avanzado
  • WEKA y jTwitter: Gestiona Twitter de manera inteligente
  • Go: el nuevo lenguaje de programación de Google
  • Comunicación entre procesos: En busca del eslabón perdido
  • Automatización de tareas con ShellScripts
  • Linux y la seguridad "digital"
Para descargar Linux+ por favor visita:
http://lpmagazine.org/es/magazine/1019-airbase-y-karmetasploit-3-2010-62

martes, 2 de marzo de 2010

Revista ATIX Número 16 disponible!

La fundación AtixLibre en cabeza de nuestro amigo Esteban Saavedra ha anunciado la disponibilidad de la revista ATIX número 16 (primera del presente año) cargada de novedades e interesantes artículos, destacando:


  • Herramientas libres para pruebas de software.
  • Pruebas de estrés en aplicaciones Web con JMeter.
  • Bases de datos documentales.
  • Pandora: una nueva alternativa de monitoreo.
  • Willay news.
  • Comics.
  • Arte libre.
Sin duda es una muy buena publicación que vale la pena leer!

Descarga ATIX Número 16 desde:
http://www.softwarelibre.org.bo/esteban/files/86/296/atix16.pdf

Anuncio Oficial:
http://revista.atixlibre.org/2010/03/01/revista-atix-numero-16-liberado-no-1-del-2010/

sábado, 20 de febrero de 2010

80 cosas que probablemente no sepas sobre Linux y Microsoft

Navegando por la red, dí con dos interesantes artículos publicados en eWeek Europe con curiosidades acerca de Microsoft y Linux... así que antes de hacer un vulgar Copy Paste, prefiero compartir con ustedes los links como una lectura recomendada:

Sin duda, resultan entretenidos...

martes, 2 de febrero de 2010

Revista Linux+ Edición de Febrero disponible

Ya se encuentra disponible la edición de Febrero y la segunda publicación en línea en formato PDF de la revista Linux+.


En esta edición destaca:
  • Infraestructuras de Clave Pública (KPI) en GNU/Linux
  • CAINE & DEFT Distribuciones Forenses GNU/Linux
  • Introducción al desarrollo de aplicaciones web con Mono
  • Clonación automática de equipos con FOG
  • Reciclando hardware obsoleto con GNU/Linux
  • KnowledgeTree, del papel al byte
  • LyX: escribe tus artículos científicos con estilo
  • Linux en el instituto, segunda parte
  • Joomla: Ventajas e inconvenientes de utilizar Joomla en tu página Web
  • AXiS Virtual en Android: Un instrumento musical de nueva generación
  • Derechos de autor y el timo de la estampita
Para descargar Linux+ por favor visita:
http://lpmagazine.org/es/magazine/1005-seguridad-2-2010-61

lunes, 4 de enero de 2010

Revista Linux+ ahora puede descargarse en formato PDF

Linux+ es una publicación de origen europeo dirigida a profesionales y entusiastas del sistema operativo Linux. Esta revista lleva vendiéndose en las principales tiendas ya un largo tiempo siendo ampliamente reconocida.



Con la llegada del 2010, Linux+ he puesto a disposición del público una versión en PDF de libre descarga (sólo debe suscribirse al boletín de noticias), una gran novedad sobretodo para aquellos que no podemos ir a Europa a comprarla directamente cada mes!

La edición de Enero de 2010 trata los siguientes temas:

  • ¡Primer número on-line para libre descarga! (01/2010)
  • Interfaces gráficas con SDL
  • Make: compilación inteligente
  • Programando con inteligencia (artificial)
  • Theremín Virtual: Un instrumento musical de nueva generación
  • Herramientas forenses para la adquisición de datos
  • Analisis de soportes de datos con herramientas de código libre
  • DNS: Domain Name System
  • Juegos
  • Linux en el instituto: Implementación de un servidor
  • Esclavos de ordenadores nuevos
Sin duda es una publicación que vale la pena echarle un ojo!

Puedes descargar Linux+ de Enero desde:
http://lpmagazine.org/es/magazine/981-sdl-interfaces-graficas-de-usuario

Igualmente allí podrás encontrar publicaciones anteriores.

--
Fuente: Geekets.com