たにったさんを支える技術

この記事は苫小牧高専アドベントカレンダー2018 24日目の記事ですがクリスマスが終わった今も書いています🎉🎉🎉(デジャヴ感

これは言い訳ですが現在師走ランナーとして最後尾独走中です.たくさん応援してね.

前の日の記事ははっし~さん人生二度目のお気持ち表明(ヘッドハンティング編) | はしらぼ。でした.一度きりしかない人生,悔いの無いように生きていきたいですね.

次の日の記事はドールおじさんきついっす - 朴将軍録でした.やはり年末は忙しいですよね.追記が楽しみです.

きっかけ

ない子さん(@T_naiko)と#本当にひどい飲み会をやっているときに@mktakuyaから苫小牧高専AC2018の招集がかかりました.

自己紹介

今年はちゃんと自己紹介しようと思います.こういうのは苦手なのでそういえばあまり書いたことが無いはず.刮目せよ.

苫小牧高専機械工学科の卒業生のたにったさんです.マレーグマもやっています.在学当時は美術同好会三代目会長でした.有り金とスケジュールを溶かして共犯者の皆さんと一緒にインタラクティブに光るデカいキリンを作ったのは今となってはとても良い思い出ですね.

卒業後は謎の空白時代を経た後,立ち上げフェーズの3DCG系のデザインをやっていく系の某スタートアップに飛び乗り,エンジニア兼テクニカルアーティストとしてのびのびと働いています.エンジニアとしての主な業務内容はVRコンテンツ等のゼロベースでの新規開発,テクニカルアーティストとしてはツール開発によるアセットパイプラインの構築や開発環境の整備等で,無駄な工数を爆縮するなどしてチームの生産性を加速する裏方的なことをしています.このへんの話は今度別で記事書きます.

Twitterアカウントは日常用途の@ttata_tritと進捗用の@trit_techneの2つです.なかよくしてね.

さて,突然ですが今回はやっていきのための生産性を高めるTips集みたいな感じでどろどろと怪文書を書いていこうと思います.みんな好きですよね生産性.

プロダクティビティのための開発環境

最低限の衣食住が確保できたら最優先でおちんぎんをつぎ込みましょう. これは自明ですが自分の仕事との相性が良い構成にすると早めに投資を回収しやすい傾向があります(自明).

PC

とりあえずMac Book Pro 15 inch (late2016)をしばらく使っていたのですが,3Dやるには力不足感が否めず,またVR系のコンテンツの開発がしたかったので,VRヘッドセットの購入のタイミングでWinマシンを新しく組みました.GTX1080Tiが乗っています.このへんも別に記事を書きたいです.

Blender

最近勢いがあるフリーのDCCツールですね.CGWORLDでも特集が組まれることが多いような気がする今日このごろです.弊社としてはBlenderを組み込んだ開発フローを構築したいらしく,業務で使う機会も段々増えてきました.僕としてはとても嬉しいです.

サブスクリプションしてるやつとか

Adobe CCにクリエイティブ税を払っています.最近値上げが決まったらしいですね.ひもじい. ちなみに最近AllegorithmicにもSubstance税を納め始めました. あとちょっとやりたいことがあるので,もう少ししたらMarverous Designerも導入する予定です. 仕事でつかうならいつかそのうち投資金額を回収できるよね.

タスク,ネタ管理

作りたいものの管理とかです.

ちゃんと歳をとっていると,適当に思いついたアイデアに実装する価値が無いことがわかるようになってしまう.歳をとるほど,賢くなった自分の手を動かすために,普段の思いつきに頼るのではなく,自分から動的に,素材としての情報をストックする,価値のあるアイデアを練る作業が必要になってくる,みたいなのはよく思います.ポエムです.

Trello

f:id:ttata:20181228205808p:plain

未だにTrello使ってます.昔はTODOリストとして使っていたのですが,今はネタ帳(いつかやりたいこととか)と化しています.

Todoist

これも使ってます.TODOリストとしてTrelloに変わりに使っています.

todev

github.com

Trelloに開発で使いやすい手触りのタスク間の依存関係システムを導入したような感じのタスク管理アプリです.Electron+vue.jsで自分で書きました.既知のやらなきゃいけないことに手をつけると芋づる式に未知のやらなきゃいけないことが発生するような作業に向いているんじゃないかなと思います.

twitterに草を生やすやつ

https://pbs.twimg.com/profile_images/1078470629228068866/yfoAObpe_400x400.jpg

たにったさんのTwitterアカウントの名前とアイコンはGitHubのContribution具合を適当なタイミングで反映する仕組みになってます.アイコンはその日のContributionsに応じた草の色が適応され,アカウント名のレベル表記は一年間のContribution数になります.この仕組みを作ったのは相当前なんですが,確かGitHubのプロフィールページをスクレイピングして得られた進捗情報をTwitter APIで反映する,みたいなツールを書いた記憶があります.この仕組みにより,普段どのくらいサボっているのかすぐにバレるので進捗に緊張感が生まれます.やったね.

f:id:ttata:20181228203354p:plain

デカい木の板をソーホースの上に乗せた,お手軽テーブルを使ってます.天板はえごま油(乾性油)でひたすら磨き続けました.残ったえごま油は冷奴にかけていただいてます.ていうかえごま油の美味しい食べ方知っている人いたら教えてください.ググってもえごま油をメシに取り入れるインセンティブが健康面の話しかなくて困ってます.

椅子

謎の空白時代からずっとバランスボールを愛用しています.筋肉で姿勢が正しくなるので逆に疲れないのと体の不調も出にくくなるあたりが気に入っています.というかバランスボールが無いと一日中開発できる自信が無い.

プロダクティビティのための運動

資本は体.体力が無いと良いものが作れないので一週間に10kmくらい走ってます.(平均すると0.06km/h)バランスボールと同様に腰痛対策も兼ねてます.ちなみに雪が積もってる期間は滑って転ぶと痛いのでおやすみです.

プロダクティビティのためのメシ

作り置き

cookien.com

大量にタッパーを購入して作り置きをしましょう. うまく作り置きサイクルを回せると少ない調理時間で美味いごはんが継続的に食べられます. タッパーにはラップを敷くと洗浄にかかる時間が抑えられるのでプロダクティビティが向上します.

土鍋ごはん

f:id:ttata:20170125224143j:plain

あんまり生産性関係無いですがウマいごはんが食べられるのでバイブスが上がります.

炊飯器より美味しいごはんが炊飯器よりも早く作れます.

普段のレシピを書いておきます.

  1. 米を研いで水に1時間ほどつける
  2. 土鍋に米を入れる.水はお好みで(大体米が浸かるくらい)
  3. 蓋をして火力最大で沸騰するまで加熱する.ここから蒸らし終わるまで絶対に蓋を開けてはいけない.稀に沸騰に気が付かない場合があるので10分ほどタイマーで測っておくと安心.
  4. 沸騰したらとろ火で10分加熱する
  5. Option: おこげを増やすため,中火で15〜30秒ほど加熱する
  6. 火を消して10分蒸らす
  7. 蓋を開けてごはんをかます
  8. できあがり🍚

プロダクティビティのためのお仕事

チームの生産性の向上のため社内にGitHubesa.ioとSlackを導入しました.また,それによりどこでも情報にアクセスでき,作業量も可視化されたため,現在弊社ではリモートワークも可能になりました.これで通勤等で消える無駄なリソースをやっていきに回せるようになりました.やったね.計画通り.

ちなみにリモートワークは実現まで1年近くかかってます.長かった....このあたりの話も後で別の記事を書こうと思っています.

所感

来年はもうちょっと加速します.応援よろしくお願いします.

Global Game Jam Sapporo 2018に参加してきた #ggjsap #ggj

今年もGGJ札幌会場に参加してガッとゲーム作ってきました.

Global Game Jam Sapporo

全体の流れはtogetterがいい感じにまとまっていてオススメです(記事書いてて思ったけどサムネがひどい).

togetter.com

今回はUnityでゲームを開発するチームに参加し,グラフィック周りを担当しました.

成果物

f:id:ttata:20180129230639p:plain

『はーとふるラブレター』

Hatoful Love-letter | Global Game Jam®

ここから遊べます

ハトのモデリングに全力を注ぎました.他のモデリングは適当にシュッとやりました.

こっちは未使用リソースです

そういえば他にもゲームクリア時のアニメーションをUnityのTimelineを使って作りました.初めて触る機能だったんですが,チームメンバーのかまたさん(@kamayuki_fs)にオススメして頂いた以下の記事のおかげで,なんとかそれっぽいものが出来上がりました.

www.shibuya24.info

ゲームのアップロード後,本会での制作したゲームの発表が終わってから懇親会までの間に時間があったので,難易度を微妙に変えたバージョンを作成して懇親会会場で公開してました.クリアできたのは5,6人だったと思います.ちなみに僕はクリアできてません.

感想

GGJに参加するのは3回目なんですが,今年はエンジョイ勢としてたくさんツイッターをしながらゲームを作りました.楽しかったです.みなさんお疲れ様でした!

樽前FMについて

この記事は苫小牧高専アドベントカレンダー2017 24日目の記事ですが25日に書いています.メリークリスマス🎉🎉🎉

はじめに

tarumaefm.com

樽前FM,ご存知でしょうか.苫小牧高専関係者の方をゲストに呼び,適当に世間話をするpodcastです.MCは後輩の@mktakuyaがやってます. 今年の1月あたりに最初のエピソードが公開,そしてつい先日22日に新しいエピソードが投稿され,現時点で全10話ほど公開されています.その中で僕は初回のEP01とEP08でゲストとして出演させていただきました.今回の記事ではそんな樽前FMについて,ゲスト目線でちょっとだけお話してみようと思います.

きっかけ

自分は何年か前から@mktakuyaと,あまり真面目に作業しないさぎょいぷ(しかもskypeですらない)を定期的にしています.技術的な話からエモい話まで眠くなるまでざっくばらんに世間話をしているんですが,そこでほぼ毎回,お互い普段聴いてるrebuild.fmというエンジニア向けのpodcastの感想の話をしてるんですよね.で,確か大体1年くらい前にその話の流れで,podcastやってみないか,みたいな話になり,オッ,マジか,と最初は思ったんですけど,なんか最終的にまあやってみてもいいかなと.そして,僕も@mktakuyaもお互いそういった技術系から雑談系まで横断的に扱うpodcastの雰囲気を共有できてたので,今後の樽前FMの方向性をなんとなく形作る意味合いも兼ねて,第一回の収録の方で出演する運びとなりました.確かこんな感じの経緯だったと思います.ちなみにタイトルの"樽前"こと樽前山は,苫小牧高専付近にある,現在も定期的に地震や水蒸気噴火等のピクつきが観測される,やっていきに満ち溢れた活火山です.テスト期間になると皆が噴火を祈ります.山岳信仰ですね🙏

実際に喋ってみて思ったこと

 収録を聴いてくれる人を意識して喋るのが面白かったです.この樽前FMはエンジニアというよりもどちらかというと(苫小牧)高専関係者向けのお話をするpodcastっぽいので(そうだよね?)話題の選定や,妙ちくりんなテクニカルタームの使用に配慮した方がいいかなー?とか考えながら話をしてます.こんなふうに,その場にいない人を想定して世間話をすることは普段なかなか無いので,頭の変なところが回る感じがありました.

最後に

みなさんお手柔らかに聴いてみてください.また,苫小牧高専関係者(在校生,卒業生等)で,こういう雰囲気のやっていきで自分も面白い世間話を一緒にしてみたい,という方は@mktakuyaまで連絡していただけると色々と楽しいんじゃないかと思います:)

