なっぱ箱

ゲームとか読書の感想とか時々技術系の話とか

じぶん Release Notes (ver 0.32.05)

なっぱ(ver 0.32.05)がリリースされました。更新内容は下記のとおりです。

技術関連

  • 「暗号技術のすべて」を読了しました
    • 読了エントリは未投稿

イベント

  • 新居の引き渡しが完了しました🎉🎉🎉
  • 友人と車で新居に出かけました
  • 引越しに向けて各種必要なものを購入しました
    • 車(納車待)
    • キッチンボード(配達待)
    • エアコン(配達待)
    • テレビボード(設置済)
    • 昇降デスク(設置済)
  • 映画を鑑賞しました
  • 会社を退職しました
    • 6/1より別の会社にて勤務となります
  • 熊津たちとTRPGの会員にオフセを行いました
    • 使用システムはデッドラインヒーローズ

買物

ゲーム

クリア

  • deltarune Chapter.1

プレイ中

なし

読書

読了

読書中

なし

記録

引越、退職等でFitBoxingとピアノはほぼできていないので割愛。

アウトプット

ふりかえり

Keep

  • 引越しに関する下準備をすべて完了させることができた
    • 梱包に関しても大まかには完了
  • 前々からやりたかったTRPGをプレイできた。とても楽しかったので継続していきたい
  • 家具の組立を頑張った。とても頑張った・・・

Problem

  • 外出が多いこともあり外食がとても多くなってしまった
    • 年内目標体重の言質も取られてしまったので頑張らねばならない
  • 仕方ないとはいえ出費がとても激しい。稼がねば・・・

Try

  • 新しい職場でのキャッチアップを迅速に行う
  • 新居で飼うペットの種類をできれば決めておく
  • 無事に引越しを行う

所感

引越しの事前準備、退職とやはり忙しい月になった。忙しかった分6月はすこし余裕が出ると思いたい。

新居の準備

鍵もゲットしたのでちょこちょこ新居に行って入居の準備をしている。

テレビボードなどの組立家具は事前に搬入して組立を行ったが大正解だった。時間が想像の3倍くらいかかったので引っ越しと同時にやってたらダンボールを開けてる余裕はきっとなかったと思う。組立系家具はもうないはずなので、当日はダンボールに真正面から向かい合いたい。

そして都内にいると所持するのが難しいものの代表である車を購入。諭吉がいっぱい飛んでいった。

車種は日産のジューク。年式の古い中古車だけど割とキレイそうなのと、ディーラー販売の中古車で3年保証ついているのでいいかなと。 ラゲッジスペースは結構広め。DIY用の木材などはたっぷり乗りそうだし、キャンプに行くときも安心して荷物が積めそう。ただ後部座席がかなり狭いのだけが残念。

いろいろと必要経費がかかってしまって入るが、引越し後の生活が非常に楽しみ。引越しまではあと1ヶ月。このままトラブルなく引越しを終わらせたいものだ。

来月

引越しもあるし新しい職場にも慣れなきゃいけない。大変な月にはなると思うが頑張ろうと思う。

LOWYAで67インチ対応のテレビボードを買った

戸建て物件に引越すにあたってリビングの収納をどうするかという問題を夫婦で話し合っていたんだけど、

  • 何個も収納家具を置くくらいなら収納付きのテレビボードを買って1つにまとめたほうがよいのでは
  • いずれでかいテレビを買うつもりだし、対応できる大きなサイズのテレビボードを選ぶのがベター

という意見でまとまったので大きめのテレビボードを購入することにした。

今回購入したのはLOWYAで販売しているこちらの商品。

www.low-ya.com

対応テレビサイズは67インチまで。一般的な家庭で67インチを超えるテレビはそうそう購入する必要性はないので問題はないと思われる。収納についても十分以上に整っているし、一部ガラス戸となっているのでちょっとした小物をディスプレイしても良い。LEDライトを這わせる穴も空いているのでライトアップすることも可能。あまり見栄えが良くないものは木扉のほうにしまう、と使い分けできる点も高評価。そして安い。これが決め手。

