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: 

Sample code: http://stackoverflow-fr.blogspot.fr/2014/05/creation-de-tableau-croise-dynamique.html

Optical amplification 100G and more for distance > 10km

In optical communication network, signal travels through fibers in every large distances without significant attenuation. However, when it comes to the distance up to hundreds of kilometers, to amplify the signal during transit becomes rather essential. In this case, an optical fiber amplifier is required to achieve signal amplification in long distance optical communication. This article aims to give a brief introduction to the most deployed fiber [amplifier— Erbium doped fiber amplifier (EDFA)](https://www.4fiber.com/wdm-optical-network/edfa.html?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3BzkwpjuCWQbyowJSDogVyyg%3D%3D).

What is EDFA?

An EDFA is an optical or IR repeater that amplifies a modulated laser beam directly, without opto-electronic and electro-optical conversion. Generally speaking, it is an optical repeater device that is used to boost the intensity of optical signals being carried through a fiber optic communications system.

Working Principle of EDFA

EDFA serves as a kind of optical amplifier which is doped with the rare earth element erbium so that the glass fiber can absorb light at one frequency and emit light at another frequency. An external semiconductor laser couples light into the fiber at infrared wavelengths of either 980 or 1480 nanometers. This action excites the erbium atoms. Additional optical signals at wavelengths between 1530 and 1620 nanometers enter the fiber and stimulate the excited erbium atoms to emit photons at the same wavelength as the incoming signal. This action amplifies a weak optical signal to a higher power, effecting a boost in the signal strength. The following picture shows 13dBm output C-band 40 channels booster EDFA for DWDM Networks.


The Advantages of EDFA

The EDFA obtains the advantages of high gain, wide bandwidth, high output power, high pumping efficiency, low insertion loss, and it is not sensitive to the polarization state.

It provides in-line amplification of signal without requiring electronics, and the signal does not need to be converted to electrical signal before amplification. The amplification is entirely optical.
It provides high power transfer efficiency from pump to signal power.
The amplification is independent of data rate.
The gain is relatively flat so that they can be cascaded for long distance use. On the debit side, the devices are large. There is gain saturation and there is also the presence of amplified spontaneous emission (ASE).
The Applications of EDFA

The EDFA was the first successful optical amplifier and a significant factor in the rapid deployment of fiber optic networks during the 1990s. By adopting it in conventional optical digital communication system applications, we can save a certain amount of optical repeaters. Meanwhile, the distance relay could also be increased significantly, which is vital for the long-haul fiber optic cable trunking systems. The EDFA is usually employed in these circumstances:

EDFA can be employed in the high-capacity and high-speed optical communication system. It offers a constructive and ideal solution for handling low sensitivity of receivers and short transmission distances because of a lack of OEO repeater.

In addition, EDFA can be adopted in long-haul optical communication system, such as land trunk optical transmission system and the submarine optical fiber cable transmission system. It helps to lower construction cost dramatically by reducing the quantity of regenerative repeaters.

Moreover, EDFA can also be employed in wavelength-division multiplexing (WDM) system, especially dense wavelength-division multiplexing (DWDM) system. It enables the problems of insertion loss to be solved successfully and reduces the influences of chromatic dispersion.


By far, being the most advanced and popular optical amplifier, EDFA has been widely adopted in the optical fiber communication networks. Featured by flat gain over a large dynamic gain range, low noise, high saturation output power and stable operation with excellent transient suppression, it surely will capture a rather vital and indispensable position in optical communication in the near future.

Sample [EDFA products](www.4fiber.com)

Other documentations


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
git reset --hard origin/master

Documentation et guide

Pas a pas en partant de 0 par exercices de 3 ou 4 commandes (EN):

Vidéos et Tutos a tester (FR):

Guide complet sur git (FR):

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

Hack Google search

**1. Search for phrases in page titles = allintitle:**

If you’re looking for a specific phrase in a page title, use the*allintitle:*search operator…

*allintitle:get twitter followers*

This can help you get past a lot of ads and get right to good information. For example, with *get twitter followers*, you have to scroll through 4 ads before getting to any content. When you do *allintitle* you immediately get to the relevant information:

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/side-by-side-1.png)

**2. Search for keywords in page titles = intitle: **

