51 post/s with categoría Programación


Activar o atallo para duplicar a liña no Eclipse no escritorio XFCE

O atallo do eclipse para duplicar unha liña é «Control+Alt+Frecha Arriba», e resulta que no contorno de escritorio XFCE ese mesmo atallo serve para ir ó espazo de traballo superior o que fai que o do eclipse non funcione.

Para solucionar isto, no meu caso optei por borrar o atallo do XFCE. Para elo fun ó xestor de xanelas, logo á lapela teclado onde buscando la lista atopei o susodito atallo o cal limpei premendo o botón Limpar.

Fonte: Superuser.com

Engadindo un segundo dominio ó servidor

Neste caso o sitio vai estar só no porto seguro (443 que é o https). Nun artigo anterior xa comentei como certificar o servidor polo que neste só comentarei como obter o certificado para o novo dominio. O proceso que seguín é o seguinte:

No meu caso un servidor con Debian 9 Stretch

Engadín o novo dominio noficheiro hosts:

# nano /etc/hosts

e engadín a liña:

127.0.0.1www.novo-sitio.com

Engadín un novo sitio no apache, para elo executei a orde:

# nano /etc/apache2/sites-available/novo-sitio.conf

Dentro puxen:


    ServerAdmin webmaster@novo-sitio.com
    ServerName www.novo-sitio.com
    ServerAlias www.novo-sitio.com

    # As catro liñas de abaixo son para o certificado SSL/TLS
    SSLEngine On
    SSLCertificateFile    /var/lib/acme/live/www.novo-sitio.com/cert
    SSLCertificateKeyFile /var/lib/acme/live/www.novo-sitio.com/privkey
    SSLCertificateChainFile /var/lib/acme/live/www.novo-sitio.com/fullchain

    DocumentRoot /home/www-data/novo-sitio

    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    
    
    CustomLog /var/log/apache2/access_novo-sitio.log common
    ErrorLog /var/log/apache2/error_novo-sitio.log

O seguinte paso que fixen foi solicitar o certificado para o novo sitio, para elo:

# acmetool want www.novo-sitio.com

Logo comprobei o estado dos certificados no equipo:

# acmetool status

Debería aparece o anterior dominio do aloxado no servidor máis o novo sitio que acabo de dar de engadir.

De seguido comprobei a configuración do Apache coa orde:

# apache2ctl configtest

Debería aparecer como resultado «Syntax Ok»

Se todo está ben, recárgase o Apache:

# service apache2 reload

Personalizar o mapa do teclado en Debian 9 Stretch

As veces podemos quere modificar algunhas teclas para ter caracteres máis accesibles así é que existen distintas variantes das distribucións xerais unhas poden ser para mellorar a dispoñibilidade do idioma no que se escribe, outras en función das tarefas que se realizan por exemplo dvorak para os escritores de texto ou tamén para os que fan programación.

No meu caso quixen facer unha variante programador que afecta ás teclas que están a carón do ñ. Estas téclas son as únicas que implica empregar a mesma man para o seu uso. As teclas que se premen coa man esquerda e Alt Gr (que se preme coa esquerda) non foron alteradas.

selecionar_teclado

O proceso para engadir esta variante foi:

Modificar o ficheiro /usr/share/X11/xkb/symbols/es engadindo seguinte texto:

partial alphanumeric_keys
xkb_symbols "esp" {

    include "es(basic)"

    name[Group1]="Spanish (Spain, programmer)";   
    key <AD11>	{ [ asterisk, bracketleft, dead_grave, dead_abovering ] };
    key <AD12>	{ [ plus, bracketright,  dead_circumflex, dead_macron ]	};
    key <AC11>	{ [ dead_acute, braceleft,  ccedilla ]	};
    key <BKSL>	{ [ dead_diaeresis, braceright, Ccedilla ]	};
};

Modificar os ficheiros do cartafol /usr/share/X11/xkb/rules/ chamados base.lst e evdev.lst engadindo o seguinte texto no apartado ! variant:

  esp             es: Spanish (Spain, programmer)

Modificar os ficheiros do cartafol /usr/share/X11/xkb/rules/ chamados base.xml e evdev.xml engadindo o seguinte texto no apartado <variantList>:

        <variant>
          <configItem>
            <name>esp</name>
            <description>Spanish (Spain, programmer)</description>
            <languageList>
              <iso639Id>esp</iso639Id>
            </languageList>
          </configItem>
        </variant>

Unha vez feito o anterior xa se pode seleccionar o teclado desde o menú Configuración->Teclado->Disposición

selecionar_teclado

Substituir salto de liña por salto de parágrafo no libreoffice

No menú Atopar e substituír, premer en Outras opcións, activar as expresións regulares

En buscar poñer: [\n]

En substituír poñer: \n (sen as chaves)