見た目も値段の割には比較的良く、YouTubeで見ても結構良さそうだったので他に対抗候補を特に上げることもせず決定。

ただ後述するが組み立てが地獄なので購入する場合は覚悟をしておいてほしい。

到着

こんな感じで4個口の激重ダンボールが届く。ちなみに大型家具等の専門配送会社が配送してくれるので、引越し業者のように床に毛布っぽいものを敷いて作業してくれたりなどの気配りをしてくれたのが助かる。

しかしとにかく重い。商品詳細を確認するとダンボール1つ30kg以上の重量があるので、到着後に別の部屋に運び込みたいとか移動をしたい場合は気をつけて運んでほしい。

開封

さてこの巨大なテレビボード、中央のテレビ台以外に左側にある「大型キャビネット」、右側にある「中型キャビネット」、そして上にある「板棚」の4つで構成されているのだが、別にダンボールごとにパーツがまとまっているわけではない。長さが違うパーツを効率的に収納するには仕方がないことではあるのだけど、全ダンボールにパーツがそれぞれバラバラに入っている。

そのため全ダンボールを開封してパーツをそれぞれ種別わけして並べるという作業をまず最初になってくる。

正直ものすごく場所を食う。まだ荷物を運び入れてない空っぽの12畳ほどの部屋がパーツで埋め尽くされるほどの量があるので、組み立てスペースを確保してから買うことをおすすめする。

そしてこの商品最大の欠点になるのだが、なんとパーツ一覧が存在しない。

普通であれば説明書の最初に全パーツがナンバリングされている表などがあるのと思うだろうが、そんなものは存在しない。一応各収納棚ごとにパーツのナンバリングは行われているのだが、パーツ自体に番号のシール等は一切ないので自力で照合していく必要がある。説明書上の穴の数、位置から「これだ!」と思われるものを選別する作業が必要になるのだ。

作業する場合は開封したダンボールを下に引いて作業スペースの床を保護するとよい。各ダンボールが2重梱包になっているのでダンボールに困ることはないはずだ。

必要工具

必要工具がドライバー、金槌、定規、鉛筆となっているのだが、ドライバーはぜひ電動ドライバーを用意してほしい。ナット等が埋め込まれているわけではなく、木に直接締め込むのでとてもパワーが必要になる。これを人間の手でやっているときりがないので電動ドライバーはもはや必須に近い。安物でもいいので買っておくのをおすすめする。いや本当に。

それと棚の一部を釘打ちするので金槌が必要になるのを忘れないでほしい。自分は用意するのを忘れて新居周りの店を2h近く歩き回って探す羽目になってしまった。なお定規と鉛筆は釘打ちをする場所の目安を書くために必要。最悪なくてもいいが用意しておいたほうが無難。

1つ目のキャビネットの完成

左側の大型キャビネットが完成するとこんな感じ。

これを組み立てるのだけで数時間かかり、初日が終わってしまった。やはり大量のパーツの中から探すという作業が一番しんどい。

なおガラス戸は強化ガラスになっているが、その中の敷板用のガラスは強化ガラスではないので取扱に注意。

メインになるテレビ台の完成

ここができるとテレビボードらしくなってきた。

2つ目のキャビネットの完成

最初に作ったキャビネットの小型版なのでそんなに苦労はしない。

ただ慣れてきて気を抜いたからか、ガラス戸と板扉を仕切っている真ん中の板を上下逆に取り付けてしまうというミスを起こしてしまった。そのせいで棚の敷板が平行に置けなくなったが、すでに釘打ちもしていて解体が困難のためドリルで無理やり加工して対応した。リカバー可能なミスでよかった・・・

テレビボード完成

最後の上棚が完成して組み付ければ完成となる。上棚はパーツが少ないがやや特殊な形をしているので間違えないように注意してほしい。

ちなみにおいてあるモニターはこれでも27インチサイズ。どれだけ大きいかがわかってもらえるかと思う。