To find a specific word in a page title, use the *intitle: *search operator. For example, if you want to make sure your results all include *ecommerce* somewhere in the title of the article and not just in the body of the text, this is a good operator to use.


**3. Search for keywords in blog post titles = inblogtitle: **

If you want to search for keywords found specifically in blog content, use the related *inblogtitle: *search operator. For example…


This way, if you aren’t interested in other types of content, you can ensure your results all come from blog posts that include the word *ecommerce* somewhere in the title.

**4. Search for phrases in blog post titles = allinblogtitle: **

You can do the same thing for phrases in blog post titles…

*allinblogtitle:get twitter followers *

This query gives only those results that include all three keywords in the blog post’s title. The words may not necessarily appear in that order (as you can see in the image below, but they will all be present).

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/get_twitter_followers-1-e1496435398495.png)

**5. Search for keywords in page text = intext: **

Similar to the *intitle:** *and *inblogtitle:* operators, to find a specific word in a page’s text, use the *intext: *search operator…


This operator isn’t quite as specific as *intitle:** *and *inblogtitle:* but you’ll likely use it a lot, especially if you spend a good chunk of time searching for articles online like I do. ?

**6. Search for phrases in page text = allintext: **

To find specific phrases in a page’s text, use the *allintext:* operator. For example…

*allintext:ecommerce marketing tips*

This is more efficient than searching for *ecommerce marketing tips, *and you’ll probably use this operator a lot as well. As you can see in the screenshot below, this operator helps you cut past ad content and get right to the good stuff.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/allintext-1024×463.png)

**7. Search for exact matches = quotation marks**

Putting quotation marks around phrases helps you be ultra specific about what you’re searching for. For example, to get more relevant search results, query…

*“social media posting schedule” infographic*

…instead of…

*social media posting schedule infographic*

That particular example gets you less ads and it brings you to the actual infographics faster:

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/Social-Media-Posting.png)

**8. Search for keywords in anchor texts = inanchor: **

Find specified keywords in anchor text by using the *inanchor: *operator…


The *inanchor:* operator is especially helpful in terms of SEO.

**9. Search for phrases in anchor texts = allinanchor: **

And to find phrases in anchor texts, use the *allinanchor: *operator…

*allinanchor:Snapchat marketing tips *

You’ll probably use this operator more often than inanchor: and it’s a good one to memorize.

**10. Search for keywords in URLs = inurl: **

If you’re trying to find a specific URL or pages about a particular topic, the *inurl: *operator can help. For example…


This search operator is great for those times when you can’t quite remember a URL. Or, you need to find web pages that specifically concern a particular topic, like ecommerce.

You could also query something like…

*rachel rofe inurl:ecommerce*

…if you knew the gist of the URL.

When you run this exact search, you discover all the blog posts I’ve posted on my site that have the tag “ecommerce.” You also discover posts about earning “passive ecommerce income” with the Low Hanging System.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/rachel_rofe_inurl-e1496435733331.png)

**11. Search for phrases in URLs = allinurl: **

The *allinurl:* search operator is even more useful if you’re stumped on a site’s URL. For example…

*allinurl:how to get more sales*


*rachel rofe allinurl:how to get more sales*

From this search, you get the following 9 ultra specific results, which sure beats wading through pages and pages of material:

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/allinurl-e1496435846719.png)

**12. Search for content by a certain author = allinpostauthor: **

To find content written by a particular author, use the *allinpostauthor:* search operator.

For example, if you want to find articles written by Neil Patel (not necessarily from his website), this is the easiest and fastest way to go about it.

*allinpostauthor:neil patel*

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/neil_patel.png)

**13. Search for words near each other = AROUND(X)**

This search operator enables you to get results including terms that are near each other. The X represents the maximum number of words that can separate two search words or phrases. For example…

*marketing AROUND(6) ecommerce*

With this search, you will get only those results where the words *marketing *and *ecommerce *are within six words of each other. The AROUND (X) operator comes in handy when you need to connect two different topics.

**14. Search for phrases near each other**

You can also use AROUND(X) to find phrases that are near each other using quotation marks. For example…

*“content marketing” AROUND(8) “ecommerce strategies”*

This query will give you only those results that connect “content marketing” with “ecommerce strategies” in eight words or less.

