rustで書かれたlsの代替コマンドexaをインストールしてみた

twitterでおのかちお氏(鍵垢なのでここでは紹介できないが)がexa というlsの代替コマンドを試してみている、ということでスクショをアップしており、これがなかなか良さそうであったので、探してインストールしてみました。 website の説明によると、 A modern replacement for ls. トのことで、色をつけれたり、早かったり、tree viewができたり、Gitのステータスを表示できたりするらしい。 macの場合、homebrew でインストールできるようなので早速インストールしてみます。 1 $ brew install exa very easyですね。使ってみましょう。 なるほど、デフォルトの表示はlsと同じくgrid viewなんですね。ホームにディレクトリしかないのでわかりにくいですけど、字が太いですね。あとklaussinani/hyper-pokemon を使っている都合で、色は表示されません・・・ アイコン付きで表示してみましょう。アイコンを表示したい場合は--iconsオプションをつければ良い、とのこと。 おや、表示されないですね。これは困った。まぁこの手の問題は(見た目から言っても)フォントがインストールされてないために発生しているのだろう、とあたりをつけつつ、issueを検索します。 するとどうやら nerd fonts というフォントがアイコン表示用に使用されているようです。これをインストールしてみます。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ brew tap homebrew/cask-fonts ==> Tapping homebrew/cask-fonts Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-fonts'... remote: Enumerating objects: 19, done. remote: Counting objects: 100% (19/19), done. remote: Compressing objects: 100% (14/14), done. remote: Total 35658 (delta 8), reused 9 (delta 5), pack-reused 35639 Receiving objects: 100% (35658/35658), 6.07 MiB | 3.34 MiB/s, done. Resolving deltas: 100% (25786/25786), done. Tapped 924 casks (973 files, 7.8MB). $ brew cask install font-hack-nerd-font Updating Homebrew... Error: Cask font-hack-nerd-font exists in multiple taps: homebrew/cask-fonts/font-hack-nerd-font caskroom/fonts/font-hack-nerd-font おや、エラーが出ましたね。今回追加したhomebrew/cask-fontsというtapと元々あったcaskroom/fontsというtapの両方に同名のパッケージがあったようです。詳細を見てみましょう。 ...

2020-05-20 · nasa9084

Gmail Filter as Code

@yamamoto_febc さんのブログ記事 で、jessfraz/gmailfilters というツールを知りました。なんでも、GmailのフィルタをTOMLで管理するツール、とのこと(実際の使用例などはkakakakakkuさんの記事 で紹介されています)。 それは素敵っぽい、ということで触ってみたところ、実際良い物っぽい感じはあったものの、TOMLというのが(個人的に)つらいし、releasedなバージョンではexportができない(機能自体はmasterにあるものの、一年前に機能開発されてからリリースが打たれていない、という点がちょっと不安)という二点が気になりました。 特にTOMLはどうにも好きになれず、やはりYAMLで書きたい、という気持ちが強かった+GWの自由研究が決まらなかったので自前で書き直し、これをGmail as Code (今はfilterしか管理できないけど、他の設定も管理できるようにしたい)からgmac と名付けました。 YAMLで設定したい — nasa9084@某某某某(0x1b) (@nasa9084) April 27, 2020 GMaC - Gmail as Code 大枠の挙動としては、jessfraz/gmailfiltersとそれほど変わりません。Gmail APIをgoogle.golang.org/api/gmail/v1 を使用して叩いているのも同じです。 jessfraz/gmailfiltersと比較して、違う点として次の様なものがあります: TOMLではなくYAMLで設定を記述する Gmail Web UIに比較的近い設定項目 jessfraz/gmailfiltersも実装しているArchiveやDeleteなどはもちろん実装 条件/アクションを個別に設定する形にした jessfraz/gmailfiltersみたいに全部まとまってるとわかりにくくない? larger_thanやsubject、has_attachmentといった条件も追加 starやimportant、category(私は使ってないけど)といったアクションも追加 OAuthの際に認証/認可ページを自動で開き、OAuth callbackも受ける jessfraz/gmailfiltersはURLと、OAuth tokenをコピペする必要がある credentials.jsonおよびtoken.json (OAuthの認証ファイル)を特定の場所に置き、そこから読み込む jessfraz/gmailfiltersは毎回ファイルパスを指定する必要がある kubectl-likeなサブコマンド配置 get/applyが個別に行え、(k8sに慣れている人は)比較的なじみやすいはず jessfraz/gmailfiltersはオプションフラグで挙動を変える方針っぽい CIで使いやすい(と思う) credentials.jsonを標準入力から読める OAuth refresh tokenを環境変数で指定できる jessfraz/gmailfiltersはファイルからのみ (そこそこ)ちゃんとテストを書いている 全部とはいえないけど・・・ jessfraz/gmailfiltersはほとんどテストがなくてちょっと怖い (そこそこ)ドキュメントを整備してある README.mdを頑張って書いた 逆にjessfraz/gmailfiltersがサポートしている、queryOrやarchiveUnlessToMeは実装していません。ORとか普通に書けばよかろう。 Manage with CI 実際に、GitHub Actionsを使用して自分のGmail Filterを管理するように設定しました。管理用のプライベートリポジトリにfilters.ymlとしてフィルタの設定ファイル(これ自体も gmac get filters -o yaml > filters.yml として出力したもの)と、次のGitHub Actions設定ファイルをおいてpushごとに適用するように構成しました。 ...

