Crear un pendrive personalizado para instalar Windows 10

De vez en cuando tengo que hacer reinstalaciones de equipos en el colegio, y siempre ando buscando formas para hacer que esa tarea me lleve menos tiempo.

Una de las cosas que he hecho últimamente es crear un pendrive de instalación de Windows 10, para instalaciones en equipos individuales, con la mayor parte del software que necesito ya instalado.

Te aviso que no voy a utilizar el modo «oficial» de hacer las cosas, ya que Microsoft tiene un montón de utilidades para hacer temas más complejos, pero para lo que yo necesito, un par de scripts de Powershell me salvan la papeleta y me llevan menos tiempo.

¿Qué necesitas?

Lo primero que vas a necesitar es un par de pendrives. Uno pequeño (1 GB es suficiente) y otro grande. Cuando más grande, más imágenes diferentes podrás tener en él.

Por otro lado, necesitas un ordenador con Windows 10, idealmente actualizado a la última versión, y en el que instalaremos Windows ADK (luego lo comento). Este ordenador lo usaremos para crear el pendrive de WindowsPE (luego hablamos de ello) y para hacer pequeñas modificaciones a la imagen que hayamos creado, en caso necesario.

Finalmente necesitarás el ordenador en el que harás la instalación de referencia. Mi experiencia con Windows 10 es que, tras generalizar la imagen, podrás utilizarla en ordenadores con hardware me diferente. En mi caso, en el colegio, tengo muchos modelos distintos, con diferentes antigüedades, y tengo tres imágenes, que utilizo según el caso:

  • Una instalación de 64 bits, que utilizo solo para un modelo que tiene una controladora de disco un poco extraña.
  • Una instalación de 64 bits, que utilizo para el resto de equipos.
  • Una instalación de 32 bits, para unos equipos pequeños con procesador Atom (esta va en un pendrive aparte, con instalador de 32 bits).

Windows ADK

Lo primero que necesitamos es instalar en un ordenador con Windows 10 (idealmente la última versión) el paquete Windows ADK (Assesment and Deployment Kit). Lo podemos descargar desde aquí:

  • https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install

Después, si hemos instalado el Windows ADK de la versión 1809 o posterior, tendremos que instalar, aparte, el plugin de WindowsPE:

  • https://go.microsoft.com/fwlink/?linkid=2022233

WindowsPE

Lo siguiente que necesitamos es un pendrive con WindowsPE. ¿Qué es WindowsPE? Es una versión reducida de Windows que se utiliza, entre otras cosas, para capturar imágenes de instalación. Para ello, en el ordenador en el que hemos instalado Windows ADK, crearemos un directorio con el sistema base que luego pasaremos a un pendrive.

Ejecutamos la línea de comandos de Windows ADK en modo administrador («Deployment and imaging tools enviroment» o, en castellano, «Entorno de herramientas de implementación y creación de imágenes») y escribimos:

copype amd64 c:\WinPE_amd64

O, en caso de querer crear un pendrive para equipos de 32 bits:

copype x86 c:\WinPE_x86

Este comando crea una carpeta en c: con los ficheros que se copiarán al pendrive. Introducimos el pendrive que vayamos a utilizar (pequeño, con un 1GB es sufificiente) y escribimos:

MakeWinPEMedia /UFD c:\WinPE_amd64 f:

Cambiamos el nombre del directorio al que hayamos creado en el paso anterior, y la letra f por la del pendrive. Una vez terminado, extraemos el pendrive con seguridad.

Instalación base

En el pendrive grande grabamos la imagen de instalación de Windows 10. Yo me descargo la ISO de las licencias por volumen de Microsoft, y después utilizo Rufus para grabarla (cuidado, formateando el pendrive en NTFS, porque la imagen resultante tendrá, probablemente, más de 4GB).

Con ese pendrive instalamos el sistema operativo en una máquina de referencia y cuando se haya completado y empiece la configuración inicial, antes de seleccionar el idioma, pulsamos Shift + Alt + F3.

El equipo se reiniciará y Windows 10 arrancará en modo auditoría. Este modo utiliza el usuario administrador por defecto y nos permite instalar aplicaciones y realizar cambios para, después, generalizar la imagen, de forma que podamos utilizarla en nuevas instalaciones.

En mi caso, hago una instalación de la última versión de Office (al final hablaré un poco de esto), navegadores, notepad++, ImageResizer, VLC, 7zip, Paint.Net… lo que cada uno necesite.

Finalmente, copio en c:\ una carpeta que llamo «scripts». Cuando instalo un ordenador quiero hacer tres cosas: activarlo (si no es un equipo OEM con licencia de Windows integrada en la BIOS), crear una serie de usuarios locales y meterlo en dominio.

Además de esto, aprovecho para ejecutar Windows Update, meter todas las actualizaciones (en configuración avanzada de Windows Update activo las actualizaciones de otros productos de Microsoft para actualizar también Office) y ejecuto el liberador de espacio en disco para borrar todos los ficheros temporales. Ah, y quito también todo lo que haya en descargas.

Una vez todo esté preparado, ejecutamos Sysprep, la herramienta que generaliza el sistema (borra el identificador de la instalación de Windows, y todo lo relacionado con hardware del registro).

En modo auditoría, Sysprep se ejecuta en el arranque del sistema. Si no lo hemos cerrado ya tenemos ahí la pantalla, y si no, está en:

C:\Windows\System32\sysprep\sysprep.exe

Es importante que marquemos «Generalizar» y que no reiniciemos, sino que apaguemos. Si reiniciamos ahora, volverá a ejecutarse el asistente de instalación (nada que no podamos solucionar volviendo a entrar al modo de auditoría y volviendo a ejecutar Sysprep, pero perderemos tiempo).

Capturar la imagen

Como hemos dicho antes, Windows PE (o WinPE, Preinstalation Environment) es un entorno para preparar instalaciones. Es una versión mini de Windows, con una consola de comandos y una serie de utilidades para trabajar con imágenes.