クリエイティブコーディングフレームワークarmosに追加された機能まとめ2017年版

この記事はD言語 Advent Calendar 2017 19日目の記事です.

今年2017年にクリエイティブコーディングフレームワークarmosに追加された機能等を紹介していきます🎉

Mac OS Support

自分がmac book proを使い始めたのでサポートしました. 論理ピクセルと物理ピクセルのサイズが異なるretinaディスプレイへの対応として,interface WindowにframeBufferSize()を追加しました.これは既存のWindow.size()がウィンドウサイズを論理ピクセルで返すのに対し,こちらはウィンドウの物理ピクセルで返します.

頂点座標からの頂点法線情報の生成

armos.graphics.Meshクラスのメンバ関数calcNormal()でスムージングされた頂点法線情報を生成できます.生成された法線情報はMeshのメンバnormalsに保存されます.

シンプルな2Dのグラフィックを表示するexample.

単純な2DのMeshのアニメーションを行うexamples/primitives2dを追加しました.armosに触れる際,一番最初に見ていただくと雰囲気がなんとなく掴めるかと思います.

フォント読み込み機能の実装

https://pbs.twimg.com/media/C8jCzc8VwAAlvFQ.png

Fontクラスでフォントを扱えます.内部でfreetypeを使用しており,フォントのデータをラスタライズしてテクスチャとして描画することができます.

