lördag 16 december 2023

A homage to my unicycle instructor on the other side of the world!

Hooray for content creators!

As a person that had my childhood before internet was a thing, it sometimes hits me how amazed I am over how I've been able to learn to ride and do a few tricks on a unicycle, thanks to a person that I've never met and who lives on the other side of the world!

I just love it when you can learn stuff because people have been sharing their know-how on the net, and even more so when the content is of high quality and well structured. Just like Chris Huriwai's UniQuest-series on his YouTube channel PrettyGoodChannel. And it's free! With the possibility to support through patreon.

Image from the intro sequence to Uniquest videos.

So, what makes me think that Chris' content stand out from the rest of the "learn to unicycle" stuff you find when searching YouTube? Well, one thing that trigger my lust for learning is that he arranged his videos in a leveling tree. That way you always have tricks to learn that should be pretty much in reach to nail.


The leveling tree


Leveling tree
 

Beginner


Level 1: Assisted mount, Assisted ride 3+ revs, Assisted idle 3+ revs, Unassisted ride 1+ revs
Level 2: Unassisted ride 4+ revs, Assisted bunny hop, Unassisted idle 1+ revs, Free mount 2+ revs
Level 3: Unassisted ride 8+ revs with dismount, Ride down curb, Assisted backwards 2+ revs, 180 turn
Level 4: Ride in a circle, Rolling bunny hop, Riding one footer, Jump mount

Street


Level 1: 90-90 twist, Rolling hop down curb, Drop mount
Level 2: Halfrev, Hop up a curb, Roll-flip mount
Level 3: Hop down 2 stair, 180 twist, Crankgrab
Level 4: Fakie 180 twist, No footer footplant, Crankgrab 180 out
Level 5: 180 down curb, Outspin footplant, Running jump mount, Pop-plant

General


Level 1: Idle 2+ revs, Switch freemount, Standing ride 3+ revs, Backwards ride 2+ revs, Ride in a figure 8
Level 2: One foot ride 2+ revs, Ride down 2 stair, Backwards 4+ revs, Stillstand 3+ seconds
Level 3: Blind idle, 360 wall push, Ride down 4 stair, Assisted wheelwalk, Kick-up mount
Level 4: Idle to one-foot ride, Can-can, Stomach ride, Suicide mount, Footjam
Level 5: Wheelwalk, Feet back to pedals one-foot ride, Seat in front backwards, Blind one foot ride, Seatdrop one foot pick up mount, Bay hop

Flatland


Level 1: 10+ static hops, Leg wrap mount, Seat in fron ride 3+ revs
Level 2: Seat in front bunny hops, No footer, 180 unispin mount
Level 3: Leg extension, Seatdrop, Seatbounce
Level 4: 90 unispin / hop on tire, Tiregrab superman, Body varial mount
Level 5: 180 unispin, Seatdrop-legwrap, Half roll

The videos

Beginner 

Chris' instructions for level 1, level 2, level 3, level 4.

Me


There hasn't been any accidents to talk about, but sure, sometimes things don't go according to plan. Mishap when practicing "Ride in a circle"

General

Chris' instructions for level 1level 2level 3level 4, level 5level 6.

Me level 1 (2021-05-01)

Street

Chris' instructions for level 1level 2level 3level 4, level 5.

Me level 1 (2021-09-05)


Rolling hop down curb

Flatland 

Chris' instructions for level 1level 2level 3level 4level 5.

Me level 1 (2021-09-23)


"Seat in front riding" with the seat a bit too far in front


Current state

As you can see from the dates after the links to my recordings of myself I learned the basics during 2020 and cleared five levels during 2021. When writing this it's a few weeks left of year 2023 and I haven't published any unicycling videos since 2021. Did I quit? No, but I've been focusing on General level 2 where one foot riding has shown to be hard for me to learn. So far I've learned one foot idle (a trick that Chris became aware of later on that he forgot to add on the right level 😘) which seems to be a good stepping stone to one foot riding!


When you start digging...

Another thing that fascinates me is that every time I've started a new hobby and I begun to learn a few things about the subject it always unfold countless variations and it seems you can devote your whole life to it but still not learn it all. As a simple example, did you know that a person has tried to ride a unicycle around the world? Or that you can do downhill unicycling?


Once I had a Harmonica teacher in USA

During the years from 2011 to 2017 I learned to play blues harmonica from David Barrett at bluesharmonica.com. He also has a leveling system, named "Levels of Achievement™ Program" where you get (to buy) a pin for each level you clear. His content is not free though, but there is a lot of it, it is well arranged and he listens to your recordings of the lessons you've taken and gives you feedback.

I cleared level 6 before quitting

Looking through my mail history it seems trying to clear level 7 gave me at bit of a sweat and it finally made me give up the program.

The levels in "The level of achievement program"


During the course you learn to create your own songs, here's one I composed, following a few rules of what it should include.

My own blues song on Soundcloud

When you play blues harmonica one single harmonica won't do 😛 Bluesharmonica.com has videos that also covers how you do harmonica maintenance and enhancements. Yes, there are tools built specifically for harmonica needs.


A harmonica for each key and then some.

So, what about you?

What is your favorite sources on the net for learning something? If you have any, I'd love if you write a comment about it! 😃😍

söndag 27 augusti 2023

