Instalar Linux en Alienware R3

Desactivar “Secure Boot” en la BIOS (F2)

Arrancar UEFI desde pendrive Ubuntu (F12)

Instalar Ubuntu 18.04 (añadir opción kernel nomodeset a /boot/grub/grub.cfg)

Arrancar Ubuntu

Actualizar


sudo apt-get update
sudo apt-get upgrade

Instalar driver Nvidia y Optimus (prime)


apt-get install linux-headers-$(uname -r)
add-apt-repository ppa:graphics-drivers
apt-get update
apt-get install nvidia-driver-396
# quitar nomodeset en grub
reboot

# nvidia-prime
prime-select query
prime-select {intel|nvidia}

# Bumblebee (para controlador propietario)
apt-get install bumblebee-nvidia

Comprobar que en /etc/bumblebee/xorg.conf.nvidia, el BusID se correponde con el de la tarjeta NVidia (por ejemplo, PCI:01:00.0)

El brillo de la pantalla se puede ajustar con el siguiente comando (X representa el porcentaje, por ejemplo .8 equivale 80%)


xrandr --output eDP-1-1 --brightness X

Si el trackpad no funciona, probar a no usar el modulo i2c_hid


# Prueba OpenGL
LIBGL_DEBUG=verbose glxgears

Instalar CUDA


wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda_9.2.88_396.26_linux
bash cuda_9.2.88_396.26_linux
# parche recomendado
wget https://developer.nvidia.com/compute/cuda/9.2/Prod/patches/1/cuda_9.2.88.1_linux
bash cuda_9.2.88.1_linux
cat > /etc/profile.d/cuda.sh <

Suspender equipo

En la mayoría de los modelos, con la siguiente configuración de Grub se consigue que la suspensión del equipo funcione correctamente:


# Añadir en /etc/default/grub
GRUB_CMD_LINUX_DEFAULT += nogpumanager acpi_osi=! acpi_osi="Windows 2009"
# luego, ejecutar...
update-grub

Más información:

Archlinux en Alienware 13

Ubuntu 16.04

Bumblebee: cuelgues

Driver Nvidia y CUDA

Ubuntu

# Comprobar qué paquetes hay disponibles:
ubuntu-drivers devices
# Instalar
apt-get install nvidia-390
# Reiniciar
reboot
# comprobar
nvidia-smi

# https://developer.nvidia.com/cuda-downloads
# https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork
# Descargar definición repositorio
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
apt-get update
apt-get install cuda

Compiladores Intel

Parallel Studio es una suite de compiladores y bibliotecas, entre las que se encuentran MKL (Math Kernel Library).

Por defecto, la opción de instalar las bibliotecas paralelas Blacs y Scalapack (para MPI) está desactivada. Para activarla, hay que ir a “Component Selection” / “Intel Math Library for C++” (o Fortran, según el lenguaje que vayamos a usar) / “Cluster support for C/C++”

Los lenguajes más temidos

Acaba de salir la última edición de la encuesta de Stack Overflow. Entre otros muchos datos interesantes, una clasificación que puede orientar a la hora de escoger qué lenguaje de programación aprender:

Most loved, dreaded and wanted languages

El mejor candidato parece Javascript dentro de los “universales”. Y en lenguajes “innovadores”, Rust (programación de sistemas) y Kotlin (interoperabilidad: Android/navegador/nativo)

Curiosamente, CoffeeScript aparece entre los más temidos (a pesar de que se cita en muchos sitios web)

En cuanto a editores de código, el más popular es Visual Studio… salvo para los administradores de sistemas, que siguen prefieriendo vim ^_^ Curiosamente, emacs se queda rezagado en los últimos puestos…

Las metodologías imperantes son “Agile”, “Scrum” y “Kanban”

CMS 2018

Últimamente hay bastante movimiento en relación a los sistemas de gestión de contenidos (CMS). Algunas de las iniciativas más interesantes:

ApostropheCMS (Javascript, MongoDB)

Locomotive CMS (Ruby, MongoDB)

Ghost

OctoberCMS

DatoCMS

Grav CMS (PHP, fichero)

SilverStripe

CMS Airship: priorizando la seguridad

Generadores de “sitios estáticos”

Jekyll (Ruby). CMS para Jekyll: Jekyll admin

Gitbook (Markdown)

Hugo (Go), Hexo (Node.js)

Gatsby (Node.js + ReactJs)

Sphinx Documentación (Python)

Headless CMS

GraphCMS: contenidos como API (respaldado por una “base de datos” GraphQL). La API la ofrecen ellos como servicio, por el cual facturan en función de la demanda.

