2013/12/24

¿Cuál es el mejor lenguaje de programación?

¿Cuál es el mejor lenguaje de programación?

Aquel que te permite resolver mejor el problema que enfrentas.

Los lenguajes son herramientas.

¿Cuál es la mejor herramienta?

¿Un martillo, una sierra, un hacha, unos alicates, una navaja suiza?

Depende de lo que necesites hacer.

Si eres muy hábil con el hacha quizás puedas usarla para clavar clavos, cortar madera, y preparar sushi.

Pero si tienes un equipo, puede pasar un largo tiempo hasta que todos logren ese nivel de hacking. Y el tiempo también es parte de la ecuación.

También la gente se vuelve parte de la ecuación. Para muchos no es fácil respetar las diferencias y distinguir las particulares habilidades de los demás.

Hay jefes de proyecto que reniegan y se frustran porque nadie más en su equipo logra hacer sushi con el hacha tan potente y de buena calidad que han comprado. Mango de roble, acero americano. ¿Por qué no pueden ser como él? Si escuchara un poco, tal vez llegaría a enterarse que hay un chef entre ellos, que podría preparar el sushi con un pequeño cuchillo que tiene. O, mucho mejor, si le dieran un Ginzu 2013, en lugar de la pesada hacha que le saca ampollas de las manos.

Si finalmente se haciera evidente el hecho que el sushi se prepararía mejor con un cuchillo de cocina, el jefe lo aceptaría a regañadientes, no sin antes haber soltado algunas preguntas como: ¿Y es escalable?

Analizando si el salvavidas es perfectamente circular.

Quizás esa forma de ver los problemas se vuelve un hábito.

Quizás, en el fondo, haya un miedo, quién sabe, cuando se quiere que todo sea perfecto y seguro antes de empezar.

MacGyver salía a sus misiones sin mochila, ni nada en los bolsillos, en la confianza de que podría manejar cualquier situación con lo que encontrara en el camino.

Alguien puede querer lo más potente, lo más fuerte, lo más escalable y garantizado, no tanto porque sea la mejor respuesta al problema, sino porque le da miedo caminar sin protección, sentir el viento en la cara, la arena bajo los pies, el sonido del mar incontrolable. Quizás porque no sabe nadar. O porque una ola lo revolcó y le dejó un trauma hace tiempo.

¿Cuál es el mejor lenguaje de programación? Es una pregunta incompleta. ¿Cuál es el mejor lenguaje de programación, para este problema? está un poco mejor.

¿Y cuál es el problema? Esa quizás es la pregunta por la que se debe empezar. Y tomar en cuenta que nosotros también nos volvemos parte de la ecuación.

2013/12/20

¿Es posible vivir sin dominios?

Un dominio como midominio.com ayuda a acceder más fácilmente a un IP como 123.456.789.123.

También permite que disponga de cuentas de correo como minombre@midominio.com
Dado que el email llego antes que la web, supongo que esta forma de usarlo fue primero.

Recuerdo que cuando estaba en la universidad, antes de google, mantenía en una libreta una lista de los url que me parecían interesantes.

Sin embargo, hoy en día, me parece que la mayoría de las personas no llegan a un site escribiendo el url en el navegador. Generalmente hacemos click en alguna recomendación, de algún site social, como facebook, google+, stack overflow, etc. O de directorios de enlaces como yahoo!, diigo, reddit, etc.

Para muchos es más fácil escribir directamente en google el nombre de lo que buscamos o algo que nos lleve a ello, en lugar de buscarlo previamente en un directorio o incluso nuestros bookmarks.

En lugar de una libreta, podría usar ahora directorios de links recomendados, o acceder a mi bookmark desde cualquier lugar donde corra Chrome, como una PC o un smartphone.

A veces lo hago, pero quizás la mayoría de las veces entro por google.

Es práctico. Google puede funcionar como si fuera nuestra colección de bookmarks.

Entonces, el asunto es aparecer en google. Sin embargo, sabemos que no basta tener un dominio para lograrlo. Podemos comprar el dominio mifamosafloreria.com, pero eso no hará que aparezcamos automáticamente en google cuando busquemos florería o flores.

