David Vedvick

It's been coded

November 13th, 2022

The power of the Fediverse is that there can be a mastodon instance that has all verified, paid accounts, and there can be instances that are all anonymous accounts. The biggest risks I find with the Fediverse concept is that governments can more easily pressure, infiltrate, etc. small instances, not that this doesn't happen with Twitter as well.

Anyways, my Fediverse account is on Fosstodon now.

November 3rd, 2022

Microsoft has a command line upgrade assistant to help with porting .Net framework to .Net core now - https://dotnet.microsoft.com/en-us/platform/upgrade-assistant. I wish this had been available when I ported 60+ .Net framework projects to .Net core 2.2!

Note posted on Thursday, November 3, 2022 6:26 PM CDT - link

October 13th, 2022

Software is too easy to change, which makes it easier to make breaking changes. This is another reason to add unit tests - to make code that is performing its function hard to change in the wrong ways.

October 9th, 2022

project blue File Properties Editor

The file properties editor should popup a dialog when a certain property is touched, and the user should then have to initiate editing by clicking a button - it should be difficult to change such data through a User Interface.

Integration Tests

An issue with higher level integration tests is that the implementation of a method becomes intertwined with its usage.

Note posted on Sunday, October 9, 2022 10:58 AM CDT - link

September 16th, 2022

September 14th, 2022

One day, the ultra wealthy, taking the baton from generations of the ultra wealthy who preceeded them, will attach giant rockets to the earth's moon and fly away, living their lives in hermetically sealed environments and enjoying the Earth as they thought it should be in their VR metaverse. In true keeping with their predecessors, they will leave cleaning up the mess created by their action to the less fortunate left behind (losing the moon would destroy Earth's ecology in many ways). I have a hard time deciding whether I am making a joke or not 🤔.

Note posted on Sunday, October 9, 2022 10:53 AM CDT - link

August 20th, 2022

MUT = module under test. Fun to write, read, and say, and generic enough to describe any level of test, while also specific enough to connotate this is local code under test. Also, a "mutt" is a canine breed of many different types, which I think fits well with "module under test" as well.

August 18th, 2022

A defect is ordering a Big Mac with Cheese and receiving a Big Mac without any cheese. A critique is saying "boy this sandwich could really be improved with some barbecue sauce." This may seem obvious, but the latter is not a defect, it's a new requirement.

August 17th, 2022

Presentations follow a general format of 1) give presentation, and 2) question and answer. If the same presentation is presented multiple times to different audiences, then the Q&A tends to differ, out of which a "Frequently Asked Questions" list can be compiled. I wonder if there's a way to formalize this approach with existing presentation software (Powerpoint would be nice, but it would be easier to build something off of OS Markdown based presentation tools).

Note posted on Wednesday, August 17, 2022 10:59 AM CDT - link

July 7th, 2022

Simple things Tesla could do with their overpowered CPUs and GPUs to improve the driving experience:

  1. Range estimation based on weather, simply requires data (of which they have plenty) and regression models, using temperature, windspeed, and altitude changes as an input. To make it fancy, they could adjust it based on predicted temperature along a route, but while technically feasible, this might be a major pain. To make it even fancier, they could add component lifetime as an input. All of this is hard with traditional rule-based systems, but should be natural for machine learning. Supposedly, Tesla has a supercomputer creating advanced ML models that could easily create this kind of model.
  2. Simulate summer weather braking during winter weather
  3. Predicting component lifetime, detecting car problems ahead of time

Note posted on Wednesday, July 6, 2022 7:17 PM CDT - link

June 30th, 2022

If you think today's Wordle was hard, try using WPF transforms.

June 23rd, 2022

I have a sneaking suspicion that Intuit is actively trying to kill Mint with the ever-increasing number of authentication steps.

Note posted on Wednesday, June 22, 2022 7:17 PM CDT - link

Language Features and Inescapable Implementation Details

My main gripe with async/await in .Net, which makes the use of Task objects to look more similar to procedural code, is the recommendation that when using await in a library package, Task.ConfigureAwait(false) should be used in order to ensure the task doesn't continue on the called context. This is to prevent deadlocks on single-threaded synchronization contexts such as UI synchronization contexts.

An alternative approach to ConfigureAwait(...) could instead be syntax that improves the usability of synchronization context switching. Something like this:

 // New keyword "on", that then expects a synchronization context afterwards
