NET: Como convertir el CLR una app en “AnyCPU” en “32bits”

Os propongo un escenario:

  • Aplicación desarrollada en .NET, hace mucho tiempo, y a decir verdad, con la mitad de los conocimientos que tenemos ahora.
  • Por desgracia, se compiló como “AnyCPU” (lo que se ha demostrado como un error a lo largo del tiempo).
  • Ahora lo lanzas, y te encuentras con un: “Error en microsoft.jet.oledb.4.0″. Tras leer, te das cuenta que esto se arregla recompilando en “x86″
  • … Solo tengo el ejecutable, y unas horas para presentar el programa (música de terror de fondo…)

Bueno, pues hay un trucoquillo para marcar un ejecutable de .NET, compilado en AnyCPU, como un ejecutable x86, ya que realmente, solo hay que cambiar un campo en la cabecera (más o menos). ¿Cómo?, ahora te lo explico:

  • Doy por sentado que tienes el SDK de desarrollo del NET o el Visual Studio en cualquier de sus sabores (con el componente “Developer Tools -> Windows Development Tools -> .NET Development Tools” instalado)
  • Te metes en: “Program Files\Microsoft SDKs\Windows\v6.1\Bin” (ojo el v6.1 es para NET 3.5, para NET 4.x cambiará obviamente) y allí tienes que encontrar un fichero “corflags.exe”.
  • Ejecutas:
    corflags /32bit+ <RutaATuEjecutableANYCPU>

    Y tachán. Ejecutable en 32bits :) .

Referencias:

  • http://stackoverflow.com/questions/1507268/force-x86-clr-on-any-cpu-net-assembly
  • http://stackoverflow.com/questions/242304/where-should-i-download-corflags-exe-from

Share

Yoigo y su estúpido sistema de portabilidades

Un día (maldito sea), no hace mucho, tuve la ocurrencia de mirar mi factura del móvil, horrorizarme al ver el dineral que pago, y comparar mi tarifa actual con Orange, con la ofrecian otros operadores. Y aunque no estoy descontento con Orange (en general), me encontré que la diferencia de precios era tan abismal que incluso me sentí estafado. Curiosamente, ese mismo día, Yoigo lanzaba su fabulosa “tarifa del 2“. ¿Conjunción astral, Jesús mostrándome el camino?, yo pensé que estaba claro, esa tarifa era para mí. ¡¡¡Esto es lo que necesito!!!, y gritaba por casa, mientras mi mujer se llevaba a casa a mi hijo para que tenga una adolescencia feliz y sin traumas.
Recapacitando sobre mi uso del móvil, yo apenas llamo a nadie, utilizo bastante el 3G y quiero tener una factura mucho menor. Total, eche cuentas de minutos, llamadas y más chorradas de las crípticas facturas que nos envían los operadores, y me salía un ahorro de casi 10 euros por mes. Oye, con la que esta cayendo, bienvenidos sean.

Total, me voy a una tienda Yoigo después del trabajo, donde muy amablemente una señorita me indica que tengo que llevar una factura de mi anterior operador (ein?). Le digo que ya volveré y pienso (iluso de mí), lo hago por internet, me ahorro el papeleo y santas pascuas, no tengo que buscar facturas y recibos, ni leches.

Entro en la web de Yoigo. Mis pupilas se llenan de color, ofertas, móviles que no me van a dar, buen rollo, verdad verdadera, y mierdas varias. ¿Donde se inicia la portabilidad?, vamos al toro. Relleno todos mis datos, mi DNI, mi cuenta bancaria y llego feliz al último paso, pero… sorpresa: No soy aceptado como cliente de contrato, eso si como prepago tengo la puerta abierta.
¿Lo qué?, ¿tan feo soy?. Lo divertido es que te lo anuncian como si fuera un error del sistema, faltaría un “E-335AE” y un busca en Google, con mensajito que indica que no te pueden hacer la portabilidad, sin muchos detalles y te animan a llamar a su teléfono de atención al cliente. Y seamos sinceros, cuando me encontré esto, pensé en lo que pasa cuando llamas a un teléfono de atención al cliente, y preferí ver la tele a tirarme 2 horas colgado del teléfono.

