閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

テンプレート文字列の記法

文字列の中に変数を入れたい、という時の言語毎の記法。すぐ忘れちゃうけど、最近のエディタはいい感じに色分けしてくれるのでやりやすくはなったかも。(はてなだと色の具合がいまいちですね…)

JavaScript

文字列をバッククォートで括り、変数は ${} で差し込む。

const variable = 'World';
const str = `Hello ${variable}`;

C#

ダブルクォートの前に$を付けて、変数は {} で差し込む。

var variable = "World";
var str = $"Hello {variable}";

C# 5.0以前の string.Format("Hello {0}", variable) の糖衣構文。

PHP

ダブルクォートで括り、変数はそのまま差し込める。

$variable = 'World';
$str = "Hello $variable";
$str = 'Hello $variable'; // シングルクォートだと変数展開されず、 'Hello $variable'になる

Python

ダブルクォートの前にfを付けて、変数は {} で差し込む。

variable = "World"
print(f"Hello {variable}")

print("Hello {}".format(variable)) の糖衣構文。

C++ 20

formatが標準に導入されるんですね。いま初めて知りました。

#include <format>
const auto variable = "World";
const auto str = std::format("Hello {}", variable);

formatといえば十数年前、boost::formatを一瞬使ったことがありましたが、あれはちょっとキモかったですね…。

#include <boost/format.hpp>
const auto variable = "World";
const auto str = boost::format("Hello %1%") % variable;

なんだかんだsstreamも馴染まないしsprintfになってしまってましたが、std::formatは良さそう。

VSCode上でWeb APIの簡単な動作確認を行う

Web API(に限りませんが)を触るのにAdvanced REST Clientとか、Postmanみたいなツールもありますが、もっとカジュアルにやっていきたい時に便利そうなVSCodeの拡張がありました。

vscode-restclient

エディタ上に

GET https://www.google.co.jp/

などと書いてからRest Client: Send Requestコマンドを実行すると書いたURIにリクエストが送られ、戻ってきたヘッダと内容が右側に表示されます。

拡張子を.httpもしくは.restで保存するとHTTP Languageモードになり、Send Requestリンクが出てきてこれを押すだけでリクエストを送れ、###でブロックも分けられるので1つのファイルに複数のリクエストをまとめられます。

f:id:wata_d:20200213143842p:plain

レスポンスヘッダに応じて、画像なら画像を描いてくれるし、結構使い勝手良いです。

Window 10から、ランチャーアプリの出番があまりなくなった

OS標準の機能が充実していて、ランチャーとか使わなくなりました。

必ず使うアプリはタスクバーにピン留め

タスクバーのアイコンを右クリックして、コンテキストメニューから「タスクバーにピン留めする」を選ぶとそのアイコンが常に表示されたままになるので、すぐに起動できるようになります。

f:id:wata_d:20200205100842p:plain

Officeとかジャンプリストをちゃんと実装しているアプリなら、起動していないアプリアイコンを右クリックして最近使用したファイルをいきなり開くこともできます。デスクトップ上にショートカットを置いても最大化しているアプリがあると結局見えなくなりますが、タスクバーならすぐアクセスできるので最強です。

よく使うアプリはスタートメニューにピン留め

EXEをエクスプローラなどで右クリックして、コンテキストメニューから「スタートメニューにピン留め」を選ぶとスタートメニューの右側エリアにアイコンが追加されます。スタートメニューは[Win]キーを押すと表示されるので、そこからすぐにアプリを立ち上げることができます。これも、デスクトップ上にショートカットを置くよりは早いはず。

f:id:wata_d:20200205101139p:plain

f:id:wata_d:20200205101624p:plain

それ以外は検索から起動する

[Win]キーをクリックするとスタートメニューが表示されて検索ボックスにフォーカスが移りますが、ここでPC内のファイルを検索できるので実行ファイルの名前などで検索して起動します。Launchyみたいなアプリと同等のことができます。

