2014年 09月 04日

最近のヘッドフォン事情

特にヘッドフォン新しく買ったりというのはしていなくて、というのも通勤中・仕事中はノイズキャンセルがついている QC15 一択しかなくて他のを使う気にならないからなんだけど、自宅では別のを使うようにしている。

Bose QuietComfort 15 Acoustic Noise Cancelling headphones ノイズキャンセリングヘッドホン QuietComfort15-S - BOSE(ボーズ)

BOSE(ボーズ)

5.0 / 5.0

自宅に今あるのは

  • audio-technica ATH-A500
  • AKG K77
  • audio-technica ATH-EP700

だけで、あとは壊れたりで失なわれてしまった。

この中で一番よく使っているのは ATH-EP700。

オーディオテクニカ ATH-EP700 BW 楽器用 モニターヘッドホン 開放型 有線 軽量 楽器練習 電子ピアノ 6.3mmヘッドホン端子変換プラグ付き 【国内正規品】ブラウン - Audio Technica(オーディオテクニカ)

Audio Technica(オーディオテクニカ)

5.0 / 5.0

audio-technica 製品ってだいたい高い音がキツくてつらいんだけど (ATH-A500 もそうだし、店頭とかで試聴すると片っぱしからこの傾向があってマジ謎)、ATH-EP700 に限っては全くそういう傾向がなく、ずっと聴いてても疲れない。

装着感は ATH-A500 のほうが圧倒的に良いんだけど、ATH-EP700 もイヤーパッドは布で悪くなく、ただハウジングが小さいので耳に乗る形になってしまうのだけちょっと嫌

AKG K77 はときどき使うといいんだけど、ATH-EP700 のほうが元気いい感じなのであんまり使ってない。

でもって最近ひさびさに AKG K540 というのが欲しい。イヤーパッドが布かつハウジングが広いので装着感が良くて、音的には ATH-EP700 に似てるのでまさに求めていた感じ

AKG セミオープン型ヘッドホン K540 ブラック K540BLK【国内正規品】 - AKG

AKG

4.0 / 5.0

とはいえ自宅でしか使わないので欲しいと思いつつ数ヶ月経ってる。

はんだごて先クリーナー

白光(HAKKO) こて先クリーナー クリーニングワイヤータイプ 599B-01 - 白光(HAKKO)

白光(HAKKO)

5.0 / 5.0

コテに元々ついていたスポンジがさすがにボロボロになってきてしまっていて (10年以上使ってる…)、スポンジだけ買おうかなと思っていたのだけれど、このようなものが目に入ったので試してみてる。

スチールウールみたいなのにフラックスが塗ってあって、おもむろにコテを突っ込むとコテ先が綺麗になるというしろもの。

メリットとしては

  • 水を使わないので温度が下がりにくい
  • コテ先が非常に綺麗になる (ハンダのりが改善される)

あたりがあるっぽい。特に後者はでかくて、細いコテ先だと先端がすぐ酸化してしまって、スポンジだとなかなか綺麗にならず、先端にはんだが乗らなくなって細いコテ先の意味がなくなるので、かなりライフチェンジングな感じがする。

あとはどのぐらい耐久性があるかという話になるけど、実際使い続けないとわからない。

2014年 09月 03日

AngularJS で http リクエスト中画面内のボタンを disabled にする

とにかく面倒だから全部の http リクエストを監視してボタンをオフにしたい。という要件

いまいちいい方法が思いうかばないけど以下のようにして実現した


http の状態管理するサービスをつくる

myApp.factory('httpState', function () {
    return {
        processing: 0
    };
});

$httpProvider のインターセプターで http の状態を更新する

myApp.config(function ($httpProvider) {
    $httpProvider.interceptors.push(function (httpState) {
        return {
            'request': function (config) {
                httpState.processing++;
                return config;
            },
            'response': function (response) {
                httpState.processing--;
                return response;
            }
        };
    });
});

コントローラでスコープに入れておく

myApp.controller(function ($scope, $http, httpState) {
    $scope.httpState = httpState;
});

テンプレートで状態を見て disabled にする

<button ng-disabled="httpState.processing > 0">foobar</button>
2014年 09月 02日

Illustrator で作った .ai ファイルをファイルサイズを減らした .pdf に

もちろん Illustrator を起動してエクスポートなり別名で保存なりすればいいのだけれど、複数ファイルを頻繁にコンバートしたいときやはり面倒なのでコマンドラインで自動化したい。

今まで .ai ファイルが .pdf 互換ということで、.ai の拡張子だけを変更してコピーするみたいなことをしていたけど、ファイルサイズがかなり大きくなってしまう。PDF として見るだけなら必要ないデータもあるはずなのでお手軽に削減したい。

ghostscript を使う

http://askubuntu.com/questions/113544/how-to-reduce-pdf-filesize に書いてある通りだけどコピペしておく

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input1.ai input2.ai