Mientras veía la tele, busqué por Internet, si yo era el único que no era el elegido para pertenecer a la santa institución de Yoigo. Pues no. Somo muchos (otro, otro, y otro más… por dar unos ejemplos) , y es debido a una cosa llamada Scoring, que sirve para catalogar el riesgo como cliente que afronta la empresa por aceptarse, y que puede resumirse en un sistema automático (y obviamente propenso a fallar si esta mal hecho) donde me habían catalogado como no apto. ¿Porqué?… nadie lo sabe, quizás algún conjuro arcando, el ASNEF, o que no eres de fiar por alguna razón. Incluso los mismos de Yoigo parece que no tienen ni puta idea de nada, por lo que ponen en su Facebook.

¿Hace falta que os diga que soy solvente, sin ningún tipo de deuda, y con cuenta bancaria saneada?. Vale, pues ninguno de estos puntos son importantes para el Scoring.

Vale, empieza el reto. ¿Cómo se soluciona esto y por el mínimo esfuerzo?.
Mis primero pasos fueron encaminados a contactar el twitter de Yoigo (@somosyoigo) y contarle que tenía problemas con una portabilidad. Amablemente el “Social Media” que esta detrás de esta cuenta, me indico un correo donde remitir mi nº de teléfono y DNI, para “analizar mi caso”. Obviamente, no obtuve respuesta de ningún tipo, empezamos bien.
Mi segundo paso, fue el rastreo por las webs, donde puedes encontrar de todo, pero si añades a tu busqueda el término “scoring” las cosas cambia: gente echando pestes. Y como no, todos coincidían en ir a la tienda con papeles. Al parecer hay que hacer un re-análisis de tu situación llevando 2 facturas y sus correspondientes recibos y ya te dirán. Vale, genial.

Al día siguiente, haciendo un esfuerzo sobrehumano para contratar (ojo, quiero pagar, no recibir dinero), me afeito (bueno quizás no), me cambio la muda, me pongo mi mejor camiseta de los Ramones, y voy a la tienda con todo el papeleo. La misma chica me recibe con los brazos abiertos, intenta la portabilidad en su sistema, y me dice que no puede ser, que no soy suficientemente atractivo como cliente, y me enseña el mismo mensaje que ponen en la web que podemos usar todos. Bien, información y transparencia, sin razón aparente por la cual me rechazan. Le ofrezco como sacrificio las facturas, con sus correspondientes adeudos del banco, para que el dios Yoigo me permita entrar con ellos a formar parte de ese Nirvana que tiene que ser darles dinero todos los meses por un servicio. Me dice que en 24/48 horas tendré contestación. Le digo a la chica que para la hipoteca llevé menos cosas, ella me sonríe y me dice que “son así de gilipollas“.

Mi vida sigue, anodina como siempre. Y dos días después, recibo una llamada de otra chica que identifica como comercial de la tienda Yoigo, y empieza la fiesta:

- Oyes, no nos vale lo que has traído, ya que en los adeudos no sale tu nombre, por lo que no eres titular de la cuenta. O nos traes eso o nada, es un adeudo con tu nombre o no puedes darte de alta en Yoigo.
- Hem… creo que hay un error. Si soy titular, de hecho cotitular con mi mujer y porque su apellido empieza por “A”, sale antes que mi apellido, y aparece como el cliente en el espacio reservado dentro del adeudo, ya que solo entra un nombre. Es lo que me da el banco. - Me oigo a mi mismo. ¿Porqué coño le estoy contando esto yo a esta tía?. Que comprueben ellos si es mi cuenta o no.
- Oyes, que no me vale. Que me tienes que traer un adeudo de un recibo donde salga tu nombre. – Su voz suena como un robot.
- ¿¿¿Como???. Te repito, soy titular de la cuenta.
- Si, que vale, pero trae el adeudo que salga tu nombre.
- A ver, te puedo acercar si quieres la cartilla para que veas que soy titular de la cuenta, pero no pretenderás que vaya al banco a que me hagan un recibo especial a lo que Yoigo quiere. Eso tendría que comprobarlo Yoigo, si soy o no titular de la cuenta que he puesto.
- Bueno, si. Trae la cartilla, pero trae un adeudo con tu nombre… - En este momento, me cabreo. O eso, o tengo una enfermedad extraña que hace que se me inflen las gónadas. Para dejar claro el asunto, le digo muy despacio lo siguiente:
- Es decir, tengo que ir al banco, dejar de trabajar, pedir por favor que me haga un papel con mi nombre (que no se si serán capaces ya que su web no me permite hacer eso), mandarlo otra vez a Yoigo, para que si les apetece, ¿me acepten en su secta?
- Si.
- Vale déjalo… ya no quiero ni portabilidad ni ostias.

Enfadado me voy a tomar un café, se lo cuento a los compañeros de trabajo (que son Yoigo) y se parten el pecho de mi situación. Genial, a la mierda. Recapacito. ¿Pero que mierdas estoy haciendo?, soy solvente, no tengo deudas (salvo una hipoteca como todo hijo de vecino), y gano suficiente dinero para considerarme capaz de pagar el recibo. ¿Porqué me estoy mareando?.

Me doy media vuelta, abro un navegador en el PC, voy a la web de PepePhone. En menos de 2 minutos, sin pedirme nada, soy de PepePhone, con una tarifa muy parecida a la de Yoigo.

Resumen: Vete a la mierda Yoigo. Si no quieres clientes, no ofrezcas dar de alta nuevos clientes. ¡Hola PepePhone!.

Share

Geoserver en entorno de producción (VI): Cacheando mediante MapProxy

Logo MapProxy

Si os fijáis, tener un servidor de mapas no es “ligero”, ya que por defecto, genera todas la capas al vuelo, reproyecta y cambia de formato… ¡Aunque pidamos dos veces lo mismo!.
Por lo tanto: usa mucha cantidad de CPU, memoria y incluso disco. Si pensamos en subirlo a la nube, y usar el Amazon para servir tus mapas, por poner un ejemplo, tendrías que pensar en controlar mucho el consumo  y de no encontrarnos con alguna sorpresa en la factura de algún mes.

Pero esto tiene solución, claro. La idea es cachear el trabajo, y lo vamos a hacer mediante un servicio de proxy geoespacial que guardará los mapas generados para no tener que volver a generarlos y gastar tiempo/recursos. Para esta tarea, usaré “MapProxy ya que es el desarrollo mas maduro y versátil que he encontrado. Está montado sobre Python, y su montaje es “relativamente” sencillo, si tienes una buena guía, como esta, por ejemplo.

Preparar el entorno

Empecemos, vamos a instalar todo lo necesario para empezar. Utilizaremos nuestro querido “apt-get” para bajar todas la librerías que necesitamos.

sudo aptitude install python-imaging python-yaml libproj0 libgeos-dev python-lxml libgdal1-dev python-shapelyy build-essential python-dev libjpeg-dev zlib1g-dev libfreetype6-dev

Aparte, bajamos la herramienta de creación de un entorno independiente de Python. ¿Que hace esto?, pues generar un entorno virtual Python dentro de un entorno real de Python, para que nos entendamos, tener siempre una versión de Python, aunque en el sistema este cambie.

wget https://raw.github.com/pypa/virtualenv/1.7.1.2/virtualenv.py

Creamos el entorno virtual, y le damos permisos para poder escribir sin ser root. Este paso no es necesario, pero es muy cómo para trabajar desde cualquier usuario normal.

virtualenv /var/local/mapproxy/venv
chmod ugo+x -R /var/local/mapproxy/venv

En este momento ya disponemos de un entorno virtual Python, y se encuentra dentro de “/var/local/mapproxy“, y lo usaremos  para trabajar e instalar MapProxy.