**15. Search for synonyms = ~**

To get results including synonyms for the term or phrase you’re searching for, use a tilde (~). For example…

*birthday party ~decor*

The results of this query also include similar words to *decor*, such as *decorations* and *supplies**, *which saves you time from having to run separate searches for *birthday party** decorations *and *birthday party supplies.*

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/birthday_decor.png)

**16. Search for alternate TLDs (top-level domains)**

To find sites, especially competitors’ sites, that have the same domain name as your website but a different TLD, run a search like the example below:

*site:ebay.* -site:ebay.com *


*site:Amazon.* -site:Amazon.com*

**17. Search for a phone number = phonebook: **

This one seems to be US-specific. But to find a list of phone numbers linked to a particular person’s name in the United States, use the *phonebook:* operator. For example…

*phonebook:patti smith*

This gives you all the white pages results for *Patti Smith*. You can further refine your search results by including the location search operator (*loc:*) too (see #47).

**18. Search using a range of numbers = ..**

To get search results within a range of numbers (especially when you’re conducting product research), use two periods (..) to specify a minimum and maximum value.

For example, say you’re in the market for a new Dell laptop but you don’t want to spend more than $600, you might query something like…

*dell laptops $400..$600*

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/Laptops.png)

**19. Search specific types of domains = site: **

In addition to being able to search for specific websites, you can also search for specific types of domains. For example, if you’re looking for government information, you could query…


…Just add your search terms in the beginning…

*2017 taxes site:.gov *

This type of query is useful especially for research purposes—to make sure you’re getting the most official information possible.

**20. Search for a movie = movie:**

Use this search operator to look up information about specific movies, like which theaters a movie is playing at along with show times.

For example, if you wanted to quickly find out when and where *Wonder Woman* was playing in your city or town, this operator could be useful. Just type…

*movie:wonder woman*

**21. Search multiple specific types of domains**

To search for multiple domain types, use parentheses plus the OR command. For example…

*healthcare (site:.gov OR site:.edu)*

Again, this really proves helpful when you’re trying to find reliable information. The query above will provide you with a list of results from government and university websites.

**22. Search hashtags = #**

Have Google include hashtags from social media networks by adding the pound symbol (#) right before your search term. For example…


This brings *news about #marketing on Twitter* up close to the top of the search results, letting you view the conversation that’s currently taking place.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/Marketing-Hash-Tag.png)

**23. Search within a date range = daterange: **

To search for results within a certain date range, you can use the *daterange:* operator…

*ecommerce strategies daterange:2457875.43304-2457899.43304*

The only thing is this operator uses the Julian calendar format as opposed to the Gregorian calendar format, which is what most people are used to.

But you can use this [website](http://www.onlineconversion.com/julian_date.htm) to convert dates to the Julian calendar format.

This type of search is useful if you want to find the most up-to-date information about a topic. Things change so fast, so it’s beneficial to be mindful of when information was published.

**24. Search by filetype = filetype: **

If you’re looking for a particular filetype or document, the *filetype: *search operator is useful. For example, if you’re looking for a case study, which is often a certain filetype, you might search…

*inbound marketing filetype:pdf*

This search will yield information about inbound marketing only in PDF format.

**25. Search a specific site = site: **

If you’re looking for results from one specific website, do this: type *site: *plus the name of the website and then your query. For example…

*site:rachelrofe.com how to boost ecommerce sales*

Maybe you heard that a particular site offers really great information about a certain topic and you want to check it out. Perhaps you find a particular site to be more credible or trustworthy than others. Or you might just like a particular site’s writing style or find the site easy to navigate. Whatever the case may be, this operator helps you find the most relevant information.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/site_.png)

**26. Search maps = map: **

To view map-based results, type *map: *plus the location…


Especially if you’re traveling, this operator is useful to get a lay of the land or to discover where the most popular tourist attractions are. Here are the top results you get when you make the above query:

**27. Get Google to “fill in the blank” = ***

For those times when you can’t remember what’s supposed to go in your search—for example, when you can’t remember song lyrics—use the wildcard operator, or an asterisk (*). For example, if you have this stuck in your head “Drove my Chevy to the levee but the levee was…” but can’t quite put your finger on the rest of the lyrics or the name of the song, just type…

*drove my chevy to the levee but the levee was **

…and you’ll discover the song’s name is *American Pie *by Don McClean, and the word you’re searching for is *dry. *

**28. Search related sites = related: **

If you’re looking for websites that are related to a site you know, use the *related:* search operator…


This comes in handy if you want to find other sites that share similar information to a site you are already familiar with.

**29. Get more information about a website = info: **

For those times when you need to gather some extra information about a website, use the *info:* operator…

*info:rachelrofe.com *

For example, when I did this for my site, I got the following results:

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/info_rachel_rofe-e1496442383397.png)