Metemos el pendrive que hemos preparado en el ordenador en el que acabamos de realizar la instalación, y arrancamos desde este (con cuidado de no arrancar desde el disco duro). Lo primero que debemos hacer es cambiar el layout de teclado. En mi caso, para ponerlo en Español-España:

 wpeutil SetKeyboardLayout 040a:0000040a
start cmd

El primer comando establece el layout de teclado, y el segundo lo hace efectivo en una nueva ventana.

Necesitamos una unidad en la que guardar nuestra nueva imagen. Para ello, podemos pinchar el USB que vayamos a utilizar, o montar una unidad de red.

Supongo que todos aquellos que estén leyendo esto saben montar una unidad de red, pero por si acaso:

net use w: \\servidor\recurso_compartido /USER:usuario

Cambiamos w: por la letra de unidad que queramos usar.

El siguiente paso es montar la partición del disco en la que hemos instalado Windows 10. Ejecutamos:

diskpart

Desde esta aplicación buscamos el disco en el que hemos instalado (en este ejemplo, el 0), la partición del disco que contiene la instalación (en este ejemplo, la 2), y le asignamos una letra libre.

List disk
Select disk 0
List partition
Select partition 2
Assign letter g
Exit

Finalmente, capturamos la imagen. Cambiamos W por la letra de unidad en la que vayamos a guardar la imagen, y G por la letra de unidad en la que hayamos montado la instalación. También cambiamos el nombre por uno más descriptivo:

Dism /Capture-Image /ImageFile:w:\Windows10.wim /CaptureDir:g:\ /Name:"Windows 10"

Y apagamos:

Wpeutil shutdown

Preparamos nuestro pendrive personalizado

El último paso es copiar el fichero .wim que acabamos de capturar al pendrive que utilizaremos para capturar Windows 10, si es que no lo hemos capturado en él directamente.

En ese pendrive, en la carpeta «sources» hay un fichero «install.wim» que contiene la instalación base de Windows 10. Lo que haremos es sustituirlo por la imagen que acabamos de capturar.

Lo que yo hago es renombrar ese fichero (para poder usar una instalación limpia en caso necesario) y poner en su lugar el fichero que he capturado antes, con nombre «install.wim». Con un pendrive lo suficientemente grande, podemos tener ahí varios ficheros .wim y, antes de hacer una instalación, renombrar a «install.wim» el que queramos utilizar.

Es importante recordar que el pendrive no puede estar formateado en FAT32, porque si no, no podremos copiar imágenes que ocupen más de 4GB.

Listo para usar

Ahora puedes usar ese pendrive para instalar Windows 10 en cualquier ordenador. Esa instalación base tendrá ya, desde el primer momento, todas las aplicaciones que hayas instalado y cualquier otro fichero que hayas copiado.

¿Cómo puedo modificar la imagen?

En caso de que tengamos que modificar la imagen por algún motivo, podemos hacer ciertas operaciones, como instalar drivers, algunas aplicaciones, o cambiar ficheros, desde el ordenador en el que hemos instalado ADK (realmente,desde cualquier ordenador con Windows 10).

Podemos montar el .wim desde una consola de comandos en modo administrador:

dism /Mount-Image /index:1 /imagefile:z:\Windows10-image.wim /MountDir:c:\mount

z:\Windows10-image.wim es el fichero que queremos montar, y c:\mount es una carpeta que hemos creado en el ordenador para acceder a los ficheros de la misma.

Una vez realizados los cambios, desmontamos la imagen:

dism /Unmount-Image /MountDir:c:/mount /Commit

Una vez más, cambiamos c:\mount por la carpeta que hayamos utilizado. Si nos arrepentimos, cambiamos el /Commit por /Discard.

Bonus: algunos scripts

Por si os sirve para algo, os pongo aquí los scripts que utilizo para las instalaciones del colegio.

Activar Windows

Si uso equipos que no tienen ID de Windows en la BIOS, tengo un script con estas dos líneas, que ejecuto como administrador (con la clave de activación que quiero utilizar):

slmgr.vbs /ipk 00000-00000-00000-00000-00000
slmgr.vbs /ato

Con otro script permito la ejecución de Powershell y creo una serie de usuarios, según para qué vaya a utilizarse el ordenador, además de meterlo en dominio en caso necesario. El .bat:

cd /d %~dp0
powershell Set-ExecutionPolicy -ExecutionPolicy Unrestricted
powershell -File main.ps1
pause

Y el script de Powershell:

function Create-LocalAdminUser
{
    Param($Name,$Description,$Keyfile)
 
    $u = $null
    # Si el usuario no existe, lo creamos.
    try
    {
        $u = Get-LocalUser -Name $Name -ErrorAction Stop | Out-Null
                               echo "Usuario $Name recuperado."
    }
    catch
    {
        $u = New-LocalUser -Name $Name -NoPassword -AccountNeverExpires
                               echo "Usuario $Name creado."
    }
 
    # Le ponemos la clave correspondiente y le actualizamos la descripción
    $pass = Get-Content $Keyfile | ConvertTo-SecureString -Key (1..16)
    Set-LocalUser -Name $Name -Password $pass
    Set-LocalUser -Name $Name -Description $Description
               
    # Lo añadimos al grupo de administradores locales
                try
                {
                               $ug = Get-LocalGroupMember -Group "Administradores" -Member $Name -ErrorAction Stop | Out-Null
                               echo "Ya pertenece al grupo de administradores"
                }
                catch
                {
                               Add-LocalGroupMember -Group "Administradores" -Member $Name
                               echo "Añadido al grupo de administradores"
                }
}
 
function Add-ToDomain
{
    $adpass = Get-Content .\domain.key | ConvertTo-SecureString -Key (1..16)
    $cred = New-Object System.Management.Automation.PSCredential("administrador@maristak.maristasbilbao.com",$adpass)
    Add-Computer -DomainName "maristak.maristasbilbao.com" -Credential $cred
}
 
