2013-05-01から1ヶ月間の記事一覧

Vim Advent Calendar 2012 中間発表

vim

この記事は Vim Advent Calendar 2012 182日目の記事になります。 さて、去年の12月から開始された Vim Advent Calendar 2012 ですが、早いものでもう半年も続いています。 そう、もう半年も続いているんです!! ぶっちゃけ1月ぐらいで終わると思っていたわ…

最近 Lingr-bot 作って遊んでる

最近(ってほどでもないんですが)Lingr で動作する bot を作って遊んでいます。 Heroku + Sinatra + Ruby が使えれば割と簡単に動作させることが出来るので楽しいです。 気になる方は下記の wiki を参考にしてみるとよいです。 Lingr Bot API - github wiki…

Boost.Interprocess でアプリケーショの多重起動を防止する

この手の処理はいくつか手段があると思うのですが、Boost.Interprocess で書いてみました。 [ソース] #include <boost/interprocess/managed_shared_memory.hpp> #include <cstdio> #include <string> #include <cstdlib> int main(int argc, char* argv[]){ namespace ipc = boost::interprocess; try{ ipc::shared_memory_object se</cstdlib></string></cstdio></boost/interprocess/managed_shared_memory.hpp>…

Qt5 の connect を lambda expressions で試してみた

なんとか手元で Qt5 を動かすことが出来たので connect で lambda expressions を 試してみました。 [ソース] #include <QtWidgets/QApplication> #include <QtWidgets/QPushButton> #include <QtWidgets/QSlider> #include <iostream> #include <string> int main(int argc, char* argv[]){ QApplication app(argc, argv); int count = 10; QPushB</string></iostream></qtwidgets/qslider></qtwidgets/qpushbutton></qtwidgets/qapplication>…

quickrun.vim で msvc のバージョンを指定してコンパイルを行う

vim

この記事は Vim Advent Calendar 2012 178日目の記事になります。 さて、今まで quickrun.vim で使用する msvc を動的に変更する場合、こんな感じで環境変数を変更するようにしていました。 しかし、Lingr でよさげなコードを見かけたのでこれをパクって qui…

Kaoriya 版 Vim に同梱されている vimproc を読み込まないようにする方法

vim

