mercredi 17 novembre 2021

Slack/Zoom Team building : Scavenger hunt

 






Example list 


Organization :

* 1 master of masters : decides the list, and will count the points (in particular : who finished first ?)

* 1 master per group 

* split the list of attending people in zoom "breakout rooms" (1 per group)

* each group master is responsible for validating having seen the objects

* when done or at 15min => back to the main room and count

jeudi 11 novembre 2021

Indice de coût de la vie / cost of living

https://www.numbeo.com/cost-of-living/


 examples, in 2021-Nov (7,450,880 prices in 10,484 cities entered by 613,014 contributors)



  • Paris vs Montreal :

https://www.numbeo.com/cost-of-living/compare_cities.jsp?country1=France&country2=Canada&city1=Paris&city2=Montreal&tracking=getDispatchComparison

applications de gestion de déplacements


  • Chrono
  • Transit => great in Montreal
  • Google Maps => ok internationally
  • Apple plans => iOS specific, not tested
  • STL Synchro => Laval
  • Moovit => ?


  • Citymapper => great in Paris


mardi 9 novembre 2021

Online drawing tool (excalidraw)

 https://excalidraw.com/


(From presentation by  Alex Jones and Anaïs Urlichs [Civo] / Grafana ObservabilityCon 2021 )

https://grafana.com/go/observabilitycon/2021/loki-logging-at-scale-civo/


Linux cleaning tips (systemd, apt/ubuntu, docker)

 (evolutive article where I store what's been useful to me to clean space on linux servers I'm using)

Note : my current servers are running Ubuntu.



OS / SystemD : purge logs bigger than ...

Only keep 10M of each log files handle through syslog

sudo journalctl --vacuum-size 10M


OS / apt : remove remnants