f:id:wata_d:20200205101826p:plain

魔術師オーフェン第四部

存在は結構前から知っていたのだけど、元のシリーズを読んでいたのが高校生の頃でその時点で10年以上経っていたのでなかなか食指が伸びなかったのですが最近なんとなくポチって一気読みしました。元々富士見ファンタジア文庫でやっていたのが一部と二部で、新シリーズが三部を飛ばして四部という扱いになっています。二部の20年後で登場人物なども続けて登場するので元シリーズを読んでいることが前提。主人公はタイトル通りオーフェンのままだけど、オーフェンの子供(!)など新しい世代のキャラクターも主人公格となっている。

二部まではリアルタイムで読んでいたけど、完結したのが2003年らしいので実に17年振り。色々忘れていることも多かったけど、読んでいるうちに思い出してきて楽しめました。二部に入ってから急に文体変わったり暗い話になっていた覚えがあるけど、四部はまぁまぁ落ち着いていて読みやすかったです(?)。魔術を発展させた「魔王術」というものが出てくるけどこれがまたかっこよくて。詠唱を「偽典構成」(儀典じゃなくて偽典)と呼んでいるとかいちいちネーミングが素晴らしいんですよねぇ。

ともあれマジクおじさんには幸せになってほしい……。

【合本版 第四部】魔術士オーフェンはぐれ旅 (TOブックスラノベ)

【合本版 第四部】魔術士オーフェンはぐれ旅 (TOブックスラノベ)

  • 作者:秋田禎信
  • 出版社/メーカー: TOブックス
  • 発売日: 2018/07/06
  • メディア: Kindle

一部がちょうどアニメ化もしているけど、なんか懐かしいものを見ているようでこれもこれで楽しい。尺が厳しそうな雰囲気はあるけども。

ハイコンテクストなデザインはそれ自体がバリアなのだろうか

全盲の新入社員はサイボウズに出社できるのか?

このnoteを見て見出しのようなことを少し思った。とてもいい記事なのだけど、かっこいいオフィスデザインが人によっては障害になり得るという点で、ちょっとそんな連想をしたのでした。

卑近な例だとコンビニのコーヒーメーカーがテプラだらけにされるというネタがあるけど、あれも普通の人にっては洗練されすぎたデザインはバリアとなり、使いにくくなってしまうのかもしれない。逆に言えばバリアフリーなデザインはダサい、のか? ダサいっていっても主観的な問題なので我々の価値観の方を変えてしまえば済みそうではあるけども。

城にエレベーターを頑なに導入したがらない政治家とか、バリアを敢えて設けたがる節があるのもその方がかっこいいと思われているのでしょうか。オタク同士の会話は楽、みたいなのもコンテクストを共有している者同士では話が速くなるということで、実際そういう会話(ネットスラング使いまくりとか)は心地良いこともある。しかし、少し離れたところから見ればそれもバリアなんですよね。

まあ結局はバランスということになるのでしょうが、自分は分かっている側だから良いとならずに歩み寄れるゆとりは持っておきたいものです。

血液検査の結果を眺めてみる

血液検査の結果も2015年から記録を続け、そこそこ貯まってきたので年毎にプロットしたら何か見えるかな?と思って描いてみた。今回はPythonを使いました。

色々計っているけど関心があるのは血中リン濃度くらいなので、横軸は月、縦軸はリンの値のプロットを描いています。他にカリウムなんかも大事なんだけど、これは上がりすぎると死ぬってだけでたまに外れ値があってもまぁ生きていればいいやという感じなのでスルーです。リンは高い状態が長く続くとじわじわ体に悪影響が出てくるタイプのものなので、よく見ています。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime

# プロットの設定
plt.figure(figsize=(20,5))

def create_plot(dd, pp, label, color):
    norm_dates = [datetime.datetime(2020, d.month, d.day) for d in dd]
    plt.plot(norm_dates, pp, label=label, color=color)

