日記」カテゴリーアーカイブ

Macのストレージを空けた (2)

関連:Macのストレージを空けた

またMacのSSDの空き容量が減ってきたので、なんとかする。

duコマンドでホームディレクトリ以下を検査して、容量を食っているやつをチェックする。

~/Library/Application Support/MobileSync/Backup/

20GBくらい。

こういうバックアップの類はなるべく消したくないタチなので、できれば外付けドライブとかに移したい。ググったらシンボリックリンクを貼れば良いというのが出てきたが、リンク先のドライブが接続されてない場合の挙動が心配である。

というわけで今回はパス。

~/Library/Developer/Xcode/

7.1GBくらい。

中でも、 iOS DeviceSupport というサブディレクトリが6.3GBほど食っているようである。

ググって調べたところ、新しいiOSデバイス、または新しいiOSの入ったデバイスを接続すると iOS DeviceSupport の中身が増殖するらしい。

$ rm -r 7.1.* 8.0.* 8.1.*

のようにして、最新のバージョン(8.4)以外を削除。

古いHaskell Platform

7.10.2を入れたので7.8.3には消えてもらう。手順は前の記事に書いた。

TeX界隈のロゴをHTML+CSSで

TeXのロゴは、真ん中の“E”の文字が下に下がっていて、2次元的になっている。プレーンテキストではこういうのが表現できないので“TeX”のように小文字で代用するわけだが、HTML文書でそんなことをするのは甘えである。

そこで、HTML+CSSでTeXのロゴを再現してみよう。(TeXのロゴよりもLaTeXの方が見た目を調整する要素が多いので、ここでは、LaTeXのロゴで行う)

案1

愚直に、AとEの位置をCSSのvertical-alignプロパティーでずらした。

表示例: LATEX

コード例(見やすいように改行とか空白とか使ってインデントしている)
[code lang=”html”]
<span style="font-family: serif;">
L
<span style="vertical-align: super;">
A
</span>
T
<span style="vertical-align: sub;">
E
</span>
X
</span>
[/code]

案2

なんか本物はAの文字が小さい気がする。font-size: smallerを指定しよう。

表示例:LATEX

[code lang=”html”]
<span style="font-family: serif;">
L
<span style="vertical-align: top; font-size: smaller;">
A
</span>
T
<span style="vertical-align: sub;">
E
</span>
X
</span>
[/code]

案3

本物は文字の間隔が詰まっている気がする。letter-spacingを指定しよう。letter-spacingの値は、検討の余地があるだろう。

表示例:LATEX

[code lang=”html”]
<span style="font-family: serif; letter-spacing: -0.1em;">
L
<span style="vertical-align: top; font-size: smaller;">
A
</span>
T
<span style="vertical-align: sub;">
E
</span>
X
</span>
[/code]

案4

最近のSafari、そして直近のFirefoxにはリーディングモードだかリーダーモードが搭載されている。このモードではサイト側で指定したCSSがだいたい無効になる。そうすると、案1〜案3で書いたLaTeXはすべて大文字の“LATEX”になってしまう。これは好ましくない。CSS無効の場合は“LaTeX”になってほしい。

そこで、HTMLとしてはAとEを小文字で書いておき、CSSのtext-transform: uppercaseで見た目を大文字にする。

表示例:LaTeX

[code lang=”html”]
<span style="font-family: serif; letter-spacing: -0.1em;">
L
<span style="vertical-align: top; font-size: smaller; text-transform: uppercase;">
a
</span>
T
<span style="vertical-align: sub; text-transform: uppercase;">
e
</span>
X
</span>
[/code]

ちなみに、この方式で書いた“LaTeX”ロゴをブラウザからコピペした場合、Safariだとすべて大文字で、FirefoxだとAとEが小文字でコピーされた。

おまけ:XeTeX

XeTeXとかいうやつは2文字目のEが反転している。最新のCSS技術を使えば、特定の文字を反転させるのもお手の物である。

表示例:XeTeX

[code lang=”html”]
<span style="font-family: serif; letter-spacing: -0.05em;">
X
<span style="vertical-align: sub; text-transform: uppercase; transform: scale(-1,1); -webkit-transform: scale(-1,1); display: inline-block;">
e
</span>
T
<span style="vertical-align: sub; text-transform: uppercase;">
e
</span>
X
</span>
[/code]

おまけ:WordPressで

このブログはWordPressで動かしているわけだが、LaTeXに言及するたびに長ったらしいHTMLを書き込むのはだるい。また、「以前はこういう書き方してたけどやっぱりこの書き方の方がいいな」となったときにいちいちLaTeXロゴを使っている記事を探して置換するのはだるい。