Isto é útil cando pegamos texto dunha web, correo electrónico, editor de texto simple... con saltos de liña.

Instalar wxpython phoenix no Debian 9 Stretch baixo Python 3

Non logrei que funcionase dentro da contorna virtual, polo que o instalei fora. Para que compile é preciso instalar previamente os seguintes paquetes:

$ sudo apt-get install python3-gst-1.0 gstreamer1.0 
$ sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
$ sudo apt-get install libgtk2.0-dev libwebkitgtk-dev libwebkitgtk-3.0-dev
$ sudo apt-get install mesa-common-dev libglu1-mesa-dev

Logo instalei o pip para python 3:

$ sudo apt-get install python3-pip

E finalmente:

$ sudo pip3 install --upgrade --pre -f https://wxpython.org/Phoenix/snapshot-builds/ wxPython

Instalou!!

user@debianstretch:~$ sudo pip3 install --upgrade --pre -f https://wxpython.org/Phoenix/snapshot-builds/ wxPython
[sudo] password for user: 
Collecting wxPython
  Using cached https://wxpython.org/Phoenix/snapshot-builds/wxPython-4.0.0b2.dev3307+d7cae3f.tar.gz
Requirement already up-to-date: six in /usr/lib/python3/dist-packages (from wxPython)
Building wheels for collected packages: wxPython
  Running setup.py bdist_wheel for wxPython ... done
  Stored in directory: /root/.cache/pip/wheels/84/7f/a5/c8259920ef35976c848549797679223097cb7bd964a492d505
Successfully built wxPython
Installing collected packages: wxPython
Successfully installed wxPython-4.0.0b2.dev3307+d7cae3f
user@debianstretch:~$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> wx.version()
'4.0.0b2.dev3307+d7cae3f gtk3 (phoenix)'
>>> 
user@debianstretch:~$

Para usar as wxpython dentdro de virtualenv fixen unha ligazón, no meu caso, en debian 9 Stretch, foi:

ln -s /usr/local/lib/python3.5/dist-packages/wx* /home/usuario/.virtualenvs/app-py3/lib/python3.5/site-packages/

warning: implicit declaration of function 'g_sprintf'

Compilando o xfce4-timer-plugin (v 1.6.0), xurdeume este erro. A solución foi engadir esta liña ó principio do documento, debaixo da liña #include

#include <gtk/gtk.h>
// Engádese a liña de abaixo
#include <glib/gprintf.h>  // for gcc's warning: implicit declaration of function 'g_sprintf'

Instalación do certificado Let's Encrypt para o sitio web

Deixo aquí unhas notas de como instalar un certificado de servidor seguro de Let's Encrypt á meu sitio web. Let's Encrypt fornece certificados para os nosos servidores de balde (gratis).

Inicialmente probei o instalador certbot mais non me foi ben, non acababa de verificar o sitio. Logo vendo algún foro de web2py vin que recomendaba o uso de acme que foi o que finalmente empreguei para obter o certificado do sitio web.

Preparación do cartafol para verificar que o sitio é meu

O primeiro que tiven que facer foi crear un cartafol para que Let's Encrypt puidese verificar que o dominio é meu. Normalmente sería indicar o cartafol raíz do sitio web, por exemplo «/var/www/», no meu caso ó usar web2py, a solución pasa por crear un alias no sitio na configuración do apache, no meu caso foi engadir dentro do virtualhost o seguinte alias tal como indican na guía de acme:

Para apache 2.4 en diante:

Alias "/.well-known/acme-challenge/" "/home/www-data/lets_encrypt/"
<Directory "/home/www-data/lets_encrypt">
  AllowOverride None
  Options None
  Require all granted
</Directory>

Para apache 2.2 e anteriores:

Alias "/.well-known/acme-challenge/" "/home/www-data/lets_encrypt/"
<Directory "/home/www-data/lets_encrypt">
  AllowOverride None
  Options None
  # Order allow, deny  OLLO! no meu caso tiven que comentar esta liña
  Allow from all
</Directory>

Instalación de acme

Para elo seguín as instrucións indicadas na guía:

# echo 'deb http://ppa.launchpad.net/hlandau/rhea/ubuntu xenial main' > \
 /etc/apt/sources.list.d/rhea.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \
9862409EF124EC763B84972FF5AC9651EDB58DFA
# apt-get update
# apt-get install acmetool

Unha vez instalado executei a orde:

# acmetool quickstart
  • Tipo de certificado que queremos: opción 1, live
  • Como imos verificar o sitio: opción 1, WEBROOT
  • Indico a ruta que indiquei no alias (na configuración do apache): /home/www-data/lets_encrypt/

Con isto queda o sitio verificado, o seguinte paso é a solicitude dos certificados, para elo empregase a orde:

# acmetool want www.damufo.com

Se quixese tamén o certificado para o sitio sen as www empregaría a orde:

# acmetool want damufo.com www.damufo.com

Os certificados obtidos son gardados en «/var/lib/acme/live/www.damufo.com/».

Para ver o estado dos certificados solicitados, emprégase a orde:
# acmetool status

Finalmente queda engadir os certificados ó virtualhost seguro do apache (o do porto 443), para elo engádese dentro das etiquetas de dito virtualhost o seguinte:

SSLEngine on  # Isto en teoría xa debería estar
SSLCertificateFile    /var/lib/acme/live/www.damufo.com/cert
SSLCertificateKeyFile /var/lib/acme/live/www.damufo.com/privkey
SSLCertificateChainFile /var/lib/acme/live/www.damufo.com/fullchain

Deixo aquí esta ligazón sobre a configuración do SSL do apache que fornece Mozilla por se é de interese.

Finalmente queda comprobar que a sintaxe do ficheiro apache está ben, para elo empregase a orde:

# apache2ctl configtest

E se todo está ben, reiniciase o apache coa orde:

# service apache2 restart

Se tivese outro sitio (outro dominio no mesmo servidor)

# acmetool want www.outro-dominio.com

Se quixese borrar o certificado dun dos sitios, faise con unwant

# acmetool unwant www.damufo.com

Forzar https e uso de www no Apache

Deixo aquí estas notas de como configurar o Apache para forzar ó sitio a usar https e que o emprego de www. antes do nome de dominio.

Para elo fixen uso do módulo Rewrite do Apache.

O primeiro foi engadir dentro de <VirtualHost *:80> as liñas:

 RewriteEngine on
# Forzar o emprego de https
  RewriteCond %{HTTPS} off
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

Con isto, o tráfico é redirixido do porto 80 ó 443 que é o que emprega a conexión segura https.

Logo, queda forzar ó emprego de «www.» no caso de non estar presente antes do nome do dominio, para elo engadín dentro de <VirtualHost *:443> as liñas:

RewriteEngine on
  #Forzar o emprego de www.
  RewriteCond %{HTTP_HOST} ^damufo.com [NC]
  RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}

Se, pola contra, quixese forzar ó NON emprego de «www.» antes do nome do dominio, no canto de engadir o de arriba, o que faría sería engadir:

  RewriteEngine on
  # Forzar o emprego de non-www
  # RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
  # RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

É imporante que dentro do virtualhost estea establecido o nome do servidor, no meu caso:

ServerName damufo.com

wxpython no Ubuntu 16.04 con python3

Para a instalación do wxPython Phoenix no Ubuntu 16.04 dentro dun contorno virtual de Python3. Para elo vasta coa simple orde:

$ pip3 install -U --pre -f https://wxpython.org/Phoenix/snapshot-builds/linux/\
gtk3/ubuntu-16.04  wxPython_Phoenix

Devasa empregando UFW en linux Debian

Deixo aquí uns pasos de como configurar a devasa no servidor Debian.

UFW é unha interface para configurar a devasa IPTables (a cal ten unha configuración máis árida).

O obxectivo é bloquear todo agás as conexións ssh e http/https

Comezo por instalar:

$ sudo apt-get install ufw

Unha vez instalado pode verse o estado das regras coa orde:

$ sudo ufw status

Inicialmente este dará como resultado: “Status: inactive”

Antes de activalo establezo as reglas para asegurarme que sempre teño permitida a conexión ssh, do contrario podería perder o acceso ó servidor.

Comezo por denetar o tráfico de entrada e permitir o de saída:

$ ufw default deny incoming
$ ufw default allow outgoing

Abro o porto para o SSH.

$ ufw allow ssh

Ollo que se teño o ssh noutro porto distinto ó 22 mellor establecelo a man, por exemplo, supoñendo que estea no 2222, quedaría así:

$ ufw allow 2222

No caso de ter mudado o porto ssh a outro porto precisarei eliminar a regra que permitía o acceso ó porto 22 (predeterminado do ssh):

$ sudo ufw delete allow ssh

Abro o porto para o servidor web:

$ ufw allow www

Abro o porto para o servidor web seguro (https):

$ ufw allow 443/tcp

No caso de ter correo podería abrir seu porto así:

$ ufw allow 25/tcp

No caso de ter MySQL, sería:

$ ufw allow 3306/tcp

Abro o porto para o protocolo ntpd:

$ ufw allow ntp

Finalmente activo a devasa:

$ ufw enable

Para ver como quedou executo:

$ ufw status verbose

O normal é que se configure automáticamente para arrarcar ó inicio, pero non está de máis asegurarse, para elo hai que acceder ó ficheiro /etc/ufw/ufw.conf e ver que a opción ENABLED está establecida a «yes» (ENABLED=yes).

Fontes: programarivm, critiantata, websecurity

Amosando 1 a 10 de 51