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

きつねさんでもわかるLLVM【電子書籍】柏木餅子, 風薬 達人出版会 発行日: 2013-02-08 対応フォーマット: EPUB, PDF 詳細を見る 先日、表紙がかわいかったので、「きつねさんでもわかるLLVM」を買いました。 なので、MinCamlを改造して、バックエンドにLLVM対応コードを追加してみました。 とりあえずテステケースは全部通ったので、まとめておきます。 MinCamlとは 別名「美しい日本のMLコンパイラ」。住井先生によるMLサブセットであり、以下のようなコードを書けます。 let rec fib n = if n <= 1 then n else fib (n - 1) + fib (n - 2) in print_int (fib 30) 詳しくは解説スライドあたりを読んでください。 やったこと バックエンド部分をLLVMにきりかえた。 LLVMの作法に合せるた
今日話さないこと JavaScriptの基礎知識、jQueryの導入 気持ちいいUIやUXがうんちゃら CanvasやWebGLを使ったリッチでイケてるゲームの作り方
概要 LISPでカリー化された関数を定義するマクロを作ってみた.カリー化された関数は,必要な数の引数が渡されればただちに評価されて結果を返すが,引数の数が足りなければ部分適用された関数となる.それもまたカリー化されている. 動機 昨日も一日中椅子に座ってJava書いて……今日も一日中椅子に座ってJava書いて……きっと来週も再来週も一日中椅子に座ってJava書いて……毎日毎日同じ事の繰り返しで,生きてる気がしないんだYO! 簡単なカリー化 定義通りカリー化するだけなら,こんなふうにすればいい. (defun currying (arg-list &rest body) (let* ((args (reverse arg-list)) (last-arg (car args)) (other-args (cdr args))) (reduce #'(lambda (acc elem) `(l
きっかけは XP祭り関西2013 の @StoneGuitar777 さんのLTからです。 LTスライド: XP祭り2013-LT-Codeer @ITの記事: 特集:受け入れ検査の自動化手法の考察:Windowsアプリの受け入れテストを自動化しよう (1/5) - @IT 「継続的デリバリー」に貼付けた付箋を抜き出してみる 【大阪】継続的デリバリー読書会(8回目) - connpassの範囲でもありました。 受け入れ=ビジネス的な受け入れ基準=ユーザーの価値 ユニットテストとの色分け ユニットテスト: 作り手の意図 受け入れテスト: 顧客の意図 うまくやらないとコストが高すぎる 適切に作成して保守すれば自動のほうがはるかに安上がりになる ユニットテストやコンポーネントテストではどれほど包括的にやっても検出出来ない問題がある 手動テストはアプリケーションの複雑さに関わらずきわめて高くつく
様々なAWSのAPIやツールを紹介:『Tools for Amazon Web Services』 AWS SDKs & Tools しばらく前に、上記『Tools for Amazon Web Services』というページが公開されました。AWS利用に関するToolやAPIが整理され、ここを見ればどんな情報が用意され、何が出来るのか…そういった事が一目で把握出来るようになりました。 ただ、見渡してみるとその種類の多さにちょっと面食らいますw (※種類数は2013年04月末現在のもの) SDKs:8種類 IDE Toolkits:2種類 Command Line Tools:23種類 Command Line Tools(復数サービス対応):2種類 既に使っている言語でAWSを利用する、またはAWS利用に当たって言語や環境が決まっている、と言うのであればそこまで悩むものでも無いかも知れま
さて、Java8で関数型っぽいことをやって遊んでみたわけですが、実際はそんな書き方しませんよね。 Java8で実際に使うのは、Streamです。 ということで、Streamの使い方をひととおり見てみます。 ※5/17 仕様変更があったので、修正しました 基本 まずは、Iterableインタフェースに用意されたforEachメソッドを見てみましょう。 List<String> names = Arrays.asList("hoge hoge", "foo bar", "naoki", "kishida"); names.forEach(s -> System.out.println(s)); これで次のように表示されます。 hoge hoge foo bar naoki kishida いままでの拡張forだと次のように書いてました List<String> names = Arrays.a
はじめに このエントリーは、Java8のlambda式についてのエントリー派生シリーズへの便乗記事です。まだ下の記事を見ていない方はリンク先を見ておいてください、そうしないと意味がわかりません。 Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~ Java 8 を関数型っぽく使うためのおまじないを F# でやってみたを Scheme でやってみた - 月の塵 SchemeがあるならClojureがあってもいいですよね。 なお、本エントリーは 2013年5月時点の最新バージョンである Clojure 1.5.1にて検証しています。 IFn型 (インターフェース) Clojureでは関数のように振る舞うオブジェクトはIFn*1というインターフェースを実装します。パッケージ名まで含めると cloju
SchemeJava 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる〜何だかよくわからないですが、 lambda といえば Scheme (というか Lisp)なので、似たようなことはどうとでもできます。上記の記事のパクリなので、上記の記事をまずは読んでから読むことをおすすめします。Scheme が関数型プログラミング言語かどうかはよく知りませんが、最近眺めていた Declarative Continuations and Categorical Duality に "a modern functional programming language, s.a. Scheme or ML" (p. 7) という表現があったので、まあ大丈夫でしょう。 型Scheme では何らかの値の集合を型 (type) と呼びます。手続きの型は procedure? という手続きに渡し
先日告知したCandyCaneの開発会が無事に執り行われました。参加者の皆様にはCandyCaneの特製パーカーと肉たくさんカレーを進呈させていただきました。Hamacoさんの動きっぷりにイベントの盛況さが現れています。 丸一日のTDDは強烈な成果 今回は新しく開発に加わってもらう方を募るという事も兼ねて、ユニットテストを厚くするという作業を中心に丸一日の開発を行いました。よって1日で20以上のプルリクエストをマージしましたが、昨日は何も増えていません。とはいえ実際に稼働するアプリケーションのソースコードにテストを書き、プリリクエストとCIを併用したチーム開発を行うという内容は実にチャレンジでTDD未経験の方にとっても実りある内容になったようです。 Travis CIは最強 コミットがプッシュされる度に自動的にユニットテストを実行して結果をレポートしてくれるTravis CIですがやはり便
definline を使って Clojure でも配列を Java のように簡潔に扱えるようにします. 関数のような配列Clojure で配列を操作するコードは たとえば,二次元配列にアクセスする場合,Java なら a[i][j] で済むところが Clojure だと: (aget ^longs (aget ^objects a i) j) となります.Java と比べて長く,さらに読みにくいです. ここで,Clojure のコレクションが関数であることを思い出しましょう. たとえば,ベクタなら: user> (def v [1 2 3 4]) #'user/v user> (v 3) 4 のように,インデックスをキーとして要素にアクセスすることができます. これを配列にも適用して, Java の a[i][j] を (a i j) と書けるようにしましょうというのがこの記事の趣旨です.
Code ColaはGoogle Chrome機能拡張として動作するスタイルシート設定ツールです。 Webインスペクタを使うとWebページを表示したままスタイルシートの編集ができます。ただ、数字やテキストを入力する形なので、思った通りの編集が難しいかも知れません。そこで試したいのがCode Cola、Google Chrome用のビジュアルスタイルシート変更ツールです。 立ち上げました。右上にあるウィンドウがCode Colaです。 任意のDOMを選択すると設定項目が表示されます。 スライダーを使ってフォントサイズをダイナミックに変更できます。 テキストのストロークを変更。 HTMLソースの表示。 設定項目を全てオープンしています。 テキストシャドーの設定。 Code Colaの利点は何と言ってもビジュアル的に分かりやすく、ダイナミックにスタイル設定ができることです。表示、非表示などの設定
Sieve jQuery Plugin テーブル行をインクリメンタル検索できるようにするjQueryプラグイン「Sieve」。 テーブル行数が多いと探すのが大変だったりしますが、このプラグインでインクリメンタル検索で表示要素を絞り込むことができるようになります。 地味に便利で簡単に実装できるので覚えておくとよさそう 関連エントリ HTMLのあらゆるエレメントに注釈を入れられるjQueryプラグイン「Chardin.js」 iPhoneのサイドメニュー風UIが作れるjQueryプラグイン「jPanelMenu」 パララックスなスライダーを実装できるjQueryプラグイン「FractionSlider」 Google画像検索っぽい画像ギャラリーが作れるjQueryプラグイン「Superbox」 アニメーションしながらソートできるjQueryプラグイン「Animated Table Sorter
気象庁の地震情報|平成25年04月13日05時48分 気象庁発表 4/13のAM5:33にM6.0らしい地震がありました。各地で大きな被害が無いことを祈りつつ。 フジテレビのアナウンサーさんが淡路島の電車の状況を聞いたと言う話 【放送事故】フジテレビが淡路島民に「電車動いてますか?」と質問 「淡路島は電車ありません」 - NAVER まとめ だいたい見てると「電車無いのを知らずに聞いてしまった」のを叩く向きに思えます。実際のところ、聞いたこと自体はNGなのでしょうが、これをシステム開発の話に置き換えると見えるものがある気がしました。 以降はJavaの語彙で書きますが、これって NullPointerException っぽいなと。 コードっぽい何かで書いてみる こんな感じ。 運行状況 = 淡路島.get路線().get運行状況(); get路線() が何を返すのか知らないけど、これが nu
いまさら感もあるけど、基盤地図情報(JPGIS)対応GDAL。以下「mext_gdal」とします。mextと付いているのは文科省さんの事業の中で開発されたためです。 GDALは、GISの各種フォーマットの相互変換や加工等に活躍してくれるライブラリ+ユーティリティ。基盤地図情報は国土地理院が発行する使用条件が緩い地図データ。 GDALは基盤地図情報を読めないのですが、mext_gdalは基盤地図情報に対応してくれたというもの。ありがたや。 ダウンロードは http://www.osgeo.jp/foss4g-mext/ から。 ちょっと思うことがあって、mext_gdalをビルドしなおそうとしたところ、いくつかひっかかったところがあったので、ここに残しておきます。 GDAL 1.9.0 ベースに由来する問題 基盤地図情報対応GDALはGDAL 1.9.0をベースにしています。現在のGDAL
うごメモはてなのユーザ情報を API から取得します. 残念なことに, うごメモはてなが今年の 5 月 31 日でサービスを終了するそうです. しかし,そこははてなで,サービスが終了する前にバックアップできるようにと, 「うごメモはてなの情報取得APIを公開しました」 してくれました.しかも, 某政府機関 とは違って,エクセルではなく JSON で返ってきます.素晴らしいの一言です. 「うごメモはてなの情報取得APIを公開しました」のページには Perl と Common Lisp のサンプルコードはあるものの, なぜか Clojure のサンプルコードが無かったので書いてみました. (ns ugomemo-hatena.example (:require [clojure.data.json :as json])) (defn- api-request [url] (-> url slu
1 kazu@iij.ad.jp 2 3 Paul Graham 4 Andrew Hunt and David Thomas 5 6 Java 7 Java Java Java 3 8 Haskell Scala Scala 9 10 Java Java Dean Wampler AWT ActionListener public interface ActionListener extends EventListener { public void actionPerformed(ActionEvent e); } 11 AWT ActionListener import java.awt.*; import java.awt.event.*; class ButtonApp { private final Button button = new Button(); public Bu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く