KÀnner du till begreppet "Intellektuell ödmjukhet" och sÀtten du kan vara biased pÄ?

LĂ€ste tidningen "Modern psykologi" genom Readly

Under semestern nÀr jag var pÄ Facebook sÄ fick jag Äterkommande reklam för Readly, en prenumerationstjÀnst för olika typer av tidningar (7000+ magasin och dagstidningar skriver de pÄ hemsidan). Till slut tÀnkte jag att det var vÀrt att testa en gratismÄnad för att se vad det Àr. Har inte gjort nÄn riktig utvÀrdering av vad jag tycker Àn, men skulle jag redan vara prenumerant pÄ nÄn av tidningarna sÄ verkar utbudet man fÄr för 119:- mÄnaden som ett kap! Serietidningarna var dock svÄrlÀsta pÄ mobilen, det blir för smÄtt...

Hur som helst, i tidningen "Modern psykologi" (det kombinerade sommarnumret 4 och 5, 2023) sÄ hade de en artikel av Sara Hammarkrantz om "Intellektuell ödmjukhet", vilket var ett nytt begrepp för mig, som jag tyckte var intressant. Hon skriver bland annat:

Att vara intellektuellt ödmjuk handlar om att vara öppen för nya perspektiv, idéer och information frÄn andra - och att vara villig att ompröva sina egna Äsikter och tankar.

Mark Learys, forskare och professor i psykologi och neurovetenskap vid Duke University definierar det som:

I vilken utstrÀckning mÀnniskor kan erkÀnna att deras övertygelser kan vara fel.

Vad kan hÀnda dÄ, om den intellektuella ödmjukheten hos befolkningen Àr lÄg? Fredrik Livheim, psykolog och forskare i klinisk neurovetenskap sÀger:

Vi behöver vÀxla upp vÄr förmÄga globalt att hantera komplexitet och mÄnga perspektiv. Annars kommer fler och fler att ta till coping-strategier i form av förenklade vÀrldsbilder, svart-vitt tÀnkande och polarisering. Vi kommer se mer av Trumpism, konflikter och att folk söker sig till starka-ledare-med-enkla-sanningar.

Bias

Artikeln nĂ€mner att en sak som stĂ€ller till det för oss nĂ€r vi tĂ€nker Ă€r olika typer av bias, bland annat nĂ€mner de Overconfidence bias (the tendency to overestimate our knowledge and abilities in a certain area). I samband med det tar de upp ett exempel om en studie som gjordes pĂ„ larmcentralen 112 dĂ€r man tagit hjĂ€lp av AI för att hitta orsaken till varför operatörerna och de inringande ibland missade att den drabbade personen fĂ„tt hjĂ€rtstillestĂ„nd. NĂ€r en larmfunktion utifrĂ„n detta skapades och installerades sĂ„ ignorerade personalen Ă€ndĂ„ varningarna frĂ„n larmet eftersom de tyckte att de sjĂ€lva var bĂ€ttre pĂ„ att avgöra den drabbades tillstĂ„nd. TyvĂ€rr gavs ingen referens till studien och jag har inte lyckats hitta nĂ„gon information om den annat Ă€n innan den genomfördes "Snart införs AI-stöd för medicinska vĂ„rdbedömningar pĂ„ 112".  

Det hĂ€r fick mig att tĂ€nka pĂ„ en lista med 50đŸ˜±olika typer av bias som jag sett swisha förbi i mitt flöde förut. Ett sĂ€tt att bli mindre biased Ă€r att lĂ€ra sig om olika bias och reflektera över om man fallit i nĂ„gon av tankefĂ€llorna. 50 stycken kĂ€nns som mĂ„nga att hĂ„lla reda pĂ„, men jag tĂ€nkte att det hĂ€r inlĂ€gget ska hjĂ€lpa mig att sĂ€tta mig in i nĂ„gra i taget.

PĂ„ sidan titlemax.com kan du hitta nedanstĂ„ende lista i text, men de har ocksĂ„ en bildversion av samma lista dĂ€r varje bias har ett förtydligande exempel, vilket jag tycker gör rĂ€tt mycket för förstĂ„elsen.

TvĂ„ exempel pĂ„ bilder av bias med förtydligande exempel 

