feat: use hexo

This commit is contained in:
2021-01-21 21:45:05 +09:00
parent 2d93c3d6ca
commit 039bac5e09
185 changed files with 2400 additions and 2575 deletions

View File

@@ -0,0 +1,155 @@
---
title: Essentials for New MacBook
date: 2016-01-24 09:00:00 +09:00
redirect_from: "/blog/2016/01/24/essentials-for-new-macbook"
---
![](/uploads/essentials-for-new-macbook-spec.png)
新しい MacBook を買ったので、普段使っているアプリの整理も兼ねて、幾つかポリシーを決めてセットアップすることにしました。
## 1. シンプル
インストールするアプリは最低限必要なものにしました。コンパクトにまとめると気持ちがいいですし、常駐するアプリを増やしてもバッテリーに悪いです。
## 2. デフォルト重視
なるべくデフォルトで用意されているものを使います。カスタマイズも OS X 標準機能の範囲内で行います。
# 使っているアプリ
## [Homebrew](http://brew.sh)
OS X 向けのパッケージマネージャーです。
## Atom
Sublime Text も良いのですが、やはりターミナルや Git が一画面で使えるのは MacBook のフルスクリーンアプリに合っています。
## LaunchControl
`launchctl`の GUI 版です。変な Agent が差し込まれていることがあるので、たまにチェックしています。
## [Papers](http://papersapp.com/mac/)
論文を管理するためのアプリです。これがベストと言えるわけではないですが、数ある中では一番使えます。
## [Typora](http://www.typora.io)
![](/uploads/essentials-for-new-macbook-typora.png)
これまで様々な Markdown エディタを試してきましたが、どれもエディタとプレビューが分離している UI を採用しており、それが私には不合理に思えて仕方がありませんでした。
Typora は入力した記法がリアルタイムに反映されるので直感的に文章を書くことが出来ます。 加えて Github Flavored Markdown、MathJax、Mermaid などのシーケンス図に対応しており、何気にニッチな需要を攻めている、小粋なアプリです。
## [⌘ 英かな](https://ei-kana.appspot.com)
US 配列キーボードの左右 ⌘ を英かなに割り振ることが出来るアプリです。実装がシンプルで軽量です。アイコンをデザインして Pull-request を送ったらマージしてくれました。
## [Paw](https://paw.cloud/)
Web API を作りたい時に使えます。無くても困りませんが、あると便利です。
## [Dash](https://kapeli.com/dash)
API ドキュメントを素早く検索出来るアプリです。
無いと困るようなアプリではありませんが、遅い Wi-Fi に繋いでいる場合でも素早くドキュメントを閲覧できるので外で作業するならあると便利でしょう。
## [Tower](http://www.git-tower.com)
Git の GUI クライアントです。
> より軽量なクライアントの[GitUp](http://gitup.co)も気になっています。
## [Google Chrome](https://www.google.com/chrome/browser/desktop/index.html)
普段は Safari を使っていますが、Chrome でしか動かない前時代的な Web サービスを使う時や、Web アプリケーションをデバッグする時のために入れました。
## Xcode
iOS アプリを作るときに必要なので入れました。
gcc や Git など、基本的なビルドツールチェインが必要な場合、Xcode をインストールする代わりに `sudo xcode-select —install` でそれらを導入できます。
## [ForkLift 3](http://www.binarynights.com/forklift/)
SFTP サーバーや S3 に接続するためのアプリです。接続したサーバーのディレクトリを Finder にマウントする機能があるので、ローカルで普通にファイルを扱う感覚でリモートのファイルをやりとり出来ます。Transmit から乗り換えました。
## [Kaleidoscope](http://www.kaleidoscopeapp.com)
さすがに標準の FileMerge だと機能不足が否めないので。
## [Sketch](https://www.sketchapp.com)
Bohemian Coding が開発しているベクターデザインツールです。アイコンや UI をデザインする時に使っています。
## RightFont
フォント管理アプリです。FontCase、FontExplorer X Pro などを使ってきましたが、今はこれに落ち着いています。Google Fonts や TypeKit に対応しており、またアイコンフォントを一覧できる機能が便利です。
## Adobe Creative Cloud
Affinity シリーズに乗り換えたので、今は Illustrator と TypeKit を使うために入れています。
## [Dropbox](https://www.dropbox.com)
ファイルの同期が出来ます。iCloud Drive も検討しましたが、削除したデータの復活に手間取るので見送りました。
## 1Password
パスワードマネージャーです。2 要素認証のトークンもまとめて管理できます。
## f.lux
iOS の Night Shift を macOS に持ってきたようなアプリです。長時間の作業でも目が痛くなりません。
## Reeder
RSS リーダーです。Feedly Web 版でも良いですが、Readability 機能が便利なので使っています。
## [AppCleaner](https://freemacsoft.net/appcleaner/)
アプリを設定ファイルごとまとめて消せます。潔癖性なので、これが無いと不安にな李ます。
## [Pocket](https://getpocket.com)
「あとで読む」を管理するためのアプリです。Reading List でもいいと思うので好みですね。
## [TripMode](https://www.tripmode.ch)
通信出来るアプリを個別に許可できます。外出先でテザリングをする際に TripMode があれば、データ制限を気にせずインターネット接続ができるので便利です。
# 導入を見送ったもの
## [Clear](http://realmacsoftware.com/clear/)
タスク管理アプリ。標準の Reminders.app に移行しました。
## [Evernote](https://evernote.com/intl/jp/)
Notes.app に移行しました。
## Flash
ニコニコ動画が見れなくなるので泣く泣く導入していましたが、公式で HTML5 に対応したので不要になりました。
## [VirtualBox](https://www.virtualbox.org)
仮想環境を構築するためのアプリです。[Docker Machine](https://docs.docker.com/machine/)と組み合わせていましたが、Docker for Mac の登場によって不要になりました。
## Karabiner
US 配列キーボードの Command キーを英かなに振り分けるため、Karabiner を使っていましたが、よりシンプルで軽量な[⌘ 英かな](https://ei-kana.appspot.com)に移行しました。
## Seil
US 配列の caps lock キーを Ctrl キーへ変更するために使っていましたが、いつからか macOS 標準で出来るようになっていたので不要になりました。
## Google 日本語入力
最近の OS 標準の IM に搭載されているライブ変換機能が優秀なので、あえてサードパーティの IM を入れる必要性がなくなりました。
## Alfred
便利そうなワークフローを色々入れても、実際に使う頻度はあまり高くないことに気がつき、この際なので Spotlight に切り替えました。

View File

@@ -0,0 +1,23 @@
---
title: Polyglot Extension for Safari
date: 2016-02-11 09:00:00 +09:00
redirect_from: "/blog/2016/02/11/polyglot-extension-for-safari"
---
![](http://uechi-public.s3.amazonaws.com/github/Polyglot/header.png)
選択したテキストを翻訳できる Safari Extension を作った。[Polyglot](https://github.com/uetchy/Polyglot) を使えば、選択した文章や、フォームに入力したテキストをその場で好きな言語に翻訳してみせることが出来る。
![](http://uechi-public.s3.amazonaws.com/github/Polyglot/screencast1.gif)
この Extension は **Google Translate API** を使っている。だからこれを Safari で使うためには、まず Google Cloud Platform から API キーを手に入れなくてはならない。その手続きは少しばかり面倒なので、[スクリーンショット付きのガイド](https://github.com/uetchy/Polyglot/wiki/How-to-obtain-Google-Cloud-Platform-API-key)を作った。
## Inside Safari Extension
技術的に特段おもしろいことをしているわけではない。ES2015 でコードを書き、webpack と babel を使って Extension 向けにトランスパイルしている。意外だったのは、Safari Extension の構造が Google Chrome 拡張機能のそれとよく似ていたことだ。これならば Chrome 開発者でも容易に Safari Extension を作れるだろう。
## プラットフォーム間の差異を無くすには
プログラミング言語 Python は、大きく Python 2 と Python 3 の二つのバージョンに分かれている。双方に互換性は無く、Python 3 で書かれたコードが Python 2 では動かない。しかし、six (ネーミングは 2 × 3 ?)というライブラリを使うことで、バージョン間の差異をライブラリが吸収し、同じコードベースを両方のバージョンで動かすことが出来る。
これと同じように、Safari と Google Chrome の拡張機能の仕様の違いを吸収してくれるライブラリがあれば、Safari Extension 界隈も賑やかになるのではないか。

View File

@@ -0,0 +1,108 @@
---
title: ステアラボ人工知能セミナー#2 メモ
date: 2016-05-26 09:00:00 +09:00
redirect_from: "/blog/2016/05/26/stairlab-aiseminar-2-memo"
---
走り書きです。
<https://stairlab.doorkeeper.jp/events/44958>
> 第 2 回目の今回は、機械学習の研究者で、トピックモデル (機械学習プロフェッショナルシリーズ)の著者でもある、NTT コミュニケーション科学基礎研究所の[岩田具治](http://www.kecl.ntt.co.jp/as/members/iwata/index-j.html)先生をお招きし、「教師なしオブジェクトマッチング」というタイトルで、先生の最近の研究について講演していただきます。
- 教師なし学習
- PCA が主流
- t-SNE で次元削減してプロット
- 教師ありオブジェクトマッチング
- 異なるドメインに含まれる事例間の対応を見つけるタスク
- [正準相関分析](http://ibisforest.org/index.php?正準相関分析)
- 正解対応データが低次元潜在空間で同じ位置に埋め込まれるよう、線形写像を学習する
- テスト時には、低次元潜在空間上で近くに配置されたデータが類似していると判定する
- 問題点
- 対応データが必要(対訳等)
- 対応データが入手困難・不可能な状況もある
- プライバシーの保護
- データの入手目的や方法が異なる
- 人手による対応付けコストが高い
- 教師なしオブジェクトマッチング
- ドメイン間のオブジェクトの距離は測れない
- ドメイン内のオブジェクト間の距離の相対的な関係を見てマッチングする
- 教師なしクラスタマッチング
- 異なるドメイン間のクラスタの対応を教師なしで見つける
- 提案 : 教師なしクラスタマッチングのための潜在変数モデル
1. 各ドメインのデータを共通の低次元潜在空間へ埋め込む
2. 潜在空間でクラスタリング
3. 同じクラスタになったオブジェクトが対応
- 確率的生成モデルによるクラスタリング
- データが生成される過程を確率を用いて定義
- 実際にはデータが与えられる
- データを生成したもっともらしいクラスタを推論
- 利点
- 不確実性を考慮できる
- 確率論の枠組みで異種データを統合できる
- 混合定期分布によるクラスタリング
- k-means の確率版
- 生成過程
- クラスタ毎の平均は $\{\mu_1, \mu_2, … \mu_k\}$
- For オブジェクト $n = 1, …, N$
- クラスタ割り当てを決める$S_n \sim Categorical(\theta)$
- 教師なしクラスタマッチング生成モデル
- [無限混合正規分布](http://www.nejicolab.com/akip/?p=160)
`$$ p(X_{dn}|Z,W,\theta) = \sum^\infty_{j=1}{\theta_j N(x_{dn}|W_d z_j, \alpha^{-1} I)} $$`
- 特徴
- ディリクレ過程を用いて無限個のクラスタを想定
- 異なるドメインのオブジェクトを共通のクラスタに割り当てできる
- ドメイン毎に異なる特徴次元や統計的性質を考慮できる
- ドメイン毎に異なるオブジェクト数でも良い
- 確率的 EM アルゴリズム
- E ステップ : クラスタ割り当て s を gibbs サンプリング
- M ステップ : 写像行列 W を最尤推定
- 潜在ベクトル z、クラスタ割り当て$\theta$、精度$\alpha$は解析的に積分消去
- [Adjusted Rand index](http://y-uti.hatenablog.jp/entry/2014/01/19/133936) (高いほど良い)
- 反教師あり
- 少数の対応データが得られる場合もある
- E ステップで対応データは必ず同じクラスタに割り当てられるとする
- 結論
- 教師なしクラスタマッチング手法を提案
- 対応データ不要
- 多ドメイン、多対多、任意のオブジェクト数に対応
## ネットワークデータのための教師なしクラスタマッチング
- Find correspondence between clusters in multiple networks without node correspondence
- ReMatch
- based on [Infinite Relational Models](http://qiita.com/takuti/items/8faf0e686cfbe68c2dfa) (IRM)
- is IRM with a combined matrix
- Rivals
- IRM+KS
- KS
- MMLVM
- AUC: abbr. Area Under the Curve
## 他言語文書データからの普遍文法の抽出
- Languages share certain common properties
- word order in most European language is SVO
- Extract a common grammar from multilingual corpora
- Hierarchical Bayesian modeling
- Probabilistic(Stochastic) context-free grammar (PCFG, SCFG) = 確率文脈自由文法
## 質疑応答
- トピックモデルよりも、一度ネットワークに落とし込んだ方が精度は良い

View File

@@ -0,0 +1,38 @@
---
title: CUDA on macOS
date: 2016-10-15 09:00:00 +09:00
redirect_from: "/blog/2016/10/15/cuda-on-macos"
---
Install TensorFlow with CUDA 8.0 + cuDNN 5.1 support on macOS.
All instructions are based on [TensorFlow Get Started](https://www.tensorflow.org/get_started/os_setup).
# Install CUDA and cuDNN
{% gist 568d86da5ce555e9bc6618f59391f9cd 01_install_cuda_cudnn.sh %}
You also need to add this line to your shell config.
```bash
export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"
```
and build deviceQuery as test your environment.
```bash
cd /usr/local/cuda/samples/
make -C 1_Utilities/deviceQuery
./bin/x86_64/darwin/release/deviceQuery
```
# Install TensorFlow
## Install from pip
{% gist 568d86da5ce555e9bc6618f59391f9cd 02_install_tensorflow.sh %}
## Build from source
{% gist 568d86da5ce555e9bc6618f59391f9cd 03_build_tensorflow.sh %}