PHP: Enlever les caractères insécables

Il y a quelques temps, j’écrivais un article expliquant et donnant une solution permettant de limiter les erreurs d’encodage. Dans cette même optique, je rédige ce post pour compléter ma première solution. Je rappelle ma problématique. Lors de traitement de donnée en masse depuis des fichiers qui peuvent être de plusieurs types (CSV, XLS, …), on rencontre régulièrement des problèmes d’encodages et des problèmes avec des caractères insécables.

Lire plus

TypeMatrix 2030 : Bépo

Voilà pour moi le moment d’écrire un article sur ma dernière acquisition : un TypeMatrix 2030 type Bépo.

Situons un peu le contexte avant d’émettre tout commentaire !

  • Je suis développeur, je passe donc au minimum 7 heures sur un clavier
  • Je souffre régulièrement de douleurs dans les indexes
  • Je suis près à prendre un peu de temps pour apprendre une nouvelle disposition
  • Je suis près à investir environ 100€ pour avoir un meilleur confort de travail
  • J’ai deux volontés :
    • Apprendre à me servir de l’intégralité de mes doigts
    • Ne pas mourir dans d’atroces souffrances !

Conclusion :

Points forts Points faibles
Il y a une véritable logique, mes doigts ne font que des mouvements limités. En tant que développeur, il y a un élément extrêmement perturbant. Il s’agit des chevrons que j’utilise à tout va. Je les trouve mal situé et elles nécessitent une combinaison. En contrepartie, j’ai désormais le «underscore» (_) sous mes pouces (Alt Gr + Espace). Un régale ! -
L’apprentissage se fait très rapidement. Ce système étant très peu utiliser, sous Windows (il fallait bien que je troll un peu :p) j’ai dû spécifier à plusieurs reprises mon type de clavier car il a une fâcheuse tendance à à se remettre en AZERTY. Après lui avoir spécifiié pour chaque application, on est tranquille.
L’alignement des touches par le TypeMatrix est un réel confort. -
De nombreux raccourcies (fn + …) ont été conservé, ce qui permet de rester sur son clavier. -

Aujourd’hui, je ne maîtrise pas encore intégralement ce nouveau système mais je ne regrette en rien de l’avoir essayé. Avec encore quelques semaines, je devrais intégralement retrouver ma vitesse de frappe et par la suite aller plus vite tout en économisant mes doigts. C’est bien évidemment comme de nombreuses personnes que je vous recommande de passer le cap !

Liens utiles

Je vous met les liens permettant l’installation des «drivers» pour le Bépo.

  • Linux : Sur Debian, aucun pilote n’est nécessaire et que tous les changements s’effectuent dans le panneau de configuration. Ubuntu et cie font de même.
  • Mac OS
  • Windows : Pour Windows 8, intaller le fichier «bepo.exe» uniquement et redémarrez.

Cet article a été écrit avec un Bépo ! N’hésitez pas à réagir, linker et commenter !

MappingException: Class « Y » sub class of « X » is not a valid entity or mapped super class.

Voilà pour moi l’occasion de poster une petite solution concernant un problème que j’ai récemment rencontrer.

Héritable à partir d’une classe mappé

Dans mon cas, je disposais d’une première classe déjà mappée dans mon application Symfony2. Pour de multiples raisons, dans l’application que je développe, j’ai plusieurs contraintes qui m’obligent à utiliser cette classe de deux manières différentes.

Dans mon premier cas, j’utilise cette classe normalement alors que dans un second cas, je dois mettre en place une autre classe reprenant l’intégralité des données de ma première classe pour créer une entité permettant de s’authentifier dans mon application.

Lire plus

GitLab Upgrade Error : Problem with the SSL CA cert

Dernièrement, j’ai souhaité mettre à jour GitLab grâce au script Ruby Upgrade.rb mais j’ai rencontré un erreur en lançant le script avec l’utilisateur git.

Erreur détectée - GitLab Upgrade Error