Para activarlo (esto significa que usaremos el Python virtual, no el real), tendremos que ejecutar el comando “source“. Si no hacemos este paso, será como si no existieran todas las herramientas que vamos instalar posteriormente. Por lo tanto este paso es muy importante.

source /var/local/mapproxy/venv/bin/activate
# Fijate como ha cambiado el prompt, y nos indica que estamos en un "venv" o entorno virtual.
(venv)admin@svrmapas:~$
# Si queremos salir del entorno virtual, NO lo uses aun, usa este comando:
deactivate

Usando PyIP para dejar nuestro Python perfecto

Este herramienta, que en adelante llamaremos PIP, es como el “apt-get” pero solo para Python. Es muy sencilla de usar, y de verdad, nos facilitará la instalación de todas las librerías Python. Pasemos a instalar todas las librerías:

pip install https://bitbucket.org/olt/pil-2009-raclette/get/default.tar.gz # Para uso avanzado de PNG
pip install flup # Servidor fcgi
pip install MapProxy
# Si MapProxy necesita dependencias que no tienes, se las bajará.
# Esto puede tardar.

Configuración básica para MapProxy y test del servicio

Ahora creamos una configuración por defecto para MapProxy. Esto es una configuración por defecto que consulta unos mapas (creo recordar que del OpenStreetMap, pero no estoy seguro) y nos sirve para testar que nuestra instalación de MapProxy funciona. No voy a entrar mucho más allá, pero puedes consultar el manual de MapProxy para configurarlo.

mapproxy-util create -t base-config /var/local/mapproxy

Vale, tenemos la configuración básica, pero quiero ver algo. La gente de MapProxy son muy listos y nos permiten lanzar un servicio de test, solo usando herramientas de Python.

cd /var/local/mapproxy
# Yo le he pasado la ip y el puerto de escucha ya que tengo un Tomcat
# escuchando por el puerto 8080 que es el defecto que usa.
mapproxy-util serve-develop -b 192.168.0.100:8081 mapproxy.yaml

Con este comando, tendremos un servidor escuchando por el puerto 8081, es decir se podrá acceder a dicha cache mediante la URL:


http://192.168.0.100:8081/service?

Este servicio lo podremos testar mediante el uso de algún cliente GIS que tenga soporte para WMS, como por ejemplo “gvSIG” que permite la consulta a servidores WMS.

Ahora, a producción

Ahora habrá que utilizar, algún método para desplegar el servicio de caché de manera que de el mejor rendimiento. Yo he optado por FastCGI sobre un servidor “Apache2″, ya que estoy muy familiarizado con este sistema, pero hay muchas otras formas de hacerlo como indican en la documentación oficial y en otras guías.

sudo apt-get install libapache2-mod-fcgid

Ahora creamos un fichero “mapproxy.fcgi” con el siguiente texto:

#!/var/local/mapproxy/venv/bin/python
# WSGI module for use with Apache mod_wsgi or gunicorn
# # uncomment the following lines for logging
# # create a log.ini with `mapproxy-util create -t log-ini`
# from logging.config import fileConfig
# import os.path
# fileConfig(r'/var/local/mapproxy/log.ini', {'here': os.path.dirname(__file__)$

from mapproxy.wsgiapp import make_wsgi_app
application = make_wsgi_app(r'/var/local/mapproxy/mapproxy.yaml')

if __name__ == '__main__':
    from flup.server.fcgi_fork import WSGIServer
    WSGIServer(application).run()

En este script, hay varias cosas a destacar:

  • La primera linea tiene que indicar donde está el fichero de python del entorno virtual. NO vale con el python que tiene instalado el servidor, ya que no tendrá instalada ninguna de las librerías anteriores.
  • Esta línea: make_wsgi_app(r’/var/local/mapproxy/mapproxy.yaml’) indica donde esta el fichero .yaml donde has configurado todas las capas que consultara MapProxy. Esto es muy extenso y te recomiendo el manual de la web de MapProxy.