50 Types of Common Cognitive Biases

  1. Fundamental Attribution Error: We judge others on their personality or fundamental character, but we judge ourselves on the situation.
  2. Self-Serving Bias: Our failures are situational, but our successes are our responsibility.
  3. In-Group Favoritism: We favor people who are in our in-group as opposed to an out-group.
  4. Bandwagon Effect: Ideas, fads, and beliefs grow as more people adopt them.
  5. Groupthink: Due to a desire for conformity and harmony in the group, we make irrational decisions, often to minimize conflict.
  6. Halo Effect: If you see a person as having a positive trait, that positive impression will spill over into their other traits. (This also works for negative traits.)
  7. Moral Luck: Better moral standing happens due to a positive outcome; worse moral standing happens due to a negative outcome.
  8. False Consensus: We believe more people agree with us than is actually the case.
  9. Curse of Knowledge: Once we know something, we assume everyone else knows it, too.
  10. Spotlight Effect: We overestimate how much people are paying attention to our behavior and appearance.
  11. Availability Heuristic: We rely on immediate examples that come to mind while making judgments.
  12. Defensive Attribution: As a witness who secretly fears being vulnerable to a serious mishap, we will blame the victim less if we relate to the victim.
  13. Just-World Hypothesis: We tend to believe the world is just; therefore, we assume acts of injustice are deserved.
  14. NaĂŻve Realism: We believe that we observe objective reality and that other people are irrational, uninformed, or biased.
  15. NaĂŻve Cynicism: We believe that we observe objective reality and that other people have a higher egocentric bias than they actually do in their intentions/actions.
  16. Forer Effect (aka Barnum Effect): We easily attribute our personalities to vague statements, even if they can apply to a wide range of people.
  17. Dunning-Kruger Effect: The less you know, the more confident you are. The more you know, the less confident you are.
  18. Anchoring: We rely heavily on the first piece of information introduced when making decisions.
  19. Automation Bias: We rely on automated systems, sometimes trusting too much in the automated correction of actually correct decisions.
  20. Google Effect (aka Digital Amnesia): We tend to forget information that’s easily looked up in search engines.
  21. Reactance: We do the opposite of what we’re told, especially when we perceive threats to personal freedoms.
  22. Confirmation Bias: We tend to find and remember information that confirms our perceptions.
  23. Backfire Effect: Disproving evidence sometimes has the unwarranted effect of confirming our beliefs.
  24. Third-Person Effect: We believe that others are more affected by mass media consumption than we ourselves are.
  25. Belief Bias: We judge an argument’s strength not by how strongly it supports the conclusion but how plausible the conclusion is in our own minds.
  26. Availability Cascade: Tied to our need for social acceptance, collective beliefs gain more plausibility through public repetition.
  27. Declinism: We tent to romanticize the past and view the future negatively, believing that societies/institutions are by and large in decline.
  28. Status Quo Bias: We tend to prefer things to stay the same; changes from the baseline are considered to be a loss.
  29. Sunk Cost Fallacy (aka Escalation of Commitment): We invest more in things that have cost us something rather than altering our investments, even if we face negative outcomes.
  30. Gambler’s Fallacy: We think future possibilities are affected by past events.
  31. Zero-Risk Bias: We prefer to reduce small risks to zero, even if we can reduce more risk overall with another option.
  32. Framing Effect: We often draw different conclusions from the same information depending on how it’s presented.
  33. Stereotyping: We adopt generalized beliefs that members of a group will have certain characteristics, despite not having information about the individual.
  34. Outgroup Homogeneity Bias: We perceive out-group members as homogeneous and our own in-groups as more diverse.
  35. Authority Bias: We trust and are more often influenced by the opinions of authority figures.
  36. Placebo Effect: If we believe a treatment will work, it often will have a small physiological effect.
  37. Survivorship Bias: We tend to focus on those things that survived a process and overlook ones that failed.
  38. Tachypsychia: Our perceptions of time shift depending on trauma, drug use, and physical exertion.
  39. Law of Triviality (aka “Bike-Shedding”): We give disproportionate weight to trivial issues, often while avoiding more complex issues.
  40. Zeigarnik Effect: We remember incomplete tasks more than completed ones.
  41. IKEA Effect: We place higher value on things we partially created ourselves.
  42. Ben Franklin Effect: We like doing favors; we are more likely to do another favor for someone if we’ve already done a favor for them than if we had received a favor from that person.
  43. Bystander Effect: The more other people are around, the less likely we are to help a victim.
  44. Suggestibility: We, especially children, sometimes mistake ideas suggested by a questioner for memories.
  45. False Memory: We mistake imagination for real memories.
  46. Cryptomnesia: We mistake real memories for imagination.
  47. Clustering Illusion: We find patterns and “clusters” in random data.
  48. Pessimism Bias: We sometimes overestimate the likelihood of bad outcomes.
  49. Optimism Bias: We sometimes are over-optimistic about good outcomes.
  50. Blind Spot Bias: We don’t think we have bias, and we see it others more than ourselves.

SĂ„ nu har du ocksĂ„ material för att passa pĂ„ att lĂ€ra dig om bias och öka din intellektuella ödmjukhet en aning đŸ˜ƒ

söndag 20 augusti 2023

Windows 11 update hijacks the Print Screen button (from Lightshot)

If you install the Windows 11 update KB5025310 your print screen button will be assigned to the Snipping Tool in Windows. I have the screen capturing tool Lightshot installed and listening to the print screen button, but now Windows 11 hijacked it. Here's how you stop Windows Snipping Tool to listen to the print screen button.

Open "Accessibility keyboard settings"


Set "Use the Print screen key to open Snipping Tool" to "Off"




Done!

One thing I like about Lightshot compared to the Snipping Tool is that after you've selected the area to copy it is possible to resize and move that area, which is really handy if you're doing precision work. It also lets you add text, lines, arrows, boxes and freehand drawings on the copy.

onsdag 9 augusti 2023

Do you know the difference between a Fake, a Spy, a Stub, a Dummy and a Mock when writing unit tests?

Published at last

Below is a post draft that I wrote in the summer of 2017 but for reasons I don't remember it has stayed as a draft since then. 