1
2
3
4
5
6
7
8
9
10
$ cd /home/git/gitlab
$ ruby script/upgrade.rb
GitLab 6 upgrade tool
Your version is 6.6.5
error: Problem with the SSL CA cert (path? access rights?) while accessing https://github.com/gitlabhq/gitlabhq.git/info/refs
fatal: HTTP request failed
/home/git/gitlab/lib/gitlab/upgrader.rb:47:in `latest_version_raw': undefined method `match' for nil:NilClass (NoMethodError)
    from /home/git/gitlab/lib/gitlab/upgrader.rb:37:in `latest_version'
    from /home/git/gitlab/lib/gitlab/upgrader.rb:8:in `execute'
    from script/upgrade.rb:3:in `<main>'

Lire plus

PHP: Problème d’encodage

Comment résoudre les erreurs d'encodage en PHP

Il n’est pas rare de rencontrer d’erreur liés à l’encodage. L’encodage, une véritable plait que nous essayons tous de vaincre en harmonisant le type de nos fichier en UTF-8. Si aujourd’hui résoudre les problèmes d’encodage peut se faire avec un ou deux cliques, ce problème peut parfois être plus récalcitrant.

Un encodage pour les dominés tous !

J’ai récemment été confronté (et ce pour une nouvelle fois… ) à un problème d’encodage. Je devais développer un système permettant d’extraire des données provenant d’un .xls ou .xlsx en PHP. Bien évidemment Microsoft préfère utiliser son système de codage plutôt que l’UTF-8.
Je vous propose cet appel qui permettra de retourner n’importe quelle chaîne, encodée dans n’importe quel ISO, vers le format de votre choix, en l’occurrence ici, l’UTF-8. L’appel détecte l’encodage , et le convertit en fonction.

Lire plus

PHP Bonne Pratique : Typer ses paramètres

Il y a les pratiques qu’on apprend à l’école, celle qu’on prend par feignantise, celle qu’on adopte par habitude, que ce soit à force de le voir ou de faire des copier-coller systématiques. Avec le temps et l’expérience, force est de constater qu’on cherche des méthodologies et des syntaxes toujours plus clair. Malgré les tendances qui se distingues autour de chaque langage, on est souvent capable de déterminer en lisant du code, qui de notre équipe possède une telle syntaxe En C#, les puristes prendront l’habitude de faire commencer toutes leurs interfaces par un « I » par exemple.

PHP, un syntaxe libre… trop libre ?

J’ai moi-même plusieurs habitudes qui me permettent de construire mon code d’une manière régulière. Cela dans le but de facilement m’y retrouver, de rapidement travailler, mais également faciliter le débogage et la lecture de mon code pour mes collègues.

Typer ses paramètres, pour quoi faire ? Et pourquoi est-ce une bonne pratique ?

En PHP, la syntaxe est très libre. J’entends très libre par le fait que le langage n’est pas très verbeux. Sans être un partisan des langages comme le Java par exemple, je pense que typer ses paramètres ne peut que nous aider dans notre travail.

Pourquoi perdre du temps à écrire le type de la donnée ?
En effet, mais comparons immédiatement les avantages et les inconvénients.

Lire plus

Symfony2 Bonne Pratique : Déporter la session du cache

Aujourd’hui je vous propose une petite astuce qui pourrait vous simplifier la vie. Sortir la session Symfony2 du cache.

La session

Qu’est-ce que la session ? La session est le fichier (ou les fichiers…) qui permet de gérer les connexions en cours. Si vous supprimez ce fichier, les personnes actuellement connectées devraient être redirigées vers votre firewall.

Quel intérêt ?

Vous ne voyez pas encore pourquoi faire mais je vais éclairer votre esprit tout de suite. Un cas simple : admettons que vous travaillez un serveur de développement, vous vous connectez pour effectuer des tests. Dans le pire des cas, vous devez tester du code directement en «dev» et vous videz le cache à répétition (Non ! Non ! Non ! Tester en dev est sale, et cela n’arrive jamais… !). Dans le même temps des bêta testeurs se connectent et découvrent votre plateforme si stable. Malheureusement pour eux toutes les minutes vous videz le cache et les déconnectés. Alors pour éviter de les déranger et de recevoir des mails intempestives, déporter la session du cache !

Comment faire ?

Cela est très simple car Sensio qui est en charge du développement de Symfony a prévu le coup !

Lire plus