exitApp()の追加

Applicationのinterfaceに追加しました.Applicationの内部でこのメンバ関数を呼ぶことでApplicationを終了させることができます.

リアルタイムの音声入力

音声入力デバイスを扱うクラスarmos.audio.Recorderを実装しました. 実際の使い方はexamples/audiocaptureを参考にしてください.

Colorクラスの仕様変更

従来のColorのRGBAの値はそれぞれ256段階の整数型でしたが,OpenGLとの相性を考え,0から1までのfloat型に変更されました.

generate commandによるテンプレートファイル/フォルダの自動生成機能

armosを使った開発を加速させるCLIツールを追加しました. 以下詳細

glslify support

glslifyを用いてshaderのglslのモジュール化,importができるようになりました. 以下詳細

マルチウィンドウ対応

複数のウィンドウを扱うことができるようになりました.OpenGLのcontextはデフォルトではウィンドウ間で共有されていませんが,アプリケーションの初期化時,Windowを生成する際にコンストラクタへ引数としてcontextを与えることで同じcontextを扱うことができるようになります.

auto config = new armos.app.WindowConfig();
auto window1 = new armos.app.GLFWWindow(config);
auto window2 = new armos.app.GLFWWindow(config);
auto window3 = new armos.app.GLFWWindow(config, window2.context); //share context.

