余白の書きなぐり

aueweのブログ

zshの右プロンプトにコマンド開始終了時刻を表示

コマンドの開始時刻と終了時刻を右プロンプトに表示したくなった。 $ 15:00:00 - # 15時00分00秒に sleep 30 を入力開始 $ sleep 30 15:00:00 - # 10秒掛けて sleep 30 と打ち込んだ $ sleep 30 15:00:00 - 15:00:10 # 15時00分10秒にエンターキー押した # 3…

世界のインク瓶の形状まとめ

今週の土日は家に引きこもり、世界各国のインク瓶の形状を調べていた。 下のテーブルで、日本からアメリカまでの各国の青黒系インク瓶の形状をまとめておいた。 各国の特徴をまとめると、 日本 … 丸や台形などシンプルな形状が多い。台形(プラチナ30mlやパイ…

万年筆用のPILOT製70mLインク瓶に関する発見

僕は今まで8年間、毎日PILOTの万年筆 CUSTOM743 でノートを取り、70mLのBBインク瓶を使い続けてきたのだが、今日重大な事実を発見した。 発見したこと CUSTOM743 の首軸を、 70mLインク瓶の奥の奥までブッ挿しても、ペン先が瓶底に到達しないことを発見した…

LaTeXでjpg挿入時に拡張子が大文字だとハマる

Windows7のC:/w32tex/…にインストールしたplatex+dvipdfmxを使っていたとき、 jpgだとセーフでJPGだとアウトだった。問題解決に一時間ぐらいかかったわ。 \documentclass[12pt,a4paper]{jreport} \usepackage[dvipdfmx]{graphicx} \begin{document} % セーフ…

Makefile文法ミニマム

自分用のメモとして、Makefileの文法で忘れがちな部分をまとめておく。 想定してるのは GNU make 4.2.1 で、Linux や Mac OS X で普通に make コマンドを叩いたときに走るやつだ。 FreeBSD や Solaris では gmake コマンドらしい。 Windowsでは http://gnuwi…

Makefileでソース、ヘッダファイルの依存関係を処理

大規模なC言語プログラムでは、ソースやヘッダファイルが複雑な依存関係を持つため、それらを自動解決してくれるMakefileが欲しくなる。 欲望を具体化すると ソース、ヘッダ、オブジェクトファイルは異なるディレクトリに入れたい 依存関係を認識し、更新す…

C言語からLAPACKのzheevを呼んでエルミート行列を対角化

昔書いた記事のコメントでzheevの使い方を書けと言われた。 なので書いた。僕は優しいなあ。 こういうのは他人が書いた記事を鵜呑みにするより、zheev.fでググってヒットする一次情報を見るほうがいいと思うよ。 Fortranが分からなくても普通に読めると思う…

sedでファイルの最終4行を消す処理について

結論から言うと、sedを使ったスマートな方法は無いので、headコマンドを使いましょう。 $ head -n -4 file # どうしてもsedを使いたければ $ cat file |sed -e '$d' |sed -e '$d' |sed -e '$d' |sed -e '$d' デマが蔓延している 以下のような$-3記法(そんなs…

vimのメモ取り環境

僕は全てのメモを「Gmailで自分宛てに送信」して記録している。 インストールログや便利なツールのメモ、数学のパズル、役所の手続きから買い物リストまで、何もかもをGmailに送信しているのだ。 リマインダもToDoリストも全てメール管理。 閲覧は主にスマホ…

vimをパイプにする

この記事は Vim Advent Calendar 2016 (その2) の3日目の記事です。 ノーマルモード以外をパイプとして使う際の情報を追記しました (2016/12/04) UNIXのテキスト処理 UNIXでテキストを自動整形する際、パイプ機能は欠かせない。 $ cat a.txt 1 hoge 2 piyo 3…

apache2でcgiがダウンロードされる時のチェック項目一覧

自鯖のhttp://hogehoge/piyo.cgi にアクセスしたとき、piyo.cgi が実行されず、なぜかダウンロードが始まる時のチェック項目一覧 AddHandlerしたか ? # httpd.conf AddHandler cgi-script .cgi AddTypeしたか? # httpd.conf AddType applications/x-httpd-cg…

さくらVPSのUbuntu LTS 14.04にSoftether-VPNをインストール

あちこちにインストール方法が書かれてるけど、少しハマったのでメモ。 まずsoftetherのウェブサイトからソースをダウンロードする $ uname -a # x86_64を確認。64bit用のインストーラーをダウンロードする $ mkdir vpninstall $ cd vpninstall $ wget http:…

Windows10でbashが公式サポートされたらしい

www.publickey1.jp これはすごいニュースやで。 今までmsys2でzsh使ってきたけど、これからはそういうトリッキーなことせずに済むらしい。 WindowsにおけるLaTeXやgit、sshの環境が根本的に変わる予感。

Haskellの型推論でハマった話

久しぶりにHaskellで遊んでたらハマったのでメモ。 100の階乗 100!=1*2*...*100 の桁数を求めるプログラムを書いた。 main = print $ kaijo 100 kaijo n = length $ show $ product [1..n] -- 158が表示される。 上記のプログラムは正しい値(158)を返すが、…

zshのプロンプトを256色にする方法

zshから256色を使う詳細については、以下のサイトの情熱がものすごい。 http://misc.flogisoft.com/bash/tip_colors_and_formatting しかし肝心のプロンプトの設定方法が載ってなかったので、ここにメモしておこう。 ~/.zshrcで以下のように記述する。 # 例1…

シェルスクリプトの平文パスワードをセキュアにする方法(続き)

この記事は、一年前に書いた シェルスクリプトの平文パスワードをセキュアにする方法 という記事の続きです。 なぜか今頃になって大量のはてブが付き、戦慄している次第です。 ブックマーカーのコメントには chmod 700 の平文パスワードファイルを読み込むの…

UNIXの設定ファイル中の平文パスワードを暗号化してセキュアにする方法

UNIX系の設定ファイルの中にパスワードを書くのは、あまりにインセキュアで躊躇われる。 たとえばCUIメーラーの雄 mutt で Gmail を使う場合、~/.muttrc に # ~/.muttrc for Gmail set imap_user = "YOUR.EMAIL@gmail.com" set imap_pass = "パスワード" set…

さくらVPSのUbuntu14.04LTS にRLogin でX11ログインする方法

ローカルのWindows7にXmingをインストール フリーのWindows用Xサーバー「Xming」のインストールと基本設定、使い方 や XmingによるX Window利用 に書かれているのと同じようにインストールする。 Putty をインストールする必要はない。 ローカルのWindows7で…

RLogin のフォント設定まとめ

RLogin はWindows環境における便利な端末エミュレータだ。 ただ残念なことに、デフォルトのフォントがキモいという問題がある。 そのうえフォントサイズの変更方法がわかりにくいので、まとめておこう。 フォントの種類の変更 半角アルファベットと記号のフ…

RLogin 端末の16色カラーがキモいのを直す方法

Windows で ssh サーバーにログインしたい時には、 Putty や TeraTerm といった 端末エミュレータを用いるのが一般的だが、 僕は RLogin という端末を常用している。 RLogin は Sixel が使えるなど様々な点で先進的で使いやすいのだが、使用者をあまり見かけ…

Gmailの外部アカウントのPOP3受信の遅延を無くす最強の方法

GmailはPOP3機能で外部アカウントのメールを受信できる。 しかしその更新間隔が長く、しばしば1時間以上の遅延が起きる。 GmailでのPOPアカウントの受信が遅いです Gmailの受信が遅延する 間違った対策 遅延対策としてあちこちのインターネットに書かれてい…

はてなブログの LaTeX 数式表示がデフォルトで MathJax 化された

2014/05/10 における数式記入法まとめ はてなブログに LaTeX で数式を書くには以下のようにします。 [tex:{ \displaystyle b_n = \sum_{m=0}^{N-1} a_m }] 結果↓ 数式は png画像ではなく MathJax で出力されるのでコピペ可能ですが、特に 数式をマウスで反転…

シェルスクリプトの平文パスワードをセキュアにする方法

追記: (2015/8/3) 大量のはてブが付いたので 続き を書きました。 sshを使用している人は文字列を手軽に暗号化・復号化できるという話。 このテクニックを使えば色々セキュアになるのでおすすめ。 今回はシェルスクリプト中の平文パスワードをセキュアに代替…

sshで多段接続 (ncも-Wもない人用)

sshで多段接続したい。多段接続について一番わかり易くまとまってるサイトは ncある限りぼくはどこまででもいけるッ! だと思う。ただ残念なことに、うちの環境には nc が入ってなかった。 $ ssh remote bash: nc: command not found ssh_exchange_identific…

http 接続できない環境で github から clone して neobundle を使う

http 接続できない環境で github にアクセスする方法を学んだのでメモ。 もし ssh接続が可能なら、githubからリポジトリをcloneできる。 そういう厳しい環境で neobundle を使う方法についてもメモ。 git clone できない悲しみ $ git clone http://github.co…

Linux Mint で sshd コマンドが見つからず困った話

Linux Mint では何故か sshd が ssh なので、ややこしいという話。 sshd のインストール $ sudo apt-get install openssh-server 設定ファイル sshd_config の場所 /etc/ssh/sshd_config sshdの再起動 $ sudo service ssh restart 普通は $ sudo /etc/init.d…

Linux Mint の TeX Live で画像挿入するノウハウ

Linux Mint の TeX Live 2013 で画像を挿入したいのに、 コンパイルエラーが出て困った(そして解決した)という話。 latexファイルの書き方 [改訂第6版]LaTeX2e 美文書作成入門の120ページや151ページによると、 以下のようにして画像を挿入するのが良いら…

quickrunで部分コンパイル (LaTeXが捗る)

Vim Advent Calendar 2013 の24日目の記事です。 昨日は @thincaさんの submode.vim で特定の条件の時だけ submode に入るでした。 さて今日は、昨日担当者のthincaさん作の quickrun というVimプラグインの、 hook/eval/template という機能を紹介します。 …

sshfsでリモートのディレクトリをマウント

リモートのデータをローカルにマウントする意義 多くの場合リモートの環境は貧弱で、そして解析すべき豊富なデータが眠っている。 一方ローカルの環境は最強だが、解析すべきデータは無い。 このミスマッチを解消するために、リモートの有用なディレクトリを…

はてなブログにLaTeXで数式を書く (Markdown記法用)

追記 2014/05/10 この記事は古いので、 はてなブログの LaTeX 数式表示がデフォルトで MathJax 化された を参照してください。 MathJaxを導入したら、はてなブログがMarkdown+LaTeXという夢の様な環境になって便利という話。 はてな記法で数式を書く 以前は…

C言語からLAPACKを呼んで逆行列を求める(LU分解する)

数値解析の授業で逆行列は求めちゃダメって言われたけど、気にしない気にしない。 実行列の逆行列を求める Fortranの DGETRF でLU分解した後、 DGETRI で逆行列を求める。 /* * hoge.c * SIZE*SIZE型の実行列の逆行列を計算 * 元の行列は * (2 3 ) * (1 0.5)…

Linux Mint にVim7.4をインストール

正式なaptリポジトリのVimはVer7.3で残念な感じだけど、ちょっと頑張ればVer7.4を入れることができる。 $ sudo add-apt-repository ppa:fcwu-tw/ppa $ sudo apt-get update $ sudo apt-get install vim これでインストールできる。簡単だった。バージョンの…

仮想環境のLinux MintにVmware Tools入れる時にkernel headersが見つからない問題

VMware Player にゲストOSとして Linux Mint を入れて、そこに VMware Tools をインストールするという話。 VMware Toolsを入れれば、仮想環境Windowを全画面にできるし、クリップボードが ホストOSとイケイケになるし、ディレクトリを共有できるし、かなり…

Python3の計算結果をGnuplotでグラフ化(subprocess Popenを使う)

ディスプレイにグラフを表示させる pythonからgnuplotを使う上で、これが最も簡単な方法。 from subprocess import call call( ["gnuplot", "-e", "plot sin(x); pause -1"]) qを押せばグラフは消える。 グラフをファイルに保存 gnuplotの設定は長くなるので…

シェルスクリプトからPython3に移行する人のために ~標準入出力・ファイル管理編~

環境変数の取得 # Python import os home = os.environ.get('HOME', "") カレントディレクトリのパスを取得 # Bash ... もともと $PWDに入っているが current_path=`pwd` # Python import os current_path = os.getcwd() # スクリプトのあるディレクトリの絶…

Python3の文字列について。%記法とformat()記法の対応関係

Python3では '%d'とか'%+5.3lf'のような記法は推奨されず、廃止される。 代わりにformat()を使う必要がある。 このような変更がなされた理由については、 Python 3.0 Hacks第6回 Pythonicな文字列フォーマットforamat()メソッド が分かりやすい。 高尚な理由…

Pythonで並列計算(Poolとmapを使う)

pythonで並列計算をしたいとき、Poolとmapを使うのが簡単だった。 C言語で並列計算して配列に格納する のと同じような感覚。 mapを使うのがカッコイイ。Haskellみたい。 簡単な例 twiceFuncという名の関数 f(x) = 2x に argList = [1,2,3] の各要素を並列に…

OpenMPで多重forループを並列化して配列に格納する方法

注意点 forループを並列化して配列に値を代入したい。 forループが一重の時は簡単だけど、 多重forループの場合には 内側から #pragma omp parralel forしないとバグる。 以下の正解とまちがいを見れば、よくわかる。 正解 // 内外共に #pragma omp する int…

Linux Mint はデフォルトで 7z 圧縮解凍できた

Linux Mintにはインストール時に7zrというコマンドが入ってて、 デフォルトで7z形式の圧縮と解凍が行える。 tar.gzとか使ってる場合じゃない。 圧縮 ディレクトリを圧縮してhoge.7zにしよう。普通の方法は $ 7zr a hoge.7z 圧縮したいディレクトリ名 サイズ…

LinuxMintにPyclewnを導入してgdbをVimで動かす

この記事はPyclewnのインストール記事です。 Windowsへのインストールは色々難しくて断念した。以前のバージョンは簡単にインストールできたみたいだけど、最近はうまくいかない。なのでLinuxMintに導入した。 VimShellでiexe gdbするのもいいけど、breakpoi…

OpenMPIで乱数を使う

普通の(並列計算でない)プログラムで乱数を使用する際に、 プログラムを実行するたびに異なる系列で擬似乱数を発生させるには seed に現在時刻を使用するのが一般的だ。 要するに srand((unsigned) time(NULL)); とすればよい。詳細は以下のページにまとまっ…

OpenMPI で配列をまとめる(2)

前回 とほとんど同じだけど、備忘録として。 やりたいこと プロセス数 allrank を 4 として、 各 myrank の配列 my_array[3] myrank == 0 ... my_array[3] = {0,4,8}; // 前回は{0,1,2}だった myrank == 1 ... my_array[3] = {1,5,9}; // 前回は{3,4,5}だっ…

OpenMPI で配列をまとめる

やりたいこと プロセス数 allrank を 4 として、 各 myrank の配列 my_array[3] myrank == 0 ... my_array[3] = {0,1,2}; myrank == 1 ... my_array[3] = {3,4,5}; myrank == 2 ... my_array[3] = {6,7,8}; myrank == 3 ... my_array[3] = {9,10,11}; をまと…

高速フーリエ変換ライブラリ fftw のインストールと使用法

インストール Linux(Ubuntu)への導入 インストール $ sudo apt-get install libfftw3-3 libfftw3-dev libfftw3-doc コンパイル方法 $ gcc hoge.c -lm -lfftw3 Windowsへの導入 fftwのwindows版インストーラのページから 32-bit version: fftw-3.3.3-dll32.zi…

UbuntuとMintにOpenMPIを導入

次の記事-OpenMPIの使い方について OpenMPIとOpenMPは別物だよ!!! どちらも並列処理のためのフレームワークだけど、 なんでわざわざ混乱を招く名前をつけるのかね。 両者の違いは 「MPIでは各プロセスが占有のメモリ領域を扱うのに対し、 OpenMPではメモ…

大学のレポート問題演習用のLaTeXプリアンブル

\subsectionが問1,問2 になり、 \subsubsectionが(1),(2) になる。 問2の3番目の式には (2.3) のようなタグが付く。 画像の挿入方法には色々宗派があるみたいなので、今回はあえて設定しなかった。 本名や学生証番号はタイトルの下で \flushright 等の環境を…

C言語で並列処理(OpenMP)

Windows(minGW), Mac, Linux のgcc(version 4.2以降)で動作確認済。 新しいライブラリ等をインストールすることなく、デフォルトのままのgccでコンパイルが通った。 こんなに手軽に並列計算できるなんてすごい。 ソースコード // hoge.c // 並列処理のプログ…

OsakaフォントをインストールしてGvimで使う

Vim

Osakaフォントのインストール方法 まずWindowsでOsakaフォントを使おう!に置いてあるOsaka.zipをダウンロードして解凍する。Osaka.ttcが得られる。 Windows 普通に Osaka.ttc をダブルクリックしてインストールする Mac OSX 普通に Osaka.ttc をダブルクリ…

ファイル名にupdateが含まれると管理者権限が要求される

fooupdatebar.exeなるファイルを作ってクリックすると怒られる。 このせいでバグが取れなかった。Windows はゴミ

シェルスクリプトに Gnuplot のコマンドを埋め込む方法

シェルスクリプトから数値計算プログラムを走らせて、 結果を Gnuplot するような場合に、 わざわざ表示用の Gnuplot スクリプトを別ファイルに準備するのが面倒くさい。 すべての処理を単一のシェルスクリプトファイルで済ませてしまいたい。そんな時のため…