2020-05-08 · nasa9084

YOBYBO CARD20

2020-05-19追記: 外出時にPixel 4との組み合わせで使用したら、音の途切れが激しく、正直使い物にならなかったので、「不良品では?」と問い合わせをしたら返品・返金対応となりました。見た目、サイズ感、装着感などは良かっただけに残念です。 先だってMakuakeで応援購入したCARD20 が届いたので、開封レビューします。 CARD20は非常に薄い左右完全独立型のワイヤレスイヤホンで、クラウドファンディングプラットフォームMakuakeで出資を募っていました。私も1月末頃に支援をし、紆余曲折あり(コロナのせいであれこれあったらしい)本日手元に届きました。 なお、多くの「提供」記事がウェブで展開されていますが、本記事は提供を受けたわけでもなく、自分で買っての感想です。 特筆すべきはその薄さで、この手のTWSイヤホンでも比較的標準と思われるサイズ感のAVIOT TE-BD21f のケースの厚さが3cm弱程度なのに対し、CARD20はなんと1.3cmと、TE-BD21fの約半分の厚さです。Pixel 4 (ファブリックケース付き)より若干厚いかな、という程度です。 CARD20の13.4mm世界最薄クラスのボディは、お財布やジーンズのコインポケットにしまうことができ、コードや収納の煩わしさから解放されます。 との説明がプロジェクトページに書かれていたものの、さすがに1.3cmのものを財布に入れたら邪魔そうではあります。とはいえコインポケットに入るのはなかなか良さそうです。 また、近年は店頭で販売されるイヤホンの大半がカナル型ですがCARD20はインナーイヤー型です。これは個人によってプラス評価になるかマイナス評価になるかというのはかなり分かれるところですが、左右完全独立型のワイヤレスイヤホンの選択肢はほとんど存在しない(AirPodsとその類似品+αくらい)現状で、カナル型があまり得意ではない私としてはかなり心が惹かれる製品となっています。ウェブ上でさっと調べても、「カナル型ではない点が惜しい」との記述を見ますが、個人的にはカナル型じゃないからこそ、「買い」でした。 外箱は至ってシンプルで、製品を上面から見た写真が白い箱に印刷されています。蓋と内箱がぴったり吸い付くようなサイズ感で構成された箱、しろい外観、余計な物が書かれていないデザイン、最近流行のデザインともいえますが、Appleっぽさがありますね。 箱底面にはケースからだしたイヤホンの写真と、モデル番号をはじめとした一通りのスペックが記載されています。Bluetoothのバージョンは5.0、MakuakeのプロジェクトページによるとQualcomm QCC3020を使用しているようです。TWS Plus対応ということなのですが、ざんねんながらPixel 4はTWS Plusに対応しておらず、あまり恩恵を受けることはなさそうです。 連続再生時間は約4時間、ケースのバッテリーが約16時間分充電できるようなので、合計で約20時間使用可能とのこと。AVIOT TE-BD21fが約7時間+約18時間の合計約25時間、SONY Xperia Ear Duoが約4時間+約16時間の合計約20時間なので、サイズの割には標準的な使用時間となっているように思えます。 箱には記載がありませんが、防水性能はIPX4ということなので、少なくとも雨が降る、汗をかく、くらいでは問題がないようです。 開封すると直ぐに本体が入っています。注文時にロゴなしバージョンを選択したため、イヤホン本体にはロゴが入っていません。プロジェクトページや箱に描かれていたものよりは深い黒で、光沢感もあまりきつくなく、高級感もありなかなか良い色だとおもいます。 表面は天窓設計によりイヤホン本体の一部が見えています。これにより、気づかないうちになくなっていた、ということがなくなるとのことですが、実際はどうなんでしょうか。タッチコントロール対応と言うことで、おそらく銀色の部分をタッチして操作することができるのでしょう。AVIOT TE-BD21fはボタン式で、うまく押さえて操作しないと耳にさらに押し込む形になってしまうという感じだったので、タッチで操作できるのはプラスポイントです。(感度が悪いor良すぎる、ということがなければ) 裏面には技適をはじめとした各種法令関係のマークとバッテリー容量、電源関連情報、生産国、モデル名などが書かれています。平面に対して垂直に充電ケーブルを挿すのはどうなのか、とおもわなくもないのですが、この薄さなら仕方が無かったのでしょう。充電ケーブルはUSB Type-Cです。 付属品として説明書と充電ケーブル。ケーブルはUSB Type A to Type Cのそれほど長くない物です。説明書は英語と日本語で記載がありますが、日本語の一部が中国語?になったりしていて微妙に怪しさがあります。 本体ケースを空けるとこんな感じ。空けるときに若干イヤホンに干渉するようで、すこしイヤホンがぐらっとします。取り落としてしまうほどではないのでとくに問題はありませんが、繰り返し開け閉めしていたらすこしイヤホンが傷つくかもしれません。 YOBYBOロゴとL/Rの文字はエンボス加工というか、すこし周りから浮き出たような処理になっていて、高級感があります。 閉じると真ん中が光ります。充電残量の表示でしょうね。多分。 イヤホンの内側はこんな感じ。ケースから取り出す際、少し取り出しにくいかも、という印象をうけましたが慣れれば多分大きな問題ではないでしょう。 充電端子部分に絶縁フィルムがついているので、これを剥がして充電を開始します。 まだ音楽を再生していないので音や接続の安定度などについてはなにもコメントできないのですが、開封してみての見た目だけでいうならかなり満足度が高い商品となっていると思います。AVIOT TE-BD21fやXperia Ear Duoのケースや本体がプラプラしいのに対して、CARD20はそういった安っぽさはあまり感じられません。 新型コロナウイルス感染症の影響を受けてリモートワークをしていますから、ワイヤレスのイヤホンを使用する機会が激減してはいるのですが、機を見て使ってレビュー記事でも書けたらな、とはおもっています。