感想

組立系家具にしてはクオリティは結構高目だと思う。扉や引き出しも結構スムーズなので不満点はあまりないのだが、ちょっと気になる点が1つ。

f:id:b7472:20190530125541p:plain

この写真を見てもらうとわかるのだけども、扉の蝶番が設置されてる箇所のパーツが少し飛び出しているのだ。そのせいで棚の幅ギリギリのものはそのまま出入れることができず、ちょっと斜めにするなりして入れる必要がある。幅ピッタリのケースなどになってしまうともはや入れられない。

あとは組立難易度が高いこと、かなり広めの作業スペースが必要である、など多少の欠点はあるものの全体的にはとてもよい商品だと思う。

最後にこの商品をちょっと紹介している動画を貼っておく。検討している人は参考にしてほしい。そして全く関係ないが猫がとってもかわいい。

www.youtube.com

それと旦那さんの方の料理チャンネルがクッッッッッソレベルが高いので気になる人は是非。

www.youtube.com

ネバーランド出身の友人達と久々におかめに行ってきた

厚木に「ホルモンセンターおかめ」というホルモン焼き屋があるのだが、6,7年ぶりくらいにネバーランド出身の友人たちと行ってきた。

ネバーランド

おかめの話の前に「ネバーランド」について。

ネバーランドといえば童話のピーターパンに出てくる妖精がいる国で「住んでいる間は年を取らなくなる」というのは有名だと思う。 ここで言う「ネバーランド」も概ね同じなんだけれども、一つだけ違うのが「年を取らなくなる」のではなく「進級ができなくなる」のだ。

まぁぶっちゃけ大学時代のかつてのたまり場、自分が住んでいたアパートのことなんですけどね。

鍵を一切かけないため出入りは自由。寝て起きたら部屋の中のメンバーが入れ替わっていたりするのは当たり前。数日間毎日気絶するまでみんなでモンハンしたり、死ぬほど遊戯王をやったり、無駄にテレビとPS3が複数台あったからDarkSoulのマルチプレイをローカルで集まって試してみたり、連絡が取れなくなって心配した友達の彼女が深夜に突撃してきたりと、とってもカオスで楽しいダメ学生がたまる夢の国。

そしてこの部屋に入り浸っていたメンバーのほぼ全員が留年や退学するという悲惨な目にあったため、いつのまにか「ネバーランド」という異名でよばれるようになったのだ。ちなみに部屋の主である自分は尊敬と畏怖の念を込めて「ビーターパン」の称号を与えられていた。

とりあえず、簡単に言えば大学時代の友人とおかめっていうホルモン焼き屋に行ってきたっていう話。

ホルモンセンターおかめ

本厚木駅の駅から徒歩15分くらいのところにあるホルモン焼き屋。

個人的にはホルモン系でここより旨いホルモンは食べたことがない(そもそもホルモン焼き屋に行った経験が少ないが)。 そして値段、味、量のトータルでここに勝てる店はないのではなかろうか、というのが自分の評価。異論がある人は是非店を教えてほしい。

ちなみにかつてメニューにレバ刺しがあったのだが、人生で食べたレバ刺しの中でこの店のものがダントツでトップ。他の店のものでうまいのを食ったことがない。できることなら死ぬまでにもう一度食いたい・・・。

ただ注意点として昔からやってる店だけあって内装は古め。あと換気扇も古くてパワー不足だから混雑時は煙が店内に充満する。服に匂いをつけたくない人にはおすすめできない。

写真

f:id:b7472:20190511174146j:plain

外観はこんな感じ。とってもレトロ。そして看板にある通りマジでうまくて安い。


f:id:b7472:20190511175145j:plain

知ってる人は知ってると思うけど、これがB級グルメで有名になったシロコロ。この量で2人前。


f:id:b7472:20190511175028j:plain

タン塩。ここでは牛タンではなく豚タン。歯ごたえがよい。


f:id:b7472:20190511175049j:plain

