Impedir que Debian actualice determinados paquetes o librerías.

Me han aparecido librerías nuevas para actualizar y ya me han dado algún que otro problema con la reproducción de video en VLC, por lo que he decidido no instalarlas (al menos hasta que los chicos de VLC corrijan el error). En total son 5 librerías y, tener que de-seleccionarlas cada vez que hay otras actualizaciones es un coñazo.

Buscando un poquito en la documentación de Debian he encontrado la solución. Lo que hay que haces es retener la acualización y actualizar la bbdd.

1) Retener las librerías/paquetes. Para ello, basta con exportar la bbdd a un fichero de texto.

 dpkg --get-selections \* > apt.txt 

2) Una vez hecho esto busca la librería/paquete que quieres retener para que no se actualice cambiando «install» por «hold».
Pantallazo

Una vez tengamos hecho esto guardamos el fichero de texto y solo falta sobre escribir la bbdd con el siguiente comando:

 dpkg --get-selections < apt.txt 

Para revertir el proceso (liberar las librerías para que sí se actualicen) bastaría con hacer lo mismo cambiando «hold» por «install»

Existe otro método más simple, gracias a aptitute, pero a mi no me ha funcionado:

Retener la librería:

 aptitude hold libxxxxxx 

Liberar la librería:

 aptitude unhold libxxxxx 

Saludos.

Fuente: debian.org

Lineas de una terminal y tamaño de ventana

Cuantas veces te ha pasado que al redimensionar la ventana de putty, maximizarla o minimizarla, las líneas y columnas de la ventana siguen siendo las mismas?

Con el siguiente comando configurado en el bashrc se soluciona

Shopt –s checkwinsize

checkwinsize

If set, bash checks the window size after each command and, if necessary, updates the values of LINES and COLUMNS.

Demos HTML5

En http://html5demos.com/ hay una variada colección de demos html5. Algunos muy interesantes como los websocket’s, que aún que no son una novedad, creo que el potencial es enorme. Curiosamente, Firefox y Opera son los campeones, implementan casi todas las funcionalidades y, por lo que he podido probar, bastante bien. El perdedor, one more time, es Internet Explorer.

Google Drive

Bueno, pues después de mucho esperar, parece que … no, aún no tenemos Google Drive. Pero ya tenemos una super lista de espera que te cagas! ¿A quién no le gusta estar a la cola? (Pues a mi, entre muchos)
Home de Google Drive

No se si es que el mundo entero se ha vuelto gilipollas o soy yo que con los años me voy haciendo más reacio a la tontería, pero no soy capaz de comprender determinadas estrategias de marketing de los grandes de la tecnología.
Desde que, hace ya unos cuantos años, los de la manzanita mordida, empezaran con este rollo no paran de aparecer servicios y dispositivos que intentan vendernos como si acaban de inventar la luz eléctrica: ¡Revolucionario! ¡Cambiará tu forma de comunicarte, de hacer el amor! ¡Ya está aquí el nuevo tal! ¡No podrás cagar sin el en tus manos!
Lo malo de esta estrategia, es que, su propio sustento, será lo que le ponga fin. No es que sean los primeros en dejar de vender lo material para tratar de vender emociones, sentimientos … pero está claro que esos feelling’s son efímeros, y, de no manejarse bien, acaban por no llevar a más que a «bah, sí, otro smartphone», «bah, sí, un coche con ruedas»

Es lo que han tratado de hacer ahora con la presentación de Google Drive. Un ejercito de blogeros lleva meses publicando noticias, vacías casi todas, de lo que será, o podrá ser Google Drive, pero, resulta que hoy «super-mega-ultra día de estreno» lo único que hay es una lista de espera, de Dios sabe cuanto tiempo.
Lo cierto es que ha funcionado, leyendo distintos blogs, veo a muchos que dicen «Adios dropbox, Hola Google Drive» a los distintos artículos publicados, cuando aún solo se sabe, que la cuenta es de 5 gb, y que sincronizará archivos.
Indagando un poco en las peculiaridades del nuevo servicio de google, no le veo más ventajas que Dropbox, y sinceramente, dudo de que el algoritmo de sincronización valla a ser mejor (de los servicios que he podido probar, Dropbox está muy por encima de los demás) y además, no parece que los Linuxeros vallamos a tener aplicación. Ni tampoco he visto por ningún lado que pueda tener soporte para proxy, algo, que para los que trabajamos detrás de un firewall, en la red interna de una compañía, es primordial.

