Posts Tagged ‘Windows’

h1

Machinarium a menos de 5 €

10 agosto 2010

He de reconocer que pocos juegos indie me llaman la atención. Por ejemplo, World of Goo y Braid, tenían buenas ideas pero me pareció que les faltaba un poco de espíritu. En el otro extremo, Plants vs Zombies me enganchó completamente.

Carátula de Machinarium

Machinarium, una aventura gráfica protagonizada por un robot súper-puchi y con un desarrollo basado en pantallas individuales, atrajo mi curiosidad desde el principio. Y es que entra mucho por los ojos y los oídos, con unos diseños de cuento dibujado a mano y una banda sonora discreta y que se integra perfectamente en el ritmo tranquilo (al menos inicialmente, no he avanzado mucho todavía) de la aventura.

Sin embargo, los 15 € que costaba en un principio (sabiendo que no tampoco es un prodigio de la duración) me resultaban un poco excesivos, así que no me animé a comprarlo. Y por las estimaciones que han hecho los desarrolladores, parece que el 85% de los que jugaron tampoco consideraron que el precio fuese justo, glup.
Así que hasta el 12 de agosto han decidido realizar una “amnistía pirata”, bajándolo de precio a $5 e incluyendo la banda sonora en el pack, con el juego en formato descargable para Windows, Linux de 32-bits (meh) y Mac OS X en una sola compra. Con IVA y demás monsergas resulta en 4,60 € para España, y aceptan tarjeta de crédito y PayPal; yo lo compré ayer sin dudarlo un segundo y me enamoré después de un par de puzzles ❤

Si sabéis ruso, alemán o italiano podéis comprarlo en formato físico, aunque la oferta no se aplica.

Amnistía pirata por Machinarium

Y para convenceros de que el juego os va a gustar, en la propia web hay disponible una demo.

¡Vamos vamos, son menos de 5 €, ya no hay excusa para no comprar juegos! Y menos cuando cobran lo mismo por DLCs de trajes 😛

h1

Buscar texto en cualquier tipo de archivo en Windows XP

18 febrero 2010

La búsqueda por contenido incluida por defecto en Windows XP (no sé si en 7 es igual) apesta: solo permite buscar texto en archivos .txt, .doc, .xls y demás formatos de Microsoft. Si tienes una carpeta llena de archivos de código fuente puedes darte por muerto, salvo si lo configuras a mano.

Milagrosamente, por una vez la web de soporte de Microsoft sirve para algo 😮 Proporcionan dos métodos, el primero consistente en instalar una actualización, pero sigue manteniendo una lista de formatos limitada y el formato .po (utilizado en traducciones de gettext) no está reconocido, lo cual me fastidia bastante cuando estoy traduciendo una aplicación en Windows.

La segunda alternativa es configurar el sistema de búsqueda a costa de una penalización en el rendimiento que yo aún no he notado. Supongo que si eliges explorar todo el disco duro en lugar de una carpeta concreta será más agónico. Los pasos para ello son:

  1. Abrir la función de búsqueda, desde Inicio » Buscar o desde el botón Búsqueda en una vista de carpeta.
  2. Seleccionar Cambiar preferencias (la última opción) » Con Index Server (para búsquedas locales más rápidas) » Cambiar la configuración de Index Server (avanzada). No es necesario activar el Servicio de Index Server.
  3. En la barra de herramientas, hacemos clic en Mostrar u ocultar el árbol de la consola y, cuando se muestre el panel izquierdo, en Servicio de Index Server en equipo local (con el botón derecho) » Propiedades.
  4. En la pestaña Generación, marcamos la casilla Indizar archivos con extensiones desconocidas, cerramos el cuadro de diálogo y salimos de la consola. Cerramos la ventana actual del Explorador de Windows (es un poco cortito en temas de refresco 😛 ) y cuando la volvamos a abrir ya estará activada una búsqueda decente.

Fuente: Web de soporte de Microsoft

h1

Comunicarse con Windows Mobile en OpenSUSE usando SynCE

12 febrero 2010

El uso más habitual que le doy a mi PDA (con Windows Mobile) es ver vídeos en el camino al trabajo y, como ahora mismo solo tengo Windows instalado para jugar, una de las cosas que más pereza me da es tener que reiniciar para mover archivos del ordenador al móvil. La última vez que intenté comunicarla con Kubuntu 8.04 el resultado fue nulo pero ayer, tras instalar KDE SC 4.4, decidí probar también con esto y (por suerte) las cosas han cambiado 🙂

Para ello utilicé SynCE, que parece la alternativa más extendida para realizar esta tarea y además tiene una entrada dedicada exclusivamente a ella en la web de OpenSUSE.  El proceso completo, después del salto. Read the rest of this entry ?

h1

Communicating Mantis and Subversion on Windows

7 enero 2010

Although this blog is mainly written in Spanish, because of the lack of information both in Spanish and English, I’ll try to explain how to communicate Mantis and Subversion on a Windows server. Please be gentle with my English, but feel free to send any correction 🙂

Installing Mantis and Subversion (it’s logical)

