タグ

Clojureに関するkimutanskのブックマーク (38)

  • GitHub - puppetlabs/trapperkeeper: A services framework for Clojure / JVM applications.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - puppetlabs/trapperkeeper: A services framework for Clojure / JVM applications.
    kimutansk
    kimutansk 2014/04/14
    Puppetlabsが開発したサービスの関連や依存性を定義して管理できるClojure製フレームワーク、と。
  • Clojure/Incanter/clj-mlでデータマイニング入門 - あんちべ!

    概要 Clojureでデータマイニングに必要な各手法を解説する記事です。 記事を読むと、全くClojureを知らない方でも データ抽出・集計 可視化 機械学習(決定木、ランダムフォレスト、k-meansクラスタリング) をClojureで実行できるようになります。 はじめに ClojureとはJVM上で動く(つまりOSを問わず沢山の環境で動く上に Java資産をそのまま使える)Lisp系の言語です。 Clojureではデータマイニングを行う際、 Incanterとclj-mlという2つの便利なツールがあります。 Incanterは統計処理用の専門ライブラリで、 単体で様々な統計分析を行ったり集計を便利にしたりする機能が沢山用意されています。 clj-mlはwekaという機械学習系のツールをClojureで簡単に使えるようにしたラッパーで、 決定木やランダムフォレストなどの分類器や 各種ク

    Clojure/Incanter/clj-mlでデータマイニング入門 - あんちべ!
    kimutansk
    kimutansk 2014/02/17
    Clojureでもきちんと機械学習用のライブラリありますか。この位の構文であれば問題なく理解できますし、よさそうです。
  • Clojureのprotocol実践

    Clojureのprotocol実践 自社開発ではClojureを中心に使っていて、ユーザーが増えて欲しい気持ちもあって、Clojureのテキスト的なものを書いていては挫折、などを繰り返してました。キリがないので、テキストのことは気長に構えて、開発中に気がついたことはどんどんブログに書いて行こうと思います。 手始めに、最近やっと「実用的」という意味で使えるようになったかなーと思えた、「プロトコル」について。 Clojureのプロトコルは、JavaでいうところのInterfaceのようなものです。型名称と関数定義だけを束ねたものです。defprotocolによってプロトコルを定義することができます。 Javaプログラマ歴が長いので「まあInterfaceなら余裕だな」と構えていましたが、意外と使い方が難しい。以下、Javaプログラマ的感覚でプロトコルを使うと使いにくくなりかねない点について書

    Clojureのprotocol実践
    kimutansk
    kimutansk 2014/02/02
    「プロトコルは小さくまとめて、必要な時だけ実装するのが良い」と。なるほど。こうすれば必要な場所だけの実装でClojureのprotocolをうまく使える・・ ええ、まだ初心者ですので(汗
  • Introducing PigPen

    It is our pleasure to release PigPen to the world today. PigPen is map-reduce for Clojure. It compiles to Apache Pig, but you don’t need to know much about Pig to use it. What is PigPen?A map-reduce language that looks and behaves like clojure.coreThe ability to write map-reduce queries as programs, not scriptsStrong support for unit tests and iterative developmentNote: If you are not familiar at

    Introducing PigPen
    kimutansk
    kimutansk 2014/01/05
    「PigPen is map-reduce for Clojure」て、マジですか。
  • GitHub - esehara/ClojureBiyori: Clojure Biyori(Clojure日和) -- Japanese Clojure Book

    雨の日はClojureを書こう。晴れた日には外に出て日向ぼっこをしよう。 目標 この文章の目標は、Clojureの教科書になることです。そして、このClojureの教科書は、下のような人々をターゲットに作られます。 Lispを知らない人 Javaを知らない人 プログラミングがどういうものかわかってない人 プログラミングを楽しみたい人(重要! :) ) 上のような人が、Clojureというプログラミング言語を「友達」のように思ってくれるような、あるいは身近に感じるような教科書に出来ればいいなと考えています。 重要 この教科書はまだまだ未完成です。今後、暇を見つけてちょくちょく加筆する予定です。一ヶ月に一度くらいみてくれれば、何らかの項目が更新されているかもしれません。 目次 雨の日 0日目 (ごあいさつ) このを手っ取り早く読むために 1日目 (S式の日) なぜS式が重要なのか はじまりの

    GitHub - esehara/ClojureBiyori: Clojure Biyori(Clojure日和) -- Japanese Clojure Book
    kimutansk
    kimutansk 2013/12/25
    しょっぱなからS式という言葉を知らないままClojureを使っていたことに気付く罠。あの考え、ってこう表現できるんですねぇ
  • GitHubで個人的に書いているClojureの本について告知します - Line 1: Error: Invalid Blog('by Esehara' )

    良い子のみんな、元気にしているかな? そんな良い子のみんなに、いま自分がぽちぽちと書いているClojureのを公開しておくよ!お金はとらないよ!無料だ! Clojure日和 (GitHubレポジトリ) クリスマスくらいに公開すると粋かなと思ったので、このタイミングで公開するよ。とはいえ、まだまだ充実していないし、少し見直すと間違っているところがかなりあるけど、そこは怖いお兄さんたちのマサカリを期待しているよ! 意図 意図としては簡単で、基的にあるプログラミング言語の学びやすさというのは、そのドキュメント量に比例する。残念なことに、Clojureの体系的なの翻訳は、殆どがペンディングされている。もちろん、日では電子書籍を含めて、Clojureのは三冊あるけれども、しかし基礎的なを十分に解説しているとはいい難い状態だ。それは、僕が始めてClojureを知った二年前よりは、だいぶ状況

    GitHubで個人的に書いているClojureの本について告知します - Line 1: Error: Invalid Blog('by Esehara' )
    kimutansk
    kimutansk 2013/12/25
    Clojureの日本語情報は貴重ですからねぇ。ありがたいです。読んでみましょう。
  • Twitterクライアント「Grimoire」公開について[Clojure・JavaFx・Twitter4j] - はこのLINUX

    ご挨拶 ご無沙汰しとります,大学生になってからLinux一筋で生きていこうと決めておりましたが,遂にWindowsに折れてしまったBOXPです.Officeの壁は想像以上に厚かったです… それはさておき,Twitterで私が時々ぼやいておりますが,のんびり作っていた自作のTwitterクライアントがある程度形になって来たので,ここらで一度公開したいと思います. 「Grimoire」について Grimoireは,コンソールライクに操作しやすいように設計されているTwitterクライアントです. マウス操作を使用してツイートをお気に入りにしたり,リツイートして拡散する事は出来ますが,それらはあくまでもコマンドをボタンが呼び出しているに過ぎません. そのため,操作の殆どはS式をタイプして実行する事になりますが,S式を学習していなくても必要なコマンドを幾つか覚えているだけで十分使用可能です. 以下

    Twitterクライアント「Grimoire」公開について[Clojure・JavaFx・Twitter4j] - はこのLINUX
    kimutansk
    kimutansk 2013/10/30
    これはこれですごい・・・
  • Understanding Clojure's Persistent Vectors, pt. 1

    ★ Understanding Clojure's Persistent Vectors, pt. 1 posted 25 Sep 2013 You may or may not heard about Clojure’s persistent vectors. It is a data structure invented by Rich Hickey (influenced by Phil Bagwell’s paper on Ideal Hash Trees) for Clojure, which gives practically O(1) runtime for appends, updates, lookups and subvec. As they are persistent, every modification creates a new vector instead

    kimutansk
    kimutansk 2013/10/28
    Clojureのベクタの話。このあたりの接続周りとかは非常に「らしい」構造になっていますねぇ
  • ClojureScriptという選択肢

    ClojureScriptという選択肢 Presentation Transcript ClojureScript という選択肢 2013/10/19 大なごやJS VOL.7 前田康行(@maeda_) 自己紹介 前田康行 (@maeda_) 名古屋在住のフリーランス 好きな言語 •  Scala •  Smalltalk 近況 •  ひょんなことからRuby仕事してます。 今流行りのaltJS 今回のテーマ ClojureScriptはこっち側ですよって話 XX言語で書いて、 XX言語で書いて、 JavaScriptに変換できる <<< (超えられる壁) <<< JavaScriptの代用となる 大事な観点 言語的なメリットだけでなく、既存のJSのエコシステムが活用できる or 代用があるか? ・既存のライブラリやAPI(JSONPとか)との親和性 ・開発周りのツール類(Gruntと

    kimutansk
    kimutansk 2013/10/25
    選択肢としては有りなのかもしれませんねぇ。そして、ライニンゲンて読むわけですか・・・ レインインゲンとかよーわからない読み方をしてましたw
  • Clojure プログラムを並列化したら遅くなったり複雑になったりするというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 - tnoda-clojure

    前回の Java と比べて Clojure が 3 倍以上遅いというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 の続きです. 今回は,前回普通に書いた並列化なし Clojure プログラムを並列化させます. 普通に書いた並列化なし Clojure プログラムのコードは前の記事を参照してください. 「普通に書いた Clojure プログラム」の並列化この記事では, pmapReducersの 2 つの方法を使って「普通に書いた Clojure プログラム」を並列化し, 並列化前と並列化後の実行時間を比較し,どちらが速いかを確認します. また,コードの変更点を確認することで,並列化によりどれだけコードが複雑化するかを議論します. pmap による並列化「普通に書いた Clojure プログラム」からの変更点は次の 2 つです: mappmap に置き換えた(1

    Clojure プログラムを並列化したら遅くなったり複雑になったりするというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 - tnoda-clojure
    kimutansk
    kimutansk 2013/08/29
    まともに組むとこうなるわけでしたか。 なんか少し安心しました。
  • Java と比べて Clojure が 3 倍以上遅いというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 - tnoda-clojure

    マルチコアプログラミングの概念と Java 8/Scala/Clojure での書き方,および,各プログラミング言語間での比較記事がはてなブックマークで 93 ブクマ(執筆時点)を集めており,人気となっています. マルチコア時代のプログラマは関数脳になろう〜Scala・Clojure〜 - Tech-Sketch 記事を読んでみるとなるほど分かりやすく,各プログラミング言語の違いも比較的すっと頭に入ってくる良い記事でした.この記事を書いた作者に敬意を表します. しかし,まとめのところに書かれている実行時間比較を見てみると,何かがおかしいのです. (元記事,まとめの表からの引用) Java7 Java8 Scala Clojure 非並列処理実時間 0m32.304s 0m32.511s 0m50.478s 1m38.138s CPU時間 0m33.730s 0m35.842s 2m12.2

    Java と比べて Clojure が 3 倍以上遅いというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 - tnoda-clojure
    kimutansk
    kimutansk 2013/08/27
    永続コレクション使ってもオーバーヘッドは意外に小さいんですね。次の並列版が楽しみです。
  • Avout

    kimutansk
    kimutansk 2013/08/22
    ZooKeeperやMongoDBをデータストアとして使う分散状態管理/ロック管理用のClojure用ライブラリですか。こういうのもあるんですね。
  • マルチコア時代のプログラマは関数脳になろう〜Scala・Clojure〜 - Tech-Sketch

    前回 の記事では、関数型プログラミングの概念とJava8による実装例を示しました。しかしJava8のリリースは来年まで延期されてしまったため、今すぐ試してみるには少しハードルが高いかもしれません。 そこで今回は、Java7のJVM上で動作する代表的な関数型プログラミング言語、 Scala と Clojure を紹介します。 Scalaとは では、 Scala から紹介しましょう。 ScalaはJVM上で動作するプログラミング言語で、関数型の特徴とオブジェクト指向の特徴を合わせ持った、欲張りな言語です。 JVM上で動作するため、既存の膨大なJavaライブラリをそのまま流用でき、JVMのパフォーマンスチューニングノウハウを最大限活用することができます。またJavaよりも豊富な記述形式を持ちながらもJavaオブジェクトをそのまま扱え、強力な型推論を持った静的型付け言語でもあるため、定型的で冗

    kimutansk
    kimutansk 2013/08/19
    単純に並列処理をやるという意味では関数型への対応は限定的で、並列処理に絞ったJava8の方が早くなる・・というわけですかね。
  • Leiningenことはじめ - CLOVER🍀

    そろそろ、Clojureでもビルド・依存関係管理ツールを触ってみようかと思います。Clojure界隈ですと、間違いなくLeiningenが候補となるので例に漏れずこちらで。 Leiningenとは? Clojureでのビルド・依存関係管理ツールで、プラグインなども豊富にあるようです。JavaでいうMavenやScalaでいうsbtの位置付けにあると思います。 Leiningenのオフィシャルは、Githubと合わせて2つあります? http://leiningen.org/ https://github.com/technomancy/leiningen/ なお、今回使用するLeiningenのバージョンは 2.0.0-preview7となります。安定版ではないようですが、1.x系からは移行が進んでいるようですのでまあいいでしょ。 それにしても、バナーのおじさんが渋すぎる… まずはインスト

    Leiningenことはじめ - CLOVER🍀
    kimutansk
    kimutansk 2013/08/16
    こういうのを経ずにいきなりビルドやEclipseプロジェクトに放り込んでましたが、本来はこういう流れでしたか・・・
  • [clojure] lein-autoexpectで自動テスト[plugin] | DevelopersIO

    ソース変更での自動テスト実行 lein-autoexpectは、ソース変更を検知して自動でテストを実行してくれる、leiningen用のプラグインです。 もともとleiningenを使っていればテスト実行は楽ですが、このプラグインを使うことでさらに楽になります。 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.5 leiningen : 2.3.1 leinコマンドが使える状態にしておいてください。 lein-autoexpectを試してみる 最初からプロジェクトを作ってもいいのですが、Githubからcloneしてくればそのまま試すことができるので、 持ってきてしまいましょう。 % git clone git@github.com:jakemcc/lein-autoexpect.git 次に、設定ファイル(~/.lein/profiles.cl

    kimutansk
    kimutansk 2013/08/14
    これは便利。とはいえ、まずはまともにClojureでテストケースかけるようになれ、が先ですか。もっと積まないと。
  • Storm0.8.2をビルドしてみる - 夢とガラクタの集積場

    こんにちは。 ここ数日暑過ぎて半分溶けている感覚がする今日この頃です。 溶ける・・・とは全く関係ないのですが、 最近Stormのコア側に一部修正を入れて試してみたいことがあったので、ビルドをした時の手順をまとめてみます。 対象バージョンはまずは現状の正式リリースとなっている0.8.2で。 尚、現在の開発版である0.9.0ではモジュール分割もされてよりビルドは複雑化しています。 そのため、とりあえず自分で正式版に手を入れて試してみよう、というのが今回の目的になりますね。 では、やってみましょう。 1.必要となる環境 JDKの他に、Clojureの依存性解決ツールであるLeiningenが必要となります。 後はStormを動作させるのに必要なzeromqとjzmqのインストールも必要ですが、それについてはStorm-Installerを確認してください。 Leiningenの現状の最新バージョ

    Storm0.8.2をビルドしてみる - 夢とガラクタの集積場
    kimutansk
    kimutansk 2013/08/11
    #stormjp Stormの本体の改造を試してみようとすると通る道・・・ということでまとめてみました。需要無いという突っ込みはさておき^^;
  • Clojureコンパイラの型推論器をとりだしてみる - Homoiconic Days

    clojure.orgには,Clojureについて次のような説明がある。 Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection. http://clojure.org/ この型推論(type inference)は,Clojureの説明でたまに名前だけは出てくるものの,その実態についての説明にはほとんどお目にかかったことがない。そこで今回は,Clojureの型推論の機能をClojureから触れるようにして遊んでみよう。 Clojureになぜ型推論が必要か まずはじめに注意しておかないといけないのは,Clojureの型推論はMLやHaskellなどの静的

    Clojureコンパイラの型推論器をとりだしてみる - Homoiconic Days
    kimutansk
    kimutansk 2013/08/06
    こういう風に型推論行われているわけですか。そして型推論ツールは手段として覚えておきましょう。
  • Java 8 を関数型っぽく使うための(中略)をClojureでやってみた - Code Aquarium

    はじめに このエントリーは、Java8のlambda式についてのエントリー派生シリーズへの便乗記事です。まだ下の記事を見ていない方はリンク先を見ておいてください、そうしないと意味がわかりません。 Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~ Java 8 を関数型っぽく使うためのおまじないを F# でやってみたを Scheme でやってみた - 月の塵 SchemeがあるならClojureがあってもいいですよね。 なお、エントリーは 2013年5月時点の最新バージョンである Clojure 1.5.1にて検証しています。 IFn型 (インターフェース) Clojureでは関数のように振る舞うオブジェクトはIFn*1というインターフェースを実装します。パッケージ名まで含めると cloju

    Java 8 を関数型っぽく使うための(中略)をClojureでやってみた - Code Aquarium
    kimutansk
    kimutansk 2013/07/25
    途中までは非常によくわかったのですが、defmacroの書き方がさっぱりなのでそこから頓挫w defmacro学んだらまた見ましょう。
  • ほーむぺーじ #16 日記用 JavaScript を全て ClojureScript で書き終えたプラクティスまとめ ||| Apribase

    日記の JavaScript を全て ClojureScript で書いたので、その過程で出来た所謂俺プラクティスをまとめました。

    ほーむぺーじ #16 日記用 JavaScript を全て ClojureScript で書き終えたプラクティスまとめ ||| Apribase
    kimutansk
    kimutansk 2013/07/24
    書籍を読む順番ですか。今見事に苦労している最中なので・・・ ただ、既にもう後半なんですよね。悩みます。
  • Clojureの"->"マクロ(右矢印みたいなやつ) @ t100のプログラミング脱出作戦

    Clojureのサンプルコードを見ていたら、時々 (-> xxx yyy) みたいなコードに出会うことがあります。 これ、、、なんですのん。ヽ(;´д`)ノ プログラミングClojureにも書いてないし、グーグル先生に聞こうにも記号だからうまく検索できな、、、 と思ったら、「Clojure arrow」 のキーワードで遂に解説ページを発見!(・∀・)わーい Understanding the Clojure -> macro どうも、関数を連続で呼び出す為のマクロみたいです。 上記ページをかいつまむと、こんな感じです。 例えば、こんな式があったとします。 (-> (Math/sqrt 25) int list) これは、次のように解釈されます。 1.(Math/sqrt 25) が実行されます。 25 の平方根で、5.0 が戻り値です。(`・ω・´)9m 2.int 関数に5.0が渡され

    kimutansk
    kimutansk 2013/07/18
    Clojureのこの記法、本をざっと見て乗っていなかったのであせりましたが、こういうわけでしたか。ふむむ。