ソンブレロ鍋

鍋メモ

ErgoDox に傾斜をつける

ErgoDox というキーボードを買ったことは以前に書いた.

僕が買ったキーボードには,通常のキーボードについている底面のすべり止めが無かったため 100 円程度で買えるすべり止めシートをちょうどよい大きさにカットして敷いている.これは手軽な改善だった.

今回はキーボードに傾斜をつけたいということを実現した.

これの出発点としては,自然な角度で操作できるマウスなどである.例えばこれ

www.amazon.co.jp

キーボードだとこれ

www.ergocanada.com

ErgoDox に傾斜をつけて使うということは,超オスの Okuno さんが既に実践しているのでそのまま真似した.

nippondanji.blogspot.com

具体的な方法は,はざいや ( http://www.hazaiya.co.jp ) というアクリルショップに単純な加工をしたアクリル板を注文し,適当に接着するという方法だ.

ここから簡単な加工の注文と自動見積りが可能だった 自動お見積り

今回は ErgoDox の親指側が小指側より高くなるように (つまりローリング角を変更するように) した.

注文したのは

  1. 板 :透明アクリル(押出板) 厚さ3mm サイズ10×155mm (87円×2枚=174円)
  2. 板 :透明アクリル(押出板) 厚さ3mm サイズ135×155mm (186円×2枚=372円)
  3. 板 :透明アクリル(押出板) 厚さ3mm サイズ53×146mm (421円×2枚+加工費=1684円)
  4. アクリル接着剤(アクリサンデー) (550円)

の四種類の商品で,板はそれぞれ二枚ずつ.(注意: 1 番目の板のサイズが間違っており,10×155 ではなく10×135が正しい) 3 番目の板は直角三角形の斜辺が 155mm となるように斜めカット加工をした.上記の注文内容だと 20 度ほどの角度が付くキーボード台ができる.

 

f:id:zfhrp7:20170524215731j:plain

f:id:zfhrp7:20170524215806j:plain

(注意: 1 番目の板 (坂の下端のストッパー) のサイズを間違えて長辺に合わせて注文してしまったため,半分に折って使っており,短くなっている)

このキーボード台で少し過ごしたけれど,角度がもう少し急であると良いような気がしている.

ポートフォワーディングの設定をした

外出先から自宅のネットワークに繋ぎたいことがあるので,ポートフォワーディングの設定をした.

インターネットにある VPS を中継して自宅に繋ぐ設定になった.

今回のポイントはポートフォワーディングと多段 SSH の省略の 2 つである.

ポートフォワーディングは,あるコンピューターのポート (IP アドレスを 100.50.150.3,ポートを 30001 とする) を別のポート (IP アドレス: 185.123.144.2, ポート:50001) へ転送するものである.

通常,ポートフォワーディングは手元のコンピューターのポートを別のコンピューターのポートへの転送を設定するものだ.つまり手元のコンピューターのポートへ接続すると,別のコンピューターへ繋がる.

しかし今回は逆ポートフォワーディングというものを用い,別のコンピューターの指定ポート (IP アドレス:110.120.130.4,ポート:10203) へ接続すると手元のコンピューターのポート (IP アドレス:140.150.160.5,ポート:40506) へ繋がる設定をした.具体的な実行コマンドは ssh を用いて以下のようになった.このコマンドは手元のコンピューター (IP アドレス:140.150.160.5) で実行する.

>|sh|

ssh 110.120.130.4 -R 10203:localhost:40506

||<

 

多段 SSH の省略についてはそのうち書く.

また,ssh_config のファイルのメモを以下に

ErgoDox を買った

ErgoDox という手や腕に優しそうなキーボード (PC 周辺機器) を買った.

ErgoDox はハードウェア・ソフトウェアが公開されていて自分で製作・カスタマイズできるキーボードだが,キーボードの筐体を作る技術や設備と手間と熱意がないと自作は難しい.幸いにして,製作や組み立てをサービスとして提供している人や団体があるので,そのあたりから購入した.

ebay や mechmarket やヤフオクで探せば完成品を誰かから買うことができるし, ErgodoxEz での販売もある.

今回は taobao で買った.比較的安かったのと taobao 代行業者を使ってみたかったから.

また,キーボードのキーキャップ (指に触れる部分) はだいたい別売りなので,これは pimpmykeyboard で買った.

ErgoDox 本体と送料とキーキャップと送料全ての合計で 18000 円とちょっとだったので,それなりに安く買えた気がする.

 

f:id:zfhrp7:20170312125425j:plain

ErgoDox(赤軸) 本体

 

f:id:zfhrp7:20170312201542j:plain

透明キーキャップ装着後

 

追記 (2017-03-14)

f:id:zfhrp7:20170314124854j:plain

ホームポジションのキーを区別せず買って,ブラインドで判別できずちょっと不便だったので昔使っていたキーボードから F,J を移植した.

Vimでファイル末尾に改行が追加されて困った (:set nofixeol)

Vim を用いて,末尾に改行がついていないファイルを編集し保存するとファイル末尾に改行が付け加えられることに気づいて少しハマった.

できれば対処法1で対処したい.

対処法1 (Vim v7.4.785 以降の場合)

対処法2 (Vim v7.4.785 未満の場合)

  • :set binary noeol をしてから保存する

    • Vim が BINARY MODE でかつ noeol が設定されていれば,保存した時に改行を追加しないようだったのでこれで対処できる.

最後に改行がないファイルが作れない · Issue #152 · vim-jp/issues

FiiO M3を買った

FiiO という中国の音響メーカーが出してる FiiO M3 という音楽プレーヤーを買った.今までは iPod ClassicRockBox というソフトウェアを入れて使っていたけれど, iPod の HDD のあたりの調子が悪くなったようでファイルを読み込めなくなったり書き込めなくなったりした.

FiiO X1 とか X3 とかが日本で輸入元オヤイデ電気として販売されているが M3 は販売していないのであまり話を聞いてなかったけれど大きさと最低限の機能でいいだろうと思って買った.

色は cyan を買った,元は Ivoly White しか色がなかったけれど最近新たに増えたようだ.

このプレーヤーは内蔵メモリが 8GB あり,microSD(XC) を挿入する口がひとつ付いている.公式では64GBまでのmicroSDに対応と書いてあったが, Amazon のレビューに「 128GB でもいけたぞ」と書いてあったので 128GB の microSD をすこし試してみたところ問題なく読み込んでいる.

そのレビューはここ

Amazon.com: Stumpy's review of FiiO M3 8GB Micro-Portable Digital Music P...

手元で試した microSD カードはこれ

Amazon.co.jp: ☆東芝製チップ採用☆バルク品☆microSDXCカード Class10 UHS-I対応 128GB SD変換アダプター/プラケース付き MFMCSDXC10X128G_BULK: パソコン・周辺機器

 

このプレーヤーの良い点は小さくて軽いことと (microSD の) 容量が大きいことで,悪い点はソフトウェアに,あるフォルダ以下のファイルを全部再生するという機能がないこと.再生したければプレーヤー上でファイルをいちいち再生リストに登録していくか, PC 等で作成したプレイリストファイルを使う必要がある.
<2016-05-24 09:40追記>  プレイリストファイルには対応していない <追記ここまで>

この悪い点がなかなか不便なので FiiO X1 を買うかもしれない……. X1 にはソフトウェアアップデートで機能が追加されたらしい.

どうするか.

Google Code Jam 2016 Round1A に参加した

Google Code Jam 2016 Round1A に参加した.

Past Problems - Google Code Jam (過去のコンテスト一覧)

Round1A の前に Qualification Round という予選があり,そちらで A, B, C, D の四問 (それぞれ small, large と規模の異なる入力がある) を解き,Quarification ラウンドで 30 点を超えると Round1 に参加できる. Qualification Round についてもそのうち書くかもしれないが, 75 点だった.

 

一問目

問題を読み違えたので二度も WrongAnswer を出してしまった.

一文字ずつ追加していって辞書順で一番遅い単語を作り出せという問題で,現在の単語 (文字列) と追加する文字をそれぞれ T, c とすると, c+T と T+c を比べて辞書順でより遅い方を採用していけばいいと思う.

また,辞書順なので c が T の先頭文字より遅ければ c を先頭につける,という方法の方が速いかもしれない.こっちの方法で解いた.

 

二問目

問題を理解していなく,「行列が一部分だけ重なり,重なった部分が上書きされてしまったので,消えてしまった部分を答えろ」という問題だと勝手に思って解いた.

行列は行についても列についても単調増加になっているという条件があり,行列が 2 つ重なるということなので,重なって消えた部分に入っている数字が奇数回しか出現しなくなる.

以上で,奇数回出現している数字を昇順に並べて答えた.

※ 単調増加でない場合,上述の考え方では以下のような行列に対して正答できない.正答は 1 1 だけれど,1 は 6 回出現していて奇数回ではない.

1 1

1 1

1 1

 

三問目

自分の隣には自分がズッ友 (best friend forever) だと思ってる人がいないと輪に入れない,最大の輪は何人で作ることが出来るか,という問題だった.

強連結成分 (ここでは各ノードが自分が起点となるエッジを一つしか持たないので有向サイクルになる) を抜き出して並べるようなことを考えていたけれど,これは間違いだった.

サイクル数が 2 のサイクルを中心に,そのサイクルに向かって片思いしている列が延長されていくイメージで解いた.

具体的には,

  1. 入力を無向グラフ,有向グラフにする
  2. 無向グラフの連結成分,有向グラフの強連結成分を出す
  3. 有向グラフの強連結成分の中にあるノード数 2 のもの (つまり相互ズッ友のペア) を取り出す
  4. 3. で取り出したペアそれぞれに向かって引ける一番長いパスをそれぞれ取り出す
  5. 別のペアを取り出して 4. を行う
  6. ( (ペアと片思いの人たち) を複数並べたもの) と (サイクル数が 3 以上の最大サイクル) を比較して大きい方の輪が最大になる

これで解けた.

おそらく時間がかかったのは 4. なので,一番長いパスを探す範囲を, (当たり前だけれど) そのペアを含む連結成分に絞ったら速くなった.

 

残念ながら C-small, C-large は間に合わなくコンテスト終了後に解いたので, A, B だけ得点できた. Round1B で頑張ろう.

グラフの作成,連結成分の抽出,パスの確認などを全て Python のライブラリ networkx に頼ったので,この問題の実装はとても楽だった. networkx が便利だった.

機械学習でアニメ推薦を使ってみた

ブログ記事を読んでやってみた.この記事

今季見るべきアニメを機械学習で推薦する - はこべブログ ♨

 

分析とか機械学習とかはほんの少しだけ勉強しようとしただけなので分かってなくて前半は流し読みした.

GitHubソースコードが公開されていてドキュメントがない状態だったけど勘で実行した.使ってみた手順を書いてるブログも有ったようだ.

機械学習による今季見るべきアニメ推薦を試してみた - 小倉病患者のカルテ

 

まず,「けいおん!」「ぷちます」「ラグナストライクエンジェルズ」が推薦された.

アイマスはそれほど重要じゃないなと思って取り除いたけれど,そもそも学習させたアニメ (好きだと示したアニメ) が 44 本 (アイマス系を除く) しかなかったのが悪いのか,それでも「けいおん!」「ぷちます」「ラグナストライクエンジェルズ」が表示された.まあ間違ってはないと思う.

 

手順を説明しているブログ記事の手順でだいたい動作した気がするが,一点だけ,本筋とは関係ないが python 仮想環境で動いてる時に出るらしい matplotlib インポート時のエラーがあって戸惑った.Matplotlib のページにそれについての説明があった.

Working with Matplotlib in Virtual environments — Matplotlib 1.5.1 documentation

解決策は Qiita から以下のものを採用した.

Python 3.3でmatplitlibとpylabを使おうとしたら RuntimeError: Python is not installed as a frameworkというエラーが発生したときの解決方法 - Qiita

 

もっとアニメを見て推薦くんを活用したい.

 

途中の eval_animes.py 実行時に,アニメタイトルが出て y を入力して (または入力せず) Enter で次のアニメタイトルが出てくるところはある程度一気に出てくれたほうが誤入力が減るような気がしなくもなかった.大部分は, Enter 連打するリズムに乗る人が悪い.