Losses & Gains, Tracking Task Switching & Thrashing

I take measurements and review statistical data on a range of topics to an extensive degree. However last year, pandemic year 2020, I dug into a few metrics to better tell the story about the damage task switching does to getting deliveries out the door. I wanted to answer one specific question, ideally with a measurable number.

How many projects, tasks, and other deliverables don’t get delivered because of task switching via corporate attention deficit hyper-action disorder?

CADHAD

If you’ve never heard of Corporate Attention Deficition Hyper-Action Disorder, welcome to the latest term I’m going to coin for use in this article. Possibly, I’ll use it in future articles, and refer back this one and for that reason let’s define CADHAD.

CADHAD – With a silent h this acronym stands for Corporate Attention Hyper-Action Disorder. Being specific, it’s the activity, anti-pattern, and syndrome of making activities within a business environment that routinely lead to the completion of other activities getting canceled, forgotten, or outright deleted. Usually after a thorough effort put into these actions being cancelled, forgotten, or deleted and through the switching, or thrashing of effort, extensive costs are spent over effectively having people do nothing.

CADHAD Metrics

Alright, back to answering the question “How many projects, tasks, and other deliverables don’t get delivered because of task switching via corporate attention deficit hyper-action disorder?”.

Here are a few metrics to get us started.

Actions Assigned, Started & Completed

DateStartedCompleted
January7611
February1233
March1311
April160
May110
June173
July65
August11
September4343
October3729
November5751
December2723

Projects Assigned, Started & Completed

To note, this is projects assigned to and at least 95% of the tasks assigned during the month for that project being completed equates to the project being marked complete for the month. If it’s less than that I leave it marked as incomplete. For example, if I get pulled off of tasks for project A and get put on tasks for project B, and because of that neither all the tasks for A or B get completed, that’s 2 projects started or continud for the month and zero finished.

Another important caveat, if a company is efficiently organizing their projects and efficiently utilizing their labor resources – i.e. their programmers – than this would be a 1 to 1 number, anything less than that means there are significant restarts and changes occuring that are significantly damaging effective utilization of people and resources. The TLDR, without a 1 to 1 metric the company is effectively burning cash.

DateStartedCompleted
January00
February60
March63
April00
May11
June11
July10
August11
September44
October44
November44
December55

Alright, so here are two sets of data. Let’s talk about what each tells us about the story of thrashing. The first part of the year, January through August of 2020 I was at one company – we’ll call it “Databases R’ Us” and the second part of the year I’ll call the company what it is, which is Hasura.

A Story of Thrashing

At Databases R’ Us I had joined a team that had numerous projects and tons of actions to get completed. Initially in January was a reset month, and it was, contrary to what the metrics for January tell us, a really productive month. No new projects were started, just preparation by closing up and finished actions or deleting actions. Which even though it doesn’t tell us a lot it does show one thing, there were a lot of actions that were entirely dropped. Of the 76 only 11 were wrapped up and completed. The reason, the previous months had left the team with a lot of technical debt that effectively just got ignored and the actions associated with paying that debt just got deleted.

The next month, Feburary starts to paint more of a picture of the significant levels of thrashing that were occurring. New projects were setup and planning had been done, totalling a massive 123 actions and 6 projects. I was ready to go, the team was pumped in that first week. However by the end of the month one can see that the level of thrashing immediately led to a massive failure of projects and actions to be completed. A caveat I have to add, is this is measuring a systemic failure, which is important to note because I could be messing up things myself but as we’ll see later I can also deliver robust solutoins when the systemic failures aren’t dragging projects and actions into the dustbin of oblivion. February was a rough period of time for the systemic completion of projects and actions that needed done. At month end, a miserable zero projects could be considered to have had their actions completed, and only 11 overall actions were wrapped up.

March rolled in and things improved, thank goodness, I needed the morale boost to be honest! 3 of 6 projects where brought to completion with their respective tasks completed. Bring the actions down to a very reasonable 13 actions to complete led to 11 being completed. An excellent ratio for task completion.

The next four months brough actions and projects into a varied mix of misdirections and failures mixed in with a few successes. Overall the subsequent 4 months Databases R’ Us improved efficiency of systemic delivery to about 50% or so. Not good, but much better than the January and February time frame where everything was a vast systemic failure that largely led to teams delivering on things that effectively didn’t get delivered to product or customers.

August wrapped up my work with Databases R’ Us with final delivery of a project and my departure. A fun time, and a great example of systemic wins and systemic failures around a company delivering or not.

Enter Hasura

