タグ

2014年12月19日のブックマーク (7件)

  • Home - Neovim

    Features Extensible API is first-class: discoverable, versioned, documented. MessagePack structured communication enables extensions in any language. Remote plugins run as co-processes, safely and asynchronously. GUIs, IDEs, web browsers can --embed Neovim as an editor or script host. Lua plugins are easy to create just like Vimscript plugins. Your config can live in init.lua! AST-producing parsin

    igrep
    igrep 2014/12/19
    やっぱvimは使い続けたいなぁ。
  • 「OSSライセンス=契約」という誤解を解く

    「OSSライセンス=契約」という誤解を解く:OSSライセンスで条件を指定する権利はどこからくるのか?(1/2 ページ) オープンソースソフトウェアについて解説した記事の中には、「OSSライセンスは契約である」という誤解を目にすることが多い。この連載は「第9回著作権・著作隣接権論文」で佳作に入選した論文をベースに、その誤解を解いてみるという試みをしたい。 問題意識:OSS開発者が条件を指定する権利はどこに由来するのか 前回の連載「企業技術者のためのオープンソースソフトウェア(OSS)ライセンス入門」では、企業がオープンソースソフトウェア(OSS)とうまく付き合っていくためのポイントを、ライセンスという観点から解説した。 それから6年が経過した。当時もそうだったが、OSSはますます広がり、企業が新たなビジネスやサービスを展開する際に利活用するのはもちろん、自らの成果物をオープンソースとして公開

    「OSSライセンス=契約」という誤解を解く
  • Immutable.jsでJSでも不変データ構造を扱う - Qiita

    ClojureやHaskellのような不変データ構造体のJS実装です。facebook製。 不変データ構造の特徴として、元のデータ構造は不変です。 Immutable = require 'immutable' map1 = Immutable.Map a: 1, b: 2 # => Map {a: 1, b: 2} map2 = map1.set a: 3 #=> Map {a: 3, b: 2} map3 = map1.update (val) -> {foo: val.a} #=> Map {foo: 1} Mapの他に、List, OrderedMap, Set, OrederedSet, Seq, Range, Record, Stack等があります。内部的にはトライ木になっています。 面白いのはSeqやRangeで、filter関数やmap関数を与えても、getで呼ばれるまで遅

    Immutable.jsでJSでも不変データ構造を扱う - Qiita
  • 抽象的なテストのススメ(FizzBuzzの例で) - Qiita

    Ruby Advent Calender 2014の19日目です。 FizzBuzzとは以下の仕様を満たすプログラムを作る有名な問題です。 3の倍数かつ5の倍数の場合には"FizzBuzz"を出力する 3の倍数かつ5の倍数でない場合には"Fizz"を出力する 3の倍数でなくかつ5の倍数の場合には"Buzz"を出力する 3の倍数でも5の倍数でもない場合には入力された数字そのものを返す 実装してみるとこんな感じになります。 def fizzbuzz x return "FizzBuzz" if x % 15 == 0 return "Fizz" if x % 3 == 0 return "Buzz" if x % 5 == 0 return x end 記事の主張は「FizzBuzzぐらいは仕様通りに確実にテストしたいよね」ってことです。 非常に巷に転がっているテストコードにもやもやしていま

    抽象的なテストのススメ(FizzBuzzの例で) - Qiita
    igrep
    igrep 2014/12/19
    やっぱりテスト用の偽物をなるべく使いたくない、という意味では自分はQuickCheckの方が好みかなー。
  • Git 1.8.5.6, 1.9.5, 2.0.5, 2.1.4 and 2.2.1 and thanking friends in Mercurial land

    Git 1.8.5.6, 1.9.5, 2.0.5, 2.1.4 and 2.2.1 and thanking friends in Mercurial land We have a set of urgent maintenance releases. Please update your Git if you are on Windows or Mac OS X. Git maintains various meta-information for its repository in files in .git/ directory located at the root of the working tree. The system does not allow a file in that directory (e.g. .git/config) to be committed i

    igrep
    igrep 2014/12/19
    大文字小文字を区別しないファイルシステムだと、.git/configを不正に書き換えられちゃう、と。
  • 関数名によく使われる英単語(動詞)の意味とニュアンス | PHP Archive

    PHP に限らず、プログラミングで使われる多くの関数名は「動詞+目的語」という命名規則になっていることが多く、「insertPost()」であれば投稿を挿入するという意味が名前から読み取れます。 では投稿を削除する場合は delete でしょうか? それとも remove でしょうか? 関数は基的に英語を使うのが鉄則ですが、似たような意味を持つ単語などが多く厳密な意味の違いがわかりにくいことがあります。 そこで、プログラミングで関数名として一般的に使われている頻出語句をピックアップし、主な用途と細かい意味、ニュアンス、使い分けについて調べてみました。 追加・作成 set

  • Sodium(FRP)を使ってみた - Qiita

    Haskell Advent Calendar 2014 (18日目) 寄稿記事。 はじめに 独学でHaskellを学び始めて2年半が経ちました。圏論やモナド、その他重要な概念を何も理解できていませんが日々楽しくHaskellを使っています。そんな(初心者&底辺)のHaskellerが半年ほど前に無謀にも FRP(Functional Reactive Programming)*1に挑戦してみました。FRPのパッケージは幾つか存在しますが、一番元気良さそう(小並感)にみえたSodium*2 を選択しました。 悪戦苦闘の末、僅かばかりのノウハウを得られましたので、それに基いてSodiumの簡単な紹介記事を書かせて頂きたいと思います。 Sodiumとは Hackageに公開されているSodium Packageの説明ページに拠ると、Sodiumは汎用的な Reactive Programmin

    Sodium(FRP)を使ってみた - Qiita
    igrep
    igrep 2014/12/19
    “Eventは信号線で表現される部分(もう少し具体的にはdata in の出力,xorの出力,regの出力)、Behaviorは値を保持するレジスタ(バッファ,変数,伝達関数)に対応すると思います。”