Rick Cogley's Tech Logr

Short Technical Laser Bursts %%

Welcome

Rick’s short, technical tip microblog built with Hugo, powered by Deno Deploy. See also my fabulous repository at Github for this site.

15 Mar 2023

«10:12:44»

Happy π day; it’s been a while. We have been migrating to M365 for a while and are just getting our ops sorted out. A cool discovery today. If you want your Planner plans to be visible inside the Planner/ToDo app inside Teams, you must add the Plan to a tab in the team. Then it will show up.

This was frustrating because even though you create the plan in the Planner website, it does not show up in the app for Planner in Teams. I think of it this way:

  • If a project is active, it’s in a Teams tab, and therefore shows up in the Teams app.
  • If a project is complete, remove the Teams tab, and it will disappear from within the Teams app.

It’s a way to keep things tidy and save space.

RC Logr 20230314 184823 - Happy π day; it’s been a … Rick Cogley

01 Oct 2021

«17:10:23»

Into color design or accessibility? Give « Accessible Palette » from @efedorenko of @wildbit a spin. So useful and slick! 😎

Read Eugene’s blog post about how he built it, and why you should stop using HSL. This tool will help you to create a set of colors with consistent lightness and contrast.

image

RC Logr 20211001 171023 - Into color design or … Rick Cogley

03 Sep 2021

«16:40:49»

If you have a need to backup an IMAP mail account to maildir format, @xs4all coded a really useful utility called « imaptar » in golang. Super easy to install and use, thank you! 😎

RC Logr 20210903 164048 - If you have a need to backup … Rick Cogley

02 Sep 2021

«08:56:42»

Want your weather in the terminal? Of course you do. @igor_chubin created « wttr » so you geeks can fire up curl and do just that! 🤖

1
> curl wttr.in

Wttr is written in python and has a lot of options to explore. Check out the repo.

RC Logr 20210902 085642 - Want your weather in the … Rick Cogley

26 May 2021

«15:43:11»

Idan Kamara created a really useful site called « ExplainShell » that graphically shows what linux commands do. 😎 For example: https://www.explainshell.com/explain?cmd=tar%20xzvf%20archive.tar.gz

It kind of looks like what you’d draw on a whiteboard, if you were giving a lecture on a particular command. Sweet!

In a similar vein is https://cheat.sh/, from @igor_chubin.

RC Logr 20210526 154311 - Idan Kamara created a really … Rick Cogley

18 May 2021

«11:55:15»

Check out this impressive, useful site « https://domevents.dev/ » to help you learn about DOM events through exploration, from @alexandereardon. ☺️

RC Logr 20210518 115515 - Check out this impressive, … Rick Cogley

02 May 2021

«17:51:36»

Apple has stopped making so-called « delta » updates available as of macOS Big Sur, but you can still download individual full-size installers via MAS or a CLI command. It was nice to be able to download deltas, because of their small size. 🤨

If you have multiple Macs to upgrade, you can use Content Sharing in Sharing in System Preferences to share a macOS download with other Macs on the same LAN.

To download the full specific installer via CLI, here is a starting point:

1
2
3
4
5
6
# List all
softwareupdate --list-full-installers 
# Get latest
softwareupdate --fetch-full-installer 
# Get specific
softwareupdate --fetch-full-installer --full-installer-version 11.3 

RC Logr 20210502 175135 - Apple has stopped making … Rick Cogley

29 Apr 2021

🗓 "Showa Day" in Japan

«20:44:16»

Wow, « dasel » from Tom Wright @tomwright1993, is a truly cool tool. It uses a standard DAta SELector syntax, so you can learn it once, then use it for converting and querying files of various oft-used types. 🆒

It lets you do something similar to jq or yq, but it supports JSON, YAML, TOML, XML or CSV. Say you have a simple json file which you need in yaml. Just do this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
> dasel select -f website.json
{
  "ErrorDocument": {
    "Key": "404.html"
  },
  "IndexDocument": {
    "Suffix": "index.html"
  },
  "RoutingRules": [
    {
      "Condition": {
        "KeyPrefixEquals": "/"
      },
      "Redirect": {
        "ReplaceKeyWith": "index.html"
      }
    }
  ]
}

Easily convert to yaml like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
> dasel select -f website.json -p yaml
ErrorDocument:
  Key: 404.html
IndexDocument:
  Suffix: index.html
RoutingRules:
- Condition:
    KeyPrefixEquals: /
  Redirect:
    ReplaceKeyWith: index.html