I joined Hasura in October, taking a month in September to knock out some of my own personal projects and action activity. As you can see, of the things I planned and started with eventual completion I knocked it out of the park that month. In October, starting with Hasura that streak continued. October had a solid score of 4 projects started, 4 completed and 37 actions started and 29 brought to completed. Not perfect, but really good for just starting out at a new company – when so much time actions linger a bit longer just because one is still setting up their accounts and other requisite but not company useful work toward product or services advancement.

November and December continued that streak, 4 of 4 and 5 of 5 projects respectively. Even though December is often a really dead month for advancement of projects and actions to complete, in 2020 there were a solid bunch that I got into and knocked out. It provided me an excellent win upon new years! Even the actions completion ratio was really good.

Lagniappe Comments

2020 was a strange year, considering the pandemic changes and related characteristics of life itself this year. To compound the intricate complications of 2020 my son was born and I took a chunk of leave in the September and October time frames. Even with this major life event occurring I was still able to – even while taking care of a vast array of baby duties – contribute and knock out work and contribute systemically on a number of level to various projects. So much so, aside from the obvious leave, I’m proud that I went to bat at work at near 100% level even in light of all the pandemic and newborn complexities!

Additionally these were new metrics I had decided to measure and the implications behind them are still a bit hard to describe just from the numbers. Even though it does show the story of the year, it doesn’t really dig deep into where and how the task switching – AKA thrashing – occurred or the end result losses from that outcome. Only that it merely happened. This is something where I need to figure out further metrics that could show how, why, where, when, and what occurred that led to these metrics.

At some point I’d love to work on enriching this story through further data collection and figuring out the who, what, where, when, why, and how of the stories the data is meant to tell. Even more so, I’d love to work with others to brainstorm and figure out how to determine what telemetry should be used to provide this richer insight. If you’re interested, I’m available via the Twitters @adron and also you can directly mesage me here.

Summary

The wrap up is, the year definitely involved some significant thrashing that led to projects derailed and action items deferred, deleted, or otherwise thrashed on and left as waste. But the year also led to some striking counterbalances to that with 100% of projects getting worked on and delivered, with an excellent ratio of actions getting completed.

References

Best Outcomes for My 3rd Places & Trips

NOTE 1: This is my POV on 3rd Places and very much YMMV. I’m NOT telling anybody this is how or what they need to do to be successful, it’s merely ideas you can borrow or steal! So enjoy!

NOTE 2: Yes, this is a long post, get ready for a long haul. However, if you’re looking for ideas about 3rd places or just curious then this post will be worth the read! 👍🏻

Recently I wrote about “My Lessons Learned on Learning“. One of the key parts of learning, but also getting things done for me, is to frequently visit 3rd places. What’s a 3rd place? I’ll elaborate.

3️⃣rd Place – (per Wikipedia) In community buildings, the third place is the social surroundings separate from the two usual social environments of home and the workplace. Examples of third places would be environments such as churches, cafes, clubs, public libraries, bookstores or parks.

Three Other Key Definitions

There are three other definitions that should be understood in detail. These definitions are necessary to get the full context of what I have to write about 3rd places, and also to have an accurate grasp of what I mean when I write workworkplace, and home in relation to 3rd places.

Work is activity that is done on behalf of staying alive. Work could be farming a field or going hunting. In my context it would mean creating some type of service or product, or partaking on some type of activity. One more caveat is that this activity would be related to getting paid.

Workplace is a place where poeple have traditionally gone to do work. However it is a place that is often associated with work where work often doesn’t get done. A workplace is what I call a designated place often paid for by an employer that a person goes to in order to work for that employer. That’s it, nothing more nothing less, that is the core definition of workplace for me.

NOTE: Workplace IMHO should not be, and I attempt to not conflate it with one’s personal workspacepersonal office, or home office. Very, very different places.

Home is where the heart is, it’s where you rest your head at night and get sleep. It’s where you may eat some of your meals. It’s where you hopefully feel safe and confortable and can relax! Everybody, I hope, knows their home to be this!

Effective 3rd Spaces

Now that I’ve dug into the nitty gritty of 3rd spaces, at least for my context in these articles, now the valuable part. How does one use 3rd spaces, and how does one make good use of the trips to and from 3rd spaces? There is so much context and value in the trips to, between, and from third spaces as much as use of the space while you’re visiting 3rd spaces.

The following details how I use 3rd spaces and how I utilize the trips between those spaces. This way I get, and YMMV, the most out of 3rd space use, but also, as extra I’ll detail how many of these practices I follow also work to help me and also not fall into the asshole problem person category for the 3rd places!

