Each week I'll try to post summaries, notes and quotes about articles I've read and podcasts I've listened to during the week. This helps me pay closer attention to the material, and may help you decide if you want to go to the source--which I hope you do!


Articles

Spark Joy In Your Business With The KonMari Method

https://heragenda.com/spark-joy-in-your-business-with-the-konmari-method
Rieva Lesonsky

2019-05-13 15:43

Notes
KonMari Six Methods

  1. Be committed
  2. Imagine your ideal life before you start
  3. Tidy by category, not location
  4. Discard before you re-organize
  5. Do the easiest things first
  6. Keep what sparks joy

The author discusses applying the KonMari method to your business. She brings up circle good ideas, especially being more mindful and forward thinking.

One thing she doesn't expand on is how to involve staff in applying the method. This seems important to me, so that staff have a strong stake in the outcome.

Note that condo recommends completing an entire category rather than an area. this reminds me of software development where you complete a vertical slice of the feature set.

Quotes

Instead of organizing what you already have, Kondo’s method focuses on getting rid of what you don’t like and don’t need so you’re left surrounded only by things you love and use.

Steps to KonMari for Your Business On her website, Kondo shares the six basic principles of the KonMari method. Here’s how to apply them to your business.

  1. Be committed.

    In order for KonMari to work, you need to dedicate yourself to doing it wholeheartedly. Ideally, you’d complete the whole process over a weekend or series of days. For businesses, that may not be realistic—but you still need to commit to finishing what you start and working through each category completely before you stop. Otherwise, you’ll lose momentum. For example, set aside the weekend to focus on files and documents so you can get it all done in one fell swoop. If you’re getting your whole company involved, think of it as an offsite meeting and set aside time.

  2. Imagine your ideal life before you start.

    Before you start decluttering, take some time to think about what you want your business and life to look like when you’re done. What do you want to achieve by decluttering? Do you want your business to be more efficient, more successful, more enjoyable, more appealing for employees? Kondo’s method places great importance on being mindful, introspective and forward-looking. Thinking about why you’re embarking on this project before you start will help you focus when you begin decluttering.

  3. Tidy by category, not location.

    When you think of decluttering your office, you might start with straightening your desk or cleaning out a file drawer. Instead, Marie Kondo wants you to declutter each category all at once. In the home, this means taking out all your clothing (from the closet, the dressers, the hall closet, the under-bed storage) and going through it all at once. For your business, it might mean going through all your equipment first, then all your paper documents, etc.

  4. Discard before you re-organize.

    After you’ve cleared out your file cabinets or your computer, you might get inspired to set up a new organizational system right away. Don’t! Wait until your entire decluttering process is finished to organize what’s left.

  5. Do the easiest things first.

    Start decluttering with a category that’s easy for you to let go of. For home decluttering, Kondo recommends doing clothes first and sentimental items last, since these are the hardest to let go of. Figure out what’s easiest for you to start with (such as paper documents) before moving onto more difficult areas such as business processes.

  6. Keep what sparks joy.

    The KonMari decluttering method involves holding each item in your hands and asking yourself, “Does this spark joy?” Don’t overthink it: go with your first instinct. Of course, not everything in your office will spark joy (I’m looking at you, ream of printer paper). For such items, ask yourself whether it’s necessary to help you accomplish a task.

You can use this method for a surface-level decluttering, such as cleaning out your emails, your file folders and your receipts. But you can also get much more from it if you use it on a deeper level. Ask yourself these questions:

What sparks joy in your business?

If there’s a certain product, service or focus in your business that brings you the most joy, maybe you should put more energy there.

What if there’s a whole element of your business that doesn’t spark joy?

If you find out something on this level doesn’t spark joy, it’s time to have some serious conversations and do some soul-searching.

Before you discard an item, Marie Kondo says, you need to thank it for its service to you. (Yes—even if you’re getting rid of an old stapler.) The process helps you “let go,” she says. But when you’re decluttering your business, I think you should also thank the things that you’re keeping. Take some time to feel your appreciation for all the elements that help your business thrive, from your employees to your suppliers to your customers.

