技術めいた何か

社会人になってしまった

mixi git challenge #10に参加してきました!

こんにちはprprhytです。
第10回 git challenge に参加してきました!
問題の内容については口外できないので日記風。

TL;DR

  • とても学びがあってエモかった
  • gitの低レベルコマンドとか内部構造とか学ぶ機会になった
  • 飯がうまい

参加まで

応募は初めてでした。
実は1度祈られたのですが、空席ができたため繰り上がりました。
どなたか存じませんが圧倒的感謝...。この時点で既にエモい。

当日

事前の連絡でチーム戦とは聞いていたのですが、
それって知らない人とチーム組むってことだよなぁ...
と思って少し不安でした。
2人チームでした。
実際には相方はとても社交的な人でした。感謝。

競技前

開始前は交通費の受け取りとかノベルティとか見てました。
交通費の支給は本当にありがたかったです。🙏

イベント開始後、運営スタッフのLTとチュートリアルがありました。
サービスにおけるGitの活用やGitでドメイン管理する話を聞きました。

相方とスタッフかつ午前にLTをされていた神谷さんとお昼をいただきました。
お昼はオーベルジーヌのカレー弁当でした。 お肉が大きくて、ルーもうまくてスパイシーでした。
過去のgit challengeのお昼で好評だったそうです。わかる。

競技開始前に作戦会議をしました。
方針としては、易しい順でソートして奇数個目の問題を解く役と偶数個目の問題を解く役にわかれました。
(当日あったばかりでお互いの実力とかわからなかったので...)

競技中

担当範囲のうち2,3問目くらいまで順調だったのですが、後半は解けない問題が出てきて飛ばしたり相方に解いてもらったりしました。
わからん問題を相方に問いてもらっている間に☆3の問題を1つ解けたのはよかった。(これは罠で他のすべてのチームも正解してた...)
一部の上級問題以外の難易度はちょうど良かったです。(解けなかった問題も解説聞いてなるほど〜ってなった)
インターネッツの使用は許可されていたので、いくつかの問題はググり力〜でした。 (一部の上級問題はあきらかにそうではない感じ...)
相方に助けてもらう場面が何度かありました。圧倒的感謝🙏

競技中にはお菓子やカフェインマシマシパリピドリンクHECATE(ソフドリ)も振る舞われました。

競技終了後

解説聞いてもう少しでできたのに...!と思う問題もありました。学びになりました。
結果は5位(同立2チーム)でした。1位は圧倒的でしたが、3位(同立2チーム)とは僅差だったので☆3があと一つ解けていれば3位だったのにねーみたいな話を相方としていました。
あと、LTもありました。
リポジトリのデータ解析(ネガポジ判定)の話や
KuniwakさんのGitに詳しくなるまでの話を聞きました。千里の道も一歩からなんだなーという気持ちになりました。やっていき💪

懇親会は疲れがピークでしたが、お酒の力で(一時的に)復活しました。
飯がオシャレな上に美味しかったです。

お話した学生の志望分野はmixiさんのイベントに参加しているだけあって、web系志望の学生がほとんどでした。(それはそう)
mixiのエンジニアの方や他の学生と交流できて有意義でした。
年収とか採用の本音...?(書類でどういうところ見るとか)とか根掘り葉掘り聞けました。よき。

最後に

継続は力なりなんだなーということがわかりました。 僕の語彙力では表現しきれませんが楽しかったし学びが多かったので、後輩にも勧めていきたい。
やっていくぞ💪

HHKBとMagicTrackPad用のドッキングステーションを自作した話

TL;DR

  • HHKB Professional2と初代Apple MagicTrackPad用のドッキングステーションを自作した
  • 木工ベース
  • 費用 5000円強
  • かかった時間は週末3時間×4日間くらい
  • 東急ハンズはいいぞ

完成図

膝に乗せて使ってます。

こんなん
f:id:atofaer:20180730020256j:plain

スペック

  • HHKBサイズのキーボードがおける
  • 初代Apple Magic TrackPadがはめ込める
  • ドッキングステーション兼パームレスト
  • 膝の上で使える
  • 折り畳める

効果効能

  • ディスプレイと距離を取れる
  • 椅子に深く腰をかけれる
  • 背もたれに寄りかかれる

きっかけ、いきさつ

長いので作業工程だけ知りたい人は飛ばしてください。

おたく、HHKBを買う

先輩が使っているのを見て厨二心がくすぐられました。
とはいえ、無刻印にするほど度胸がなかったので刻印ありを選択。
これが昨年の春でした。

ことはじめ