Deben pasar ciertas cosas que para que eso suceda. Como ser mencionado por otros sites reconocidos. De cómo lograrlo efectivamente tratan los especialistas en SEO.

Aunque la vía de los SEO no es una ciencia exacta y es posible llegar al top por algún golpe de suerte viral, ofrece una metodología para lograrlo.

Técnicamente, es posible hacer SEO de un IP en lugar de un url. Imaginemos que ignoramos todas las desventajas de no tener un dominio y lo logramos. Entonces, cuando la gente entre a google e ingrese florería o flores, aparecerá nuestra página Mi Famosa Florería.

No importará que conduzca a un url con un número. Muchos ni se darán cuenta de ese detalle. Lo importante es que tienen al frente la página que buscaban.

Me pregunto, ¿sería posible vivir sin dominios?. Quizás si no vamos a necesitarlo para un correo corporativo es más sencillo. Si sólo es para tener un site, me parece posible.

The Pirate Bay (TPB) es un site que permite compartir torrents. Los torrents permiten formar archivos con partes distruibuidas por la red. Pueden ser archivos de cualquier tipo.

Debido a disputas por derechos de copia, la presencia de TPB en algunos dominios de internet viene siendo bloqueda. Ha sucedido en USA, Inglaterra, etc. Recientemente, también en Groenlandia y Perú.

Al margen de la validez de un derecho que priva a la mayoría de hacer lo que la tecnología ya nos permite hacer, e ignora el mayor bienestar común que es posible con la libre difusión del conocimiento, o de la moralidad de las intervenciones que censuran por reputación y no por hechos comprobados, resulta interesante ver que esos bloqueos no afectan demasiado a TPB (el por qué de cosas como esas son explicadas en el libro en The Starfish and the Spider).

Hay páginas que funcionan como proxys y ofrecen listas, extensas, de accesos alternativos a TPB.

Ellos anuncian que pronto usarán un sistema donde no importarán los dominios.

Viéndolo un poco en perspectiva, quizás los dominios son como una facilidad que camufla un control central. Los controles centralizados no son muy amigos del espíritu de Internet, que quizás se mueve con más fluidez en un mundo de IP y anonimato. Tal vez sea mejor dejarlos atrás y buscar un modo descentralizado y libre de lograr lo que buscamos.




2013/12/08

Root y Link2SD para Galaxy S3 Mini (GT-I8190L)