Remove automatically all unused packages Remove automatically installed packages not needed anymore (i.e. packages that were installed as dependencies of packages that have now been removed or aren't requiring this dependency anymore)

apt options :

  •   autoremove - Remove automatically all unused packages
  •   clean - Erase downloaded archive files
  •   autoclean - Erase old downloaded archive files

sudo apt-get clean autoremove autoclean



Docker : remove logs older than ...

Only keep the last 1000h of docker containers logs

sudo docker image prune --all --filter "until=1000h" -f


Docker : remove remnants

Be careful ! If your docker environments are not running they might be deleted by some of the following commands !

Remove unused volumes, containers, images, networks, etc.

sudo docker system prune -f 

sudo docker system prune -a --volumes


jeudi 28 octobre 2021

kill processes from docker-compose "container_name"

Context : 

follwing a project-name change -> renaming the directory-name/docker-compose.yml the processes that were started by docker-compose were duplicated.

From the new project :

*  impossible to see them.

From docker ps : no process listed

From OS perspective ps aux : process present.


Test 1 : kill them all !

 Step 1 : identify them

ps aux | grep $(echo "$(grep container_name docker-compose.yml | grep -v '#' | awk '{printf("%s\\|", $2)}')grep")


Step 2 : kill -9 them all


ps aux | grep $(echo "$(grep container_name docker-compose.yml | grep -v '#' | awk '{printf("%s\\|", $2)}')grep") | awk '{print $2}' | xargs sudo kill -9


-> result : when restarting docker, they're back :-( 


Test 2 : stop docker + docker-compose start

apparently working, but I lost my container's content...


lundi 11 octobre 2021

Docker : thiner images

(from  GitLab Commit at KubeCon : One Layer Builds (Docker Not Included), by Jason Plum https://gitlab.com/WarheadsSE and Will Christensen)

* use FROM Scratch, instead of FROM <distro> 


 * Explore each layer of a docker image

https://github.com/wagoodman/dive 


* use Buildah : http://buildah.io/ "A tool that facilitates building OCI container images."

mercredi 6 octobre 2021

mardi 5 octobre 2021

Shell tools : shellcheck


  • ShellCheck, a static analysis tool for shell scripts

https://github.com/koalaman/shellcheck



suggests to add this on your makefiles :

check-scripts:
    # Fail if any of these files have warnings
    shellcheck myscripts/*.sh
or this on your CI (here : .travis.yml )
script:
  # Fail if any of these files have warnings
  - shellcheck myscripts/*.sh



mardi 28 septembre 2021

Code verifications / provers

C code + ACSL annotations --( Frama-C )--> "WhyML" Why3 format Proofs  --( Why3 analyser )--> proven code





  • ACSL By Example (good learning point with plenty of exmaples) Towards a Verified C Standard Library

https://www.mimuw.edu.pl/~alx/konstruowanie/ACSL-by-Example.pdf


  • Frama-C code analyser (Framework for Modular Analysis of C programs)

https://frama-c.com/
 https://frama-c.com/html/documentation.html 


https://frama-c.com/2016/11/22/Frama-C-and-ACSL-are-on-GitHub.html



  • Why3 / WhyML :

http://why3.lri.fr/

http://why3.lri.fr/doc/starting.html

mercredi 11 août 2021

Recensement Canada 2021, Exemples d'origines ethniques ou culturelles

Lors du recensement canadien auquel j'ai eu a participer cette année, je suis tombé sur cette liste d'exemples d'origines ethniques ou culturelles, et en particulier pour la liste des origines autochtones j'ai trouvé cela intéressant.

Note : il est surement possible de retrouver cela quelque part sur le site canada.ca



  Exemples d'origines ethniques ou culturelles


Les exemples d’origines ethniques ou culturelles comprennent (sans toutefois s’y limiter) ce qui suit :

Origines autochtones


  •     Abénaki
  •     Ahousaht
  •     Algonquin
  •     Anishinaabe
  •     Apache
  •     Assiniboine
  •     Atikamekw
  •     Blood (Kainai)
  •     Castor (Dunne-za)
  •     Cayuga
  •     Chactas
  •     Chemainus (Stz’uminus)
  •     Cherokee
  •     Cheyenne
  •     Chilcotin (Tsilhqot’in)
  •     Chipewyan (Denesuline)
  •     Cowichan
  •     Cri
  •     Cri de Moose
  •     Cri des bois
  •     Cri des plaines
  •     Crow
  •     Dakota
  •     Delaware (Lenape)
  •     Déné
  •     Dene Tha’ (Esclave)
  •     Ditidaht
  •     Dzawada’enuxw
  •     Ehattesaht
  •     Gitxsan
  •     Gwa’sala
  •     Gwich’in
  •     Haïda
  •     Haisla
  •     Halalt
  •     Hän (Tr’ondëk Hwëch’in)
  •     Heiltsuk
  •     Hesquiaht
  •     Homalco
  •     Huron (Wendat)
  •     Huu-ay-aht
  •     Innu
  •     Inuit
  •     Inuvialuit
  •     Iroquois (Haudenosaunee)
  •     Kaska
  •     K’omoks
  •     Ktunaxa (Kutenai)
  •     Kwakiutl
  •     Kwakwa̱ka̱ʼwakw
  •     Kyuquot/Cheklesaht
  •     Laich-kwil-tach
  •     Lakota
  •     Lekwungen
  •     Malahat
  •     Malécite
  •     Mamalilikulla
  •     Métis
  •     Mi’kmaq
  •     Mohawk
  •     Montagnais
  •     Moskégon (cri des marais)
  •     Mowachaht/Muchalaht
  •     Musqueam
  •     Nakwaxda’xw
  •     ’Namgis
  •     Naskapi
  •     Navajo
  •     Nez Percé
  •     Nisga’a
  •     Nlaka’pamux (Thompson)
  •     Nuchatlaht
  •     Nuu-chah-nulth
  •     Nuxalk
  •     Odawa
  •     Ojibwé
  •     Oji-Cri
  •     Okanagan (Syilx)
  •     Oneida
  •     Onondaga
  •     Passamaquoddy
  •     Penelakut
  •     Pied-Noir
  •     Piikani
  •     Porteur (Dakelh)
  •     Potawatomi
  •     Premières Nations
  •     Qalipu Mi’kmaq
  •     Quatsino
  •     Sahtú (Esclave du Nord)
  •     Salish
  •     Salish de la Côte
  •     Salish du continent
  •     Saulteaux
  •     Secwepemc (Shuswap)
  •     Seneca
  •     Shawnee
  •     Shishalh (Sechelt)
  •     Siksika
  •     Sioux
  •     Snuneymuxw
  •     Squamish
  •     St’at’imc (Lillooet)
  •     Stó:lō
  •     Stoney (Nakoda)
  •     Tagish
  •     Tahltan
  •     Tla’amin (Sliammon)
  •     Tla-o-qui-aht
  •     Tlatlasikwala
  •     Tlicho (Flanc-de-chien)
  •     Tlingit
  •     Tlowitsis
  •     Tsek’ene (Sekani)
  •     Tseshaht
  •     Tsimshian
  •     T’Sou-ke
  •     Tsuu T’ina (Sarcee)
  •     Tuscarora
  •     Tutchone
  •     Ucluelet
  •     Wet’suwet’en
  •     W̱SÁNEĆ (Saanich)
  •     Wuikinuxv


Origines qui réfèrent à des pays


  •     Açoréen
  •     Afghan
  •     Albanais
  •     Algérien
  •     Allemand
  •     Américain
  •     Anglais
  •     Angolais
  •     Anguillais
  •     Antiguais
  •     Argentin
  •     Arménien
  •     Arubais
  •     Australien
  •     Autrichien
  •     Azerbaïdjanais
  •     Bahamien
  •     Bahreïnien
  •     Bangladeshi
  •     Barbadien
  •     Belge
  •     Bélizien
  •     Béninois
  •     Bermudien
  •     Bhoutanais
  •     Biélorusse
  •     Birman
  •     Bolivien
  •     Bosnien
  •     Brésilien
  •     Brunéien
  •     Bulgare
  •     Burkinabè
  •     Burundais
  •     Caïmanien
  •     Cambodgien
  •     Camerounais
  •     Canadien
  •     Cap-Verdien
  •     Centrafricain
  •     Chilien
  •     Chinois
  •     Chypriote
  •     Colombien
  •     Comorien
  •     Congolais
  •     Coréen
  •     Costaricain
  •     Croate
  •     Cubain
  •     Danois
  •     Djiboutien
  •     Dominicain
  •     Dominiquais
  •     Écossais
  •     Égyptien
  •     Équatorien
  •     Érythréen
  •     Espagnol
  •     Estonien
  •     Éthiopien
  •     Féroïen
  •     Fidjien
  •     Finlandais
  •     Français
  •     Gabonais
  •     Gallois
  •     Gambien
  •     Géorgien
  •     Ghanéen
  •     Gibraltarien
  •     Grec
  •     Grenadien
  •     Groenlandais
  •     Guadeloupéen
  •     Guatémaltèque
  •     Guinéen
  •     Guyanais
  •     Haïtien
  •     Hollandais
  •     Hondurien
  •     Hongkongais
  •     Hongrois
  •     Indien de l’Inde
  •     Indonésien
  •     Irakien
  •     Iranien
  •     Irlandais
  •     Irlandais du Nord
  •     Islandais
  •     Israélien
  •     Italien
  •     Ivoirien
  •     Jamaïquain
  •     Japonais
  •     Jordanien
  •     Kazakh
  •     Kényan
  •     Kirghiz
  •     Kittien/Névicien
  •     Kosovar
  •     Koweïtien
  •     Laotien
  •     Letton
  •     Libanais
  •     Libérien
  •     Libyen
  •     Liechtensteinois
  •     Lituanien
  •     Luxembourgeois
  •     Macédonien
  •     Malaisien
  •     Malawien
  •     Malgache
  •     Malien
  •     Maltais
  •     Mannois
  •     Marocain
  •     Martiniquais
  •     Mauricien
  •     Mauritanien
  •     Mexicain
  •     Moldove
  •     Mongol
  •     Monténégrin
  •     Montserratien
  •     Mozambicain
  •     Namibien
  •     Néo-Zélandais
  •     Népalais
  •     Nicaraguayen
  •     Nigérian
  •     Nigérien
  •     Norvégien
  •     Omanais
  •     Ougandais
  •     Ouzbek
  •     Pakistanais
  •     Palestinien
  •     Panaméen
  •     Papouasien
  •     Paraguayen
  •     Péruvien
  •     Philippin
  •     Polonais
  •     Portoricain
  •     Portugais
  •     Réunionnais
  •     Roumain
  •     Russe
  •     Rwandais
  •     Sainte-hélénien
  •     Saint-Lucien
  •     Salvadorien
  •     Samoan
  •     Saoudien
  •     Sénégalais
  •     Serbe
  •     Seychellois
  •     Sierra-Léonais
  •     Singapourien
  •     Slovaque
  •     Slovène
  •     Somalien
  •     Soudanais
  •     Sri-Lankais
  •     Sud-Africain
  •     Sud-Soudanais
  •     Suédois
  •     Suisse
  •     Surinamien
  •     Swazi
  •     Syrien
  •     Tadjik
  •     Tahitien
  •     Taïwanais
  •     Tanzanien
  •     Tchadien
  •     Tchèque
  •     Thaïlandais
  •     Togolais
  •     Tongan
  •     Trinidadien
  •     Tunisien
  •     Turc
  •     Turkmène
  •     Ukrainien
  •     Uruguayen
  •     Vénézuélien
  •     Vietnamien
  •     Vincentais
  •     Yéménite
  •     Zambien
  •     Zimbabwéen


Autres origines ethniques ou culturelles


  •     Acadien
  •     Afar
  •     Africain
  •     Africain d’Afrique centrale
  •     Afrikaner
  •     Afro-Américain
  •     Afro-Canadien
  •     Afro-Caribéen
  •     Afro-Néo-Écossais
  •     Akan
  •     Albertain
  •     Allemand de Pennsylvanie
  •     Alsacien
  •     Amhara
  •     Amish
  •     Anglo-Indien
  •     Antillais
  •     Antillais britannique
  •     Arabe
  •     Arawak
  •     Ashanti
  •     Asiatique
  •     Asiatique de l’Est
  •     Asiatique du Sud-Est
  •     Asiatique occidental
  •     Assyrien
  •     Bachkir
  •     Baloutche
  •     Bambara
  •     Bamiléké
  •     Bantou
  •     Baoulé
  •     Basque
  •     Batswana
  •     Bavarois
  •     Bengali
  •     Berbère
  •     Blanc
  •     Bohémien
  •     Bosniaque
  •     Bouddhiste
  •     Breton
  •     Britannique
  •     Britanno-Colombien
  •     Cachoube
  •     Canadien français
  •     Cap-Bretonnais
  •     Catalan
  •     Celte
  •     Centraméricain
  •     Centrasiatique
  •     Chaldéen
  •     Chin
  •     Chrétien
  •     Chypriote grec
  •     Chypriote turc
  •     Cingalais
  •     Circassien
  •     Copte
  •     Cornique
  •     Corse
  •     Créole
  •     Dinka
  •     Doukhobor
  •     Écossais d’Ulster
  •     Edo
  •     Esan
  •     Est-Africain
  •     Eurasien
  •     Européen
  •     Européen de l’Est
  •     Européen de l’Ouest
  •     Européen du Nord
  •     Européen du Sud
  •     Européen du Sud-Est
  •     Éwé
  •     Fante
  •     Flamand
  •     Franco-Ontarien
  •     Frison
  •     Ga-Adangme
  •     Galicien
  •     Gaspésien
  •     Goanais
  •     Gujarati
  •     Haoussa
  •     Harari
  •     Hawaïen
  •     Hazara
  •     Hindou
  •     Hispanique
  •     Hmong
  •     Huguenot
  •     Huttérite
  •     Hutu
  •     Igbo
  •     Igorot
  •     Ilocano
  •     Indien caraïbe (Caribe)
  •     Indien d’Amérique centrale (Autochtone)
  •     Indien d’Amérique du Sud (Autochtone)
  •     Indo-Caribéen
  •     Indo-Fidjien
  •     Indo-Guyanais
  •     Insulaire anglo-normand
  •     Insulaire du Pacifique
  •     Jat
  •     Javanais
  •     Juif
  •     Kabyle
  •     Karen
  •     Kashmiri
  •     Khmer
  •     Kikuyu
  •     Kurde
  •     Latino-américain
  •     Loyaliste de l’Empire-Uni
  •     Luba
  •     Luo
  •     Maghrébin
  •     Maharashtrien
  •     Malais
  •     Malayali
  •     Malinké
  •     Manitobain
  •     Maori
  •     Mapuche
  •     Marron
  •     Maya
  •     Mennonite
  •     Morave
  •     Mossi
  •     Moyen-oriental
  •     Musulman
  •     Ndébélé
  •     Néo-Brunswickois
  •     Néo-Écossais
  •     Noir
  •     Nord-african
  •     Nord-américain
  •     Normand
  •     Nubien
  •     Océanien
  •     Ontarien
  •     Orcadien
  •     Oromo
  •     Ouest-africain
  •     Ouïghour
  •     Pachtoune
  •     Pendjabi
  •     Perse
  •     Peul
  •     Pipil
  •     Polynésien
  •     Prince-Édouardien
  •     Québécois
  •     Quechua
  •     Rohingya
  •     Rom
  •     Ruthénien
  •     Sami
  •     Saskatchewanais
  •     Scandinave
  •     Sérère
  •     Shona
  •     Sicilien
  •     Sikh
  •     Sindhi
  •     Slave
  •     Soninké
  •     Sud-américain
  •     Sud-asiatique
  •     Swahili
  •     Tamoul
  •     Tatar
  •     Tchécoslovaque
  •     Tchétchène
  •     Telugu
  •     Terre-Neuvien
  •     Tibétain
  •     Tigrigna
  •     Transylvanien
  •     Tswana
  •     Tutsi
  •     Wallon
  •     Wolof
  •     Xhosa
  •     Yézidi
  •     Yoruba
  •     Yougoslave
  •     Zoroastrien
  •     Zoulou



mardi 3 août 2021

Box breathing technique

box breathing or four-square breathing.

Here's how it works:

  1. Breathe in for four seconds.
  2. Hold air in your lungs for four seconds.
  3. Exhale for four seconds.
  4. Hold your breath, lungs emptied, for four seconds.


from : https://getpocket.com/explore/item/beat-stress-like-a-navy-seal-with-this-ridiculously-easy-exercise

lundi 2 août 2021

MVT + Adb : how to use this consensual forensics tool to analyse whether your phone has been compromised by the pegasus/NSO discoveries. Forensics, long time no see !

Following pegasus revelations, I decided to play a bit with the tool provided by Amnesty International Security Lab in July 2021. 

Forensics, long time no see !


Sources : https://github.com/mvt-project/mvt

Doc : https://docs.mvt.re/en/latest/android/download_apks.html


Pretty strait-forward, once you have ADB installed on your computer.


the following steps are for and android phone + mac OS laptop

Step 0 : set your phone in "developper mode". For me I had to go to the settings and press 7 times on the release logo. 

Step 1 : plug your phone in USB, enabling USB debugging https://developer.android.com/studio/debug/dev-options#enable%3E

Step 2 : install ADB

brew install android-platform-tools

Check that you see your device, and then stop adb (not required after).

adb devices
adb kill-server

Step 3 : install mvt
pip3 install mvt

Step 4 : run mvt over your phone

mkdir output && mvt-android download-apks --output ./output --all-checks

jeudi 11 mars 2021

Atlassian : plugins version NOT to use / known bugs

Atlassian galaxy of plugins : which plugins to AVOID at all cost


 https://confluence.atlassian.com/jirakb/known-major-problems-with-3rd-party-apps-in-jira-946618564.html


lundi 8 mars 2021

General Electric Washer - Error codes


General Electric Washer / Washing machine / laveuse

GE Model# WCVH4800K2WW 

"hydro heater"


SERVICE MODE access : signal, extra-rinse, signal, extra-rinse

SERVICE MODE options :

  • T01 Display 
  • T02 Error Codes 
  • T03 User interface test 
  • T04 Water Valve 
  • T05 Water valve sensor test 
  • T06 Drain Pump  "P"
  • T07 Heater and Thermistor Test 
  • T08 Tumble Test  "tt"
  • T09 Spin Test


SERVICE MODE controls :

  • Start/Pause : enter
  • Power : exit
  • Knob, to the right : next
  • Knob, to the left : previous


* Service Modes : https://www.youtube.com/watch?v=Gb56yOZhb_M


Error codes meaning (service mode t02):

  • E00 : all ok  / no Error

First sequence of error seen :
  • dE1 :
  • bE2
  • UE
  • 0E
  • 5E
  • 4E
  • E00

* Tech Sheet : https://www.manualslib.com/manual/765140/Ge-Wcvh4800k.html?page=54#manual  (link to page 54 with error codes)


mardi 2 mars 2021

mac os X daily apps

 Context


as I recently had to switch computer, I see that I forgot to save some settings from the previous one, and of course, I don't have it anymore...


Useful apps I'm using :

Homebrew

Package manager for mac os x : https://brew.sh/

Day-0

https://shauninman.com/day-o/datetime.html

EEE h:mm a (z), dd MMM y (w)

Copy-clip

https://apps.apple.com/us/app/copyclip-clipboard-history/id595191960?mt=12

iterm2

https://iterm2.com/

  • background color : #efface
  • screen color : #decede
  • foreground color : black

emacs

I had been using aquamacs recently, 

this time lets try https://emacsformacosx.com/


rambox

NB: I'm looking for an alternative to this one...)

jeudi 25 février 2021

Ansible resources / links

 

 Jeff Geerling : author of the main ansible book, also author of a lot of important ansible roles and modules. In 2020, he did a serie of youtube weekly stream walking through each chapters of his book.

  • https://www.jeffgeerling.com/blog/2020/ansible-101-jeff-geerling-youtube-streaming-series

  • https://www.ansible.com/resources/webinars-training

  • mailing list : https://us19.campaign-archive.com/home/?u=56d874e027110e35dea0e03c1&id=d6635f5420



* https://ara.recordsansible.org/ : ARA Records Ansible and makes it easier to understand and troubleshoot... 


mercredi 24 février 2021

Bamboo - 2012 best practices

 

(ARCHIVED)Moneypenny Speaks! Getting the Most From (Bamboo) Agents - Atlassian Summit 2012

https://www.youtube.com/watch?v=Twyopzj9O6A&hd=1




Ec2 elastic 

Utilize Artifact Sharing

  • Hung build killer plugin : Terminate hung jobs
  • Keep Tabs on Agent Activity : agent smith plugin



You mission, should you choose to accept it

1 - build report connoissance

2 - Eradicates re-compile (*)

3 - Install the HungBuildKiller plugin





(*) Don't layer solutions on top of problems, remove the problems.

lundi 22 février 2021

Thermophones

 petite note retrouvée dans un carnet :


mkz.fr

Thermophones


J'explore un peu ce site web... où ai-je pu voir cela ?
Etait-ce aux Frigos, à Paris dans le 13ème, en 2017 ?

vendredi 19 février 2021

Wiki Patterns and Anti-Patterns - Stewart Mader / Confluence

 observed on Confluence wiki, but can actually be applied for every wiki

The overall goal is to go from generally observed usage 90-9-1 to 80-16-4 
(lurker - occasional contribution - frequent contribution)

https://www.stewartmader.com/wikipatterns/


Wikipatterns offers practical, proven advice for guiding adoption of new technology, featuring case studies from Apple, Johns Hopkins, LeapFrog, and the nonpartisan National Constitution Center. Drawing from A Pattern Language, the architecture and urban design book by Christopher Alexander, Sara Ishikawa, and Murray Silverstein, Wikipatterns enables you to build an enduring, useful space for collaboration, whether your team is nearby or spread around the world. ReviewsOrder a Copy


Patterns & Anti-Patterns

  • 90-9-1 – Online participation generally follows a 90-9-1 ratio of readers to contributors
  • Acknowledge – Empower peer recognition and encourage its use
  • Ambassador – Person who helps adoption through their endorsement and consistent promotion
  • BarnRaising – Designated time to build structure, seed content, and set norms
  • BlankPage – Seed new pages with structure or content to guide others
  • Bully – Someone who goes too far in pushing people to use the wiki
  • Champion – Provides guidance, reduces obstacles, and is essential to the success of adoption
  • Charter – Guidelines for collaboration should be created at the start of technology adoption
  • FAQ – Scaffold that enables a group to build information and share answers
  • Gnome – Performs small edits on a wiki to continually improve its overall quality
  • IntentionalError – Make some mistakes for others to find and fix, thus getting them used to editing
  • Invitation – Good way to encourage non-early adopters to get involved
  • Magnet – Entice people to visit the wiki by exclusively posting essential information
  • Patron – Leader who confers legitimacy that can increase the likelihood of success
  • Sandbox – “Practice” page that may inadvertently hinder adoption
  • Scaffold – Give people a place to start by “framing” the content that should be added to a new page
  • Spectator – Someone who consumes wiki content but does not contribute to it
  • Troll – Provokes the community instead of focusing criticism on specific procedural or functional issues
  • Viral – Use spreads as people encourage colleagues to use the wiki

jeudi 18 février 2021

Google and Atlassian on how to work

Google : aristotle project,

What is a team, and what is an effective team.

https://rework.withgoogle.com/print/guides/5721312655835136/

1.Psychological safety

2. Dependability

3. Structure and clarity

4. Meaning

5. Impact


(which by the side, made me find about the google Oxygen project, on what makes a great manager : https://rework.withgoogle.com/guides/managers-identify-what-makes-a-great-manager/steps/learn-about-googles-manager-research/ )




Atlassian : Team Central Open culture

it's not all about work, but it's all about open communication

https://www.atlassian.com/practices/open#


Atlassian work-life Blog :

The importance of values
https://www.atlassian.com/blog

JetBrain / dev IDE : IntelliJ, PyCharm, etc.

It is possible to adapt those IDE to automatically allocate some memory at the startup time, and to 


For example, edit your version of idea.vmoptions and update the '-Xmx' line so that IntelliJ runs with 4Go allowed memory (my default was 1024...)

-Xmx4096m

Note that with mac os, it shouldn't be edited by hand directly through the files, but through 
PyCharm > Help > Edit JVM options

cf. : https://intellij-support.jetbrains.com/hc/en-us/articles/206544869-Configuring-JVM-options-and-platform-properties

KB websites and resources around Atlassian

 Official Atlassian resources

Atlassian documentation

https://confluence.atlassian.com/alldoc/atlassian-documentation-32243719.html

Atlassian Webinars

https://www.atlassian.com/webinars/all?tab=all

Atlassian community

https://community.atlassian.com/

Atlassian Developer community

https://community.developer.atlassian.com/

Atlassian Developer documentation

https://developer.atlassian.com/

Atlassian Jira

https://jira.atlassian.com

Atlassian Marketplace

https://marketplace.atlassian.com/

Atlassian open source add-ons

https://ecosystem.atlassian.net/

Limited access :

https://partners.atlassian.com


Atlassian support 

* https://support.atlassian.com/ (you'll need a valid SEN...)

* for app developpers : https://ecosystem.atlassian.net/servicedesk/customer/portal/9

Land Acknowledgment / Reconnaissance Territoriale

 

Tkaronto (Toronto, ON) - Land-acknowledgement


Tio'tia:ke (Montréal, QC) - Reconnaissance-territoriale

Password breaches

 https://cybernews.com/personal-data-leak-check/


mercredi 17 février 2021

Run Ansible playbook on AWS target with SSM System manager

AWS configuration

SSM State manager : Association Parameters

 documentParameters with an archive (zip) containing multiple yml files

{ "InstallDependencies":"False", "SourceType":"S3", "SourceInfo":"{\"path\":\"https://name_of_bucket_hosting_sources.s3-eu-west-42.amazonaws.com/prefix_key/archive.zip\"}", "PlaybookFile":"main.yml" }

 documentParameters with only one yml files

{ "InstallDependencies":"False", "SourceType":"S3", "SourceInfo":"{\"path\":\"https://name_of_bucket_hosting_sources.s3-eu-west-42.amazonaws.com/prefix_key/playbook.yml\"}", "PlaybookFile":"playbook.yml" }

sourceInfo

{ "name": "AWS-ApplyAnsiblePlaybooks" }

* Association Target

Depending on where you want to run the playbook, select what's appropriate




Ansible playbook 

example : daily export from an EC2 instance directory to an s3 bucket


- hosts: localhost
  become: yes
  become_method: sudo
  tasks:
  - name: Find zips in /path/to/data/*.zip older than 7d
    find:
      paths: /path/to/data/
      patterns: '*.zip'
      age: 7d
    register: files_to_delete
  - name: Remove zips in /path/to/data/ older than 7d
    file:
      path: "{{ item.path }}"
      state: absent
    with_items: "{{ files_to_delete.files }}"

  - name: Upload content of /path/to/data/ directory, ommiting structure-*.zip files
    community.aws.s3_sync:
      bucket: target-s3-share-name
      key_prefix: s3-prefix-dir-name/subdirectory/
      file_root: /path/to/data/
      include: "*.zip"
      exclude: "structure-*.zip"
      delete: no # if set to yes, removes remote files that exist in bucket but are not present in the file root.
  - name: Upload content of /path/to/data/ directory
    community.aws.s3_sync:
      bucket: target-s3-share-name
      key_prefix: s3-prefix-dir-name/subdirectory/
      file_root: /path/to/data/
      include: "*"


References :

mardi 16 février 2021

Atlassian thread dumps

 Install the Thready app to make sure that your threads have a meaningful name.


Then use the following scripts : 

https://bitbucket.org/atlassianlabs/atlassian-support/src/master/

vendredi 12 février 2021

Jira and Confluence DB setup PostgreSQL

Atlassian Confluence 

https://confluence.atlassian.com/doc/configuring-a-datasource-connection-937166084.html

$ sudo -u postgres psql postgres
postgres=# CREATE USER confluence;
CREATE ROLE
postgres=# ALTER USER confluence with PASSWORD 'confluencepwd';
ALTER ROLE
postgres=# CREATE DATABASE confluencedb WITH OWNER = confluence ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;
CREATE DATABASE
postgres=# \q


choose the "production install" to make sure you're offered the DB configuration option

Confluence 5.5 confluence.cfg.xml :

confluence5.5$ cat confluence.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>

<confluence-configuration>
  <setupStep>finishsetup</setupStep>
  <setupType>custom</setupType>
  <buildNumber>5528</buildNumber>
  <properties>
    <property name="attachments.dir">${confluenceHome}/attachments</property>
    <property name="confluence.license.hash">zdDzjZdbADawoyURqdGzoPaZBAgZKUHUYsHVjDZIEvvPyszv2XGziugEuwkSfQ&tg;Gdt6xeE2Xd9zIm1EpkgsJaGpbCyrw</property>
    <property name="confluence.license.message">zbAbzjWIpGHwCEPxwadtQDNsBirASzeAvdenNYxIEfgRidiyujEcxrnDWSbWuGVKbgehfZHRPfcxbDFasXfbofNaPgcAwQJuzycjPPOPFvpjyUgxKytaugGgBKevkPAgDRJwDOcKFdTNguqgEqzjtXoOHFbACGavHChWJweOuokZevvxXiTBydzgzbrcXhFWQIHDrqeEHaPXCgzCBqjVBdTyNYCrADHZKIDhcpxTNCjJjewXaicAOvssJvkRQcBqeyoeKcuXyrtvtyDXefYaeffWFbiQYcTBPAdBPGtenCKxZqpubCHYPdaXuqvSARJcuQBzBFvkuovnVJNNDBPpvSDAZpaOaJDOTkqvCXjoIxeDCsqkqdwwsfwnvXWsyzyITiQRPNShDmUESMzT5Imuvab8oNWjYvUj9Xe24N4jL6Wt8GLkwcyaWLBYZgSPeqPgRLozPuPlPjMObtRzOHaqj4m3e4o5KssixIGh&yg;1vT6qpRg0INFzR6OmnAkxOstG9OwNOCev&tg;a7tX9rxXs6u8i1jDyhH3ldYs8QUaqXeMrknEN5cxbIXbp9QAEjM7Z7AMHlaH4mcUgCc1B61j&yg;k&yg;7Ek&tg;fux6A9pr&yg;&yg;Ht&tg;hmHH2q5TFZd5EcZOqJQrp0nFuX9Gi1skZYGOxW&tg;BygPOwDXLkVZpe8WQPAqYCSedTpKGR2nDkWVETxEILEU&tg;kOeNoTlfbviJq4a5egI6eLA6Me3jlfBQL7f9pw&yg;fwS5zmtQJOOz7L&tg;qph1b&yg;DK8pTZNrkCzi4i38f</property>
    <property name="confluence.setup.server.id">O00E-3J0Z-TL49-EXW7</property>
    <property name="confluence.webapp.context.path"></property>
    <property name="hibernate.c3p0.acquire_increment">1</property>
    <property name="hibernate.c3p0.idle_test_period">100</property>
    <property name="hibernate.c3p0.max_size">30</property>
    <property name="hibernate.c3p0.max_statements">0</property>
    <property name="hibernate.c3p0.min_size">0</property>
    <property name="hibernate.c3p0.timeout">30</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.isolation">2</property>
    <property name="hibernate.connection.password">confluencepwd</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/confluencedb</property>
    <property name="hibernate.connection.username">confluence</property>
    <property name="hibernate.database.lower_non_ascii_supported">false</property>
    <property name="hibernate.dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property>
    <property name="hibernate.setup">true</property>
    <property name="lucene.index.dir">${localHome}/index</property>
    <property name="webwork.multipart.saveDir">${localHome}/temp</property>
  </properties>
</confluence-configuration>



Confluence 6.13.19 confluence.cfg.xml 
<?xml version="1.0" encoding="UTF-8"?>

<confluence-configuration>
  <setupStep>complete</setupStep>
  <setupType>custom</setupType>
  <buildNumber>7901</buildNumber>
  <properties>
    <property name="access.mode">READ_WRITE</property>
    <property name="admin.ui.allow.daily.backup.custom.location">false</property>
    <property name="admin.ui.allow.manual.backup.download">false</property>
    <property name="admin.ui.allow.site.support.email">false</property>
    <property name="atlassian.license.message">NNNOoN0BQNbCrAc9xI1CtmNHuh/7X0v80EtzME/dxvMBjZxPL8d+fhlzxbBefeX1OrKs27UAe0FGK iFpAa36ChpxmYxkbAmNJX8hoaroopBWk4Mg2Ev9DwHSVIaBPr5L1dI11Jkv5BEp0HDA6EeVF5Rk2 xucHHW2H1WqpSKWEcXiHMYmgXUifEXVRtJtHFTFSMKtHtIx975cLECoXTNWpNar+4nW6ghuorWCz OqFyi1Ul/nC3SB5VdUm5gmqE4H7w9uf4toOOIgxbGtsvPyIg3CEJm30emrwdvpzizdKP3+23GeQi e1z1co1yzEWxZMkOMml5V9/1rzTksbWEWEBcYMRmRZ3IyDbRPFyzLEwBg8ytr/T3gNZpXqwgIcnc X7Vm04xavyaxddq8hxkbQTWxFBt7i6JIkZCwUT1tKbdGuFT3dCw94Xwy+ZLorFPGNGo1NDgA80X0 PTA0kuRPrWf2GH8oonbLruehk/uO4RfhHbjYNVHN70z74+a+XYnayGBhydYW82HVG4PSRna3Jf1k 1m9QN7Jp7sdpRJhgb1yK02uc</property>
    <property name="attachments.dir">${confluenceHome}/attachments</property>
    <property name="confluence.database.choice">postgresql</property>
    <property name="confluence.database.connection.type">database-type-standard</property>
    <property name="confluence.setup.server.id">SERVER-ID</property>
    <property name="confluence.webapp.context.path"></property>
    <property name="hibernate.c3p0.acquire_increment">1</property>
    <property name="hibernate.c3p0.idle_test_period">100</property>
    <property name="hibernate.c3p0.max_size">60</property>
    <property name="hibernate.c3p0.max_statements">0</property>
    <property name="hibernate.c3p0.min_size">20</property>
    <property name="hibernate.c3p0.preferredTestQuery">select 1</property>
    <property name="hibernate.c3p0.timeout">30</property>
    <property name="hibernate.c3p0.validate">false</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.isolation">2</property>
    <property name="hibernate.connection.password">confluencepwd</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/confluencedb</property>
    <property name="hibernate.connection.username">confluencedbuser</property>
    <property name="hibernate.database.lower_non_ascii_supported">true</property>
    <property name="hibernate.dialect">com.atlassian.confluence.impl.hibernate.dialect.PostgreSQLDialect</property>
    <property name="hibernate.setup">true</property>
    <property name="jwt.private.key">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</property>
    <property name="jwt.public.key">ZVVObwNAOtxduxvT9j0ONDRSNNBPNL8NZVVOvtXPNLRNxPu2jN7n60EiVi3bc0wQkgFfPSyGpguYzwgMUrJpFpDT68v/wyq1P76pK5Eg+a5EIl1udK5oR9KjxX8YCkTe3KyAWk+9w2BnNpl/8IZw9ufO0iK28HR/hqv9VUeOSSmMn7wIUnoY1rq2OgoNJlCN/LOEnMr7lXu+BUH9veNJIqb1qS5AbVV5OlRG+OBF+8DbDmcSCXj9posOY3GQx7wPu7wCk+1hoe1g1L62kQU4uYqFqxYFbjRTgWdXL34O48i4dCyASvhroAmNAn143nlH9KsONC3EebuIC2ko5nz0jiFv1ecTvAF5W2Y70aAZ2wgQCGUz90BexrDo5yCmgbxaPdq+rWQKfc8xNzC8H+CZCI9MQjWj+xRFcmxByg/HxC0tNbdJ/EWSCnOVBatkbXWtFrBSXS/5x1ElJ7Sg/IfTCnuKvp+qkKzwbCZwg2XI3x3vblAa4G8pXTg4S0KYr5vyYt30rZ4L7xWJSW1LQBST2cPsZoYnMW+7NHZAlkciFsiWNtZONNR=</property>
    <property name="lucene.index.dir">${localHome}/index</property>
    <property name="synchrony.encryption.disabled">true</property>
    <property name="synchrony.proxy.enabled">true</property>
    <property name="webwork.multipart.saveDir">${localHome}/temp</property>
  </properties>
</confluence-configuration>



Atlassian Jira 

pg_ctl -D /usr/local/var/postgres start && brew services start postgresql
psql postgres
CREATE ROLE otrs WITH LOGIN PASSWORD 'otrs';
ALTER ROLE otrs CREATEDB;
\q
 
#create user and db
psql postgres -U otrs
CREATE DATABASE otrs;
GRANT ALL PRIVILEGES ON DATABASE otrs TO otrs;
 
#show databases
\list
 
#import dump
psql -h localhost -d otrs -U otrs -f /Users/tokamak/Desktop/IN/MISSIONS/TOTAL/OTRS/Files/psql_otrs_dump.sql
 
#show all db sizes
SELECT
    pg_database.datname,
    pg_size_pretty(pg_database_size(pg_database.datname)) AS size
    FROM pg_database;
 
 
 
#Create jiradb and user
CREATE USER jiradbuser WITH PASSWORD 'jiraSQL';
CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;
GRANT ALL PRIVILEGES ON DATABASE jiradb TO jiradbuser;

jeudi 21 janvier 2021

Opsgenie webinar / ressources

opsgenie is a tool allowing filtering and routing of monitoring-triggered alerts (nagios, AWS SNS, datadog, ...) to specific channels (SMS, phone-call, Slack, Jira, ...).

Main features on top of this :

  • time-table (who's on-call) 
  • alerts / incident resolution centralization
  • third party integrations with 100+ tools


Opsgenie Learning Center :  https://docs.opsgenie.com/


[video] Opsgenie : "What do we do?"  https://www.youtube.com/watch?v=yphtZ9z2TtA&feature=youtu.be

[video] Opsgenie: "First Look" https://www.youtube.com/watch?v=pyM2dROKn6g

Opsgenie Pricing : https://www.atlassian.com/software/opsgenie/pricing



Implement nagios to opsgenie Heartbeats :