子供の風邪からうつって(?)風邪っぽくなりつらかった。子供自体も熱が下がったと思って喜んでたらまた上がったりというのを数度繰替えし、精神的に疲弊する感じだった。
なんだかわからないが、咳・喉の痛み・鼻水・全身倦怠感・結膜炎って感じでとにかくだるい。
子供の風邪からうつって(?)風邪っぽくなりつらかった。子供自体も熱が下がったと思って喜んでたらまた上がったりというのを数度繰替えし、精神的に疲弊する感じだった。
なんだかわからないが、咳・喉の痛み・鼻水・全身倦怠感・結膜炎って感じでとにかくだるい。
2週間ぐらい前だけど自転車を買った。
楽しくできるスポーツというのを数週間考えたけど、結局ほとんど思いつかなかった。独りでできないものは嫌だし、マラソン走るのは嫌いだしといろいろ考えていると、自転車は以下の点で良いという結論に至った
一方で、いくつかデメリットもあると思った
「目的地」があればそこまでは頑張って漕ごうという気になるので、一定以上の負荷がかけやすい。神社めぐりが好きなので目標設定がしやすい。
普通のママチャリを買うつもりでいたが、せっかくなのでクロスバイクに乗ってみようという気になった。
自転車ショップって意味不明でママリャリ買うにせよ苦手なんだけど、チェーン店ならなんとかなるかと思い、サイクルベースあさひで買った (僕はチェーン店が好きである)。
最も近い店舗だとあまりクロスバイクを置いていなかったので、少し遠いところに買いにいった。
遠いところで買うと乗って帰るのに苦労する。10km 程度慣れない(調整されてない)状態で乗って帰ったが結構つらかった。道を知らないので Google Map に頼ったけどスマフォスタンドとかもまだつけていなかったのでだいぶ気疲れした。
車種だけど、定番らしい GIANT ESCAPE R3 2015 というやつにした。GIANT は通販を禁止しているらしく、ネットで検索しても検索にひっかかりにくい。実店舗にいけば大抵の店に置いてる。
同時に買ったもの
すぐに使うので必須なこれらは同時に買った。
その後買ったもの
GIYO(ジーヨ) 携帯用マイクロフロアポンプ [GM-71] シルバー IN-LINEゲージ 仏・米・英式バルブ対応 英式口金クリップ付属 cho45
X-EUROPE(クロスヨーロッパ) 自転車カバー レギュラーサイズ(27インチ以下) サッと収納「一体型収納袋付(特許出願済)」 撥水加工 A-102 cho45
2週間ぐらい雨も降らなかったので、毎日朝10km〜15kmぐらい走ってた。雨降ったりしたらやってない。結構楽しい。
サイコンは結局ケイデンスも計れるものを買いなおした。測定だいすきなんで……
メンテのことを考えると結構面倒そう。とりあえず200kmか1ヶ月かで一度点検に出せということなので、ちゃんと出そうという気持ち。
いろいろ考えたが置ける場所がないので外にカバーかけて置いてる。
安い速度計オンリーのサイクルコンピュータを買ったが、別途ケイデンスを計れるものを買いなおしたので、1つ速度計のみが余った。
速度計とケイデンス計はセンサーは全く同じで (磁石+リードスイッチ)、取り付けかたと計算方法が違うだけなようだ。
最近エアロバイクも買っていて、暇なとき漕いているんだけど、ケイデンス表示がなくてペースがよくわからないので、余った速度計を転用することを思いついた。
速度と(タイヤの)回転数の関係はこんな感じになってる。len はタイヤ周長
ということで、計算するとタイヤ周長を 5000 / 3 にすると、speed = rotations となる。
が、5000 / 3 ≒ 1667 となり、タイヤ周長として異常なので普通入力外になる (手元のものはタイヤ周長としては100〜299までしか入力できなかった)。なので1桁ズラして、167[cm] をタイヤ周長として入力すれば、表示上 06.0[km/h] という形で 60rpm を表現できる。
ただし、速度計の場合 4km/h にならないと表示がオンにならないとか制約があったりするのであまりゆっくりだと測定できないことがある。
IQ信号からは、ベクトルの絶対値をとることで振幅が得られ、角度を求めることで atan(Q/I) 位相を得られる
その上で得られた位相を微分することで、周波数を求められる。
JavaScript だと、デコーダだけ、エンコーダだけ、というのはあったり、GF(2^8) オンリーなものはあったりするんだけど、汎用的なのがなくて悲しかった。
Zxing (バーコード読めるアプリ) の実装を見てみたら、読みやすい上で汎用的な実装だったのでリードソロモン部分だけ Java → JavaScript の移植を行った。
https://github.com/cho45/reedsolomon.js
他の目的があって移植してたけど、目的がなかなか達成できないのでとりあえずこれだけ npm にあげた。
久し振りに単純な移植作業をやった。特殊な依存が特になくほぼ計算なので
ぐらいを何も考えずに機械的に行なったい、テストもまるごと Zxing のものをパクって移植した。
(2が底なら?) 任意のガロア域を使えるようになっており、いろんな用途に使えそう。
new GenericGF(primitive, size, b) で作れるが、primitive polynomial (原始多項式) はビットで表現されている。
x^8 + x^5 + x^3 + x^2 + 1 という多項式なら、8 5 3 2 0 bit が立ち 100101101 となる。0ビット目は +1 を表現してる。これは一般的な表現方法らしく、このように表わされた状態を数字として 301 としたり 0x12d としたりするみたいだ。
http://octave-online.net/ で primpoly(6, 'all') とかやれば原始多項式を全部求められる。
あと、JT65 (6bit) は AZTEC_DATA_6 と同じっぽい。
#!/bin/sh
if [ "x$COMMMMMMIT" = "x" ]; then
COMMMMMMIT=1 git commit --allow-empty -m "仕事したぞ!!!"
fi このファイルを .git/hooks/post-commit として保存します。
#!/bin/sh
if [ "x$COMMMMMMIT" = "x" ]; then
COMMMMMMIT=1 git revert HEAD
COMMMMMMIT=1 git revert HEAD
fi
このファイルを .git/hooks/post-commit として保存します。
結論:自作するメリットはほぼない (金銭的にもない)
先にブログサービス(ASP、すなわち自分でインストールしたりホストしたりしない)の利点を列挙する
一方で欠点は
利点
欠点
自作するメリットはほとんどない。ホスティングに金を払うよりブログサービスに金を払ったほうが気楽である。
もしウェブプログラマなら自作すべきであると常に主張したい。
感情が流れる河川がある。感情の水量の変化は非常に大きいので、ただ流しておくだけだと、とても危険だ。
だから心には一定まではどんな感情でも溜めておけるダムが設置されている。ダムの大きさは心の広さ、ダムの余力は心の余裕ということができる。
しかし連続して感情が流れこみ続けると、ダムが決壊する恐れがでてくる。なので、決壊しそうになったら、それなりの大きさの放流を行って決壊することを防ぐ必要がでてくる。
ダムの決壊というのは絶対に避けるべきことであり、それが起きないために多少下流で氾濫してでも、なんらかの方法で放流する必要がある。
この自分の日記に氾濫原と名付けたのは、いくつか理由があるが一つは感情が溢れてどうしようもなくなったとき、感情が流れる河川が氾濫するのをイメージしているからだ。
もう一つは氾濫原というのは植物にとって豊かな土地になることが多いという良いイメージからだ。クソみたいな感情の氾濫の後に、そういうことがあったからこそ、なんらかの成果がでると信じたい気持ちがある。
ネットにネガティブなことを書くなみたいなバカげたことを言うゴミみたいなやつがいるが、そういうやつらには心から死んでほしいと思っている。できるだけ苦しんで、何もなさず後悔と孤独の内に死んでいただきたい。他人の心を理解するということは不可能だが、放っておいてほしい人を放っておかないでバカにするようなゴミクズには、それ相応の報いをうけてほしい。
ちょっと前まで日記の補足として動画を用いてきて、YouTube にあげるにせよ音もなにもなくスクリーンキャストだけというのが多かったけど、動画だけである程度完結してトピックの内容が纏まっていたほうが一石二鳥だろうというのと、いくつかの理由で、ちゃんと動画を作ることに挑戦している。
日記で文字で説明するときは割と適当というか「わかる人だけわかれば良い」というスタンスで書いてしまう。
雑誌記事みたいなノリで書けばいいと思うけど、そういうスタンスで毎回書くのは結構大変で辛いし、細かいことをいちいち説明していると読者をバカにしている感がでるので避けたい。
動画、というか音声だと声色のニュアンスで細かい配慮を省略しやすく感じる。
文字で書くとすこしカタくなるというか、偉そうな感じになるケースが多々ある。これは根本的には書き手側の文章による表現力の問題なのだとはいえ、一方で受け取る側のリテラシにも関わるので限界がある。
音声の場合、受け取る側も文章を読むということよりも経験が長い (1歳ぐらいから音声を使ってコミュニケーションしている) はずなので、書き手の表現力による齟齬が生じにくくなる。
あと、文字で書くと「読み飛ばす」ことに慣れていない人には負担になってしまう。音声の場合勝手にすすむので、わからないなら勝手にすすむ。人によってはこのほうがいい人もいそう。(個人的には読み飛ばすほうが楽だけど)
そもそも情弱になってきていて、おもしろそうだなと思ったイベントを当日に知るレベル。
ここ数年YAPCでだけ声出してる感じがする。
平日の勉強会だと仕事のあとあまりに疲れきっていることが多いのでさっさと帰りたいと思ってしまう。
ということで何らかの形で声出しておきたい。
わからない。どれだけ楽をして作れるかにかかってる。
今のところ
は最低限必要そうという感じ。
適当に喋ってるように聞こえるが、一応台本を書いてから喋ってる。プレゼンのスライドよりは情報量が多いが、プレゼンよりは雑に書いた感じの台本がある。
一発録りで出すのはかなり厳しい。失敗できないという気持ちでやると気が滅入る。なので、後編集はある程度は必要と考える。編集で切ればいいやと考えられれば、そのほうが気が楽だし、クオリティがあがる (と思う)。
台本を書かずにとりとめもなく喋ると編集が大変だし、たぶん撮りなおしが頻発することが目に見えているし、どうせ話の流れは考えなければならないので、先に考えるのが一番良い。なお少しでも酔っぱらってると呂律がまわらないうえ、話題が飛んだりして完全にダメ。
ということで、たぶんこれ以上は作業を削れない。
スクリーンキャスト以外で動画を撮る必要がある場合はもっと面倒だけど、自分が作ったものを自分で説明するという限りでは、あまりその必要性は多くはなさそう。動画を撮る場合カメラと音声のセットアップがとても面倒くさい。
そして作業の全体の面倒くささは収録時間が長くなるほど増える。なので、だいたい5〜10分ぐらいを目安にしている。一度録ったものは最低でも編集で数度と通しで数度は見ることになるから、短かければ短いほど良い。
ということで僕のチャンネルです。視聴者ファンディング (投げ銭) も有効にしてますよ!!!!
検索してもいまいち出てこなくて、いつも「前見たのどこだったかな」となるので自分で書いた……
ペーストボードにコピーが行われたときに、JavaScript で何かするというツールを書いた。
競合するソフトウェアがいくつかあると思うけど (dot-clipboard とか)、すぐできそうだし Swift で書かれたのはなさそうということで書いてみた。
ユースケースとしては
というのがあります。
有効にしたらもう一度起動する。
コピーのイベントをキーイベントの Cmd+C を見ることで実現している (設定で変更可能)
あとフォーカスされているアプリとかウィンドウの名前を取得するためにアクセシビリティの機能を使っている
function onCopied () {
// console.log(pb.types());
var bundleId = utils.focusedApplicationBundleId();
console.log('onCopied: ' + bundleId);
if (bundleId === "com.apple.Terminal") {
// clear data without "public.utf8-plain-text"
pb.copy(pb.string());
}
} こんな感じのを書く。これだと Terminal.app で Cmd+C を押した場合、プレーンテキストだけにして他のデータ型を削除するようになる。(Google Keep とかにペーストするとき意味不明な改行が入りまくったりするのを回避できる)
または、レポジトリにあるファイルをとりあえず使ってみるなら
git clone https://github.com/cho45/CopyHook.git cd CopyHook ln -s dotcopyhook.js ~/.copyhook.js ln -s dotcopyhook ~/.copyhook
これだと Slack のアプリででコピーしたときいい感じにフォーマットするようになる。
require() で ~/.copyhook 以下から外部ファイルを読みこんだりできるようになっている。
console.log() は OS X のシステムログに書きこむことができる。Console.app を起動すれば確認可能。
utils.focusedApplicationBundleId() でフォーカスされているアプリの bundle id を取得できたり、utils.focusedWindowName() でフォーカスされているウィンドウのタイトルを取得できたりする。これにより、処理を場合わけできる。
CopyHook の JS は直接ファイルの読み書きなどができるようになっていないが、utils.system() によって外部プログラムを呼びだせるようにしてある。
なお、書きかえた JS ファイルは次回コピー実行時に自動でリロードされる。
ペーストボードに「コピーが行われた」という Notification (OS X でイベントコールバックしてくれる仕組み) はないので、別の方法でやる必要がある。
ポーリングで常に監視するのがとりあえず嫌だったので Cmd+C をデフォルトにしている。
設定でポーリングにも変更可能。
JS の実行には JavaScriptCore.framework を使っている。OS X 10.9 から使えるようになった framework で、JS の実行環境とネイティブ実行環境をブリッジして使えるようにしてくれる。
JS で書けるようにしておくと、テキストフィルタするようなのを書く場合、とりあえず node で書いてテストして、それをそのまま CopyHook でも使うということができて便利。