The following covered 3rd spaces are the most common 3rd spaces I use: coffee shops, passenger trains, city transit, Seattle & Portland parks, and my personal office.

Use Of Spaces

The space that one needs for doing work or even just projects for themselves to creatively problem solve, to learn, or otherwise work toward accomplishing a goal varies. Each of the spaces I use are usually pretty good for many of my projects, and all are exceptionally good for getting work done in various ways.

☕️ Coffee Shops (Tea Shops, Beer Halls, etc) 🍵 🍺

Coffee shops, probably the most frequent 3rd place I visit by an order of magnitude have several factors that dictate their usefulness. A few questions always dictates whether a coffee shop is going to be a good 3rd place;

  • Is the coffee (tea, beer, etc) good?
  • Do they have decent snacks and food?
  • Are the staff cool, friendly, and ok with loiterers?
  • Is there power that is readily available to plug into?
  • Is there good wifi amidst the volume of people?
  • What is the busy-ness of the business? Crowded?
  • Can I easily not fall into being an asshole? (see mitigation below)
  • What’s the combination of all the above?

With a good mix of the following, I have frequented multiple coffee shops each day to finish out a solid work day. But just working at coffee shops is one things, there is something else they’re exceptionally good for – meeting other folks! During the work day I routinely coordinate which coffee shop to be at, with who I might schedule a meeting with to discuss a wide range of things; software architecture, business ideas, or other prospects.

Asshole alert and mitigation practices! One thing about coffee shops is that they are businesses, usually local private businesses. In that sense they have to make money for staff, to keep the lights on and the wifi connected, and doing so means turning seats and selling product. Thus, don’t loiter and take up seats or defer the selling of products. If you do, you are indeed being one of those assholes that has led to the death of more than a few coffee shops! But it’s simple to not be an asshole. Simply insure you’re paying for product, and if things get extra busy and they’re hitting that stride at making some cash, don’t disturb that and prospectively move along. Thanks, much appreciated! 👍🏻

There are so many great ways to not be an asshole at a coffee shop, and yet reap great benefits from studying and working at a coffee shop I’ll have a complete stand alone post just on this topic in the near future. Especially post-pandemic since we’re all flooding back to 3rd places!

🚆 Passenger Trains 🚂 🚅

Next up is a favorite 3rd place which combines not only a 3rd place but also traveling to and from other 3rd places, passenger trains! I currently live in Seattle, for the second time of living in Seattle, but in the northwest have mostly lived in Portland. One of the beautiful aspects of living in either of these cities is the intercity rail service called the Amtrak Cascades.

Because of this service I have only ever driven between these cities in a car 6 times out of the 900+ trips I’ve made between these cities since I’ve lived in the Pacific Northwest!

Some of the strengths of passenger rail service like AmtrakSounderCaltrain, and others throughout the western United States include;

  • The trains range in being spacious to extremely spacious to work in. On most of the trains, even the commuter trains, there are seat back trays or pull out tables to work on combined with electrical sockets and wifi for some routes. The accomodations, depending on the train, range from coach seats, business & first class, roomettes, and bedrooms as regular options.
  • The cities connected are forward thinking, progressive, beautiful, livable, and if done right stunningly convenient cities. With the more innovative and advanced businesses of the United States, still to this day leading technical innovation in the world (maybe not for much longer, but for now it still holds). This provides a lot of reasons to take trips between these cities for work and for pleasure. The lagniappe is, the trains put you directly into the center of these cities!
  • Albeit the US doesn’t have trains that tend to be on time, these trains on the west coast are generally on time plus/minus a few minutes except for the Coast Starlight, and even that train isn’t that off schedule these days. So even though you can’t set your watch by modern US rail service like that of the previous centuries, you an at least expect to show up mostly on time! This makes connections and other related trips to 3rd places manageable and business friendly!

Asshole alert and mitigation practices! When taking the train there are a number of things that will put you in the asshole category and I can barely get to the top few here, so like coffee shops I’ll have a follow up article for a longer list. But there two, one that I’m going to put here and I know it’s Amtrak (and Caltrain, Sounder, & all others) supported.

Don’t disturb the staff running the train. Amtrak and other passenger trains may be late, some of the food might not be good, the cars might be warmer or colder than you like. You may want to drink so many beers (cuz you can technically) that you fall down in a drunken stupor and cause a medical emergency. You may get screamo and yell at the staff. Every single person on the train ceases to care about your problem then, and we all await your imminent detraining event when the police show up and remove your jack ass self. So please, do NOT turn into this asshole and delay the entire roster of folks trying to get from point A to point B!

