アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Lisp

アクトインディ技術部隊報告書のソース公開

こんにちは、tahara です。 この「アクトインディ技術部隊報告書」は Common Lisp で書かれていますが、このたびソースを公開しました。 https://github.com/actindi-dev/tech-blog 作りを簡単に説明します。 Web サーバは nginx すみませんが Common Lisp …

Jenkins から Common Lisp で Skype へ通知

こんにちは、tahara です。 いいかげん Jenkins くら導入しようよ、ということで導入しました(ステージングへの cap が Asset Pipeline の precompile で時間がかかるようになって、手で cap するのがめんどうになったのが本当の理由です)。 Jenkins のセッ…

アクトインディ技術部隊報告書を Elephant から Rucksack に移行

こんにちは、tahara です。 前々回のRails3 への移行に続いて移行ネタです。 本ブログ「アクトインディ技術部隊報告書」は Common Lisp (SBCL) + Hunchentoot + Elephant で動いていました。 しかし、1年2ヶ月ぶりのエントリを書こうとした時、新規エントリ…

隙があればlispを詰め込んで行きたい (9)

こんにちは、chibaです! 隙があればlispを詰め込んで行く日々ですが、古めのウェブページの累計カウンター的な物を月に一回更新するという作業が発生しました。 sedで一発かなと思いましたが、sedで一発と思ったらCLで書くことにしているので、CLで書いてみ…

隙があればlispを詰め込んで行きたい (7)

こんにちは、chibaです! 隙があればlispを詰め込んで行く毎日ですが、今日の課題は、 "8/24(火)、 8/25(水)、 8/26(木)、 8/27(金) 8/31(火)、 9/1(水) 、 9/2(木) 、 9/3(金) 9/7(火) 、 9/8(水) 、 9/9(木) 、 9/10(金) 9/14(火)、 9/15(水)、 9/16(木)、 …

隙があればlispを詰め込んで行きたい (6)

非常にどうでも良い理由で今日が祝日であるかどうかを判定したくなりました。 休日の判定は思ったより色々面倒そうですが、動機がどうでも良いことだけに簡単に済ませたいところ。 ということで、休日情報のAPIが公開されていないか調べたところ、いくつかみ…

隙があればlispを詰め込んで行きたい (4)

隙があればlispを詰め込んで行きたい日々ですが、今回はWordPressのデータをいじる仕事です。 仕事の内容ですが、WordPressにはカスタムフィールドという便利機能があり、ここに入力したデータが便利にページに表示されます。 このカスタムフィールド内のHTM…

隙があればlispを詰め込んで行きたい (3)

隙があればlispを詰め込んで行きたい日々ですが、今回はウェブ上のHTMLの内容確認の仕事です。 具体的には、h1、title、meta keywords、meta descriptionが記述されたCSV形式のファイルがあり、これの内容どおりになっているかをチェックする、という内容。 …

隙があればlispを詰め込んで行きたい (2)

こんにちは、chibaです。 今回もネタがないのでLISPネタです。 日常の作業では、テキストファイルを加工することが割とあったりすると思いますが、そういう時には、sedや、awkって便利ですよね。 ちょっとした一行野郎が大活躍、ということは結構あると思い…

Lisp on Rails 第9回 〜 ビュー

こんにちは!! tahara です。 Objective-C づけになり、すっかりこぶさたしておりましたが Lisp on Rails 第9回です! 今回はビューです。 Common Lisp で ERB 相当を実装します。 Common Lisp で実装するからにはリードテーブルを使い、 HTML ファイルを関数…

Lisp on Rails 第8回 〜 before_*

こんにちは!! tahara です。 Lisp on Rails 第8回です! 今回は ActiveRecord::Base の save, create, update, destroy 等々のメソッドには beforo_* や after_* というフックメソッドを定義することができます。 ActiveRecord::Callbacks でそのあたりの実装…

Lisp on Rails 第7回 〜 ActiveRecord::Base の find メソッド

遅くなりました!! tahara です。 Lisp on Rails 第7回です! 今回は ActiveRecord::Base の find メソッドの機能を多少実装してみたいと思います。 ActiveRecord::Base の find メソッドは次の4つの使い方があります。 id で検索。 引数は (id, *args), (id1,…

Lisp on Rails 第6回 〜 ここらでリファクタリング

こんにちは!! tahara です。 Lisp on Rails 第6回です! has-one を has-many のコピペで書いてしまったので、 ここらでリファクタリングしたいと思います。 has-one のスロット定義 (defclass ar-has-one-slot-mixin () ((has-one :initarg :has-one :initfo…

Lisp on Rails 第5回 〜 has-one

こんにちは!! tahara です。 Lisp on Rails 第5回です! 今回は ActiveRecord の has_one アソシエーションもどきを実装したいと思います。 前回の has_many に瓜二つです。 ar-has-one-direct-slot-definition と ar-has-one-effective-slot-definition を定…

Lisp on Rails 第4回 〜 has-many

こんにちは!! tahara です。 Lisp on Rails 第4回です! 今回は ActiveRecord の has_many アソシエーションもどきを実装したいと思います。 前回の belongs_to とほとんど同じです。 ar-has-many-direct-slot-definition と ar-has-many-effective-slot-defi…

Lisp on Rails 第3回 〜 belongs-to

こんにちは!! tahara です。 Lisp on Rails 第3回です! 今回は ActiveRecord の belongs_to アソシエーションもどきを実装したいと思います。 実行時のイメージとしては次のようになります。 (def-record post) (def-record comment (:belongs-to post)) ; c…

Lisp on Rails 第2回 〜 メタクラス

こんにちは!! tahara です。 Lisp on Rails 第2回です! ActiveRecord::Base ではクラスメソッドとして find や all の検索メソッドが定義されています。 Common Lisp でそれらを実装するにあたり、メタクラスのメソッドとして実装してみます。 Common Lisp …

Lispに興味がない・・・だと・・・?

興味のある言語にLispと書いておいたら面接で爆笑された 面接官「Lisp・・・ふははっ!Lisp!」 面接官「Lispやってるんですか?wwwww」 俺「(唖然)は、はい・・まだS式を理解したぐらいですが。。」 面接官「Lisp・・・ニヤニヤ」 Hunchentootで動いてるこ…

Lisp on Rails 第1回

こんばんは!! tahara です。 いま仕事で Ruby on Rails を使っています。 正直 Active Record いいっすねー。 DB いじるには楽です。 くやしいので Common Lisp でそれっぽいのを実装してみます。 Lisp on Rails ですね(何だか以前から聞く言葉のような気も…

Rubyの好きなところ

こんにちは、chibaです! 私はCommon Lispからプログラミングを始めたせいか返り値を使ったプログラミングスタイルが好きなのですが、Rubyは多値と配列と可変長引数が統合されたようになっていて、なかなか使い勝手が良く、Rubyの好きなところの一つです。い…