POSIX の定義では『テキストファイル』はファイル末尾に改行が必要

3.392 Text File A file that contains characters organized into one or more lines. https://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap03.html#tag_03_392 3.205 Line A sequence of zero or more non- s plus a terminating . https:/…

sbt起動時に Failed to construct terminal エラーが出る

$ sbt [ERROR] Failed to construct terminal; falling back to unsupported java.lang.NumberFormatException: For input string: "0x100" ... stackoverflow.com どうも screen-256colorなどがダメなようなので 下記のようなファイルをPATHの優先順位が高…

boolから整数型に変換する時、falseは0に、trueは1になる

N1905 [conv.integral] If the destination type is bool, see 4.12. If the source type is bool, the value false is converted to zero and the value true is converted to one. [conv.bool] An rvalue of arithmetic, enumeration, pointer, or pointer…

今素直にvue-loaderをnpm installすると面倒くさい

2018-04-25に vue-loader15がリリースされたのだけど、色々変更が多く互換性が無くて設定が面倒だったので、vue-loader 14 を入れることにした。 npm install -D vue-loader@14

std::setの要素を追加・削除しても既存の要素への参照やイテレータは有効なまま維持される

N1905 23.1.2 - 8 The insert members shall not affect the validity of iterators and references to the container, and the erase members shall invalidate only iterators and references to the erased elements C++の連想コンテナ全般(setとかmap系…

docker exec せずに docker コンテナ内のファイルを手元で編集できる docker-edit コマンドを書いた

gist.github.com

pipe + fork + exec 書いてみた

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> void strwrite( int const fd, char const* const str) { if(write(fd, str, strlen(str)) < 0) { perror("write"); exit(1); } } pid_t process_open( char const* const path, int const …</sys/wait.h></sys/types.h></unistd.h></string.h></stdlib.h></stdio.h>

こたつの外でこたつに寄りかかって寝る猫キャットタワーのハンモックの上にいるところを撮られた猫(画像投稿を試すための記事)

C++11以降で #define private public を弾く

C++

# define private public 検出器です.ついでに # define static_assert(...) 検出器も付けました.ご査収ください. http://t.co/l7oyLoZ9ky— でちまるさん(実際かわいい) (@decimalbloat) 2015, 6月 10 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ https://t.co/k2oQ…

マイナンバーを全パターン出力するワンライナーを書きました

seq -w 0 99999999999 | awk '{l=split($0,ns,"");s=0;for(i=1;i<=l;++i){s+=ns[l-i+1]*((i<=6)?i+1:i-5);}d=s%11;print $0 (d<=1?0:11-d);}' awkフル活用なので面白みに欠ける。 マイナンバーのチェックディジットの計算式は 総務省令第八十五号の第5条より…

GUIアプリを端末から切り離して実行する

普通に端末からwiresharkとか叩くと、端末を閉じるとwiresharkも終了するので鬱陶しい。&付けて起動しても、なんか色々出力出るし。 wireshark < /dev/null >/dev/null 2>/dev/null & このように起動すれば端末から完全に切り離されて起動するので、端末閉じ…

svnレポジトリ以下のファイルを全検索してエディタで開くワンライナー(要 percol )

vim `svn ls -R | xargs grep -n $@ | percol | sed 's/:[^:]*$//' | sed 's/:/ +/'` これを適当な名前で PATH の通ったディレクトリに名前つけて保存するだけ。 percol は他の類似品でも多分大丈夫。

bashrcの変更を全bashプロセスに反映させる

.bashrc の先頭に trap 'source ~/.bashrc' USR1 と記述しておく。 .bashrc を編集したら、 pkill -USR1 bash とすると全てのbashプロセスで.bashrcが読み込み直される。 他にも inotifywait で .bashrc の変更を監視するとか考えたけど、それだとちょっと間…

man を vim で綺麗に見る

環境変数を以下のように設定しておくだけ。 MANPAGER="col -b -x | vim -R -c 'set ft=man' - " これでman memcpyとか叩くと こんな表示になる。もちろん環境やvimの設定によって違うが。 環境変数に設定したcolとvimのそれぞれオプションの意味は、この記事…

*nix環境でC++コードを書き殴るのに最高に便利なツールを作った

C++

C++ ファイルのコンパイル & 実行を LL系言語並に快速にするツールを開発しました https://t.co/vFG6YPXF0Y— にゃおきゃっと (@nyaocat) 2015, 8月 5 ファイル中にコンパイルフラグを含められるのと、そのままファイルを実行する形式でガンガン書けるので我…

bash の trap を複数指定する方法

bashスクリプトでシグナルハンドラを定義出来るtrapは大変便利だが、trapを複数回呼び出すと最後に書いたtrapの内容で上書きされてしまう。 ↓例 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッmelpon.org 別段シグナルハンドラを複数定義したいことも普通は無いが、0 番(終…

mod_rewrite を使ってブラウザのURL欄には http://hoge.com/fuga と表示しつつページの中身は http://hoge.com/index.cgi/fuga を表示させる方法

.htaccess ファイルに以下のように書く RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^.* - [L] RewriteBase / RewriteRule ^(.*)$ index.cgi/$1 [L] Mojolicious::Lite を使ってて cgi だろうと単体で動かしてる時だろうと同じアドレ…

突然ひらめいたので小説を書きました

「やれやれ、この程度だったか」 僕はそう呟いてコミットをした。 バグ修正なので、コミットメッセージに「fix #615」とだけ記述。 そして僕の手は次のコマンドを git push origi…… と軽やかにタイプしていく。 僕は暇な大学生プログラマだ。時々そこら辺に…

gtkmm と SDL2 を組み合わせて使う

能書き Gtk+ には特殊なウィジェットとして socket, plug ウィジェットがあり, 親プロセスの持つ socket ウィジェット内に 別プロセスから plug ウィジェットを用いて描画させることが出来る. これだけでも充分面白いが,socket ウィジェットはウィジェッ…

declval<T>() の返り値型が T&& である理由

メモ。 そもそも declval とは? 型T1, T2 があり、それらの値を乗算した結果の型を得たい場合、 素直に考えると decltype( T1() * T2() ) で得られそうだが、これは T1, T2 共にデフォルトコンストラクタが無いと T1(),T2()がコンパイルエラーになってしま…

SDL2 の適当なサンプルコード

とりあえず動くコードをメモしとくと後で環境構築したときに本当に動くのかパパッと確認するときにたまに役に立つ

Redmine Startpage plugin で任意のプロジェクトの「概要」ページを指定する方法

Controller: projects Action : show Id : プロジェクト名 特定の Wiki ページをトップに指定する方法しかWeb検索だと出てこない……

SDL2で出来る事メモごく一部

http://www.libsdl.org/ SDLのバージョン2が出ると同時になんかサイトもオシャレになってるので, チマチマWikiを眺めてて知ったことをメモ. 尚,この記事は http://wiki.libsdl.org/ に書いてあること以上の内容はありません.

LaTeXでgraphvizのコードを直接埋め込み記述する

graphvizzz - A LaTeX package for inline graphviz code - Google Project Hosting これを用いると良い. 自分の環境では指定されたスタイルファイルの関係上pdflatexは使えず,platexを用いてたので少し改造して使った.↓がdiff 27,30c27,30 < \immediate\…

C++11のささやかなネタコード

C++

C++11 では initializer_list が実装されたのでこんなことができます data.txt { { {1, 3}, {5, 8} }, { {3, 8}, {1, 0}, {8, 8} } } main.cpp #include <iostream> #include <utility> #include <vector> using namespace std; vector<vector<pair<int, int>>> dataset #include "data.txt" ; int main(){} 展</vector<pair<int,></vector></utility></iostream>…

サーバに Alminium をインストールした

動機 色々がんばって構築したサーバを些細なミスから環境壊してしまった. もう一度設定するのめんどい Alminium(https://github.com/alminium/alminium)がその辺やってくれるらしい まっさら環境じゃないと入れにくいらしい ちょうどサーバまっさらにしたし…

Tcl/Tkアプリケーションを単一の実行ファイルにして配布する方法

Tcl/Tk スクリプトを実行するには Tcl/Tk の実行環境が必要になるんですが,残念なことに Windows では標準で Tcl/Tk はインストールされてないです.配布する際には Tcl/Tk の実行環境をユーザにインストールしてもらう必要があります. しかし折角 GUI ア…

i686-w64-mingw32 のコンパイル済みバイナリ入れたら一発で動いた

ありがたくも有志がビルドしてくれてるバイナリが普通にあったのでそれ入れたら一発で出来ました. http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/gcc-4.7-release/ ここのi686-w64-mingw32-…

さくらVPSのcentos に i686-w64-mingw32 が……入れられない

http://kanedaq.blog24.fc2.com/blog-entry-10.html ここを参考にして gcc-4.8.2 をビルドしてみたが,手順5の途中で checking for wchar.h... (cached) yes checking for wctype.h... (cached) yes checking for ld version... 22300 checking for ld that…

Lua で Boost::Lambda っぽいの

Lua

http://melpon.org/wandbox/permlink/LNbdDxlbAE4nkdrP Lambda もなにも,Lua は最初から関数がファーストクラスオブジェクトでクロージャもあるから直接その場にfunctionと書けば済むのだが……