2020-04-27 · nasa9084

ギョーザ×ラザニア

ラザニア(単数形: lasagna)あるいはラザニエ(複数形: lasagne)は、イタリアのカンパニア州ナポリの名物である、平たい板状のパスタの一種、またはそれを用いたパスタ料理。 イタリア語の発音ではラザーニャやラザーニェに近い。 料理の場合は、イタリア語で「オーブンで焼き上げたラザニア」を意味するラザーニャ・アル・フォルノ (lasagna al forno) と呼ぶこともある。深さのある耐熱容器に、ベシャメルソース、ミートソース、ラザニア、チーズを何層か重ね、最上段のベシャメルソースに焼き色がつくようにバターを乗せて、オーブンで焼いたもの。 餃子、すなわち薄いパスタ(小麦粉なので大体一緒です)と挽肉の集合体にトマトソースとチーズを載せて焼いたら大体ラザニアになりそう、ということで作りました。ベシャメルは面倒なので省略します。適当にホワイトソースを買ってくるとか、フレークタイプのホワイトソースとかを買ってくれば良い感じになる可能性がありますが、家になかったので諦めます。 我が家には三割うまい!! の冷凍餃子が常備されておりますので、これをゆでていきます。お好みによっては焼いても良いかもしれませんが。 玉ねぎが余って(?)いたのでいれようと思い立ち適当に炒めていきます。このあと適当に刻みニンニクを加えて香りを足してみたりしました。 トマトソースはこちらを使います。カルディで買えるもので、結構便利です。 だばぁ。軽く水分を飛ばしましょう。お好みでなんかハーブとか入れても良いかもしれない。 耐熱皿にゆでた餃子を並べます。 ソースをかけます。 チーズ。 オーブン/オーブントースターで良い感じになるまで焼きます。餃子もソースも予め火を通してるので、チーズが良い感じになればOK。 お好みでバーナリングしましょう。香りが立ってより旨そう感が増します。 いざ実食。これはまぁラザニア的な物体として十分戦えます。ベシャメルを入れたらもっとラザニアになりそうではありますが、そこまでやるともうそれは普通にラザニアを作った方が良いかもしれません。