Root

  • Consideraciones previas:
    • El proceso de rooteo aquí descrito se supone que no es destructivo, pero siempre es recomendable hacer un backup, principalmente de la información más importante.
    • El proceso puede tardar como 10 minutos. Asegurarse que la batería del celular tenga una buena cantidad de carga (yo lo hice con 20% aunque se recomienda 80%).
    • Tener a mano el cable de conexión USB para conectar el celular a la PC (pero no conectarlo hasta que la guía lo indique).
    • Que en el celular esté activado el modo de depuración.
    • Tener activa la conexión a Internet en la PC.
    • Puede ser que si está instalado una versión antigua de Kies, Odin no reconozca al dispositivo. (A mi me pasó, pero el inconveniente es salvable. Desinstalé Kies y los drivers asociados y más bien instalé los drivers usando el mini toolkit.)
    • Ver las guias completas antes de realizar los pasos.
    • Este post es sólo con fines educativos. La responsabilidad de la ejecución es tuya.
  • Ejecutar Samsung Galaxy S3 Mini Toolkit, que es un programa que permite automatizar muchas de las cosas que hay que hacer a mano en otros tutoriales. (La versión actual 1.3.5 se puede descargar de https://mega.co.nz/#!CghX0bqT!ST73wkDV07JQ8Of84xISTR6p6rNG42gUAJmGX-PKTwM)
  • Seguir las instrucciones del video http://www.youtube.com/watch?v=dO2O6HMQirc 
    • En el video no aparece la opción 33 (la versión del toolkit es más antigua), que se parece mucho a la 32. Yo elegí la 32 y resultó bien.
    • En el video no hacen el paso de instalar los drivers. Yo lo hice y luego continué con las demás instrucciones.
    • Habrá un momento en que indicará conectar el celular a la PC. Hacerlo, pero antes de continuar, esperar a que Windows lo reconozca. El toolkit iniciará Odin (la herramienta que se usa para instalar una nueva ROM en el celular). Cuando Windows reconoce el celular, en Odin la primera casilla ID:COM debe aparecer en azul. Entonces continuar.
  • Luego del rooteo, en la lista de aplicaciones instaladas aparecerá SuperSU.

Link2SD

  • Luego del rooteo, para usar la app Link2SD para enlazar las aplicaciones a la memoria SD externa, se requiere que además se haga una segunda partición primaria en esa memoria. Para ello se puede seguir la guía http://forum.xda-developers.com/wiki/SD_card_partitioning, que usa el programa Mini Partition Wizard. Una guía alternativa es http://www.htcmania.com/showthread.php?t=540481.
    • El programa Mini Partition Wizard se puede descargar de http://download.cnet.com/MiniTool-Partition-Wizard-Home-Edition/3000-2094_4-10962200.html
    • La operación de repartición no se realiza en el celular sino en la PC. Así que hay que entrar a Configuración, Almacenamiento, Tarjeta de memoria, Retirar la tarjeta de memoria. Luego, apagar el celular, quitar la tarjeta de memoria (que esta debajo de la batería) y colocarla en un adaptador que permita conectarla a la PC.
    • Luego que Windows reconozca la tarjeta SD, formatearla y particionarla siguiendo las instrucciones de alguna de las guías. Para el tamaño de la primera partición, elegí FAT32 y todo el espacio disponible menos 1 GB (mi SD es de 8 GB). Para el tamaño de la segunda partición primaria, elegí Ext4 y 1024 MB.
    • Luego de retirar la memoria de la PC y el adaptador, se puede volver a colocar en el celular. Quizás sea necesario reiniciarlo una vez para asegurarse que lo reconozca adecuadamente.
    • Al ejecutar Link2SD, pedirá autorización de root. Luego de dársela, preguntará por el tipo de partición (Ext4 en mi caso) e indicará reiniciar el celular.

Referencias

2013/11/06

El lenguaje de programación correcto

"Las especies que sobreviven no son las más fuertes, sino las que se adaptan mejor al cambio"
-- Darwin

En internet, parece ocurrir algo similar. No prosperan los lenguajes de programación que te hagan más fuerte, sino los que te permitan adaptarte mejor al cambio... en cierto ambiente.

Por ejemplo, php es popular en proyectos educativos y sociales. Java es popular en proyectos empresariales. C es popular en proyectos técnicos. Otras alternativas importantes son Python, Ruby, etc.

Muchas personas tienen sus preferencias y a veces tienden a tomar posiciones, pero es importante ver más allá y recordar cuál es la razón por la que programamos.

Cada lenguaje existe por alguna razón. Porque de algún modo es la mejor respuesta para cierto problema. Porque es la mejor especie en cierto ambiente.

Pienso que no hay una solución "correcta" ni una manera "correcta" de hacer las cosas universalmente. Cada problema contiene su solución, y es importante estar atento a la solución que te está cantando el problema, en lugar de pretender que escuche la que nos gusta cantar.

Así podemos aprender nuevas canciones :-)

¿Cuánto puede mejorar tu software? ¿Qué tan clara es la especificación? A más ciclos de desarrollo, más probabilidad de acercarse al ideal.

¿Cuántos ciclos de desarrollo puedes realizar? ¿Qué tan sencillo es de iterar o incrementar? A más contribuyentes, más probabilidad de encontrar excelentes contribuciones.

¿Cuántos contribuyentes puedes encontrar? ¿Qué tan sencillo es comunicarse? Hay más probabilidad de encontrarlos si los lenguajes son más atractivos, los entornos de desarrollo más asequibles, el camino de inicio más motivador.

Quizás por eso un lenguaje de programación no tan fuerte puede a veces llegar tan lejos. Es importante tener en cuenta el ambiente para prosperar.

2013/10/30

Ajedrez Mental

¿Qué tan buenas partidas de ajedrez puedes jugar mentalmente?

Imagina un grupo de personas reunido para resolver un problema. Luego de acomodarse en el lugar, comienzan a hablar. Y hablar. Y solamente hablar.

La reunión, usualmente tediosa, termina después de un tiempo, usualmente largo, donde los asistentes, usualmente cansados, han llegado a una solución, usualmente sub óptima.