ASP.NET Core 3.0 Configuration Factsheet

https://www.red-gate.com/simple-talk/dotnet/net-development/asp-net-core-3-0-configuration-factsheet/
Dino Esposito

2019-05-13 15:47

Notes
.NET configuration is a special interest of mine, especially since I created a .NET Full configuration package: NuGet Gallery | DeftConfig 1.1.1

I've looked at .NET Core's configuration before, and, while impressively complete, it wasn't clear what the common scenarios were.

This is a good overview of how configurations work both conceptually and with some implementation. But it doesn't show a "typical configuration" like I'd want to see.

While configuration data is name-value pairs, the resuling configuration can be nested.

The order of the ConfigurationBuilder pipeline determines which configurations win when there are duplicates. Last configuration wins.

Files can be environment-specific, e.g. appsettings.development.json.

The IOptions approach has no explicit benefit over using a POCO (see article for Esposito's reasoning).

Use IOptionsSnapshot<T> to re-get settings on each request. Use IOptionsMonitor<T> to re-get settings if they change.

Quotes

If you check out the Microsoft documentation, you might be frightened by the number of possible ways you can manage configuration data,...

The configuration of an ASP.NET Core application is based on a list of name-value pairs collected at runtime from a variety of data sources—primarily, but not necessarily, one or more JSON files.

All loaded values are composed (aggregated) into a single container.

The root container is an object that implements the IConfigurationRoot interface.

public class Startup
{
    public IConfigurationRoot Configuration { get; }
    public Startup(IHostingEnvironment env)
    {
        var dom = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json")
            .Build();
 
        // Save the configuration DOM
        Configuration = dom;
 
        // Next tasks:
        //   - Load the config data into a POCO class
        //   - Share the POCO class with the rest of the app
    }
}

(Three ways to return setting from this JSON)

{
   "print" : {
       "pageFormat" : "A4",
       "color": "true"
   },
   "grid" : {
       "sorting" : "false",
       "search" : "false"
   }
}
var pageFormat = Configuration["print:pageformat"];

var fmt = Configuration.GetValue<int>("print:pageformat");

var fmt = Configuration.GetSection("print")
                       .GetValue<int>("pageformat");

In ASP.NET Core, instead, you can use the Bind method on the configuration root object.

var appSettings = new GlobalAppSettings();
Configuration.Bind(appSettings);

The final step to conclude the first round of application settings in ASP.NET Core 3.0 is sharing the configuration POCO class with the rest of the application. In ASP.NET Core, the recommended approach is using the native Dependency Injection layer. All you need to do is adding the freshly created (and validated) instance of the GlobalAppSettings class as a singleton.

var appSettings = new GlobalAppSettings();
Configuration.Bind(appSettings);
services.AddSingleton(appSettings);

IOptions approach:

// the code below belongs to the ConfigureServices method of the startup class.

services.AddOptions();
services.Configure<GlobalAppSettings>(Configuration);
public DemoController(
             IOptions<GlobalAppSettings> options)            
{
   Settings = options.Value;
   ...
}

IOptionsMonitor<T>

var dom = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", 
                         optional: true, 
                         reloadOnChange: true);