**30. Get a definition = define: **

If you need to get the definition of a word, use the *define:* operator. For example, if you wanted to know what the word *microsite *refers to, you would query…


And unlike some of the other search operators, this one also works for phrases without having to use quotation marks…

*define:inbound marketing*

When you type this into Google, you discover…

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/define-e1496442466321.png)

**31. Get the weather = weather: **

To learn about the weather in your area or a place you’ll be visiting, just type *weather: *plus the location. For example, if you live in Boston, MA and you want to know what the weather is going to be like today, you’d query…


Then, you’d discover that the weather in Boston is clear with period clouds and 71 degrees Fahrenheit.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/Boston_Weather-e1496442511236.png)

**32. Exclude words = – **

To exclude certain words from your search results, use a short dash (-). For example…

*facebook marketing tips -hootsuite*

Say you want to learn about how to market your products on Facebook, but you don’t want to use Hootsuite. Maybe you’re already using Hootsuit and know all about it and want to learn about different strategies. Excluding *hootsuite* helps give you the more narrowed down results you’re looking for.

And as you can see, without using this search operator, the very first result on the left-hand side comes from Hootsuite’s blog:

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/hootsuite-1024×442.png)

**33. Exclude multiple words**

Use this same operator to exclude multiple words to be even more precise. For example…

*facebook marketing tips -hootsuite -bufferapp*

You might not want to bother with results that talk about BufferApp either. And by using the short dash operator twice, you can exclude both the terms *hootsuite *and *bufferapp *from your results.

**34. Exclude exact match phrases**

To exclude exact match phrases, use a short dash (-) plus quotation marks…

*facebook marketing tips -“facebook live”*

Maybe you’re an introvert and shy away from creating any type of video content so you don’t want your search results to include tips about using Facebook Live. This is how you could customize such a search.

**35. Exclude multiple phrases**

If there are multiple exact match phrases that you want to exclude, do something like this…

*facebook marketing tips -“facebook contests” -“facebook ads”*

Maybe you already have experience with these techniques and you want to learn about other new ideas. If that’s the case, this is the most efficient way to search. Notice how the left-hand query specifically mentions Facebook contests in the top results…

[![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/facebook_marketing-1024×453.png)](https://rachelrofe.com/wp-content/uploads/2017/05/facebook_marketing.png)

**36. Exclude subdomains**

To crawl though a website’s subdomains, use a combination of the *inurl: *and *site: *operators to narrow your search and exclude any subdomains that aren’t what you’re looking for. For example…

*site:DigitalMarketer.com -inurl:www*

This query excludes the *www* subdomain. So anything beginning with *www* won’t be included in the results.

**![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/018.How-to-hack-Google-p-101×300.jpg)37. Include phrases**

To include entire phrases, combine the plus sign with what we talked about earlier: using quotation marks to get exact matches…

*how to get more sales +”instagram live”*

Similar to using the + operator to include specific words, when you add quotation marks around specific phrases, you direct Google to give you the most relevant results. In this case, those results that also include how to increase your sales volume with Instagram Live.

**38. Use an AND command = AND**

The AND search operator is another option to indicate that all search terms should be present in the results.

*ecommerce AND shopify*

In this query, you’re telling Google that results must include both the terms *ecommerce** *and* shopify**. *

**39. Use a customized AND command**

Combine the AND operator with quotation marks to specify exact match phrases…

*“instagram marketing” AND “pinterest marketing”*

This is the same principle as using the + search operator in conjunction with exact match phrases and quotation marks.

**40. Use an OR command = OR**

The OR operator tells Google to display results that have either A or B present. To do this, just type two keywords into the search bar and separate them with OR. For example…

*ecommerce platform shopify OR magento*

This operator is great for those times when you don’t need to be super specific but still want to somewhat narrow down your results.

Without using the OR* *operator, the results on the left mostly pit Shopify and Magento against one another in compare-and-contrast type articles, which isn’t necessarily what you’re looking for. Using the OR* *operator helps you be more precise about the results you want.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/ecommerce_platform-1024×446.png)