2020-04-19 · nasa9084

アーロンチェア リマスタード

諸般あり、オフィスでも使用している、最高の椅子と名高いアーロンチェア をかなりお安く購入できるという機会を頂戴したので、COVID-19の影響を受けて完全にリモートワークをしていることもあって購入を決意しました。 おそらくオフィスで使用している物は旧型のアーロンチェアなのですけれども、今回購入したのは(新品なので当然ですが)現行の「アーロン リマスタード」、型番で言うとAER1B23DW ALP G1 G1 G1 BB BK 23103というものです。 注文をして支払いをしてからちょうど一週間で届きました。販売元はGregory Lyon社 で、アーロンチェアをはじめとするハーマンミラーのオフィシャルディーラーです。 箱には取り扱いや持ち上げる際は二人でやりなさい、との注意書き。重いからとのことではありますが、重さよりも大きさがやばくて、我が家の階段(我が家は一階に玄関があり、内階段を上って二階が居住スペースという構成)は幅がぴったりで、手すりの上を通さないとだめでした。購入を検討している方は要注意。 箱を空けると中から箱が。これは多分スペーサーですね。 外箱は下部が空いていて、上からスポッと取り外すことができます。 ご対面!!!そうそう、これですこれ。うひょー。 説明書が座席下のノブにかかってました。特に結ばれているとかいう訳ではなく、棒状の物に引っかかっているだけなので、はさみとかも必要無く取り外すことができます。むしろ配送途中に取れなかったのがすごい。 デスクに合わせるとこんな感じに。机の上があまりきれいではないのはご愛敬と言うことで・・・ ちなみにこれまで使っていた椅子はニトリのリカルドPUブレスレザーBK でした。これはこれでなかなか良い椅子だったので、ちょっと手放すのが惜しい、という気持ちがしています。スペースはあるし、とりあえず置いておいても良いかな・・・ ゲームするときとか、本読むときはふかふかしてる方が嬉しいですね。 アーロンチェアは基本的に保証が12年なので、長いお付き合いになる見込みです。よろしく。

2020-04-15 · nasa9084

2020年3月時点での自宅機材・消耗品類まとめ