その後1年と3ヶ月はMacBook ProとHHKBを尊師スタイルで使っていました。
1年間強運用してみて尊師スタイルやノートPCの内蔵キーボードに次のデメリットを感じました。

  • 猫背になりがち
  • 目が内蔵ディスプレイに近くなりがち
    • 机に奥行きがない場合、外付けディスプレイも近くなりがち
  • 肩が凝る(気がする)

しんどい気持ちが高まったので、バイト中に隣の席の社員さんに相談したらキーボードを膝に載せればいいのではとアドバイスを貰いました。
ただ、HHKBだけを膝の上で運用をするとトラックパッドを操作するときにいちいち腕を持ち上げて卓上のMacBookを触る必要があって面倒だなと。
ならばどちらも膝の上に載せてしまえばいいことに気づいたわけです。

MagicTrackPadを買う

そこでメルカリで中古のMagic TrackPadを購入しました。
送料込みで¥4500。
MagicTrackPad2が現行機種のため型落ちです。なのでそこそこ安くなってます。

さっそくHHKBとMagicTrackPadだけを膝の上に乗せて運用してみました。
が、膝の上で運用開始5秒で物理クリックができない事に気が付きます。
最初は故障を疑ったのですが、これはMagicTrackPadの構造によるものだとわかりました。
MagicTrackPadのクリックは裏面のゴム足が接地面に押下されることでクリックを検知していたためでした。
つまり、そのまま膝の上にのせても僕の足は机ほど固くないので機能しないわけです。
(DIOならできるかもしれない...)
タップでクリックするように設定しているのでクリックだけなら問題ないのですが、
ドラッグできないのでウィンドウの移動ができず不便でした。

ドッキングステーションを探す

そのまま載せてもだめだと気づいた僕はドッキングステーションくらい売ってるだろと思って探し始めます。
次の要件で探しました。

  • MacBookみたいなキーボードとMagicTrackPadが縦に並ぶ配置
  • HHKBが載っかる

しかし残念ながら僕のググり力では満たす商品は見つかりませんでした。
↓みたいな純正キーボードと組み合わせるタイプのものやMagicTrackPadだけ板にはめるものなら見つかりましたが...

無いならつくる

無いならば作ろうということで作ってみることに

工具/材料一覧

使った材料と工具の一覧です。

使った工具

  • ドライバ(キリ付き)
  • 彫刻刀

購入したもの

買ったけど使わなかったもの

作業工程

1.素材の選択

何ベースで作るか決めます。
最初は3Dプリンタでやろうと思ったのですが、予算の都合でやめました。
モデリングの知識が無いのは勉強すればいいとして、3Dプリントの外注は意外と高かったため断念。

比較的加工が容易な木材ベースでやることに。
木材の中でも軽い桐の集成材を使うことにしました。

2.設計図を書く

おもむろに設計図を書きます。
次のような設計図を書きました。
後述の加工サービスで提出する用なので寸法がわかればいいくらいの雑さで書きました。 なお、パーツCは作成しませんでした。
f:id:atofaer:20180730015840j:plain f:id:atofaer:20180730015848j:plain

3.材料の購入

新宿駅前の東急ハンズ に材料を買いに行きました。  

新宿の東急ハンズにした理由は素材の加工サービスをやっているため。 2で書いた設計図を持ち込んで材料を加工してもらいました。 この時に、購入したものは次のとおりです。

加工サービスと合わせて4000円ほどなり。 加工については閉店ぎりぎりに駆け込んだので受け取りは翌日になりましたとさ。

4.受け取って運用してみる

塗装や蝶番の取り付けはまだでしたが、受け取り後運用してみました。

僕はトラックパッドの設定で"タップでクリック"(1本指で軽く触るだけでクリック扱いになるやつ)を有効にしています。
ハンズで受け取った段階では下の写真の用にMagicTrackPadがむき出しの状態でした。
また、MagicTrackPadはMacBook内臓のトラックパッドより大きいです。 よって、キータイプ時に手のひらがあたってしまい誤クリックが発生してしまう状態でした。

塗装後 f:id:atofaer:20180730013924j:plain

5.塗装、ヤスリがけ(1)

塗装をしました。 材料はすべて100均です。
かるくやすりがけをしてからセリアのメープル色水性ニスを塗りました。


塗装が終わって一見完成に見えますがこの時はまだ誤クリックの問題は解決していませんでした。

5.ソフトコルクシートで高さの差を埋める(失敗)

そこで購入したソフトコルクシートを下の用に切り取りMagicTrackPadをはめる面に重ねることでMagicTrackPadがむき出しになるのを防ごうとしました。
ソフトコルクシートはハンズの加工サービスでは受け付けてもらえなかったため、自分で加工することに。
ハンズの店員さんから包丁で切ると良いというアドバイスをうけて包丁で加工をしましたが、素人なので断面がダサいのと、 ソフトコルクシートとの組み合わせが予想以上にダサいので断念しました。