And boom.

RC Logr 20210412 164458 - Wow, « dasel » from Tom Wright … Rick Cogley

10 Apr 2021

«16:06:26»

When you cannot dig dig for cli dns lookup, you might try « dog », written in Rust by Benjamin Sago @cairnrefinery (who also wrote the lovely exa) or « q », written in Go by Nate Sales. 😎

I especially like how you can output json from dog for consumption by another program for say, pushing to a database:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
> dog esolia.com A AAAA MX TXT --json | jq
"responses": [
  {
    "additionals": [],
    "answers": [
      {
        "address": "99.84.138.103",
        "class": "IN",
        "name": "esolia.com.",
        "ttl": 26,
        "type": "A"
      },
      {
        "address": "99.84.138.27",
        "class": "IN",
        "name": "esolia.com.",
        "ttl": 26,
        "type": "A"
      },
      {
        "address": "99.84.138.119",
        "class": "IN",
        "name": "esolia.com.",
        "ttl": 26,
        "type": "A"
      },
      {
        "address": "99.84.138.118",
        "class": "IN",
        "name": "esolia.com.",
        "ttl": 26,
        "type": "A"
      }
    ],
    "authorities": [],
    "queries": [
      {
        "class": "IN",
        "name": "esolia.com.",
        "type": 1
      }
    ]
  },
  {
    "additionals": [],
    "answers": [],
    "authorities": [],
    "queries": [
      {
        "class": "IN",
        "name": "esolia.com.",
        "type": 28
      }
    ]
  },
  {
    "additionals": [],
    "answers": [
      {
        "class": "IN",
        "exchange": "alt1.aspmx.l.google.com.",
        "name": "esolia.com.",
        "preference": 5,
        "ttl": 300,
        "type": "MX"
      },
      {
        "class": "IN",
        "exchange": "alt2.aspmx.l.google.com.",
        "name": "esolia.com.",
        "preference": 5,
        "ttl": 300,
        "type": "MX"
      },
      {
        "class": "IN",
        "exchange": "aspmx.l.google.com.",
        "name": "esolia.com.",
        "preference": 1,
        "ttl": 300,
        "type": "MX"
      },
      {
        "class": "IN",
        "exchange": "aspmx2.googlemail.com.",
        "name": "esolia.com.",
        "preference": 10,
        "ttl": 300,
        "type": "MX"
      },
      {
        "class": "IN",
        "exchange": "aspmx3.googlemail.com.",
        "name": "esolia.com.",
        "preference": 10,
        "ttl": 300,
        "type": "MX"
      }
    ],
    "authorities": [],
    "queries": [
      {
        "class": "IN",
        "name": "esolia.com.",
        "type": 15
      }
    ]
  },
  {
    "additionals": [],
    "answers": [
      {
        "class": "IN",
        "message": "google-site-verification=K4Vo3d0t6V11dXkV2nWU-H0srafI_UVPtlCvKvN2npQ",
        "name": "esolia.com.",
        "ttl": 300,
        "type": "TXT"
      },
      {
        "class": "IN",
        "message": "keybase-site-verification=JldStq9k7lM6uosSy-za3ilkJo0mlnqSulhYIGMgbpQ",
        "name": "esolia.com.",
        "ttl": 300,
        "type": "TXT"
      }
    ],
    "authorities": [],
    "queries": [
      {
        "class": "IN",
        "name": "esolia.com.",
        "type": 16
      }
    ]
  }
]
}

RC Logr 20210410 160626 - When you cannot dig dig for … Rick Cogley

07 Apr 2021

«08:51:06»

If you need a super simple way to cryptographically sign a file, such as a software release, try « minisign », from @jedisct1. 🤖

RC Logr 20210407 085106 - If you need a super simple way … Rick Cogley

«08:36:53»

Devs check out « @ProjectSigstore », a project that aims to ease adoption of cryptographic software signing and transparency, like what LetsEncrypt does for SSL certs. 😻

What goals does it have, problems does it aim to solve?

  • reduce software supply chain risk
  • make maintainer key management easier
  • reduce sw supply chain attacks such as build system compromises, malicious hashes, compromised keys, replay or freeze attacks

It is not quite there yet, but is one to watch.

RC Logr 20210407 083652 - Devs check out « … Rick Cogley

30 Mar 2021

«08:38:16»