Now, in the summer of 2023 I'll just add Martin Fowler's summary of the test doubles in the book "xUnit Test Patterns" copied from https://martinfowler.com/bliki/TestDouble.html (which I think is a great summary) and publish it.

  • Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.
  • Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an InMemoryTestDatabase is a good example).
  • Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what's programmed in for the test.
  • Spies are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.
  • Mocks are pre-programmed with expectations which form a specification of the calls they are expected to receive. They can throw an exception if they receive a call they don't expect and are checked during verification to ensure they got all the calls they were expecting.

The old draft

Do you know the differences between Fake, Stub and Mock when writing unit tests? I thought I did, and was about to write some kind of guide to use at work, but thought I'd do a little bit of research first to be sure to get the details correct. After reading on different pages I became more and more confused, until I found this page http://xunitpatterns.com/Test%20Double.html, that I think describes the types and their differences in a clear way that probably can be useful for us.

The page is on a webified version of the book xUnit Test Patterns: Refactoring Test Code that seem to be a great book that I have missed out on up until now.


When you know the differences between the types, then you might want to read more about how to choose between them according to Mark Seeman here: Mocks for Commands, Stubs for Queries

In his post Mocks Aren't Stubs, Martin Fowler also explains the difference between stubs and mocks and investigates pros and cons of the classicist and mockist way of writing your tests.


So, something that I thought I already knew and I could write about in an hour or so, ended in hours of research and a post with links... keeping it DRY :)

lördag 5 augusti 2023

Skapa en AI-modell som styr en bil i AWS DeepRacer

AWS DeepRacer

AWS DeepRacer Àr tjÀnst i Amazons moln. Med hjÀlp av den tjÀnsten kan du trÀna upp en maskininlÀrningsmodell med förstÀrkningsinlÀrning sÄ den kan köra en bil i skala 1:18 pÄ en virtuell eller riktig bana. Modellen kan du sedan anmÀla till olika tÀvlingar.


Som IT-konsult pÄ Knowit hakade jag pÄ möjligheten att prova pÄ DeepRacer nÀr Knowit skapade sin egen interna tÀvling dÀr deltagarna fick generöst med fria modelltrÀningstimmar. I det hÀr inlÀgget tÀnkte jag visa lite hur tjÀnsten ser ut nÀr man skapar sin modell. I ett eventuellt framtida inlÀgg Àr min plan att visa hur det ser ut nÀr modellen trÀnas.

Skapa en modell

NÀr man loggat in i Amazons molntjÀnst sÄ listas de senaste tjÀnsterna man anvÀnt. För att komma in pÄ AWS DeepRacer sÄ klickar man pÄ den lÀnken.



VÀl inne i tjÀnsten sÄ fÄr man upp menyn i bilden nedan. För att skapa en modell sÄ gÄr man till "Your models".


HÀr listas de modeller man skapat tidigare. Eftersom jag provat mig fram en hel del sÄ har jag en del modeller liggande redan. PÄ mitt konto finns dock en begrÀnsning pÄ max sex stycken samtidiga modeller, sÄ jag tar bort en först för att visa hur man skapar en ny med knappen "Create model".



Modellen skapas med en wizard i fem steg. Före alla steg fÄr man lite info om trÀningen.


Steg 1: Val av modellnamn och bana

I första steget fÄr du namnge modellen och om du vill Àven ange en beskrivning av den.


Det finns 61 banor att vÀlja mellan att trÀna modellen pÄ.



VÄra tÀvlingar skulle till att börja med köras pÄ tÀvlingsbanan frÄn 2018, det vill sÀga "re:Invent 2018".



Steg 2: Val av tÀvlingstyp och trÀningsalgoritm

Det finns tre olika tÀvlingstyper att vÀlja mellan, just nu var det "Time trial" som gÀllde.


Vid val av trÀningsalgoritm blir det helt plötsligt rÀtt hög nivÄ... PPO eller SAC, det sa mig ingenting. NÄn av guiderna jag tittade pÄ har jag för mig föreslog att börja med PPO, ser att alla mina modeller anvÀnder den.


VÄgar man sig pÄ att fÀlla ut "Hyperparameters" sÄ blir det riktigt lÀskigt, men som tur var sÄ var rÄdet att lÄta dessa vara tills man blivit varm i klÀderna.


Steg 3: Definiera vad bilen kan göra, d v s dess Action space

Först fÄr man lite info igen.


Sen ska man vÀlja mellan "Continuous" eller "Discrete" action space.


VÀljer man "Continuous" sÄ kan man i nÀsta steg ange max styrvinklar och min/max hastighet.




De val man gjort visas ocksÄ visuellt. Man kan Àven klicka direkt pÄ en av pilarna och dra den hur man vill ha det.


Eftersom tÀvlingen handlar om att ta sig fortast runt banan sÄ har jag tÀnkt att det Àr bra att utöka action space med högre hastigheter, sÄ nÀr jag anvÀnt "continuous" sÄ har jag ökat max hastighet frÄn ett till fyra.


Om man istÀllet vÀljer "Discrete" sÄ ska man i nÀsta steg explicit ange ALLA möjliga utfall som modellen kan ha som utdata. Nedan Àr förinstÀllda vÀrden.



Jag har testat att anvĂ€nda bĂ„da sorterna, men det var ett tag sen jag skapade mina modeller och minns inte om nĂ„gon av dem fungerade bĂ€ttre. Jag fick aldrig till lĂ€sningen av loggfilerna som skapas vid utvĂ€rderingen av modellen, men om man fĂ„r det sĂ„ verkar logganalysverktygen mer anpassade till  (eller kanske t o m krĂ€va) "discrete"-varianten.


