Sélectionner une page
#2 Apprendre

#2 Apprendre

Cela fait deux jours qu’en parallèle de mes activités au bureau, je suis une formation vidéo sur un framework PHP. En gros, entre deux interventions serveur et une réunion, j’enchaine du code et concepts genre Model Vue Controler… Bref, pas facile de se maintenir à niveau ou bien simplement continuer à découvrir de nouveaux horizon.

Je ne m’en suis pas trop mal sorti car j’ai réussi à déboguer le code du prof qui n’était pas valide avec les dernières évolutions de LARAVEL… comme quoi même ce court payant en ligne doit se mettre à niveau 😀

Du coup je me demandais comment vous faites pour actualiser vos connaissances pro ?

Personnellement, je me suis rendu compte qu’il me fallait désapprendre mes méthodes d’apprentissages découvertes par moi-même ou bien inculquées par l’école. Je ne peux que très difficilement me plonger dans au fin fond des nuances et des subtilités qu’offre ce formidable outils (le framework LARAVEL).

Ma recette : Je considère qu’il me faut pouvoir faire « ça » alors j’apprends le minimum pour pouvoir faire « ça » et le jours où j’aurai un besoin pro très concret, je n’aurai qu’à le mettre en oeuvre voir l’adapter aux besoins / contrainte du projet.

Et vous ? comment faites vous ?

LARAVEL erreur de migration SQLSTATE[42000]

LARAVEL erreur de migration SQLSTATE[42000]

Hello,

si lors de la création de votre nouveau projet Laravel, et notamment lorsque vous souhaitez créer les tables de votre base de données via artisan en ligne de commande, vous rencontrez le message suivant :

In Connection.php line 458:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

C’est que vous êtes probablement sous MariaDB ou bien sous MySQL version inférieur à 5.7.7

Depuis la version 5.4 de Lavarel, le charset par défaut est utf8mb4 qui permet de stocker les emojis 💩

Pour résoudre ce soucis en conservant votre configuration serveur, la solution est toute simple :

Dans votre projet Lavarel, rendez-vous dans le fichier app/Providers/AppServiceProvider.php et ajoutez les deux lignes suivantes :

use Illuminate\Support\Facades\Schema;
au niveau de l’en-tête du fichier comme suit :
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
et
Schema::defaultStringLength(191);
dans la fonction public « boot » pour définir une longueur de caractère par défaut, comme suit :
public function boot()
{
//
Schema::defaultStringLength(191);
}
Et voilà ça marche !
migration artisan en ligne de commande
BootStrap : Conserver les ratios des vidéos pour tous les écrans

BootStrap : Conserver les ratios des vidéos pour tous les écrans

Dans BootStrap, il arrive que la vidéo qu’on insère s’affiche parfaitement sur mobile et qu’elle apparaisse trop petite sur un ordinateur (ou l’inverse). Heureusement il existe une astuce toute simple pour résoudre ce problème proportion.

En effet, les templates responsive permettent d’adapter un site à l’écran du visiteur en utilisant des formes fluides. Quand on ajoute une iframe, cette dernière a en général une taille fixe, du coup, quand on change d’écran, la taille de l’iframe ne bouge pas.

On se retrouve ainsi avec une vidéo qui selon les cas, déborde de l’écran du mobile ou est trop petite sur un écran d’ordinateur.

Pour résoudre ce problème, rien de plus simple.

Avec BootStrap, il suffit d’insérer son code iframe à l’intérieur d’un div avec une class spécifique qui se chargera de redimensionner l’iframe à l’écran en conservant son ratio.

Ainsi au lieu d’utiliser le code iframe tel quel, fourni par Youtube :

On utilisera le code suivant

Un dernier point : si vous souhaite adopter un aspect 4:3 au lieu de 16:9, remplacez 16by9 par 4by3 comme suit :
embed-responsive-16by9 par embed-responsive-4by3

J’espère que ça vous aidera, n’hésitez pas à partager !

Résoudre « OSError: libespeak.so.1: cannot open shared object file: No such file or directory »

Résoudre « OSError: libespeak.so.1: cannot open shared object file: No such file or directory »

Que faire quand on programme avec Pyttsx et qu’on a un problème avec libespeak.so?

En travaillant sur un petit projet qui me permettrait de faire parler mon Rasberry Pi 3, je me suis penché ce que me permettait de faire python en la matière.

C’est grâce à la bibliothèque Pyttsx, que vous pouvez faire parler votre petit ordinateur.

Alors voici le code source du petit programme en question (à exécuter avec Python2 et non Python3) que j’ai récupéré depuis le net et modifié :

import pyttsx
engine = pyttsx.init()
engine.setProperty(‘rate’, 70)

voices = engine.getProperty(‘voices’)
for voice in voices:
print (« Using voice: », repr(voice))
engine.setProperty(‘voice’, voice.id)
engine.say(« Hey! Do you want to make music with you phone ? »)
engine.say(« so download Shyne in your iphone at GoShyne.com »)
engine.runAndWait()

Quant je lançais le code avec Python3 rien ne fonctionnait, normal: pyttsx n’a pas été porté sur la version 3 de python.

Donc en lançant le script avec Python2, j’ai eu le message d’erreur suivant :

OSError: libespeak.so.1: cannot open shared object file: No such file or directory

Le problème n’était pas résolu même en installant pyttsx avec pip, c’est donc après quelques recherches que j’ai pu trouver la solution à mon problème.

Pour résoudre le problème de bibliothèque partagée quand on souhaite utiliser pyttsx il suffit d’exécuter la commande suivante :

sudo apt-get install espeak

Donc voilà le fin mot du problème, pour faire de la synthèse vocale avec Python, il faut pyttsx mais en plus il vous faudra installer Espeak sur votre système.

J’espère que ça vous aidera, n’hésitez pas à partager !