こうするとスクリーンをターゲットに最適化される。ベクターデータとかは特にクオリティーは落ちず、余計なデータが省かれるだけになる。入力には .ai ファイルも指定できる。

ビットマップデータはかなり高圧縮になってしまってクオリティがかなり落ちたりするので、そういう場合は -dPDFSETTINGS=/ebook を指定するとサイズが多少増えつつもマシになる。

これ、入力ファイルを複数指定すると結合した1つのファイルができて便利。

こんな感じ

-rw-r--r--@ 1 cho45  staff   1.5M  9  1 20:07 2-block.ai
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=2-block.pdf 2-block.ai
-rw-r--r--@  1 cho45  staff    51K  9  2 22:19 2-block.pdf

_人人人人人_
> 30分の1 <
 ̄Y^Y^Y^Y ̄

ベクターデータだけだと全く見た目には見分けつかない。

2014年 09月 01日

YAPC::Asia Tokyo 2014 の感想

全体的に

Perl 以外の話が例年にも増してたいへん多かったように感じた。といってもやっぱり Perl を知ってること前提にして他の話題、というパターンが多いように感じた。リアルタイムで聞けなかったトークも結構多かったので録画の公開が楽しみ。

以下のほかにもいろいろ聞いたけど、特に印象深かったものについて

500 Can't connect to yapcasia.org:443 (certificate verify failed): Dockerとか vagrant とかちょっともはや人に聞けない感じになりつつあるけど、自分で試すモチベーションが今まで沸いてなくてさっぱり知らなかったので、発表で概要だけでも掴めたのがよかった。

500 Can't connect to yapcasia.org:443 (certificate verify failed): モルガンスタンレー社内の Wiki システム (TWiki) の話だったんだけど、社内システム自体が1都市につき2つのDC、そのセットが世界3箇所に冗長化されてるとからしくて、なんかすごかった。あと TWiki の集計マクロとかがやたら高機能で、なるほどな〜と思ったりした。

500 Can't connect to yapcasia.org:443 (certificate verify failed): コンパイル遅いのがかなり厳しい。sbt で差分コンパイルしても最高の依存元を最高に書き変えるとやっぱりフルビルドだぜって言ってた。コンパイル時間とか全く本質的ではないのに、依存元へのコード変更を入れるのを避けるモチベーションになるのは厳しい感じがする。

500 Can't connect to yapcasia.org:443 (certificate verify failed): 自分の発表と結構かぶりそうだなと思ってビクビクしつつ聞いたけど、マコピーさんはちゃんと体系的に電子工学学んだ人みたいで、仕事でも使っているようなので、ちょっと自分とはレベルが違いすぎるんだけど、そういう人でもハードウェアっぽい人とは出会いがないのか〜と思うところがあった。

LT の g0v.tw の話、かなり面白かった。日本でもできるのかな〜と考えてしまう。

自分の発表について

完全に Perl に関係ないし、普段の温度感から、みんなあんまりドライバとか物理層には興味がないのだと思っていて、発表もシーンとなるのを想像していたが、思ったより人がいっぱいきてくれたし、ウケが良かった。「やってみたくなった」という人が何人かいたので嬉しかった。

その後ちょくちょく質問があったけれど、仕事では一切物理層触っていないので、これは完全に趣味の話です。

僕は、回路設計や基板設計といえば、それ系の大学いって体系的に勉強した人しかできないものだ、という思いこみがあったのだけれど、プログラムを書くのと同じように独学でもそれなりに楽しんで理解しながら学習することができるということが、最近わかってきた。

とはいえ、とにかくこういうのは基礎が大事で、特に質の高いエネルギーを広範囲に扱う分野なので、うっかり事故を起こして火事とか起こさないようなベース知識がとにかく必要だし (ICは良く燃える)、設計はできないけど既存の組み立てるだけはやるみたいな電子工作おじさんになりたくないみたいな気持ちが大きくあって、そういう意味でも基礎が大事と感じる。

独学で体系的に電子工学を1からモチベーションを保ちながら学ぶ良い方法があったらいいけど、結構むずかしい。特にモチベーションを保つためには「適度な問題」の供給が必須だけど、普通の教科書ではそういった問題は載っていない。

アマチュア無線について

もうちょいアマチュア無線の話も聞きたかったみたいなことを一瞬聞いたけど完全に時間に入らないのと、YAPC の趣旨からすると離れすぎるので (話したいことはあるけど) 殆ど入れなかった。

アマチュア無線をはじめて良かったのは「適度な問題」がたくさんあって、「次はあれをやろう」というのが結構続きやすいとかがある。すぐ思いつくだけでも以下のようなものがそこそこの難易度かつ実用的に実装できる。

  • エレキー
  • オーディオピーキングフィルタ
  • USB インターフェイス

これは本来アマチュア無線をはじめるときに思っていた意図とは違うけど良かった。それと試験勉強のためにオームの法則から基礎をやりなおしたのも役に立っている。

この日記読みかえすとアマチュア無線周辺の問題意識から Chrome App でログツール作ったり、golang で SDR っぽいことしたりもしていて、今までやったことないことをはじめるきっかけとして多大に役に立ってる。