I think it’s not that hard, otherwise there are lots of tutorials out there in the net 😉 In my case, I used the CollabNet svnserve package, which automatically creates a repositories folder in C:\svn_repositories and the corresponding Windows service. We must also create a repository, in my case in C:\svn_repositories\repositorio-1 (originality for the win!).

Creating a Mantis user account

This account (something like “svn”) should be able to add messages to the tickets and (optionally) close them. It is enough to grant it the developer role. Note: Don’t forget to assign it to the projects where this task is going to be automated!

Editing the config_inc.php file

It is placed in the Mantis root folder. The changes to this file include the user account created in the previous point, the regular expressions to match in order to identify a message which references an issue and, if we want the tickets to be automatically marked as resolved, another regexp, the final status and the resolution. It will be something like this:

# User account that connects with Subversion
$g_source_control_account = 'svn';

# Regular expression to be matched in the comments
# Example: issue #1
$g_source_control_regexp = '/\b(?:bug|issue|error)\s*[#]{0,1}(\d+)\b/i';

# Regular expression to be matched to fix an issue
# Example: fixed issue #1
$g_source_control_fixed_regexp = '/\b(?:fixed|fixes|resolved)\s+(?:bug|issue|error)?\s*[#](\d+)\b/i';
# Status after solving the issue
$g_source_control_set_status_to = RESOLVED;
# Resolution after solving the issue
$g_source_control_set_resolution_to = FIXED;

First test

We will need some things in order to perform an initial test:

  1. Creating a dummy issue in Mantis and remember its number 🙂
  2. Creating a text file which contains a dummy commit message like “fixed issue #1” (this is why we needed the issue number).
  3. Accessing to a system shell, like using remote desktop (why not native SSH?). Once it is open, since Windows’ standard input sucks and we can’t input the text directly with the <<< operator, we run the command
    C:\path\to\php.exe C:\path\to\mantis\scripts\checkin.php < C:\path\to\text\file
    If the contents of the text file don’t match the regexp, we will get the message “Comment does not reference any issues”, otherwise the status of the Mantis issue should have changed to “resolved”, and a comment with the text should have been appended to the ticket. Don’t forget that some Mantis versions (this should be fixed for 1.2 final) only accept one-line messages; if they have more than one line they won’t be related to any issue.

Connecting the Subversion server

Once we have checked the basics, we’re going to connect Mantis with the Subversion server, for which we will use a BAT file that will run after every commit, which is called a SVN hook (there are also pre-commit, pre/post-update hooks, etc.). This file must be placed in the hooks folder of the repository, i.e. C:\svn_repositories\repositorio-1\hooks, and named post-commit.bat.
Its contents will be as follows, without forgetting to change the PHP, CHECKIN and SVNLOOK variables paths to the correct ones in your system:

@ECHO on

SET REPOS=%1
SET REV=%2

SET PHP="C:\Program Files\PHP\php.exe"
SET CHECKIN="C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mantis\scripts\checkin.php"
SET SVNLOOK="C:\Program Files\CollabNet\Subversion Server\svnlook.exe"

SET LOGFILE=C:\Temp\log.txt
SET AUTHORFILE=C:\Temp\author.txt
SET OUTPUTFILE=C:\Temp\output.txt

%SVNLOOK% log -r %REV% %REPOS% > %LOGFILE%
%SVNLOOK% author -r %REV% %REPOS% > %AUTHORFILE%

TYPE %LOGFILE% > %OUTPUTFILE%

%PHP% %CHECKIN% < %OUTPUTFILE% >> %LOGFILE%
ECHO "Post-commit for revision %REV% finished" >> %LOGFILE%

@ECHO off

Once the file is placed in the folder, we must restart the SVN server in order to register it (I spent a lot of time with this stupidity).
As result, there should be a text file C:\temp\output.txt with the SVN log for the last revision, and another C:\temp\log.txt with the log, the checkin.php output (empty) and the text string confirming the post-commit execution. Oddly, if I didn’t include this last output the script exited with a 255 error and no output, but the Mantis ticket was correctly modified; so it is there just to avoid confusing the user. If someone knows a possible reason for this one, I would be glad to read comments about it 😀

h1

Comunicar Mantis y Subversion en Windows

7 enero 2010

Para empezar bien el año, en el trabajo me tocó una tarea de administración, consistente en comunicar nuestro servidor Subversion para desarrollo con el bugtracker Mantis, para que cuando se hiciese un commit con un mensaje de la forma “arreglada incidencia #1” se marcase automáticamente como resuelta en este último 🙂
Desgraciadamente era sobre un servidor Windows y toda la información vi en Internet hace referencia a servidores Linux (excepto un script post-commit de SVN que no funcionaba xD) así que, para aquellos que lo vayan a sufrir en el futuro, espero que les sirva de guía. Los pasos son los siguientes:

Instalar Mantis y Subversion (lógico)

Espero que esto no suponga ninguna dificultad, si no hay 3000 tutoriales por la red 😉 En mi caso, para el servidor de SVN utilicé el paquete de CollabNet, que crea automáticamente una carpeta para repositorios en C:\svn_repositories y el servicio de Windows asociado. También tenemos que crear un repositorio, en mi caso en C:\svn_repositories\repositorio-1 (originalidad al poder).