Tras esto configuramos el servidor web Apache, incluyendo esta línea al final de fichero “/etc/apache2/mods-available/fcgid.conf“:

[...]
# Tiene que tener la configuración del módulo arriba
ScriptAlias /mapproxy /var/local/mapproxy/mapproxy.fcgi

Y ahora un paso muy oscuro, tiene que poner como propietario al usuario que maneja el servidor web de TODA la carpeta de MapProxy. No sé si se podrá solo dar permisos en ciertos lugares, pero es lo único que me ha funcionado.

chown apache /var/local/mapproxy/ -R

Reinicia Apache, y ahora tendrás que tener accesible la web de prueba de MapProxy en “http://server/mapproxy” y el servidor WMS está en “http://server/mapproxy/service?“.

Otra guerra, es la configuración correcta para servir mallas… no me veo con fuerza hoy de escribir, ya que ese si sería un gran manual.

Documentación usada:

Share

Corrigiendo el error de “Automatic crash report generation” al arrancar Ubuntu 11.10

Se que soy un poco pijo para mis instalaciones de Ubuntu, pero detesto que muestre fallos en los arranques, y uno muy curioso que está dándome en una instalación nueva de Ubuntu Server 11.10 es que muestra un error al arrancar “Automatic crash report generation” dejando un error marcado en la consola.

Este servicio, el que provoca el error, es Apport, y es el encargado de generar reportes de error cuando una aplicación se sale de manera no controlada y no tiene un sistema propio de reporte de errores.

Para solucionar esto, solo hay que hacer:

sudo nano /etc/default/apport  # Poner a 1 el campo "Enabled"
sudo reboot

Tras esto no tendrías que tener más ese maldito error en pantalla.

Share

Backup rápido entre máquinas con rsync

Aunque no voy a entrar en profundidad en el tema de como montar un servidor rsync, ya que hay muchos manuales y es muy sencillo de montar en un servidor Linux, os voy a dejar mi receta, rápida, para montar un backup de una máquina remota en otra mediante rsync y sin muchos problemas.

Esto lo suelo usar para replicar información importante que siempre necesita tener un backup idéntico. No hace copias incrementales, si no un espejo de lo que hay en un disco a otro. Si el usuario borra una carpeta, en el backup también se borrará. Pero hay scripts para hacer copias incrementales con rsync por internet… no tardarás en encontrarlos.

Partimos que tenemos una máquina con rsyncd configurado y funcionando, pues para hacer un backup rápido, solo hay que hacer:

rsync -Eavz --delete-after --stats --progress --password-file=/etc/rsync.pass /directorio/a/salvar/ rsync://rsync@megaNAS/CompartidoRsync/

Como verás he indicado un directorio donde se almacena el password para el servidor rsync remoto, que no es más que un fichero con el password en texto plano. Pero es importante que tenga los permisos solo para el usuario.

chmod 600 /etc/rsync.pass

Se que lo ideal es montar un follón de certificados para que no te pida password, pero con un fichero nos ahorramos todos los problemas. Ahora metemos esta linea en el fichero de crontab… y ya está.

Share

¿Y si tengo un Android, me afecta el escándalo del “Carrier IQ”?

Siempre, algunos locos, hemos visto internet como algo bueno, pero que entraña un gran peligro. Un gran peligro para tu intimidad, entre otras cosas, y con noticias como la siguiente, hace que me reafirme en dicho supuesto.

Saltó la liebre esta semana cuando TrevE, desarrollador Android que se mueve por los foros de XDA-Developers (muy buenos foros por otra parte si te gusta trastear con tu móvil), nos descubrió que existía un software instalado por defecto en nuestros terminales que capturaba cualquier cosa que hiciéramos sobre el terminal, y cuando digo cualquier cosa, es cualquier cosa.
Y SI, es lo que piensas, cuando escribes su password supersecreto de la muerte, “Carrier IQ” lo esta apuntando. Cuando visitas esa web de la que tanto te avergüenzas también queda registrado. Aparte, afecta a muchos otros terminales, como los Nokia, iPhone, Blackberry, etc…