やわらかナンコツの略でやわナン。軟骨周辺の歯ごたえのある肉。


f:id:b7472:20190511175449j:plain

カルビもある。油が甘い。米が進みすぎて困る。


f:id:b7472:20190511180733j:plain

馬刺し。昔はレバ刺しとかハツ刺しがあったんだけどね。関係ないけど会津の馬刺しも食いたいなぁ。


f:id:b7472:20190511190500j:plain

チャンジャがのった辛目の味付けのお茶漬け。これが最高の〆。


f:id:b7472:20190511175500j:plain

こんな感じのレトロな七輪で焼きます。

かつてのバイト先

実はこのおかめというお店、大学時代のバイト先だったりする。

初めてのバイトだったから給料をもらえて感動したり、まかないのキムチを食べ始めたおかげで野菜嫌いが治ったり、ホルモン焼き屋なのにまかないで刺身定食が高頻度で出てきて「今週何回カツオ食ったんだろ・・・」状態になったり、今思い出してもいろいろなことがあった気がする。

今バイトで入っている人も当時の自分と同じ大学の学生さんらしくて、1人ベテラン1人新人といった感じ。 たどたどしくても頑張ってる新人さんを見ると当時が本当に懐かしくて、しみじみと「俺本当におっさんになっちゃったんだなー・・・」というお気持ちになった。

また行きたい

昔はあった上カルビとかハツ刺しとか豚足とかはなくなっちゃってたけど、やっぱりおかめはあの頃の雰囲気のままだし、今になってから食べてもやっぱりうまい。

マスターやおかみさんにもまた会いたいので、いずれ予定を組んで行こうと思う。

じぶん Release Notes (ver 0.32.04)

すこし遅れてしまいましたがなっぱ(ver 0.32.04)がリリースされました。更新内容は下記のとおりです。

技術関連

イベント

  • 転職先が決定しました🎉🎉🎉
  • 引越先の新居が決定しました🎉🎉🎉
    • 5/1時点より契約
  • 新宿御苑で花見をしました🌸
  • 内見がてら友人と車で出かけました
  • 10年ぶりくらいの富士急ハイランドへ行ってきました🎢
  • 義母が1週間くらい泊りに来ていました
  • レティクル東京座公演「電脳演形キャステット」を観劇しました

買物

ゲーム

クリア

プレイ中

なし

読書

読了

読書中

記録

FitBoxing

https://pixe.la/v1/users/yamash723/graphs/fitboxing.html

  • 実施回数: 1回

ピアノ

https://pixe.la/v1/users/yamash723/graphs/piano.html

  • 練習回数: 4回
  • 総練習時間: 40分
  • 練習曲
    • 米津玄師: Lemon

アウトプット

ふりかえり

Keep

  • 転職先/引越先を決めることができた。あとは引越のみ
  • 仕掛り中のゲームをクリアすることができた
  • 前々からやろうと思っていたTRPGの準備を行った
    • 実プレイは5月

Problem

  • 転職や引越準備などなどで運動やピアノなどすべてがおろそかになってしまった
  • 外出などが多かったのでせっかくだからブログを書けばよかった
  • 予定があったので仕方ないが技術書典に今回も行けなかった

Try

  • 引越に向けて事前に家の整理、不用品処分を行う
  • 都内にいる間に遊べる事は遊んでおく
  • 購入する車の選定を進める

所感

転職と引越準備でバタバタな月だった。

令和

さようなら平成、おめでとう令和。まだ慣れないよ令和。

日が変わるタイミングは何をしていたか覚えてないけども、とりあえず奥様はガッツリ寝落ちしておりました。

移住先の物件

茨城県水戸市の新築一軒家に決定。

今まで2年に1回くらいのペースで引越をしていて、マンションもアパートも一軒家も経験はあるんだけれども新築は初めての経験。とても楽しみ。 しかもお隣さんとの距離は駐車場2台分の距離が離れているので騒音に関しては全く問題なさそうな気配である。