$opt = 0
while (($opt -ne 1) -and ($opt -ne 2) -and ($opt -ne 3))
{
    echo "¿Para qué se utilizará este ordenador?"
    echo "1. Ordenador de alumnado. Se creará usuario 'adminlocal' con clave de Administrador Local. No se meterá en dominio."
    echo "2. Ordenador de profesorado o de botiquín. Se creará usuario 'admin' con clave de profesorado y un 'adminlocal' con clave de administrador local y un 'ikasle' con clave 'ikasle'."
    echo "3. Ordenador de aula o sala de profesorado. Se creará usuario 'admin' con clave de profesorado y un 'adminlocal' con clave de administrador local."
    $opt = Read-Host "Introduce la opción:"
}
 
if ($opt -eq 1)
{
    Create-LocalAdminUser -Name "AdminLocal" -Description "Local Administrator" -Keyfile ".\student.key"
    echo "Finalizado."
}
elseif ($opt -eq 2)
{
    Create-LocalAdminUser -Name "AdminLocal" -Description "Local Administrator" -Keyfile ".\student.key"
    Create-LocalAdminUser -Name "admin" -Description "Administrador personal" -Keyfile ".\teacher.key"
    Create-LocalAdminUser -Name "ikasle" -Description "Ikasle generikoa" -Keyfile ".\ikasle.key"
    Add-ToDomain
    echo "Finalizado. No olvides entrar en el controlador de dominio, mover el equipo al grupo 'Ordenadores' y añadirlo al grupo 'Ordenadores'. Reinicia el equipo y, si va a ser usado como botiquín, inicia sesión con el usuario local '.\ikasle'."
}
else
{
    Create-LocalAdminUser -Name "AdminLocal" -Description "Local Administrator" -Keyfile ".\student.key"
    Create-LocalAdminUser -Name "admin" -Description "Administrador personal" -Keyfile ".\teacher.key"
    Add-ToDomain
    echo "Finalizado. No olvides entrar en el controlador de dominio, mover el equipo al grupo 'Ordenadores' y añadirlo al grupo 'Ordenadores'. Reinicia el equipo y, si va a ser usado como botiquín, inicia sesión con el usuario local '.\ikasle'."
}

Los ficheros .key que aparecen en el script tienen las claves de los usuarios. Para crearlos, en una ventana de Powershell ejecutamos:

"La clave que quieres usar" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString -Key (1..16) | Out-File "file.key"

Y con eso creo que está todo 😀

Por cierto, que sepas que he escrito una novela de ciencia ficción. Puedes leer los tres primeros capítulos este enlace, y puedes comprarla en Amazon, tanto en papel como en formato ebook.

Mi nuevo juguete: Raspberry Pi 3 B+ con Recalbox

Este año he sido muy bueno, y el Olentzero (para el que no sepa quién es, la versión Euskaldun de Papá Noel, que mola mucho más) me ha traído lo que le he pedido (bueno, ha sido una petición de última hora, y menos mal, porque si no se me ocurría nada, me iban a caer un montón de calzoncillos).

¿Y qué es lo que le he pedido? Pues una Raspberry Pi 3 B+, con su carcasa, su tarjeta de memoria y su adaptador.

Imagen de una Raspberry Pi.

¿Lo cuálo? Si no sabes lo que es, ahora mismo te lo cuento: la Raspberry es un pequeño ordenador (del tamaño de un par de tarjetas de crédito, una junto a otra) que, sin tener demasiada potencia, sirve para montar reproductores multimedia, controladores para domótica, y un montón de otros proyectos, tanto caseros como profesionales (por ejemplo, para controlar las músicas de los patios del colegio, tengo montada una Raspberry con una serie de scripts).

El modelo 3 B+ es el último que ha salido hasta la fecha: un pequeño equipo con un microprocesador ARM a 1,4 GHz, 1 GB de memoria RAM, cuatro puertos USB, salida HDMI, conectividad Wifi 2G/5G, Bluetooth… y no tiene disco duro, sino que puede arrancarse desde un USB (esto solo es posible con la última versión) o, lo más habitual, desde una tarjeta micro SD que hace las veces de disco duro. Habitualmente, se utiliza con alguna distribución de Linux, aunque se puede usar con otros sistemas operativos.

¿Y para qué lo quiero? Pues bueno, siempre me han gustado los videojuegos y las videoconsolas, y siempre tengo nostalgia de los juegos retro a los que jugaba en mis tiempos mozos. Había escuchado que con Retropie, una distribución de Linux muy sencilla de instalar y utilizar, se podía jugar a clásicos de máquinas recreativas (con Mame) y de otras plataformas (NES, SNES, Sega Megadrive, Master System, Neo Geo…), incluyendo algunas «no tan retro», como PSP, Nintendo64 o PSX, aunque estas últimas iban un poco justas, debido a la potencia limitada de la placa.

¿Qué necesito para montar mi videoconsola retro?

Si bien es verdad que últimamente han salido al mercado algunas videoconsolas retro, como la NES classic mini, o la SNES classic mini (que las tengo), o la PlayStation Mini (que estuve a punto de coger, hasta que leí que era una mierda), tienen la limitación de que, si no quieres perder la garantía, y usarlas «de forma legal», el número de juegos que vienen es limitado, y siempre echas en falta alguno al que tú jugabas en su día. Como contrapartida, hay que decir que las dos que ha sacado Nintendo funcionan a la perfección, y es una gozada encenderlas y jugar sin preocuparte por configuraciones, actualizaciones ni historias por el estilo. Pero sabiendo cacharrear un poco, si no nos importa pelearnos un rato, podemos sacar partido a una pequeña Raspberry para jugar a otras cosas.

En mi caso, contaba con un par de mandos USB, (voy a poner enlaces de Amazon, pero no tengo ningún tipo de acuerdo con ellos, que quede claro) que he reutilizado en este montaje, y un teclado inalámbrico que utilizo con un mediacenter que tengo conectado a la tele (y que está pidiendo a gritos una renovación, porque está viejillo, y es posible que caiga otra Raspberry, visto lo visto). El teclado no es necesario, pero de cara a ciertas configuraciones puede venir bien.