¿Y qué es “Carrier IQ“?. Pues una empresa de… sorpresa… minería de datos (o algo así). Con toda la información que recopila, la organiza y la vende para obtener un beneficio.

Y tu te preguntaras: ¿Me venden un teléfono que encima me espía?. Buena pregunta, hazla a tu fabricante o mejor quéjate porque tienes razones para quejarte de dicho atropello a la intimidad. Y lo mejor de todo, nuestro héroe, TrevE ha recibido por parte de Carrier IQ cartas para queje de publicar “información” sobre lo que esta ocurriendo o se verá con sus abogados. Ahí lo llevas.

Yo, preocupado como usuario de Android, busqué información sobre como afectaba a los que no teníamos la ROM oficial del terminal si no otra que hemos metido después ”cocinada”. Lo que encontré se puede puede resumir en lo siguiente:

  • Si tienes una ROM original, puede que lo tengas. Mejor dicho, si tiene una ROM con “HTC Sense”, o “TouchWiz”, o similares, seguro que tienes este fastidioso rootkit.
  • Si tienes otras ROM “cocinadas”, no creo. Si buscas por los foros, verás que muchos “cocineros” ya confirman tener sus ROMs libres de todo bichillo. Como por ejemplo la famosa CyanogenMOD.
Edición 2/12/11: Parece que TrevE ha sacado una app para Android que nos permite saber si tenemos el Carrier IQ instalado, y pagando 1 dolar poder eliminarlo del sistema.

Share

La desilusión de Amazon España

Amazon España

Nada más abrir Twitter hoy, me encuentro con los primeros comentarios de que Amazon ya ha abierto su tienda online en España. Como fiel comprador, de la versión del Reino Unido, de dicha tienda online (sobre todo por su servicio, y unos precios muy buenos en casi todo) me dispongo a entrar en la web de inmediato pensando en comparar precios, ya que como buen español, siempre sospecho que me van a engañar.

Y quizás engañar no es la palabra que me ha venido a la mente tras compara precios, pero si desilusión.

Os dejo unos ejemplos, que han sido los tres primero productos que me consultado en la nueva página española de Amazon, unos videojuegos para Xbox 360, contrastando con sus precios en la versión del Reino Unido de Amazon y utilizando los cambios de divisas que ofrece la web XE.com (se que Amazon siempre te da un cambio peor, pero lo voy a usar para tener una referencia referencia):

  • Gears of Wars 3: En UK vale 37,99 libras, unos 44 euros. En la versión ES, me encuentro con 48.92. Un 11.5% más caro. Vaya, sigamos probando.
  • Dance Evolution: En UK vale 19,99 libras, unos 23 euros (aunque tienes que llegar a 25 libras para el envío gratuito). En la versión de la tienda ES, me encuentro que vale 62,13 euros… solo un 169% más. Ostia, esto pinta mal. Y encima es importado de UK… que alguien me lo explique.
  • NBA 2011: Es el ejemplo más sangrante que he visto, de la diferencia de precios (a peor) de la tienda ES de la UK. En la tienda de UK encontramos un precio muy barato 15 libras que son unos 17 euros, pero ahora en la tienda ES me encuentro que vale 74 euros, lo que es un 332% más caro. Y lo más sangrante es que también es de importación desde el UK. ¿Es una broma?.
Creo que no me hace falta mirar mucho más de la web de Amazon en España para saber que no voy a comprar mucho por allí. Y aunque si he leído que tienen algún producto con buen precio, parecen ser escasos (tanto la cantidad de productos como en las ofertas). Y eso que no me he metido a mirar en libros ya que parece que también patinan bastante, y sin libro electrónicos (yo no los encuentro) para su producto estrella, el Kindle.
Esperemos que esto sea un comienzo, mal comienzo, por parte de Amazon en España. Con la facilidad de comprar en la tienda de UK, ¿porqué vamos a comprar las cosas en España si valen un pastón?. Es decir, que casi no hay diferencia entre comprar en Amazon o en tienda física.
En resumen: Una gran decepción.

