localhost ne fonctionne plus sur mon Linux Mint !

Y connait pas Raoul.jpg

Pas de panique, vérifions si le serveur apache est bien démarré: sudo /etc/init.d/apache2 status

S'il y a un souci et que le serveur apache n'est pas actif, on vérifie le log: journalctl -u apache2.service

Capture du 2020-11-22 13-50-09.png

1. Un souci avec le nom localhost...

  1. Je vérifie mon fichier hosts et il contient bien localhost
  2. je modifie apache2.conf avec un sudo xed /etc/apache2/apache2.conf et j'y ajoute ServerName localhost
  3. je relance pour voir: sudo service apache2 start

poufcetou

2. Un souci avec le dossier log d'apache2

  1. je vérifie si le dossier existe ls -ld /var/log/apache2
  2. au besoin je le crée: sudo mkdir -p /var/log/apache2/
  3. je modifie les droits d'accès au dossier en question pour que www-data ait le droit d'y écrire: pour ça je suis passé par caja pour l'éditer à la main... (la flemme de trouver une commande )
  4. Je relance apache2: sudo service apache2 start

Et ça remarche !

Note: Partager un fichier par le réseau entre Ubuntu et Windows - Shaarli ¦ Orangina Rouge - Liens en vrac de sebsauvage

La vache ! C'est simplissime et rapide ! Merci Seb ;-)

(en Python 2) : python -m SimpleHTTPServer 5555
(en Python 3) : python -m http.server 5555
et accédez avec un simple navigateur (http://adresseip:5555)

Astuce Javascript+html: Avoir un comportement normal sur le drop avec Firefox

Note pour la prochaine fois que je voudrai faire un drag & drop de fichiers sur Firefox

Comme découvert grâce à ArthurHoaro, pour obliger le navigateur à gérer le drop de fichier sur une dropzone, il faut d'abord faire un preventDefault() sur les événements dragover et/ou dragenter.

solution N°1

On peut le faire en dur dans le HTML:

<div ondragover="return false">
<div ondragover="event.preventDefault()">

Ce qui peut même servir pour le ciblage du drop avec un sélecteur genre *[ondragover]

Solution N°2

On peut bien entendu également le définir directement dans le js:

document.getElementById("body").addEventListener("drop",function(e){
        console.log(e);
        e.preventDefault();
        e.stopPropagation();
})
document.getElementById("body").addEventListener("dragover",function(e){
        e.preventDefault();
        e.stopPropagation();
})
document.getElementById("body").addEventListener("dragenter",function(e){
        e.preventDefault();
        e.stopPropagation();
})

Je sers la programmation et c est ma joie   (1).jpg

Sources:

Commandes GNU/Linux pour détecter une intrusion - Net-Security

En ultra résumé

  • w & who pour savoir qui est connecté,
  • last & lastb pour savoir qui a été connecté,
  • history (lancé depuis l'utilisateur à vérifier : su username) pour voir les traces laissées,
  • less /etc/passwd et cat /etc/passwd pour vérifier si on n'a pas créé un utilisateur à l'arrache,
  • ps et top pour vérifier s'il n'y a pas un processus malveillant,
  • ss & netstat pour vérifier les faiblesses réseau,
  • ip
  • crontab pour vérifier si une tâche cron n'est pas lancée régulièrement
  • find / -mtime -5 -ctime -5 pour vérifier les fichiers modifiés récemment,
  • cat /var/log/syslog, cat /var/log/syslog | less, tail -f -n 5 /var/log/syslog, cat /var/log/syslog | grep fail, tail -f /var/log/syslog pour les logs
    Via https://shaarli.sebw.info/?aU81yg

Astuce Javascript+html: confirmer lors d'un clic sur un lien

Je partage une petit truc vraiment tout con que je viens de tester pour une de mes applis de boulot.

J'avais besoin de confirmer vite fait et sans prise de tête le clic sur un lien «supprimer»: j'ai opté pour l'utilisation d'un attribut «confirm» et d'un bout de JS qui va bien.

Le code ci-dessous utilise ma petite betalib VanillaJS perso (http://cdn.warriordudimanche.net/VanillaJS.js) parce que j'avais la flemme de récrire la partie ciblage et foreach, mais vous aurez pigé le concept (c'est vraiment tout con)

HTML

<a href="http://www.warriordudimanche.net/?delete" confirm="true">Delete</a>

JS

on('click','a[confirm]',function(e){
        // La partie à mettre dans un évènement click
    e.stopPropagation();
    if (!confirm("Etes-vous certain ?")){
        e.preventDefault();
        return false;
    }
});

L'avantage, c'est qu'il suffit de coller l'attribut «confirm» sur un lien pour qu'il ne soit activé qu'en cas de confirmation.

Optimize Font Awesome to ridiculously low size of 10KB! | Webjeda

Sinon, il y a Fontello ( http://fontello.com/ ) qui permet de choisir ses icônes dans plusieurs bibliothèques de webfonts (font awesome, Entypo, Typicon, Iconic, Modern Pictogram, Meteocons, MFG labs, Maki, Zocial, Brandico, Elusive, Linecons, Web symbols)

On fait son marché et on récupère un zip contenant la webfont et les css tout prêts...

De rien !

Create A Persistent Storage Live USB With Ubuntu, Linux Mint Or Debian (UEFI, >4GB Persistence Support) - Linux Uprising Blog

Je ne sais plus où j'avais lu que faire un liveUSB persistant avec linux Mint était impossible... Ben c'est pas vrai: voilà la méthode avec mkusb et elle fonctionne très bien.

Seul bémol, j'ai pas pu faire une install depuis ce liveUSB persistant à cause d'un volume monté et pas démontable... J'ai pas cherché plus loin...

GitHub - benbusby/whoogle-search: Self-hosted, ad-free, privacy-respecting Google metasearch engine

Intéressant: un genre de googol mais en python.

Il semble très complet et facilement déployable... Merci à Chouchen qui a pris le temps de me signaler ce lien dans les commentaires ;-)

Via Chouchen (dans les commentaires)

How To Build Tabs only with CSS - Digital-Heart - Medium

Intéressant : des onglets css only... Je garde !

// boutons
<input type="radio" name="tabs" id="tab1" checked />
<label for="tab1">Tab1</label> 
<input type="radio" name="tabs" id="tab2" />
<label for="tab2">Tab2</label>

// contenus
<div class="tab content1">Tab1 Contents </div>
<div class="tab content2">Tab2 Contents </div>
// css pour cacher/montrer
input { display: none; }                /* hide radio buttons */
input + label { display: inline-block } /* show labels in line */
input ~ .tab { display: none }          /* hide contents *//* show contents only for selected tab */
#tab1:checked ~ .tab.content1,
#tab2:checked ~ .tab.content2 { display: block; }

// css pour styler
input + label {             /* box with rounded corner */
  border: 1px solid #999;
  background: #EEE;
  padding: 4px 12px;
  border-radius: 4px 4px 0 0;
  position: relative;
  top: 1px;
}
input:checked + label {     /* white background for selected tab */
  background: #FFF;
  border-bottom: 1px solid transparent;
}
input ~ .tab {          /* grey line between tab and contents */
  border-top: 1px solid #999;
  padding: 12px;
}
Fil RSS des articles