En cambio, en otros lugares se usa una pizarra, o un papel mural, donde los participantes pueden expresar con libertad las ideas que van exponiendo.

Cuando el problema se puede ver escrito en un lugar, nos ahorra el esfuerzo de mantener su imagen mental, y así tenemos más energía para imaginar otras cosas. Quizás la solución. 

Es significativamente mayor el nivel de dificultad de los problemas que podemos resolver usando un diagrama o mapa de la situación en lugar de tratar de imaginar todo, todo el tiempo.

Cuando se trabaja mentalmente, probablemente la imagen mental de cada asistente sea distinta a la del otro. De modo que pronto se encuentran con malentendidos y discusiones fuera del tema. Es bastante fácil que la gente pierda la pista, desista, y finalmente se imponga la ley de la jungla de personalidades, favoreciendo a la más fuerte o carismática.

En cambio, un diagrama o mapa de conceptos está ahí mostrando de qué estamos hablando. Ayuda a mantener el foco de la reunión. Asegura los avances que se van logrando y permite construir una estructura. La sinergía se logra con más facilidad.

Y debería ser más obvio que eso habría de esperarse -si no lo es, habría que preguntarse dónde está escondido el león ;-)

Los tratos por escrito son más seguros que los realizados solo de palabra. Los comerciantes y abogados lo saben. Porque aun cuando las partes actúen honestamente, la memoria es frágil y puede recordar, o dejar de recordar, cosas que la otra persona no.

Los acuerdos escritos ayudan a que evitemos estar peleando una y otra vez las mismas batallas. Y cuando tenemos esa energía liberada, podemos emplearla para pasar al siguiente nivel de complejidad y desarrollo.

Inténtalo en tus reuniones. Escribe qué quieres lograr, escribe qué es lo que tienes y cuál es la situación. Experimenten con ideas de cómo podrían alcanzar lo que quieren. Escriban las conclusiones y acuerdos.

Podrás ver la partida que juegas. Podrás imaginar más variantes y jugadas. Será más fácil volver sobre ella y reflexionar. Será más fácil mejorar las cosas e ir mejorando.

2013/10/29

Solucionando problema vista dinámica en blogger

Puede ser que al usar la plantilla de vista dinámica en blogger, hayas notado que el fondo ya no aparece, o que la mayoría de imágenes no se ha cargado.

Esto se debería a que blogger colocó un script para prevenir que la carga de una página demorara demasiado.

Sin embargo, el tiempo asignado por default es muy poco. Y por eso paginas que antes cargaban bien ahora aparecen con aspecto tristón.

Para solucionarlo, ir al administrador del blog, entrar a Plantilla, Editar HTML y buscar al final del documento u código similar al siguiente:

<script language="javascript" type="text/javascript">
  setTimeout(function() {
    blogger.ui().configure().view();
  }, 1000);
</script>

Observar que he cambiado el 0 que estaba por 1000 milisegundos (1 segundo).

Guardar la plantilla y ver la mejora en la carga.

2013/10/02

Spaghetti code


Se nos ha enseñado acerca del código spaghetti. Como los producidos por abusar del goto en BASIC. O por abusar de los callbacks en Javascript.

Algunos se precipitan en afirmar que los goto no son buenos. Y aunque es un poco difícil afirmar lo mismo de los callbacks, a veces se apresuran en tomar esa postura.

Lo cierto es que el goto puede ser útil, igual que el callback. Lo que no nos parece bueno es el spaghetti que se produce cuando se abusa de ellos. Es importante notar la diferencia.

Los lenguajes de programación modernos tienen la tendencia a eliminar la posibilidad de abuso de goto limitando las estructuras de control de flujo. Es más fácil controlar un problema si no hay opción de que se produzca, en primer lugar.

Sin embargo, más allá de eso, resulta que desde el punto de vista de la máquina, tanto el código spaghetti como uno más estructurado son igualmente correctos y válidos. La buena estructura es una preferencia humana, para facilitar el desarrollo y mantenimiento. El spaghetti code le da igual a la máquina, es al humano el que tiene problemas con él. También es importante recordar eso.