**41. Use a customized OR command**

Further customize your OR searches by including exact match phrases…

*“content marketing” OR “social media marketing”*

Again, this is useful for when you don’t need to be super specific but you want to use OR with a specific phrase to refine your results.

**42. Use an alternative to the OR command**

The pipe operator (|) functions exactly the same way as OR. So you can use whichever operator is easiest for you to remember.

Here’s an example of the pipe operator in practice with both keywords and exact match searches:

*social media marketing instagram | pinterest*


*“email marketing” | “social media marketing”*

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/email_social_media.png)

**43. Identify pages that aren’t secure**

To discover webpages that aren’t secure, run a search like in the example below:

*site:ebay.com -inurl:https*

It’s also a good idea to run this search on your own website. If you’re using HTTPS, then, by and large, your site’s pages should come with the HTTPS certificate.

**44. Identify unnecessary text files**

Some text files are useful to keep on your site—for example, your robots.txt file. But other text files take up unnecessary space. To expose any unnecessary text files on your site, run a search like the one below:

*site:yoursite.com filetype:txt -inurl:robots.txt*

For my own site, I would do the following:

*site:RachelRofe.com filetype:txt -inurl:robots.txt*

(I just tried this for my website, and it looks like no unnecessary text files were found. Yay!)

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/site_inurl-e1496442689550.png)

**45. See cached versions = cache: **

To view an older version of a website, use the *cache:* operator…

*cache:rachelrofe.com *

Sometimes you might need to see an older version of a particular website—for example, if there’s information you need that’s been deleted since you last visited the website.

**46. Narrow your search to a specific location = loc: **

Especially if you’re doing local SEO or targeting a location-specific audience, the *loc: *search operator can come in handy. For example…

*coworking space loc:new york city*

The results of this query will show only those coworking spaces located in New York, NY.

**47. Track stocks = stocks: **

To learn more information about a particular company’s stocks, use the *stocks:* operator followed by the company’s ticker symbol. For example, for Bank of America’s stock information, you would search the following:


Or, as another example, if you’re a fan of Tesla, you would search…


**48. Restrict results to a particular news source = source: **

If you want to see results only from a particular news source, type *source: *after your query and then specify the news source.

This helps you get information from your most trusted sources.


*united states health care source:washington post*

*climate change source:discover magazine *or *climate change source:national geographic*

*best copywriting headlines source:copyblogger  

