Thursday, November 4, 2021

how i work

My dear,
Find what you love and let it kill you.
Let it drain you of your all. Let it cling onto your back and weigh you down into eventual nothingness.
Let it kill you and let it devour your remains.
For all things will kill you, both slowly and fastly, but it’s much better to be killed by a lover.
~ Falsely yours
- Bukowski

The rules:

  1. everything is absurd.
  2. going from 0 to 1 is hard. going from 1 to 2 is easy.
  3. Complaining is a synonym for volunteering.
  4. in this discipline, there is no magic.
  5. better to beg forgiveness than ask for permission.
  6. eat your own dog food.
  7. develop out loud.


Thursday, May 13, 2021

PTSD Reduction: Microsoft Teams on Mobile

I get a lot of notification on Microsoft Teams on my Android mobile device. A LOT. To reduce my PTSD, I've made the following changes today

  1. Launch Teams & press your cute photo in the upper left corner. Press Settings
  2. Notifications
  3. General activity

  4. I'm going to change the sound for Channels, Chats, Mentions and turn off the sound for Reactions. Press those links
  5. I'm liking the "Chaos" sound, as that's shorter than the default sound.
  6. I made the Reactions sound silent, as I don't care how many "Likes" I get. Ok, maybe I do care. You like me, you really like me!
Look, kpk is already 20% happier! You can too!

Saturday, May 8, 2021

Pesto Eggs & Veg Chili - The Chipping

Th' Chili

Ingredients

  1. oil
  2. chopped onions
  3. chili powder, cumin, smoked mild paprika, pepper, salt
  4. Can or two of diced tomatoes. mayhap tomato paste.
  5. White vinegar
  6. Can or two of black beans
  7. 💘💘💘LOVE😻🌈🦄

Directions

  1. oil in pan, pan on low
  2. onions in pan. let 'em sweat like c&c music factory
  3. add spices to make a gravy. sweat some more, richard simmons.
  4. tomatoes, add a glug of vinegar, bring to boil
  5. reduce heat, reduce to a good consistency
    1. consider the lily adding some water & tomato paste for thickening and depth of flavor.
  6. after about 15m or so, add your beans. Don't be a dork and add them too early, or else you'll get mushy beans.
  7. cook for a bit. Salt to taste. Stir while looking whistfully in the distance, remembering with fondness a misspent youth.

Aigs

Ingredients

  1. butter
  2. chopped onions
  3. eggs (duh). 3
  4. basil pesto
  5. Salt ... and Peppah!

Directions

  1. butter in pan. melt low. onions in pan. sweat (are you detecting a theme?)
  2. whisk eggs & a glorp of pesto. whisk them, whisk them good
  3. med heat, pour in pan, make an omelette
    1. after about 30s or so, cut some holes in the cooked bits so the eggs cook all the way through. also lift the sides, so the eggs on top can cook through.
    2. Cook covered over low at the end, so the top bits are cooked through.
    3. Admire that this looks like a damn pizza.
  4. Salt & pepper to taste.

Serving

Cut a slice of the egg. Put some chili on it. Eat it.
My friend suggested serving this way, so this is named after him (the Chipping). 

Bone Appiteet 

Saturday, April 24, 2021

Cardamom Rice and Curried Cauliflower


Cardamom Rice

Ingredients

  • Glug cooking oil
  • Powdered cardamom, ginger, garlic
    • or substitue with the real deal for the ginger & garlic. I am lazy.
  • Salt or MSG
  • 1 cup uncooked rice
  • 1.5 cups water