Steg 4: VĂ€lja fordon

Jag har tvÄ likvÀrdiga virtuella bilar, den fÀrgglada har jag för mig att jag fick som pris för att jag stÀllt upp med en modell i en tÀvling. Det finns varianter av bilarna, iallafall av de fysiska, som har dubbla framÄtriktade kameror och LIDAR.


Steg 5: Belöningsfunktionen

Det Àr nu man fÄr börja koda! HÀr ska du, i Python, ange den belöningsfunktion som modellen ska trÀnas med. Modellen fÄr in bilens tillstÄnd, den tar ett beslut om vad bilen ska göra hÀrnÀst och din belöningsfunktion berÀttar för trÀningsalgoritmen hur bra beslutet var utifrÄn bilens nya tillstÄnd.

NedanstÄende funktion Àr förifylld, den kan returnera fyra olika vÀrden beroende pÄ hur lÄngt frÄn mitten bilen Àr placerad, ju lÀngre bort frÄn mitten desto lÀgre vÀrde. Det vill sÀga, den belönar modellen nÀr den lyckas följa mittlinjen.


Men eftersom tÀvlingen handlar om att köra fortast sÄ behöver man Àven belöna hastigheten pÄ nÄt sÀtt och dÄ behöver man mer data att titta pÄ. Data om bilens tillstÄnd och Àven lite info om banan kommer in till belöningsmodellen som en dictionary i parametern "params". Den innehÄller nedanstÄende vÀrden (illustrationer och förtydliganden finns hÀr):
  • "all_wheels_on_track"
    Boolean
    flag to indicate if the agent is on the track

  • "x"
    float
    agent's x-coordinate in meters

  • "y"
    float
    agent's y-coordinate in meters

  • "closest_objects"
    [int, int]
    zero-based indices of the two closest objects to the agent's current position of (x, y).

  • "closest_waypoints"
    [int, int]
    indices of the two nearest waypoints.

  • "distance_from_center"
    float
    distance in meters from the track center

  • "is_crashed"
    Boolean
    Boolean flag to indicate whether the agent has crashed.

  • "is_left_of_center"
    Boolean
    Flag to indicate if the agent is on the left side to the track center or not.

  • "is_offtrack"
    Boolean
    Boolean flag to indicate whether the agent has gone off track.

  • "is_reversed"
    Boolean
    flag to indicate if the agent is driving clockwise (True) or counter clockwise (False).

  • "heading"
    float
    agent's yaw in degrees

  • "objects_distance"
    [float, ]
    list of the objects' distances in meters between 0 and track_length in relation to the starting line.

  • "objects_heading"
    [float, ]
    list of the objects' headings in degrees between -180 and 180.

  • "objects_left_of_center"
    [Boolean, ]
    list of Boolean flags indicating whether elements' objects are left of the center (True) or not (False).

  • "objects_location"
    [(float, float),]
    list of object locations [(x,y), ...].

  • "objects_speed"
    [float, ]
    list of the objects' speeds in meters per second.

  • "progress"
    float
    percentage of track completed

  • "speed"
    float
    agent's speed in meters per second (m/s)

  • "steering_angle"
    float
    agent's steering angle in degrees

  • "steps"
    int
    number steps completed

  • "track_length"
    float
    track length in meters.

  • "track_width"
    float
    width of the track

  • "waypoints"
    [(float, float), ]
    list of (x,y) as milestones along the track center

HÀr har jag sparat de belöningsmodeller jag har försökt med. I slutet försökte jag kombinera att bilen skulle ha en bra riktning mot nÀsta "waypoint" i banan, att den skulle ligga centrerad pÄ banan samt ha en hög hastighet.

NÀr man Àr klar med belöningsmodellen sÄ ska man vÀlja hur lÀnge modellen ska trÀnas. Jag tyckte det verkade som att en timme var absolut minimum för att fÄ fram en modell som klarade sig hyfsat bra.



De vill gÀrna att man anmÀler sin modell till en tÀvling nÀr den Àr klar. Det körs stÀndigt kvalificeringstÀvlingar dÀr resultatet avgörs i slutet av mÄnaden.


Sen Àr det bara att klicka pÄ "Create model" sÄ sÀtts trÀningen av modellen igÄng och man fÄr rulla tummarna eller hitta pÄ nÄgot annat under den tid man stÀllt in i steget innan att trÀningen fÄr ta.



Avslutning

SÄdÀr, nu har du fÄtt en bild av hur man skapar en modell i AWS DeepRacer. Som jag skrev i början av inlÀgget sÄ ska jag försöka knÄpa ihop ett till inlÀgg dÀr det syns hur trÀningen och utvÀrderingen av modellen ser ut.

tisdag 4 juli 2023

Podcast-avsnitt som sammanfattar psykologisk trygghet bra

RÀtt ut frÄn utkast

Det hÀr Àr ett inlÀgg som legat som utkast i över ett Är. Det jag egentligen ville ha sagt dÄ var just att

jag tyckte att det hĂ€r avsnittet sammanfattade det (psykologisk trygghet) mycket bra och att det dĂ€rför kunde vara bra att "spara" som ett blogginlĂ€gg