Wiki

PmWiki (PHP, fichero)
FosWiki (Perl, fichero)

Editores

SummerNote

Configurar actualizaciones automáticas en Windows 10

La forma más simple es con el editor de políticas de grupo local (gpedit), pero es una herramienta que no está disponible en la versión “Home” de Windows 10 (y es arriesgado intentar instalarla a partir de los archivos que circulan por la red)

La alternativa es usar el editor de registro.

Pero, antes de hacer cualquier cambio, lo pruedente es crear un punto de restauración. La pestaña se encuentra dentro de propiedades del sistema. Lo más fácil es pulsar “Win+S” para activar la búsqueda, y buscar “restaura”. Una vez en el panel, basta con pulsar “Crear”

El editor de registro (regedit) puede abrirse desde el símbolo de sistema (Win+X, “Windows powershell” o “Simbolo de sistema”)

En HKLM\SOFTWARE\Policies\Microsoft\Windows, añadir la clave “WindowsUpdate”, y dentro de esta, “AU”. Añadir un valor DWORD denominado “AUOptions” con valor 3 (descarga automática, preguntar antes de instalar)

Si no aparece el botón “Instalar ahora” en Windows Update puede ser necesario reiniciar el equipo.

“How to stop Windows 10 auto updates”

Diseño adaptativo: video Youtube incrustado

Fluid width video

Ejemplo:

<div style="position: relative;	padding-bottom: 56.25%; padding-top: 25px; height: 0;">
   <iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" width="560" height="315" src="https://www.youtube.com/embed/JC82Il2cjqA" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>
</div>

Portátiles interesantes, 2017

Todos los modelos tienen 8 GB de RAM, pantalla de 15″ y tarjeta GTX 1050 4GB (salvo que se indique lo contrario)

  • MSI GL62M 7REX-1603XES: i5-7300HQ, 15.6″ IPS FullHD, 1 TB HDD, HDMI, no OS, 1.5 Kg. 850 EUR.
  • Dell Inspiron 15 7000 Gaming: i5, HD IPS, 1TB SATA, HDMI, Thunderbolt, Ethernet, ampliable, Win10, 3Kg. 900 EUR
  • Lenovo Y520-15IKBN: i7, 15.6″ FullHD, 1 TB HDD, HDMI, no OS, 2.4 Kg. 900 EUR.
  • Lenovo T470: i3, 4GB, intel 620, WXGA TN, 500GB SATA, HDMI, Thunderbolt, Ethernet, Win10, 2Kg. 960 EUR
  • Acer Aspire VX5-591G-73FR: i7 , 15.6″ Full-HD, 128GB SSD+1TB, Win10, 1.8 Kg. 970 EUR
  • ASUS GL553VD-DM078T: i7-7700HQ , 15.6″ Full-HD, 1 TB HDD, Win10. 1000 EUR
  • MSI GL62M 7REX-1601XES: i7-7700HQ, GTX 1050 Ti 4GB, 15.6″ IPS FullHD, 256GB SSD+1 TB HDD, HDMI, no OS, 2.2 Kg. 1050 EUR.
  • ASUS Zenbook UX550VD-BN032T: i7 , 15.6″ Full-HD, 256GB SSD, Win10, 1.8 Kg. 1300 EUR
  • Dell Inspiron 15 7000 Gaming: i7, 16GB, GTX 1060 6GB, HD IPS, 256GB SSD + 1TB SATA, HDMI, Thunderbolt, Ethernet, Win10, 3Kg. 1400 EUR
  • Dell XPS 15: i5, HD IPS, 256GB SSD, HDMI, Thunderbolt(Ethernet), Win10, 2Kg. 1500 EUR

Windows 10: home (100 EUR), professional (135 EUR).

(precios IVA incluido)

Thinkpad X62

SSL Reverse proxy con Apache

Un ejemplo que sirve para Meteor:


SSLProxyEngine On
# snake oil certs in proxyied service -> skip checks
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

ProxyRequests Off
ProxyPreserveHost On

ProxyPass /websocket ws://localhost:3000/websocket
ProxyPassMatch ^/sockjs/(.*)/websocket ws://localhost:3000/sockjs/$1/websocket

ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
ProxyPassReverseCookiePath / /
ProxyPassReverseCookieDomain 127.0.0.1 52.211.154.50
RequestHeader set X-Forwarded-Proto "https"

Parece que en nginx la configuración análoga es trivial. Quizá sea un buen argumento para convertirse…

Secure cookies over reverse proxy with https