Logo KDE

Akonadi pour 15 go

Publié dans Geekeries | Laisser un commentaire

Sur ma Debian KDE bulleyes, j’ai récemment remarqué qu’Akonadi utilisait plus de 15 go d’espace disque ! Akonadi, c’est ce mécanisme de base de données partagées que peuvent utiliser les applications Linux pour faciliter l’accès aux données de l’utilisateur : email, agenda, rappels, etc. C’est principalement utilisé par de plus en plus d’applications KDE comme KMail, KOrganizer, etc.

Pourtant, il ne me semble pas utiliser particulièrement ces applications… J’utilise Thunderbird et je m’en porte très bien ! Akonadi est normalement coupé par défaut, et activé dès qu’une application le nécessite. Il semblerait que l’horloge KDE puisse l’activer (eh oui, elle peut afficher un agenda), mais à part ça, mystère.

Mon hypothèse c’est que j’ai dû tester un jour KMail, puis le désinstaller, et Akonadi s’est ainsi retrouvée avec 15 go d’emails dans sa base de données.

J’ai cherché, et je n’ai pas trouvé comment savoir si ces données étaient vraiment utiliser, ni comment purger. Alors j’ai suivi les conseils de ce thread KDE : couper Akonadi, tout supprimer, relancer Akonadi. Oui.

Continuer la lecture
Logo KDE

Astuces en cas de pépin avec KDE Plasma

Publié dans Geekeries | Laisser un commentaire

Plasma crashe au boot à cause d’EventCalendar

Pour ceux qui sont sous Debian Testing Bulleyes (so 2020), si jamais vous avez le même problème que moi (j’ai juste ouvert mon ordi pour rien d’important, et pof écran noir, juste la souris, même après le reboot, bref galère) :

Je ne sais pas qui est la cause de quoi, mais il s’avère que le plugin qui affiche l’heure EventCalendar s’est aussi mis à crasher et le résultat c’est que Plasma crash au démarrage et affiche un écran noir. Le plus simple c’est de sauvegarder puis supprimer `.config/plasma-org.kde.plasma.desktop-appletsrc` puis de reboot (Donc `Alt+F2` pour afficher un terminal, ou bien `Ctrl+Alt+F2`). ça recréera une config par défaut. J’ai pu comparer les 2, faire des tests, détecter le pb d’affichage de l’heure par hasard, et du coup remettre ma config d’origine corrigée.
Plasma s’affichait bien, mais pas le décorateur de fenêtre (pas possible de déplacer, fermer des fenêtres, alt+tab marchait pas).

EventCalendar est toujours planté aujourd’hui, donc je ne l’utilise plus. Lorsque j’ai eu ce problème, j’avais probablement un double bug EventCalendar + kwin. C’est peut-être dû à la dernière mise à jour que j’ai faite, soit ça a cassé mon kwin (le « window decorator »), soit ça a introduit un bug dans kwin. Bref, dans la soirée une nouvelle version de kwin est apparu et cela a réglé le souci. J’ai cherché à savoir si c’était ma config ou un bug, mais je n’ai pas trouvé.

Au moins, je sais maintenant où trouver la config de Plasma, et je sais ce qu’est un window decorator 😀

Redémarrage live de Plasma

La commande pour redémarrer plasma c’est : `killall plasmasheel` (pour tuer l’ancien) puis tout simplement `plasmashell &`.

Picotech

libpicoipp installation error

Publié dans Geekeries | Laisser un commentaire

Sur mon Debian bulleyes (encore « testing » pour l’instant, mais plus pour longtemps), je me suis récemment retrouvé avec une erreur étrange lors de la mise à jour de mon système :