En definitiva, que empiezo a estar un poco cansado de revoluciones tecnológicas, que no traen nada realmente nuevo ni mejoran lo existente, y que, encima, dan un soporte a medias.

PD: Todo esto, lo dice, un «casi» enamorado de Google, imagínense mi decepción.

 

Actualización – 25-04-2012

Bueno pues ya tengo el dichoso drive, así que no me han hecho esperar tanto como yo creía. Peeero … por el momento no he podido probar nada más que la versión para móviles y la web, la aplicación de sincronización con el pc aún no la he podido probar.Peeero, por el momento, no parece más que un rediseño de Google Docs … En cuanto consiga instalarla en un pc, contaré más cositas.

 

¡Saludos!

 

Las grandes empresas y la burocracia

Hace unos cuantos años ya que trabajo para grandes empresas como informático.
Desconozco si en otros departamentos funcionarán las cosas del mismo modo o de otro, pero seguramente sea algo similar.
Voy a explicaros con un ejemplo muy sencillo como la burocracia en estas empresas conlleva un enorme sobrecoste de todo lo que se hace.
Supongamos una incidencia bastante común y de las facilitas. Un FileSystem lleno.
Pasos para solucionarlo en una gran empresa:
1 – El operador recibe una alerta.
2 – El operador comprueba la alerta.
3 – El operador pone una incidencia de servicio en el gestor ITIL.
4 – El operador te llama y te envía un correo indicándote el problema.
5 – Le indicas en el correo y en la incidencia lo que puede borrar.
6 – El operador hace un backup y borra.

¿Cuál es el problema de todo esto? El problema es que, para los genios del ITIL esta es la situación ideal, pero nunca se da, y el flujo normal de una incidencia tan sencilla suele ser un poco más compleja.
1 – El operador recibe una alerta.
2 – El operador comprueba la alerta.
3 – El operador, que por lo generar suele tener una documentación bastante mala o ninguna, llama al primer tío de sistemas que se le ocurre.
4 – El de sistemas te manda un correo indicándote la incidencia.
5 – Le respondes al correo indicándole lo que puede borrar.
6 – Te responde al correo diciéndote que eso no lo hace él, que tiene que ser el equipo de operaciones.
7 – Reenvías el correo.
8 – El operador te pide le pongas una incidenca en la app de gestión ITIL.
9a – Le pones la incidencia (si eres listo).
9b – Intentas luchar contra el sistema y te enzarzas en una discusión infinita sobre quien debe poner la incidencia o si es o no una incidencia …
10 – Si escogiste 9b, le pones la incidencia.
11 – El operador te llama y te envía un correo indicándote que uno de los ficheros que le has pedido borrar no está.
12 – Le dices que da igual, que borre lo demás, y te contesta que se lo pongas por correo.
13a – (Si eres listo)Se lo pones por correo y lo registras en la app de gestión ITIL.
13b – Le envías un correo.
14 – Nuevo correo del operador indicándote que se lo pongas en la app de gestión.
15 – Se lo pones (si te metes en otra guerra es que eres bobo)
16 – El de sistemas te llama para preguntar si ya se ha hecho. Consecuencia de que el jefe de los operadores ha llamado al jefe de los de sistemas para preguntar que pasa … la puta alerta sigue ahí.
17 – El operador borra los ficheros que le has indicado.
18 – El jefe de los operadores te envía un correo, en el que pone en copia hasta al puto Papa Benedicto, instándote a que des explicaciones de por qué se ha tardado tanto tiempo en resolver una incidencia a priori sencilla.
19 – El operador te manda un correo pidiéndote que entres en la herramienta de gestión ITIL y cierres la incidencia «indicando los motivos que han provocado la misma» (esto me lo dicen mucho, jeje)

Tiempo empleado en resolver la incidencia: 5 horas
Personas implicadas: 20

Pasos para solucionarlo en una pequeña empresa.
1. Algo falla en tu portal.
2. Miras monitor, ¡Hostia FileSystem lleno!
3. Backup y borras.