自分用のメモみたいなものですが、現時点(2020-04-12)で自宅で使用している家電や道具、消耗品類などをまとめてみます。 家電類 冷蔵庫: SHARP SJ-GW35C 。2016年製、幅60cm、定格内容積350L。 食器洗い乾燥機: Panasonic NP-TH1 。2018年製、幅550mm×奥行344mm×高さ598mm、庫内容量が約50L。後継機がNP-TH2, NP-TH3と出ているためすでに生産終了ではあるが、それほど大きな変更はない模様(小物ホルダーがついたり、庫内の棚の仕様が変わったり、というマイナーチェンジくらい?)。 洗濯乾燥機: TOSHIBA TW-127X7R 。2019年製。洗濯脱水容量が12kg、洗濯乾燥容量が7kgで、2019年8月時点では業界トップクラスの洗濯容量、業界最大の乾燥容量だったらしい(今はどうか、については調べていないので知らない)。操作がタッチパネルなのはちょっと特徴的かも。残念ながら洗剤等の自動投入機能はついていないが、後述の様にプッシュ式の(はかる必要の無い)洗剤を使用しているため不便はない。 炊飯器: TIGER JPH-A100 。2017年製を型落ちで買ったので大分安く買えた記憶がある。最近釜を欠けさせてしまったので買い換えたいが、釜だけでも2万以上するのでためらっている。 オーブンレンジ: SHARP RE-SS8D。2016年製で、すでに公式ページなし。所謂過熱水蒸気オーブンレンジ、というジャンルに当たる物っぽい。庫内容量23L。 ミキサー: T-fal ミックス&ドリンク 。定格消費電量300W、最高容量600ml。特に不満なし。 スロークッカー: TWINBIRD EP-D819W 。たまに作る煮物に便利。 エスプレッソメーカー: NESPRESSO U。すでに公式ページがなくなっている模様。製造年は不明・・・。水のタンクを右側に置いたり左側に置いたり奥に置いたりできる変わったマシン。現行の低価格帯マシンだとリストレット(25ml)が選択できないけど、本機は対応。牛乳で割ることがほとんどなので、あまり薄くならないので嬉しい。 コーヒーメーカー: TIGER ACX-S060 。大学生の、それも割と早い時期に買ったやつなので、もう結構な年数使っている気がする。定価は6000円だけど、購入時はセールかなんかで2000円くらいで買った記憶がある。サーバーがステンレスなので割る心配がないというのが嬉しいところ。 低温調理器: ANOVA 。Wi-Fiなしの2014モデル(多分2018年製とかそれくらいの奴)。 加湿空気洗浄機: SHARP KC-G50 。所謂気化式のもの。 掃除機: Dyson Cyclone V10 fFluffy 。言わずもがな。 キッチンウェア 鍋類: T-fal インジニオ・ネオ グランブルー・プレミア(セット10) を基本に、ニトリの鍋やIKEAのフライパン、就職祝いでもらった圧力鍋などを適当に使っている。最近なぜかパエリアパンが仲間に加わった 。IKEAの激安(300円くらい)フライパンはクソ便利だったのに、ラインナップからなくなってしまって悲しい。 計量カップ: OXO アングルドメジャーカップ(中) 。まぁそんなに真面目にはからないので、500mlの水が入るカップ、位の使われ方をしている。不憫。 ゴムべら: OXO シリコンスパチュラ M まな板: アサヒ クッキンカット 包丁: 三徳(火造り 三徳) とペティ(槌目MV鋼強化木 ペティ) を使っている。いずれも合羽橋 つば屋さんのもの。 消耗品類 食器洗い用洗剤: JOY GELTAB 。洗浄力の高い粉末洗剤と油汚れにききやすいジェルが一つにまとめられたタイプのすごいやつ。コスパより性能重視。Amazonでセールのときはだいたいこれの超特大サイズというやつが割引されてお得なので、セールの度に追加購入するとだいたい良いペース。 衣類用洗剤: アタック ZERO ドラム式専用 。プッシュタイプの容器で、軽量がすごく簡単。 衣類用柔軟剤(1): フレアフレグランス ドレッシーベリーの香り 。特に深い理由はないけど、安かったときに一度買ってから、これもamazonのセールで安くなりがちなので継続して使っている。匂いは結構強め。 衣類用柔軟剤(2): ハミング LINNE 無香性 。前述のフレアフレグランスは結構香りが強くて、バスタオルに使うとちょっと微妙な感じだったのでバスタオルを洗うときはこっちを使う。 手洗い石けん: ミューズノータッチ泡ハンドソープ 香りが残らないキッチン用。amazonの2月のセールで安かったので、前々から使いたいと思っていたノータッチタイプの物にした。料理中に手を洗っても香りが残らないタイプで、料理を結構する人間には結構お勧め。 PC/周辺機器類 PC: MacBook Pro 13inch 。2018年のモデルで、Core i7 4コア 2.7GHz、16GB RAM、256GB SSDの構成。エンジニアが使うマシンとしては良くある構成だし、特に言うことはない。 タブレット: iPad Pro 11inch + Apple Pencil 。絵を描きたくて買った。が、あんまり活用できていない。最近は#posemaniacs 描いてるけど、へた。 スマートフォン: Pixel 4 。モバイルPASMO使いたいけど、PASMO一体型クレジットカードではオートチャージができないらしく、おこ。 モニタ: LG 27UK-850-W 。USB-PD対応の4Kモニタがほしくて購入したもの。DP OUTはついていない。amazonでめっちゃ安かったのでこれにした。HPのシングルモニターアーム (エルゴトロンのOEM)と合わせて使用している。 プリンタ: NEC MultiWriter 5600C 。A4カラーページレーザープリンタで、AmazonだったかNTT-Xだったか、まぁその辺で激安だったので購入した。基本的に写真を印刷することがないので、インクジェットインクジェットより使いやすい(気がする)。

