-
Take a pause before that email
Iām not an ill tempered person, and it takes quite a lot to get me riled up. In the pandemic however getting frustrated has been oh so much easier!
For once, there are less face to face interactions, which makes me feel removed from whomever Iām talking to. The interactions that happen over video chat feel a lot less personal, and despite regular deliberately scheduled 1:1 time itās harder to connect with colleagues on a personal level.
Then thereās the lack of water cooler interactions between meetings. A colleague of mine correctly pointed out that before the era of video chat meetings, weād have the time to decompress and process content between meetings with those micro-interactions. Having just a minute or two āoff the recordā after a large call helps process, frame, and align prior interaction. And just sharing a laugh or being able to say āwell that was stressfulā helps reduce the inevitable daily stress buildup.
Finally, all of the above is true for everyone else - and weāre already in a melting pot of individuals with different communication styles. People are getting frustrated, making other people even more frustrated. Itās a frustration chain reaction!
All of this led to me into a cycle of sending some snappy responses, feeling terrible after time would pass, setting up time to profusely apologize face to face, and wowing to never overreact to work stress sources again⦠Until the next encounter that is. It all culminated with me getting entirely too frustrated between 8:00 and 8:05 am last Thursday and taking a day just to decompress.
And that reminded of something Iāve learned years ago, and I something I would practice with rigour - until the background frustration level rose that is.
Early in my career Iāve been taught to cool down before sending that angry ping or an email ā type it up, leave it in my drafts - come back to it an hour or two later.
In 9 out of 10 cases I end up deleting the message feeling relieved that an incoherent stream of hatred never saw the light of day. Most of the time when Iām angry I donāt really have a goal Iām trying to accomplish (other than inform all the parties involved of my feelings), and thatās not a great basis for professional communication.
In the remaining case, I would end up completely rewriting that email to remove the hostile tone and focus on the source of the issue instead. There are problems that are worth addressing with candor ā but candor is too often conflated for the lack of tact.
And itās hard to take a break at work - because there are often so many things to do, and so little time to do them. Which makes taking a minute to breather feel like a waste of time, when itās one of the most productive things you can do in the long run.
So here I am, putting these thoughts into writing to remember to take a break before initiating aggressive communications ā hopefully the more I think about this, the easier it gets to remember to pause, self-assess, and disconnect.
-
On mentorship
A couple of months ago I had a conversation with a fellow employee ā letās call him Balgruuf ā who decided to quit the grind and become a career coach. Shortly after Iāve witnessed them interact with our mutual acquaintance ā Farengar ā who was in a difficult spot in their career. Balgruuf was enthusiastically instructing on what are the exact steps Farengar must take, and in what order. It generally felt like Balgruuf had this whole career thing figured out, and Farengar just stumbled along. Needless to say, Farengar quickly changed the topic.
I havenāt stopped thinking about mentorship since that day. In the 10 or so years of my career so far, Iāve had a number of mentors - both formal and informal. I also get the opportunity to mentor people around me ā both sides of the relationship really fascinate me.
Iāve had some mentors who worked really well for me - and some who didnāt. I also had more different level of success with mentoring people myself. And one of the defining factors in a successful experience was this: people conflate mentorship with giving advice ā two different, but oh-so-close feeling things. Let me elaborate on the difference with a tangentially related example.
Sometimes my wife comes home and shares frustrations that inevitably arise after a long day at work. Thereās little to no room for my input, because she needs somebody to just listen, or maybe a rubber duck to talk at. And sometimes my better half wants to hear my thoughts on the subject. Needing to vent and asking for advice are two completely distinct scenarios in this case.
Just like in my home life, sometimes people come looking for an advice. But more often than not, theyāre looking for mentorship.
Giving advice is prescriptive, while mentorship is more nuanced, and takes more finesse from both parties.
In Relationomics, Randy Ross discusses a role that relationships play in personal growth. He talks about the harmful āself helpā culture which discounts the value of human element in self-development.
This is the gap where mentorship fits in. Thereās one huge ābutā though, and thatās the fact that the person needs to be ready for the specific feedback they might be getting.
Mentor is there to guide the internal conversation, encourage insight, and suggest a direction. Mentor is there to identify when someone whoās being mentored is heading in a completely wrong direction, or not addressing the elephant in the room.
In fact, Iāve been noticing a trend at Google to avoid trying to use the word āmentorshipā overall, to avoid the go-to advice slinging attitude of your everyday Balgruuf. And itās been a helpful trend - since framing mentorship relationship around guidance and reminding mentors to let those who are mentored to drive the growth is crucial for healthy peer to peer learning.
Even if so-called mentor has some aspect of life completely figured out for themselves, the person whoās mentored must drive the whole journey. Otherwise thereās really no room for growth in that relationship.
-
Writing for fun
Iāve had this blog since 2012, and Iām only now getting close to my 100th post. All because Iām a perfectionist, which sure as hell didnāt make me a better writer.
I love writing, and I feel like Iām getting better after every piece I write - be it publishing blog posts, journaling, countless design docs, navigating email politics, or writing a book. I write a lot, about many different topics - if Iām interested in the topic for at least a few hours - you can bet Iāll write about it.
Then how come this blog barely gets one post per month?
I meticulously research and edit, generously discard drafts, and it often takes me days strung across weeks to put something together. Something that I feel is worthy of being displayed next to my name. Perfectionism at its core, attached to hobbyist web content.
I struggled with this when writing Mastering Vim too - the first edition was rushed out by the publisher long before it was ready, with various errors and inconsistencies in it, and a few downright unfinished bits. It took over a year of me avoiding even thinking about the book and two more editions to become comfortable with merely sharing that I published a book.
And all of this sucks the joy out of writing. Iām not a for-profit writer. Itās not part of my career path, and I obviously didnāt go to school for it (not that I went to school for anything else). And it sure as hell shouldnāt be grueling to have to come up with what to write.
This blog has a rather modest following - it brings in around 3,000 readers a month, with a few regulars sprinkled here and there (honestly - I would love to meet at least one of you weirdos someday). I donāt target a particular market niche, I donāt have a content or SEO strategy, and I opportunistically monetize to cover the website running costs.
Whatās crazy is that nearly half of that traffic is organic search for a quick note I jotted down back in 2013! I could spend weeks putting together a literary love child and not even get a fraction of attention this back of the napkin screenshot received.
Back in 2012 I used this blog as a way to categorize my discoveries about developing software, and later what Iāve learned about working with people. Over the years I gradually expanded to travel (including that time I lived in my car for a year), and general things I like - like keyboards or tabletop role playing games.
Iām putting this together to remind myself that I love writing and why I started this blog. That not every piece of content requires hours of research, or even have a clear audience in mind for that matter.
I wouldnāt have blinked an eye flooding this blog with unfiltered thoughts, perspectives, and experiences if it wasnāt attached to my real world persona. Itās easy to throw out something I perceive as āunworthyā anonymously. Itās mortifying to publish such a piece at my-first-name-last-name-dot-com.
So here it is, the first post I wrote purely for fun! Iām still taking a light editing pass on it, and drastically cutting it down in size - Iām not a savage! But unlike in my usual writing, thereās no clear value Iām providing or a skill Iām trying to teach - and thatās a huge step for me. Feels good!
-
Vortex Core 40% keyboard
This review is written entirely using Vortex Core, in Markdown, and using Vim.
Earlier this week I purchased Vortex Core - a 40% keyboard from a Taiwanese company Vortex, makers of the ever popular Pok3r keyboard (which I happen to use as my daily driver). This is a keyboard with only 47 keys: it drops the numpad (whatās called 80%), function row (now weāre down to 60%), and the dedicated number row (bringing us to the 40% keyboard realm).
Words donāt do justice to how small a 40% keyboard is. So here is a picture of Vortex Core next to Pok3r, which is an already a small keyboard.
At around a $100 on Amazon itās one of the cheaper 40% options, but Vortex did not skimp on quality. The case is sturdy, is made of beautiful anodized aluminum, and has some weight to it. The keycaps this keyboard comes with feel fantastic (including slight dips on
F
andJ
keys), and I`m a huge fan of the look.I hooked it up to my Microsoft Surface Go as a toy more than anything else. And now I think I may have discovered the perfect writing machine! Small form factor of the keyboard really compliments the already small Surface Go screen, and thereās just enough screen real estate to comfortably write and edit text.
Iāve used Vortex Core on and off for the past few days, and I feel like I have a solid feel for it. Letās dig in!
Whatās different about it?
First, the keycap size and distance between keys are standard: itās a standard staggered layout most people are used to. This means that when typing words, there is no noticeable speed drop. In fact I find myself typing a tiny bit faster using this keyboard than my daily driver - but that could just be my enthusiasm shining through. I hover at around 80 words per minute on both keyboards.
That is until itās time to type āyouāreā, or use any punctuation outside of the
:;,.<>
symbols. Thatās right, the normally easily accessible apostrophe is hidden under the function layer (Fn1 + b
), and so is the question mark (Fn1 + Shift + Tab
).-
,=
,/
,\
,[
, and]
are gone too, and Iāll cover those in due time.On a first day this immediately dropped my typing speed to around 50 words per minute, as itās completely unintuitive at first! In fact, I just now stopped hitting
Enter
every time I tried to place an apostrophe! But only after a few hours of sparingly using Vortex Core Iām up to 65 WPM, and it feels like I would regain my regular typing speed within a week.Despite what you might think, itās relatively easy to get used to odd key placement like this.
Keys have 4 layers (not to be confused with programming layers), and thatās how the numbers, symbols, and some of the more rarely used keys are accessed. For example, hereās what the key
L
contains:- Default layer (no modifiers):
L
Fn1
layer:0
Fn1 + Shift
layer:)
Fn
layer:right arrow key
The good news is that unlike many 40% keyboards on the market (and itās a rather esoteric market), Vortex Core has key inscriptions for each layer. Something like Planck would require you to print out layout cheatsheets while you get used to the function layers.
As I continue attempting to type, numbers always take me by surprise: the whole number row is a function layer on top of the home row (where your fingers normally rest). After initially hitting the empty air when attempting to type numbers, I began to get used to using the home row instead.
The placement mimics the order the keys would be in on the number row (
1234567890-=
), but1
is placed on theTab
key, while=
is on theEnter
. While I was able to find the numbers relatively easily due to similar placement, I would often be off-by-one due to row starting on aTab
key.Things get a lot more complicated when it comes to special symbols. These are already normally gated behind a
Shift
-press on a regular keyboard, and Vortex Core requires some Emacs-level gymnastics! E.g. you need to pressFn1 + Shift + F
to conjure%
.Such complex keypresses are beyond counter-intuitive at first. Yet after a few hours, I began to get used to some of the more frequently used keys:
!
isFn1 + Shift + Tab
,-
isFn1 + Shift + 1
,$
(end of line in Vim) isFn1 + Shift + D
, and so on. Combining symbols quickly becomes problematic.Itās fairly easy to get used to inserting a lone symbol here and there, but the problems start when having to combine multiple symbols at once. E.g. writing an expression like
'Fn1 + Shift + D' = '$'
above involves the following keypresses:<Fn1><Esc> F N <Fn1><Tab> <Fn1><Shift><Enter> S H I F T <Fn1><Shift><Enter> D <Fn1><Esc> <Fn1><Enter> <Fn1><Esc> <Fn1><Shift>D <Fn1><Esc>
. Could you image how long it took me to write that up?The most difficult part of getting used to the keyboard is the fact that a few keys on the right side are chopped off:
'/[]\
are placed in the bottom right of the keyboard, tobnm,.
keys. While the rest of the layout attempts to mimic the existing convention and only shifting the rows down, the aforementioned keys are placed arbitrarily (as thereās no logical way to place them otherwise).This probably wonāt worry you if you donāt write a lot of code or math, but I do, and it`s muscle memory Iāll have to develop.
There are dedicated
Del
andBackspace
keys, which is a bit of an odd choice, likely influenced by needing somewhere to place theF12
key - function row is right above the home row, and is hidden behind theFn1
layer.Spacebar is split into two (for ease of finding keycaps I hear), and it doesnāt affect me whatsoever. I mostly hit spacebar with my left thumb and itās convenient.
Tab
is placed where theCaps Lock
is, which feels like a good choice. After accidentally hittingEsc
a few times, I got used to the position. Do make sure to get latest firmware for your Vortex Core - I believe earlier firmware versions hides Tab behind a function layer, defaulting the key toCaps Lock
(although my keycaps reflected the updated firmware).So Iād say the numbers and the function row take the least amount of time to get used to. Itās the special characters that take time.
Can you use it with Vim?
Iām a huge fan of Vim, and I even wrote a book on the subject. In fact, Iām writing this very review in Vim.
And I must say, itās difficult. My productivity took a hit. I use curly braces to move between paragraphs, I regularly search with
/
,?
, and*
, move within a line with_
and$
, and use numbers in my commands likec2w
(change two words) as well as other special characters, e.g.da"
(delete around double quotes).The most difficult combination being spelling correction:
z=
followed by a number to select the correct spelling. I consistency break the flow by having to pressZ <Fn1><Enter> <Fn1><Tab>
or something similar to quickly fix a misspelling.My Vim productivity certainly took a massive hit. Yet, after a few days itās starting to slowly climb back up, and I find myself remembering the right key combinations as the muscle memory kicks in.
I assume my Vim experience translates well into programming. Even though I write code for a living, I havenāt used Vortex Core to crank out code.
Speaking of programming
The whole keyboard is fully programmable (as long as you update it to the latest firmware).
Itās an easy process - a three page manual covers everything thatās needed like using different keyboard layers or remapping regular and function keys.
The manual also mentions using right
Win
,Pn
,Ctrl
, andShift
keys as arrow keys by hitting leftWin
, leftAlt
, and right spacebar. Vortex keyboards nowadays always come with this feature, but due to small form factor of the keys (especially Shift), impromptu arrow keys on Vortex Core are nearly indistinguishable from individual arrow keys.Remapping is helpful, since Iām used to having
Ctrl
whereCaps Lock
is (even though this means I have to hide Tab behind a function layer), or usinghjkl
as arrow keys (as opposed to the defaultijkl
).It took me only a few minutes to adjust the keyboard to my needs, but I imagine I will come back for tweaks - Iām not so sure if Iāll be able to get used to special symbols hidden behind
Fn1
+Shift
+ key layer. Regularly pressing three keys at the time (with two of these keys being on the edge of the keyboard) feels unnatural and inconvenient right now. But Iām only a few hours in, and stenographers manager to do it.Living in the command line
The absence of certain special characters is especially felt when using the command line. Not having a forward slash available with a single keypress makes typing paths more difficult. I also use
Ctrl + \
as a modifier key for tmux, and as you could imagine itās just as problematic.Despite so many difficulties, Iām loving my time with Vortex Core! To be honest with myself, I donāt buy new keyboards to be productive, or increase my typing speed. I buy them because they look great and are fun to type on. And Vortex Core looks fantastic, and being able to cover most of the keyboard with both hands is amazing.
Thereās just something special about having such a small board under my fingertips.
- Default layer (no modifiers):
-
One page TTRPG prep
Iāve been running table top role playing games for over a decade on and off, and Iāve settled into a prep routine. Itās heavily borrowed, if not outright stolen from other GMs on the Internets, and I encourage you to steal and adapt what Iām doing as well. If I had to guess, this way of preparation is stolen directly from the Lazy GMās table.
Iāve learned that in order to run a successful session, I need to prepare the following:
- Discoveries: What my players need to discover.
- Scenes: Where things happen.
- Clues: Some thoughts on how to expose the discoveries.
- Key NPCs: Some names and primary aspects of non player characters.
- Enemies: A few stat blocks or references to enemies.
And all of the above fits on a single page: I find it enough to run the session while providing player freedom without having to completely invent everything on the fly.
Hereās an example for a Numenera game I ran a few weeks ago, where I adopted the idea behind the āMother Machineā module from āExplorerās Keys: Ten Instant Adventures for Numeneraā:
In this example, the village under playersā protection is attacked by ātarzaā, never before seen monsters. For historical reasons, my players are initially expected to blame a neighboring tribe of abhumans for the attack. The monsters are in fact part of a defense mechanism which is attempting to exterminate so-called ācinomarā: doppelgangers who are impersonating some of the villagers.
Discoveries
This section cover key information and plot twists, and itās the one I start with. I use it as a tool to outline the adventure, and itās helpful to refer to if I get stuck.
These are the details players should unravel throughout the session, and I usually check them off as the players find them. In fact, youāll see I check off most bullet points on the page as the session plays out.
Although, now that Iām looking at the example I provided, the discoveries are not marked. I guess Iām not very consistent.
Scenes
This is the primary tool I use during the game. Scenes outline encounters - be they social, exploratory, or combat related. Scenes help me form a general idea about locations the adventure will be taking a place in, as well as some of the key action sequences.
I often use scenes to help me control pacing: If Iām running a 3 hour game with roughly 5 scenes planned, I know to hurry up if I havenāt gotten to any of them at a one hour mark. Itās often a good time to narrate a time skip, tie up an ongoing investigation, or suggest a direction for the party to move in.
Now this doesnāt mean that the adventure is limited to these scenes. If (or more accurately āwhenā) the adventure goes off rails, I reskin these scenes or use them for an inspiration to quickly throw together a new scene.
Clues
Clues are ideas for how to surface discoveries. These are not strictly necessary if youāre really creative, but if youāre anything like me - these are a godsend.
Clues are concrete ways for players to discover plot points outlined in āDiscoveriesā. āThe assassin had a letter signed by the big badā, or āThe drunken sailor lets slip about a cult in the townā. I aim for one clue per discovery, but itās not a hard rule.
The list should not be exhaustive, and should not be strictly followed - I treat this section as an exercise in creativity. I find it more impactful to try to come up with clues as I play ā players often search in places I havenāt thought of - so I place the clue to a discovery wherever the players are looking.
Key NPCs
This is a list of key non player characters relevant to the game. I try to keep number of named NPCs low to help my players remember them better, and I try to use as many recurring NPCs as humanly possible.
I usually add an aspect for each of the NPCs - a short description in a few words, something that makes them stand out in some way.
This list doesnāt have to be exhaustive ā youāll probably want to use the running list of NPCs for your campaign as a supplement for unexpected recurring characters, and a list of pre-generated names for unexpected encounters.
Enemies
The last thing is enemy stat blocks for quickly referencing if (again, āwhenā) a combat breaks out.
For Numenera, these are not particularly complex - most enemies are described by a single number and a few key things about them. Iād imagine for D&D and other combat focused systems youād want to put a bit more effort in making sure youāre building balanced combat encounters, so that would warrant a section of its own.
I tend to spend a little under 20 minutes on all of the above, and I get to use it in three out of four games ā the fourth one tends to go off the rails completely, and Iām okay with it. Without investing as much time into prep, itās easy to be taken on a ride by the players.