men genast började jag grĂ€va i vad teal-podden och teal Ă€r och dĂ€rför blev mĂ„let otydligt och inlĂ€gget aldrig klart. Nu slĂ€pper jag det som det Ă€r med det hĂ€r lilla tillĂ€gget đŸ˜€

Intro

Hade nyss en fönsterputsardag och lyssnade dĂ„ samtidigt pĂ„ avsnitt 35 av tealpodden som handlade om psykologisk trygghet. Jag har hört, sett och lĂ€st om psykologisk trygghet frĂ„n mĂ„nga kĂ€llor nu, men jag tyckte att det hĂ€r avsnittet sammanfattade det mycket bra och att det dĂ€rför kunde vara bra att "spara" som ett blogginlĂ€gg.

Om Tealpodden och vad Àr teal?

Tealpodden hittade jag för att Ulla Osterman, upphovsmakaren till dialogverktyget Orangino Work, delade det Tealpodd-avsnitt dÀr hon var med och pratade om sitt dialogverktyg. Tealpodden drivs av Fredrik Högström och Maria Berglund:

Vi driver Tealpodden som en hobby, vid sidan av vĂ„ra vanliga jobb. IdĂ©n till Tealpodden kom under en lĂ„ngpromenad. Vi hade lĂ€st boken Reinventing Organizations och tyckte att den satte fingret pĂ„ nĂ„got vi bĂ„da kĂ€nt och försökt formulera – att ett bĂ€ttre, snĂ€llare och mer livstillvĂ€nt arbetsliv var möjligt. Men hur kunde vi bidra till den förĂ€ndringen? Jo, vi startar en podd! En podd dĂ€r vi utforskar framtidens organisationer och hur en annorlunda arbetsvardag kan se ut.

 

Fredrik Högström och Maria Berglund
https://www.tealpodden.se/om-oss/

Teal Àr en fÀrg mellan blÄ och grön och har fÄtt sitt namn frÄn det engelska ordet för fÄgeln kricka, som har fÀrgen som ett band bakom ögat. Det var standardfÀrgen pÄ skrivbordet i Windows 95.

https://commons.wikimedia.org/wiki/File:Corhwyaden.jpg

Fredric Laloux, författaren till Reinventing Organizations, kopplar fĂ€rger till organisationers mognadsstadier och anvĂ€nder teal till det högsta stadiet. 

https://prominda.com/english/teal-organizations/

Om podcast-avsnittets gÀster

I avsnittet om psykologisk trygghet sÄ gÀstas Tealpodden av Maria Wigenius och Lina Hedin frÄn Add Insight som arbetar med att bygga psykologisk trygghet i team och organisationer.

Maria Wigenius och Lina Hedin
https://www.tealpodden.se/podcast/avsnitt35/

onsdag 28 juni 2023

GÀstat annat team för en Orangino Work-session

Bakgrund

Torsdagen den 15:e juni 2023 blev dagen dĂ„ jag för första gĂ„ngen höll i en Orangino Work-session i ett annat team Ă€n mitt eget. Anledningen till att jag skriver det hĂ€r inlĂ€gget Ă€r för att senare komma ihĂ„g hur det var och tankar kring vad jag kan Ă€ndra pĂ„ till en eventuell nĂ€sta gĂ„ng. Om du som lĂ€ser det hĂ€r inte har koll pĂ„ vad Orangino Work Ă€r sĂ„ Ă€r det nog svĂ„rt att hĂ€nga med, men du vill kan du lĂ€sa min intro hĂ€r.

Teamet som bjöd in mig Àr ett "kusinteam" till det jag ingÄr i och hade tidigare kört en omgÄng sjÀlva efter en mycket kort överlÀmning mellan mig och teamledaren. Anledningen till att jag blev inbjuden var för att teamledaren skulle kunna fokusera helt pÄ att bara vara deltagare och för att se om det var nÄgra signifikanta skillnader i hur vi leder en session. Det hÀr var en del av deras Äterblick (retrospective) de körde den eftermiddagen.

UpplÀgg

Jag körde ett tvÄtimmarspass med en paus i mitten. Inledningsvis höll jag en kort Powerpoint-dragning dÀr jag presenterde mig sjÀlv och varför jag var dÀr. BerÀttade ocksÄ kort om psykologisk trygghet och Googles studie Aristoteles. Jag drog Àven historiken om hur Orangino Work kom till.

Sen fick de göra en incheckningsövning, laget runt: "BerÀtta om nÄgon feedback du gett eller fÄtt sen förra tillbakablicken."

Efter det drog jag reglerna och tog upp saker vi sjĂ€lva funderat lite pĂ„: 
  • "Hur ska jag tĂ€nka kring skattningen för teamet? Är det hur vi Ă€r överlag inom teamet, eller Ă€r det hur teamet Ă€r mot andra team?"
  • "Jag förstĂ„r inte beteendet eller beskrivningen riktigt, vad ska jag göra?"
I stort sett sÄ Àr svaret pÄ bÄda frÄgorna: VÀlj att tolka det som du vill och beskriv din tolkning i samband med att du motiverar din skattning. Men ofta nÀr det Àr ett krÄngligt ord sÄ brukar vi snabbt försöka fÄ en samsyn innan skattning sÄ att vi skattar pÄ en hyfsat lika tolkning. Sen började "spelet".