This next one is a personal – and I know most people’s – peve about some folks that have a lack of situational awareness and a mouth breathing problem. If you talk loudly in the northwest it’s best to remove yourself from the passenger car and head off to the Bistro, Diner, or Lounge Car to talk. You’re epicly annoying and most northwesterners won’t tell you, I however am from the south and wasn’t taught to stand idly by while you mouth breath loud utterances around from a lack of situational aweareness like an asshole. Even more so when you’re falgrantly downing your beers, I will instigate getting you kicked off the train. Uplevel that situational awareness and don’t be that asshole while on the train. Thanks, much appreciated! 👍🏻

🚃 City Transit 🚌 ⛴

Ok, some city transit is horrible as a 3rd place. Most buses are a no go because combined with the poor state of most roads (like in Seattle) one can’t do all that much on them. Limiting their use. But other modes are spectacularly effective, for example;

Seattle Ferries are one of the most relaxing, wonderful, and convenient ways to travel across vast expanses of water while comfortably working or just relaxing. They are great for trips to 3rd places as well as being excellent 3rd places themselves. I’ve even gone and sat on a ferry, then gotten off (cuz they usually make ya at one end or the other) and then just reboarded, just to enjoy the trip while working.

Light Rail (MAXLINK, etc) is one of my favorites too for short hauls back and forth between areas but also as a mode that – when not too busy – is great to just get into a comfortable corner seat and watch the views go by while working on various things. There aren’t electrical sockets or wifi, but nothing a good charge and tethering won’t fix these days.

More on transit as a displacement vehicle between 3rd places below. Suffice to say though, some transit can indeed be the 3rd place itself!

Asshole alert and mitigation practices! The biggest thing with transit usage, when using it as a 3rd place, is similar to the above – if it’s busy just displace again. Don’t sit on a bus or tram or light rail vehicle or the ferries (which are never that packed fortunately) if it’s packed then move along. Don’t take up space by people trying to use the transit for its intended purpose of going from place A to place B. Thanks, much appreciated! 👍🏻

🏞 Seattle & Portland Parks 🌲 🌿

Almost every Seattle & Portland Park is most epic and enjoyable as a 3rd place to relax and work in. Again, with the advent of usable tethering and battery life in laptops, combined with a little wifi in some parks, these spaces can be some of the most enjoyable and amazing places to get some workdone while enjoying your best life!

Often there are benches or other amenities in parks that are good, but there are also park benches along with picnic tables that really multiply the usefulness of using a park as a place to work and think creatively. Combine that with more than a few natural characteristics, such as in Seattle there are rocks down along the shore. Albeit risky, a climb down across the rocks can lead to a comfortable and close to the water seat.

Recently I took a ride (more on this trip type below) to the waterfront in downtown Seattle. Spent a couple hours working right on the waters’ edge, and got a significant amount of work done along with enjoying that view and scenary extensively. I even cut together a narrative of that trip here, included for you to view at your convenience. 🤙🏻

Asshole alert and mitigation practices! I’m gonna just assume you’re smart enough not to litter, burn down, desecrate, graffiti, or otherwise mess up a park. So on to one of the lesser known asshole park activities. Take for example, if you’re working in a park that’s fairly occuppied then don’t take loud conference calls. This also, just like littering, desecration, and graffitying natural lands shouldn’t need to be mentioned, but it does sometimes escape us. Be aware, work on that situational awareness, and don’t wreck other people’s zen. Thanks, much appreciated! 👍🏻

🏣 My Personal Office 🏤

No asshole alert and mititgation practices for this one because of obvious reasons!

One of the things that I learned years ago while working remotely was that it is indeed really ideal to have a 99.99999% reliable location away from homethat can act as a workplace for work as well as projects or other things that might come up. If you get an office with public space for conferene rooms and such even better! Sometimes, one can even write off some of these costs or even charge it back to the employer if you’ve worked that out in your contract!

A personal office provides that space that isn’t at risk of being disturbed by assholes, you can ensure the wifi or internet connection is good, the door is open based upon your need at any time, and generally removes all of the risk of relying on other 3rd places! The downsides are almost always just the cost of having said 3rd place.

Displacing To & From