armos.app.mainLoop.register(new MainApp, window1)
                  .register(new SubApp,  window2)
                  .register(new SubApp,  window3)
                  .loop; // call loop function after application and window registations.

実際の使い方はexamples/multiplewindowsを参考にしてください.

MIDI input

armos.communication.MidiStreamを用いることでMIDI信号の入力を扱うことができます.

メンバ関数popMessagesを呼ぶことで受け取ったMIDIメッセージを取り出すことができます. 実際の使い方はexamples/midiinputを参考にしてください.

Reactive Extensions

Rxはじめました.@lempiji氏が開発しているdlang実装のRxを利用させて頂いてます.

現在のarmosのイベントシステムは全てRxに置き換わっており,armos.app.currentObservables()で全てのarmosのイベントのobservableが包含されたCoreObservablesへアクセスすることができます.

マウス入力関係のイベントの追加

Rxの導入によるイベントシステムの刷新に際して,mouse dragとmouse scrollのイベントハンドラをサポートしました.対応するシグネチャは以下の通りです.

void mouseDragged(int currentX, int currentY, int button)
void mouseDragged(int firstX, int firstY, int currentX, int currentY, int button)
void mouseDragged(Vector2f currentPosition, int button)
void mouseDragged(Vector2f firstPosition, Vector2f currentPosition, int button)
void mouseDragged(Vector2i currentPosition, int button)
void mouseDragged(Vector2i firstPosition, Vector2i currentPosition, int button)
void mouseScrolled(float xOffset, float yOffset)
void mouseScrolled(Vector2i position)
void mouseScrolled(Vector2f position)
    