Además de la propia placa Raspberry, vas a necesitar una fuente de alimentación micro USB. Es importante que al menos dé una intensidad de 2.5A, ya que si no, para ciertas tareas, te puedes quedar corto. La que os indico aquí da 3A, con lo que va sobrada.

De cara al almacenamiento, necesitarás una tarjeta micro SD. Yo opté por una Clase 10 baratita de 128GB, más que de sobra para lo que quería hacer. Y para terminar, el montaje no queda bien si no lo metes en una cajita. Yo he cogido esta carcasa, que tiene ventilador y disipadores, y ayuda a que no se recaliente con los emuladores más exigentes.

Montando el sistema de emulación

Vale. Tienes los cacharros. Y ahora, ¿qué? Pues necesitas hacerte con una imagen base para instalar en la micro SD y poder hacer algo. Te podría hablar de los diferentes sistemas operativos, las opciones para configurarlo tú por tu cuenta, etc., etc., etc., pero hay gente que ya ha hecho un muy buen trabajo previo, y tiene sistemas montados que funcionan muy bien (y con juegos ya metidos). Digamos que el tema se mueve un poco al borde la legalidad, pero lo dejaremos ahí.

En mi caso, probé varias imágenes con diferentes sistemas, y al final encontré que con Recalbox (un sistema de emulación basado en Linux) funcionaba mucho mejor que con el más conocido Retropie (otro sistema de emulación basado en Linux). El problema es que Recalbox no ha funcionado hasta hace muy poco en la última versión de la Raspberry, y no hay mucho donde elegir, pero me quedé con esta, y estoy encantado.

La imagen entra en tarjetas micro SD de 32GB, y trae emulación de 41 sistemas, 10800 juegos (un par de ellos arriba o abajo) y el reproductor multimedia Kodi, con lo que también lo puedes usar para ver vídeos. Como comprenderás, la mayor parte de los juegos son muy antiguos. De lo contrario no entrarían tantos, pero ten en cuenta que un juego de NES puede ocupar menos de 1MB, así que echa cuentas…

¿Y cómo se instala? En mi caso usé tanto Windows como Linux, pero se puede usar cualquiera de los dos sistemas. Tras descargar la imagen (yo lo hice vía Torrent), mete la tarjeta micro SD en el ordenador y utiliza un programa como balenaEtcher para copiarla. El modo de uso es muy sencillo: seleccionas la imagen, seleccionas la tarjeta SD, y esperas a que termine de copiar.

Captura de pantalla de balena Etcher.

Una vez tostada la imagen, metemos la tarjeta en la Raspberry, conectamos al menos un mando USB, y encendemos. Tras una intro, detectará que hay un mando nuevo y nos pedirá que configuremos los botones.

¡Cuidado! El último botón que te pide en el mando es «hotkey». Es un botón que usaremos para acciones especiales. Generalmente se usa el mismo botón que para el «select».

Configurando el sistema

¡Y listo! Bueno, casi. Lo primero que querremos hacer será extender el tamaño de la partición en la tarjeta SD. En mi caso, la tarjeta es de 128GB y la imagen de 32GB, con lo que tengo 96GB inutilizados en la tarjeta. Para ello, en mi caso, utilicé la herramienta GParted en Linux, pero he leído que también se puede utilizar, en Windows, la edición gratuita de Disk Genius. Estas herramientas no tienen mucha complicación: metes la tarjeta SD de nuevo en el ordenador (antes tienes que apagar la Raspberry, pulsa Select y apaga), la seleccionas desde la herramienta, y le dices que quieres ampliar la partición para que ocupe todo el espacio disponible.

¡Cuidado! La imagen que hemos utilizado tiene dos particiones, una pequeña, al inicio, que no hay que tocar, y la segunda, más grande, que es la que hay que expandir (si sabes lo que haces, puedes mover la segunda un poco más atrás, y ampliar también la primera… yo le di 10GB, por si acaso).

Una vez extendida, la volvemos a meter en la Raspberry y encendemos de nuevo. Pulsando Start accedemos al menú de configuración.

Lo básico es cambiar el idioma (en configuración del sistema), ya que habrás visto que, por defecto, está en francés, y dentro de configuración de red, si quieres, configurar el Wifi.

Si, como me ocurría a mí, te das cuenta de que hay parte de la imagen que se sale de los bordes de la pantalla y no se ven, vete a opciones avanzadas y activa el overscan.

¡Cuidado! En la pantalla de opciones avanzadas, ignora las opciones de overclock, ya que están pensadas para la Raspberry Pi 3B, no la B+.

¿Y ahora? Pues ya está, escoge tu sistema favorito, y ale, a viciarte un rato…

Algunos aspectos útiles

Por si te sirve para algo:

  • Para salir de un juego, pulsa hotkey (select) + Start.
  • Para grabar el estado de un juego pulsa hotkey + X, y para cargarlo, hotkey + Y.
  • Si no se escucha, mira en opciones, configuración de audio, a ver si tienes correctamente configurada la salida HDMI (o la que estés usando).
  • Si has configurado el Wifi y te quieres conectar por SSH, el usuario es «root» y la clave «recalboxroot».
  • Si quieres sacar una captura de pantalla, por SSH, usa el comando «raspi2png».

Aunque, por si alguien lo dudaba, quien más va a jugar no voy a ser yo…

Por cierto, y aunque no venga a cuento, ya que has llegado hasta aquí, que sepas que he publicado una novela de ciencia ficción. Si quieres leer un fragmento, lo puedes encontrar aquí.

Profesor TIC: aplicaciones «legacy» – el comedor

La semana pasada me estuve peleando con otra de esas situaciones «interesantes» con las que tengo que lidiar por ser el «TIC» del colegio: hacer funcionar una aplicación «legacy» en un ordenador nuevo.

