VLC – Synology – Streaming vidéo réseau sacadé

La lecture de vidéo avec VLC au travers du réseau est souvent sacadé.

Afin d’améliorer cela, il suffit de changer les paramètres de cache de VLC Player.

Voici mes settings.

Ils fonctionnent parfaitement pour lire mes vidéos depuis mon Synology via le Wifi et cela même si ma connection Wifi n’est pas terrible.

VLC - Cache settings

psycopg2 unknown argument: ‘-mno-fused-madd’ on OS X

En essayant d’installer récemment psycopg2 sous OSX Maverick j’ai eu l’erreur suivante :

pip install psycopg2
….
lang: error: unknown argument: ‘-mno-fused-madd’ [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

error: command ‘cc’ failed with exit status 1
….

Je n’ai pas encore eu le temps d’approfondir le problème mais pour passer outre cette erreur il est possible de forcer cc d’ignorer les unused command line argument.

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
pip install psycopg2

EDIT :

Le culprit est donc XCode 5.1
https://jira.mongodb.org/browse/PYTHON-654

File ne détecte pas le bon mime-type pour des fichiers PDF

Le mime-type de certains fichiers PDF est mal détécté par la commande file ou tout code utilisant la librarie libmagic.

C’est le cas lorsque le fichier PDF contient un espace avant la chaîne %PDF-1.4 ou %PDF-1.3 …

La solution est de modifier le fichier /etc/magic et de rajouter ceci


1 string %PDF- PDF Document
!:mime application/pdf

Le premier chiffre correspond à l'offset dans mon cas les fichiers PDF générant ce problème n'avait qu'un offset de 1bytes.
"string" est le type de la chaîne à trouvé
Le mimetype doit être défini dans la ligne suivante le match avec "!:mime" suivit du mimetype

http://127.0.0.1:8083/

Installer psycopg2

Comment installer psycopg2 sous ubuntu ?


sudo apt-get install libpq5-dev
sudo apt-get install python-dev
easy_install psycopg2

Undo git reset – -hard

Pour annuler un git reset --hard , il suffit d’utiliser la commande git reflog

$ git reflog
1012a45 HEAD@{1}: HEAD~2: updating HEAD <--- Par erreur 9a2246b HEAD@{2}: commit: Commit 2 33db08a HEAD@{3}: commit: Commit 1 $ git reset --hard 33db08a

This file is too big. Your php.ini upload_max_filesize is 50M.

Lors d’un upload de fichier, WordPress peut emettre ce message d’erreur indiquant que le fichier est trop grand même si la taille est inférieure à la limite qu’il indique.

En réalité, le problème n’est pas seulement la clé upload_max_filesize. Il faut en vérifier d’autres.

Pour résoudre le problème, il faut chercher et éditer votre fichier php.ini en modifiant les valeurs des clés suivantes :

  • upload_max_filesize = 50M
  • post_max_size = 50M
  • memory_limit = 50M

memory_limit peut être overridé dans le fichier de configuration de wordpress wp-config.php

  • define(WP_MEMORY_LIMIT, 50M);

Trier des strings contenant des nombres en python

Voici un code que j’ai du écrire pour un de mes projets. Il permet de trier des strings contenant des chiffres de manière naturelle et non alphabétique.

# Natural sorting utils
NUMBER_RE = re.compile(r'(\d+)')

def null_function(s):
  return s

def natural_sort_key(key=null_function):
  def wrap(s):
    return [word.isdigit() and int(word) or word for word in NUMBER_RE.split(key(s))]
  return wrap

def natural_sort(array, key=None):
  return sorted(array, key=natural_sort_key(key))

Exemples :


simple_values = ["1ab", "12b", "3d", "12c"]
sorted_simple_values = natural_sort(simple_values)

complex_values = [{'code': '1ab', ...}, {'code': '12', ...} ]
sorted_complex_values = natural_sort(complex_values, key=lambda c: c['code'])

Export CSV d’une requête postgresql

Afin d’exporter une requête SQL à partir d’une base de données Postgresql, il suffit d’utiliser la commande COPY.

Dans un terminal psql :

Copy (select id, firstname, name,  email from users) To '/tmp/export_users.csv' With CSV;

Quelques points perso pour une meilleure gestion de projets

Cela fait un bon moment que je participe ou gère divers projets.

Je résume donc ici quelques points qui me semble importants à ne pas négliger les prochaines fois.

Attention, ces notes sont purement le fruit d’observations personnelles.

  • Ne jamais négliger le travail d’estimation du temps qu’il faut pour la réalisation
  • Mieux vaux estimer en trop que pas assez, cela ne peut qu’être bénéfique aux deux parties
  • Le client a toujours besoin d’un temps d’accompagnement pour prise en main de la solution que l’on délivre. Dans le cadre du développement agile cela peut se faire à chaque itération. Cela permet plusieurs choses :
    • Créer un lien de confiance et de transparence entre les deux parties
    • Comprendre au mieux les besoins du client et rectifier le tir en cours de route si nécessaire
  • Toujours commencer par les tâches les plus compliquées et intercaler des tâches plus faciles afin d’éviter la saturation et la perte de temps sur un même problème
  • A défaut d’un cahier des charges bien remplie, il est nécessaire d’avoir un document définissant les conditions de clôture du projet
  • Un projet peut être découpé en plusieurs types de tâches qui s’effectuent durant toute la réalisation du projet :
    • Réunions
    • Analyse
    • Développement
    • Estimation du temps de travail
    • Accompagnement du client
    • Déploiement
    • Infrastructure
      • Installation et configuration
      • Backups
      • Redondance
      • Réseau
    • Tests et simulations

Convertir base de donnée Mysql en latin1 vers utf8 sous linux

Voici comment convertir une base de donnée encodée en latin1 en une DB utf8 sous mysql.
Il faut tout d’abord dumpé la DB en latin1 avec soit phpmyadmin soit mysqldump.

Créer une base de donnée utf8

mysql -u USER -pPASSWORD TARGET_DB_NAME default character set utf8;

Remplacer tous les latin1 en utf8 dans le fichier de dump. Exemple sous vim

:%s/latin1/'utf8'/g

Restorer le dump sans oublier de définir l’encoding du client.

mysql -u USER -pPASSWORD --default-character-set utf8 TARGET_DB_NAME < DUMP_FILE_NAME