Directions

  1. Glug cooking oil in pan
  2. Flame on low
  3. Blort of cardamom, ginger, garlic in pan
  4. Let sweat for a little bit
  5. Add uncooked rice, stir
  6. Let sweat for a little bit more. Less than 36 hours please.
  7. Add water & salt or MSG
    1. (btw, people in the US get #triggered by MSG. I love the stuff and use it when I can. It's great flavor)
  8. Boil, stir, flame low, cook 20 minutes covered.
    1. "Alexa, set a rice timer for 20 minutes!"

Curried Cauliflower

    Ingredients

    • Glug cooking oil
    • Half onion
    • A foo's worth of ginger
      • I use ginger paste because I am lazy. I also don't use ginger paste in the rice because I am a man of mystery.
    • Curry powder
      • support your local Asian market

    • Bit o' Butter, or ghee for authenticity
    • Handful o' Chopped spinach
    • Half cauliflower, chopped
    • Handful golden raisins (shhhh. secret ingredient!)
    • Half can coconut milk
    • Little bit of water for steaming
    • Salt to taste

    Directions

    1. Glug cooking oil in pan, low heat
    2. Add onions and ginger. Let sweat
    3. Medium heat, add butter and melt
    4. Add a generous amount of curry powder. You're trying to make a gravy here, so not so much that it's powderey, but not so little that it doesn't taste of the curry.
    5. stir together. Add more butter if it's too powdery.
    6. Add spinch, cook down.
    7. Add cauliflower, stir, get it covered in curry
    8. Add coconut milk & golden raisins & stir
    9. Cover & let steam. Maybe add some water here so the cauliflower steams correctly
    10. "Alexa: your rice timer is done, your rice timer is done"
    11. Salt & Taste. Maybe add some more curry powder if not curry enough. And vow to be better next time

    Eating

    Sauce on rice in bowl or plate. Use a fork. Try to get most of it in your mouth. You know the drill.

    Chrome and Tab Groups: Where the heck am I?

    Task Context Switching 

    If you're like me (and why wouldn't you be? come on!) you've got a lot of tabs open in Google Chrome. Like, an unsettling amount - enough to make your memory paging system go "Hol' up". 


    I like to organize my browser so I have separate Chrome windows that represent a task context. 

    For example, currently I have separate Chrome windows dedicated to: 
    1. A code change associated with a work ticket around some performance improvements. I have a spreadsheet on there for tracking timing changes, a few tabs for some associated research, and a few tabs for watching our metrics system.
    2. Articles I want to read unassociated with any active work tickets. I park "this looks interesting and I want to get to it soon™" articles there.
    3. A presentation that I'm working on, with a tab for the actual presentation and another tab for some survey results from anonymous questions I'm asking.
    4. Et cetera, et cetera, et cetera
    This system works well for me, but it can provide some tough context switches, when I go from Task A to Task B, I have to hunt through my current 11 (yes 11!) Chrome windows to find the right context, so I can work on my task.

    what follows is an ACTUAL screen shot. Feel my pain.

    Context switching means looking at each window in turn, and trying to figure out what task context that window is dedicated to by tab titles. Easy to do once, but omg, try doing it dozens of times a day.

    I want to make this process easier, so context switches require less effort.

    All Hail Chrome Tab Groups

    Chrome Tab Groups are a relatively new feature where you can take one or more tabs and associate them with a label. It's pretty easy to use, with a right mouse click and a little bit of typing. The linked blog is the best introduction and guide.

    When I create a new Chrome window with a set of tabs, I will associate the leftmost tab with a Tab Group and give it a short name so I understand the context quickly.

    For instance:

    You probably don't know what wi2524860 (dms load means, but I do. When I want to work on that task, I can quickly loop through my Chrome windows, and, by keeping my eye on the upper left corner, find the right window to bring into focus.

    Bonus Points

    Windows 7 introduced a great application shortcut key feature, where the Windows Logo key + a number will switch to that number program pinned to the taskbar

    If you're like me and have Chrome pinned as task 1, you can hold down the Windows Logo key and repeatedly press 1 to cycle through your windows, looking for the correct task using the tab group label.

    Anybody that's been in a meeting with me (may the Lord have mercy on your soul), has probably noticed me doing this at the beginning of a meeting, where I will say "no, no, no, no, yes" as I find the right window. I'm sorry you had to listen to that, but here we are.

    Conclusion

    Anyway, it's a minor efficiency thing, but whatever we can do to save those precious, precious seconds. Thanks.



    Thursday, April 22, 2021

    Rush and Female Engagement: A Scientific Study

     

    Kevin Kostrzewa, Noted Data Scientitian

    Abstract

    The Canadian progressive rock band, Rush, is long considered the consummate “guy’s band”, featured in such media as the film “I Love You, Man”, only enjoyed by men. The goal of this research was to see if this was a fact based observation. I test the argument  by using survey data in a non-randomized sample of whoever of my friends was bored enough to humor me by answering.

    Keywords

    Canadian Rock, Toque, Hoser, 9/8 time signature

    Methodology

    To support this, I created a survey using the so-called free application “Polls for Pages”. The survey had an n of ostensibly 43, but only the first 40 are free, and I’m super cheap, so n=40. 


    My data set is self reported females, but people lie like rugs on the Internet, so who knows who answered. I am concerned that one of my answers came from my cat-dog, Milo. But, still, I press on.


    Questions range from the mundane (“As an identified female, I like Rush”), to the probing (“As an identified female, I am ambivalent toward Rush”), to the outrageously provocative (“As an identified female, I dislike Rush”). I also included “Other”, for reasons unknown even to me.


    This data was collected between 2021-04-16 08:04:16 and 2021-04-17 14:34:40. Learn how to read YYYY-MM-DD formatted dates, sheeple.

    Findings

    Raw data

    As an identified female, I like Rush   

    9 votes

    23.1%

    As an identified female, I am ambivalent toward Rush

    14 votes

    35.9%

    As an identified female, I dislike Rush

    11 votes

    28.2%

    Other

    5 votes

    12.8%


    Other 

    • While I acknowledge the technical and artistic brilliance of the band Gettys voice slays my eardrums in a bad way and Neil Peart’s political theories are stinky.

    • *WOMAN, first of all.  Second, I am Rush-ambivalent.

    • As an apparently very male, male, who was once called Smed by a very not male, male, I don’t know that I can offer anything meaningful here, but I will try my best.

    • My now husband loves Rush! So I took him to a Rush documentary on our first date. Found their lyrics to be thoughtful and cool and love that there was no line for the ladies restroom at their concerts.

    Pie Chart

    Bar Chart

    Triangle Chart

    No such thing exists. Grow up.

    Conclusions

    I have too much free time on my hands. I am also cheap when it comes to seeing a joke through. Finally, I should have considered the free Google forms to begin with, which is a double-duh considering how much I use the Google free applications.

    Appendix


    Sunday, March 28, 2021

    Money Tracking Spreadsheet

     I'm now 9 years into a money tracking spreadsheet that I've designed in Google sheets, with over 27K individual transactions. As this has been super useful to me (and fun, it's kind of my hobby, tbh) around my finanical journey towards FIRE (Financial Independence, Retire Early - ok probably not the latter), I thought I'd share this out with the greater community.


    This spreadsheet is designed around
    • yealry budget for "have to" expenses
    • 2 week discrentionary sprints, as that's my pay period (I'm sure it can be adapted to different frequencies)
    • categorization of transactions using US BLS standards
    • extrapolation of discretionary expenses, to get a better picture of where your money is going
    I do as many transactions using credit card as possible (as long as it doesn't cost more than paying with cash). I don't like cash because allows me to see exactly where my money goes. Also, don't discount the value of rewards.

    Anyway, feel free to start with my instructions document and my template spreadsheet.


    Thursday, March 25, 2021

    power(shell), corruption & lies: Building command line arguments

    I hate typing long command lines to command line utilities. Invariably I will get one obscure path wrong and spend an hour with a copy / pasted command line in notepad to split out the components and figure out what I screwed up this time.

    A lot of those long typing jobs have to do with feeding a bunch of file or directory names to an .exe

        foo_the_bar.exe --blort first\dir second\dir third\dir hey\heres\a\filename.txt

    If I only had a tool that I could use to generate that list of directories and filenames.

    powershell and Invoke-Expression (iex to it's friends) to the frickin' rescue.

    1. Write a powershell expression using Get-ChildItem (gci), Where-Object (?) and Select-Object (select) to build your list of things. Use -join ' ' to space separate the list of things

      PS c:\users\kpk> (gci c:\my\dir -recurse | ?{ $_.FullName -match 'some.*criteria$' } | select -expand FullName) -join ' '

    2. Use string interpolation to embed that expression with the name of the .exe you want to run. In my case, I was using cloc to (duh) Count Lines Of Code.

      PS c:\users\kpk> "cloc $((gci c:\my\dir -recurse | ?{ $_.FullName -match 'some.*criteria$' } | select -expand FullName) -join ' ')"

    3. Run that expression a few times to make sure you're happy with it. Add some command line arguments as needed.
    4. Use iex (Invoke-Expression) to run that beautiful mess.

    Let's unpack the expression a bit

        PS c:\users\kpk> (gci c:\my\dir -recurse | ?{ $_.FullName -match 'some.*criteria$' } | select -expand FullName) -join ' '

    1. gci c:\my\dir -recurse |

      gci (Get-ChildItem) recurses through a directory structure. It's more complicated than that, but things often are.

    2. ?{ $_.FullName -match 'some.*criteria$' } |

      ? (Where-Object) will test each produced file & directory for a criteria. In this case, a regular expression. Only the worthy shall pass.

    3. select -expand FullName

      select (Select-Object) extracts the FullName property from the produced collection of objects and expands it to a list

    4. -join ' '

      I need that list turned into a single flattened string with space separation, because cloc wants space separation. Other command line utilities want other kind of formatting (prefixed by a magic argument, comma separated, etc.). -join's your friend here.
    Once all of this is looking good, and you've prefixed it with the name of the command you want to run, iex takes care of the rest.

    Never let a human do a job that a robot can do better. Ok, maybe not 'Never', but mostly. Sometimes.... Whatever.