2020-04-12 · nasa9084

Bauhutteのデスクごとチェアマットを購入した

昨今の情勢を受け、私もかれこれ一ヶ月以上自宅でリモートワークをしています。自宅でリモートワークをするということは、机に向かう、すなわち椅子に座る時間が圧倒的に増える(一日あたり8時間くらい増えていますね)ことになるわけです。弊宅は賃貸かつ床が(多分)木製のフローリングで、長時間椅子に座るとなると椅子のキャスターによる床の傷つきがきになります。 なにかチェアマットを敷いた方がよかろう、結構椅子を動かすタイプの人間であるからして大きめの物を選ぶべきであろう、という判断の下、大きく、見目もよろしそうであったBauhutteのデスクごとチェアマット(160cmx130cm) を購入しました。 なおamazonのリンクをはってはいる物の、たまたま楽天のポイントが貯まっていたので楽天で購入しました。 届いてみて、確かにこれは大きい。なかなか良いサイズだ、と思ったのですが、さて敷いてみよう、とすると幅がなんとも惜しい感じでありました(これは我が家のデスクとの相性、という話で商品自体が悪いわけではないので注意)。 机はニトリの組み合わせデスク 、幅140cmの天板 に特に何の変哲も無い脚 を付けて使っていますが、左脚の外側から右脚の外側までが約135cm、左足の内側から右脚の内側までが約125cmなので、完全に両脚で踏ませることも、内側に収めることもできない、かといって長辺を横向きにすると長すぎるという程度の幅です。 前述の様になかなか大きいサイズ、長辺が160ありますから、きれいにカットするのもなかなか困難です。 厚さが1.5mmですから、まぁそれ自体はたいした問題ではないのですが、裏面の滑り止めがくせ者です。確かに滑らないのですが、表面もなかなかグリップ力があるせいか、座った状態で椅子を動かすとマットが波打ち、机の脚のところで引っかかって、机がギシギシ言うのです。 これはちょっとなんとかしたい、と思いチェアマット用の滑り止めを別途amazonで物色中です。 また、来週新しい椅子が届く予定なので、椅子が変わったらまた違うのかもしれない、とは思っています。 総じて、現状としては「惜しい」という評価をするしかないのですが、机の幅などの条件が折り合えば、商品の見た目やさわり心地などはなかなか悪くないと思いますので、チェアマットを探している方は検討してみてはいかがでしょうか。 2020-04-11 追記 ニトリのすべり止めテープ を貼ったところ、改善しました。三辺(長辺x1、短辺x2)に貼ると長さ4メートルのテープをちょうど良い具合に使い切る感じです。 現状は机の脚の一本だけチェアマットにのっている状態で、のっている側の長辺と前後の短辺にすべり止めテープを貼っています。全くギシギシ言わなくなったので、大変良いですね。 2020-05-01追記 裏面の滑り止め加工が裏目に出たのか、ニトリの滑り止めテープが剥がれてきました。つらい。