Como suele ocurrir en muchos colegios, uno de los pilares del nuestro es nuestra recepcionista, y por eso, que esté contenta en su trabajo es muy importante  😉 El tema es que llevaba ya casi seis meses pidiéndome que le cambiase de ordenador, porque, efectivamente, le iba muy lento, pero era una tarea que me aterraba. ¿El motivo? Es la persona que gestiona el comedor, y el comedor del colegio se gestiona con una aplicación «legacy», es decir, muuuuyyyy antigua, hecha hace unos 20 años en FoxPro. Es de esas cosas que lo que mejor que puedes hacer es no tocarlas mientras funcionen, porque la gestión de nuestro comedor es bastante peculiar (muchas opciones de pago diferentes según los días que te quedes, casuísticas varias de devoluciones y descuentos, etc.), y no hay ningún paquete comercial que se adapte, por lo que cualquier cambio requiere un desarrollo a medida.

Hace ya unos 7 años le cambié de ordenador, un equipo antiguo con XP, y conseguí hacerlo funcionar en Windows 7 de 32 bits gracias a que encontré una versión tuneada de FOX por 25€ (foxbase: http://www.foxbase.nl/) que permitía ejecutar programas de FOX en Windows 7. Además de eso, tuve que hacer un pequeño script para redirigir la impresora al fichero lpt1: (un net use lpt1: \\impresora_de_red_compartida) justo antes de lanzar el FOX.

Pero sabía que, el siguiente cambio, o iba a ir con Windows 10 o con un Windows 7 de 64 bits, y el escenario me daba bastante miedo, ya que tampoco tengo mucho tiempo para andar investigando qué hacer si un tema de estos falla.

Al final el cambio tuvo que hacerse la semana pasada, después de una llamada pidiendo, por favor, que hiciese algo, ya que el ordenador le tardó 20 minutos en abrir un triste Word con una imagen que le habían encargado imprimir en color desde infantil. Evidentemente, la situación no era sostenible, y me tuve que poner manos a la obra… tenía ya un ordenador «recauchutado» medio preparado para el cambio (un equipo sencillo pero más que suficiente, de estos que vienen de saldos porque han estado en renting), restaurado de fábrica y con un Windows 7 de 64 bits… hice la configuración inicial, navegadores, Office, lector de PDFs… y al probar a lanzar el script que tenía preparado para el FOX en su ordenador actual… «ERROOOOOR!!!!». Ese programa era incompatible con versiones de Windows de 64 bits. Fantástico, casi me pego un tiro. No quedaba otra que empezar a bucear por la web…

Encontré en foros gente intentando hacer lo mismo que yo. Las soluciones generalmente pasaban por recompilar la aplicación en una versión actualizada de Visual FoxPro, pero no tenía ninguna intención de piratear o comprar ningún entorno de desarrollo para hacerlo. En una web encontré una solución un tanto rebuscada, pero que algunas personas decían que les servía: instalar una versión tuneada de dosbox (un emulador de x86 con MS-DOS) con soporte de impresión, carpetas de red… (en concreto, ésta, enlazada desde la web oficial de dosbox: http://ykhwong.x-y.net/).

Tras un poquillo de investigación, encontré que ajustando un par de opciones de configuración relativas la impresión con dosbox y con un .bat para lanzarlo igual había suerte. En concreto, en la sección «parallel» de la configuración, establecí:

parallel1=file dev:lpt1

De ese modo, cualquier intento de imprimir desde dosbox en el puerto paralelo 1 se redirigirá al fichero dev:lpt1.

Si al lanzar dosbox lo hacemos en un .bat que contenga las líneas:

net use lpt1: /delete
net use lpt1: "\\servidor\impresora_en_red" /PERSISTENT:YES
KB16 SP,850,C:\Windows\System32\KEYBOARD.SYS

Estaremos estableciendo que la impresora enlazada en lpt1 es la impresora en la que queremos imprimir los listados desde nuestro programa en FOX, y aprovechamos para forzar a que el teclado del subsistema MS-DOS esté en castellano.

Por política de dominio, los usuarios autorizados a usar el programa del comedor tienen una unidad de red «w» con el programa. Así que para terminar el script, si queremos que dosbox, automáticamente, monte la unidad de red para poder utilizarla, y lance el FOX, podemos usar la siguiente línea:

"c:\Program Files (x86)\DOSBox SVN-Daum\dosbox_x64.exe" -c "mount w w:\\" -c "w:" -c "comedorm.bat" 

El script «comedorm.bat» es un .bat que símplemente hace un cd a la carpeta del FOX y lo lanza. La magia se obró, y el programa de comedor funcionó  😉

Pues bueno, ya veis qué cosas más interesantes hago en mi trabajo de profesor cuando no soy profesor. Tengo que reconocer que bajar al barrillo de vez en cuando y ensuciarme las manos con estas cosillas me da vidilla… en el fondo me gusta  😉

Bonus: si además tienes algunos documentos de Word enlazados a la base de datos de FOX para generar documentos combinados, y usas la última versión de Office 2016, tienes que instalar el Access Database Engine para Access 2010, porque es la última versión con conectores ODBC para FoxBase (la descarga es gratuita desde https://www.microsoft.com/es-es/download/details.aspx?id=13255).

Campaña de facebook

Profesor TIC: publicidad en las redes

Con este artículo, si tengo tiempo y ganas, voy a comenzar a escribir una serie de posts sobre cosas que hace un profesor que no es sólo profesor, sino que también es el «TIC». Como muchos de los que me conocéis sabéis, trabajo de coordinador TIC en el colegio Maristak Bilbao. La figura de coordinador TIC, al menos en los colegios como el mío, se define como la de un profesor con amplios conocimientos informáticos (gracias a quien la puso así, es un honor, jejeje) que dedica parte de su jornada a la docencia y parte a… bueno… a ser coordinador TIC 😉

Lo interesante es que, generalmente, los coordinadores TIC solemos hacer cualquier cosa que tenga una mínima relación con cables y botones, aunque los cables y los botones no sean más que una herramienta para un fin del que, a priori, no sepamos demasiado. Mi vida profesional comenzó como profesor e investigador en la Universidad de Deusto y siguió en la consultoría informática, de donde después pasé a la docencia en secundaria. Si bien durante esos años profesionales había tocado diferentes áreas (desde gestión de servidores de diferente naturaleza a análisis y desarrollo de aplicaciones o gestión de equipos de personas), en estos años en el colegio he tenido que desenvolverme en muchos temas que jamás había tocado.

Montando campañas publicitarias

El último de ellos, y por el que me he animado a escribir este post, es el de montar campañas publicitarias. Por desgracia, debido al bajón de natalidad que tenemos en nuestro entorno, los colegios, sobre todo los privados o concertados, hemos pasado en muchos casos de colaborar entre nosotros a competir por atraer al nuevo alumnado. Esto tiene cosas buenas, como que nos estamos poniendo las pilas muchísimo en aspectos de innovación pedagógica, formación del profesorado o adaptación a las nuevas tecnologías, pero también aspectos negativos, como el desgaste que supone la incertidumbre de si este curso llenarás aulas, o serás uno de los que tenga que cerrar alguna línea y prescindir de algunos de tus compañeros de trabajo (o incluso ver el cierre de tu colegio, como ha comenzado a pasar con algunos centros cercanos).

Pues en esta tesitura se enmarca esta primeria historia, que comienza el curso 16-17, tras una mala época de matriculación en infantil, y con el miedo en el cuerpo de cara a la campaña de matriculación en bachillerato. La verdad es que mi colegio tiene muchas cosas buenas (qué voy a decir yo), pero hay una cosa que siempre hemos hecho «mal»: nunca las hemos contado. Hacemos muchas actividades con el alumnado, tenemos un trato familiar con el alumnado, a pesar de ser un colegio grande, buen nivel académico, nos preocupamos de los que tienen dificultades… pero no gastamos muchos esfuerzos en contar todas esas cosas. Otros colegios lo han hecho muy bien en ese aspecto, y no sólo han hecho cosas, sino que además las han contado.

Los comienzos: Google Adwords

Siendo consciente de que otros colegios del entorno eran más conocidos que el nuestro, propuse al equipo directivo hacernos un poco más visibles en internet. Desde hacía años que conocía Adwords de Google, la plataforma para montar anuncios de la compañía, pero nunca había montado una campaña. Casualmente, llegó a mi nombre una carta de Google al colegio, por esas fechas, dándonos crétido de Adwords para montar nuestra primera campaña, y sin tener mucha idea del tema, me dieron el OK y me puse manos a la obra.

Entre todo lo que os he comentado arriba, no aparece por ningún sitio el haber sido comercial o el haberme dedicado a temas de posicionamiento en buscadores (aunque conozco algunos conceptos de SEO), pero como estas cosas se hacen con ordenadores, ¿a quién le caen? Pues al coordinador TIC. Pues bueno, manos a la obra, ¿no? Habilitas un usuario dentro de GSuite para que pueda gestionar Adwords (tenemos GSuite para educación, y por defecto esa opción está deshabilitada para los usuarios de la organización), te registras… y empiezas a indagar e intentar hacerte con la jerga: campañas, grupos de anuncios, métodos de puja, extensiones de anuncio… montas lo que puedes y le das a activar… y al de un par de días te das cuenta que eso no tiene el impacto que esperabas.

De pronto, y por sorpresa, recibí una llamada de Google. Una chica muy maja me dice que me quiere dar un «Crash Course» de Adwords por teléfono, así, de gratis. Quedo con ella, me llama una tarde que estaba en casa, con el crío echando la siesta, y ahí me tiré las dos horas de siesta hablando con ella mientras me explicaba los entresijos de cómo montar una campaña. Como diría Neo: «ya sé Adwords». La campaña fue decente, un par de semanas con 12€ de gasto diario y conseguimos muchas entradas a la web, en la que aproveché para, ya puestos, remodelar la sección de bachillerato. El curso pasado cubrimos plazas en esa etapa, pero nos faltó saber cuántos de ellos habían conocido el colegio a través de algún anuncio, o de saber si los anuncios les habían animado a entrar en nuestra web a conocernos algo más. A ver si este año lo metemos en la encuesta de satisfacción…

Pantallazo de una campaña de AdwordsPantallazo de la campaña de Adwords

Por si no lo sabéis, y a grandes rasgos, las campañas de Adwords funcionan, habitualmente, mediante un sistema de pujas, una especie de subasta virtual para ver quién sale anunciado. En mi caso, yo marco el máximo dinero que quiero gastar al día, durante la campaña. Cuando se va a mostrar un anuncio, Google hace una especie de «subasta» entre los que cumplen los requisitos para aparecer. Los requisitos se establecen en base a palabras clave, segmentación geográfica, por edades, sexo, etc. Cada anuncio, según su presupuesto diario, ofrece una cantidad por aparecer. El que ofrece más, aparece y, si alguien pulsa el anuncio, le descuentan esa cantidad de su crédito. La cantidad se puede poner a mano, para que sea siempre la misma, o puedes hacer que sea Google el que decida cuánto ofrece tu anuncio en cada caso. A medida que van apareciendo los anuncios que tienen más crédito, éstos lo van agotando y cada vez ofrecen menos, y los que inicialmente tenían menos crédito pueden ganar a éstos y aparecer en pantalla.

Nuevas fronteras: Facebook e Instagram

Este curso, llegado el momento para montar la campaña de matriculación en infantil, ya me lo conocía, así que no me costó mucho montar la campaña. Así de contento estaba yo con el tema cuando, de pronto, en casa, mi mujer está mirando Facebook en el móvil y me dice: «Jorge, mira, un anuncio de <ponga aquí el nombre de un colegio cercano>». Toma ya. Como también soy el Community Manager del cole, entro en Facebook y empiezo a mirar cómo va el tema de la publicidad. Parecido a Adwords, pero con una imagen. La segmentación es más sencilla, las palabras clave no se ponen, sino que se indican intereses, zona geográfica y otras características, como la edad de los hijos del público objetivo (dejamos para otro momento cómo sabe Facebook la edad de mis hijos, si casi no lo uso y nunca he puesto ese dato, es más, casi no ponemos nada sobre ellos en las redes sociales). También funciona por un sistema de pujas con un límite de gasto diario (al menos así es como yo lo he configurado). Teníamos un cartel para la jornada de puertas abiertas, pero la verdad es que no era lo más adecuado para este medio, así que el coordinador TIC se tiene que sacar, el sábado por la tarde, otra fantástica habilidad que no tiene: el diseño gráfico (porque como se hace con ordenadores, y hay que hacerlo para ya…). Me di una vuelta echando un ojo a los anuncios de otros colegios, y viendo que había cosas que más o menos se repetían, me acordé de una foto que habíamos sacado unos días antes en un aula de 2 años, mandé un email a las familias para ver si había algún problema en usarla para las puertas abiertas, y monté el cartel que os pongo aquí abajo (con las caras sin difuminar, pero no tengo permiso para distribuir las fotos en mi blog personal así que aquí la pongo así).

Anuncio del colegio para nuestra campaña

Aquí se añade otro aspecto que los «TIC» no tenemos por qué saber, aunque se haga con ordenadores: ¿cómo se usa bien el logo de un colegio, empresa, etc.? La mayoría no sabréis (al menos yo no lo sabía) que cuando un diseñador te hace un logo, te da una serie de pautas de cómo hay que usarlo. En nuestro caso, que en Provincia Ibérica Marista tenemos un logo unificado (bueno, de hecho, a nivel europeo), tenemos nuestro «manual de marca», que habla de cosas tan interesantes como el margen de seguridad, el uso del claim, los pantones a utilizar… vamos, todo un mundo lleno de desafíos para alguien como yo, que distingue justo justo los colores de una paleta CGA y que opina que si dos colores no pegan se pueden llevar juntos, porque no son violentos.

A los 10 minutos de montar la campaña, mi mujer me dice «estáis en Instagram» (Facebook e Instagram comparten la red de anuncios). Voy revisando las estadísticas, y la verdad es que me quedo bastante impresionado con el número de visitas que entran a nuestra web y con el número de personas que han visto el cartel. Al final, para mí, el objetivo no es tanto que entren en la web del colegio, sino que el nombre se le quede a la gente y que, si no es este año, el que viene o el próximo, si tienen que escoger colegio o cambiar por lo que sea, se acuerden del nuestro y llamen, vengan a visitarlo, o nos tengan en cuenta como una posible opción.

El martes de esa misma semana tuve una reunión con la directora de mi colegio, la directora del colegio de Zalla y el director de Erandio, ya que estamos intentando montar una estratega de comunicación conjunta. Les conté lo que había hecho, vimos las estadísticas, el coste, y el impacto, y me dijeron: «ya que estás…». «Ya que estás…» significa que, ya que te has metido en este marrón, seguro que no te cuesta nada montarnos lo mismo para nuestros colegios, jejeje. La verdad es que es cierto, no cuesta mucho montar algo básico, y más sabiendo que lo que necesitan es casi lo mismo que tú, pero acotado a sus ámbitos geográficos. Así que tras dar un poco la chapa a sus respectivos «TICs» o «comunicadores», conseguí sus carteles, me hicieron administrador de sus Facebooks (se ve que confían en mí), y en un ratillo tenían sus campañas montadas.

Campaña de facebookPantallazo de los anuncios en las campañas de Facebook

Y así estamos, a punto de empezar la matriculación del aula de dos años y a una semana de nuestra jornada de puertas abiertas, en un año con un bajón de natalidad aún más acusado que los anteriores en nuestra zona. En unas semanas podremos medir el impacto de esta campaña (y de otras iniciativas que hemos llevado a cabo para dar a conocer todo lo que hemos puesto en marcha estos años en el colegio) y veremos si este año las cosas nos van mejor.

Ale, hasta la próxima entrega de «Profesor TIC», en la que seguiré contando las cosas que hace un profesor que, bueno, no es sólo profesor, sino que también es… eso… «TIC». (Y por cierto, por si os interesa, ya que estamos, tenemos la jornada de puertas abiertas el sábado 27 a las 10:00, jejeje).

Vídeos sobre matrices y edición con FreeCAD

Estos últimos días han sido productivos a nivel de vídeos. Por un lado, he añadido dos vídeos nuevos sobre FreeCAD:

Además, he añadido cuatro vídeos sobre matrices, para intentar hacer un amago de Flipped Classroom en mi grupo de matemáticas de este año. Son los primeros vídeos que grabo usando mi proyecto BDKanvas, así que hasta que tenga un poco más de práctica no me critiquéis mucho:

Tenéis la recopilación de todos los vídeos en la sección «Vídeos explicativos«.

Empezamos curso innovando

Ya hemos terminado la primera semana con chavales en el colegio (bueno, en realidad han sido tres días…) y tengo la sensación de haber empezado como quería: innovando.

Llevo todo el verano dando vueltas a cómo hacer algunas cosas de modo diferente. El curso pasado tuvimos una formación fuerte en aprendizaje cooperativo, y tuve la suerte de formar parte del curso «especialista en aprendizaje y tecnología en educación«, ofrecido por Kristau Eskola, dentro del programa #AuKEraRTIC. Tuve también que impartir una nueva asignatura (nueva para mí, y para el colegio) que agrupaba diseño e impresión 3D, electrónica, programación y no estuve nada satisfecho con el resultado… no porque el alumnado no terminase contento, sino porque yo estaba convencido de que una asignatura como esa podía impartirse de forma distinta, exprimirse mucho más por parte de los participantes, enganchar a esos chavales y chavalas de 17-18 años…

Y aunque parezca una tontería, por otro lado, estuve todo el curso usando una pizarra digital en lugar de una pizarra tradicional para dar matemáticas. Lo que empezó como una anécdota porque la tiza no se marcaba bien en la pizarra «de toda la vida» terminó volviéndose una necesidad… ¿cómo había tenido pizarras digitales en el colegio, y no las había usado antes? ¿cómo iba a dar clase a partir de ahora sin ellas? (a ver, se puede, pero como dice Homer Simpson… «¿por qué comer hamburguesa cuando puedes comer solomillo?»).

Por eso he estado obcecado en encontrar las soluciones a ambos problemas: ¿cómo enfocar correctamente la asignatura de la que he hablado? ¿cómo dar clase al estilo «pizarra digital» en un aula que no la tiene?

La respuesta a la primera pregunta ha sido montar la asignatura como lo que he llamado «MOOC híbrido». Tengo 32 chavales en clase (unos cuantos) y he decidido montar la asignatura como un MOOC en Moodle, con un enfoque social y cooperativo. La asignatura tiene como pilares fundamentales vídeos y foros. Las explicaciones las doy en casa, delante del ordenador, y las grabo en vídeo (y las estoy colgando en Youtube, disponibles para quien quiera verlas), y el alumnado se dedica a verlas en clase, a su ritmo (pero sabiendo que hay unos mínimos, y de qué depende su nota). Los ejercicios se plantean en foros, donde van colgando sus resultados y reflexiones, se tienen que orientar unos a otros y se coevalúan en equipos. ¿Y a qué me dedico yo? Pues en lugar de a explicarles… a atenderles (y esa es la parte «híbrida»… es un MOOC con el profesor en clase). Y de regalo, mientras no hay dudas, voy calificando lo que van colgando en los foros, y ahorrándome trabajo de corrección en casa  😉

Moodle de la asignatura

La verdad es que la clase se ha desarrollado de manera fluida, los chavales han estado metidos en la dinámica de trabajo, y al terminar me han dicho que les ha gustado la forma de trabajar… a ver si en abril aún me dicen lo mismo  😉

¿Y cómo uso una pizarra digital si no la tengo? Pues hoy he podido usar por primera vez en clase de matemáticas, en vivo, y con éxito, el proyecto en el que he estado trabajando este verano: BDKanvas. BDKanvas es un lienzo de dibujo distribuido, en el que varios usuarios pueden interactuar de forma simultánea, con distintos niveles de zoom… vamos, que puedo escribir en la tablet, en grande (no tengo un Galaxy Note, así que un lápiz capacitivo normal tiene poca precisión para escribir en pequeño o pintar detalles), mientras en el proyector normal del aula se ve a un tamaño ajustado lo que voy explicando. Esto me ha dado otra oportunidad «extra»: la explicación la doy junto a los alumnos, moviéndome entre las mesas, hablando junto a ellos, mientras la explicación se va desarrollando en el proyector.

bdkanvas tweet

Dos innovaciones apoyadas en la tecnología: una implica disponer de un equipo por alumno, y da una vuelta a la metodología tradicional de «os explico, y luego ya practicaréis»; la otra ayuda a que el docente se sienta cómodo dando clase, lo que en mi opinión te permite dar mejores explicaciones, aprovechando los apoyos que brinde la tecnología que se use en cada caso.

¿Y si no puedo usar nada de esto? ¿Lo que hacía hasta ahora estaba mal? Pues no, evidentemente… los modelos educativos usados hasta ahora han sido capaces de educar a la gran mayoría de la población, así que algo harían bien… pero los docentes somos los primeros que tenemos que aprender, y que algo esté bien, no implica que no vaya a haber cosas mejores en determinadas situaciones. ¿Lo importante? No tener miedo, experimentar, darte batacazos (y ser justo con el alumnado cuando lo haces) y querer aprender para poder exprimir al máximo el tiempo que tienes para ayudar a construir el proyecto personal de los chavales y chavalas que pasan por tus clases.

P.D: innovar grabando vídeos lleva tiempo de procesado… así que si un alma caritativa quiere que innove más rápido y me regala un portátil con un i7 de 5ª generación, 8 o 16 GB de RAM y un buen disco duro (o dos, uno SSD y otro de los de toda la vida), le estaré muy agradecido y le dedicaré uno de los vídeos explicativos que grabe 😀

Mi nueva página: projects.bardok.net

Sólo quería compartir una nota rápida sobre mi nuevo «metaproyecto» (vamos, porque es un proyecto sobre proyectos).

Llevaba un tiempo queriendo poner en marcha algunos proyectos de software libre que tenía entre manos, y finalmente he decidido pasar esta web a un servidor VPS para poder gestionar ciertos aspectos, y he creado la sede projects.bardok.net, en la que podréis encontrar información sobre algunos proyectos que ando desarrollando (eso sí, en inglés).

Por ahora he añadido algo de información sobre el simulador de redes que desarrollé el pasado curso para mi alumnado de informática y sobre BDKanvas, el canvas (lienzo) distribuido en el que he estado trabajando este verano (para hacer de sustituto barato de una pizarra digital, en caso de tener sólo un ordenador con proyector normal y una tablet, y querer proyectar de forma sencilla escritura manual y dibujos o imágenes.

Nos vemos en projects.bardok.net!

Feliz Navidad y buen 2015

Pues eso, sólo desearos una feliz Navidad y un buen 2015. Aquí tenéis la felicitación que Sauron y yo os enviamos:

http://bardok.net/networksnavidad/greetings.html

Eso sí, está hecha con HTML5, así que vas a necesitar un navegador moderno (Chrome o Firefox actualizado, o Internet Explorer 11).

And here you can find the english version:

http://bardok.net/networksnavidad/greetings-en.html

You will need a modern browser, as it is developed with HTML5 (updated Firefox or Chrome, or Internet Explorer 11).