「勉強」できないエンジニアなので、適切な問題の供給がされないと学習が全くできない。これは基本的に非効率だけど、適切な問題さえあれば楽しいので無限に掘りさげて学習できる。きっかけを作るためのアマチュア無線というのは結構いいなと考えてる。

Raspberry Pi Model B+ (Plus) - Raspberry Pi

Raspberry Pi

3.0 / 5.0

第一級アマチュア無線技士試験問題集 (合格精選400題) - 吉川忠久

吉川忠久

3.0 / 5.0

基礎からよくわかる無線工学―第1級・第2級アマチュア無線技士国家試験準拠 - 吉川 忠久

吉川 忠久

3.0 / 5.0

Slack に Tiarra から接続する (SSL)

Slack 側の設定

チームアドミンの Gateways で Enable IRC gateway してもらう

Tiarra 側の設定

plain text を有効にしない場合 SSL のみになるので tiarra 側でも SSL の設定をする。Tiarra over SSL without stone に書かれている通りだけど、リリース版の tiarra はだいぶ古いっぽいので、最新のを svn でチェックアウトしてくる

$ svn co http://svn.coderepos.org/share/lang/perl/tiarra/trunk/ tiarra-head

IO::Socket::SSL を入れた perl を用意する (普通に開発してると入ってるけど、デフォルトでは入ってないっぽい)

/path/to/my/perl /path/to/tiarra-head/tiarra


で起動するように変える。

Tiarra の conf

networks に

name: xxxx-slack

を追加して設定を書く。設定は https://my.slack.com/account/gateway に書いてある。エンコーディング設定を忘れずに…

xxxx-slack {
    host: xxxx.irc.slack.com
    port: 6667 
    user: xxxx
    password: xxxxxxx
    in-encoding: utf8 
    out-encoding: utf8 

    ssl {
        version: sslv23
        ca-path: /etc/ssl/certs
    }    
}

ca-path は ubuntu の場合は上でいい (sudo apt-get install ca-certificates が必要)

まとめ

Tiarra は実行環境 (perl) アップデートしても Tiarra 自体をアップデートしても config 全く書きかえず使い続けられてやばい。10年以上普通に使ってる。

2014年 08月 29日

YAPC::Asia で「ウェブエンジニアのローレベルプログラミング」という発表をしました

ちょっと時間に対して話したいことが多すぎて、各分野での掘り下げが足りなかったとは思いますが、一通り下のほうまで盛りこみました。

電子工学について:自分は学校で電子工学を体系的に学んだことはありません。

YAPC 会期中はそこらへん歩いてます。

Raspberry Pi Model B+ (Plus) - Raspberry Pi

Raspberry Pi

3.0 / 5.0


アセンブリ関係

電子工作まわり

2014年 08月 26日

浄水器

クリンスイ 浄水器 蛇口直結型 MONOシリーズ メタリックボディ カートリッジ1個付き MD101-NC - 三菱ケミカル・クリンスイ

三菱ケミカル・クリンスイ

4.0 / 5.0

これ買った。クリンスイのボトルタイプを使ってたけど、めんどくさいので蛇口取り付け型を買ってみた。

ネットでいろいろ調べてみたけど、うちの水栓に対応しているか?が最後までわからなくて、かなり不親切な感じ。だいたいどのメーカーも同じなのかもしれないけど、水栓に詳しくないのでよくわからない。結局附属の部品だけでちゃんと取り付けられた。

味は明らかに違うので水飲む頻度が増える。蛇口直で即浄水された水が出るのは便利。

2014年 08月 25日

アンテナ位置の変更

今までエアコンの室外機や給湯器から1mも離れていないところにアンテナを建てていたので、一念発起して場所を少し移動した。といっても、ベランダが大変狭いので、最大 2.5m 程度しか離せない。

が、やってみたらエアコンや、室内の電子機器から入るノイズはだいぶ減ってくれた。あとなぜか7MHz帯の全体的なノイズがS1からS2(2分の1から4分の1) 減ってだいぶ聞きやすくなった

before:


after (FFT後にソフトウェアでゲインの補正を入れてあるので上記とちょっと違うけど):

アンテナの位置を変えるというのは、すなわち調整しなおしなので結構なダルさがある。マルチバンドモービルホイップなため

  • 全バンドでSWRがそれなりに下がるようにカウンターポイズを試行錯誤する
  • 全バンドで共振点が狙ったところになるようにエレメント長を調整する

だいたい2時間ぐらいでとりあえずいい感じにはなった。カウンターポイズ自体もエアコンの室外機になるべく近づけないようにした。

しかし一方で、18MHz 帯のノイズが増えて厳しい感じになった。どこから入ってるのか検討もつかないけど、自分の範囲外の環境雑音っぽくてかなり厳しい。

(下の画像で横に線が連続で入ってるのはOTHレーダーかな?だいぶうざいですね)