EasyCamのサポート

マウス操作で簡単に視点を操作する機能が組み込まれたcameraの実装です.名前のとおりopenFrameworksのEasyCamと似た挙動になってます.実際の使い方はexamples/easycam/を参考にしてください.

今後の予定

OpenGLのContextを一箇所にまとめる大規模改修

現在,Cinderの設計を参考にしてcontextの管理を局所化する設計変更を行っており,それに伴って既存のRendererのリファクタリングも行っています.影響箇所が多いので開発版のdevブランチに取り込まれるのはもう少し先になりそうです.

映像のサポート

現在ffmpegを用いたVideoTextureを実装しています.また,ライセンスの都合からarmos本体とは別リポジトリで,armosの拡張という形でのリリースを検討しています.途中で上の大規模改修が始まったため,こちらの作業は一時的に中断しており,改修が終り次第再開しようと考えています

ベクタデータの取扱

未着手です.ベクタデータが扱えるようになると,フォントのアウトラインを変形させるような表現等,幅広く応用できそうです.

東京Node学園祭2017のアフターパーティーでVJをやってきた #nodefest

はじめに

12/25,12/26に開催された,Node.jsコミュニティのカンファレンス,東京Node学園祭のアフターパーティーでVJをやってきた.今回は運営スタッフのamagi(@amagitakayosi)さんに誘って頂いた.amagiさんとは,彼が開発しているVEDAというAtomでライブコーディングを行うプラグインへのContributeを通して知り合いになった.

下ごしらえ

まず,VEDAで映像素材を切り替えるためのサンプラーを外部のアプリケーションとしてarmosを用いて新規に開発した.Ableton liveのセッションビューのような操作体系で,登録したキーを押すことで設定したBPMに同期して映像を切り替えることができる.なお映像の再生速度も同期される.また,タップ入力によるBPMの変更機能付きで,流れている曲に合わせてスペースキーを押すことでいい感じに検出してくれる.入力される音声信号からのリアルタイム検出による自動化もやりたかったが不安要素が多かったのでそのへんは今度やることにした.(昔実装した非リアルタイムBPM検出のアルゴリズムと想定される計算量を比較してみたが,両方で用いられるFFTがΟ(n log n)なので,サンプル数が少ないリアルタイム処理なら速度的に割といけそうな予感がしている)なお,VEDA本体との通信は,Open Sound Control(以下OSC)というプロトコルで行う.VEDAはOSCによる外部からのglslのuniform変数の変更をサポートしているが,映像素材の切り替え機能は今のところ無いので,そのへんの機能をいくつか無理矢理追加する改造を施した.サンプラー側はosc-dというOSCの実装のpackageを用いた.開発の途中でいくつかバグに気がつけたので良かった(修正済み).dogfoodingは最高.

次に,Blender(あと仕上げで少しだけAfterEffects)で普通の4n拍(n∈N)くらいの尺の映像と,2つの映像をミックスするための白黒の映像をいくつか作成した. BlenderはTimeline周りの操作体系も3Dのモデリングと直交性があるので快適にモーションを組むことができる.また,2Dっぽい見た目のモーショングラフィックスを作る際もオブジェクトを三次元的に配置できるので凝ったことができる.

映像素材の制作中は,レンダリング作業の効率化のためlightweightなBlenderレンダリングファームを開発し,計算用のarch linuxのサーバ上で稼働させていた.僕が作業している間,休憩している間に,予め投げておいたキューが逐次処理されていく.ちなみに処理が完了する度にするとtwitterでリプを飛ばしてくれる.

当日