Crear una cuenta de usuario de Mantis

Dicha cuenta (por ejemplo “svn”) debe poder añadir mensajes a las incidencias y (opcionalmente) cerrarlas. Con asignarle el nivel de desarrollador es suficiente. Nota importante: ¡No olvidar asignarle los proyectos donde se quieran automatizar esta tarea!

Editar el archivo config_inc.php

Se encuentra en el directorio raíz de Mantis. Los cambios incluirán la cuenta creada en el punto 2, las expresiones regulares por las que se identifica que un mensaje se refiere a una incidencia y, si vamos a permitir que las marque automáticamente como resueltas, el estado y la resolución a las que se haya llegado. Serían algo tal que así:

# Cuenta que se conecta con Subversion
$g_source_control_account = 'svn';

# Expresión regular a encajar en los comentarios
# Ejemplo: incidencia #1
$g_source_control_regexp = '/\b(?:bug|issue|incidencia|fallo|error|problema)\s*[#]{0,1}(\d+)\b/i';

# Expresión regular a encajar para resolver una incidencia
# Ejemplo: resuelta incidencia #1
$g_source_control_fixed_regexp = '/\b(?:resuelto|resuelta|arreglado|arreglada|corregido|corregida)\s+(?:bug|issue|incidencia|fallo|error|problema)?\s*[#](\d+)\b/i';
# Estado tras resolver la incidencia: resuelta
$g_source_control_set_status_to = RESOLVED;
# Resolución trasresolver la incidencia: corregida
$g_source_control_set_resolution_to = FIXED;

Primera prueba

Para hacer una prueba inicial de su funcionamiento necesitaremos varias cosas:

  1. Crear una incidencia de prueba en el Mantis y acordarnos de su número 🙂
  2. Crear un archivo de texto que contenga un falso mensaje de commit como “resuelta incidencia #1” (para esto era importante acordarse).
  3. Acceder de alguna forma a una consola del sistema, por ejemplo, conectándonos por escritorio remoto (¿por qué no SSH nativo?). Una vez en ella, como la entrada estándar de Windows apesta y no podemos introducir el texto directamente con el operador <<<, ejecutamos la orden
    C:\ruta\a\php.exe C:\ruta\a\mantis\scripts\checkin.php < C:\ruta\al\archivo\del\mensaje
    Si no encaja con la expresión regular, obtendremos un mensaje “Comment does not reference any issues” (“El comentario no hace referencia a ninguna incidencia”). En caso contrario, abrimos la incidencia en el Mantis y su estado debería haberse modificado, y haberse añadido el mensaje con el texto. Es importante tener en cuenta que en ciertas versiones de Mantis (para la final de 1.2 ya debería estar corregido) en esta situación solo se aceptan mensajes de una línea; si tiene varias no lo asociará a una incidencia.

Conexión con el servidor Subversion

Una vez comprobado que lo básico no explota, pasamos a conectarlo con el servidor Subversion. Para ello utilizaremos un archivo BAT que se ejecutará después de cada commit, lo que se denomina un hook de SVN (también hay hooks para antes de un commit, de un update, etc.). Este archivo debe guardarse en la carpeta hooks del repositorio, en mi caso en C:\svn_repositories\repositorio-1\hooks, con el nombre post-commit.bat.
El contenido del archivo será tal que así, sin olvidar sustituir las rutas de las variables PHP, CHECKIN y SVNLOOK a lo que correponda en el sistema de cada uno:

@ECHO on

SET REPOS=%1
SET REV=%2

SET PHP="C:\Program Files\PHP\php.exe"
SET CHECKIN="C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mantis\scripts\checkin.php"
SET SVNLOOK="C:\Program Files\CollabNet\Subversion Server\svnlook.exe"

SET LOGFILE=C:\Temp\log.txt
SET AUTHORFILE=C:\Temp\author.txt
SET OUTPUTFILE=C:\Temp\output.txt

%SVNLOOK% log -r %REV% %REPOS% > %LOGFILE%
%SVNLOOK% author -r %REV% %REPOS% > %AUTHORFILE%

TYPE %LOGFILE% > %OUTPUTFILE%

%PHP% %CHECKIN% < %OUTPUTFILE% >> %LOGFILE%
ECHO "Ejecutado post-commit de revisión %REV%" >> %LOGFILE%

@ECHO off

Tras copiar este archivo en la carpeta, debemos acordarnos de reiniciar el servidor SVN para que lo registre (perdí mucho tiempo por culpa de esto).
Como resultado, deberíamos obtener un archivo en C:\temp\output.txt con la salida del log de SVN para la última revisión, y otro en C:\temp\log.txt con, además de esta, la de checkin.php (vacía) y la cadena de confirmación de ejecución del post-commit. Extrañamente, si no incluía esta última salida el script terminaba con un error 255 sin ninguna salida, pero sin embargo la incidencia del Mantis se modificaba correctamente; simplemente está para evitar confundir al usuario. Si alguien sabe a qué puede deberse esto estaré encantada de leer comentarios al respecto 😀