地方にしてはありがたいことにコンビニへ徒歩3分。同じ距離圏内にけっこう大きめの森林公園的なものもあり。駅まではそこそこ離れているがまれにしか通わないと思われるのでそんなに気にならない(と思う)。

車さえあれば超巨大ホームセンター、ショッピングモール、コストコ海浜公園、魚市場なども気軽に行ける距離なので買物でも困ることはそうそうないのではなかろうか。

都内へも特急や高速バスを使えばすぐ出れる位置なので、満足いく物件に決められたと思う。

来月

休日の予定は半分どころか2/3くらい埋まった。5月はまだ引越しないので多少余裕はあるが、あとから慌てないように準備は着々と進めていこうと思う。

TypeScript & ESLint/Prettier & webpack & Jestで最小構成のプロジェクトを作る

はじめに

Vue等であればvue-cliで新規プロジェクトを作ってしまえばいいのだが、 別にVue等を使わないCUIツールなり簡単なものをザクっと書きたいとき用に最小構成のものが欲しかったので作ってみた。

(あとはそもそもここ最近のモダンな構成をゼロから用意したことなかったので勉強がてら)

作ったもの

作ったものはこんな感じ。

github.com

├─dist
│   └─── bundle.js
│      
├─node_modules
├─src
│   ├─── app.spec.ts
│   └─── app.ts
│
├─ .gitignore
├─ .eslintrc.js
├─ .prettierrc
├─ jest.config.js
├─ package-lock.json
├─ package.json
├─ tsconfig.json
└─ webpack.config.js 

手順

プロジェクトの初期化

とりあえずプロジェクト用のディレクトリを切り、最低限のソースと.gitignoreを用意しておく。

$ mkdir minimum-ts-template && cd $_
$ npm init -y
$ mkdir src && touch src/app.ts .gitignore

src/app.ts

export const SayHello = (): string => {
  return 'Hello! TypeScript!'
}

console.log(SayHello())

.gitignore

node_modules
dist

TypeScript/Webpackの設定

必要なパッケージを追加し、それぞれの設定ファイルを作成。内容はお好きに変更してどうぞ。

$ npm i -D typescript ts-loader webpack webpack-cli
$ touch tsconfig.json webpack.config.js

tsconfig.json

{
  "compilerOptions": {
    "target": "ES2017",
    "module": "es2015",
    "baseUrl": ".",
    "paths": { "@/*": ["src/*"] },
    "outDir": "./dist/",
    "removeComments": true,
    "strict": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "noImplicitThis": true,
    "alwaysStrict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

webpack.config.js

const path = require('path')

module.exports = {
  entry: './src/a.ts',
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
    ],
  },
  resolve: {
    extensions: ['.ts', '.js'],
  },
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
}

設定ファイルを追加したらpackage.jsonにbuildスクリプトを追加。

