# staff discussion 2020-04-09 ## Salary budget * 15k * 11k Sanghee / Nico * 2k Jin-Guk * 2k left * Open/to decide: 4.5k * 1.5k Balazs * 1.5k Sami * 1.5k Timothee * 2.5k above budget * 0.5k taken by gmbh (Sami) * diff of 2k ## Sami * Work/Hours * Changing / Adding HDD: 1-2x / month, maybe 2h each = 4h * Cleaning Diesbach when we have guests visiting/when we have events planned * Cleaning up Schwanden when we have things to throw away (such as celler, outside storage room) * Helping hand * Picking up package, picking up post, scanning, uploading on cloud: not sure if this is enough work to hire him full-time * How to afford him? * Needs: 1.5k+ * .5k gmbh * 1k ag * 20% = 32h = about 640CHF * 50h ag * 12h/week * 25h gmbh * 6h/week * 4 months accumulated * Kurzarbeit * Own Customer * Strengths * Sticking around * Having a car * Moving things * Doing dishes/manual chores * Doesn't question, knows his place * Weaknesses * **Reliability** * Communication * Transparency * Finding his own work proactively * Finishing tasks on his own * Need to be checked repeatedly to get things done * Phone sometimes off * Missing drive (maybe too comfortable?) * Failed approaches * Wifi project * Did not dig into * Did not embrace it * Daily status report * Keeping server room clean * Heinz PC * No backup taken * Not understood what he was doing * Got hint from Nico * And did something somewhat random * Plan 2020-04 * Plan 2020-05 ## Balazs * Strengths * Can do more advanced tech stuff than Sami * Better with remote working (less chance to drain) * Weaknesses * Young & stupid * Partly annoying * Questioning too much * Does not want to stick around, wants to go live in the city * Depending personality * Draining * Makes inexperienced decisions on the spur of moment with customers and does not communication to Nico / Sanghee ex) giving out random discounts without telling team * How to afford him? * European time zone support (1-2h/day) x 7 * 30d / month = 60h ; x20 CHF = 1'200 CHF * Hardware support * Unpacking, testing, installing, starting * Maybe 2x per month * Takes 1 day each time = 8h * Total 16h * Total hours/month: 76h * Plan 2020-04 * Plan 2020-05 ## Timothee * Tasks * uncloud dev * matrix setup * ## Jin-Guk * Support * ## Balazs/Samuel: Final Learning Project Balazs/Sami * More reliable * More clean * Being able to support * 2 months time line * Objective * Make them (more) usable * Enable them to support our stuff * Wifi networks in Linthal * Support requests * Support Faeh * Python coding * Mode * 2-4h per day, unpaid * Task given out for a week by Nico (?) * Inside talk.ungleich.ch * Nico can checkin * Topics * Create a script to configure Mikrotik routers / aps * using cdist * debugging wifi problems * ensuring that the facilities are CLEAN * office * server room * * Organisation * Announcing them to Kurzarbeit * Announcing * Kurzarbeit * 110h Sami * Usable in April/May: 25h from gmbh, 4h/week ag = 16h, total 41h * supposed: 110h / month * 80% of (110-41) = 0.8*69 = 55.2 * Total hours = 96.2h, ag pays 320chf, gmbh pays 500 chf * Kurzarbeit pays about 1100 CHF * 120h Balazs * Usable hours in April/May: * 2h/day support = 60h/ month * Kurzarbeit * 60h; 60*0.8 = 48h * Total = 108h ## Balazs/Samuel: Not working things * Keeping server room clean and sorted * Doing things on their own * Finding your customers ## What I want Sami and Balazs to learn * To be clean * To communicate * To be able to do work on their own # Project week 1 * Day 1 intro * Objective #1 become reliable, clean and professional * Objective #2 start, run and finish projects on your own * Objective #3 be able run, maintain and support most of our infrastructure * Objective: become a professional * Needs organisational skills * Reliability requires planning and thinking ahead * Being clean * Mode * Everyone learns for themselves * You can brainstorm, talk * The one who is ahead can hint the one lagging * Objective is that both understand the * Day 1 notes * 0853 sami writes in chat if Balazs is there (supposedly physical?) * 0900 Balazs is online (!), working * 0905 Sami is online, no microphone * 1113 Sami uses mobile phone, no progress from either of them * Day 1 feedback * Was today's learning circle reliable? * Balazs: no * Sami: no * Was today's learning circle professional? * Balazs: no * Sami: no * Was today's learning circle clean? * Sami: no * Balazs: yes * Professional: focus on the task, skip what is not necessary * Professional: stay reachable (chat!) * Next one: Monday 0900 * Day 1 feedback Sami/Balazs * Not available at 1200 * Sami: installed emacs, opened file, enabled org-mode * installed xbindkeys * Balazs: * .emacs file binding * tutorial/other tweaks * Hints day 1 * Don't side track * Focus on the main task * Get your base setup stable (including screensharing) * Finish within given time * Today's result are a pre-requisite for next session * You need a working laptop * "Does not work" - not specific enough * Need to be able to do screen sharing * Plan Nico * Install emacs: 5m * Install org-mode: 20m * Research functions: 30m * Creating function: 30m * Research binding: 10m * Configure binding: 10m * Research item creation: 5m * Create items: 5m * Total: 145m * Buffer: 35m * Organisation #1: org-mode introduction * Install emacs * Install org-mode * Create a function that opens ~/learning.org in your ~/.emacs * Bind that function to "f3" (configure it in .emacs) * Create a new item named "2020-04-10" * Create a sub item "ungleich learning circle" * Organisation #2: Creating, managing and sharing with "magit" * Install "magit" for emacs * Bind C-x g to open magit-status in ~/.emacs * Create a new directory ~/ungleich-learning-circle/ (with emacs) * Use C-h b in dired mode to find out how to * Create a sub directory ~/ungleich-learning-circle/YOURNAME/ (with emacs) * Move your previously created learning.org file into ~/ungleich-learning-circle/YOURNAME/ (with emacs) * Initialise it with git (with magit) * Create the repo "ungleich-learning-circle" on code.ungleich.ch under your username * Add your remote on code.ungleich.ch to your local git repo with magit * Push your repo * Add a new remote of a another participant * Move your ~/learning.org to ~/notes * Commit that file with magit * Push the repo with magit * End result: everyone has everything of everyone else * Day 2 results * Sami * lot of research about this thing * new thing * never heard about magit * Needed to understand * Learned that there is stuff that you can install into emacs * Learned about melpa * "There was a problem in the config file" * Balazs * added new repository * config files executed at startup * Question mark * Repository created * Day 2 follow up * Day 2 feedback * Was today's learning circle reliable? * Balazs: yes * Sami: yes * Was today's learning circle professional? * Balazs: yes * Sami: no * Was today's learning circle clean? * Balazs: yes * Sami: yes * Session 3: The definition of clean * Define what clean is * Visit the data center * Schwanden, 1300-1400, Sami * Linthal, 1300-1400, Balazs * Schwanden 1500-1600, Balazs * Linthal, 1500-1600, Sami * Checkin sharp with video call * Travelling time 1h * Checkin sharp with video call * Observe what is in the data center * Schwanden: server room, coworking room * Linthal: north, east, west, office * Document what is not clean * Why is it not clean? * Document how it could be improved * Think about sustainability * Explain how which uncleanness can relate to unreliability * Also document this * Result: an org-mode document in ~/ungleich-learning-circle/USERNAME/ documenting above facts * Day 3 notes * Balazs requested 13oo slot the day before * Re-requested change to 1400 later that that * Re-requested / announced change on the day * Calls without video * Only posts one note, not saying which one it is * Lack of responsibility? * Sami * Late arrival in Schwanden * place6 is big, have it on paper * Proper judgement in feedback round * Day 3 feedback * Cleanliness * No mixed stacks -> stuff sorted * All production systems labeled * Bringing tools back to the same place * Handling the whole flow * if something arrives, what are all necessary steps? * Is unpacking enough? * What other things are expected and important? * Charger / poe / vga without systems * Systems without accessories * Reliability * Buy more * Not find things * Losing time in finding * Losing time in ordering again * Losing money * Causing frustration * Question * Can ungleich rely on you & your work? * Session 4: "retrospective" * We review what went wrong yesterday and how to fix things long term * Retrospectives are often used for team review or long term team discussions * General guide * We make a list of what went wrong * The focus is on what, the who question is not in the focus (= no blame game, no personal critics) * Stick to the facts, not feelings * Steps retro - part 1 - 0915 to 1030 * 1. Make a list of things that went wrong / not as planned yesterday * write it down digitally, shareable * First write down all points here - don't go to step 2 and further! * 2. Write down what this caused * f.i. a delay, an outage, etc. * 3. Write next to each item, why it happened * The why can be trivial, but needs to be written down * 4. Go through each item and the reasons why it happens and discuss measures how to prevent it * This should not be one time recommendations, but possible to solve the origin * Steps cleanliness - part 2 - 1030 - 1145 * 1. Write down all things that were not clean in a table * 2. Write down how (even who, but without blaming) it happened in the first place * 3. Discuss possible mid-term solutions how to ensure that the state does not deteriorate. * 4. Discuss the effort (hours, costs) for each solution * 5. Reason which solution you would select and why * Day 4 Feedback * Balazs * /10 seconds / checking bread -> unprofessional / unplanned * There are a variety of ways to make this more professional * Easiest one is to announce at the beginning of the meeting that you'll need to check at XX:YY * Better is to not have that scheduled at all during the kick-off which is usually 0900 - 0915 * Rescheduling is pain in the ass * Makes Nico wanting to drop the session * My impression: Balazs is not interested in the learning session * Does he actually want to become clean, reliable and professional or is it not of interest? * Sami * Guesses cannot use google without account * Generally ok-to-good work * Lifting to good-to-great work * Learning a bit more technology is important * Much more important is to learn to learn * Most important is to become clean, reliable and professional * Both * It is supposed to be a discussion -> needs talking * Typical way: * A says one item * B says one item * repeat until step down * A comments on one item * B comments on one item * repeat until step done * repeat for all left colums * Starting session at 1200 -- nobody * Hints/notes * It's a good start * The earlier you communicate, the better (in general) * Especially when things go wrong * What went wrong from Nico's point of view (prior to viewing list of Balazs/Sami) * Sami not on time * Trying to fix by calling in car * Generally speaking trying to fix is a good approach ("ok approach") * Better: succeeding ("good approach") * Question I ask myself: * Does he not care? * Does it not matter? * Is the meeting irrelevant? * Balazs shifting meeting time to 1300 * Not a good start for a regular meeting * Question I ask myself * Why was shopping necessary before? * Balazs shifting meeting time a second time to 1400 * Unclear reasoning * Unclean working ("didn't know this before") * Question I ask myself * Why can the other meeting not be shifted? * Does he care about other participants? * Is he aware of the problems he is causing? * Is he aware of what responsibility he carries and it means? * Balazs shifting meeting time a third time to 1340 or similar * Makes it very hard to coordinate any call * The "maybe being there approach" is way worse than not being there from a planning view * Question I ask myself * Does he know what he is doing at all? * Both not posting results of both places at 1600 * Why did Sami only write it on paper, not digitally in the first place? * Why did Sami not see the time planning? * What happened to Balazs? Did he do anything? Is he participating at all? * Consequence is it was impossible to discuss the results * From Nico's point of view a typical problem * There is work relying on other work that can't be done, because prior work isn't done * Feedback to list of Balazs/Sami * Dig one reason deeper than given in the reason field * "2 overlapping inflexible events" * Why did they happen in the first place? * How can these be avoided? * Why is the communication lacking details? * "B. couldnt enter the datacenter" * This is a recurring pattern * What is the proper solution? Don't access the data center anymore? * Why is there a lack of key? Why is the key not on a keychain that always comes with? * Why was it not communicated right away that access failed? * Is not making it great or good, but making it better! * "Had to troubleshoot network errors" * Why is this necessary for writing down things? * Resolution * Go one step deeper * Why was there no short plan in the first place? * How do we ensure it is always there? * "Poor time planning, I went to buy a drink." * Resolution not precise enough / not specific * how do I plan better? * Establish patterns * Trying to be 10 minutes before the expected time is a general rule of thumb and helps a lot * "Another misplanning, spent to long on finding." * How can these misplannings be solved? What is the CAUSE for it? * What is the right duration? * What is not clean * Monitors without VGA cables * Things that cannot be used because parts are missing * APs * Switches * Mikrotik equipment * Servers stacked without description * Broken? Healthy? To be thrown away? * Stuff lying around in different places * The long hanging Ethernet cable (place6-east) * MONTHS ago Juanito asked this to be fixed * Office west looks like a minefield * From garbage to boxes to food * Is somebody or animals living in this room? * Notebooks without power adapters * Power adapters without devices * On top nothing labeled * Follow up on cleanliness * Need to establish clear processes with check lists * Day 4 feedback * Was today's learning circle reliable? * Balazs: yes * Sami: yes * Was today's learning circle professional? * Balazs: no * Sami: yes * Was today's learning circle clean? * Sami: no * Balazs: no * Session 5: "cleanup" * Finish yesterday work * Dig deeper in the reasoning, go one level deeper in the reason * Create a list of 10 recommendations how to take actions mid or even long term * Have a pattern / how do we fix it * Work together on magit * Ensure that both parties know how to use basic magit commands * Ensure magit work cleanly * Find out how/why the microphone on Sami's notebook doesn't work * Establish consistency * Day 5 Feedback * magit task * TestVM for emacs - magit for Sami * Sami connection * ubuntu 2h * debian / devuan live did not work * Home * only 2 / 10 recommendations * "5 or less" * inaccurate * professionalism -> no * we don't have time * Define what level of cleanliness we want * Define where things belong * Externalising * how much do you contribute to it * what is your role? * Thinking about reasons we can act on * cable labeling * uuids * introduce check lists * risk management -> link balazs * place6 office east * being clean by default saves time * Was today's learning circle reliable? * Balazs: no * Sami: no * Was today's learning circle professional? * Balazs: no * Sami: no * Was today's learning circle clean? * Sami: no * Balazs: no * Organisation #3: Managing your emails * Objective: be able to manage all your mails in mu4e * Sub objective: follow the "zero inbox approach" * General flow: * all email is synchronised using isync/mbsync * email is indexed with mu (xapian backend) * email is viewed in mu4e * All new emails arrive in the inbox * When read/handled, mails are archived * 2 fold objective * Establish team and project work together (80%) * Distribute the tasks * Plan * look at what needs to be done (5m) * Shortly discuss who starts with what (5m) * Research & implement * Always stay in touch * Begin to embrace emacs as a tool (20%) * Steps * Install mu4e * Start mu4e in emacs * Configure mbsync for your ungleich account * Synchronise all mails into ~/Maildir/ungleich * This structure leaves room for other mail accounts, like ~/Maildir/gmail * Verify that mbsync synchronises the mail * First on the commandline * Index mails using `mu` on the command line * Configure mu4e to get email with mbsync -a * Configure mu4e to "archive" emails into ~/Maildir/ungleich/YEAR/ * This gives you a good performance for the next decades * Configure mu4e/emacs for sending emails * Send the other participant an email via mu4e * Verify that it arrives * "Archive" it afterwards * Day 6 feedback * ubuntu outdated -> always keep your os updated * Fix ubuntu repo issues * took longer * 19.04 * couldn't see screen * mu + isync installed * authenticate and download mails * schedule * fixing notebook 30-45m * how to use software / how to ask questions 1h * man page * how to search * how to ask the right questions * mbsync/isync more or less last * mu4e where from * Was today's learning circle reliable? * Balazs: yes * Sami: no * Was today's learning circle professional? * Balazs: no * Sami: no * Was today's learning circle clean? * Sami: no * Balazs: yes * Alternatives * Could have used a VPS * Not download everything * Follow up * Feedback from Balazs * Document after ending * Into wiki * Sami also loves to document * cdist and git * Questions to ask oneself * Remote working personal * How urgent is something? * How important is something? * Planning #1: building a network * Objectives: * Understand planning * Understand networking * Goal * Build a network with * Multiple Wifi access points * 2 routers * a firewall * Configurations are versionised / can be rolled back * Configurations are easily reproducible * Configurations are stored centrally * Minimise IPv4 usage * But support IPv4 * Ensure that the plan exists fully * i.e. no excuses * Steps * Create a list which hardware you need * Including *everything* (i.e. cable, screw, psu, etc.) * Make a plan on what to setup in which order * List the technologies you plan to use * If there are multiple choices, list why you choose one over the other * Follow up questions * Follow up / hints * Clarification of requirements (good!) * What's the point of planning * Not to forget anything (correct) * "Up to us what hardware to choose" (correct) * Forget about back-and-forth (correct, detect earlier next time) * How much they will cost (yes!) * Plan the planning * When to do what within a 3h window? * What to do when? * Very happy with 9 o'clock / 12 o'clock schedule * Personal follow up * I (Nico) begin to understand what you (Sami, Balazs) need * plan * do * learn * repeat * Requires though * cleanliness * professionality * reliability * Requirements for tomorrow * Emacs working with org-mode * ungleich-learning-circle repository on code.ungleich.ch * Have mu4e configured for sending and receiving emails * Balazs * Playing with Sami (category of cables) * Explainer mode * Questions * VLANs / VXLAN * Working * Cleanup * Day 7 (=) * Results * Discussed how it works * Listed required hardware * Router * "should do next time" * requirements are not clear * "only beginning of" * upstream router * not documented well * not considered security * Not satisfied * NOT FINISHED, NOT DONE * Was today's learning circle reliable? * Balazs: yes * Sami: yes * Was today's learning circle professional? * Balazs: no * Sami: no * Was today's learning circle clean? * Balazs: no * Sami: no * Discussion * 5e * Balazs * Cannot concentrate * Clarifications * Feedback * hackmd is a mess * if it is a plan * it has structure * it is organised * it is okay to have a finishing/unclean appendix * Separate clean and brainstorming part * Use paper for network brainstorming * Learn to fill in the gaps * brainstorming * partially by assumptions * it's a lot by questions * based on brainstroming/assumptions you develop a plan * Questions you need to answer * When is it ready? * How much does it cost? * What do you use why? * How do you set it up * Planning #1.2: building a network * Objectives * Create 3 quotes for building a network * Sub objectives * 3 different variants that let the customer choose * Output are 3 documents * Need to be cleanly formatted * hackmd or org mode are ok * You can also use org-mode to create a pdf () * Each document contains * All required hardware incl. costs * A short description at the top what this offer includes, what the advantages and disadvantages of your proposal are * An estimate of how long it takes to install since the date of ordering * The number of working hours, detailed for each task * A short description for each offer how the requirements are solved (... is realised with ...) * The deadline for handing in all three quotes is 1200 * Requirements * Build a network with * Multiple Wifi access points * 2 routers * A firewall * 1 Gbit/s per "port" is ok * Configurations are versionised / can be rolled back * Configurations are easily reproducible * Configurations are stored centrally * Minimise IPv4 usage * But support IPv4 * Works in IPv6 only networks * You will get a NAT64 prefix for the mapped IPv4 Internet * Hints * Stay focused, organised * Organisation #4: Organising yourself * Objective: have a todo list based on org mode * Steps * Configure the "org-directory" to be ~/ungleich-learning-circle/USERNAME/ * This is important as it will be used by the todo function later * Extend your function from the organisation #1 session * Instead of opening a fixed file, we include two variable parts: * The hostname of the machine * The year * Pressing F3 should open ~/ungleich-learning-circle/USERNAME/learning-$(hostname)-$(year).org * we call this "your personal agenda" * Configure mu4e to create a org-mode tasks from an email * Store these tasks in ~/ungleich-learning-circle/USERNAME/todo.org * Configure emacs to open the "org-agenda" with "C-c a" * List all TODO entries * List the agenda of the day/week * Bind F8 to open the "org-todo-list" * Create some sample tasks in * From now on, maintaining tasks should be * Pressing F3 to open your personal "logfile" * Adding a TODO item * Pressing F8 to see the tasks with priorities * Bonus tasks * Configure mu4e to store org-mode tasks in .../todo-$(hostname)-$(year).org * Organisation #5: Emacs refresher * Objective: get confident with emacs commands * Steps * Find out and document in your aganda file how to... * Search for something forward * Search for something backward * Go to the beginning of the line * Go to the end of the line * Delete a word in front (to the right of the cursor) * Delete a word in back (to the left of the cursor) * Search for a regular expression (forward, backward) * List all "occurences" of a word in a file * Copy above instructions into an emacs buffer * Show all occurences of "Search" * Search (GREP) for a word in all files in a directory RECURSIVELY * Save all open files * Split the window/buffer vertically * Split the window/buffer horizontally * Switch between the different windows * Close all buffers besides the active one * Don't kill it * Close only the active buffer * Don't kill it * Kill the active buffer * Describe/Explain the difference between closing and killing * Switch between buffers that are not shown * Document two very similar, but slightly different ways * Brainstorming * cleaning up the server room and the office * finding problems in the server room * suggesting how to fix things * setting up wifi with capsman * configuring mikrotik with ssh * creating a shell script to configure a new mikrotik device * bird * networking # List of unclean work * Monitors are missing VGA cables * Devices in the server room not labeled * Server room is a mess * Notebooks without power supplies * APUs without power supplies * Power supplies alone # List of unprofessional work * Questioning all the time * Not being on time * Notebook not in a usable state (microphone, camera not working) # List of unreliable work