Predicciones al futuro de la programacion

Andando un poco en Stackoverflow me encontre con esto y me hizo bastante gracia!

My predictions for the future of programming:

  • Every 2 years there will be a great hot new language that you just have to use.
  • Every 5 years Microsoft will come up with a completely new way to create GUIs.
  • Every 10 years someone will come up with a great new software development methodology.
  • Every 20 years someone will come up with a great new programming paradigm.
  • Until the heat death of the universe, there will still be more installed and running legacy Cobol code than everything else put together.

Bastante gracioso! :P

Hoy llego mi libro de Design Patterns o lo que queda de él

Hoy llego un libro que tenía un rato esperando, Design Patterns de Head First, es parte de una colección de libros muy buenos sobre programación, en este caso sobre patrones de diseño de software, me lo recomendo David Ramírez.

Lo entregaron el día de hoy por la mañana en mi casa, no había nadie en ese momento así que nadie lo recibio y lo pasaron por debajo de la puerta principal.

Todo bien hasta aquí, si no es por el hecho de que tengo 3 perros que todo lo que tengan cerca piensan que es un juguete, así que el libro termino de la siguiente manera:

Libro destrozado

Al parecer tiene arreglo, puedo empastarlo de nuevo y leerlo, pero la moraleja aquí es: “prevee tus entregas, no siempre serán sencillas”.

Algo esta cambiando

Algo esta cambiando en la ciudad de León Guanajuato, en un mes he visitado 3 empresas y las diferencias entre ellas y en general todas las empresas de un año para acá es enorme.

En la empresa que trabajaba anteriormente todos eramos Cowboy Coders, no usábamos ninguna metodología, es más ni un control de versiones existía, esto no ocurre con la siguiente empresa que visite y en la que actualmente laboro, en estas se basan en metodologías y patrones de diseño para hacer su trabajo.

Me da un gusto enorme ver que estamos dejando de hacer software artesanal y ya comenzamos a crear software de calidad basado en patrones y arquitecturas.

Mi objetivo ahora será cambiar la mentalidad de la gente de TI de mi lugar de origen, San Francisco del Rincón Guanajuato.

Destilando Web 3 Guanajuato, la información

Y de nueva cuenta como hace unos meses nos volvemos a reunir el 25 y 26 de Abril para charlar sobre web, Tequila Valley, proyectos, programación, diseño, mercadotécnica, contabilidad para diseñadores y desarrolladores, áreas de oportunidad y un largo etc…, todo esto en el 3er Destilando Web de Guanajuato.

En esta ocasión tendremos algunos elementos extra, como una acampada en donde realizaremos algunos juegos, nos desvelaremos a la luz de la luna (o de los celulares) y cantaremos con guitarras (o tal vez con la música de algun iPod), además de que realizaremos un pequeño miniBarCamp de modo de ejemplo para los que no lo conocen se enteren de que trata y otros muestren ese gran talento que tienen.

De nuevo abrimos la invitación para cualquier persona, tanto involucradas en desarrollo y diseño web como a las que sienten que no tienen nada que ver, recordamos que ya hemos tenido Contadores, Maestros, Dentistas, Abogados, Diseñadores de Interiores y más en los Destilando Web pasados y todos hemos encontrado alguna forma de apoyo entre todos, la idea es que vayan, compartan, aprendan, se diviertan y saquen provecho de este tipo de eventos.

Ubicación

Carretera a Duarte Km 5.3


Ver 3er DW #TqV_Gto en un mapa más grande

Itinerario

Sabado:

  • 2:30pm a 3pm – Punto de Reunión Estacionamiento McDonalds Centro Max
  • 4pm – 5pm – Presentaciones eh introducción
  • 5pm – 9:30 – MiniBarCamp, vamos a mostrarle a los que no pudieron ir como es un BarCamp en pequeño
  • 9:30 – – Cena, juegos, acampada, fogata, cine y demás.

Domingo

  • 9am – 10am – Desayuno
  • 10am – 2pm – Presentación de proyectos, armar equipos y avisos de TQV.
  • 2pm – Comida

Estamos pidiendo una cooperación de recuperación de 150 pesos para los que vayan ambos días y 75 para los que vayan solo un día, esto para los gastos de las 3 comidas. Además les pedimos que nos llenen un pequeño formulario de registro para saber cuanta gente irá y coordinar el transporte, lugar en casas de campaña y comida.