Borden var arrangerade i hĂ€stskoform, dĂ€r jag satt i ena Ă€nden. Åtta personer var med, tvĂ„ i teamet var frĂ„nvarande. Vi hann med fem beteendekort som jag hade valt ut innan. Eftersom det finns sĂ„ mĂ„nga kort att vĂ€lja bland - vilket gör vĂ€ljandet svĂ„rt - sĂ„ valde jag bara frĂ„n de kort som mitt team kört innan och varit givande.
  • Ber om hjĂ€lp
    Jag vÄgar be andra om hjÀlp i mitt arbete nÀr sÄ behövs
  • Lyhörd
    Jag Àr bra pÄ att uppfatta Àven sÄdant som inte Àr tydligt uttalat.
  • PĂ„litlig
    Jag stÄr för de utfÀstelser jag gör.
  • NĂ€tverkare
    Jag bygger stÀndigt mitt eget nÀtverk som ett led i att skapa nya möjligheter.
  • LĂ€raktig
    Jag har vilja och förmÄga att lÀra mig nya saker.
Ordningsföljden för att motivera sin skattning körde vi laget runt medsols. Oftast frÄgade jag om det var nÄn som var frivillig att börja.

I slutet körde jag en utcheckning laget runt: 
  • "Vad har du lĂ€rt dig under sessionen?" 
  • "Har du nĂ„n feedback till mig att tĂ€nka pĂ„ om jag gör det hĂ€r igen?"
StÀmningen var pÄ samma gÄng nervös, uppsluppen och nyfiken.

Feedback frÄn deltagarna

Det hÀr Àr den feedback jag fick frÄn insamlingen i slutet.

Bra lÀngd
2 timmar inklusive paus upplevdes som en bra lÀngd.

RÀttvisare fördelning av att inleda en runda
Ett förslag var att vara bĂ€ttre pĂ„ att rotera vem det Ă€r som inleder en runda av skattningsmotiveringar. NĂ€r man frĂ„gar om nĂ„gon Ă€r frivillig sĂ„ blir det ofta samma fĂ„tal personer som svarar "ja" pĂ„ den frĂ„gan och ofta kan det vara teamledaren. Jag tolkade personen som gav feedbacken att en runda kan upplevas olika beroende pĂ„ var i ordningen man svarar. Även fast man satt sin egen skattning innan sĂ„ kan de som motiverar sin skattning tidigt till viss del fĂ€rga motiveringar frĂ„n personer som kommer senare.

Kan fortsÀtta sjÀlva
Jag frÄgade om de tyckte det var nÄn skillnad mellan den hÀr gÄngen nÀr jag ledde och gÄngen dÄ teamledaren lett sessionen. Skillnaderna de tog upp var att jag hade kört introt med psykologisk trygghet, bakgrunden till Orangino Work och incheckning. SjÀlva sessionen verkade annars vara lika, vilket tyder pÄ att de kan fortsÀtta köra pÄ egen hand.

Egna reflektioner

Begreppet "Psykologisk trygghet" fortfarande inte vÀlkÀnt
Jag tog med lite kort om psykologisk trygghet i presentationen, vad det Àr och hur viktigt studien Aristoteles kommit fram till att det Àr. Eftersom jag ser och hör om det hÀr i vÀldigt mÄnga av de flöden jag följer sÄ trodde jag att det hÀr numera var vÀlkÀnt och hade med det mest för att se om vi hade samma bild av det. Studien Aristoteles, som jag kallade "sönderrefererad", hade de inte alls koll pÄ och hade nog heller inte nÄn bÀttre koll pÄ begreppet psykologisk trygghet.

SÄ den hÀr delen hade kunnat förlÀngts aningen, till exempel med Amy Edmondsons studie om sjukhusteam dÀr de mest framgÄngsrika teamen ocksÄ var det som sÄg ut att göra mest fel, fast i slutÀnden visade det sig att den egentliga skillnaden var att de tordes rapportera felen, som gjorde att de kunde förbÀttra sig.

Kanske Ă€ven ta med flygplansolyckan dĂ€r en av orsakerna tros ha varit att piloten med lĂ€gre rang inte tillrĂ€ckligt ifrĂ„gasatte vad piloten med högre rang gjorde.

Formation och sjÀlv vara inne eller utanför
Teamet satt vid bord arrangerade i en hÀstsko-form, det var bra sÄ lÀnge jag presenterade. Men efter det skulle man kanske tightat till det lite, det hade nog varit snabbt och enkelt att dra ihop borden till en triangel. DÄ hade de kommit lite nÀrmare varandra, det hade blivit lÀttare att höra och se varandra. Det var förmodligen inget problem, men allt som ökar kontakten borde vara bra.

Jag satt pÄ ena ytterkanten. Min upplevelese var att man rÀtt ofta vÀnde sig till mig nÀr man motiverade sin skattning, fast det viktiga egentligen Àr kontakten med det egna teamet. Jag har ocksÄ tÀnkt pÄ att nÀr man som teammedlem sitter fokuserat lyssnande och hÄller tillbaka feedback för att man inte vill pÄverka den som talar Ät nÄgot hÄll kanske blir lite snÄl Àven med "ja, jag lyssnar pÄ dig"-feedback. Det blir dÄ lÀtt att ledaren tydligast visar den feedbacken och det leder i sin tur att den som talar vÀnder sig till denne.
Det man kan göra annorlunda Àr att som ledare istÀllet stÄ upp utanför ringen. DÄ fÄr man bÀttre överblick över skattningarna och de som sitter kanske fÄr en starkare kÀnsla av att de vÀnder sig till varandra och inte till ledaren. Det hÀr fÄr jag kolla upp.

