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
Clojureのprotocol実践 自社開発ではClojureを中心に使っていて、ユーザーが増えて欲しい気持ちもあって、Clojureのテキスト的なものを書いていては挫折、などを繰り返してました。キリがないので、テキストのことは気長に構えて、開発中に気がついたことはどんどんブログに書いて行こうと思います。 手始めに、最近やっと「実用的」という意味で使えるようになったかなーと思えた、「プロトコル」について。 Clojureのプロトコルは、JavaでいうところのInterfaceのようなものです。型名称と関数定義だけを束ねたものです。defprotocolによってプロトコルを定義することができます。 Javaプログラマ歴が長いので「まあInterfaceなら余裕だな」と構えていましたが、意外と使い方が難しい。以下、Javaプログラマ的感覚でプロトコルを使うと使いにくくなりかねない点について書
なんとなく、時々ちょっとしたテストとかで使っているダミーのHTTPサーバ用のスクリプトをまとめたくなりまして。 で、せっかくなのでプラスアルファも入れて。 ホントに簡単なものなので、以下のスペックで。 リクエストの内容を解析することは、必須としない 起動時にはポート番号を指定できる。しなかった場合は、8080で起動 ヘッダ、ボディに何か出力する サーバの終了は、Ctrl-cなどで できれば並行処理可能に ターゲットは、GroovyとClojureでJDK付属のものを使った版、Undertowを使った版を、あとはPerlで1本書きました。 実行結果は、いずれもこんな感じになります。 $ curl -i http://localhost:8080/test HTTP/1.1 200 OK Date: Sat, 12 Apr 2014 08:46:39 GMT Content-type: tex
Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.
ふと思い立ってClojureの勉強を始めることにしました。 - 達人プログラマーを目指してで書いたように、10日前にClojureの勉強を始めました。まだ勉強を始めたばかりのということもあり、他人に上手く正確に説明できる段階ではないかと思いますが、自分自身超初心者の立場で書くということも有意義であると思うので、間違いを恐れずに今まで理解したことのポイントについて書いてみようと思います。*1 スカラー値のリテラル ClojureはREPL(Read Eval Print Loop)という対話的実行環境を持つので、いきなり大きなプログラムを作成しなくても、一行一行結果を確認しながら勉強することができます。したがって、数値や文字列などのリテラルをREPLのプロンプトに入力すると、値がそのまま結果として返ってくることが確認できます。 user=> 0xff 255 user=> 0377 255
Transfer your website 24/7 Customer support 99.99% Uptime guarantee Unlimited websites Start Now Meet your success halfway. Web hosting with Real power. Single & Premium Hosting plans for any project! The power of cutting-edge hardware meets intuitive software built on years of experience - you get all this and more with Hostinger. Every tool you need to start your online success story. Take advan
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。
突発性CL勉強会でSLIMEについて勉強。 id:g000001さん、id:mokeheheさん、NANRIさんとid:tszの4人で実施。 新宿大ガード横店は改装工事をしていたので、近くの別店に移動しました。 新宿のルノアールで7時間実施。SLIMEの話題自体は2〜3時間で終わりましたが、 その後の話が熱かったです。gooやdylanにも興味が出てきました。 以下は勉強会の内容と、その後自宅でおさらいした内容。 SLIME概要 emacs向けのCommonLisp開発環境。 SLIMEはemacsで動作する部分と、lisp側で動作する部分からなる。 lisp側で動作する部分はswankと呼ばれる。 emacsはswankとはS式と通じて通信する。 つまり、swankのプロトコルを理解する処理系であればCommonLispでなくても良い。 schemeやgoo,dylanなどのswankが
Vim Plugin の vimshell (Shougo’s vimshell at master – GitHub) 上で Clojure を実行させてみた。 実行した環境は Ubuntu 10.04 と Mac OSX Snow Leopard。 vimshell は git でダウンロードする。 $ git clone git://github.com/Shougo/vimshell.git ダウンロードしたファイルをそれぞれ ~/.vim 以下にコピーする。 vimshell 上で Clojure の REPL を動かすには、vimproc を使って非同期実行する必要があるようなので vimproc も git でダウンロードする。 $ git clone git://github.com/Shougo/vimproc.git そして、proc.so を make する。 $ m
Slideshareに投稿したのですが、LTでやったので詳細が伝わらないと思ったので解説します。 http://www.slideshare.net/kawasima/ss-33220875 Excel方眼紙の話題は尽きることはありませんが、どうも殺意ばかりが前面にでて、Excel方眼紙と上手く付き合う方法がみられなかったので、作ってみた次第です。 Excel方眼紙をPDF等のただの帳票として考えると、これはなかなか面白いものですし、iTextを使ってPDFを作るより、Excel方眼紙を作ってからPDF化した方が簡単に帳票出力コードかける気がしています。帳票レイアウトもExcel方眼紙であればユーザに直接作ってもらったものが使えますし、ね axbomber-cljとは axebomber-cljは、HTML-likeなコードでExcel方眼紙をアウトプットするためのツールです。 構文はhi
Clojure Web Development Made Simple Luminus is a Clojure micro-framework based on a set of lightweight libraries. It aims to provide a robust, scalable, and easy to use platform. With Luminus you can focus on developing your app the way you want without any distractions. Developer Friendly Start hacking immediately with the REPL and embedded development server Simple and easy to learn REPL driven
Shipped as a template on Leiningen, a Clojure build tool. No need to configure databases - it just works out of the box. Static Clear separation between your content and layouts makes for fuss free customization. CSS and JavaScript can be easily added. Automated Don't worry about linking up your posts or managing your sitemap and RSS feeds, Cryogen does it all.
// JavaScript "hoists" variables to the top of // their scope. So the following function: function printName() { console.log('Hello, ' + name); var name = 'Bob'; } // is equivalent to this function: function printName() { var name; console.log('Hello, ' + name); name = 'Bob'; } printName(); // Hello, undefined
I kid, somewhat. This title is of course based on Douglas Crockford's seminal work, Javascript, The Good Parts , which demonstrated that Javascript isn't a terrible language, if only you avoid the icky parts. This is my heavily opinionated guide to what a "good" production Clojure app looks like in 2016. I love Clojure, I've been using it pretty much exclusively since 2009. In the 7 years I've bee
Make sure you have leiningen installed, that way we can use the Noir template. You do not have to download anything special to use it, just run the command and leiningen will automatically fetch whatever you need! Three commands later, you've got a working website! Now let's make it do something. Noir uses Hiccup to generate HTML. Hiccup represents html elements as vectors where the first keyword
「Clojure は商用サービス採用事例が少ない」というのは過去の話です. Puppet が Ruby から Clojure に移行DevOps 自動化ツールで有名な Puppet は Ruby 製でしたが, その一部は既に Clojure で書かれていました. で,今回の発表は,「一部だけでなく Puppet master を置き換える Pupper Server をリリースするけど,それは Clojure で書きました」 という発表です.ちょっと驚きました.とはいえ, Puppet Labs で Clojure 用のアプリケーションフレームワーク, TrapperKeeper を作っていたので, ある程度は予想できていたのですが. これから,「Clojure で書かれた製品は?」と聞かれたら Puppet Server と答えましょう. 赤い Ruby より 3 倍速い緑の Cloju
みよ!この盃は再び空になろうとし、そしてツァラトゥストラはふたたび人間になろうとしている ── ニーチェ:ツァラトゥストラはこう語った この記事はClojure Advent Calender (全部俺) 1日目の記事です。 始めに 今日から一人によるClojure Advent Calenderを始めます。実は2011年にも、未完ながらもPythonに関する記事を一日一つあげるということをやっていました。2012年は私用によって、Advent Calender自体をスルーしていたのですが、今回の言語のテーマとしてClojureを選びました。 Clojureは、Scalaと一緒で、一般的にはJVM上で動くLisp方言という認識の人が多いと思いますし、関数型的なアプローチを使うということで、お互いにセットとして語れることも、ままあるようです。とはいえ、日本だと、どちらかというとScalaのほ
いつも告知ばかりなので、たまには。 始まり 最近 Clojure を勉強しています。Clojure というのは JVM 上で動く Lisp に影響を受けた言語です。 JVM 上で動く言語といえば Scala だと思いますが、なんか興味が持てなかったので一切手を出していません。 さて、なぜ Clojure かという話しですが、最初は単に新しい言語を覚えたいという理由からです。 仕事では Erlang/Python をメインで書いています。特に Erlang は商用製品で書いているので、かなりガッツリやっています。仕事で使う言語は上記に加えて C くらいです。ただ C は読めれば十分なのでそれ以上は困っていません。 個人的に仕事で使えない言語は覚える気が無いので。趣味で書くのであれば Python で十分でした。 Clojure との出会い Clojure が最初に気になった理由は Herok
結構時間かかった。今日(正確には昨日)の夕方からずっといじってた。まとめるとそんな時間かかるようなものでもないんだけどね。clojureよりvimclojureで色々手間取った。ちなみにプログラミング Clojureのサンプルを動かすだけなら、サンプルコードの中にClojureの実行環境(REPL)が含まれてるので以下の設定をやる必要はなし。 clojureのインストール ソースはgithubから落としてくる。masterでもいいんだけど、clojure-contribの方がmasterだとうまくbuildできなかったので1.1.0を使うことにした。 $ git clone git://github.com/richhickey/clojure.git $ cd clojure $ git co -b 1.1.0 1.1.0 $ ant clojure-contribのインストール プログ
A framework for easily creating beautiful presentations using HTML
www.youtube.com github.com Parensymphonyはコーディングとコードが音楽になるライブコーディング環境の試作品です.ある授業の課題として作り,パフォーマンスをしました.動画を見ていただけるとわかるように,コーディングの操作に音がつきます.また,評価されたコードの構造からフレーズを生成していき,最終的に重なった音楽になります.動画中では,書いたコードで太鼓のパターン生成も行っています.つまり,コードが楽譜とプログラム二つの意味を持っていることになります. ちなみに名称の由来はCommon LispのJavaScriptトランスレータライブラリであるParenscriptからいただきました.恐らくParenthesisとscriptからつけられた名称だと思います. なぜつくったのか ライブコーディングで音楽をする作品には色々な環境,作品があります.Clojur
Stack Overflowが1年おきに公開している開発者調査レポートの2018年版となる「Stack Overflow Developer Survey 2018」が公開された。同レポートは、10万人を超える開発者から得られたアンケート結果を集計したもの。プログラミング言語と給与の関係がランキング形式でまとまっており、どのプログラミング言語が高い給与に結びついているかが示されている。 ランキングは次のとおり。 給料が高いプログラミング言語ランキング - 資料: Stack Overflow 高い給与と関連性が高いプログラミング言語としてはF#が第1位に選ばれており、これにOcaml、Clojure、Groovyが続いている。Groovyより上位にランクインしたプログラミング言語は年収の平均値が700万米ドルを超えており、本稿執筆時点の換算で年収約770万円以上ということになる。 同レポー
iOSアプリを作る場合、blocksを使い非同期処理後にViewControllerなどでその処理の実行内容から任意の処理を実行する場合があった。Swiftではクロージャ(closures)を使い同じような処理を行うための実用的な方法を書いておく。 シンプルなクロージャの記述 まずクロージャの記述 override func viewDidLoad() { //クロージャ let example = { println("exampleじゃけん"); } request(example) request({ println("そのまま渡すこともできるけえの") }) } //クロージャを引数として渡したいメソッド func request(completion: () -> ()) { //渡されたクロージャを実行する completion() //しかしこれはクロージャcompletio
マクロ・クラブのルール マクロを書くな それがパターンをカプセル化する唯一の方法ならば、マクロを書け 例外: 同等の関数に比べて、 呼び出し側が楽になるならば、マクロを書いても構わない κeenです。レーシックを受けようとしたら角膜が薄くて手術拒否されました。予定が狂って時間が空いたのでブログを書きます。 冒頭のルールはプログラミングClojureに出てくるマクロの書き方の指南です。 Rustのマクロって色々できるんだよという記事を書くにあたってマクロに一日の長があるLispの知見を引用されていただきました。 ルールにあるとおり、マクロは関数と違ってRustの第一級オブジェクトでないので扱いづらいですし本体がコピーされるのでコードサイズも膨らんでしまいます。 よく考えながら使いましょう。とはいってもRustの構文はLispに比べると複雑ですし型やパターンマッチなどLispに存在しない構文要
(このエントリはLisp Advent Calendar 2012 1日目の記事です。) はじめに 2年ほど前に、「◯◯言語基礎文法最速マスター」という、それぞれの言語の基本的な文法を説明したブログ記事を書くのが大流行した時期がありました。その流行り具合は、まとめ記事にまとめられた記事の数を見てもうかがい知ることができると思います(たとえば、こことか→プログラミング基礎文法最速マスターまとめ - ネットサービス研究室)。 それで、これだけたくさんの言語がカバーされてれば当然Clojureもあるだろうと思ってググってみましたが、意外にも2年経った今も「Clojure基礎文法最速マスター」はないみたいです。で、僕は入門記事みたいなのは書くのが苦手なのでやらないんですが、「Clojureの基礎文法とは何ぞや」ということを改めて考えてみました。 で、「基礎」をfoundationと考えれば、コンパ
自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30) Leiningenのチュートリアルを訳してみました。 Leiningenを使って開発を始めるのに、いい感じの足がかりに、、、なったらいいな! 無いよりはマシだと思います!たぶん! (`・ω・´)9m ビシ しかし、、、予想以上のボリュームだったので、めっちゃ時間かかってしまいました。 さらに、相変わらず直訳です。すみません。(´・ω・`) 改めて読み返したら、死ぬほど読みづらい・・・。 いつもは訳しながら自分でも実行してみるんですが、今回は訳すので精一杯だったので コマンドやサンプルコードは、原文のものをそのままコピペしています。 前回まで、
この記事はClojrure Advent Calendar 2011の参加記事です。 今回はCompojureでウェブアプリを作る際に使える ある程度実践的(?)なTipsなどを紹介します。 長文なのでご注意くださいCompojureとは†CompojureはClojure向けの軽量ウェブフレームワークです。 Clojure版Sinatraのようなフレームワークでウェブアプリをシンプルに記述できることが特徴で、ringというウェブアプリケーションライブラリがベースになっています。 Hello World†最初にベースとなるHelloWorldを作ります。 HelloWorldの作り方自体はググれば他にたくさん記事が見つかると思うので 詳細な説明は割愛して、コード内のコメントで軽く補足します。 なおこれから先はLeiningenがインストール済みであることを前提にしています。 プロジェクトの
About This Page I don't like reading thick O'Reilly books when I start learning new programming languages. Rather, I like starting by writing small and dirty code. If you take this approach, having many simple code examples are extremely helpful because I can find answers to these questions very easily. How can I define a function? What's the syntax for if and else? Does the language support strin
Menu Lisp is still a secret weapon 07 September 2015 In Paul Graham's 2001 essay Beating The Averages, he convinces you that: Viaweb succeeded because Paul Graham and Robert Morris were better at programming than the other guys. PG & RTM were better at programming than the other guys 'cuz Lisp. You should use Lisp to start shellacking the competition today! So, 14 years later, what's changed? Ca
元ネタはこちら おそらくある言語に慣れるためには、その言語を実際に使うことだと思います。しかし、誰しもが「こういうのを書いてみたいな」というアイデアを持っているわけではありません。そこで、Clojureを練習するためのサイトみたいなのをいくつか見かけたので、ここで共有しておきたいと思います。 4Clojure 最も有名なClojure練習サイトですね。ここの練習スタイルは、__に対して、なんらかの式を入力することにより、全体でtrueになるようにするタイプのものです。 ClojureScript Koans 欠けている部分を穴埋めして、全体として正しいようにするというものについて、海外のプログラマーの間ではKoanとよばれ(たぶん、禅のKoanから来ていると推測します)、親しまれています。これもその一つ。上のがすこしピンとこなければ、こっちから始めてみるのもいいでしょう。元ネタはCloju
sbt 2.x リモートキャッシュ Dec 21, 2023 これは Scala Advent Calendar 2023 の 23日目の記事です。21日目は、さっちゃんのpath 依存型って何? 調べてみました!でした。 はじめに リモートキャッシュは、ビルドの結果を共有することで劇的な性能の改善を可能とする。Mokhov 2018 ではクラウド・ビルド・システム (cloud build system) とも呼ばれている。これは、僕が Blaze (現在は Bazel としてオープンソース化されている) のことを聞いて以来関心を持ち続けてきた機能だ。2020年に、僕は sbt 1.x のコンパイルキャッシュを実装した。reibitto さんの報告によると「以前は全てをコンパイルするのに 7分かかっていたが、15秒で終わるようになった」らしい。他にも 2x ~ 5x 速くなったという報告
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く