技術とかの雑なToday I Learnedメモ

タブ記事、お気持ち、マークダウンのインライン表示のエスケープ、スプレッド構文

タブを消すために記事を読むぞ

昨日の投稿にも書いたけど、あとで読むつもりで記事をブラウザで開いてそのまま開きっぱなしみたいなのを無限回繰り返してタブの数がえげつないことになってるので、ちまちまとここに書いて閉じる作業をやっていきたい。

今日のタブ記事消化

(※ タブで開いていてあとで読むと思ったまま読んでない記事をタブ記事と勝手に表現しています)

エネルギーがない人が新しいことをはじめる時のコツみたいなやつ

2018 年って書いてあるぞ……。

要約すると、

  • 決断疲れという言葉あるように決断にはものすごいエネルギーが必要
  • そんなエネルギーなんてない(僕もこれはそう)
  • ということはどうにかして工夫しないとダメだ => 「習慣化」に辿り着く
  • 人間はストレスが溜まっているときほど習慣的なことに走る => つまり「良いこと」を習慣にすると最強
  • そんなうまいこといったらダイエット本なんて流行らんよね
  • ものすごい簡単なことから習慣化したらいいと思うよ
  • プログラミングだとしたら「一行は必ずコードを書く」とかそのレベル。なんなら「パソコンの前に座る」でもいい
    • 一応これはプログラミング初学者のことだと思うので、今の自分はこれじゃ全然足りないけれどね
  • やる気があって行動するんじゃなくて、行動したらやる気があとからついてくる
  • そのために行動の敷居を極限まで下げる
  • 簡単なやつをずっと続けてもダメなので、慣れてきたらちょっとずつ時間とかのハードルを上げていく
  • 良い習慣を身につけると自信になって他の習慣も良くなっていくっぽい

という感じだろうか。

最初の記事が習慣化についてというのがすごい。このサイトも習慣化のために作ったし、「極限までアウトプットのハードルを下げる」というコンセプトも同じだし。

言われてみるとまあそうだよねという感じなんだけど改めて痛感したので今後も頑張っていきたい。

リポジトリのリンクがない

このサイトのソースコードが置いてあるリポジトリは public なんだけどこのサイトのどこにもリンクを置いていなかった。早めに置きます……

タグを選ぶハードル

昨日の投稿には poem っていうタグをつけたんだけど、タグを考えるのにも結構悩んでいて(日本語が使えないというのもある)、せっかくアウトプットのハードルを下げるために作ったのに肝心のアウトプットでそんな悩むならタグ要らなくない?と思ってしまった。

が、検索機能が重そうだからせめてタグで絞り込めるようにしようという思いでタグを作ったので、せっかくなら活用したいしなあ……みたいな気持ちがある。どうしよう……

とりあえず昨日の投稿のタグは poem じゃなくて okimochi にしました。全角ひらがなを使いたい……

マークダウンのエスケープ

GitHub のマークダウンにコードを書くためのインライン表示をしようと思ったんだけど、コードの内容にもバッククォートがあったのでうまいこと表示させるためにはエスケープしなきゃと思い、エスケープといえばバックスラッシュだろと思ってつけてみたらダメだった。

ググって見たらこんな記事が。

Markdown 記法 チートシート

Qiita 公式の記事だった。

インラインコードが n 個連続するバッククオートを含む場合、n+1 連続のバッククオートで囲みます。

ということなのでやってみたんだけど、

hoge="`aaa${bbb}ccc`"

できた。これ知らなかった……

スプレッド構文の便利な使い方

【JavaScript】スプレッド構文の便利な使い方まとめ

なんで開いたかは忘れたけどこの記事を読んで「強力な配列操作」という項目が気になった。

const data1 = [1, 2, 3]
const data2 = ['d', 'e', 'f']

data1.push(...data2)
console.log(data1) // [1,2,3,"d","e","f"]

ということらしいのだが、これはdata1.push(data2)じゃダメなんだっけ?と思ったので今 developer console で実行してみる。

const data1 = [1, 2, 3]
const data2 = ['d', 'e', 'f']
console.log(data1.push(...data2))
// => 6

……あれ?と思ったけど、

data1
// => (6) [1, 2, 3, "d", "e", "f"]

なるほど、pushは結果の配列の length を返すっぽい。

じゃあdata1.push(data2)にしたらどうなるのかというと、

const data1 = [1, 2, 3]
const data2 = ['d', 'e', 'f']
data1.push(data2)
// => 4
data1
// => (4) [1, 2, 3, Array(3)]

そういうことか。Ruby でいうflattenみたいなことをやってネストを排除するということか。

[...data1, ...data2]でよさそうな気もした。こっちだとパフォーマンスが悪いとかあるのかな。