package.json

  "scripts": {
+   "build": "webpack --mode=development",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

これで下記のようにTypeScriptのビルドが出来るようになる。

$ npm run build

Hash: 12c5408bc864105b0202
Version: webpack 4.30.0
Time: 919ms
Built at: 2019-04-19 14:09:37
    Asset      Size  Chunks             Chunk Names
bundle.js  4.07 KiB    main  [emitted]  main
Entrypoint main = bundle.js
[./src/app.ts] 97 bytes {main} [built]
$ node dist/bundle.js
Hello! TypeScript!

ESlint/Prettierの設定

The future of TypeScript on ESLint

という事なのでTSLintではなくESLintにしましょう。

まずはパッケージの追加を行って各種設定ファイルを作成。細かいルールはお好きなように。

$ npm i -D eslint @typescript-eslint/eslint-plugin prettier eslint-config-prettier eslint-plugin-prettier
$ touch .prettierrc .eslintrc.js

.prettierrc

{
  "singleQuote": true,
  "semi": false,
  "trailingComma": "all"
}

.eslintrc.js

module.exports = {
  extends: ["eslint:recommended", "plugin:prettier/recommended"],
  plugins: ["@typescript-eslint", 'prettier'],
  parser: "@typescript-eslint/parser",
  parserOptions: {
    sourceType: "module",
    project: "./tsconfig.json",
  },
  env: {
    browser: true,
    node: true,
    es6: true,
  },
  rules: {
    "no-console": "warn",
    "@typescript-eslint/adjacent-overload-signatures": "warn",
    "@typescript-eslint/no-unnecessary-type-assertion": "error",
  }
}

設定ファイルを追加したらpackage.jsonにlintスクリプトを追加。

package.json

  "scripts": {
    "build": "webpack --mode=development",
+   "lint": "eslint --ext .js,.ts --ignore-path .gitignore .",
+   "lint:fix": "eslint --fix --ext .js,.ts --ignore-path .gitignore .",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

これで下記のようにESLint/PrettierによるLintができるようになる。

$ npm run lint

D:\workspace\javascript\minimum-ts-template\src\app.ts
  2:10  error    Replace `"Hello!·TypeScript!";` with `'Hello!·TypeScript!'`  prettier/prettier
  3:2   error    Delete `;`                                                   prettier/prettier
  5:1   warning  Unexpected console statement                                 no-console
  5:24  error    Delete `;`                                                   prettier/prettier

✖ 4 problems (3 errors, 1 warning)
  3 errors and 0 warnings potentially fixable with the `--fix` option.
$ npm run lint:fix

D:\workspace\javascript\minimum-ts-template\src\app.ts
  5:1  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)

Jestの設定

最後にテストフレームワークのJestのパッケージを追加。やはり設定ファイルがあるのでそちらも追加。

$ npm i -D jest ts-jest @types/jest eslint-plugin-jest
$ touch jest.config.js

ESLintに設定を追加。

.eslintrc.

  module.exports = {
    extends: ["eslint:recommended", "plugin:prettier/recommended"],
-   plugins: ["@typescript-eslint", 'prettier'],
+   plugins: ["@typescript-eslint", 'prettier', "jest"],
    parser: "@typescript-eslint/parser",
    parserOptions: {
      sourceType: "module",
      project: "./tsconfig.json"
    },
    env: {
      browser: true,
      node: true,
      es6: true,
+     "jest/globals": true,
    },
    rules: {
      "no-console": "warn",
      "@typescript-eslint/adjacent-overload-signatures": "warn",
      "@typescript-eslint/no-unnecessary-type-assertion": "error",
    }
  }

設定ファイルを追加したらpackage.jsonのtestスクリプトを修正。

package.json

  "scripts": {
    "build": "webpack --mode=development",
    "lint": "eslint --ext .js,.ts --ignore-path .gitignore .",
    "lint:fix": "eslint --fix --ext .js,.ts --ignore-path .gitignore .",
-   "test": "echo \"Error: no test specified\" && exit 1"
+   "test": "jest"
  },

app.tsに対するテストを書いてみる。

touch src/app.spec.ts

src/app.spec.ts

import { SayHello } from './app'

describe('SayHello', () => {
  test('toBe "Hello! TypeScript!"', () => {
    expect(SayHello()).toBe('Hello! TypeScript!')
  })

  test('not toBe "Hello! JavaScript!"', () => {
    expect(SayHello()).not.toBe('Hello! JavaScript!')
  })
})

これで準備は整ったのでテストを実行。

$ npm run test

 PASS  src/app.spec.ts
  SayHello
    √ toBe "Hello! TypeScript!" (3ms)
    √ not toBe "Hello! JavaScript!"

  console.log src/app.ts:5
    Hello! TypeScript!

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        2.868s
Ran all test suites.

以上で最小構成のプロジェクトが完成!

全然関係ないけどはてなブログのコードブロックもQiitaみたいにファイル名つけられるようになったらいいなぁ・・・

じぶん Release Notes (ver 0.32.03)

なっぱ(ver 0.32.03)がリリースされました。更新内容は下記のとおりです。

技術関連

イベント

買物

ゲーム

クリア

なし

プレイ中

読書

読了

読書中

記録

FitBoxing

https://pixe.la/v1/users/yamash723/graphs/fitboxing.html

  • 実施回数: 3回

ピアノ

https://pixe.la/v1/users/yamash723/graphs/piano.html

  • 練習回数: 3回
  • 総練習時間: 170分
  • 練習曲
    • 米津玄師: Lemon
      • 両手弾きが少しづつできるようになってきた

アウトプット

ふりかえり

Keep

  • 【先月のTryより】花粉症の対策を行った
    • アレジオンを服用するようになり花粉症の症状は劇的に改善してきた
  • ほぼ週1ペースで車に乗れている
    • レンタカー、カーシェアを駆使
  • 時間は短くなったがピアノの練習はできた
  • 購入した体重計できちんと毎日体重を計測できている
  • やはり筋肉量が足りないので筋トレを始めた
  • 技術以外のインプットを継続できた(魏志倭人伝

Problem

  • 上旬に引いた風邪でいろいろリズムが崩れてしまった
    • ほぼ3日完全ダウン
    • その後も7週間くらいは体調があまり良くない状態が続いていしまった
  • リズムが崩れたのもあってFitBoxing含む運動がおろそかになった
  • 私生活がバタバタしていたのもあってドラクエビルダーズ2の進捗が止まってしまっている
  • 最近FGOへあまり注力できていない
    • 育成はもちろんイベントもほとんどなにもできていない
    • 石をもらってガチャだけは回している

Try

  • 体重の推移、運動の状況をグラフ化してリリースノート上に掲載する
  • せめてもう少しピアノの練習時間を増やす

所感

なかなかイベントが満載の月だった。来月はこれ以上に忙しくなるので覚悟を決める。

カーシェアの利用

「免許とっても結局ろくに乗らずペーパーになる」という一番避けるべき状況は回避することができた。むしろ週1ペースというハイペースで乗れている。

都内にいると電車で大体行けるので車の必要性を感じないけど、カーシェアに登録して「(おおむね)いつでも乗れる車がすぐ近くにある」という状況ができると思った以上に行動の選択肢が広がった。 様々な施設があるのが都内の良い点ではあるが、電車移動をメインにした場合、どうしても駅周辺以外の施設を出かける先の候補から外しがち。車があればこの点をカバーできるので行先の候補がグッと増える。

ゼルダBOTWでいえばパラセールを手に入れたくらいの感動なので免許証を腐らせている諸兄にはカーシェアを是非お勧めしたい。

とりあえず次は金曜夜にスーパー温泉的なところへ行こうと思う。

IT技術系以外のインプット

今月は魏志倭人伝の現代語訳。

技術系の本を読んだら次は全然関係ないものを読む、というマイルールを施行しているのだがなかなかよい。普段ならまずかかわることのない領域の知識をインプットできる。

本当であれば数を稼ぐために気になるところだけを読もうと思っているのだが、今のところなんだかんだ面白くてだいたい全部読んでしまっている。

もう少し読書ペースを上げたいところ。なにかおすすめの本があったら教えてください。

移住

早ければ春には移住。と言っていたのにいつのまにか春になった。おそらく時間操作系の能力者による攻撃と思われる。

でも車の免許も取り、物件探しや転職も進めているのでなんだかんだそんなに残り時間は多くない。 移住してからこそ積極的に都内へきて友人たちと遊ぼうとは思っているが、今のうちにもっといろいろなことをしておこうと思う。

来月

いつも通りだが土日はすでに半分以上予定が埋まっている。やらなきゃいけないことも盛りだくさんなのでタイムマネジメントを意識したい。

そして平成最後、次元号「令和」までのラスト1ヵ月。特段何かやる予定でもないけれども、節目であるのは間違いないので少し意識して過ごそうと思う。

Nuxt 2.5.xでTypeScript対応するときの手順まとめ

はじめに

Nuxtの2.5.xだとnuxt-tsを使う必要がなくなってとても簡単になったので手順まとめ。

手順

新規プロジェクトの作成

create-nuxt-appで新規プロジェクトを作成。

今回はESLintの設定までやるのでLinter / FormatterPrettierを追加しておく。なおパッケージマネージャーはお好みで(今回はyarn)。

$ npx create-nuxt-app nuxt-ts-sample
  ? Project name nuxt-ts-sample
  ? Project description My fantabulous Nuxt.js project
  ? Use a custom server framework none
  ? Choose features to install Linter / Formatter, Prettier
  ? Use a custom UI framework none
  ? Use a custom test framework none
  ? Choose rendering mode Single Page App
  ? Author name shuhei.yamashita
  ? Choose a package manager yarn

  To get started:

        cd nuxt-ts-sample
        yarn run dev

  To build & start for production:

        cd nuxt-ts-sample
        yarn run build
        yarn start

$ cd nuxt-ts-sample

これでプロジェクトの作成は完了。

パッケージを追加

前まではnuxtを除去してnuxt-tsを入れていたが、今は@nuxt/typescriptを追加すればOK。 あとついでに@typescript-eslint/eslint-pluginとデコレーターのnuxt-property-decoratorを追加する。

$ yarn add -D @nuxt/typescript nuxt-property-decorator @typescript-eslint/eslint-plugin

tsconfig.jsonを追加

tsconfig.jsonがあることでプロジェクトにTypeScriptが使われていると判断される。必要な設定は自動で追加されるので自分で設定内容を作っておく必要はない。設定値なしで作成して一度起動しておく。

$ echo "{}" > tsconfig.json
$ yarn run dev # 設定値追加が目的なので起動後は終了していい

自動で設定される設定値はここ参照。

nuxt.js/index.js at dev · nuxt/nuxt.js · GitHub

.eslintrc.jsの内容を修正

   parserOptions: {
-    parser: 'babel-eslint'
+    parser: '@typescript-eslint/parser'
   },
   extends: [
     '@nuxtjs',
     'plugin:nuxt/recommended'
   ],
   plugins: [
+    '@typescript-eslint',
     'prettier'
   ],
   // add your custom rules here
   rules: {
   }

Nuxtの設定ファイルをTypeScriptに変更

この状態で動くのだが、せっかくなのでnuxt.config.jsnuxt.config.tsにして余計なjsファイルを減らしておく。

mv nuxt.config.js nuxt.config.ts

そしてwebpackの型定義が必要になるのでパッケージを追加し、tsconfig.jsonにも追記を行う。

$ yarn add @types/webpack
   "types": [
     "@types/node",
+    "@types/webpack",
     "@nuxt/vue-app"
   ]

あとはnuxt.config.tsの内容を修正。まずはimportの指定を修正。

-import pkg from './package'
+import { Configuration } from 'webpack'
+import { Context } from '@nuxt/vue-app'
+import pkg from './package.json'

あとはWebpackの拡張設定であるextendを修正。

-    extend(config, ctx) {
+    extend(config: Configuration, ctx: Context) {
       // Run ESLint on save
-      if (ctx.isDev && ctx.isClient) {
+      if (config.module && ctx.isDev && ctx.isClient) {
         config.module.rules.push({
           enforce: 'pre',
           test: /\.(js|vue)$/,

ただこのままだとpackage.jsonのimportが怒られるのでtsconfig.jsonresolveJsonModuleを設定しておく。

     "esModuleInterop": true,
     "experimentalDecorators": true,
+    "resolveJsonModule": true,
     "allowJs": true,
     "sourceMap": true,
     "strict": true,

pages/index.vueをTypeScript指定にする

-<script>
+<script lang="ts">
+import { Component, Vue } from 'nuxt-property-decorator'
 import Logo from '~/components/Logo.vue'

-export default {
+@Component({
   components: {
     Logo
   }
-}
+})
+export default class extends Vue {}
 </script>

起動してみる

特に問題なく設定されているならこれでちゃんと起動するはず。

$ yarn run dev