日中は空いた時間に本会場の廊下で,実際の環境を想定して念のためにveda-samplerの全ての操作をmidiコントローラで行えるよう,無限コーヒーを飲みながらバキバキコードを書いていた.楽しかった.

アフターパーティーはfreeeさんのオフィスを借りて行った. 設営からお手伝いさせていただいたが,レイアウト等試行錯誤の末に出来上がったパフォーマンス用のブースが広くて凄みがあり,一体何のイベントのアフターパーティーなんだろう感がにじみ出ていた. freeeさんの社員の方が「会社ってこんなこともできるんだ」的な旨のことを言っていたのを覚えている.

自分のVJ中は記録映像を撮る余裕が無かったので他の方が撮ってくれた様子を以下に引用させて頂きます.(撮影ありがとうございます🙏)

まとめ

  • 実験的な要素を盛り込んだパフォーマンスができて勉強になった.
  • VJ,メディアアート,クリエイティブコーディング系の知り合いが増えた.
  • OSSの活動がきっかけでOSSのイベントに招待して頂いてVJのパフォーマンスをするという素敵な体験ができた.

TipsとしてのVJボツ案供養

本番では使われなかったボツ案です.ご査収ください.

VEDAでsyphonの入力を使いたい

VEDAネイティブでやるのは大変.懇親会でamagiさんと話をしたけどなかなかしんどい(chromiumに手を入れる必要がある).レイテンシを気にしないのであれば,syphoncamTwistを経由してVEDAのcamera入力に渡すという手段がある.

VEDAで透過映像を扱いたい

f:id:ttata:20171129002912p:plain

VEDAが内部で使用しているThree.jsで直接透過映像を扱うのは難しい.そこで,映像のフレームに透過マップをくっつける(この処理はffmpegopenCV等の画像処理ライブラリを使って適当にツールを書いておくと楽).これはgooglechromeの技術デモ『3 Dreams of Black』で用いられていている手法で,以下の動画が参考になる.

このアプローチをnormal mapやdepth map等の複数種類のソースに拡張することで,deferred shadingをVEDA側で行うことができる.ちなみに,基本的にカラー以外の情報は縮小しても粗さに気が付きにくいため,付加されるマップについては1/2サイズのものにしておくと処理の負荷を抑えることができる.

armos devlog 3f1b057 and 6aab220

github.com

以下の機能がarmosのdev branchに取り込まれた.

  • CLIでのarmos generateコマンドによるコード生成
  • glslifyによるShaderのprecompile

また,今回の変更によりarmosの動作にはnpmを要求するようになった.

(この解説では便宜上,プロジェクトのルートディレクトリを/として表記する)

armos generateコマンド

$ armos generate <target>

いくつかの種類のディレクトリやソースコードを自動生成する.generateの部分はgに省略可能. <target>は以下がサポートされている.

  • project
  • material
  • glslsource(glslsources)

project target

$ armos generate project [<projectpath>] [<options...>]

armosコマンドの<target>projectを指定した場合,新規に指定したパス<projectname>にarmosのプロジェクトを生成する. <projectname>を省略した場合,現在のワーキングディレクトリにプロジェクトが生成される(dub initと同様の挙動と考えて良い).

このコマンドは以下の処理を行う.

  1. dub initの実行によるプロジェクトの生成,
  2. armosのアプリケーションの雛形となるMainApp classとそのエントリーポイントを含んだコードをsource/app.dへ上書き.
  3. glslifyがnpmのglobalに存在しない場合,インストールを行う.

以下のoptionにより,デフォルトで生成されるapp.dに追加するコンポーネントを指定できる.

  • --defaultcamera string

他のコンポーネントについてのoptionは今後追加していく予定.

--defaultcamera string

armos.graphics.camera.DefaultCameraを追加する.このoptionはインスタンスの名前を指定するために文字列の値を設定する必要がある.

material target

$ armos generate material <ClassName> [<path>] [<options...>]