Si hubiera alguna manera de moverse con facilidad y seguridad por el código spaghetti, no habría tanto problema. Me pregunto si habrá algún modo de manejar ese aparente caos, en lugar de evitar que se produzca.

Quizás nunca se puede evitar del todo la ocurrencia del caos, tan solo postergarlo lo más posible. Es conocido que, según crece un proyecto de desarrollo, es más complicado mantenerlo estructurado y oponerse al caos.

Pero, ¿sería posible manejar el caos, en lugar de huir de él? ¿alguna metodología? O, si es demasiado para un humano, ¿sería posible hacerlo con ayuda de un asistente?, ¿podríamos pasar de ser autoempleados en programación a procurarnos la ayuda de la computadora y pasar a otro nivel?

2013/08/27

Resolviendo el virus que crea acceso directo intermediario en memorias y discos portátiles

En días pasados, conecté mi disco duro portátil en una computadora y noté que todos los archivos desaparecían de su directorio raíz y en su lugar aparecía un acceso directo.

Haciendo click en el acceso, se podía acceder a los archivos. Era como si hubiera aparecido un nivel más.

Viendo en la ruta mostrada por el navegador de archivos, aparecía un directorio de nombre vacío conteniendo todo lo demás.

En algunas computadoras con antivirus, aparecía una alerta al intentar ejecutar el acceso.

Buscando en Internet no encontré ninguna referencia al problema.

Felizmente, revisando un poco el disco, encontré que era posible deshacer el cambio manualmente. Así que aquí está el procedimiento por si ayuda a alguien más (ayer tuve el mismo problema luego de usar mi usb en en una computadora pública):

  • Realizar el procedimiento en una computadora limpia, con antivirus. Es decir que no haya ocasionado el problema que describí.
  • En el explorador de archivos, entrar al menú (tecla Alt), y entrar Herramientas, Opciones de Carpeta. Activar ver los archivos ocultos y también ver archivos del sistema (que normalmente están desactivados).
  • Conectar el disco o usb infectado. Podrá ver varios archivos de nombres raros, incluyendo el acceso directo. Pero también uno de nombre aparentemente en blanco.
  • Ingresar a ese directorio de nombre en blanco para verificar que están nuestros archivos.
  • En este punto se pueden hacer varias cosas. Como copiar todos nuestros archivos a otra unidad, formatear el drive infectado y luego copiar otra vez nuestros archivos.
  • Una opción más rápida es eliminar todos los archivos de nombres raros, incluyendo el acceso directo, y dejando sólamente el directorio de nombre en blanco. En el directorio en blanco, también eliminar los archivos raros que notara en su interior (como desktop.ini, en mi caso). Luego, mover todos los archivos del directorio en blanco al directorio raíz. Finalmente, eliminar el directorio en blanco.
    Son más pasos, pero mover archivos consume menos tiempo que copiarlos a otro drive y traerlos de vuelta.

2013/08/16

Publicar un site en Google Drive

Google Docs permitía crear documentos tipo office. Ahora se llama Google Drive y permite ademas almacenar archivos de modo similar a Dropbox.

En Dropbox, se puede publicar archivos web en un CDN, o incluso un site estático: Publicar un site en Dropbox

En Google Drive también, aunque es un poco más complicado y parece que por el momento está mas orientado a programadores.

En este tutorial, crearé una carpeta helloworld. La pondré dentro de otra llamada sites (no es necesario, pero es con la idea de diferenciar estar carpetas de las otras).


El primer paso es crear la carpeta del site:



Luego, compartir la carpeta como pública:






El url del site se puede obtener revisando sus detalles:



En el navegador se verá algo como:

Podemos probar subir un index.html:








Puede ser que al subir el archivo Drive haga una conversión automática a formato Google Docs. Para prevenir esto, asegurarse que esté desmarcada la opción correspondiente en Upload complete, Settings:


Al refrescar el navegador, se mostrará la página:



Ejemplo: https://googledrive.com/host/0B07y15yC28FxZ3liSm1wR3BDVjQ/

Publicar un site en Dropbox


Dropbox puede servir como CDN, para centralizar bibliotecas de imágenes, scripts y otros recursos estáticos (html, css, js) que usemos con frecuencia.

Pero también puede servir para alojar un site estático.