6.木材で差を埋める

ソフトコルクシートがだめだったので、木材で差を埋めることにします。
もう一度ハンズへ行き同じ木材を購入。

そして加工サービスを使って5で使った図面どおりに切ってもらいました。 日曜日の15時前くらいに言って受け取りは17時でした。

7. 塗装、ヤスリがけ(2)

追加で購入した分のヤスリがけと塗装をします。
使用時に腕が当たる部分は入念にヤスリがけをしました。

f:id:atofaer:20180730014226j:plain  

8. 接着

木工用ボンドで接着。
上の木材は誤クリックを防止とパームレストの役割を果たしてくれます。 下の木材はMagicTrackPadのゴム足ボタンを押してくれると期待。

9. MagicTrackPadをはめてみる

接着剤が乾いたところで実際にMagicTrackPadをはめてみます。

はまらなかったです。神。
仕方がないので彫刻刀で削りました。
彫刻刀を使うのが小学校以来で涙が出てきました。

f:id:atofaer:20180730014327j:plain

10. 塗装、ヤスリがけ(3)

3度目の正直です。
削った部分のヤスリがけと塗装をします。
これは仕方がないのですが、塗りムラがでてしまいました。

11. 蝶番取付

蝶番の取り付け。
下穴を開けてからネジ止め×12箇所 キリで桐に穴あけ〜 とか一人でつぶやいてました。 ギャグも作業もあまりおもしろくなかったです。

写真は端材で練習した後の僕です。
f:id:atofaer:20180730014810j:plain

12. 完成

完成。

折り畳めます。

トラックパッドはもちろん外せます。 f:id:atofaer:20180730014715j:plain

7/23に完成してから1週間くらい運用してるのですが、なかなかいいです。
改良点を上げるならトラックパッドが下の辺が木材との摩擦で少し押しづらいので、
下の辺が木材と接触しないように枠を縦方向に長く取ったほうがよかったかも。

感想

中学校卒業以来の初めてのDIYだったのですが、楽しかったです。
持ち運べるように設計したものの荷物になるので、家用、ラボ用、バイト用が欲しい。

MacOS+ChromeでAmazonの領収書や楽天カードの利用明細を印刷すると白紙になってしまう時の対処方法

他に書いてる人がいないっぽいので、あんま技術してないけどメモ。

TL;DR

  • MacOS+ChromeAmazonの領収書や楽天カードの利用明細を印刷しようとすると文字が表示されず白紙になる(既知の)問題がある
    • 原因はOsakaフォントだった
    • MacOSのアプリ「Font Book」からOSAKAフォントを無効にすれば解決する

以下作業ログ

訳あって利用明細をpdfに印刷する(書き出す)機会があったのですが、Chromeでやると何故か白紙になってしまう事に気がついた。
同様の問題がAmazonの領収書で起きているようですが、解決方法をググっても別のブラウザを使うなどだったため原因を調べた。

  1. chromeのDevToolでいろいろためす。
  2. font-family怪しい?→コメントアウトしてみる
  3. 印刷時も表示された
  4. フォントを一つずつ確かめる
  5. OSAKAフォント指定時に白紙になることがわかった
  6. OSAKAフォントってなんぞと思って調べる
    1. classicalなOSX Classic Mac OSで使われていたフォントらしい
      1. Osaka (書体) - Wikipedia
  7. OSAKAフォント入れたらなおるのかな?
    1. 下記リンクを参考にFont Bookで調べる
      1. macOS Sierra に組み込まれているフォント - Apple サポート
  8. 既に入ってた...
  9. 試しに無効にしてみる
  10. 治った...

追記(2017.07.22)

GitHubにissueを漁っていたら似たような問題がGoogle Fontに報告されているのを発見した。
Some Google fonts print incorrectly on anisotropic RIPs · Issue #1370 · google/fonts · GitHub

Chromeの印刷時のレンダリングで一部文字が描画されない点が共通している

もくもく温泉開発合宿12 に参加してきました! ~Androidとyubikeyで遊ぶ3日間~

もくもく温泉開発合宿12に参加してきたのでメモ。

2泊3日で、スポンサーされる枠で参加させていただきました!
圧倒的感謝🙏

もくもく温泉 開発合宿 #12 - connpass

思い思いに作業をする会で僕はyubikeyとAndroidで遊んでいました。

やったこと

前回からの反省

  • 酒は夕方からにした
    • 前回は調子に乗って昼からガブガブ酒をキメてしまった故、進捗が無だった
  • オールしない
    • 寝ないと翌日に響くので3時には寝るようにした

作業した内容