そこで、WordPressのテーマをいじって、本文中に [LaTeX-logo] と書けばそれがLaTeXロゴを表すHTMLに化けてくれるようにしよう。(こういう風に “[” “]” で囲むやつを、WordPress用語でshortcodeと言うらしい)

テーマのfunctions.phpに以下を書き込む。何をやっているかは、雰囲気でわかるだろう。

[code lang=”php”]
function tex_logo_shortcode() {
return "<span style=\"font-family: serif; letter-spacing: -0.1em;\">T<span style=\"vertical-align: sub; text-transform: uppercase;\">e</span>X</span>";
}
add_shortcode( ‘TeX-logo’, ‘tex_logo_shortcode’ );

function latex_logo_shortcode() {
return "<span style=\"font-family: serif; letter-spacing: -0.1em;\">L<span style=\"vertical-align: top; font-size: smaller; text-transform: uppercase;\">a</span>T<span style=\"vertical-align: sub; text-transform: uppercase;\">e</span>X</span>";
}
add_shortcode( ‘LaTeX-logo’, ‘latex_logo_shortcode’ );

function XeTeX_logo_shortcode() {
return "<span style=\"font-family:serif;letter-spacing:-0.05em;\">X<span style=\"vertical-align:sub;text-transform: uppercase;transform:scale(-1,1);-webkit-transform:scale(-1,1);display:inline-block;\">e</span>T<span style=\"vertical-align:sub;text-transform: uppercase;\">e</span>X</span>";
}
add_shortcode( ‘XeTeX-logo’, ‘XeTeX_logo_shortcode’ );

function xypic_logo_shortcode() {
return "<span style=\"font-family: serif;\"><span style=\"letter-spacing: -0.2em;\">X<span style=\"vertical-align: sub; text-transform: uppercase;\">y</span></span>-pic</span>";
}
add_shortcode( ‘xypic-logo’, ‘xypic_logo_shortcode’ );
[/code]

真面目にやるなら

この記事ではなんとな〜くノリでロゴの見た目を調整したが、真面目にやるならTeXでの \TeX コマンドの定義を見て文字の大きさとか位置を調整するべきだろう。

ググったらそういうことをやっている人がいたのでリンクを貼っておく。

Xy-picとdvisvgm

LaTeXで図式を書くのに、Xy-picというパッケージがある。このパッケージで書いた図式を、dvisvgmコマンドでSVG形式に変換しようという話。

大まかな流れ:

  1. Xy-picで作った図式を含むLaTeXソースをコンパイルしてDVIファイルを作る。
  2. DVIファイルをdvisvgmコマンドでSVG形式に変換する。

今回ハマったポイント(結論):

  • Xy-picにはPostScriptやPDFなどのバックエンド(ドライバー)を指定しよう。
  • dvisvgmに--no-fontsを指定することでSVGファイルの文字を正しく表示できるようになる。

以下、結論に至るまでの過程: 続きを読む

Macの受信メールから自動でリマインダーを作成する

何日までに○○しなさいというメールが届いた!けどほったらかしておいたら期限を過ぎていた!そういう経験、あるよね?

library-mailそこで、そういうメールが届いたら自動でMacの「リマインダー」に登録されるようにしよう!という話。
続きを読む

豊穣圏の教科書

最近、豊穣圏(enriched category)という概念に触れることがあって、それの標準的な教科書って何かなあと思ったら、G.M.Kelly “Basic Concepts of Enriched Category Theory”というのがそれっぽくて、しかも無料でPDFをダウンロードできるらしい。

MacLaneのCWMには豊穣圏の名前といくつかの例は出てくるけどちゃんとした定義は出てこない。まあ、ちゃんとした定義を書こうとするとモノイド圏(monoidal category)の定義をしてうんたらしないといけないようだが。

豊穣圏というのは(今の自分の理解で)大雑把に言うと、圏のhom-setに単なる「集まり」以上の構造が入ったものである。例えば、加群の圏には、それぞれのhom-setにアーベル群の構造が入っているので、アーベル群の圏 Ab でenrichされた圏の例となっている。

別の例を挙げると、各hom-setにゼロ射が入っている圏は、それぞれのhom-setに点つき集合の構造(ゼロ射が基点)が入っているとみなせる。つまり、ゼロ射を持つ圏は、点つき集合の圏 Set* でenrichされた圏と言える。

各hom-setに構造が入っていればいいというものではなくて、Ab-enriched categoryだと射の合成が双線形、Set*-enriched categoryだとゼロ射(hom-setの基点)を合成するとゼロ射、という風に、合成の方にも条件が付いてくる。この辺の条件を表現するのに、モノイド圏の構造が必要になる。

ガンマ関数の計算(Lanczos近似)