Share

Google Music, mi experiencia con la música en la nube

Google MusicTras unas semanas usando el nuevo servicio en la nube de Google, Music, tengo que decir que he podido utilizar bastante el servicio y encontrar todo aquello que me interesaba tener en una aplicación en la nube donde almacenar mis ficheros mp3, pero a su vez le he encontrado carencias, y cosas que, sin duda, se tendrán que mejorar.
Aunque tengo que reconocer que ahora mismo es la mejor alternativa que he encontrado, por encima de Spotify y Grooveshark, y que prácticamente puedo decir que seré usuario de este servicio cuando salga de la fase beta. Y como muchos me habréis leído en Twitter, me declaro fan de dicho servicio, pero eso no quita que pueda ser crítico con el servicio e intentar no convertirme en un “fanboy”. Una de las partes que quizás no me suele gustar de Google es su “secretismo” y su eterno estado “beta”, lo que puede ser algo contraproducente (o a la inversa… sólo hay que ver casos como Gmail, o como Wave), por lo que durante mucho tiempo todo lo que contemos no podrá pasar de “rumor”, y sin ninguna confirmación.

Hagamos un pequeño resumen de los puntos más destacados que creo que hay que señalar, tanto fuertes como débiles.

Puntos fuertes:

  • Podremos subir hasta 20.000 canciones (y 250 megas por mp3 subido), aunque no conozco a nadie que haya llegado a dicho límite. Este almacenamiento ahora mismo es gratuito, y da de sobra para subir todos los discos que tengas… bueno, por lo menos a mi me sobra.
  • Se rumorea que serán 20$ por año, con una parte gratuita. Quizás con esa parte de pago, no haya limites o se aumenten los actuales. Como todo son rumores y esperemos que esto se aclare en breve, ya que últimamente Amazon se esta moviendo mucho para mejorar y hacer la competencia con precios más bajos y almacenamiento ilimitado.
  • Permite comprar discos y mp3 desde el intefaz mediante el mismo buscador de Google. Aun está por explotar el tema, ya que una integración mayor sería deseable (comprar y subirlo automáticamente).
  • El interfaz web que nos ofrece es muy “Google”: Sencillez y funcionalidad. Puede que se echen de menos alguna opción más pero como biblioteca de música ofrece todo lo necesario.
  • La organización es muy visual, y permite de un vistazo ver las caratulas de los discos agrupadas
  • Editor de tags y caratulas desde el mismo interfaz web. Permite la edición de discos completos, que es muy cómodo.
  • Cliente para Android, con  una integración completa con la aplicación.
  • El cliente Android permite seleccionar discos para oírlos ”offline” y no tener que gastar datos de tu conexión móvil.
  • Listas “inteligentes”, como las que tiene iTunes. Seleccionamos una canción y nos genera una lista “relacionada” con dicha canción. Aunque en ciertas ocasiones (si no has oído mucha música) no será capaz de generar la lista.

Puntos débiles:

  • Sigue sin estar disponible en España, aunque usando un proxy de USA se puede pedir una invitación y luego usarlo sin problemas desde cualquier parte del mundo.
  • Tendrás que subir todos los mp3, no como por ejemplo con Spotify o iTunes (ya que tienen muchos discos ya disponibles). Es decir, en Spotify, en cuanto pagas una suscripción tienes acceso a toda su biblioteca de forma directa. En Music, tienes un espacio vacío que tendrás que llenar tú.
  • No termina de estar claro su relación con las discográficas, y si tiene acuerdos para comercializar el servicio. Esto es muy importante, ya que si no hay nada firmado, cuando se firme se puede cambiar mucho el tipo de servicio (como ha ocurrido con Spotify y sus cambios para poder desembarcar en USA).
  • En relación con el punto anterior, muchos se han apresurado a señalar este servicio será usado por mucho “piratas” que se han bajado el mp3 y no han comprado el disco. Por otra parte, este servicio se puede también afirmar que serviría para “legalizar” los ficheros mp3, repartiendo parte de la suscripción para compensar a los autores. Al igual que el punto anterior, esto esta en aire.
  • El cliente no funciona en Linux (sólo Windows y Mac), aunque se puede utilizar con Wine, sin muchos problemas.
  • La aplicación “Music Manger” no soporta el uso de proxys. Si tienes un proxy transparente en tu oficina o tu casa, no funcionará. Aunque parece que hay gente que lo conseguido, yo no he podido utilizar el proxy de la empresa.
  • Sólo se puede subir utilizando la aplicación “Music Manager”. En ciertas ocasiones se agradecería subir desde el mismo interfaz web.

