Aventuras
No, no se trata de juegos, o ficción interactiva, sino de las aventuras que enfrentamos los programadores en nuestro días a día. Este sitio web micronosis.com ahora está alojado en linode en un servidor con Ubuntu. Toda la configuración la hice a mano con las guías de linode y las guías que se pueden conseguir en internet. Todo es relativamente fácil, incluyendo instalar ubuntu, apache, php, mysql, wordpress, el certificado SSL, las configuraciones de los archivos /etc/hosts, /etc/passwd, /etc/apache2/sites-available/* etc, etc. Pero hay cosas que dentro de un ambiente con cpanel y bluehost (mi anterior proveedor de hosting) son automáticas y aquí no.
Luego de traer los archivos del sitio, configurar la base de datos, y los datos en el apache todo debería funcionar, pero no necesariamente las cosas son así de fáciles. Mi archivo functions.php en el tema de este sitio debe tener como 7 años de antigüedad, funciona bien en PHP 5.4 pero no en PHP 7.0 la versión por defecto en linode. Tuve que pensar durante 10 minutos 15 minutos 20 minutos que podía ser hasta que encontré un “<?” que era la secuencia antigua para indicar en el código fuente dónde comienzan las instrucciones de php (debe ser reemplazado por “<?php”).
El segundo problema fue más grave, los permalinks. WordPress permite enlaces amigables, de forma que este post puede ser accedido a través del enlace https://www.micronosis.com/aventuras/ y no por el enlace críptico https://www.micronosis.com/?p=1234. El problema es que para que https://www.micronosis.com/aventuras/ funcione se debe configurar correctamente .htaccess, y los archivos correspondientes de apache, si es que sabes cuáles son. Después de revisar 27182818284 archivos, encontré en algún recóndito sitio en internet que resulta ser que ups, la configuración en /etc/apache2/apache2.conf ignora cualquier cosa que coloques en el .htaccess local. Ups. Eso no aparece en ninguna parte. Ups. La sección <Directory /var/www/> debe incluir un AllowOverride All (no un AllowOverride None que es como viene por defecto). Ups.
Otra aventura, esta vez con Qt, sin un final feliz
Qt. A mi me gusta en realidad esta plataforma para GUIs. De hecho la uso para todas mis aplicaciones desktop. Dicen que sirve para android también la verdad no la he usado porque no me gusta mobile.
Con Qt puedes hacer un browser porque tiene una integración con chomium bien interesante. El problema es que por defecto no tiene los codecs MSE, AAC, MP3, H.264. Ahí comienzan los problemas. El procedimiento para generar una versión que permita soportar estos codecs es el siguiente:
1) vim C:\qt-5.11.1\qtbase\mkspecs\common\msvc-version
2) Uncomment 2 lines
QMAKE_CXXFLAGS_CXX14 = -std:c++14
QMAKE_CXXFLAGS_CXX1Z = -std:c++latest
3) Open Developer Command prompt in the Visual Studio 2017 Menu
4) cd c:\qt-5.11.1-build
5) c:\qt-5.11.1\qtbase\configure -debug-and-release -opensource -confirm-license -platform win32-msvc -opengl desktop -prefix c:\qt-5.11.1-build -no-compile-examples -nomake tests -nomake examples -no-accessibility -icu -openssl -L C:\ssl\openssl\lib -L C:\icu\lib
6) nmake
7) nmake install
8) mkdir qtwebengine <- en caso de que no exista
9) cd qtwebengine
10) qmake C:\qt-5.11.1\qtwebengine\qtwebengine.pro — -webengine-proprietary-codecs
Esto genera este error:
tools\gn\gn_main.obj : fatal error LNK1112: module machine type ‘x86’ conflicts with target machine type ‘x64’
Aquí está reportado como bug: https://bugreports.qt.io/browse/QTBUG-68462?attachmentViewMode=list
Al final se indica que se debe ejecutar:
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat” -arch=x86
Eso no funciona, de hecho creo que eso es lo que hace el paso 3 arriba.
Esto no es un final feliz.
PS: acabo de ver esta película, Sky High (en español academia de Superheroes). Comienza algo gafa pero después se compone. Y me alegró bastante. Y por si fuera poco ahí trabajan Mary Elizabeth Winstead y Danielle Panabaker. Por favó!