2020-04-10 · nasa9084

誕生日パエリア

先日、無事誕生日なるものを今年も迎えることができたのですが、twitterやらfacebookやらに欲しいものリスト を貼った結果、皆様いろいろと贈ってくださり、本当にありがとうございます。 ところで、欲しいものリストにパエリアパンなど入れていなかったのですが、なぜか届きました。 家広そうだし入って無くても送ってみっかと思ってポチってみた? — TᗩKᑌᗰI KOᗷᗩYᗩᔕᕼI (@chamaharun) April 8, 2020 全く以て意味がわからないですね。しかし贈ってくれたのに使わない、というのもなんなので、パエリアを作ることにしました。 なお誕生日パエリアというタイトルですが、今日誕生日、というわけではありません。 材料はこちら。アサリ小パック、パプリカ一つ、鶏肉一枚、エビ、イカ、トマト、米、サフラン、玉ねぎ、ニンニク。 鶏肉は一口大に切って軽く塩こしょうしてあります。 玉ねぎとニンニクはみじん切りしておきましょう。 また、アサリは砂抜きをしました(が、食べたらガリッといった。なんでや。) トマト、パプリカは適当に切りましょう。 イカはカット済みのものを買いました。 ちなみにこの中で一番高かったのは(多分)サフランです。サフラン高い。 こちらが件のパエリアパンです。四人前作れるらしい。大きくて端の方に火が入りにくいのではないかと心配です。 さび止めの油が塗ってあるらしいのでそれを飛ばした後、オリーブオイルを適当に熱して、肉やら魚介やらを炒めます。 火が通ったものから一旦どけておきます。特にアサリは火を通しすぎると縮んでしまうので、開いた時点でどけておいた方がいいでしょう。多分。 なんかすでにパエリアの匂いがする気がしてきます。 追いオリーブオイルをして、玉ねぎとニンニクを炒めます。ちょっと焦げ付いている?ようなところはこそいでおいた方が良いでしょう。多分これがうま味ってやつです。多分。 玉ねぎがしなっとしてきたら、生米を突っ込んで炒めます。大きいのでフライパンの様に振ることはできません。 どんな状態になったら米に火が通ってきた、といえるのかはよくわかんないんですけど、それっぽい感じになったら水とコンソメ、サフランを加えて一煮立ちさせます。 コンソメは多分予めお湯か何かで溶いておくか、顆粒のものを使った方が良かった気がする。 煮立ったらパプリカを入れます。インゲンを入れたい人はここで入れましょう。 トマトさんを入れるタイミングがわからなかったので、「パプリカと同じ赤だしいけるっしょー」とここで投入。まぁ大丈夫。赤いし。 少しぐつぐつさせた後、よけておいた肉やら魚介やらを再投入します。これもタイミングが不明だったので気分で入れました。だいたいなんとかなる。 この状態で十分ほど強火で煮込みます。 十分経ったら弱火にして、水がなくなるというか、どろっとした感じになるまで煮ます。これもなんとなく雰囲気で。多分やり過ぎると焦げる。 良い感じになったら火を止めて、適当なアルミホイルとかで蓋をして(できてない)五分ほど蒸らします。結構これで雰囲気変わるんで大事。 五分経つとこんな感じで汁っ気が飛びます。マジで。 最後によしなにパセリングして完成。うまいです。あと簡単。 魚介とかサフランとかそこそこするので、結構自炊ものとしてはお高めだけど、まぁ一回くらいやってみても良いんじゃないでしょうか。 なお二人で四人前は多いです。注意。