Almost all of us have spent inordinate amounts of time traveling back and forth – for Americans largely by driving – to 3rd places. That is one way that someone could get between places, but I opt not to drive places. So much so, I stopped owning a car from a lack of need over 11 years ago now. One of the beauties of the northwestern cities of Eugene, Salem, Portland, Seattle, Bellingham, and a few I’ve forgotten. These cities provide numerous opportunities to make the trips between 3rd places without a car. I’ve made great use of this amenity in the northwest. So why make use of this amenity? Here’s my list and of course YMMV.

Getting from 3rd place to 3rd place, with a toddler or grown ass adults, or all alone I make it enjoyable, work productive, and entertaining for myself. Whatever the modal option, I try to make it so that I get multiple uses out of the trip.

One method I use is combining multiple trips into one trip via trip chaining. An example would be; going to a park to work, stopping for a meeting, catching pizza with a team to discuss architecture, having a design meeting, and then getting groceries on the route home. This is a great example of trip chainingthat, in a place like Seattle or Portland is really easy with lots of options to mix and match however you like!

The other characteristic of the trip is while I’m moving toward the destination am I also getting something else accomplished? If I’m cycling am I getting some exercise? Am I runnig some additional errands on the way? Am I riding with some others? Am I going to be able to work on the modal option, such as taking the bus, tram, light rail, or ferry? Is the trip as much a 3rd place as the 3rd place I’m going to? I never like to take a trip that isn’t multipurpose in function. Since I don’t drive daily, those trips have all pretty much ceased to exist for me. It’s a great feeling to get things done, even when getting things done, to get evven more things done. It’s true multi-tasking like we wished our brains could enable us to do!

Overall, here are the modal option that I specifically use for my day to day trips to and from 3rd spaces…

Pedestrian Movement! This is simply walking. If there is a reasonable way to walk to most of the 3rd places and related activites I need to undertake then it is the option I’ll choose. It’s the cheapest, one of the healthiest, and generally convenient ways to move about the world. It’s spectacular that it is our default mode of transport on this fancy planet of ours.

Biking from place to place is great where the city is designed and developed well (if biking aint your thing, skip to the next modal option). This includes almost any city with reasonably urban and original city platting (i.e. the cities with grids) areas in the United States. Which for city specific things, if you live urban or in what are the old streetcar suburbs, is the fastest and likely the most efficient way from point A to point B. Parking is rarely a problem, owning several bikes for each trip type is cheap over time by comparison to other modal options. The only thing more environmentally friendly is walking, so you can rest easy in the ethical realm!

A few options to make things ridiculously easy, involves a few bikes and bike options I have.

  • Everyday hauler of things, Space Horse. This bike provides point to point travel with the possibility of over 100lbs of carry weight on frame via panniers. Adding my backpack and I easily get into the 140 lbs range if needed. The reasoning however is it provides the ability to carry more groceries than the average American buys at Costco (i.e. a LOT of food) all the while loaded up with laptop plus hammock and everything else I’d need to hang out in a 3rd place and get things done comfortably! Even with all that carry capacity, I can easily pop off the panniers while loaded and rack load onto a bus or light rail if need be for that “I got lazy now” trip home!
  • Zippy get there and back, Pop Rocket. This bike I use for quick trips, it’s real light and maneuverable, where I’ll just carry my backpack or I just need to show up and won’t really need to haul anything. Easy to also combine with transit if I wanted to say, skip a hill or just felt like watching videos, or need to whip out the laptop because heaven forbid I got paged while on pager duty!
  • Boldly Bendy Brompton Bike. This bike I use when I want to be able to bring it into and out of locations. It has been my go to bike when I record meetups like “Adam Dymitruk: Event Modeling & James Nugent: Events and Distributed Consensus”“Dave Remy, Event Sourcing Primer: Building source systems using the event sourcing pattern” and “Robin Moffatt, Apache Kafka and KSQL in Action: Let’s Build a Streaming Data Pipeline!”for example. I have a front mount bag and a back rack that is perfect for everything I need. All while being able to be folded up and brought into the meeting location or onto a bus or other mode if necessary. To boot, I’ve used this bike for it’s intended purpose too such as when I took the trip to DC for DataStax’s Accelerate user conference. Riding into and out of International in DC was a stellar experience and that continued everyday of the conference as I road across the Woodrow Wilson Memorial Bridge to the conference center from Alexandria, Virginia. An absolutely stellar experience traveling between 3rd places.
  • Surly Trailer. Ok, sometimes you have to go above and beyond a mere bike frame and need to haul some big stuff. This trailer I purchased years ago and, like the nerd that I am have kept track of various metrics. One of those metrics is the fact I’ve carried multiple metric tons over the lifespan of this trailer. From a multile hundred pound Ikea load to moving from house A to house B in Ballard, I’ve done a lot with this trailer. It attaches with a quick screw on and screwing off so I don’t need any special hardware.
  • Future Bike (i.e. that I don’t own yet). The Urban Arrow is great for carrying even more groceries than listed above, for carrying a child and groceries, or for carrying an adult and groceries with a child sitting on their lap. It’s all up to me! Yay for options! All with that extra electric power to get those multiple hundred pounds up and down the hills of Seattle.

