Skip to content

Instantly share code, notes, and snippets.

@jbouzekri
jbouzekri / Interview back-end developer
Last active November 13, 2019 07:56 — forked from jpchateau/Interview back-end developer
Entretien développeur back : PHP / Symfony / MySQL
Cible : Développeur PHP / Symfony / MySQL
Niveau : Senior
Ce document propose des questions classiques, sans piège, à poser lorsque vous désirez valider un candidat pour un poste de développeur back.
J'utilise personnellement cette trame de questions, libre à vous de vous en inspirer, d'ajouter vos propres questions, et de déterminer lesquelles sont éliminatoires à vos yeux.
Veille technologique
Quelle est la version actuelle de PHP ?
> http://php.net/supported-versions.php
@jbouzekri
jbouzekri / Vagrantfile
Created August 24, 2018 19:40
Vagrant file for ubuntu bionic 64 in gui mode
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |v|
v.gui = true
v.memory = 2048
end
# In case you need an IP to access the VM from another software :
# config.vm.network "private_network", ip: "192.168.56.101"
@jbouzekri
jbouzekri / fix-azure-disk-double-mount.sh
Last active June 14, 2018 14:08
detach azure disks used in kubernetes pods errored because of disk related issues
#!/bin/bash
if [ "$#" -ne 4 ]; then
echo "Illegal number of parameters"
echo ""
echo "Usage: ./fix-azure-disk-double-mount.sh <azure subscription id> <azure resource_group> <kube context> <kube namespace>"
echo ""
echo "Find all pods in error, checks if it is related to an Azure disk issue. Then detach from azure VM these disks. It should trigger a resync automatically on kube side. Run the scripts multiple times if the first time is not the one."
exit 1
fi
@jbouzekri
jbouzekri / server.py
Created December 20, 2016 15:28
python tcp echo server
import sys
import socket
import threading
import SocketServer
from socket import error as SocketError
import errno
class SingleTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
while True:
Verifying that +jbouzekri is my blockchain ID. https://onename.com/jbouzekri
@jbouzekri
jbouzekri / gist:2573f3228ba613bfab2b
Created October 20, 2015 13:50
chrome JS snippet to export compatible mobile in Google dev console
var allLabel = document.querySelectorAll('div[role=menu] ul li a span');
for (keycomp in allLabel) {
if (typeof allLabel[keycomp] == 'object') {
var label = allLabel[keycomp].textContent;
if (label.startsWith('Tous les appareils')) {
var allNumber = label.substring(label.lastIndexOf("(")+1,label.lastIndexOf(")"));
} else if (label.startsWith('Compatible')) {
var compNumber = label.substring(label.lastIndexOf("(")+1,label.lastIndexOf(")"));
}
}
@jbouzekri
jbouzekri / FeatureContext.php
Created February 27, 2015 18:48
A nice wait for js calls ending function in behat
<?php
/**
* @author Gildas Quéméner <[email protected]>
* @copyright 2013 Akeneo SAS (http://www.akeneo.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
use Behat\Behat\Exception\BehaviorException;
use Behat\Mink\Driver\Selenium2Driver;
@jbouzekri
jbouzekri / proxy.js
Created August 14, 2014 20:12
Test proxy request from a browser to a tcp server accross node js. Browser -> websocket -> tcp server. Its working
/**
A nodejs websocket proxy which forward a request from a websocket to a tcp server.
*/
var io = require('socket.io').listen(8080);
var net = require('net');
io.sockets.on('connection', function (socket) {
var client = new net.Socket();
@jbouzekri
jbouzekri / git-create-repo
Created July 22, 2014 21:20
Create a bare repository in your git server
#!/bin/bash
: '
Place this script in a folder of your PATH and add execute rights to it
You can then use git create-repo REPO_NAME (without .git at the end) to init a bare repo in your current folder
'
set -e
if [ $# -ne 1 ]
then
.highlight .hll { background-color: #49483e }
.highlight { background: #272822; color: #f8f8f2 }
.highlight pre { background: transparent; color: #f8f8f2 }
.highlight .c { color: #75715e } /* Comment */
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
.highlight .k { color: #66d9ef } /* Keyword */
.highlight .l { color: #ae81ff } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #f92672 } /* Operator */
.highlight .p { color: #f8f8f2 } /* Punctuation */