ガンマ関数とは、みなさんおなじみの、

  • \(\Gamma(z+1)=z\Gamma(z),\)
  • \(\Gamma(1)=1,\)
  • \(x>0\) に対し \(\log\Gamma(x)\)は凸

を満たす \(\def\Complex{\mathbf{C}}\Complex\) 上の有理型関数である。\(\DeclareMathOperator\Re{Re}\Re z>0\) に対しては、以下の積分表示がある。\[
\Gamma(z)=\int_0^\infty t^{z-1}e^{-t}dt
\]

階乗 \(n!\) との関係は\[
n!=\Gamma(n+1)
\]となる。

重要な公式としては、反転公式\[
\Gamma(1-z)\Gamma(z)=\frac{\pi}{\sin\pi z}
\]がある。特に、\(z=\frac{1}{2}\) とおけば \(\Gamma\left(\frac{1}{2}\right)=\sqrt{\pi}\) が得られる。

さて、コンピューターでガンマ関数の値を数値的に計算するにはどうすればいいのか。指数関数とか三角関数だとかは分かりやすい冪級数表示があったから良かったが、ガンマ関数にはそういうのはないのか。

いろいろググって調べた結果、ガンマ関数の近似方法として、Lanczos近似というのがあるらしい。が、ググっているだけではいまいちその実体が釈然としないし、導出方法もよくわからない。なので、Lanczosの原論文(1964)を読むことにした。大学院生という身分は便利なもので、大学の図書館でその論文にアクセスできた。

続きを読む

Aterm MR03LNを買った

半年前から、外出先でインターネットに接続するためにIIJmioのMVNO回線とPocket WiFiの端末(GL02P)を使っていたが、このGL02Pは2年使った後なので電池が死んでいて、しかも元々イーモバイル用の端末だから、NTTドコモの一部の周波数帯に対応していない。

じゃあ新しいモバイルルーターを買おう!となるのだが、GL02P+モバイルバッテリーでも最低限には使えるし、代わりのモバイルルーター(自分の中で)第一候補のAterm MR03LNの価格が2万3千円ほどするので、なかなか買うタイミングが見つからなかった。

しかし、数日前(24日)にAterm MR03LNの価格を調べたらAmazonでタイムセールをやっていて、1万5千円と安くなっていたので、迷わずポチってしまった。しかもクレードル付き。(OCNモバイルONEのSIMとのセットだが、そっちのSIMは無視するものとする)(この記事を書いている現在は価格は元に戻ってしまったようだ)

Aterm MR03LNの製品情報はAtermMR03LN | 製品一覧 | AtermStationで見られる。自分が重視したポイントは、

  • LTE対応。(今じゃ当たり前か)
  • FOMAプラスエリアや、LTEの800MHz帯にも対応。
  • Bluetoothテザリング(PAN)に対応。(Wi-Fiより低速だが消費電力が低い)(ただ、ネットで評判を見るとそこまで期待してはいけない?)
  • IPv6対応。(IIJmioのSIMと組み合わせるとIPv6でインターネットに繋がる)

あたりか。

以下のアプリを使うと、このモバイルルーターの電波状態・バッテリー残量等を確認できる。

それから、休止状態にしたMR03LNをスマートフォンやタブレットのアプリで「リモート起動」できるようだ。しかし、「MR03LNのリモート起動」と「スマートフォン・タブレットからのWi-Fi/Bluetoothでの接続」が連携する訳ではないので、ないよりマシとはいえ、使い勝手はそこまで良くないか。(「リモート起動」した後、スマートフォン・タブレットでMR03LNに接続するまでの間、アプリからは何も操作できない状態になる)

以下、パッケージの写真。

本体、電池パック、裏蓋とクレードルの他に、ACアダプターとUSBケーブルとLANケーブルが付属するが、これらは手持ちのものを使うつもりなので、多分開封しないだろう。

そろそろ、携帯機器に付属するACアダプターとUSBケーブルが、「プリンターに付属するUSBケーブル」のポジションになっている気がするが、付属をやめる動きはないのだろうか。(Nexus 7を買った時のACアダプターとUSBケーブルも封印したままな気がする)

クレードルに装着。クレードルにはLAN端子があって、MR03LNをルーターとして使えるらしい。本体のUSB端子でパソコンにつなぐとパソコンからはネットワークインターフェースに見えるようだが、クレードルのUSB端子ではそういうのはできないようだ。充電用に「ケーブルを差す」よりは「クレードルに置く」方が楽だ。


Pocket Wifi (GL02P)と並べてみた。

MR03LNの方が縦横が大きいが、薄い。重量はそれほど変わらないが、気持ちMR03LNの方が軽い。

GL02Pにはイーモバイル時代を含めて2年半お世話になったが、これでお役御免だ。

東大入試理系数学2015第5問(解いてみた)