Método directo

Con ayuda

También hay servicios (con planes gratuitos disponibles) que facilitan usar dropbox para hosting:
  • http://pancake.io/
  • http://my.droppages.com
    • El servicio gratuito provee hasta 50 MB.
    • Luego de aceptar vincularlo a dropbox, agrega una carpeta My.DropPages a la carpeta de aplicaciones de dropbox.
    • En el site my.droppages.com se pueden crear sites con subdominios. Por ejemplo, rulokoba.droppages.com hace aparecer la carpeta rulokoba.droppages.com. Aparentemente, se pueden tener varios subdominios.
    • La estructura del site se divide en ContentPublic Template. En Content, el contenido de los archivos se escribe en formato wiki markdown.
    • Luego de hacer un cambio local, puede ser necesario entrar a my.droppages.com y pulsar el botón Publish para que reflejen los cambios.
    • De http://droppages.com/themes se pueden descargar temas.
    • Ejemplo: http://rulokoba.droppages.com/
  • http://www.kissr.com/
    • El servicio gratuito permite hasta 50 MB
    • Luego de indicar el nombre del subdominio, y de aceptar vinvularlo a dropbox, agrega una carpeta KISSr a la carpeta de aplicaciones de dropbox. Dentro van las carpetas de los dominios. Por ejemplo, para rulokoba.kissr.com se crea rulokoba.kissr.com.
    • En el site www.kissr.com se pueden crear más sites con subdominios.
    • Ejemplo: http://rulokoba.kissr.com
    • El servicio se apoya además en Amazon Web Services.

Referencias

114000

En abril, el blog alcanzó las 100000 visitas :-D Hoy va más de 114000... Gracias

2013/05/02

Resuelto Problema con Delta Search

Resuelto Problema con Delta Search

Al hacer una instalación, me precipité e hice click en OK antes de leer que estaba aceptando instalar Delta Search Toolbar.

Cuando se instala, reemplaza a la máquina de búsqueda por default de los navegadores.

En el Panel de Control, Desinstalar Programas, se puede encontrar el item Delta Search y desinstalarlos, pero no se realiza una desinstalación completa, como se comprueba al continuar viendo el buscador de delta al iniciar los navegadores.

Resolverlo en IE fue relativamente sencillo. Bastó con entrar a la administración de AddOns, hacer que otra maquina de búsqueda sea la default y eliminar a Delta Search.

En Firefox no encontré que se hubiera metido.

En Chrome, entré a la configuración de motores de búsqueda y lo eliminé. Sin embargo al iniciar el navegador, abría Delta Search en una segunda ventana.
Para resolverlo, seguí el consejo de abrir el archivo %UserProfile%\AppData\Local\Google\Chrome\User Data\Default\Preferences, buscar las ocurrencias de delta-search.com y eliminarlas, o reeemplazarlas por google.com o algo parecido. Sin embargo, el problema persistía.

Finalmente, la solución consistió en usar AdwCleaner. Lo instalé, localizó los problemas (entre ellos la entrada en Preferences) y me dio la opción de corregirlos.

2013/04/29

Chiste: Un hombre en un globo

Un hombre en un globo

Un hombre en un globo de aire caliente, de pronto se da cuenta que se ha perdido. Reduce su altitud hasta que distingue a un hombre debajo. Se aproxima a él y le grita desde arriba:
- Discúlpeme, ¿me podría decir en dónde me encuentro?
- Sí -responde el hombre de abajo-, está en un globo de aire caliente, como a 10 metros sobre el suelo.
- Seguramente trabaja en Tecnología de la Información -le dice el del globo.
- Así es -responde el hombre-, ¿cómo lo supo?
- Bueno -dice el del globo-, todo lo que me ha dicho es técnicamente correcto, pero no me sirve para nada.
El hombre replica:
- Seguramente trabaja en administración
- Así es -responde el del globo-, ¿cómo lo supo?
- Bueno -dice el hombre-, no sabe ni dónde está ni hacia dónde está yendo, pero espera que yo le pueda ayudar. Está en las mismas que antes de encontrarme, pero resulta que ahora es mi culpa.

Quién es

- Toc, Toc
- ¿Quién es?
Una pausa bien larga...
- Java