Tiempo empleado en resolver la incidencia: 10 minutos
Personas implicadas: 1

El problema de todo esto, es el tiempo perdido por cada una de las personas de la organización que han participado en la resolución de la incidencia. El sobrecoste es brutal.

CodePorting C#2Java

Navegando un poco por internet me he encontrado con esta solución para aquellos que necesiten pasar proyectos de C# a Java. Aún que pueda parecer una tontería, es algo bastante común en los entornos empresariales. Empresas que empiezan con 1&1 mi web … y pronto se dan cuenta de que necesitan una solución un poco más personal y tecnológicamente avanza, pues esto viene a ser parecido.

Hace algún tiempo, esto de la exportación de código a otros lenguajes de programación podría ser algo incluso banal o innecesario, pero en los tiempos en los que vivimos, donde las aplicaciones móviles se llevan toda la atención de los usuarios, poder mover en unos pocos pasos tu aplicación para iOS a Android en unos pocos pasos puede ser un importante valor añadido para cualquier empresa tecnológica que se precie en el mundo de los smartphones.

codeporting.com

Pues en esta web podemos exportar nuestro código C# (también .NET) a Java en online.

Tutorial de Java EE – Intro

Logo Java
Bueno, pues para empezar bien el año, me ha parecido una buena idea seguir el tutorial de Java EE 6. No es que trate de explicar pasito a pasito a programar o desplegar aplicaciones, ya hay muchos que hacen, o han hecho algo así, si no más bien, ver que puedo aprender de él, pues, seguramente, halla cosas que sacar en claro del mismo.

En el próximo post, espero que sea la semana que viene, posteo los pasos de instalación.

¡Feliz año nuevo!

Samsung kies

Estoy tremendamente impresionado con esta app incluida en mi Samsung Galaxy SII. Viene a ser una especie de iTunes que no toca los huevos.

Desde la aplicación puedes hacer un poco más que lo básico. Escuchar tu música desde el PC, descargarla o subir más música al móvil. Igualmente puedes hacer lo mismo con vídeos, fotos …

Por otro lado, aquí es donde lo veo un poquito más deficiente, en cuanto a comunicaciones, sólo puedes enviar mensajes de texto ( los antiguos sms) no permite hacer uso de otras aplicaciones como gmail o el gestor de correo electrónico del teléfono. Con esto no quiero decir que la aplicación no sea versátil, pues en cierto modo, no tiene mucho sentido que, por ejemplo, la app te permitiera enviar correo electrónico

Aquí viene lo mejor, Todo esto, sin necesidad de instalar nada. Cuando inicias la app en el móvil, te muestra una url a la que deberás acceder desde el navegador de tu pc y listo, se ejecutará un applet de java y a tirar millas. Y por supuesto, a través de la wifi, ¡¡Sin Cables!! ¡Chúpate esa Steve Jobs!

Vista principal de Samsung Kies

Vista principal de Samsung Kies

Recomiendo a todo el mundo que tenga un Sansung que pruebe kies porque le encantará.
Fantástico.

Se ha ido un grande.

Y no, no estoy hablando Jobs. Sólo un puñado de freaks nos hemos enterado del reciente fallecimiento de Dennis MacAlistair Ritchie Un grande de la informática donde los halla.
Entre sus muchas aportaciones al mundo de la informática destaca por haber sido padre de UNIX (junto a Ken Thompson) y sobre todo por haber dado a la informática una de sus bases de trabajo: El lenguaje C.

Me consuela saber que, a pesar de no ser tan famoso como Jobs, ni tener tanto dinero, el mundo de la informática le agradeció su trabajo en vida con el Premio Bering (algo así como el Nobel de informática) en 1983 y el Premio Nacional de Tecnología de USA en 1998.

Tompsom, Richie y Clinton

Curioso el Premio Bering, cada uno de los galardonados ha aportado tanto o más que el anterior a la informática y a la tecnología en general, a pesar de ello ninguno de ellos es o ha sido famoso fuera de los círculos de frikismo en los que me muevo.

Pues nada, que descanse en paz, ha dejado legado para rato.

10 Simples Consejos para realizar consultas optimizadas contra MySQL

