Ir al contenido principal

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

compiling

cuando lei esta historieta me rei, pero ahora que principalmente programo en lenguajes compilados, me doy cuenta que es verdad..


que manera de checkear los feeds mientras se compila...

touchscreens en pcs...

veo un vídeo de windows 7, lo único que prometen hasta ahora es el soporte de touch screen y detección de múltiples dedos. Muy bonito, pero me pongo a pensar.

repasé lo que hago en un día normal con mi computadora, y no puedo encontrar una sola cosa que sea mejor o mas fácil hacer tocando la pantalla. Por favor, no salgan con que no tengo visión, y que con el tiempo surgiran usos, reconosco que en los celulares es muy útil, ya que la interacción es muy básica (pocas opciones, pocos botones, interacción básica), pero no comprendo que me puede ayudar o ayudar a una persona normal el uso de touch screens, a modo de ejercicio cito algunas de ellas:

* programar, redactar texto y todo lo relacionado con texto, no sirve (de la misma forma que no sirve la detección de voz, que esta en vista y nadie usa)
* navegar por internet, mas que seguir links, cosa que es mas fácil con el mouse
* administrar el sistema en general

si alguien salta con dibujar, que muestran el paint ahi, la forma natural de interacción con las herramientas de dibujo por parte de los profesionales es.... con un LAPIZ no con los dedos, y eso se hace sobre superficies fijas que ya existen y que se usan.

no me imagino una persona trabajando 8 horas por dia con los brazos levantados, ni tampoco me imagino una persona 8 horas mirando para abajo con una pantalla ubicada en la mesa.
Tampoco me imagino una persona limpiando la pantalla cada cinco minutos, o levantandola porque le pego con el dedo muy fuerte.

llamenme exceptico, pero la interacción por voz y por contacto con las manos creo que tiene un nicho muy reducido y que no me parece que sea usado como el "buque insignia" de windows 7.

Todo esto a menos que se cambie por completo el paradigma de ventanas para el diseño de interfacez graficas, lo que si permitiria el uso de esta tecnologia. Me quedo esperando que alguien salga con un paradigma mejor con el actual.

to:microsoft

  1. hace que vista responda mejor a cualquier evento
  2. hace que vista borre y copie archivos mas rápido que windows 3.1
  3. hace que vista no confunda no poder borrar un archivo por que esta siendo usado con que no lo puedo borrar porque requiero privilegios de administrador (y que después de pedirme los privilegios falle)
  4. hace que la porquería de cmd sepa que si le pongo un path relativo y aprieto tab me trate de autocompletar en *ese* directorio y no en el que estoy
  5. hace que el buscador de porquería ese encuentre un archivo cuando le escribo el nombre completo y se que existe
  6. hace que tenga acceso a los ejecutables y no tenga que escribir toda la ruta
  7. hace que cuando vuelve de suspender ande internet (bue, eso de suspender es una porquería en todos lados)
y un largo etc.

Sobre lenguajes estaticos y dinamicos

En los últimos dos meses he estado desarrollando un software en C# junto a otras 6 personas y he notado una cosa:

Se pasa mucho tiempo debugueando y traceando excepciones que (obviamente) saltan en tiempo de ejecución.

mi primera opinión sobre eso fue que era una forma de desarrollar de mis compañeros, ya que yo programo en python y no se ni como se debuguea, seguir excepciones obviamente si lo he hecho pero supuse que era algo que solo pasaba en lenguajes dinámico, pero no, también pasa en los lenguajes estáticos.
En un proyecto de 7 personas y con mucho código no escrito por uno, no se suelen controlar todas las excepciones que pasan, y esto no es de este grupo, uno normalmente no maneja todas las excepciones que pueden llegar a saltar en todo momento en el código. Esto hace que una gran parte de los errores del programa (escrito en un lenguaje inherentemente estático) sean detectados en tiempo de ejecución y no de compilación, los otros errores mas comúnmente encontrados son:

* errores en nombres de variables
* problemas de tipos en declaraciones
* referencias a nulo por no inicializar una variable

de esos tres, el primero es el único que sucede en python y que en C# lo detecta el compilador (aunque en python lo detecta pylint ;)).
El segundo en python no existe ya que no se declaran tipos (gracias al bendito ducktyping) y el tercero casi no aparece ya que las variables se declaran cuando se inicializan, así que si no es nuestra costrumbre andar usando None en todos lados (cosa que no hago mas que en parámetros de métodos para variables mutables) este problema desaparece.

A donde quiero llegar con esto?

A que el ser un lenguaje estático no me trae ninguna ventaja como desarrollador, ya que me enfrento a la misma incertidumbre en tiempo de ejecución a que errores no detectados durante la compilación surjan (y que son muchos).

Para terminar, aquí java se merece una mención ya que nos obliga a tratar una excepción o mencionar que es "Throweada" así que SI sabemos que excepciones pueden surgir durante el desarrollo, mientras que en .NET solo podemos saberlo mirando la documentación (cosa que el 99% del tiempo no hacemos).

Resumen, aguanten los lenguajes dinámicos :P

bash history meme

mariano@mousehouse:~$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head
83 python
64 cd
52 sh
51 ls
49 svn
30 sudo
30 ncmpc
28 vim
11 rm

clamo por la cabeza de...

...el que decidio hacer que el plastiquito de la tapa de pepsi sea dificultoso de sacar.

firma: presidente del club de fans de masticadores de plastiquito de la tapa de pepsi (ASDF por sus siglas en polaco), somos pocos, pero tampoco somos buenos.

openbox

me pase a openbox, muy bonito y liviano, aca va screenshot


(el panel es pypanel)

y como soy un artista, les dejo una de mis obras culmines (?)