All those bikes and gear combined add up to as many or more options than one generally has with an automobile in the city, at half the cost of a little Honda Fit, with the ability to routinely make better time to lcoations in the city than folks driving! I’ve literally decimated schedules in San Francisco, Seattle, Portland, Vancouver BC, New York City, Los Angeles, Oakland, and other cities with a transit + bike trip option. Easily getting 10-500% more out of a busy day with meetings in different parts of the city. Arguably, when in NYC, PDX, and SEA I have had days that literally would not have been possible to schedule if driving. But were no problem with a bike. Now of course you add the auto-dependent suburbs and you’ll be debilitated, unable to acheive anything like I’ve described here because of the poorly zoned layout of the space. So I just highly suggest avoiding the auto-dependent suburbs if you want 3rd spaces – and especially the trip between 3rd spaces – to work most efficiently for you.

Next up, passenger trains freakin’ rule for movement between 3rd spaces. In addition, they are a 3rd place unto themselves, and can provide extensive focus to get work done as well as to recharge. At least, for folks like me with that ADHD it’s one modal option that can serve multiple purposes like that.

One other thing that works great on trains, if one can manage to coordinate this, is to have meetings with other coders or cohort via the Bistro, Diner, or Lounge car. These are great spaces to have meetings, enjoy life at the same time, and really do that ideation thing I always hear about!

Ferries are a choice I’d really like to utilize more, albeit I don’t usually head off to the islands to get work done or have meetings. However, thanks to some creative minds there have been conferences in Bremerton, meetings in Bainbridge, and other organization work that gets done on some of the other islands. So combining the ferries with other modes, chainging the 3rd places together, can create some immensely useful, enjoyable, and productive worktime.

Summary

That’s my big list of ways to utilize 3rd places, and the travel to and from those 3rd places, to get things done for work. But not just work, I utilize this time to combinge rest, relaxation, and efficiency of modal splits to get things done for myself as well! I hope the list is somewhat useful to at minimum, light some ideas in mind in how to improve your own enjoyment while getting things done for work and for yourself. Cheers!

My Lessons Learned on Learning

NOTE: This is my experience and very much YMMV. I’m NOT telling anybody this is how or what they need to do to be successful learning, it’s merely ideas you can borrow or steal! Enjoy!

I had just, after a couple years of intense music studies, shifted into computer science at college and learned something very important about myself. I signed up for Computer Programming 1, the most beginner of beginner classes on computer programming.

The class started and very early in the first few weeks we’d studied control structures and variables. We were in the midst of writing our first program and I’d gone into my ADHD induced dozed off state, while mind you being wide awake with eyes wide open. However as I sat there, my eyes did start to shut. In a mere moment I relaxed and fell sideways. I awoke in the process of falling, grasped the desk with my hands, as if it was anchored to the ground. However it was too late, the energy of my fall exceeded the lack of weight in the desk, and I uprooted it with a screech of the metal desk feet on the lanoleum tile floor.

BANG, the desk hit the ground and I, now laying 90 degrees of sitting upright with my desk gripped in my hands and me riding it into the floor like a pilot in a plane. Fortunately, being a long haired metal head with plenty of meh I wasn’t embarrassed so much as confused. I announced, “I’m fine!” and got up to a few smirks and smiles from classmates. One of the students spouted, “that’s Adron for ya” as she turned to face to the front of the class again. The teacher asked if I was, “ok”. I responded, with the second free lesson of the day, “I’m fine just got a little bored and distracted.”

The teacher smirked and shook her head at me. She then contineud with the class as I set my desk upright and sat back down to continue too.

The Lessons

first and foremost ADHD will thrash me into boredom and I will entirely phase out when being “taught at” vs be “informed while I learn” or “learning together”. You see, I simply don’t do classroom style learning, I teach myself and then work with people to move past stumbling blocks. It’s a wonderful way to learn.

second lesson was that, one shouldn’t spout of that they’re bored in class. It’s just not cool. Be polite, state things constructively and people will help you.