Cuántos se necesitan

P: ¿Cuántos programadores se necesitan para cambiar un foco?
R: Ninguno; es un problema de hardware

P: ¿Cuántos administradores de proyectos se necesitan para cambiar un foco?
R: Ninguno; les gusta tener a los programadores a oscuras

Cobol Man

Un programador de Cobol hizo una fortuna resolviendo el problema Y2K a varias compañías importantes. Cuando murió se hizo congelar. Un día, en el futuro, de pronto es resucitado.
Cuando pregunta cómo al fin ha sido descongelado, una voz le responde:
- Es el año 9999, y tú sabes Cobol.

Recursividad

Para entender lo que es la recursividad, primero debes entender lo que es la recursividad...

2013/04/03

100 000 visitas

¡Hoy este blog alcanzó las 100 000 visitas!

Hace algunos meses, el volumen de visitas se incrementó significativamente. Al parecer a partir de la publicación de una solución para el problema Facemood ( Quitar Facemood de la búsqueda de Firefox).

También publico, con más frecuencia, en el blog Lo que aprendí hoy, sobre desarrollo web y otros temas variados. Mucho del material publicado aquí recientemente apareció allí antes.

Ojalá algún artículo le sea de ayuda también. Felicidades.

2013/02/27

Dropbox + Dokuwiki

Dropbox + Dokuwiki

Se dice que quienes no recuerdan el pasado están condenados a repetirlo. Por eso es bastante útil conocer algo de historia. Por eso también es útil llevar un diario personal o, en la vida profesional, algún tipo de bitácora.

Al poco tiempo de haber hecho algo, se tiende a olvidar los detalles. Con el tiempo, se van olvidando más aspectos. Es más fácil y eficiente recordar con ayuda de nuestra bitácora, que volver a realizar la investigación, las pruebas, y el desarrollo.

Una bitácora se puede llevar en papel. Pero puede ser mas sencillo realizar búsquedas en un medio digital.

Una alternativa podría ser algo como Google Docs. Es como un documento que puede ser tan largo como se quiera. Un problema es que mientras más largo sea el documento, más difícil es de manejarlo, por lo que se tiene de dividir la bitácora en partes más pequeñas, quizás por meses. Pero un problema mayor es que si la conexión de Internet falla, quedamos sin acceso a ella, en particular a nuestras notas sobre qué hacer cuando hay problemas de red (-_-)'

Otra alternativa es usar un wiki, que permite que la información crezca de manera más orgánica. Hay muchas ofertas. Las que son online, tendrían también el problema del difícil acceso cuando falla la conexión a Internet.

Entonces quedan las que son para instalar uno mismo, en el localhost. Luego, está el problema de tener el mismo contenido de computadora en computadora si, por ejemplo, usamos a veces la del trabajo, otras veces la de la casa, y otras una portátil. Hacer esa sincronización se vuelve tediosa si involucra base de datos; es mucho más sencillo copiar y pegar archivos que exportar e importar tablas. Así, es más fácil usar un wiki como dokuwiki, cuyo contenido se almacena en archivos de texto simple, que mediawiki, que almacena en base de datos.

Finalmente, la sincronización se puede automatizar usando dropbox. Lo que suelo hacer es crear dentro del directorio web un enlace simbólico a un subdirectorio de mi carpeta dropbox. Por ejemplo, htdocs/dropbox/ apuntando hacia Dropbox/htdocs/. Si instalo dokuwiki en dropbox/dokuwiki, aparecerá en todas las computadoras donde tenga dropbox (además del acceso online), y se mantendra sincronizado automáticamente. Genial!

Confieso que este razonamiento no llegó a mi en el mismo orden en que lo estoy contando. Durante mucho tiempo usé un wiki en un hosting, haciendo backups locales. Luego usé unos años Google Docs, desechando muchas veces la idea de volver a los wikis porque quería ahorrarme el costo de mantener un hosting (y un hosting gratuito suele tener la presión de ingresar cada mes para que la cuenta se mantenga viva). Un día, me animé a instalar dokuwiki en mi dropbox de desarrollo y... eureka, me dí cuenta que era una buena idea (^_^).

Ojalá le sirva de ayuda a alguien más también.


Más artículos