2015-03-01から1ヶ月間の記事一覧
C++11 で実装されたラムダ式の引数に auto が使用できるようになりました( いわゆる多相ラムダと呼ばれる機能。 これは template 引数と同様に引数型を抽象化することができる機能です。 // auto を使用することでどんな型でも受け取る事ができるラムダ式を…
Variable templates は定数を任意の型で定義する事ができるようになる機能です。 以前の書き方では πなどの定数を任意の型で使用できるようにする場合、 template<typename T> struct PI{ static const T value; }; template<typename T> const T PI<T>::value = T(3.141592653589793238</t></typename></typename>…
数値の先頭に 0b または 0B とつけることでその数値が2進数表記として扱われるようになります。 [Example] int n = 0b01001101; // => 77 int m = -0b00101100; // => -44 16進数示す 0x などと同じような使い方をします。 [実装コンパイラ] Clang 2.9 GCC 4…
追加しました。 causes/haml-lint osyo-manga/vim-watchdogs haml で haml-lint を使用したい場合は以下のように設定してください。 let g:quickrun_config = { \ "haml/watchdogs_checker" : { \ "type" : "watchdogs_checker/haml-lint", \ }, \ \} " watc…
補足説明もらったので覚書。 以前、foreman 上での環境変数を設定する場合 .env ファイルを用意するという記事を書きました。 デフォルトでは起動時にカレントの .env ファイルが読み込まれますが、これは -e オプションで任意のファイルを読み込む事ができ…
vim-jp » github への移行準備 と、いうことらしい。 議論や patch なんかは ML よりも github の issues の方が見やすいのでよさそうですね。
app.controller("MainCtrl", function ($scope) { uri = '...'; $.get(uri, function(data){ $scope.result = data.responseText; }); }); 上記のようなコード書いていたのだけれど、これだと {{ result }} が更新されなかった。 ($http 使えというのは置い…
とりあえず Travis CI の動作確認も兼ねて、なにかしら github で公開してみたかったので以前書いた static_if を github にあげてみた。 コードの質はおいておいて、こういう雑なのはどんどん公開していきたいですねぇ。 static_if github:https://github.c…
とりあえず Travis CI の動作確認も兼ねて、なにかしら github で公開してみたかったので以前書いた static_if を github にあげてみた。 コードの質はおいておいて、こういう雑なのはどんどん公開していきたいですねぇ。 static_if github:https://github.c…
最近、C++ に全然触れていないので一日一個ずつぐらいのペースで取り上げていこうかなーと思います。 とりあえず、予定地だけほそぼそと書いていきます。 C++14 の機能 Binary literals Generic lambdas Variable templates Single quotation mark as digit …
AngularJS で ajax 通信を行う手段はいくつかあるようなのですが、今回は angular-resource を試してみました。 [コード] <html ng-app='MyApp'> <head> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js'></script> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-resource.min.js'></head></html>
C++ で example を書いてる時に実行ファイルが生成されるので .gitignore で無視したかった。 Windows だと *.exe みたいに指定すればよいのだけれど、Linux だと拡張子がないのでどうすればよいのかなーと考えた。 回避手段 逆にソースファイルが無視されな…
某所で話題になっていたので覚書。 起動するディレクトリに .env というファイルを用意しておけばその環境変数が foreman に反映されます。 .env API_KEY="XXXXXX" DEBUG=1
まぁそういうのはかなり前から存在はしているんですが、ちょっと自作ライブラリ(vital-reunions と vital-coaster)を試したかったのでテストがてら軽く書いてみました。 [プラグイン] osyo-manga/vim-nyaaancat NeoBundle 'osyo-manga/vim-nyaaancat' スクリ…
さて、Vim で operator を実行するとカーソル位置が入力した motion の先頭へと移動してしまします。 これは c や d のようなバッファを変更する operator であれば便利なんですが、y などのバッファを変更しない operator であれば無駄にカーソルが移動して…
今更のお知らせですが、このブログは、以前はてなダイアリーで書いてたブログから移動したブログになります。 移動した経緯は、余裕が無かったり忙しかったりといろいろあったんですが、一番の理由は身バレしたからです。 元のブログを読んでいた方には申し…
昨日の続き。 default_delete を特殊化する方がよいかもー、みたいな発言があったので試してみた。 [コード] #include <memory> #include <iostream> struct X{ friend void X_deleter(X*); X(int value) : value(value){} int value; private: ~X(){}; }; void X_deleter(X* x</iostream></memory>…
そんな話が Lingr の C++ 部屋で出ていたので。 // 毎回カスタムデリータを設定するのが手間 std::unique_ptr<X, decltype(&X_deleter)> xp(new X(42), &X_deleter); // こう書けるようにしたい // std::unique_ptr<X> xp(new X(42)); [コード] #include <memory> #include <iostream> struct X{ friend voi</iostream></memory></x></x,>…
syntasticの:wqした時にはシンタクスチェックを走らせないようにする設定(g:syntastic_check_on_wq), どうなってるんだろうか. vim-watchdogsでも同様のことがしたい— とさいぬ (@myon___) 2015, 3月 14 これを実装してみました。 設定 let g:watchdogs_chec…
middleman の haml から markdown を読み込む - C++でゲームプログラミング 以前、上記のような記事を書いたのですが、render を使った方法だと動作しなくなってしまったみたい。 解決 render ではなくて partial を使用します。 [source/index.html.haml] #…
以下のページを参考にしてやってみました。 Travis CI で最新の gcc を使って自動テスト - sorry, uninuplemented: Travis CIを使ってみた: GitHubのレポジトリにバッジを貼りたかったから 実験用のプロジェクトをつくる とりあえず、最小限のファイルだけ用…
久々に AngularJS を触ってついでに 1.3 に移行したらハマったので覚書。 AngularJS 1.3 からグローバルのコントローラーがデフォルトでは動作しなくなったみたいです。 AngularJSの1.2系と1.3系の違い - Coding Design's Tumblr angularJsについて - QA@IT …
以下のように nkf を利用すれば全角カナ文字を半角カナ文字に変換できます。 require "nkf" # -w オプションは UTF-8 で出力する # -Z4 オプションは全角カナを半角カナに変換する NKF.nkf("-w -Z4", "アナスタシア") # => "アナスタシア" NKF.nkf("-w -Z4", "ミル…
web feed の内容を unite.vim で出力するプラグインをつくりました。 例によって通信は非同期で行ないます。 必要なもの command wget or curl vim plugin vimproc.vim プラグイン osyo-manga/unite-web_feed NeoBundle 'osyo-manga/unite-web_feed' 使い方 …
$ gem install do_postgres したら以下のようにエラーになった。 Building native extensions. This could take a while... ERROR: Error installing do_postgres: ERROR: Failed to build gem native extension. /usr/bin/ruby2.1 -r ./siteconf20150308-31…
hash[:key] を hash.key という風にアクセスしたかったので、練習がてら雑に書いて gem にあげてみた。 install $ gem install hash_with_key_access_method 使い方 # Using refinements using HashWithKeyAccessMethod hash = { name: :homu, "name2" => :m…
参照 rubyのJSON.parseでhashキーをsymbolにしてもらう方法 - hirakiucの日記 JSON.parse() の第二引数に {:symbolize_names => true} を渡せばいいみたい。 コード require "json" data = '{ "name" : "homu", "age" : "13" }' JSON.parse(data) # => {"nam…
上げるの忘れてた。 generic lambda を使っていい感じに static_if を書いてみました。 ソース #include <iostream> template<typename Then, typename Else> auto static_if(std::integral_constant<bool, true>, Then then, Else else_){ return then; } template<typename Then, typename Else> auto static_if(std::integral_constant<bool, false>, T…</bool,></typename></bool,></typename></iostream>
元ネタ jsonの validation - Life is very short watchdogs.vim になかったので jsonlint の設定を追加しました。 jsonlint 元の記事と同じように jsonlint を使用します。 $ npm install jsonlint -g プラグイン osyo-manga/vim-watchdogs NOTE: ハイライト…
BasicObject を継承したクラスで include する BasicObject を継承したクラスで include を行いたかったのですが、次のようなコードではエラーになりました。 module Test def test 10 end end class X < BasicObject include Test # error: `<class:X>': uninitializ</class:x>…