df = pd.read_csv('./summary.csv', sep=',',
    index_col='日付',
    date_parser=lambda dates: pd.datetime.strptime(dates, '%Y-%m-%d'),
    usecols=['日付', '無機リン(P)'])
dates = df.index
p = df['無機リン(P)']

# プロット作成
colors = ['#0000FF', '#AAAA00', '#00FF00', '#009999', '#888888']
for i in range(5):
    y = 2019-i
    start = f'{y}-1-1'
    stop = f'{y}-12-31'
    create_plot(dates[(dates > start) & (dates < stop)], p[(dates > start) & (dates < stop)], f'{y}', colors[i])

# リン5.5未満が望ましい
plt.fill([datetime.datetime(2020,1,1), datetime.datetime(2020,12,31), datetime.datetime(2020,12,31), datetime.datetime(2020,1,1)], [5.5, 5.5, 7, 7], color='#FF000022')

# オプション
plt.legend(loc=1)
ticks = [datetime.datetime(2020, m+1, 15) for m in range(12)]
plt.xticks(ticks, [m.strftime('%m') for m in ticks])
plt.xlim('2020-01-01', '2020-12-31')
plt.ylim(3, 7)

f:id:wata_d:20200124145848p:plain

……わからん! 点数を減らすために平均を取ってみる。

def create_plot(dd, pp, label, color):
    norm_dates = [datetime.datetime(2020, d.month, d.day) for d in dd]
    # 月ごとの平均をプロットする
    mean = pp.groupby(dd.month).mean().values
    start = 13 - len(mean)
    x = [datetime.datetime(2020,i,15) for i in range(start, start+len(mean))]
    plt.plot(x, mean, label=label, color=color)

    # 他に pp.rolling(4).mean() で移動平均を取るとか、近似曲線もあるけど略

f:id:wata_d:20200124145859p:plain

2018年はわりとちゃんとやってたのに、去年(2019年)はだらしないな。なんとなくだけど、連休がある月に上がる傾向にあるように思える。前々から「食べなさすぎてもリンは上がるのでは」と考えているけど、自分は休日の方が食べないことの方が多いので関連付けたくなる。

この後statsmodelsとかも使って季節性とかも探ってみたかったけど、今のところうまくいっていないので没となっております。

集中力がない

おもむろにVisual Studioを起動するも、スプラッシュウィンドウが表示されている間にブラウザを前面に移動してしまい、そのままその日が終わる。

ブラウザ上にも未読のタブが複数開かれており、タブAを読んでいる最中にタブBに移動し、それを読み終える前にタブCに移ってしまう。なぜ。タブCを読んでいる間に横目に移るTweetDeckに流れてくる猫の動画に気を取られ、続けて出てきたURLをクリックしてさらにタブが増える。

最近の読書はもっぱらスマホ電子書籍スマホに届く通知は割と無視できるのだけど、なぜか会話シーンの途中で別のアプリ(Twitterとか)にシュッと移ってしまう。

紙の本だと通知もないしスワイプして別のアプリに移動したりもできないので、結構集中して読める。これも紙の利点でしょうか。まぁ、物理的なスペースがないしすぐになくすので、滅多に買わなくなってきてしまいましたが……。

だからなんだというわけでもない、オチのないエントリです。

最近のWindows 10には集中モードという通知を一時的にOFFにできる機能もあるみたいですが、通知は別にそれほど影響ないからなー。MacだとWriteRoomみたいな物書きにだけ集中できるアプリとか昔話題になっていた気がするけど、ネットもできないポメラとか、仕組みで解決できる部分もあったりするのかな。

エディタ自体を全画面表示にしてタスクバーを見えなくすれば少しは浮気しづらくなるだろうか?(VSCodeやVSならF11で全画面化でき、これが集中モードのトリガでもある)。プログラミングはどうしても最中に調べ物をするためにブラウザを開いてしまうので詰みそうだけど。