Benefits of The Teacher

However amidst all of this fracas that I caused, the teacher noticed these things that I had yet to truly learn. She notified me after class that I needed to schedule a time to meet at my earliest convenience. I did and later the next week we met.

At this meeting she, in blunt directness said, “I know you’ve very likely got ADHD but you’re doing great with the class. I also bet you don’t do well with structured teachings, which is why I’m going to give you the rest of the semester’s assignments and let you have at them.”

I was blown away, confused, and impressed at her introspection and reading of me. She added to this though, the third and most valuable lesson of this entire class. This lesson was more valuable than anything I’d learned in college or life up to this point. It was something I knew, without knowing that it was something I could put into words. She said, “if you’re like me, and I suspect you are, I’m not going to hold you to attending every class. Make sure you come in for the tests though, and try to come most of the time, but mainly just get the work done. In addition, get up every hour or so and change the place you’re working, or just walk around. It’ll prevent dozing off.”

She added one more thing, “Oh, also, don’t be the accidental asshole, no need to say you’re bored in my class. Just keep that to yourself you already have fans and friends in the class regardless of you knowing it, no need to give me shit about your boredom.”

The Lesson Trio

Through this these three lessons were reinforced, I’ll call them:

  1. Learning Together Alone – My ability to learn, fast and effectively, is dictated by my ability to hone in on specifics, put those into memory while taking in the abstractions of the ideas at hand. If any questions come up, joining forces or asking a teacher complete this process for me. No classrooms, no needing to sit and be told things that I could easily read 2-10x faster, no need to have concepts pushed at me in a specific dogmatic path.
  2. Be Constructive – Again, just like traveling from point A to point B, we’re all just trying to go somewhere, and we’re all working at this learning thing. Work together, not at odds with each other, everything is better then!
  3. Take Breaks & 3rd Place Displace – When learning, especially with ADHD, you have to break your own super power of hyper-focus as much as you have to battle that of absolute, uncontrollable, and forced distraction. If you can get one under control, you can get them both to work in your favor! Using 3rd places to your advantage, like coffee shops or parks, to do work are extremely effective. Add in a break every 45 minutes or so and you can create an amazingly productive, powerful, and efficient workflow to learn and to simply get things done!

My respect for my teacher just shot through the roof. Not only was she no bullshit, she read me like a book, but she also just pointed out what I needed – these obvious things that I would have otherwise likely missed for many more years.

I took these lessons to heart and started what would become my frequent use and displacement from coffee shops. In addition it taught me that to be truly efficient and effective, I need chunks of time but also need to break up those time chunks with something more significant than looking away from the screen. I need the option to get up and walk away, take a hike, ride a loop around a lake. Something, anything more than merely sitting there and pondering that I’m taking a break.

That brings me to my next blog entry “Magic 3rd Places”, that I’ll have posted soon. I’ll delve into much deeper detail about how I use 3rd places, what 3rd places really are and how I keep my impact to others and myself to a minimum while making use of displacing around 3rd places frequently.

A Review of the MX Ergo Advanced Wireless

FYI: No, I was not paid, nor given these freely, nor do I have any connection to Logitech at all.

A short video of the EX Ergo, the hardshell case I picked up for it, and some commentary about using it in different locations.

A few months ago I picked up a new trackball. It’s one of the multitude of pointing devices I use while working. Just to note, here’s the MX Ergo in its normal spot hanging out with my Apple Trackpad and Logitech m331 Silent Mouse.

The Pointing Devices

I picked this up to replace the older trackballs that I used from Logitech previously, the wireless and wired trackballs had lasted me a solid 5+ years at the youngest of the devices. This trackball however has a number of additional features that dramatically increase the usefulness of the device. I’ll enumerate and elaborate on a few’

  1. The scroll wheel doesn’t just scroll, but has a forward and back feature. Just push the wheel to the left or right with your finger and so goes the navigation.
  2. There’s a metal tray that it sits on, and the angle can be changed from zero to 20 degrees. This position can really change the stressors on the upper arm, which makes for easier use during the course of work.
  3. There are the normal right and left buttons, but also two buttons to the left of the left button, and two additional toggle buttons on the lower end of the left right buttons and on the left side near the ball itself. The toggle by the ball actually changes the speed, and thus increasing the accuracy of position of the cursor, it’s a strange but useful effect when manipulating images or such at a pixel level.

This device is also wireless, and has internal batteries that can be charged via the included USB cable. Standard USB connection required for the sensor for the trackball too.