AngÄende feedback "RÀttvisare fördelning av att inleda en runda"
NÀr jag gick kursen och kursdeltagarna "provspelade" sÄ tror jag ledaren ofta valde vem som skulle börja utifrÄn hur man skattat och dÄ fick de med "extremerna" börja. Det vill sÀga ledaren valde först nÄgon av de som skattat högst och efter det nÄn av de som skattat lÀgst. Jag kanske ska reda lite i om det fanns nÄn djupare tanke bakom det, eller om det var nÄn tillfÀllig idé. För annars tycker jag det Àr smidigt att bara gÄ laget runt, det flyter pÄ bra och alla vet nÀr det Àr deras tur. Man skulle kunna skifta och köra motsols varannan gÄng eller nÄt sÄnt för att fortfarande hÄlla det enkelt men ÀndÄ fÄ lite mer variation.

Gör om "Om mig" mer som en historia
Delen "Om mig" i presentationen tĂ€nker jag fortfarande ska hĂ„llas mest som en parentes, men den skulle kunna göras mer i "story telling"-stil istĂ€llet för ett bunt stolpar. Även om jag hade det med sĂ„ kanske det kan förtydligas hur och varför jag kommit in pĂ„ Orangino Work.

Incheckningen
Jag var lite fundersam över hur jag skulle göra med incheckningen. PĂ„ en vanlig retro sĂ„ anvĂ€nds incheckningen delvis för att alla ska ha fĂ„tt komma till tals nĂ„n gĂ„ng i början, som ett sĂ€tt att komma igĂ„ng sĂ„ att man lĂ€ttare Ă€r med och bidrar muntligt Ă€ven senare. I en Orangino-session sĂ„ gĂ„r ordet runt oavsett, sĂ„ incheckningen tappar dĂ„ sin roll som munlĂ€dersmörjare. Att jag Ă€ndĂ„ tog med just "har du gett/fĂ„tt nĂ„n feedback" Ă€r för att det kan vara bra att reflektera över teamets feedback-kultur, feedback Ă€r viktigt för ett bra samarbete, bland annat lĂ€r man sig vad andra uppskattar och varför och Ă€r tĂ€tt knutet till psykologisk trygghet.

Hur hantera reflektionsdelen i slutet?
Förutom att de fick köra en utchecknings-runda sĂ„ skippade jag reflektionsdelen som ska göras i slutet. Jag tycker att materialet frĂ„n kursen angĂ„ende den Ă€r rĂ€tt svagt och den tar ganska lĂ„ng tid att genomföra. Reflektionsdelen handlar om att titta pĂ„ de beteenden man avhandlat och (först i par, sen i grupp) reflektera över 
  • beteendets betydelse för gruppen, 
  • vilka beteenden dĂ€r gruppen har störst/minst samstĂ€mmighet,
  • vilka beteenden som vĂ€ckte störst engagemang och energi
Det handlar ocksÄ om en analys av hur samtalet i sig gÄtt till, deltagarna ska reflektera över
  • Kom alla till tals lika mycket?
  • Hur var öppenheten?
  • Lyssnade vi pĂ„ varandra?
Att reflektera över hur gruppen samtalat tÀnker jag nu ÀndÄ Àr en viktig sak att prata om och det vore nog bra att fÄ in pÄ nÄgot sÀtt. SÄ det Àr nÄt att tÀnka pÄ till nÀsta gÄng, samt Àven över ledarens ansvar för att styra detta. Hur mycket taltid varje person tar sig beror vÀl till stor del pÄ hur man Àr som person. Men ska ledaren kanske försöka korta ner de mer verbala och pÄ nÄt sÀtt underlÀtta de mindre verbala att fÄ mer tid? Eller sÄ lÄter man som ledare bli det och lÄter deltagarna reflektera över skillnaderna sÄ kanske de justerar det sjÀlva vid nÀsta tillfÀlle?

Sammanfatta insamlade idéer
Under sessionen skrevs det ner nÄgra idéer pÄ saker att gÄ vidare med. Det som skrevs ner togs inte upp mer under sessionen, men det hade nog varit bra att i slutet sammanfatta det som skrivits ner och kommit överens om hur det ska tas vidare.

Är det hĂ€r nĂ„t jag vill göra igen?

Ja, absolut! Det var intressant att hÀlsa pÄ i ett annat team och kÀnna pÄ deras stÀmning och höra vad de tycker och tÀnker. Som sagt sÄ var det ett "kusinteam" till mitt eget sÄ mycket var pÄ grund av det bekant och hemtamt, men skillnader finns ÀndÄ, vilket kan leda till nÄn slags vÀrdefullt utbyte. Sen kÀnns det som att nÀr ett team vÀl har fÄtt en intro till Orangino Work sÄ kan de ta det vidare sjÀlva, men jag kan mycket vÀl tÀnka mig att köra den intron för flera team.