[![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/best-copywriting-headlines.png)](https://rachelrofe.com/how-to-hack-google/best-copywriting-headlines#main)

**49. Use Google as a calculator = in: **

If you want to know how many units of something are in something else, you can use the *in: *search operator.

For example, if you want to know the number of miles per hour in the speed of light, you’d query…

*in:mph in the speed of light*

This could be really useful for cooking if you need to do any conversions. For instance, finding out how many ounces are in a pound…

*in:ounces in a pound*

**50. Include words = + **

If you want to make sure certain words are included in your search results, use the plus sign (+)…

*email marketing platform reviews +Experiture*

The above query is useful because there are tons of articles that talk about the pros and cons of various email marketing platforms. But not all of the articles mention Experiture specifically. So if you want to ensure that your results do talk about Experiture, the + operator is the way to go.

![Google search operators can make life so much easier. Grab some great ones here.](https://rachelrofe.com/wp-content/uploads/2017/05/experiture-1024×450.png)

Whew! That’s it. Thanks to [Neil Patel](http://neilpatel.com/blog/google-search-operators/) for the inspiration behind this post, and I hope you get a lot of value from it over time.

![These Google search operator « hacks » make things so easy! ?](https://rachelrofe.com/wp-content/uploads/2017/05/Google-Hacks.jpg)

Source of this page :

> [How to “hack” Google with search operators](https://rachelrofe.com/how-to-hack-google)

<iframe class= »wp-embedded-content » data-secret= »9mI6AWGAn1″ frameborder= »0″ height= »296″ marginheight= »0″ marginwidth= »0″ sandbox= »allow-scripts » scrolling= »no » security= »restricted » src= »https://rachelrofe.com/how-to-hack-google/embed#?secret=9mI6AWGAn1″ style= »position: absolute; clip: rect(1px, 1px, 1px, 1px); » title= »“How to “hack” Google with search operators” — Rachel Rofé » width= »525″></iframe>

Optimizing and Scaling on a Leaf-Spine Architecture

Posted by (and sources): Mike Peterson on May 05, 2016
Source: her/ici


The Internet of Things (IoT) and the proliferation of virtualization have caused traffic between devices in the data center to grow. Referred to as “east-west traffic,” this term accounts for traffic going back and forth between servers in a data center.

When you run lots of east-west traffic through a topology designed for north-south traffic (traffic that enters and exits the data center), devices connected to the same switch port may contend for bandwidth – and end-users experience poor response time.

If hosts on one access switch need to quickly communicate with hosts on another access switch, uplinks between the access layer and aggregation can be a point of congestion. A common three-tier network design may worsen the issue, constraining the location of devices like virtual servers.

Moving to a Leaf-Spine Architecture

That’s where leaf-spine architecture comes in, scaling horizontally through the addition of spine switches. This two-layer topology allows devices to be exactly the same number of segments away.

With each leaf switch connecting to each spine connection, the number of spine switches is limited to the number of uplink ports on the leaf. The most common leaf switches come with only four 40G QSFP+ uplink ports, limiting your network to only four spine switches. This starts to limit network scalability.

One way to achieve more scale is to break the 40G SR4 channel into four 10G duplex channels, turning the four 40G uplink ports into 16 available uplinks. This increases the number of spine switches that can be a part of the mesh network to 16, providing four times the scalability.

Scaling Networks: 10G vs. 40G

Let’s use an example to compare scaling in leaf-spine architecture between 10G and 40G networks.

With 40G uplinks, the number of spine switches is fixed at four, based on the leaf having four uplinks. Typically, each spine has a total of four line cards. These line cards come with 36 40G ports per line card. The total number of available ports to connect to leaf switches is 144; each leaf has 48 ports to connect to network devices, allowing for a maximum of 6,912 computers to connect to the 40G mesh network.

When you scale out on a 10G network, scaling is increased by a factor of four. Each 40G uplink is broken into four 10G channels, allowing for 16 spine switches. With four line cards, and 36 40G ports per line card split into 10G legs, there are a maximum of 576 leaf switches (144 ports x 4). With each leaf having 48 ports, you can connect 27,648 computers – four times the scaling throughout the mesh network.

10G Channels: Potential Obstacles

Moving to four 10G channels in leaf-spine architecture introduces a new concern: Latency (the amount of time it takes for a packet of information to travel from point A to point B) increases because the pipes are split into smaller lanes. The smaller the lanes, the slower the traffic. Although throughput remains the same, latency increases.

One of the biggest challenges to implementing a mesh network is cabling. Mesh networks require LC patch cords to create a cross-connect, ensuring that all leaf switches and spines are properly connected. A cross-connect is created in the main distribution area (MDA), creating several cabling issues: insertion loss, maintaining polarity, increase in cable counts, etc. Rack challenges include density, required U space and power availability.

To create the 10G channel, a complex cross-connect must be created. Each eight-fiber MPO port on the switch is broken up into an LC duplex connection; 144 MPOs become 576 LC duplex connections per switch, for a total of 18,432 LC duplex ports (both sides of the cross connect). To connect the 10G channels to each leaf and spine, a total of, 9,216 LC duplex patch cords are needed. As a result, additional channels for MACs (moves, adds and changes), cable routing and space constraints are possible.

This essentially breaks an MPO into four lanes and makes an LC connection. Each lane is combined with lanes from other spines and converted back into an eight-fiber MPO (Base-8) with four channels from four different spine switches. Cable management, space utilization, documentation and labeling become extremely difficult to troubleshoot and maintain.

Shuffle Cassettes Save Space and Reduce Complexity

There’s a new leaf-spine architecture solution available that drastically reduces the amount of space needed, as well as the number of cables in the MDA: Belden shuffle cassettes.
These cassettes eliminate the need to create a cross-connect to separate 40G channels into 10G, and recombine to connect to each leaf, handling lane reassignments internally. Each shuffle cassette has four MPOs in and out; each leaf requires four shuffle cassettes.


<table><tbody><tr><th>Traditional MPO-LC-MPO</th><th>Belden Shuffle Cassette</th><th>*Savings*</th></tr><tr><td>704 modules</td><td>416 modules</td><td>*288 modules*</td></tr><tr><td>176U space</td><td>104U space</td><td>*72U (roughly 1.6 racks)*</td></tr><tr><td>9,216 patch cords</td><td>2,304 patch cords</td><td>*6,912 patch cords*</td></tr></tbody></table>

By utilizing the same connector, reducing connections and standardizing on components across the channel, Belden’s shuffle cassettes allow for scaling in leaf-spine architecture, reduce the opportunity for human error, speed up deployment time and reduce time spent on MACs. By using a shuffle cassette that fits into any Belden housings, you reclaim valuable floor space.

What’s in a Boarding Pass Barcode? A Lot

Source: ici
Article date: 06 OCT 15

## What’s in a Boarding Pass Barcode? A Lot

The next time you’re thinking of throwing away a used boarding pass with a barcode on it, consider tossing the boarding pass into a document shredder instead. Two-dimensional barcodes and QR codes can hold a great deal of information, and the codes printed on airline boarding passes may allow someone to discover more about you, your future travel plans, and your frequent flyer account.

Earlier this year, I heard from a longtime KrebsOnSecurity reader named Cory who said he began to get curious about the data stored inside a boarding pass barcode after a friend put a picture of his boarding pass up on Facebook. Cory took a screen shot of the boarding pass, enlarged it, and quickly found a site online that could read the data.

[![An older Delta boarding pass with a board code. Source: IATA.](https://krebsonsecurity.com/wp-content/uploads/2015/10/deltabp-580×250.png)](https://krebsonsecurity.com/wp-content/uploads/2015/10/deltabp.png)

An older Delta boarding pass with a bar code that does not include a frequent flyer number. Source: IATA.

“I found [a website](http://online-barcode-reader.inliteresearch.com/default.aspx) that could decode the data and instantly had lots of info about his trip,” Cory said, showing this author step-by-step exactly how he was able to find this information. ‘

“Besides his name, frequent flyer number and other [personally identifiable information], I was able to get his record locator (a.k.a. “record key” for the Lufthansa flight he was taking that day,” Cory said. “I then proceeded to Lufthansa’s website and using his last name (which was encoded in the barcode) and the record locator was able to get access to his entire account. Not only could I see this one flight, but I could see ANY future flights that were booked to his frequent flyer number from the [Star Alliance](https://en.wikipedia.org/wiki/Star_Alliance).”

The access granted by Lufthansa’s site also included his friend’s phone number, and the name of the person who booked the flight. More worrisome, Cory now had the ability to view all future flights tied to that frequent flyer account, change seats for the ticketed passengers, and even cancel any future flights.

The information contained in the boarding pass could make it easier for an attacker to reset the PIN number used to secure his friend’s Star Alliance frequent flyer account. For example, that information gets you past the early process of resetting a Star Alliance account PIN at United Airline’s [“forgot PIN” Web site](https://www.united.com/web/enUS/apps/account/settings/pin/pinResolution2.aspx).

After that, the site asks for the answer to a pre-selected secret question. The question in the case of Corey’s friend was “What is your Mother’s maiden name?” That information can often be gleaned by merely perusing someone’s social networking pages (e.g., does your aunt or uncle on your mom’s side have your mother’s maiden name as their last name? If so, are they friends with you on Facebook?)

<div class= »wp-caption aligncenter » id= »attachment_32519″>[![bpdecoded](https://krebsonsecurity.com/wp-content/uploads/2015/10/bpdecoded-580×263.png)](https://krebsonsecurity.com/wp-content/uploads/2015/10/bpdecoded.png)

The readout from the barcode on Cory’s friend’s boarding pass (redacted).

United Airlines seems to treat its customers’ frequent flyer numbers as secret access codes. For example, if you’re looking for your United Mileage Plus number, and you don’t have the original document or member card they mailed to you, good luck finding this information in your email correspondence with the company. When United does include this code in correspondence, all but the last three characters are replaced with asterisks. The same is true with United’s boarding passes. However, the full Mileage Plus number is available if you take the time to decode the barcode on a boarding pass.

Interested in learning what’s in your boarding pass barcode? Take a picture of the barcode with your phone, and upload it to [this site](http://online-barcode-reader.inliteresearch.com/). [This blog](https://shaun.net/posts/whats-contained-in-a-boarding-pass-barcode) on the same topic from several years back includes some helpful hints on how to decode the various information fields that get dumped by the barcode reader.

Finally, the standards for the boarding pass barcodes are widely available and have been for years. Check out [this document](http://www.iata.org/whatwedo/stb/documents/bcbp_implementation_guidev4_jun2009.pdf) (PDF) from the **International Air Transport Association** (IATA) for more on how the barcode standards work and have been implemented in various forms.

Other source (in French Le monde): [Votre billet d’avion et vos données personnelles sont vulnerables au piratage](http://www.lemonde.fr/pixels/article/2016/12/28/votre-billet-d-avion-et-vos-donnees-personnelles-sont-vulnerables-au-piratage_5055021_4408996.html)

Automation for network

Ansible on network world


Ansible (Python)

Replay of Ansible presentation made by Francois 

Ansible tutorial
Network automation with ansible

First configuration of network devices

Zero Touch Provisioning

ZTP overview

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  
Robotron top down network management at facebook scale

Talk 2: Wedge100 + Backpack: From the Leaf to the Spine Zhiping Yao + Xu Wang, Facebook

Other tools (not Ansible)





[napalm automation]

[Napalm @spotify on Github](https://github.com/spotify/napalm)

More for DevOps Chef (ruby)


[Puppet](https://puppet.com/) (not used @Criteo)

Python for Network


Criteo Tools for network diff between 2 configuration files (Cisco/Arista) :  

Why use Docker / Ansible in front of Puppet / Chef :  

# Monitoring / Graphs

* Time series DB

* Front-end
[Elastic kibana](https://www.elastic.co/fr/products/kibana)

# Virutalenv (VM/libvirt/container/…)

If you want to test some apps/stuff you can use one of this « tools »

– Docker : [https://www.docker.com/](https://www.docker.com/)
– Virtualenv : (more for dev) [http://virtualenv.readthedocs.org/en/latest/](http://virtualenv.readthedocs.org/en/latest/)
– Vagrant : (more for dev) [https://www.vagrantup.com/](https://www.vagrantup.com/)

# Other


## Videos and presentations

Storm usage at Criteo: [http://www.infoq.com/fr/presentations/storm-criteo](http://www.infoq.com/fr/presentations/storm-criteo)

Youtube Network Automation and Programmability Abstracation Layer [https://www.youtube.com/watch?v=93q-dHC0u0I](https://www.youtube.com/watch?v=93q-dHC0u0I)

<iframe allowfullscreen= »allowfullscreen » height= »314″ src= »//www.youtube.com/embed/93q-dHC0u0I » width= »560″></iframe>

@34:47 you will find Steve Feldman.

The only feldman I know is him ?

<iframe allowfullscreen= »allowfullscreen » height= »314″ src= »//www.youtube.com/embed/h8VWASQB8wk » width= »560″></iframe>

Blog : [https://pynet.twb-tech.com/blog/automation/cisco-ios.html](https://pynet.twb-tech.com/blog/automation/cisco-ios.html)

# Tools for DEV


# Tools


# A Trier:


Next Gen DC how support scale out

Some article about DataCenter and how it’s working

Date: 2017-02-11

Article from Criteo about DC and hosting team

Criteo Lab – DataCenter (http://labs.criteo.com/2017/02/hosting-power-everything-youve-always-wanted-know-datacenter-management-criteo/)

DC Google en carton

Link (https://docs.google.com/presentation/d/1gBGS5UFyyR0mcwg990I1YDOFQwAhL-nmonNPGvGYnlk/pub#slide=id.gd8e487ad00209)

Presentation about LinkedIn DC

It’s in Richardson, Texas. Ashburn, Virginia and in Oregon with a new design made by LinkedIn.
New LinkedIn DC