Google I/O'18で発表された通り2018年のQ4にAndroid O以降のバージョンにFIDO2.0のAuthenticatorが実装される(予定)なので
先駆けてベースになるアプリを実装してみようと思って作業しました。
FIDO2.0用のAPIも充実してきたのでそれの調査からはじめました。 下記のドキュメントとFIDO 1.xにあたるFIDO U2Fのサンプルを参考にクライアントアプリの実装を進めました。

ドキュメント:
com.google.android.gms.fido.fido2  |  Google APIs for Android  |  Google Developers
AndroidのU2Fのサンプル:
GitHub - googlesamples/android-fido: Quickstart sample for the Android FIDO API

まだAndroid単体で動作するAuthenticatorは実装されていないようだったので、Authenticatorには4月に購入したYubicoのsecurity key by Yubicoを使用しました。

僕は下記の直販サイトから購入しました。
www.yubico.com なお、日本国内の正規代理店はソフト技研さんがやっているようです。

サーバーはYubicoのPython版公式サンプルを用いました。
github.com

次の流れで作業を行いました。

  1. Yubicoのサンプルを動かす
    1. exampleが動かなかったのでプルリクを出した。
      1. https://github.com/Yubico/python-fido2/pull/10
  2. AndroidのFIDO APIの調査
  3. 実装
  4. コネクタ経由で接続したsecurity keyからレスポンスが帰ってこない。(調査中)

上記の通り未完で至らない点が多いです。プルリク待ってます。
GitHub - prprhyt/AndroidFIDO2Sample

ハマったところ

あとは、仕様を読み進めていきたい。
そのうちGoogle様から公式サンプルでるだろうなぁ...

2018.08.13 補足
リリースノートを読んだらearly access partner がアクセスできるって書いてありました。
early access partnerでない人は正式版がリリースされるまで待ってたほうがいいってことですかね...
Release Notes  |  Google APIs for Android  |  Google Developers

当日の様子

向かってる最中

3連休初日だからかスーツケースを持った家族連れを多く見かけました。

JR湯河原駅からバスで理想郷へ。理想郷って名前なんですよ。
湯畑の次にネーミングが好き。

集合。
遅刻者多数だったので、最初に集まった3人で設営をしました。
エンジニアは遅刻しがち。

設営が終わり次第、ぼちぼち作業を開始。

その他の写真

f:id:atofaer:20180722173637j:plain お宿

一面のクソミドリ f:id:atofaer:20180722173657j:plain

夜の公園で会ったぬこ。かわいい。 f:id:atofaer:20180722173721j:plain

湯河原駅前。湯の街だけあってアピールがすごかった f:id:atofaer:20180722173758j:plain

3日目の月曜日に花火大会があったようです。混みそうだったので先に引き上げました。

f:id:atofaer:20180722174040j:plain

〜温泉とポン酒と猫と〜 もくもく温泉 開発合宿 #11にスポンサーされる枠で参加してきました!

どうも @prprhyt です。
1週間くらい経ちました。 4/28〜30にあったもくもく温泉開発合宿 #11 @土善旅館
スポンサーされる枠 で参加してきました!
ゴールドスポンサーの皆様ありがとうございます!

進捗

もくもく会なので圧倒的進捗...のはずが開始1時間で酒をいれてしまった。優勝。

  • やろうとしたこと

    • ARM用のdockerイメージをビルドするCI鯖を建てる
    • 4月に買ったFIDO2用ハードウェアトークンで遊ぶ
  • 進捗

    • ARM用のdockerイメージをビルドするCI鯖を建てる
      • QEMUベースでx86/x64上に建てた
      • ネイティブ(Raspberry Pi3 B)の10倍くらいの時間がかかったので諦めてラズパイ上に建てることにした
    • 4月に買ったFIDO2用ハードウェアトークンで遊ぶ
      • 行きのバスでFIDO2の仕様を3ページくらい読んだ
      • ハードウェアトークンを開封した
      • 試しにGoogleアカウントに紐づけてみた
      • デベロッパー登録をした。SDKは降ってこなかった...

こんな感じで進捗はぼちぼちでした。

ちなみにFIDO2トークンは4月にでたYubicoのやつです。

交流とか

ご飯の時間に美味しいご飯を食べながら他の学生やエンジニアの方と交流できてとても楽しかったです!
業種もフロント、インフラ、データサイエンスetc...といった具合にバラバラで異文化交流感もあってよきでした!

f:id:atofaer:20180506161738j:plain 2日目の夕食

写真

旅館の猫のはなちゃん

f:id:atofaer:20180506151433j:plain 日本酒

こんな感じで温泉+ポン酒+猫→優勝 でした!

学生ということあり超優遇していただきました! とても良い会だったので学生参加者がもっと増えればいいなと思ってます!