サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
auewe.hatenablog.com
この記事は Vim Advent Calendar 2016 (その2) の3日目の記事です。 ノーマルモード以外をパイプとして使う際の情報を追記しました (2016/12/04) UNIXのテキスト処理 UNIXでテキストを自動整形する際、パイプ機能は欠かせない。 $ cat a.txt 1 hoge 2 piyo 3 fuga $ cat a.txt |sed 's/piyo/foo/' |grep '2' 2 foo シェル上で | というパイプ記号を使ってコマンドを次々繋げることで、複雑なテキスト処理をこなすわけだ。 パイプは便利だが、テキストエディタをパイプとして使う人はあまり見かけない。 テキストエディタ=対話的 という常識があるため、パイプのような自動処理とは相性が悪いと思われているのだろう。 しかし今日はあえて、シェルスクリプトやワンライナーの中にvimを埋め込み、パイプと
Windows(minGW), Mac, Linux のgcc(version 4.2以降)で動作確認済。 新しいライブラリ等をインストールすることなく、デフォルトのままのgccでコンパイルが通った。 こんなに手軽に並列計算できるなんてすごい。 ソースコード // hoge.c // 並列処理のプログラム // Windows, Mac, Linux の全ての gcc (4.2以降) で本プログラム動作確認済 #include <stdio.h> #include <omp.h> int main(int argc, char const* argv[]) { int n; n = omp_get_max_threads(); // デフォルドのスレッド数を取得 printf("max threads (default): %d\n",n); omp_set_num_threads(16)
ローカルのWindows7にXmingをインストール フリーのWindows用Xサーバー「Xming」のインストールと基本設定、使い方 や XmingによるX Window利用 に書かれているのと同じようにインストールする。 Putty をインストールする必要はない。 ローカルのWindows7でXmingを起動 C:\Program Files (x86)\Xming\Xming.exe で起動する。設定は C:\Program Files (x86)\Xming\XLaunch.exe で変更可能。 画面サイズは XLaunch.exe の Additional Parameters for Xming に -screen 0 1366 1024 などと設定する。 さくらVPSのUbuntuにX11をインストール $ sudo su # apt-get install xinit #
Windows で ssh サーバーにログインしたい時には、 Putty や TeraTerm といった 端末エミュレータを用いるのが一般的だが、 僕は RLogin という端末を常用している。 RLogin は Sixel が使えるなど様々な点で先進的で使いやすいのだが、使用者をあまり見かけないのはなぜだろうか。 そんなハッピーな RLogin の抱える問題点として デフォルトの16色カラーがキモい ことが挙げられる。 なんというか視認性が悪い気がする。 他にも初期設定のフォントやフォントサイズが不満であるものの、 とりあえず今回は色設定を見直そう。 色設定を変更するには、 ファイル-サーバーの接続-新規or編集 をクリックし、カラー タブを選択する。 端末を黒背景 + 白文字にするには、 文字カラーの文字色を 15 文字カラーの背景色を 0 にすればよい。 メジャーな端末の色を再現する
この記事は、一年前に書いた シェルスクリプトの平文パスワードをセキュアにする方法 という記事の続きです。 なぜか今頃になって大量のはてブが付き、戦慄している次第です。 ブックマーカーのコメントには chmod 700 の平文パスワードファイルを読み込むのと大差なくね。 秘密鍵を使う方法は環境固定なのがイヤ。 GitHub でシェルスクリプト共有するときに便利そう。 といった指摘が並んでいました。せっかくなので、少し補足します。 chmod 700 の平文パスワードファイルを読み込むのと大差なくね。 確かにその通りですね。 暗号化したパスワードファイルが盗まれる状況では、sshの秘密鍵も一緒に盗まれそうです。 そう考えると、平文のパスワードを外部ファイルに保存してパーミションを700に設定するのと、本質的に同程度のセキュリティしか担保されていません。 この問題を解決するのは簡単です。 ssh
UNIX系の設定ファイルの中にパスワードを書くのは、あまりにインセキュアで躊躇われる。 たとえばCUIメーラーの雄 mutt で Gmail を使う場合、~/.muttrc に # ~/.muttrc for Gmail set imap_user = "[email protected]" set imap_pass = "パスワード" set smtp_url = "smtp://[email protected]:587/" set smtp_pass = "パスワード" といった具合にパスワードを書く必要がある。 参考: brew - mutt + Gmailを使ってCUIでのメール環境を作る - Qiita いくらなんでもセキュリティ的にアレすぎるので、平文のパスワードを暗号化してセキュアにしよう。 大抵のUNIXの設定ファイルには、外部ファイルを読み込む
インストール 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.zipをダウンロードした。 64bit環境なら64-bit version: fftw-3.3.3-dll64.zipの方が良いかも。 zipファイルを解凍すると、20種類ぐらいのファイルが生成される。その中に fftw3.h (C:\path\to\fftw3.hに置いたとする) libfftw3-3.dll (C:\path\to\libfftw3-3.dllに置いたとする) の2つがある。この2つの
GmailはPOP3機能で外部アカウントのメールを受信できる。 しかしその更新間隔が長く、しばしば1時間以上の遅延が起きる。 GmailでのPOPアカウントの受信が遅いです Gmailの受信が遅延する 間違った対策 遅延対策としてあちこちのインターネットに書かれているのが メールを今すぐ確認するボタンを手動クリック という、あまりに原始的な方法。 GmailでPOPアカウントの遅延を改善した~い! Gmailの何故か遅いPOPを素早く一発で受信する これは根本的な解決になっていない。 外部アカウントがメールを受信すれば即座にGmailに反映されて欲しいわけだが、 この方法で受信間隔を短くするには、人間がPCの前で待機して メールを今すぐ確認するボタンを定期的に押さねばならないからだ。 要するに手動でPOP3してるようじゃ、遅延は解消できない。 最強の方法 → GMail POP3 Chec
Osakaフォントのインストール方法 まずWindowsでOsakaフォントを使おう!に置いてあるOsaka.zipをダウンロードして解凍する。Osaka.ttcが得られる。 Windows 普通に Osaka.ttc をダブルクリックしてインストールする Mac OSX 普通に Osaka.ttc をダブルクリックしてインストールする Linux (Mint, Ubuntu) 普通にダブルクリックでインストールを試みるも、「インストールに失敗しました」などと表示されたので、 コマンドラインからインストールした。 ~/.font/に Osaka.ttc を置いて、fc-cache -fvのコマンドを叩く。 $ fc-cache -fv ... いろいろ表示される /home/auewe/.fonts: caching, new cache contents: 3 fonts, 0 dirs
RLogin はWindows環境における便利な端末エミュレータだ。 ただ残念なことに、デフォルトのフォントがキモいという問題がある。 そのうえフォントサイズの変更方法がわかりにくいので、まとめておこう。 フォントの種類の変更 半角アルファベットと記号のフォントを変更する場合は以下のようにする。 まず ファイル-サーバーの接続-新規or編集 をクリックし、 フォントタブを選択する。 ここで ASCII(ANSI X3.4-19... をダブルクリックして Font Parameter ウィンドウを開けて、 Font ボタンをクリックする。 Font ボタンをクリックすれば、好きなフォントを指定できるが、 注意点として、この画面ではフォントサイズが変更できない!! フォントのサイズの変更は スクリーン タブで行う。 フォントのサイズの変更 ファイル-サーバーの接続-新規or編集 をクリックし
追記: (2015/8/3) 大量のはてブが付いたので 続き を書きました。 sshを使用している人は文字列を手軽に暗号化・復号化できるという話。 このテクニックを使えば色々セキュアになるのでおすすめ。 今回はシェルスクリプト中の平文パスワードをセキュアに代替する。 平文パスワードはやめよう シェルスクリプト中でパスワードが必要になったとき、 とりあえず平文で書いてしまいがち。 #!/bin/sh PASSWORD="hoge" これをセキュアにしたい。 面倒くさいのは嫌なので、なるべく手持ちのツールで暗号化、復号化したい。 ssh用の rsa 秘密鍵と、openssl(大抵の環境に入っている)を使って改善しよう。 秘密鍵の準備 パスワードを暗号化するにあたって、秘密鍵を使用する. sshを常用している場合は ~/.ssh/id_rsa という秘密鍵が存在するだろう。 もし秘密鍵が無ければ
Windowsには CraftLaunch という便利なキーボードランチャがある。 設定ファイルの config.py をいじれば色々楽しめる。 自分用の設定が詰まった config.py を他のソフトの設定ファイルと一緒に git 管理したい。 自分用の設定ファイルを任意の場所からインポートするには、以下のファイルを clnch.exeのあるフォルダ に config.py の名前で保存する。 そうすれば C:\path\to\dotfiles\config.py が読み込まれる。 import os import sys from clnch import * # 自分用の config.py のディレクトリへのパス NewImportPath = 'C:/path/to/dotfiles' # clnch.exeからの相対パスで指定する場合 # DotFilesPath = '..\
Python3では '%d'とか'%+5.3lf'のような記法は推奨されず、廃止される。 代わりにformat()を使う必要がある。 このような変更がなされた理由については、 Python 3.0 Hacks第6回 Pythonicな文字列フォーマットforamat()メソッド が分かりやすい。 高尚な理由はどうでもよくて、とりあえず昔の%記法との対応関係表が欲しいが見つからなかった。 仕方ないから、よく使うformatについてC言語のprintf関数との対応表を作った。 極めて愚直な表なので、とにかくこれさえ見れば新旧の違いが理解できる。 結果表示 C言語 printf(%記法) python print(format記法) hoge(改行なし) printf("hoge") print("hoge", end="") hoge(改行あり) printf("hoge\n") print(
注意点 forループを並列化して配列に値を代入したい。 forループが一重の時は簡単だけど、 多重forループの場合には 内側から #pragma omp parralel forしないとバグる。 以下の正解とまちがいを見れば、よくわかる。 正解 // 内外共に #pragma omp する int a[4][3], i, j; #pragma omp parallel for for(i = 0; i < 4; i++) { #pragma omp parallel for for(j = 0; j < 3; j++) { a[i][j] = i*j; } } // 配列 a に i*j が正しく格納される // 内側だけ #pragma omp する int a[4][3], i, j; for(i = 0; i < 4; i++) { #pragma omp parallel for
2014/05/10 における数式記入法まとめ はてなブログに LaTeX で数式を書くには以下のようにします。 [tex:{ \displaystyle b_n = \sum_{m=0}^{N-1} a_m }] 結果↓ 数式は png画像ではなく MathJax で出力されるのでコピペ可能ですが、特に 数式をマウスで反転して「show math as」を選べば LaTeX形式でコピペできます。 以前から MathJax を使ってるはてなブロガー達へ 以前 はてなブログにLaTeXで数式を書く (Markdown記法用) という記事タイトルで、はてなブログに MathJax で数式を出力する方法を紹介しました。 そこでは色々書きましたが、今後は [tex:{ \displaystyle b_n = \sum_{m=0}^{N-1} a_m }] を使って数式を入れましょう。 さて、あなた
たまに新しい環境を作るとき、いつも忘れてググるハメになるのでメモ。 あちこちにハマりどころがある。 既に良質の解説がたくさんあるので、URLを貼ってまとめておこう。 フォントの設定の手順 Gvimを立ちあげて、コマンドモードで set guifont=* してフォントを比べる。 いいのが見つかったら set guifont で設定すればいいんだけど、 そのへんがややこしい。 set guifont のオプション形式がWindowsとUnix系で異なる問題 " Windows set guifont=Font\ Family:h12 set guifontwide=Font\ Family:h12 " Linux set guifont=Font\ Family\ 12 set guifontwide=Font\ Family\ 12 参考: 続、マシン毎に別々のフォントサイズを指定する .
シェルスクリプトから数値計算プログラムを走らせて、 結果を Gnuplot するような場合に、 わざわざ表示用の Gnuplot スクリプトを別ファイルに準備するのが面倒くさい。 すべての処理を単一のシェルスクリプトファイルで済ませてしまいたい。そんな時のためのメモ。 一番簡単なパターン 以下の内容を hoge.sh で保存して $ bash hoge.sh すれば sin 関数が描画される。 普通の Gnuplot スクリプトと違って、コマンド文の行末にセミコロン ; を付ける必要がある。 改行のエスケープはあってもなくてもよい。 pause -1 しないと画像が一瞬で消える。 # hoge.sh # y = sin(x) を描画 gnuplot -e " plot sin(x) ; pause -1 " 要するに Gnuplot のスクリプト部分にセミコロンを付けて gnuplot -
Vim Advent Calendar 2013 の24日目の記事です。 昨日は @thincaさんの submode.vim で特定の条件の時だけ submode に入るでした。 さて今日は、昨日担当者のthincaさん作の quickrun というVimプラグインの、 hook/eval/template という機能を紹介します。 この機能はLaTeXで数式や表を作成する際に大変役立つのですが、 あまり使われてない様子なので布教します。 一部だけコンパイルしたい LaTeXを書くときに間違えやすい箇所といえば、数式(あるいは表)です。 そこで何度も 「書く→コンパイル→書く→コンパイル→修正→コンパイル...」 という作業を繰り返すわけですが、 文章全体をコンパイルするのは不毛 じゃないですか? 具体的には以下の様な点でアホだと思います。 今書いてる数式のpdfを見たい。他の箇所はいら
Gnuplot には xtics やら nokey やら、グラフのタイトルやら位置の変更やら、 とにかくグラフの表示に関するありとあらゆるオプションが組み込まれているものの、 覚えるのも調べるのも面倒臭いし、頑張ってオプションを設定しても 思い通りにいかない場合が結構多い。 なので、最終的に論文に載せるグラフは Gnuplot が吐き出した画像ファイルを Inkscape で加工して自分色に染めたものを使っている。 Inkscape で読み込みやすい画像形式は pdf と svg がある。 Gnuplot が得意な出力形式は eps だ。 以下では pdf と svg と eps を使って、 Gnuplot から Inkscape に画像を渡す方法について書く。 pdf を使う場合 たぶんこの方法が一番簡単。 Gnuplotのソースファイルにて set terminal pdf set o
追記 2014/05/10 この記事は古いので、 はてなブログの LaTeX 数式表示がデフォルトで MathJax 化された を参照してください。 MathJaxを導入したら、はてなブログがMarkdown+LaTeXという夢の様な環境になって便利という話。 はてな記法で数式を書く 以前は以下の方法ではてなブログに数式を書いていた。 いわゆるはてな記法を使う方法。 [tex:{ \displaystyle b_n = \sum_{m=0}^{N-1} a_m }] この方式では数式が画像に変換されてしまい、よくない。 MathJaxで数式を書く 画像化するのではなく、javascriptでフォントの位置とサイズを整えて数式を表示するMathJaxという仕組みがある。 MathJaxはすでに有力な標準仕様で、画像化するより MathJaxを使ったほうが綺麗らしい ので乗り換えた。 LaTe
汚いシェルスクリプトを保守する作業に嫌気がさしてきたので、Python3に乗り換えた。 せっかくなので必要になった知識を整理しておく。 同じようにシェルスクリフトから乗り換える人の役に立つと思う。 とりあえず IO 関連とファイル名の操作が重要な気がしたので、そのへんから書き始める。 環境変数の取得 # Python import os home = os.environ.get('HOME', "") カレントディレクトリのパスを取得 # Bash ... もともと $PWDに入っているが current_path=`pwd` # Python import os current_path = os.getcwd() # スクリプトのあるディレクトリの絶対パスは script_path = os.path.abspath(os.path.dirname(__file__)) ファイル名と
Vim Advent Calendar の165日目の記事です。 前回の記事はthincaさんの同一視されるキーに注意でした。 Vimの設定ファイルをGitHub等のリモートリポジトリで管理すれば、新しい環境にVimをインストールする際手間が省けます。 便利な反面「リモートで管理できる設定」と「ローカルで行うべき設定」を正しく区別しないと、 むしろセキュリティなどの面で問題が生じかねません。 今回はリモートリポジトリで共有する汎用の .vimrc と、ローカルな設定ファイル vimrc_local についての意見を書きます。 vimrc_localの読み込み まず vimrc_local を読み込む方法について説明します。 .vimrc の最後に以下のように書き加えます。 if filereadable(expand($HOME.'/.localsetting/vimrc_local'))
このページを最初にブックマークしてみませんか?
『auewe.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く