Skip to content

Instantly share code, notes, and snippets.

@maximevalette
maximevalette / OVH_Keystone_v3.md
Last active June 28, 2022 11:56
Sample PHP script to use Keystone v3 with OVH credentials (username + password)

OVH + PHP + Keystone v3

Install PHP OpenCloud

composer require php-opencloud/openstack ^3.0

Sample token authentication with OVH credentials

<?php
@maximevalette
maximevalette / episode-details.html
Last active August 18, 2017 12:14
Bouton JS BetaSeries
<script src="https://www.betaseries.com/js/button.js" async></script>
<p><a href="https://www.betaseries.com" class="betaseries-button"
data-type="episode-details"
data-show="Desperate Housewives"
data-season="1"
data-episode="6"
>Voir la fiche épisode sur BetaSeries</a></p>
@maximevalette
maximevalette / README.md
Last active August 29, 2015 14:03 — forked from bsag/README.md

Instructions for setting up Octopress to ping FeedPress

FeedPress checks at regular intervals (about once an hour, 20 minutes for Premium users) to check whether your Octopress Atom or RSS feed has been updated. However, if you'd like to notify FeedPress as soon as you publish, and you have a Premium FeedPress account, you can set up Octopress to ping FeedPress when you deploy.

Requirements

  1. You use Octopress
  2. You use FeedPress to manage your Octopress Atom or RSS feed and have a Premium FeedPress account

Setting up

@maximevalette
maximevalette / feedpress.php
Created December 30, 2013 15:43
Extract FeedPress subscribers count from JSON file
<?php
function get_feedpress_subscribers($url) {
$json_string =file_get_contents($url);
$json = json_decode($json_string, true);
return ( intval( $json['graph']['datasequences'][0]['datapoints'][0]['value'] ) + intval( $json['graph']['datasequences'][1]['datapoints'][0]['value'] ) );
}
@maximevalette
maximevalette / json_merge.php
Created May 18, 2013 12:28
Merges JSON files
<?php
$source = json_decode(file_get_contents('french.json'), true);
$dest = json_decode(file_get_contents('auto_french.json'), true);
function mergeArray($source, $dest) {
foreach ($dest as $k => $v) {
if (!array_key_exists($k, $source)) {
@maximevalette
maximevalette / feedburner.js
Created April 30, 2013 12:45
Consider upgrading to Internet Explorer 6
if (!(document.getElementById)) {
alert("Your browser cannot view this feed using FeedBurner's BrowserFriendly feature.\n\nConsider upgrading to Internet Explorer 6, Firefox, or Mozilla to view this feed and options for subscribing to its content in a news reader.");
}
@maximevalette
maximevalette / .htaccess
Last active December 15, 2015 07:18
Redirection with query string
RewriteCond %{QUERY_STRING} format=rss
RewriteRule ^post /rss [R=301,L]
@maximevalette
maximevalette / vsncf.md
Created February 1, 2013 11:05
Bugs de Voyages-SNCF

Voici mes erreurs rencontrées en 10 minutes d'utilisation du site Voyages-SNCF.

Formulaire de récupération de mot de passe

Mon mot de passe ne fonctionnait pas, pour la raison que je vais évoquer après. J'utilise donc le formulaire de récupération de mot de passe, je reçois un lien qui m'identifie automatiquement dans mon compte et qui me place sur le formulaire de changement de mot de passe.

Je tape un mot de passe, tout a l'air d'aller, je valide. Erreur : Le mot de passe doit faire au moins 8 caractères. Il me remet sur le formulaire mais cette fois mon mot de passe actuel n'est plus prérempli, je mets quand même un nouveau mot de passe de plus de 8 caractères, le formulaire se valide et je pense que c'est bon.

Sauf qu'en fait le formulaire ne pouvait marcher qu'une seule fois et mon mot de passe n'avait pas été changé, malgré l'absence de message d'erreur. Donc j'ai dû refaire ce formulaire par la suite car évidemment je ne me souvenais toujours pas du premier mot de passe.

@maximevalette
maximevalette / replace.sh
Created October 24, 2012 20:03
Replace a string in multiple files
find . -type f -name *.php | xargs sed -i.bak 's/foo/bar/g'
@maximevalette
maximevalette / restore.sh
Created October 16, 2012 08:10
Restore root privileges
/etc/init.d/mysql stop
mysqld --skip-grant-tables &
mysql -vv < restore_root_privileges.sql
/etc/init.d/mysql restart
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
mysql> quit;