以前も同じ内容の記事を書いたのですが、その後、本体で対応されたみたいです。 Vim 7.3.935 (2013/05/12版) 配信 vimproc を無効化する場合は、$VIM/switches/enabled/disable-vimproc.vim ファイルを作成すればいいみたいです。 (ファイルを置くだけで中…

lingr で動作する reading_vimrc-bot をつくった

vim

この記事は Vim Advent Calendar 2012 176日目の記事になります。 Vim Advent Calendar ではまだまだ参加者を募集しています。 『わたしのVim力低いし…』『既に誰かが書いたネタだろうし…』とかは気にしないで軽い気持ちで参加してみるといいと思います! ま…

Boost 1.54.0 では新しいライブラリとして Log, TTI, TypeErasure が追加される

Version 1.54.0 - boost.org Log: Logging library, from Andrey Semashev. TTI: Type Traits Introspection library, from Edward Diener. Type Erasure: Runtime polymorphism based on concepts. ついに…!という感じですが Boost 1.54.0 では新しいライ…

Vim 7.3.970 以降を使用する場合はご注意を

vim

vim 7.4 新正規表現エンジンのテスターを募集しています。 - vim-jp 先日、何事もなかったのように 7.3.1000 を突破したんですが、7.3.970 から新しい正規表現エンジンが導入され、それに関するバグがいくつか報告されているようです。 もし 7.3.970 以降を…

たった3行のコードでひたすらアイドル水着画像をあつめる(Ruby と mechanize だよ)

せっかくなので mechanize を使って書いてみました。 [ソース] require "mechanize" url = "http://matome.naver.jp/odai/2135350364969742801" puts Mechanize.new.get(url).images_with(:dom_class => /MTMItemThumb/).map(&:node) [出力] コードがすっき…

Git で変更されている全てのファイルの一覧を列挙する

Git

git で覚書。 多分こんな感じ。 $ git status -uall -s AM hoge.txt ?? foo.txt ?? test/test.txt

unite-source を作成する流れをまとめてみた

vim

この記事は Vim Advent Calendar 2012 171日目の記事になります。 さて、前回の Vim Advent Calendar で iTunes のプレイリストを操作する euphoric_player.vim を公開したんですがその時に作成した unite-source の書き方なんかをまとめてみたいと思います…

Qt 5.0.2 がリリースされていた

Qt

先月辺りに Qt 5.0.2 がリリースされていたみたいなので試してみました。 Qt 5.0.2 リリース で、手元で一番問題になっていたこれを試してみたんですが残念な事にまだバグが残っているようです。x うーん…。

unite.vim に -truncate オプションを追加してもらった

vim

ちょっと前ですが unite.vim に -truncate オプションを追加してもらいました。 このオプションを付けると候補のテキストがウィンドウからはみ出た場合、末尾で短縮されます。 (デフォルトだと中央で短縮される) [-truncate なし] [-truncate あり] 個人的…

unite-neobundle から update した場合に unite.vim が起動できない問題の回避

vim

[追記] 最新版では :Unite neobundle/update が閉じてしまう問題は改善されているようです。 わたしは :Unite neobundle でプラグインの update を行なっているんですが、この時に起動する :Unite neobundle/update が開いている状態で別の unite.vim を起動…

vim-powerline-unite-theme に vimfiler のセグメントも追加した

vim

以前、unite.vim の標記が変更された際に、vim-powerline で unite.vim の statusline を表示する拡張を書いたのですが vimfiler でも同様の変更があったので機能を追加しました。 [インストール] osyo-manga/vim-powerline-unite-theme - github NeoBundle …

Ruby の mechanize を使用して Web ページ内の img を取得する

Ruby で Web ページ内の画像URLを取得したかったんですが『mechanize を使うと楽』と教えてもらったので試してみました。 確かに楽ちんでした。 [インストール] gem でインストールします。 $ gem install mechanize [ソース] require "mechanize" agent = M…

C++Now 2013 が始まったみたいです

すっかり忘れてしまっていたんですが13日から(日本時間だと14日ですが)C++Now! 2013 が開催されています。 C++Now 2013 is Underway! - cppnow それに伴い、発表資料なんかも github で公開され始めているみたいです。 boostcon/cppnow_presentations_2013…

GCC の C++14 の対応状況

C++

Clang の方はちょくちょく確認しているんですが GCC がどれぐらい対応しているのか知らなかったので調べてみた。 と、いうかいつの間にか 4.9 が出てたのか。 C++1y/C++14 Support in GCC [gcc 4.9 で実装済み] Tweak to certain C++ contextual conversions…

Vim で iTunes のプレイリストを表示するプラグインつくった

vim

この記事は Vim Advent Calendar 2012 163日目の記事になります。 Vim 上から iTunes のプレイリストを操作するeuphoric_prayer euphoric_player.vim をつくりました。 unite.vim から曲を選択して再生したり出来ます。 元々は itunes.vim に機能を追加して …

netlib で HTTP Server を書いてみた

C++

Boost.Asio だけだとしんどそうだったので netlib でちょっと書いてみました。 [環境] netlib 0.9.5 Boost 1.53.0 Visual Studio 2010 [ソース] #include <boost/network/include/http/server.hpp> struct hello_world{ typedef boost::network::http::server<hello_world> server; void operator ()(server::requ</hello_world></boost/network/include/http/server.hpp>…

Clang 3.3 で追加される予定の C++11 の言語機能

Generalized attributes Alignment support Inheriting constructors Sequence points Thread-local storage ちなみに Clang 3.3 で追加される C++14 の言語機能は下記になるようです。 decltype(auto) Member initializers and aggregates

Qt 4.8 の QtWebkit で Flash を再生する

Qt 4.8 の QtWebkit で Flash を再生したい場合、QWebSettings::PluginsEnabled を有効にする必要があります。 [ソース] #include <QtGui/QApplication> #include <QtWebKit/QtWebKit> int main(int argc, char* argv[]){ QApplication app(argc, argv); QWebView view; view.load(QUrl("http://yana</qtwebkit/qtwebkit></qtgui/qapplication>…

LLVM 3.3 は 6月5日にリリース予定

The LLVM Compiler Infrastructure LLVM 3.3 のリリーススケジュールは以下の通りです。 05月06日 - Branching for 3.3 release 05月06日〜11日 - Phase I testing 05月12日〜18日 - Bug fixing from Phase I 05月19日〜25日 - Phase II testing 〜Random wi…

Kaoriya 版の Vim に同梱されている vimproc を読み込まないようにする

vim

少し前(と言っても去年の年末辺り)から Windows 向けに配布されている Kaoriya 版の Vim に vimproc が同梱されるようになりました。 これで Kaoriya 版の Vim を使用している方は vimproc を導入してビルドする必要はなくなりました。 vimproc を使用して…

Vim で検索時にマッチした位置がサイドバーに表示される機能をエミュレートしてみた

vim

この記事は Vim Advent Calendar 2012 157日目の記事になります。 さて、ブラウザなどで検索を行うとサイドバーに みたいにマッチした位置が表示されます。 これを Vim の sign を使用して無理やりエミュレートしてみました。 [プラグイン] osyo-manga/vim-a…

Clang に部分的ではあるが C++14 の機能がいくつか実装された

C++

Clang に部分的ではありますが、C++14 の機能がいくつか実装されました。 C++1y implementation status - Clang Return type deduction for normal functions Runtime-sized arrays with automatic storage duration Relaxing requirements on constexpr fun…

本日20:00〜から C++オンライン読書会を行います

C++

本日20:00〜から C++オンライン読書会を行います。 今日読む資料は『C++ Concurrency』になります。 気になる方や参加されたい方は 20時頃に lingr-cpp 部屋までお越しください。

Vim でウィンドウが表示している行番号を取得する

vim

lingr で教えてもらったので覚書。 line() を使用すれば最上行と最下行が取得出来ます。 function! WinlineRange() return range(line("w0"), line("w$")) endfunction line("w0") で最上行、line("w$") で最下行の行数が取得出来ます。 ただし、間に折りた…

Vim の :message 履歴をクリアする

vim

Vim script のデバッグを行なっていると :message が溜まってきてわかりづらくなる事が多々あります。 と、いう事で履歴をクリアするような処理を書いてみました。 command! MessageClear for n in range(200) | echom "" | endfor やっている事は空文字で :…