暇だったから[要出典]今年の東大の入試問題数学の問題に目を通してみた。問題文はこのへんこのへんで参照できるようだ。

ツイッターでの評判を見る感じ、第5問と第6問が話題になっていて、第5問は整数問題、第6問は(大学の)解析学で出てくる概念に関係あるみたいな感じだった。第5問のが問題文が短い(問題文が長いと読むのが面倒くさい)のでとりあえず第5問を解いてみる。

続きを読む

Macのストレージを空けた

今使っているMacはMacBook Proの256GBフラッシュストレージモデルで、いくらでもファイルを保存できるという感じではない。購入から1年近く経った今、90%以上の領域を使ってしまっている。そこで、使用頻度の低いファイルを外付けHDDに追い出したり、使わなくなった古いバージョンのソフトウエアを積極的に削除していくということが必要になる。

Haskell Platform

~/Library/Haskell 以下にいろいろ入っている。
$ du -h -d 2 Library/Haskell で調べた感じ、古いGHC 7.6.3が1.3GBほど占めているようだった。なので古いGHCを消す。
手順はMac OS X – HaskellWikiをみた限りでは uninstall-hs コマンドを使えばいいらしい。

$ du -h -d 2 Library/Haskell
144K	Library/Haskell/bin
 26M	Library/Haskell/doc
1.3G	Library/Haskell/ghc-7.6.3/lib
1.3G	Library/Haskell/ghc-7.6.3
3.2G	Library/Haskell/ghc-7.8.3/lib
3.2G	Library/Haskell/ghc-7.8.3
188K	Library/Haskell/logs
203M	Library/Haskell/repo-cache/hackage.haskell.org
156M	Library/Haskell/repo-cache/hdiff.luite.com
359M	Library/Haskell/repo-cache
4.9G	Library/Haskell
$ uninstall-hs -v
-- Versions found on this system

7.6.3
    /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64
    /Library/Haskell/ghc-7.6.3
    /Users/*/.ghc/x86_64-darwin-7.6.3
    /Users/*/Library/Haskell/ghc-7.6.3

7.8.3
    /Library/Frameworks/GHC.framework/Versions/7.8.3-x86_64
    /Library/Haskell/ghc-7.8.3
    /Library/Haskell/ghc-7.8.3-x86_64
    /Users/*/.ghc/x86_64-darwin-7.8.3
    /Users/*/Library/Haskell/ghc-7.8.3

-- To remove a version and all earlier: uninstall-hs thru VERSION
-- To remove only a single version:     uninstall-hs only VERSION

$ uninstall-hs only 7.6.3
-- Would remove just version 7.6.3
/Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64
/Library/Haskell/ghc-7.6.3
/Users/*/.ghc/x86_64-darwin-7.6.3
/Users/*/Library/Haskell/ghc-7.6.3
/Users/*/Library/Haskell/bin/cpphs@ -> ../ghc-7.6.3/lib/cpphs-1.18.4/bin/cpphs
/usr/bin/ghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghc-7.6.3
/usr/bin/ghc-pkg-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghc-pkg-7.6.3
/usr/bin/ghci-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghci-7.6.3
/usr/bin/haddock-ghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/haddock-ghc-7.6.3
/usr/bin/runghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/runghc-7.6.3
-- To actually remove these files, sudo run the command again with --remove
-- To generate a script to remove these files, run the command again with --script

$ sudo uninstall-hs only --remove 7.6.3
Password:
-- Removing just version 7.6.3

そもそも今インストールされているGHC 7.8.3も最新版じゃないという気がするが。

TeX Live (MacTeX)

古いTeX Live 2013が入っていたので消す。確かMacTeXで入れたような気がするので、このへんを読んでおく。普通に /usr/local/texlive/2013 を消せばいいみたい。

$ du -d 1 -h /usr/local/texlive
4.4G	/usr/local/texlive/2013
4.5G	/usr/local/texlive/2014
4.0K	/usr/local/texlive/texmf-local
8.9G	/usr/local/texlive
$ sudo rm -rf /usr/local/texlive/2013

その他

Homebrewで入っている古いソフトウエアを消したりMacPortsで入っている古いソフトウエアを消したり、Dropboxで同期しているでかくて使用頻度の低いファイルを同期しないようにしたりいろいろ

TeXを勉強したい

LaTeXではない方の)plain TeXを勉強すべしという電波を受信したので、勉強しようと思った。

じゃあ何を読んで勉強しようかという話だが、TeX Wiki内のTeX入門/マクロの作成 – TeX Wikiというページが入門として良さそうだった。

もうちょっとまじめに勉強しようとなると、TeXの本 – TeX Wikiの下の方にある

あたりを読むと良さそう。