armos.graphics.materialを継承したクラスの定義が書かれたコードを生成する.<ClassName>には生成するクラスの名称を指定する.pathを指定しないこと(e.g. foo/BoxMaterial). 生成されたコードは/source/<projectname>/materials/<classname>.dとして保存される.

以下のoptionが使用可能.

glslsource (glslsources) target

ここでは機能が似ている2つのtargetについて説明する.

$ armos generate glslsource <filepath> [<options...>]

glslsourceは一つのglslファイルを生成する.<filepath>に指定したファイルを/shadersディレクトリ内に生成する. 生成されるファイルがvertex shaderかfragment shaderか,あるいはgeometry shaderかは,<filepath>で指定された文字列の拡張子により判別される. 拡張子は以下を用いること.

  • .vert vertex shader
  • .frag fragment shader
  • .geom geometry shader

optionには以下を使用できる.

$ armos generate glslsources <dirpath> [<options...>]

glslsourcesは vertex shader, fragment shader, geometry shaderの3つのglsl sourceを含んだディレクトリを/shadersディレクトリ内に<dirpath>として生成する. 以下のoptionが使用できる.

  • --no-vert vertex shaderを生成しない
  • --no-geom geometry shaderを生成しない
  • --no-frag fragment shaderを生成しない
  • --path string /ディレクトリからの相対パスで生成先を指定.dirpathより優先される..

今後は--typeoptionにより様々な種類のglsl sourceを生成できるようにしていく予定. .

glslify Shader Precompile

armos.graphics.shaderでglsl sourceをコンパイルする前に行われるソースコードの展開(precompile)にnpmのパッケージであるglslifyを使用するようにした.

この変更により,以下の機能が提供される.

  • glsl sourceのモジュール化と読み込み
  • npmによるglsl-*系パッケージの手軽な利用

詳細は以下の記事を参照.

qiita.com

なお,dlangのソースコードにハードコードされたglsl sourceをarmos.graphics.Shader.loadSourcesに渡した場合, そのコードは/にあると見なされる.glslifyの相対パスによるmodule読み込みの際には注意すること.

引っ越しした

山奥から札幌に引っ越しした.色々と落ち着いてきたのでこの記事を書いている.出自が野蛮な男子寮なので(夜中に人間の鳴き声が聞こえる等.スズメがドン引きするレベル),世間の常識的にどこまで騒いでいいのかよくわからずビクビクしながら静かに生活している.

自炊

f:id:ttata:20170125224143j:plain:w500

朝はシリアルで軽く食べて,昼と夜はスパゲティとかスープ系とかを作って食べている.今日は舞茸とキャベツのペペロンチーノを作った.具が多すぎて野菜炒めみたいになってしまったが,キャベツのやさしい味がして美味しかった.あとシチューとかもこの前作った.ふたり分作ってしまって残りは冷蔵庫に突っ込んでおけるので楽.また,米については炊飯器は買わずに普通の鍋で炊く予定だったが,ここ数日美味しいごはんの食べたみが出てきたので,つい先ほど土鍋と米を買ってしまった.土鍋は頑丈そうで米も炊けそうな銀峯 花三島の8号ってやつを選んだ.ちょっと大きめなので誰かと鍋をつつくのにも使えると思う. これで生活の文明レベルが弥生時代まで急激に発達した.土鍋×ガスの最高のごはん体験楽しみ.とりあえずこの後は,土鍋を調理に使う前に,目止めというならし作業を行うので,実際にごはんを炊くのは明日以降になると思う.

インターネット

さて,引っ越してから1週間が経過して家具や家電は概ね揃ったが,未だに不足しているインフラがある.インターネットだ.今は無線の容量制限付きの回線でなんとかしのいでいるが,半身をwebに置いているような人間なので正直そろそろ息苦しい.予定では2/1には使えるようになるので,それまでに届くよう無線ルーターもポチった.NEC Aterm WG1800HP2ってやつ.回線が整い次第本気出しますよろしくお願いします.