2020-04-08 · nasa9084

context.WithTimeoutに0を与えるとどうなるのか

当然と言えば当然なんですけど、特に panic とかそういうことはなく、一瞬でタイムアウトします。まぁ、どうと言うことは無いですが、設定ファイルとかで未定義時に0が来るような実装になっている場合はなんか処理する(0の時は処理をしない、というのは多分あんまりなさそうですし)必要がありますね。 1 2 3 4 5 ctx, cancel := context.WithTimeout(context.Background(), time.Duration(0)) defer cancel() <-ctx.Done() log.Print("timeout") https://play.golang.org/p/63DkfIEImjv もうちょっと細かい話 さすがに短すぎるので、もう少し細かい実装の話。 context.WithTimeoutは内部的には特別な実装は無くて、context.WithDeadlineをtime.Now.Add(timeout)に対して呼んでいます。 で、context.WithDeadlineは返値を返す前にtime.Untilを使って現在時刻とデッドラインまでの差分をチェックしていて、これが0以下ならその場でキャンセル関数を呼んで います。 まぁそんなわけで、余分な待ち時間が発生することもなく、time.WithTimeoutを呼んだ時点でちゃんとタイムアウトされる、ということでした。ちゃんちゃん。

2020-04-08 · nasa9084

Goで(メールサーバを用意せずに)メールを送る

単純な興味というか、特にこれで何かを作るというわけではないのだけれど、ふと思い立って調べてみたら意外と情報が無かったのでメモを残しておきます。 Goでメールを送りたい、と思ったとき、Googleで検索してみると、net/smtp パッケージを使ってgmailのSMTPサーバを使用する、とかSendGridを使用する、とかそういった例ばかりが目につきました。これらはもちろん便利であることは疑いようもない(自前でメールサーバの管理とかやってられないし)んですけど、こういったSMTPサーバやらsendmail/postfixやらを使わなくても、本来SMTPではメールを簡単に送れるはず(なんと言っても「Simple Mail Transfer Protocol」ですから)、と思いました。 とはいえじゃぁどうしたら良いのか、と思ったとき、Goを用いた例というのはぱっと見当たらないのです。仕方ないのでtelnetを使用した例を見ながら、telnetでどうやれば自分のgmail宛てにメールが送れるのか、というのを試しました。 具体的な手順というのは、次の様なものです。なお、以下の手順では(macにtelnetが入っておらずインストールして環境がごちゃごちゃするのも面倒だったので)centos:7のDockerコンテナを使用しています。 # nslookup -type=mx gmail.com Server: 192.168.65.1 Address: 192.168.65.1#53 Non-authoritative answer: gmail.com mail exchanger = 20 alt2.gmail-smtp-in.l.google.com. gmail.com mail exchanger = 10 alt1.gmail-smtp-in.l.google.com. gmail.com mail exchanger = 40 alt4.gmail-smtp-in.l.google.com. gmail.com mail exchanger = 5 gmail-smtp-in.l.google.com. gmail.com mail exchanger = 30 alt3.gmail-smtp-in.l.google.com. Authoritative answers can be found from: # telnet gmail-smtp-in.l.google.com 25 Trying 74.125.204.26... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP 6si12301456pjb.7 - gsmtp HELO smtp.gmail.com 250 mx.google.com at your service MAIL FROM:<nasa9084@example.com> 250 2.1.0 OK 6si12301456pjb.7 - gsmtp RCPT TO:<XXXXXXXXXX@gmail.com> 250 2.1.5 OK 6si12301456pjb.7 - gsmtp DATA 354 Go ahead 6si12301456pjb.7 - gsmtp Subject: Test via telnet From: nasa9084 To: nasa9084.gmail Hello, world . 250 2.0.0 OK 1586166529 6si12301456pjb.7 - gsmtp QUIT 221 2.0.0 closing connection 6si12301456pjb.7 - gsmtp Connection closed by foreign host. 無事自分のgmailアカウントにメールが届きました。この手順をGoでやってみます。 ...

2020-04-06 · nasa9084