Para la gente que se va a quedar a dormir, les pedimos las siguientes recomendaciones:

  • Si tienes trae tu casa de campaña
  • Sleeping o cobijas
  • Lámpara (nunca sabes en que la puedas ocupar)
  • Repelente contra mosquitos
  • Ganas de convivir con la naturaleza :D
  • Recordemos dejar el lugar en mejores condiciones de como lo encontramos

Bebidas coquetas auspiciadas por iniciativa propia… Saluuuuudddd!!!!

Tenemos muchas sorpresas preparadas para todos, los esperamos este 25 y 26 de Abril, no se arrepentirán.

PD: Les mostraremos un poco de las famosas Guacamayas y unos frijoles Puercos buenisimos que prepara Daniel Niquet!.

Crea un Popup no intrusivo

Repite mentalmente: No es bueno usar Popups. En los sitios web algunas veces es necesario usar un Popup, existen algunas formas de hacerlo, como esta:

<a href="popup.html" onClick="window.open('popup.html', 'windowname1', 'width=200, height=77'); return false;">Popup</a>

La cual si lo vemos bien no es del todo mala, ya que el navegador entiende que tiene que ir a Popup.html (aunque JavaScript este desactivado), pero usa el evento onClick y tiene embebido el JavaScript en el mismo enlace, algo no muy óptimo si lo queremos usar en varios lugares nuestro popup, además de que no es del todo accesible.

Este detalle se soluciona de una manera rápida y sencilla, dejando el link como lo que es, solo un enlace a una pagina y dejándole a JavaScript la carga de abrir el Popup, además de poder tener varias configuraciones tanto de tamaño, mostrar barras, etc.

Primero necesitamos crear un enlace, para esto se hace uno como cualquier otro, solo con la característica de que lleva una clase de CSS llamada popup:

<a href="http://www.google.com" class="popup" >Link</a>

Esta clase sera buscada por el JavaScript (podemos usar Alt, ID, etc… a mi me gusto class) en todo el documento, cuando la encuentre usara una funcion interna para abrir el Popup con las configuraciones que nosotros le digamos.

El JavaScript:

var popupConfig = new Array;

//Ejemplo de uso:
// popupLinkConfig["nombreClase"] = new Array ( "target", "width=100, height=100, scrollbars=yes, resizable=yes, status=yes, toolbar=yes, location=yes,menubar=yes");

popupConfig["popup"] = new Array("", "width=640,height=480,scrollbar=yes,menubar=yes");
popupConfig["popupbig"] = new Array("", "width=800,height=650,resizable=yes");

window.onload = initPage;

function initPage() {
    initPopupLinks();
}

function initPopupLinks() {
    if (!document.getElementsByTagName) return true;
    var pageLinks = document.getElementsByTagName("a");
    for (var i = 0; i < pageLinks.length; i++) {
        if (((pageLinks[i].className != null) &&
         (pageLinks[i].className != "")) ||
        ((pageLinks[i].parentNode.className != null) &&
         (pageLinks[i].parentNode.className != ""))) {
            var linkClass = " " + pageLinks[i].className + " ";
            if ((linkClass == "  ") && (pageLinks[i].parentNode.className != "")) {
                linkClass = " " + pageLinks[i].parentNode.className + " ";
            }
            for (var theKey in popupConfig) {
                if (linkClass.indexOf(" " + theKey + " ") > -1) {
                    if ((pageLinks[i].target == "") || (pageLinks[i].target == null)) {
                        pageLinks[i].target = (popupConfig[theKey][0] != "") ? popupConfig[theKey][0] : theKey;
                    }
                    pageLinks[i].settings = popupConfig[theKey][1];
                    pageLinks[i].onclick = popUp;
                }
            }
        }
    }
    return true;
}
function popUp() {
    newWin = window.open(this.href, this.target, this.settings);
    newWin.focus();
    return false;
}

Este código JavaScript lo tienes que guardar en un archivo js y nombrarlo como se te de la gana, solamente requieres mandarlo llamar desde tu html para que pueda usarse.

Ahora si te fijaste bien al inicio de código vienen unas lineas de configuración, las cuales son totalmente editables y te permiten tener tantas variantes de popups como tu decidas.

popupLinkConfig["nombreClase"] = new Array ( "target", "width=100, height=100, scrollbars=yes, resizable=yes, status=yes, toolbar=yes, location=yes,menubar=yes");

solo es necesario modificar “nombreClase” y “target” (normalmente yo lo uso en blanco) para que puedas tener una nueva configuración de popup, edita el width y el height para modificar el ancho y alto, y las demás opciones son ya para que juegues con ellas.

Espero que este sencillo tip te sirva para mejorar la accesibilidad y la programación de tus sitios web.