素材の味

丁寧に暮らしています

VS Codeを使った精進環境

VS CodeAtCoderの過去問やるときの環境について書いておく

つかってるのはこれ

github.com

marketplace.visualstudio.com

問題のディレクトリ生成とサンプルのDL

atcoder ディレクトリを作って、その中に gen.shmain.cpp を置いてる

.
├── gen.sh
└── main.cpp

gen.sh の中身はこうなってて ./gen.sh 100 みたいにすると ABC100 の aからcまでの問題のsample input/outputをとってきてくれる

#!/bin/bash

mkdir $1
cd $1
list="a b c" # とりあえずa,b,cだけ
for x in $list; do
    mkdir $x
    cd $x
    cp ../../main.cpp ./main.cpp
    oj download https://atcoder.jp/contests/abc$1/tasks/abc$1_$x
    cd ../
done

実際に ./gen.sh 100 を実行するとこんな感じになる

.
├── 100
│   ├── a
│   │   ├── main.cpp
│   │   └── test
│   ├── b
│   │   ├── main.cpp
│   │   └── test
│   └── c
│       ├── main.cpp
│       └── test
├── gen.sh
└── main.cpp

a 問題を解くなら a/main.cppVS Codeで開く(連続で解くので atcoder ディレクトリを開いたほうが良い)

code-runnerを使って実行する

VS Codeワークスペースで以下のような設定をする

{
    "code-runner.customCommand": "g++  ./main.cpp && oj test",
    "code-runner.clearPreviousOutput": true, // これは好み
    "code-runner.fileDirectoryAsCwd": true,
    "code-runner.runInTerminal": true // これも好み
}

あとは VS CodeRun Custom Command を実行するとコンパイルoj test が実行されてターミナルに実行結果が表示される (ショートカットを設定すると便利)

code-runnerで実行した結果
code-runnerで実行した結果

あとはどんどん解いていくだけ

焼き鳥 おみ乃に行った

ここ

tabelog.com

有吉くんの正直さんぽで知って、ずっと行きたかったけどついに先日いくことができた

数ヶ月待つけど予約自体はそこまで難しくない(今回のは10/2に予約したやつ)

この値段帯の焼き鳥は初めて行ったけどめちゃくちゃ良かった
時間帯もあるのかもしれないけど(22時~)雰囲気がバー見たいな感じだった

f:id:cakecatz:20191225001646j:plain
ひざ

味は当然美味しいし、ホスピタリティの高さもめちゃくちゃ感じられた
鶏皮のポン酢和えを頼もうとしたら皮が売り切れで頼めなかったんだけど、少ししてから食道で作ってみましたと言って持ってきてくれた

f:id:cakecatz:20191225002048j:plain
銀杏とさび焼き

ドリンクを頼んで苦手なものとかを伝えたらあとは勝手に串が出てくるシステム
もちろん好きな部位があったら都度頼むこともできる

f:id:cakecatz:20191225002510j:plain
どんこ

締めはお茶漬け、卵かけご飯、そぼろ丼、親子丼の4つ お弁当もあって、焼鳥弁当(半分そぼろなのでこっちの方が良さそうだった)とそぼろ丼が頼めるので締めを親子丼にしてお弁当でそぼろを食べるのが良いと思う(そうした)

f:id:cakecatz:20191225002957j:plain
親子丼

値段は二人で3万弱(めちゃくちゃ食べてお弁当も頼んだからだと思う)だったので気軽に行ける感じではないけど、興味がある人はぜひ行ってみてほしい
一応想定予算は一人6000円くらいだった

22時開始は売り切れてるものも結構あるので次はもっと早い時間に行きたい

GitHubのコメントでSuggestionを出す

この記事はOpenSaaS Studio Advent Calendar 2019、15日目の記事です。

TL;DR

  • 楽をするためにGitHubのコメント欄でsuggestionを出せるExtensionを作成した
  • 思ったよりも自由に作れる
  • 審査はちょっとめんどくさい(特にFirefox)

f:id:cakecatz:20191215235823g:plain

はじめに

僕が所属するDeveloper Productivityチームではいろいろな作業を自動化していて、その多くが GitHubのコメントを通して実行できるようになっています。

毎日使う機会があるので毎回手打ちするのはめんどくさいし、タイポする可能性もあるなあと思い、これらのコマンドをsuggestしてくれるBrowser Extensionを作ろうと思いました。

開発を始める

まず参考になりそうな refined-github のコードを軽く読んで開発を始めました。

package.jsondependenciesextension 開発のためのライブラリなどが多くあって、どんなものかを見るだけでも面白いと思います。

f:id:cakecatz:20191215235246p:plain

使ったツール・ライブラリは慣れと開発のしやすさを重視して、

  • TypeScript
  • React
  • Redux
  • styled-components
  • webpack

などです。 特に問題なく使用できます。

開発をしやすくする方法

書いたコードを反映させるために毎回Chromeのsettingから読み込み直させる必要があります。

これは大分手間ですが、crx-hotreload を使うことで変更した際に自動で読み込み直すことができます。

Firefox では web-ext を使って同じことが実現できます。

審査

ChromeFirefoxもどちらもストアに上げる前に審査が必要です。(unlistedやprivateの場合でも) Chromeの方は審査はすぐに終わり(数時間)特に何も言われずに公開できました。 Firefoxは今日(12/15)の夕方くらいにアップロードしてみましたが、終わりそうな気配はないです。(審査のQueueが見えるけど数時間経っても10 of 10) またFirefoxの場合はソースコードの提出が必要で、別途zipにして提出をしました。

終わり

Extensionを開発するのは初めてでしたが、思っていたよりもすんなりできました。 ある程度開発してから気づきましたが、 Extension Workshop というサイトがあり、Extension開発についての便利情報が沢山書いてあるので、最初はここを読むべきだと思います。 ExtensionのGenerator も存在していて、大分開発しやすい環境になっているなと思いました。

この投稿を見て興味を持った方はぜひ開発してみてください。