Learn python


Learn python how start

> with some simple tests & learn : [https://github.com/gregmalcolm/python_koans  
> ](https://github.com/gregmalcolm/python_koans)
>
> Python Koans is an interactive tutorial for learning the Python programming language by making tests pass.

Only try, test, understand…

Generate excel in python:

Pivot tables: 

http://pbpython.com/pandas-pivot-table-explained.html
http://pbpython.com/pandas-pivot-report.html 
Sample code: http://stackoverflow-fr.blogspot.fr/2014/05/creation-de-tableau-croise-dynamique.html

Utilisation de git

Débuter avec git

L’environnement utiliser est de type UNIX (Linux) et doit fonctionner sur Mac OS X.
Toutes les commandes sont présentée pour une Debian (9.1/stretch)

Installation de git

depuis le shell : sudo apt-get update; sudo apt-get install git
Je ne donne pas plus d’informations a ce point.

notions de base

Commandes utiles

Compter le nombre de commits par utilisateur
git shortlog -sne


Compter le nombre de ligne par utilisateur pour un type de fichier
git ls-tree -r HEAD|cut -f 2|grep -E ‘\.(java|xml)$’ | xargs -n1 git blame –line porcelain|grep « author « |sort|uniq -c|sort -nr
    
A changer java|xml par ce qui correspond et ‘Author’ par le nom d’utilisateur des commits

Récupérer un fichier dans la dernière version commitée sans vos potentiel changements.
git checkout <myfile>
    
Avant toute modification il faut mettre a jour le repository:
git pull --rebase

   
Travailler sur des fichiers puis les envoyer sur le serveur git:
git add <file>
git commit | git commit -m "<Commentaire>"
git review | git push


Si c’est une correction ou un changement sur un fichier deja commit:
git add <file>
git commit --amend


A ce point verifier le commit id mais normalement il suffit de le sauvegarder
Si besoin:
git rebase master | git rebase -i master
git review

Remove a git commit which has not pushed
If you have NOT pushed your changes to remote:
git reset HEAD~1

Else you have pushed your changes to remote:
git revert HEAD
or
git reset --hard origin/master

Documentation et guide

Pas a pas en partant de 0 par exercices de 3 ou 4 commandes (EN):
http://gitimmersion.com/index.html

Vidéos et Tutos a tester (FR):
https://www.grafikart.fr/formations/git

Guide complet sur git (FR):
https://git-scm.com/book/fr/v1/D%C3%A9marrage-rapide

Git : Apprendre à utiliser le gestionnaire de versions
Git: Apprendre à utiliser le gestionnaire de versions

VIM as IDE

* Installation of vim

Use vundle for the package of vim: https://github.com/VundleVim/Vundle.vim
Don’t forget to add the promptline plugin: https://github.com/edkolev/promptline.vim
Add in the .vimrc this section:
    Plugin Plugin ‘edkolev/promptline.vim’

* Configuration
Base dot-net configuration from: https://github.com/amacgregor/dot-files
Idea of what it is: https://coderoncode.com/tools/2017/04/16/vim-the-perfect-ide.html

For Python configuration and tools:
https://www.fullstackpython.com/vim.html

Add git status on vim:

Fancy promptline with git status details

* Issue with on Mac OS X

There are two ctags known as GNU ctags and exuberant-ctags, what the tagbar need to use is exuberant-ctags. exuberant-ctags need to be installed by yourself.

What I do to solve this problem is
    brew install ctags-exuberant
and find it’s installed in /usr/local/Cellar/ctags/5.8_1
then I add a line in .vimrc:
    let g:Tlist_Ctags_Cmd=’/usr/local/Cellar/ctags/5.8_1/bin/ctags’

URLs and links to read later….

Liens et site de documentations / news a suivre

Technical
* Napalm:
http://blog.ipspace.net/2015/06/napalm-integrating-ansible-with-network.html

* Python/Napalm for network:
https://pynet.twb-tech.com/blog/automation/napalm-ios.html

* Tools & Automation
https://www.mirantis.com/blog/virtlet-vms-containers-opencontrail-network-kubernetes-nfv/

* Facebook tools: FBNet-Command-Runner: A thrift service to run commands on heterogeneous Network devices with configurable parameters: 

https://github.com/facebookincubator/FCR#device-vendors 
The presentation: https://code.facebook.com/posts/117615485632126/fcr-open-source-command-runner-for-network-devices-/


* DDOS with memcached:
https://www.wired.com/story/github-ddos-memcached/amp?__twitter_impression=true

* AI with Google:
https://www.lesnumeriques.com/vie-du-net/google-lance-plateforme-pour-enseigner-machine-learning-ia-n72051.html

https://www.albatorssx.com/index.php?menu=multimedia&page=objetderive

* Tools for dev
[vim editor – fonctions avancees](https://www.plpeeters.com/blog/fr/post/24-vim-fonctions-avancees)
[From gitlab an Infrastructur handbook](https://about.gitlab.com/handbook/infrastructure/)

* IoT / Domotic
New soft for domotic: (demo) http://iobroker.click/ + doc http://www.iobroker.net/docu/?lang=en
OpenHardware devices and howtos: https://www.mysensors.org/


# Social
* Working & related stuff
https://korben.info/teletravail.html  
https://korben.info/n-guide-materiel-teletravail.html

* Networking & Social net
[MP #198 : Réussir sa photo de profil pour les réseaux sociaux et sites de rencontres](https://phototrend.fr/2017/04/mercredi-pratique-reussir-photo-profil-enflammer-applis-sites-rencontres/)

[Mes petites astuces Instagram](https://santadenn.com/petites-astuces-instagram/)

https://www.grafikart.fr/tutoriels?page=2

https://yeuxdelibad.net/Blog/

https://solar-management.fr/nos-articles/

# Photos
* Photos

1. https://www.lebonbon.fr/nuit/
2. https://mariegphotography.exposure.co/
3. http://marielaganeva.com/new-gallery/gvltla0hobfstoab6fdmr714flkwby

* Videos

Paris in Video:
<iframe allowfullscreen= » » frameborder= »0″ height= »295″ mozallowfullscreen= » » src= »https://player.vimeo.com/video/226419760″ title= »Paris. » webkitallowfullscreen= » » width= »525″></iframe>

Google Authenticator VS Authy:
[Authy vs. Google Authenticator](https://authy.com/blog/authy-vs-google-authenticator/)
<iframe allowfullscreen= » » frameborder= »0″ height= »295″ mozallowfullscreen= » » src= »https://authy.com/blog/authy-vs-google-authenticator/embed/#?secret=cLlSVT6Zen » title= »Authy vs. Google Authenticator » webkitallowfullscreen= » » width= »525″></iframe>


# Not checked
* Technical
Dev/Net visialisation tools in python for BGP: https://basimaly.wordpress.com/2017/07/03/bgp-visualization-using-python/
dotfiles management: http://sametmax.com/regrouper-ses-fichiers-de-settings-avec-stow/

* Blogs
http://www.brendangregg.com/overview.html

* Photos

* dev
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django
Check code in git searching for password and other bad stuff: https://github.com/zricethezav/gitleaks
Liste of django apps: https://gitlab.com/rosarior/awesome-django

* Docker / VM / Sec
VPN L2TP/IPSEC:
http://harrylee.me/2016/06/25/Docker-Create-your-own-IPsec-L2TP-VPN-container/
https://wiki.strongswan.org/projects/strongswan/wiki/InstallationDocumentation
https://vincent.bernat.im/en/blog/2017-route-based-vpn

Password / vault managment: https://www.vaultproject.io/intro/getting-started/first-secret.html

* Other
https://mitmproxy.org/
https://www.justwatch.com/gopass/docs/  
https://github.com/justwatchcom/gopass
https://deadc0de.re/articles/dotfiles.html
https://docs.docker.com/compose/django/
http://www.mairie15.paris.fr/actualites/balades-a-velo-rail-sur-la-petite-ceinture-351
[832 TB – ZFS on Linux – Project “Cheap and Deep”: Part 1](http://www.jonkensy.com/832-tb-zfs-on-linux-project-cheap-and-deep-part-1/)

Story of someone at criteo: https://www.criteo.com/insights/meet-andreea-dicu-criteos-global-director-people-culture-brand/?utm_source=Social&utm_medium=Twitter&utm_campaign=Blog

—————

To check:

https://www.albatorssx.com/index.php?menu=multimedia&page=objetderive

https://korben.info/teletravail.html  
https://korben.info/n-guide-materiel-teletravail.html

[MP #198 : Réussir sa photo de profil pour les réseaux sociaux et sites de rencontres](https://phototrend.fr/2017/04/mercredi-pratique-reussir-photo-profil-enflammer-applis-sites-rencontres/)

<iframe class= »wp-embedded-content » data-secret= »HjfZuDvvrv » frameborder= »0″ height= »296″ marginheight= »0″ marginwidth= »0″ sandbox= »allow-scripts » scrolling= »no » security= »restricted » src= »https://phototrend.fr/2017/04/mercredi-pratique-reussir-photo-profil-enflammer-applis-sites-rencontres/embed/#?secret=HjfZuDvvrv » style= »position: absolute; clip: rect(1px, 1px, 1px, 1px); » title= »« MP #198 : Réussir sa photo de profil pour les réseaux sociaux et sites de rencontres » — Phototrend.fr » width= »525″></iframe>

 https://www.grafikart.fr/tutoriels?page=2

> [Git : Apprendre à utiliser le gestionnaire de versions](http://borntocode.fr/git-tutoriel-et-configuration-sur-le-gestionnaire-de-versions/)

<iframe class= »wp-embedded-content » data-secret= »2n6dRGttNM » frameborder= »0″ height= »296″ marginheight= »0″ marginwidth= »0″ sandbox= »allow-scripts » scrolling= »no » security= »restricted » src= »http://borntocode.fr/git-tutoriel-et-configuration-sur-le-gestionnaire-de-versions/embed/#?secret=2n6dRGttNM » style= »position: absolute; clip: rect(1px, 1px, 1px, 1px); » title= »« Git : Apprendre à utiliser le gestionnaire de versions » — Born to Code: la programmation par l’exemple » width= »525″></iframe>

 https://www.plpeeters.com/blog/fr/post/24-vim-fonctions-avancees

 https://yeuxdelibad.net/Blog/

 https://solar-management.fr/nos-articles/

> [Mes petites astuces Instagram](https://santadenn.com/petites-astuces-instagram/)

<iframe class= »wp-embedded-content » data-secret= »yjp6qcwU0Y » frameborder= »0″ height= »296″ marginheight= »0″ marginwidth= »0″ sandbox= »allow-scripts » scrolling= »no » security= »restricted » src= »https://santadenn.com/petites-astuces-instagram/embed/#?secret=yjp6qcwU0Y » style= »position: absolute; clip: rect(1px, 1px, 1px, 1px); » title= »« Mes petites astuces Instagram » — Santadenn » width= »525″></iframe>

> [Authy vs. Google Authenticator](https://authy.com/blog/authy-vs-google-authenticator/)

<iframe class= »wp-embedded-content » data-secret= »cLlSVT6Zen » frameborder= »0″ height= »296″ marginheight= »0″ marginwidth= »0″ sandbox= »allow-scripts » scrolling= »no » security= »restricted » src= »https://authy.com/blog/authy-vs-google-authenticator/embed/#?secret=cLlSVT6Zen » style= »position: absolute; clip: rect(1px, 1px, 1px, 1px); » title= »“Authy vs. Google Authenticator” — Authy » width= »525″></iframe>

 https://mitmproxy.org/

 

 https://www.justwatch.com/gopass/docs/  
 https://github.com/justwatchcom/gopass

 

 https://deadc0de.re/articles/dotfiles.html

 https://docs.docker.com/compose/django/

 https://www.mirantis.com/blog/virtlet-vms-containers-opencontrail-network-kubernetes-nfv/

<iframe allowfullscreen= » » frameborder= »0″ height= »295″ mozallowfullscreen= » » src= »https://player.vimeo.com/video/226419760″ title= »Paris. » webkitallowfullscreen= » » width= »525″></iframe>

 

 http://www.mairie15.paris.fr/actualites/balades-a-velo-rail-sur-la-petite-ceinture-351

 https://www.lebonbon.fr/nuit/

 https://mariegphotography.exposure.co/

 http://marielaganeva.com/new-gallery/gvltla0hobfstoab6fdmr714flkwby

> [832 TB – ZFS on Linux – Project “Cheap and Deep”: Part 1](http://www.jonkensy.com/832-tb-zfs-on-linux-project-cheap-and-deep-part-1/)

<iframe class= »wp-embedded-content » data-secret= »JxOAVbIJMl » frameborder= »0″ height= »296″ marginheight= »0″ marginwidth= »0″ sandbox= »allow-scripts » scrolling= »no » security= »restricted » src= »http://www.jonkensy.com/832-tb-zfs-on-linux-project-cheap-and-deep-part-1/embed/#?secret=JxOAVbIJMl » style= »position: absolute; clip: rect(1px, 1px, 1px, 1px); » title= »“832 TB – ZFS on Linux – Project “Cheap and Deep”: Part 1” — JonKensy.com » width= »525″></iframe>

Blog & Link for new techno @Work

Introduction


I try to add section between network/devops/systems stuff
Links on official content, Tutorial, interesting blog
All are used @Criteo if not indicated
Most of this tools could be found on github

Looking Glass net
https://twitter.com/lafibreinfo/status/874883878258962432


Network – BGP on TOR – L3 design spine and leaf

Routing



prefix list automation (Not used @Criteo yet)
https://github.com/snar/bgpq3
Google new network design : http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf

http://www.pica8.com/company/press-releases/pica8-adds-bgp-support-extends-routing-to-the-data-center-edge.php
http://www.cisco.com/c/en/us/products/collateral/switches/nexus-5000-series-switches/white_paper_c11-522337.html
http://networkingnerd.net/2013/09/23/your-data-center-isnt-facebook-and-thats-just-fine/
https://tools.ietf.org/html/draft-ietf-rtgwg-bgp-routing-large-dc-00
https://code.facebook.com/posts/360346274145943/introducing-data-center-fabric-the-next-generation-facebook-data-center-network

see: https://www.youtube.com/watch?v=mLEawo6OzFM&t=142
2’22’’ to 2’54’’



-La prez au nanog sur les presentations don’t je vous ai parlé
https://www.youtube.com/watch?v=GNe_mIxQZccbon, faites pas attention au gars a 16’59’’ qui est arrivé en retard à la conf…

-Celle-là est pas mal aussi dans les videos connexes proposées, c’est pratiquement la meme prez que j’ai vu chez Arista par le même mec.
https://www.youtube.com/watch?v=TLbzvbfWmfY
-LoadBalancer : Replay of a meetup https://www.youtube.com/watch?v=MKgJeqF1DHw

Hardware

http://www.qantas.com.au/travel/airlines/our-network/au/en


Automation

More Network

Sort of NoNo @FB
network definition language
looks a lot like cmdb light, same approach to config and design generation
language defines objects and comiled to fill db
they generate complete templates
https://research.fb.com/robotron-top-down-network-management-at-facebook-scale/Talk 2: Wedge100 + Backpack: From the Leaf to the Spine Zhiping Yao + Xu Wang, Facebook

Use of yang / openconfig

Presentation of openconfig with a demo on Juniper:

https://github.com/ksator/openconfig-demo-with-juniper-devices/blob/master/NETCONF_YANG_OpenConfig_overview.pdf

Ansible (Python) : http://www.ansible.com/home
Ansible presentation made by Francois (Ex collegue @Criteo):
http://www.infoq.com/fr/presentations/network-automation-ansible
Tutoria: https://serversforhackers.com/an-ansible-tutorial
http://ztpserver.readthedocs.org/en/latest/overview.html
https://prezi.com/7ialrq1c4gqg/network-automation-with-ansible/?utm_campaign=share&utm_medium=copy

(Not used @Criteo ):
http://www.opencontrail.org/multi-hypervisor-support-using-opencontrail/
http://www.qualisystems.com/

-Napalm : (Not used @Criteo yet) :
https://github.com/napalm-automation/napalm
Napalm @Spotify: https://github.com/spotify/napalm

More DevOps

Chef: ruby https://learn.chef.io/
Puppet : (not used @Criteo) https://puppet.com/


Python for Network

https://pynet.twb-tech.com/
-Criteo Tools for network diff between 2 configuration files (Cisco/Arista) :
https://github.com/criteo/netcompare?files=1

-Pourquoi docker/ansible par rapport a puppet/chef :
http://thenewstack.io/are-docker-users-migrating-to-ansible-and-away-from-puppet-and-chef/


Monitoring / Graphs


-Time series DB:
Graphite: https://graphiteapp.org/
OpenTSDB : http://opentsdb.net/
Grafana frontend : http://play.grafana.org/#/dashboard/db/grafana-play-home?panelId=6&fullscreen&edit
Kibana : https://www.elastic.co/fr/products/kibana
ElasticSearch : https://www.elastic.co/fr/products/elasticsearch


**Virutal env (VM/libvirt/container/…) :
If you want to test some apps/stuff you can use one of this « tools »
Docker : https://www.docker.com/
Virtualenv : (more for dev) http://virtualenv.readthedocs.org/en/latest/
Vagrant : (more for dev) https://www.vagrantup.com/

Other

http://druid.io/
Videos:
Storm: http://www.infoq.com/fr/presentations/storm-criteo

===================================================================
Youtube https://www.youtube.com/watch?v=93q-dHC0u0I
@34:47 you will find Steve Feldman, that’s my previous company colleague 🙂
The only feldman I know is him 😀 https://youtu.be/h8VWASQB8wk


**DC Google en carton :
https://docs.google.com/presentation/d/1gBGS5UFyyR0mcwg990I1YDOFQwAhL-nmonNPGvGYnlk/pub#slide=id.gd8e487ad0_0_209

**Blog :
https://pynet.twb-tech.com/blog/automation/cisco-ios.html

**A Trier:
https://github.com/digitalocean
https://www.digitalocean.com/company/blog/
http://xplproject.org.uk/
http://networkstatic.net/programming/
https://www.opennetworking.org/blog/?Itemid=316
http://northboundnetworks.com/collections/flowmaker
https://herdingpackets.net/2014/02/06/using-the-cisco-csr1000v-in-gns3-with-virtualbox/
http://highscalability.com/

— DEV —
http://sourabhbajaj.com/mac-setup/Python/virtualenv.html
http://hetland.org/writing/instant-python.html

— TOOLS —
https://www.esev.com/blog/post/2015-01-pgp-ssh-key-on-yubikey-neo/


** Tutos + Infos
Help on Git
http://rogerdudler.github.io/git-guide/index.fr.html
And on this blog: Article de blog: Utilisation de git


Scripts a la con Hacks&co
https://github.com/NARKOZ/hacker-scripts


**Security & Exlpoits
Browser exploit framework : http://beefproject.com/