var result = await longRunningProcess() on UISynchronizationContext;

This would have the benefit of giving the application developer improved control in the behavior of their app, while reducing the burden on library developers to make their async/await code "safe" for consumption.

I think this is a more general problem for any programming language introducing a concept meant to paper over the "hard stuff": invariably, the "hard stuff" creeps up, unless the sugary feature is very well thought out and future looking. And in the end, it seems the solution to the inescapable implementation details of syntactic sugar is introducing more syntactic sugar. I think there's a lesson here: for a new language feature to have successful adoption, it needs to minimize harm and maximize helpfulness...

Note posted on Monday, June 20, 2022 10:25 AM CDT - link

June 18th, 2022

A very unexpected lunch of parades and airplanes while getting a meal from one of my favorite places in St. Louis Park, MN!



June 16th, 2022

The only business model that can apply to software that receives continuous updates is a subscription or subscription-like model.

June 10th, 2022

Is all German flooring 0-based?

German Elevator

June 8th, 2022

Many websites use location based localization, so if you visit a site from another country, even if you frequently visited it from your home country, it will assume you're a speaker of the destination country's language.

June 4th, 2022

Writing should be a (simple?) joy in order to encourage its use (something Twitter gets right by limiting the number of allowed characters)

June 3rd, 2022

project blue file details control buttons

  • Clicking on a file from a list should show file details
  • When viewing from "Now Playing"?
    • Show "pause" when a file is playing
    • Show "play" when a file is paused or not playing (and it is in now playing file details)
  • When viewing from elsewhere:
    • Show "pause" when a file is playing
    • Show "play with playlist" button when not playing?

Large societies have trouble with minority groups due to herd mentality writ large?

Note posted on Tuesday, May 31, 2022 7:00 PM CDT - link

Notes from the book Switch: How to Change Things When Change is Hard by the Heath Brothers

  • Self-control is an exhaustible resource
  • What looks like resistance is often lack of clarity
  • Big problems are often solved with a sequence of small solutions
  • Pursuing bright spots - "what's working, and how can we do more of it?"
  • BHAG - Big Hairy Audacious Goal
  • Big picture goals (be healthier!) make it easier to rationalize failure
  • Change in people happens in this order: see-feel-change
  • We define terms in ways that satisfy us
  • If you want to inspire something to change, make it clear that progress has already been made
  • Inspire people to be more determined, more motivated, more ready to act
  • When people make decisions they rely on two models: the consequences model and the identity model
  • Any change effort that violates someone's identity is likely doomed to failure
  • Identities grow from small beginnings
  • A growth (instead of fixed) mindset is key to achieving new things
  • Project mood chart: U-shaped curve with a peak of "hope" at the beginning, second peak of "confidence" at the end, and a negative emotional valley of "insight" in the middle
  • What looks like a person problem is often a situation problem
  • People are more likely to change if you make it easier for them to change
  • Sterile cockpit - give coders time during the week where they aren't interrupted
  • Shape the environment to encourage change
  • Habits are "behavioral autopilot"
  • Habits change when the environment changes
  • Pre-load decisions to overcome environmental habits (action triggers)
  • Action triggers need to be specific and visible enough to interrupt normal stream of consciousness
  • Behavior is contagious
  • When the herd embraces the correct behavior, publicize it
  • Free spaces allow reformers to come together while feeling safe from the conservatives

Note posted on Friday, May 27, 2022 7:00 PM CDT - link

May 28th, 2022

  • It's always easier to expand scope than to constrain or reduce it
  • Prescribed problem-solving processes that don't include a post-mortem or lessons learned don't create sustainable change (at least we weren't asking how we could prevent it in the future)

May 22nd, 2022

  • Should I split "notes" into two sections: "thoughts" and "logs"?

May 19th, 2022

  • Update personal website to display log (a la twitter?)
  • Most static analyzers should be shut off on unit tests, except for some basic formatting linters (whitespace)

Architecture Notes

  • http://arc42.org
  • http://doctoolchain.org
  • arc42 by Example
    • Subset of arc42 that author always uses:
      • Introduction
      • Context
      • Solution Strategy
      • Building Block View
      • Decisions
      • Concepts
  • Architecture Diagrams
    • System: entire system
    • Subsystem: submodules of the system

Note posted on Saturday, April 30, 2022 7:00 PM CDT - link