$ sudo apt upgrade                                                                                                                  
Lecture des listes de paquets... Fait                                                                                               
Construction de l'arbre des dépendances                                                                                             
Lecture des informations d'état... Fait                                                                                             
Vous pouvez lancer « apt --fix-broken install » pour corriger ces problèmes.                                                        
Les paquets suivants contiennent des dépendances non satisfaites :                                                                  
 libps2000a : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                       
 libps3000a : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                       
 libps4000 : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                        
 libps4000a : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                       
 libps5000a : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                       
 libps6000 : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                        
 libps6000a : Dépend: libpicoipp (>= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                       
 picoscope : Dépend: libpicoipp (= 1.3.0-4r78) mais 1.3.0-4r29 est installé                                                         
E: Dépendances non satisfaites. Essayez « apt --fix-broken install » sans paquet                                                    
   (ou indiquez une solution).
Continuer la lecture

Monter le Storex AivX avec Samba

Publié dans Geekeries | Laisser un commentaire

J’ai depuis plusieurs année un disque dur Wifi / media center Storex AivX – 372 HD. A part que c’est un peu vieux, c’est assez cool : 1to et il permet de lire facilement des films sur un écran (très pratique, je n’ai que faire d’un télé).

Voilà longtemps que je voulais pouvoir y accéder à distance via mes autres ordinateurs. C’est censé être possible puisqu’il est connecté en Wifi à ma box Internet. Via Windows c’est un peu la croix et la bannière, mais ça marche. Sous Linux… je n’avais jamais réussi ! L’autre jour, je me suis un peu acharné, j’ai trouvé et relu la doc, et j’ai fini par trouver la solution (et les raisons) juste avant de lâcher prise. Ouf !

Continuer la lecture
syncthing

Installer syncthing sur recalbox

Publié dans Geekeries | Laisser un commentaire

J’ai récemment installé l’OS Recalbox, l’émulateur de consoles de jeux, sur mon RaspberryPi3. Une petite manette USB, et… ah oui il me faudra une manette USB ou Bluetooth supplémentaire, et prendre le temps de retrouver des jeux sympas… et cela devrait animer les soirées d’hiver !

Mon objectif est d’avoir un RaspberryPi près du bureau pour :

  • Faire console de jeux (checked)
  • Ah tiens Recalbox est fourni avec le media center Kodi (à creuser)
  • Rendre mon imprimante utilisable via le réseau (peut-être compliqué avec Recalbox, c’est mon prochain défi)
  • Rajouter un noeud Syncthing à la maison (checked)

Mais comment installer synchting sur Recalbox ? Puisque comme le disent certains sur les forums : il n’y a pas de gestionnaire de paquet sur Recalbox.

Continuer la lecture
Grub

Grub rescue après mise à jour Windows

Publié dans Geekeries | Laisser un commentaire

Contexte
Sur un Dell Inspiron 155000, j’ai un dual boot Windows 10 / Kubuntu. Lors d’une mise à jour Windows, ce dernier semble avoir purement et
simplement supprimé grub. J’avais déjà eu le cas où Windows modifie le disque d’amorçage, et il faut donc reconfigurer grub à la main, mais cette
fois-ci, je n’avais carrément plus de grub, juste un prompt “grub rescue”. Génial !


Solution
Dans le prompt grub rescue :
grub rescue> ls # affiche la liste des disques, pour moi cela allait de gpt9 à gtp1
grub rescue> set # affiche la configuration courante, pour moi gtp8 était sélectionné
grub rescue> set prefix=(hd0,gtp5)/boot/grub
grub rescue> set roothd0,gpt5
grub rescue> insmod linux # Maybe useless
grub rescue> insmod normal
grub rescue> normal # Linux will start

J’ai fait plusieurs tentatives pour trouver la bonne partition car je ne me rappelais plus laquelle c’était ! (petite piqûre de rappel de qwerty en
prime) Il n’y a pas de risque à faire des essais, quand ce n’est pas correct, la commande insmod linux déclare unknown filesystem.
Pour rendre cette modification permanente, il faut utiliser les commandes suivantes une fois qu’on a un prompt digne de ce nom :
sudo os-prober
sudo update-grub
sudo grub-install /dev/sda

Ressources

  • https://doc.ubuntu-fr.org/tutoriel/comment_restaurer_grub
  • http://forum.ubuntu-fr.org/viewtopic.php?id=358656
wine logo

Office 2010 sous Linux Debian

Publié dans Geekeries | Laisser un commentaire

Aujourd’hui j’ai réussi à installer une version official de Microsoft Office 2010 (32bits version Academic) sur mon Linux : une Debian Bulleyes avec wine 4.0.1. J’ai utilisé les commandes suivantes :

sudo apt install winetricks winbind WINEARCH=win32 WINEPREFIX=~/.wineoffice2010 winetricks dotnet20 msxml6 corefonts WINEPREFIX=~/.wineoffice2010 wine ../hubiC/Olivier/WorkTrialog/Software/Office_2010_ProPlusAc_SP1_French_x32.exe

Après cela, Word et Excel ont fonctionné correctement (une fois activé en ligne). Mais PowerPoint ne démarrait pas… Il semble que PowerPoint on wine « does not automatically use the riched20 installed by Office ».  Donc, nous devons sélectioner riched20 to native in winecfg. C’est ce que j’ai fait avec succès en lançant :

WINEPREFIX=~/.wineoffice2010 winecfg

Et voilà ! Bon courage avec votre installation d ‘Office sous Linux ! Pour info, j’ai aussi une version d’Office 2016, mais c’est juste mort pour l’installer sous Linux ! Une histoire de version d’ActiveX pas (encore) supporté par Wine.

The Rules of Life

Règle #2 – Changelogs & Release notes

Publié dans Développement | Laisser un commentaire

Une bonne pratique de taille pour fiabiliser le développement logiciel, c’est de toujours garder une liste « humaine » des changements apparus de versions en versions.

On peut noter 3 degrés d’historique :

  • Git history : pour le développeur
    • git log, gitk
    • Moi je me suis créé un alias Git pour afficher joliment les derniers commits dans ma ligne de commande: git lasts
      • Ajouter l’alias suivant dans le fichier ~/.gitconfig: lasts = log -35 --pretty=tformat:"%C(red)%h%x20%C(magenta)%ad%C(auto)%d%x20%C(green)%s%C(white)%x20-%x20%an%C(auto)" --date=short --abbrev-commit --graph --decorate
  • Changelogs : pour l’utilisateur averti, pour le validateur
  • Release notes : pour le client, pour le « non technique »
    • Format à définir avec les personnes concernées
    • Focus sur les fonctionnalités et les changements visibles

The Rules of Life

Règle #1 – Numéro de version

Publié dans Développement | Laisser un commentaire

Règle #1 pour livrer du logiciel : définir un numéro de version !

Quel numéro choisir ?

Le must du must est d’utiliser et de suivre le Semantic versioning. C’est-à-dire, d’utiliser trois chiffres :

MAJOR.MINOR.PATCH

  • MAJOR : incompatible API / ABI changes,
  • MINOR : functionality added in a backwards-compatible manner
  • PATCH : backwards-compatible bug fixes

Ce qui implique que si je trouve un bug dans ma bibliothèque v3.1.2, que je corrige ce bug, je vais publier ce correctif dans une nouvelle v3.1.3 uniquement si je n’ai pas fait de changements bloquants (c’est-à-dire que mon soft qui tournait avec la v3.1.2 de cette bibliothèque pourra utiliser v3.1.3 sans rien changer). Si mon correctif implique des changements bloquants (pas de bol), il faut changer le numéro de version majeur (v4.0.0), eh oui.

Trouver le numéro de version

Il n’y a rien de pire que de faire tourner un soft et de ne pas savoir quelle est la version qui tourne. Avoir un numéro de version c’est bien beau, mais il faut aussi l’afficher quelque part :

  • Au démarrage du soft
  • Dans un log
  • Sur l’IHM
  • Dans l’API

N’importe où, mais quelque part !

Modifier le numéro de version

Un autre corollaire de cette règle #1, c’est qu’il faut pouvoir modifier facilement ce numéro de version. Il doit être défini en un unique endroit. Par exemple :

  • Qt : Le fichier .qmake.conf est inclue au début de chaque fichier .pro et .pri, c’est le candidat idéal
  • PHP / Symfony : app/config/config.yml

Selon son architecture de développement, on peut aussi s’assurer qu’un tag Git vient préalablement mettre à jour le numéro de version dans le code.

Logo OpenSSL

OpenSSL et i2d_PublicKey

Publié dans C / C++ | Laisser un commentaire

Dans OpenSSL, il y a des pièges ! Petit exemple avec i2d_PrivateKey et i2d_PublicKey :

i2d_PrivateKey(EVP_PKEY *, uchar **), comme escompté, prend en paramètre une paire de clé source EVP_PKEY et un tableau d’octet en destination. La clé privé est extraite de la paire de clé et envoyé au format DER / ASN 1 dans le tableau d’octet.

i2d_PublicKey(EVP_PKEY *, uchar **) a la même signature, une paire de clé source EVP_PKEY et un tableau d’octet en destination. La clé publique est extraite de la paire de clé, mais cette fois-ci elle est envoyé sous forme d’un EC point dans le tableau d’octet ! Piège !

L’équivalent de i2d_PublicKey(EVP_PKEY *, uchar **) est en réalité i2d_PUBKEY(EVP_PKEY *, uchar **) ! Et c’est la même chose pour d2i_PublicKey/PUBKEY. Comme quoi… « rien n’est jamais facile » !