J. B. Crawford @jcrawfordor publishes an informative newsletter at « Computers are Bad ». Check it out. 👍

For example, this article about the OSI model is so spot on.

RC Logr 20210330 083816 - J. B. Crawford @jcrawfordor … Rick Cogley

12 Mar 2021

«15:19:59»

So @isostandards prevent their docs from being read by the unwashed masses, with a paywall. Ah!, you think: I will simply deploy another global standard such as IETF rfc3339. But alas! It ends up being based on the iso one anyway. 🤷‍♂️

One wonders, do those volunteers working on iso standards, get to read their own work once it’s published, without paying?

RC Logr 20210312 151959 - So @isostandards prevent their … Rick Cogley

08 Mar 2021

«09:09:24»

Ok, this is nifty. « Dolt is git for data » as their repo says. 😎 A SQL database with git features, Dolt lets you push, pull, clone, branch, merge, do all the git things as well as all the sql things.

There’s even DoltHub, where you can host public data such as this holidays dataset. It has tools like permissions, and a SQL query interface as well. Sweet!

RC Logr 20210307 180924 - Ok, this is nifty. « Dolt is … Rick Cogley

28 Feb 2021

«19:34:11»

Github issue comments have long had the ability to auto-upload images just by either drag-and-drop or paste from clipboard, but it has not been possible in regular README markdown files. Until now, that is! 🥳

No longer do you need to resort to hacks, such as dragging an image to some comment, getting its URL and pasting that in your README. Just drag or paste your image in, and voilà!

RC Logr 20210228 193411 - Github issue comments have … Rick Cogley

27 Feb 2021

«19:23:30»

SVG Blobs have been a trend in web design, and if you need to make some, you can use « Blobs » from @lokesh_coder or « Blobmaker » from @zcreativelabs. But like other trends, it might eventually feel trite like beveled- or glass-style buttons. 📟

RC Logr 20210227 192329 - SVG Blobs have been a trend in … Rick Cogley

17 Feb 2021

«15:48:37»

Devs and sysadmins, have you seen « Shields.io » ? It lets you generate those cool SVG badges to indicate system status and so on, and you can even pull json data. 😋

Twitter: @Shields_io

RC Logr 20210217 154837 - Devs and sysadmins, have you … Rick Cogley

15 Feb 2021

«11:25:32»

Web designers check out « Ipsum Image » which lets you generate placeholder images for your sites, with optional background colors and text. 😎 Generate, then download and use.

For example, the following generates a 1000 x 600 px image with white text showing the dimensions, on a yellow background.

1
https://ipsumimage.appspot.com/1000x600,FFA900?f=ffffff

It should be obvious, but the service name «Ipsum» comes from the famous Lorem Ipsum dummy text:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud …

Updates

20210215

On Twitter, @worksofgenius pointed out Lorem Picsum, which I think is even slicker. Thanks!

RC Logr 20210215 112532 - Web designers check out « … Rick Cogley

11 Feb 2021

🗓 "National Foundation Day" in Japan

«20:44:11»

So I migrated some production PHP apps to « @FortRabbit » and could not be happier. Great admin dashboard UI UX, dynamic help docs, support, performance. Satisfied all around. 😋

Regarding what I called the dynamic help docs, I am not sure how to describe it, but the commands you see in the help docs have the exact commands you need to run, not generic ones. It is really useful.

For example, FortRabbit have their own git service, from which deploys are made. So normally you need to add a remote to your local repo, if you have been pushing to Github to deploy. Say your app name is cool-app-jp on FortRabbit. Instead of seeing:

1
git remote add fortrabbit appname@deployurl:reponame.git

… and having to try to assemble the correct string, you see exactly what you need to type:

1
git remote add fortrabbit cool-app-jp@deploy.us1.frbit.com:cool-app-jp.git

The DC you are in is even represented correctly by the us1. Just copy the line to your terminal and Boom. Love this.

RC Logr 20210211 204411 - So I migrated some production … Rick Cogley

07 Feb 2021

«17:49:06»

Surely you have seen these here and there‽ Thanks go to Katerina Limpitsouni (@NinaLimpi) and Aggelos Gesoulis (@anges244) for creating a truly generous service « @unDraw_co », which lets you customize and download beautiful, free-to-use SVG vector illustrations, matching to your search term and selected color. Wow! 😻

There’s even a plugin for Adobe XD.

unDraw chasing love illustration

RC Logr 20210207 174906 - Surely you have seen these … Rick Cogley