Aunque yo seré el primero en volver a usar la sentencia «SELECT * FROM schema.table» os dejo unos cuantos conSQLejos:

  1. El comando Explain explica como se lleva a cabo una consulta SELECT, como se usan los índices y como se unen las tablas. La forma de utilizarlo es la siguiente: Explain select * from tabla Ahora, en lugar de ejecutar la consulta, se mostrará un listado con la información ya mencionada anteriormente. Esto es muy útil para optimizar las consultas.
  2. Por defecto, el usuario que utilizamos para conectar nuestra aplicación a la Base de datos, goza todos los permisos MySQL. Sin embargo, el utilizar un usuario con sólo los permisos necesarios (para la publicación, por ejemplo), permiten a MySQL reducir la comprobación de cada uno de los permisos, cada vez que el cliente MySQL ejecute las sentencias (INSERT, por ejemplo).
  3. Si tenemos un problema de rendimiento con una expresión que ya hemos identificado, una excelente manera de comprobar su optimización es utilizando la función benchmark(). Su sintaxis es la siguiente: BENCHMARK(loop_count,expression) Esta función siempre devuelve un valor cero, pero además imprime el tiempo que se ha demorado en el cliente final (no el tiempo de CPU en el servidor). Mas información aquí.
  4. Estos son algunos consejos para optimizar WHERE:
    • Remover los paréntesis innecesarios. Por ejemplo: DE (a < b AND b=c ) AND a=5 A b>5 AND b=c AND a=5. Mas información aquí.
    • COUNT(*) esta optimizado para devolver un SELECT de manera mucho más rápida, siempre y cuando sea a una tabla y sin usar WHERE. Por ejemplo: SELECT COUNT(*) FROM tabla .
    • La opción SQL_SMALL_RESULT, puede usarse con GROUP BY o DISTINCT para indicar que el conjunto de resultados es pequeño. En este caso, MySQL utiliza tablas temporales muy rápidas para almacenar la tabla resultante en lugar de usar ordenación.
  5. Utilizar la sentencia OPTIMIZE TABLE. OPTIMIZE TABLE debe usarse si se ha eliminado gran parte de la tabla o si se han hecho varios cambios en la misma. Optimize Table desfragmenta la tabla, la repara y la ordena. Mas información aquí.
  6. Evitar los tipos de columna de longitud variable. Los campos con longitud fija (CHAR, por ejemplo) son más rápidos que los de longitud variable (VARCHAR, por ejemplo). Pero, como contrapartida, ocupan más espacio en disco. Aún así, para las tablas MyISAM, se recomienda evitar el uso de las columnas de longitud variable (VARCHAR, BLOB, and TEXT).
  7. Insert Delayed. Se recomienda utilizar INSERT DELAYED cuando los clientes no pueden esperar a que el INSERT se complete ó cuando no sea necesario conocer que los datos han sido escritos correctamente. Cuando se usa INSERT DELAYED, se obtiene una confirmación inmediata por parte del servidor. La data se almacena en una cola para ser insertada cuando la tabla no esté en uso por ningún otro proceso. Además, los INSERT en cola son agrupados en bloques lo que aumenta la rapidez de su ejecución.
  8. Priorizar las sentencias. Aquí explicamos dos maneras:
    • Utilizar INSERT LOW_PRIORITY en los INSERT, cuando se desee priorizar las consultas SELECT sobre las INSERT. El INSERT debe esperar hasta que no hayan otros clientes leyendo la tabla.
    • Utilizar SELECT HIGH_PRIORITY en los SELECT, para priorizarlos sobre cualquier otro comando que se ejecute simultáneamente, ya sea para añadir o actualizar datos en la tabla.
  9. Insertar filas múltiples. Es recomendable ejecutar un insert multiple a varios inserts distintos. La sintaxis es: INSERT INTO table (col1, col2) VALUES (‘value1’, 1), (‘value2’, 2), (‘value3’, 3)
  10. Sincronizar tipos de datos. La idea es la siguiente. Si se tienen columnas que van a almacenar la misma información, pero están en distintas tablas, es aconsejable que sean del mismo tipo de datos. De esta manera, los JOINS que se ejecuten entre ellas, serán mucho más rápidos.

Fuente: La magnífica web de Cesar Cancino