Vu le nombre d'ordis qui traînent à la maison, je commence à me dire que leboncoin pourrait permettre un win-win: je me défais de quelques-uns et ils ne vont pas à la casse.
je crois que j'ai un problème...
Dans le lot, il y a mon ancien ordinateur, un pavilion g6 acheté à carrefour il y a une dizaine d'années. Je l'avais passé à ma fille puis il s'est mis à démarrer aléatoirement. Quand je l'ai testé, l'aléatoirement est devenu systématiquement.
Les symptômes
L'ordinateur ne démarre pas, le ventilo tourne, l'écran reste noir.
Pas d'affichage de bios du tout et la led de la touche verrmaj clignote deux fois.
Après recherche sur le site HP
Ce serait le BIOS qui serait corrompu. .. J.O.I.E.
Alors, pour la faire courte, voici la procédure à suivre débarrassée des divers tâtonnements et échecs qui ont jalonné ma dernière heure...
1. récupérer le fichier de création de fichiers BIOS
On télécharge et on lance l'exe sur un win qui marche.
2. Copier les fichiers sur une clé USB
Attention, il faut copier ces fichiers sur une clé USB BOOTABLE ! Pas n'importe quelle clé... Heureusement, j'ai ma bonne vieille corsair flash voyager parce que les premières m'ont bien fait caguer.
Vous lancez l'exe, vous suivez les directives et vous copiez avec l'option create recovery...
3 - Démarrer le Pavilion g6 avec la clé USB
Ordi éteint:
On insère la clé USB
on appuie et on maintient les touches windows et B appuyées
on démarre l'ordi en appuyant sur le bouton ON pendant 2-3 secondes sans lâcher win + B
on maintient les touches windows et B appuyées tant que rien ne s'affiche normalement, si votre clé a une led, vous devriez la voir s'agiter
au bout d'un moment, l'écran de flashage du BIOS devrait apparaître, suivez es instructions.
l'ordi remédarrera plusieurs fois, pas d'inquiétude.
à la fin, il faudra appuyer sur entrée pour continuer.
Dans le monde merveilleux de la découpe et gravure laser, je débarque à peine, il me faut bien l'avouer... Toutefois, comme dans beaucoup de domaines dans lesquels le montant à investir au départ est inversement proportionnel aux difficultés que tu vas rencontrer dans l'utilisation de l'appareil. le bazard est ardu, en particulier quand on ne t'explique pas les trucs à la base.
Le choix du logiciel de gravure n'échappe bien entendu pas à cette règle: si tu veux que le bouzin fasse des trucs un peu tout seul ou sans trop de prise de tête, il faudra faire tomber 60€ pour acheter LightBurn, qui semble la référence en la matière.
Sinon, tu te tourneras vers la seconde référence: LaserGRBL. Il est gratuit et ça c'est bien. Mais il ne tourne nativement que sous windows et ça c'est pas bien.
Les plus assidus se rappellent du billet précédent dans lequel je fournissais deux façons de faire tourner ce logiciel sous linux ( https://warriordudimanche.net/article1800/sculpfun-s9-gravure-decoupe-laser-pas-trop-cher ) : la difficulté est moins de faire démarrer laserGRBL que de lui faire détecter la machine sous linux... ça semble possible, mais comme souvent pour les trucs peu répandus ou geekesques, sous linux, ça devient assez peu intuitif... et pour ma part, j'ai pas le temps.
Les captures sont celles de la version windows pour le travail sur l'affiche Harry Potter de l'article précédent, juste pour que vous compreniez ce que vous voyez (référence à https://www.youtube.com/watch?v=xJ2tOJhx2s4 )
LaserGRBL
En ce qui concerne l'utilisation et l'aspect intuitif, LaserGRBL est à la gravure laser ce que vim est à l'édition de texte... voyez ?!
ça marche bien mais faut connaître...
Toutefois, avant de vous lancer, gardez en mémoire que l'alcool n'est pas la solution.
L'interface
Je vais pas vous faire une lecture des sous-menus - qui est au tuto ce que le tang est au jus d'orange - mais juste un survol des trucs à voir.
Le menu
Le menu principal est celui qui sera le plus utile: on y trouve le point de départ de toute réalisation: l'ouverture ou l'ajout d'un fichier (image ou gcode)
Connexion et nb de passes
La zone de gauche donne accès à un élément important (outre le bouton servant à connecter la graveuse): le nombre de passes. Contre toute attente, ce n'est pas un paramètre comme les autres, il n'est pas avec les réglages laser.
Rien ne vous dit d'ailleurs où ce trouve ce réglage en dehors du survol. Mais heureusement que ya Bronco pour vous sortir de la merde: c'est la petite case à côté de la barre progression qui dit combien de fois le travail doit être répété (sur l'image ya un «1», donc le travail ne sera fait... qu'une fois: bravo à toi dans le fond.).
Un petit label aurait été de bon aloi...
Et le petit triangle, là, encore à côté, c'est celui qui sert à lancer le processus de gravure/découpe...
visualisation du projet
A droite, vous retrouvez une représentation visuelle des éléments ajoutés (le résultat du Gcode généré): ils s'afficheront de la même façon qu'ils seront tracés sur la découpeuse.
Dans cette capture, trois fichiers ont été utilisés: le titre (découpe), la photo (gravure) et le sous texte (découpe)
Contrôle de la zone de gravure
Ces icônes s'avèrent utiles pour placer ou visualiser la zone sur laquelle la gravure va se faire. Ne serait-ce que pour vérifier qu'elle se fera à l'endroit du support où vous espérez...
Le bouton center place le laser au centre de la zone de gravure occupée par l'objet.
Le bouton corner déplace le laser dans le coin en bas à gauche de la zone de l'objet.
Le bouton frame fait le tour de la zone occupée par l'objet afin de vérifier s'il y a un débordement.
focus et blink servent à déclencher le laser à sa puissance minimale pour en visualiser le point d'impact exact.
Étapes de gravure/découpe
Avec ce logiciel, on passe toujours par les mêmes étapes:
choisir un fichier (image dans un premier temps)
importer le fichier : le convertir de façon à en avoir une version exploitable par le logiciel
saisir les réglages de la découpeuse afin de produire le Gcode correspondant.
A chaque fois, vous passerez par ces étapes: pour tout changement de réglage, tout nouveau travail...
Voyons ce que ça donne avec le fichier de titre à découper
1. choisir le fichier
Il peut s'agir d'un fichier image ou d'un fichier Gcode. Ici nous choisirons un fichier image: hcoke.png
2. importer le fichier
La fenêtre suivante sert à convertir l'image en fonction de ce qu'on veut obtenir.
En gros, on peut choisir d'importer l'image telle qu'elle et de la convertir en lignes de dégradés de gris («tracé ligne par ligne» ou « pointillisme») ou alors de ne conserver que les bords extérieurs («vectorisation»).
Habituellement, pour la découpe, on se sert de la vectorisation.
3. Réglages du laser
C'est là qu'on va régler la puissance et la vitesse du laser. Mais avant tout, on choisit le mode du laser !
M3 -constant ➜ la puissance du laser restera celle indiquée dans le réglage tout au long du travail: c'est le mode utilisé pour la découpe.
M4 - variable ➜ la puissance du laser variera de zéro à celle indiquée dans le réglage en fonction de la nuance de gris à rendre: c'est le mode utilisé pour la gravure.
Ensuite vous pouvez spécifier la vitesse du laser en millimètres par minute et la puissance de 0 à 1000 (0% à 100%).
La rubrique du bas permet de spécifier la taille de la découpe et son décalage par rapport à l'origine 0,0 (en bas à gauche pour la S9 sauf si vous avez utilisé le bouton de LaserGRBL servant à fixer l'origine ailleurs). C'est là que vous décalerez les différents objets les uns par rapport aux autres dans les projets mêlant gravure et découpe)
Les plus observateurs d'entre-vous - ou ceux qui sont le plus habitués aux interfaces laconiques - auront remarqué le bouton en forme de livre. Un clic dessus vous donne accès à des préréglages selon une grande quantité de machines via la MaterialDB (mais pas la S9, j'ai du éditer la base via le menu GRBL>MaterialDB) :
Ici on prend les réglages pour découper du papier 100% / 800 mm/m / 1 passe en M3.
Une fois les réglages effectués on se retrouve devant l'écran principal où l'on n'a plus que le nombre de passes à préciser et un clic sur le bouton ▶ pour lancer le taf.
Pour la gravure
On passe par les mêmes étapes sauf qu'on choisit le mode M4:
On choisit le mode tracé ligne par ligne (l'option qualité donne le nombre de lignes par millimètre... entre 5 et 10 s'avère pas trop mal mais j'ai peu testé.)
On règle pour la gravure
Notez le M4 !
on valide et on clique sur ▶ pour lancer.
Les trucs à se rappeler avant de se lancer
vous allez faire des erreurs... beaucoup. Partez là-dessus et ne perdez pas votre enthousiasme... pour ma part, j'ai égaré le mien aux alentours de la huitième tentative avortée... plus moyen de foutre la main dessus. C'est l'entêtement qui a pris le relai du coup.
vous pouvez mettre plusieurs «images» (cad plusieurs travaux de découpe/gravure) dans le même travail, il suffit de sélectionner ajouter un fichier au lieu de ouvrir un fichier. Par contre, en cas de changement de réglages, il faudra tout reprendre à zéro, depuis le premier document: c'est vite chiant, surtout quand on ajoute les soucis de placement à ceux des réglages du laser. Heureusement il y a le point numéro 3 (ouf)
quand vous avez obtenu de haute lutte un GCODE dont les réglages fonctionnent, vous pouvez le sauvegarder comme fichier de travail: ainsi, sur une réalisation complexe avec des découpes des gravures etc, on peut faire le Gcode de chaque élément et les ajouter ensuite. On peut même sauvegarder le tout dans un nouveau fichier gcode (titre.gcode + photo.gcode + txt.gcode = total.gcode)
M3 -constant ➜ découpe / M4 - variable ➜ gravure
Ce tuto est un premier jet réalisé après deux jours en partant de zéro. Il s'agit de notes pour moi-même et pour le pauvre copain qui va se lancer comme moi au talent. C'est amené à évoluer avec les nouvelles tentatives, les prochaines erreurs, les commentaires d'aide que je recevrait et tout ça
Tiens... et si je faisais un bot pour poster une citation par jour tirée des passages de romans que j'ai sélectionnés et stockés su ma Kobo ?!
C'est par ces mots que j'ai commencé à galérer... comme quoi, il suffit d'une idée à la con pour se lancer dans tout un merdier pourtant parfaitement facultatif ...
Le postulat de départ
Je veux qu'un BOT mastodon poste une citation de mes bookmarks de liseuse DONC il faut récupérer ces passages bookmarkés.
Donc, il faut trouver le fichier de base de donnée.
Puis il faut extraire les données intéressantes.
Puis utiliser ces données dans un BOT qui sera appelé une fois par jour.
Étape 1: trouver et comprendre les données sur la KoBo
En fouillant un peu, on trouve un fichier sqlite (JOIE) dont le chemin est .kobo/KoboReader.sqlite
Un passage par DBBrowser pour SQlite permet de jeter un oeil sur la structure des données.
Idéalement, il me faut deux informations: la citation et le titre du bouquin dont elle est extraite.
En fait les titres se trouvent dans la table content et les annotations dans la table Bookmark
Je pourrais utiliser Calibre et chercher un moyen de faire un export complet de ces deux données uniquement. Pas sûr que ça marche. Ou alors faire un export via le DBexplorer pis me retaper le truc à chaque export...
Étape 2 : extraire les données et les préparer pour le Bot
En vieux programmeur qui bricole, je vois là un prétexte pour coder une petite appli en python qui se chargera de l'extraction.
Mon problème, c'est que je me sers des notes de la Kobo pour retenir des passages intéressants mais aussi, parfois, pour noter vite fait un mot de vocabulaire espagnol que je ne connaissais pas et dont je veux conserver la traduction. Mais ces mots de vocabulaire ne sont pas des citations: il faudrait donc les virer à la main à chaque fois. C'est chiant.
L'appli devra donc permettre de filtrer les citations avant de générer un fichier exploitable par le bot.
Pour faire court
J'ai fait l'appli en question: elle permet donc de récupérer les données, filtrer en fonction de la longueur de la citation ou du fait qu'elle est ou pas accompagnée d'une note personnelle...
On peut formater les données selon plusieurs modèles (HTML, Json, Markdown, TXT brut, BOT) voire même créer son propre format (genre %title:«%quote» )
Étape 3 : coder un bot en PHP afin de l'appeler par la suite avec un CRONJob.
Rien d'extraordinaire ici: je fais un script qui parse le fichier obtenu à l'étape précédente, tire une citation au hasard et la poste sur le compte Masto du Bot.
Le point le plus intéressant du bouzin est plutôt la fonction servant à poster sur un compte mastodon:
Étape 4: Créer une appli Mastodon pour avoir un jeton d'utilisation
Aller sur le compte mastodon en question, puis dans les préférences.
Cliquer sur «developpement» puis «Nouvelle application».
Remplir le formulaire simplissime puis valider. Cliquez ensuite sur le nom de votre application dans la nouvelle page et copiez votre jeton d’accès. C'est celui-ci qu'il faut coller dans le script PHP (dans la constante TOKEN)
Étape 5 : Définir un Cronjob
Direction le panneau de config de votre hébergement, rubrique cronjob.
Sur Cpanel c'est là :
Définissez la fréquence (pour moi une fois par jour) et l'heure (8:00).
Ensuite, il faut définir la commande qui va appeler le script du BOT: wget fera l'affaire...
L'option -q pour quiet et -O /dev/null pour éviter d'avoir un fichier de sortie qui se crée à la racine.
Fin
Une fois tout ça terminé, j'ai bien un bot qui poste une citation à 8:00 tous les jours.
Bon, elles ne seront pas toujours bien formatées vu que la sélection de texte sur liseuse c'est un peu touchy... mais c'était plus pour apprendre à le faire qu'autre chose...
Toutes les merdes que vous pouvez virer de votre Android. (et les trucs à pas virer )
Je débloate le p8lite de mon épouse vu que sur 16go, le système et les applis prennent...15.7go environ
Et pas possible de rooter vu que le fastboot est intouchable à cause de la politique de «saycuritay» de Huawei. Les bâtards refusent de filer le code de déblocage du fastboot depuis 2018.
Tu as acheté un appareil mais tu peux pas en faire ce que tu veux.
Pire, ils le bloatent à mort comme ça, quand tu peux plus l'utiliser parce qu'il est plein ben t'en achètes un autre.
Sauf que les couillons de chez huawei devraient se rappeler que dans ce cas, on N'ACHÈTE PLUS JAMAIS HUAWEI... Demandez à wiko
Un excellent article, très simple d'accès. Résumé pour mémoire mais je vous conseille d'aller lire le tout tant c'est clair et bien documenté:
1.Tout typer
... pour pouvoir compter sur le type des données
Les paramètres des fonctions function moncul(string $str) pour éviter de vérifier les paramètres puisqu'un type erroné provoquera une erreur
Les valeurs de retour des fonctions function moncul(string $str): int car en cas de retour d'un autre type, il y aura erreur. (pour les fonctions ne retournant rien, :void )
Les propriétés de classe : private int $mon_cul; pour qu'une erreur se déclenche en cas d'initialisation d'un type erroné.
2.Protéger ses classes par défaut
ajouter «final» à la déclaration de classe final class monCul(){ pour éviter tout héritage, même fortuit.
laisser ses propriétés en private par défaut
laisser ses méthodes en private par défaut jusqu'à ce qu'on ait besoin de les appeler de l'extérieur
3.Utiliser les comparaisons strictes
... pour éviter les confusions false/0 etc
4.Se passer des «if»
En utilisant l'opérateur ternaire condition ? valeur retournée si true : valeur retournée si false;
Pourquoi ? Parce que c'est plus court mais aussi parce qu'on peut placer la condition directement dans une assignation ou à la place d'un paramètre: $count += ($value === CONTROL_VALUE) ? 1 : 0;
Par contre, je trouve qu'on y perd BEAUCOUP en lisibilité et en organisation.
$intersection = array_intersect(...$bigArray); au lieu de $intersection = array_intersect($bigArray[0], $bigArray[1], $bigArray[2]); // Etc.
8. Toujours ajouter un compteur de boucle pour sortir des while
Ça m'a rappelé un épisode de BigBang Theory dans lequel Sheldon est prisonnier d'une boucle dans son algorithme HowToMakeANewFriend... (c'est Howard qui l'en sort en implémentant un compteur comme condition de sortie).
$block++;
if ($block > 1000) {
break;
}
9.Utiliser les fonctions liées aux tableaux
Je plussoie vigoureusement ce point particulier
Avant de se lancer dans un traitement de tableau en créant une fonction ou une méthode exprès, relisez la doc de toutes les fonctions commençant par Array_ ... histoire de ne pas réinventer la roue.
10.Manipuler les tableaux avec les callbacks et les Collections
Pour manipuler un tableau, penser à utiliser array_map plutôt que foreach si c'est possible:
utilisation simple array_map('trim',$tableau)
fonction anonyme ```array_map(function($k){ code de traitement },$tableau);
avec une méthode array_map(array($instance, 'methode'), $tableau)