A few shots of the pointing device all pretty and professional. Keep reading below the trackball gallery.

Why a Trackball

One of the issues when working remotely is that space is often constrained. When in a coffee shop, you don’t want to be the asshole who has all their laptop gear spilling over into areas beyond where you sit. Sometimes you may get lucky and the table space may be abundant, but often it is not. Using a trackpad eliminates the excessive space required for a mouse, as a trackpad just stays in the singular spot near the laptop that you set it.

You might ask, ok you have a trackball but why not just use the trackpad? Well sometimes you still can’t use the trackball, because the space is that limited, especially on a transport mode like passenger airlines. Even in first class you’ll be pretty pressed for space. On a Greyhound bus, if you feel like tempting madness, you have even less space than that and no first class to speak of! In these cases, the trackpad is all you can muster for use. But in cases where you have even a little space, the trackball can come out for use.

Why a secondary pointing device? What makes a trackball so great besides the minimal space it uses? A few things make a trackball more bad ass than most other options. For one, the movement can be more precise, with less training. One can train their thumb movement – or fingers if you want to use it that way – in a way that the arm movement used for a mouse just can’t replicate. Some may say, “oh but just use only your hand for the mouse”, well ok except that defeats the immediate ease of access for a mouse. The core notion here, is you can do this if you want to. Thus, you have reduced space use, reduced physical movement for yourself, you can increase precision, and with this particular trackball, you’ve even got macros and other programmable options for the button array that enhances the use of tools like Photoshop where that precision is a requirement for effective use!

For more reasons, more coverage of the hardshell case, check out my post on Transit Sleuth “Traveling Trackball, AKA “GSD Better!”” speaking solely to the traveling use of the trackball and the hardshell case.

All in all, a great device. Do I recommend it? Well, you’ll have to watch the video to see. 👍🏻

Splitting a Postgres Timestamp with Generated Columns & GraphQL Query with Hasura

Recently I created a video short on how to split out a timestamp column for Hasura. This included the SQL for Postgres via a schema migration and also details on how this appears in the Hasura user interface. You can check out the video here.

The break out of what I show in the video is available in a Github repository also.

https://github.com/Adron/graphql-relational-concept-mapping

Postgres Table Creation SQL

Here is the specific database query that creates the table with the timestamp being broken out to the year, month, and day as generated column data.

create table standard_relational_model.users_data
(
    user_id uuid PRIMARY KEY,
    address_id uuid,
    signup_date timestamp DEFAULT now(),
    year int  GENERATED ALWAYS AS (date_part('year', signup_date)) STORED,
    month int  GENERATED ALWAYS AS (date_part('month', signup_date)) STORED,
    day int  GENERATED ALWAYS AS (date_part('day', signup_date)) STORED,
    points int,
    details jsonb
);

In this SQL the signup_date column is the timestamp column that I want split out to year, month, and day. I’ve set it up with a default function call of now() just to seed the column and not require entry when inserting a new row. With that seed, then the generated columns of year, month, and day use the date_part() function to extract the particular value out of the signup_date column and store it in the respective column.

The other columns are just there for other references.

The Hasura Console

In the Hasura Console those columns would look something like this.

Notice the syntax displayed for these is different than the migration that created them.

date_part('day'::text, signup_date)

The above of course is for day, and each respective part is designated by month, year, etc.

When the data is added to the table the results return as follow with GraphQL and results.

GraphQL

The query.

query MyQuery {
   users_data {
    signup_date
    year
    month
    day
  }
}

The results.

{
  "data": {
    "users_data": [
      {
        "signup_date": "1999-04-21T00:00:00",
        "year": 1999,
        "month": 4,
        "day": 21
      },
    
            ... etc ...
            
      {
        "signup_date": "2007-01-02T00:00:00",
        "year": 2007,
        "month": 1,
        "day": 2
      },
      {
        "signup_date": "2021-06-29T00:09:48.359247",
        "year": 2021,
        "month": 6,
        "day": 29
      }
    ]
  }
}

SQL

The query.

select signup_date, year, month, day
from standard_relational_model.users_data;

The results.

1999-04-21 00:00:00.000000,1999,4,21
2012-07-04 00:00:00.000000,2012,7,4
2019-06-24 00:00:00.000000,2019,6,24
2013-03-07 00:00:00.000000,2013,3,7
2007-01-02 00:00:00.000000,2007,1,2
2021-06-29 00:09:48.359247,2021,6,29

That is how to build generated columns in Postgres and how they’re available via Hasura to expose via GraphQL!