The ideal approach is to learn the absolute minimum you need to know (which means how to load the configuration as an immutable singleton in a C# POCO class) and then look around in case more is required or would be good to have.

Podcasts

Art of Manliness #507 - How to Increase Your Personal Agency

https://www.artofmanliness.com/articles/increase-your-personal-agency/

2019-05-14 16:15

Notes
Kids are growing up with more structure, and if the encounter situations where the rules aren't obvious they flounder because they haven't learned to be self-reliant.

Men are falling behind women in terms of adaptation and agency.

Quotes

From the podcast: "Paul explains what he means by agency, and why learning how to get better at thinking, acting, and making choices for yourself can be the real key to feeling less stuck in life."

When our minds and bodies are in balance, our decision-making improves, and when our decision-making improves we then create a life that's more in line with matters to us.

Separate your thinking and deliberation from your taking action, especially on important decisions.

When you're saying yes to something, you're saying no to something else.

The 7 Principles

Behavioral

  1. Control Stimuli
    • Put phone away. Don't let devices determine your attention.
    • When you want to reach for device, get up an move instead to recharge.
    • Monotask, don't multitask.
  2. Associate Selectively
    • Mirror neurons help us pick and mimic those around us.
    • People closest to us have enormous effect on our level of agency.
    • Isolation is like kryptonite.
  3. Move (using your body, nutrition)
    • Movement increases brain activity.
    • We're built to move, and we're too sedentary.
    • Pay attention to body and be in top shape. Some men take better care of their cars than their bodies.
    • Sleep deprivation reduces IQ.
    • When sitting, we communicate "I'm stuck," leading to learned helplessness.
    • Get outside.

Cognitive
4. Position Yourself as a Learner * When we're well-informed, we make better decisions. * Identity your learning style [clf: Hopefully not the discredited visual/aural/etc]. * More than 50% of jobs existing for kids born today won't exist when they become adults. 5. Manage Your Emotions and Beliefs * Emotions are the strongest things happening in our heads. * Have your emotions, rather than your emotions having you. * Beliefs are better off when we question and update them over time. * Values tend to be bedrock things. * If we navigate the world with outdated beliefs we don't make better decisions for ourselves. * Understand how beliefs and emotions affect our thinking. 6. Check Your Intuition (what does my gut tell me?) *
7. Deliberate, Then Act * Decision-Making * We don't get training in making decisions, despite making decisions effectively determing who we are. * Daniel Kahneman, Amos Tversky research on decision-making. * System 1 thinking: fast thinking
* System 2 thinking: deliberate, rational, analytical
* Acting: * Four large impediments: procrastination, impulsivity, obsession, perfectionism

References

Art of Manliness #508 - Break Out of Your Cage and Stop Being a Human Zoo Animal

https://www.artofmanliness.com/articles/podcast-508-break-out-of-your-cage-and-stop-being-a-human-zoo-animal/

2019-05-15 20:49

Interview with Erwan Le Corre, founder of MovNat physical fitness system and author of The Practice of Natural Movement: Reclaim Power, Health, and Freedom

Notes
This is a quick summary of a long interview (1h 18m, ouch!). The reason I can do this quickly is I have a pretty good understanding of Le Corre's approach and source for his method.

His Natural Movement means to practice the kinds of movements that are part of homo sapien's two to three hundred thousand-year-old heritage, specifically: walking, running, balancing, jumping, crawling, climbing, swimming, lifting, carrying, throwing, catching, and self-defense.

These are almost exactly the same skills that made up George Hébert's "la méthode naturelle": walking, running, equilibrium (balancing), jumping, quadrupedal movement (crawling), climbing, swimming, lifting, throwing, and defending.

There are only two skills added: carrying and catching, both of which make sense to me.

Hébert was influenced by what came before him, and his method is a key inspiration for parkour.

MovNat seems to be a professional system, complete with certifications. While it's a business, it doesn't strike me as a sloppy scam. Listening to Le Corre, it's clear he's invested in helping people improve their health, and he has a solid athletic background.

He makes a good point that athletics--especially movement responding to an unpredictable environment--improves cognition and problem-solving. Fencer Aldo Nadi said the same thing, that fencing made a person smarter.

Quotes
Not many quotes this time. But I like Le Corre's plain-speaking on some subjects that isn't rude or arrogant. For example, on reducing the amount of recess in schools--or making equipment "too safe"--because of liability, he says, "It's criminal. It's just going to kill the kids even more. It's going to kill their physiology to begin with...there are windows of physiological development and if you miss them it's hard to catch up.... What's needed [at a certain age] is not only proper nutrition, it's also proper movement.... I'm saying this with sadness."

(On doing natural movements while you're in your normal day)
"You see, it does not take time off of your occupations because you can do it [natural movement] as you do what you need to do. It doesn't cost any money, it doesn't cost time. It costs very little energy, actually...but it's beneficial not only to your physiology but it's beneficial to your work."

References

https://spec.fm/podcasts/developer-tea/297042

2019-05-15 22:48

Notes

This episode was appropriate for me since I'm between jobs--"under employed," as my mom says.

Summary of the 3 Principles

  1. Jobs are about relationships

    • Most jobs are found through previous, current, or new relationships.
    • The hiring process is very human. The evaluators have the same biases you do. They can be affected by not having eaten breakfast that morning, for example.
    • It's not a computer on the other end that's ultimately going to decide.
  2. Your job search is an evolving and continous process, not a discrete process with a single outcome

    • Determine your values.
    • Don't hold yourself to one particular title.
    • Most of the time, the opportunity to be fulfilled in your job will come again.
  3. Environment-first thinking

    • Depending on your environment, you happiness in a job can vary greatly.
    • Ask yourself questions about the environment just as much as about skills, title, compensation and people.

      It's very possible to work with people that you admire and respect, but because the environment has been cultivated in a particular way you end up being miserable.

    • Are my values tolerated/respected in this environment, or will I have to suspend my values?
    • Are you safe? Will you grow?

Quotes

The job market is, unfortunately, fairly inefficient. We haven't figured out how to align job candidates with their prospective perfect job.

We may not know what we want, and the person posting the information...may not be describing the job well.

If you stray away from these principles, [finding a job] is going to get harder.

These are really principles of working, as well.

People don't get jobs on their first shot, and you're probably not going to be an exception to that.

Developer Tea 20190517 - 3 Red Flags That You're Heading for Burnout

https://spec.fm/podcasts/developer-tea/297412

2019-05-17 16:47

Notes

Myths of Burnout

  • It makes you a bad worker.
  • You have to hate your company (or job, or manager, or coworker) to feel burned out.
  • You have to be overworking to become burned out.

Being burned out is a combination of factors.

  • Having a negative perspective on your work or workplace.
  • Don't feel fulfilled.
  • Exhaustion. But doesn't have to mean you're overworking.

3 Red Flags

  1. Your motivation is almost entirely external.
    For example, you're only motivated by the money, or threat of losing your job. You're more likely to game the system.

  2. You find it incredible difficult to focus.
    Have more and more trouble focusing. Procrastinating.

  3. Your work is becoming progressively worse.
    Not ups and downs, but always going down. This triggers a negative loop.

Solution? This episode doesn't go into depth, but notes that work needs to coexist with home in a balanced way. They need to enrich each other.

Quotes

We can feel that by becoming burnt out we've somehow done something wrong. That we've made the choice to feel burned out, or that everyone else has a longer fuse that us and we are somehow isolated in our feeling burned out.

If you set your hours at forty hours and you're exhausted at thirty-five, no matter how hard you try to not be exhausted, perhaps in spite of you trying to not be exhausted, you're likely to become even more exhausted.

Nobody strives for burnout.

Our internal motivation is a much stronger motivator than external motivator.

The .NET Core Podcast #25 - Blazor - You Want to Run .NET Where?!

https://dotnetcore.show/episode-25-blazor-you-want-to-run-net-where/

2019-05-19 18:40

This is a short, fast--almost blazing(heh)--version of a talk[^0] Jamie gave to a user's group about the history of web applications leading up to Blazor: .NET running in the browser.

Which, as James Taylor says frequently, is nuts. But it's working. I'll leave you to listen to the nuts and bolts, but here's the top level:

  • Blazor is a .NET web frameowrk which runs in the browser.1

  • Blazor relies on WebAssembly

  • WebAssembly:

    WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.

    "In summary, high level languages can be compiled down to WebAssembly and run in the browser at native speeds"1

  • Blazor was created by Steve Sanderson.

  • Blazor uses the Mono runtime.

[^0]: Blazor - An Introduction - Slides from Jamie's Presentation