Share

Error “svn export failed” en WebSVN al hacer un tarball

Pero que complicado es esto… y desesperante. Lograr tener todo perfecto y sin ni una mancha :P

Logo de WebSVNHoy vamos a luchar contra un “bug” (no se si se puede decir que sea culpa del script) de WebSVN en su rama 2.3.x. Si no conoces este software/script/web, es una pequeña página web que usa PHP, que permite acceder a un servidor Subversion desde una página web muy amigable. Este programa tiene la característica de hacer un zip/tar con el código fuente y bajarlo desde esta web… salvo si pones acentos en algún fichero. Entonces tendremos un bonito error que pondrá algo como:

svn export failed [...]

En ese momento piensas: “Seguro que es una chorrada de configuración de la web”. Mal, compañero, mal. Siguiendo una lógica deductiva busque si era un error de WebSVN, luego de Subversion, luego de Apache, luego de PHP y luego del sistema operativo. Obviamente, y como ocurre en estos casos, era un error en conjunto.

La causa, básicamente, es que Apache siempre arranca con las “locale” asignas a “C”, y obviamente, WebSVN lanza Subversion con dichas “locale” lo que hace que no sepa interpretar los caracteres acentuados y eñes (que están en UTF-8).

¿Como arreglarlo?, así de fácil o de complicado (como quieras verlo):

// Fichero websvn/include/setup.php
//
// Busca la línea 329 mas o menos, donde habrá algo del tipo:
setlocale(LC_ALL, '');
// Cambialo a:
setlocale(LC_ALL, 'es_ES.UTF-8');
// Añade esta línea
putenv('LC_ALL=es_ES.UTF-8');

Si no codificación de caracteres no es la misma, pues pon la que tenga tu equipo (ejecuta un “locale” en la consola).

Hecho.

Referencias:

Share

De imagen a ICO con Paint.Net

Muchos ya conocemos este magnifico sustituto del clásico (e infravalorado) Paint de Windows, el Paint.NET.
Y todos los que tenemos que sufrir a diario los pequeños retoques de imágenes que aparecen en los “quehaceres” diarios de un programador, agradecemos su existencia y su sencillez.

Pero como siempre, me he encontrado un problema… no conoce el formato ICO, ni ofrece ningún soporte para este formato, que tanta falta hace en Windows. Por lo que, de serie, el programa no los puede editar, ni trasformar de un formato hacia el formato .ico.

Gracias a dios, la gente de Paint.NET, ofrece la posibilidad de desarrollar plugins sobre su programa y como no, un programador, relleno el hueco desarrollando un plugin.

Para poder usar el formato ICO hacemos lo siguiente:

Pantalla de exportación a ico/ani/cur

  1. Vamos a esta dirección y bajamos la dll (Icon/Cursor Format Support). Demos las gracias al autor, por tan maravilloso plugin.
  2. Metemos esta dll en el directorio “FileTypes” del directorio de instalación de Paint.NET.
  3. Ahora podemos exportar a .ico/.cur/.ani cualquier imagen, y crear ficheros con varias resoluciones (dentro de un fichero la imagen se guarda con varias resoluciones lo que lo hace aun más potente), mediante un sencillo menú.

Share