Let's write β

プログラミング中にできたことか、思ったこととか

2012-01-01から1年間の記事一覧

Source-Code-Pro導入してみました。

[速報] ソースコードを表示するためのフォント「Source Code Pro」をアドビがオープンソースで無料公開 - Publickey なにやらSource Code ProというフォントがAdobeから公開されたとのことで、話題になっていたので 早速導入してみました。 まずは、自分…

Debian Wheezyに移行しました。

今時間があったのでGnome-Shellをつかうために、Debian wheezyに移行しました。 途中ですこしパッケージの更新がうまくいかずてこずったりしましたが、無事に移行できました。 ドライバーの方も一度アンインストールし、ATIから最新版をダウンロードしてイン…

はてなBlog ベータに移行してみました。

ダイアリーからブログへの移行が簡単になったとの事なので、移行してみました。 自動リダイレクトとかあるので、移行も簡単でした。はてなはスーパーpreがつかえるので、LispのSyntax Highlightが 楽にできるのが良いので、愛用させてもらってます。

CLでmetaclassでdispatchするdefmethodはできない?

素朴な疑問なのですが、CommonLispでdefmethodするにあたって、meta-classレベルでdispatchできるのでしょうか? http://coding.derkeiler.com/Archive/Lisp/comp.lang.lisp/2007-06/msg01042.html ここを見るかぎり、できないとの回答でした。 しかし、Post…

ダメだった..

できると、おもっていた.できなかった。 (defpartial main-layout (&rest contents) (:html (:head (:link :href "/static/css/bootstrap.css" :rel "stylesheet" :type "text/css") (:script :src "/static/js/bootstrap.min.js")) (:body contents))) CL-A…

勘違いしてた。

どうやって部分テンプレートみたいなのつくってそれを連鎖させれば良いんだろうとかいってたけど、普通にできた。勘違いしてた (ql:quickload :cl-markup) (defmacro defpartial (name args &body body) `(defun ,name ,args (markup:markup ,@body))) (defp…

正規表現でmatchをつかってcond

正規表現でマッチしたときだけ、式を実行したいときってありますよね。 ただ、二回チェックするのは冗長なので、cond風に書きたいですね。 そこでマクロです。 (defmacro aif-match (regex str then-expr &optional (else-expr nil)) (if (stringp regex) `(…

Vectoをつかってマークを自動生成

ちょっとしたマークやフラグを大量生成するならVectoをつかってみるのも手かもしれません。 (ql:quickload :vecto) (defpackage :vecto-user (:use :cl :vecto)) (in-package :vecto-user) (defun radiant-lambda (num file) (with-canvas (:width 90 :heigh…

QuickLispコマンドライン

Quicklispをコマンドラインから利用できれば便利です(?) まぁいずれにせよ、なんとなくライブラリ管理と処理系は別にしておきたいのです 本当は処理系依存をはずしたいのですが、今はこれだけ #!/usr/local/bin/sbcl --script ;;; The following lines ad…

ネットがない環境に行くという事

昨今はネットに接続できる環境に居る事が多く、ここ3日ほどネットの接続環境が無い環境にいっており、 自分の頭とPC内の資料以外にたよれない環境にいました。そんな環境にいながらもがいていると、どれほど普段自分がネットや別のマシン等の外部リソースに…

CLでねじれヒープ

何かしらコードを書いていないと元々無い腕がなまるので、「関数プログラミングの楽しみ」を読みながらねじれヒープをHaskellからLispに移植してみました。 ;;Define basic types (defclass <tree> () ()) (defclass <null> (<tree>) ()) (defclass <fork> (<tree>) ((item :initarg :item </tree></fork></tree></null></tree>…

OpAuthのStrategyをPHPをはじめて2日で2つ作ってみた。

PHP

PHPでCakePHPなどを利用してWebサービスを開発している人も多いと思います。 ネット上でOpAuthというOAuthの面倒をみてくれるナイスならライブラリを発見したので、利用していたのですが、連携可能なサイトの中にFlickrがなかったのですが、自分の開発中のサ…

CommonLispではてなブックマークAPI

ちょっと情報を抽出したい事があったので、片手間ですが、つくってみました。 (ql:quickload :drakma) (ql:quickload :cl-json) (setq drakma:*text-content-types* (cons '("application" . "json") drakma:*text-content-types*)) (setq drakma:*header-st…

新しい言語を学ぶときにチェックすること

ある言語からある言語へ移行するときや、新しい言語を学ぶときに付きまとうのが その言語独特の文化も問題です。自分の今つかっている言語とはまったく違うメンタルモデルをもっている言語を勉強するときに、闇雲に突っ込んでいっても五里霧中になってしまい…

Javascriptの本を二冊買いました。

僕としては僕はデスクトップ系のソフトウェアが書きたいのですが、最近は主にAndroidのアプリケーションやWebアプリケーションを実装する案件を抱えています。RubyOnRailsはまぁ理解したかなという事で、ある程度サクサク作成(良い語呂だ)できるのですが、…

COWON iAudio10を買いました。

以前はiPodやらをつかっていた時期が僕にもありました... しかし、今はLinuxを母艦としてつかっている事もあり、ポータブル音楽プレーヤーにはかなり 制限がありました。その中でLinuxでも利用できると報告されておりまぁ使いやすそうかなとおもったので COW…

CLでClojure風関数ディスパッチメソッド

プログラムを書いているときに、Clojure風のメソッドのディスパッチに引数にたいして関数を適応した 結果を利用して実行するメソッドをディスパッチする機構がほしいなぁとおもいました。 そこで、MOPをつかってちょっとした実装をしてみました。 (ql:quickl…

Clojure NoirでTwitter Like

ClojureのNoirとかデータベースとかの復習のために、Twitter Likeなんだけど、 一人でつぶやくだけの物をつくっています。一人でつぶやくだけという目的によって ほとんどデータ管理はしてません。

Project Eular Problem 19

Haskellで単調に import Data.List isLeapYear :: Int -> Bool isLeapYear y | (y `mod` 4 == 0 && (not (y `mod` 400 /= 0 && y `mod` 100 == 0))) = True | otherwise = False dayList :: Int -> [Int] dayList y | isLeapYear y = [31]++[29]++[31,30,31,…

HaskellでLCS

特に何もなくパターンマッチでやってます。 メモ化はまだ勉強中。 lcsLen :: (Eq a) ⇒ Int → Int → [a] → [a] → Int lcsLen _ 0 _ _ = 0 lcsLen 0 _ _ _ = 0 lcsLen i j seq1 seq2 | lastSeq1 ≡ lastSeq2 = 1 + lcsLen (i - 1) (j - 1) nextSeq1 nextSeq2 | …

Haskell手習い

双六において、n番目のマスに停止するためのサイコロの目のでかたは何通りあるのか?という 問題がありまして、簡単な再帰なのでHaskellの練習につかえればとおもってやってみました。 import Control.Monad findPatterns n | n < 0 = 0 | n <= 1 = 1 | othe…

円周率を画像に...続

続き。 ちょっと修正して、10000桁でやってみました200x200の画像になってます。 (defun filter-numchar (str) (coerce (remove-if-not (lambda (x) (<= (char-code #\0) (char-code x) (char-code #\9))) (coerce str 'list)) 'string)) (defvar *pi-str* (…

円周率を画像に..

円周率は完全にランダムな数列なので、探索していけば原理的には可能な有限列はすべてその中に部分列として発見できるはずです。 そこで、とりあえず円周率を画像にするという事をしてみたくなりました(突発的に) そこで、簡易なスクリプトを書いてみて先…

JAG2009 ProblemA

Luck Manipulator (defun next-rand (a b c x) (mod (+ (* a x) b) c)) (defun manip-slot (y-list a b c x) (labels ((%manup-slot (y-list a b c x frm) (cond ((null y-list) ;;前のフレームでゲームが終了していたという事なので (1- frm)) ;;達成不能 (…

JAG2007ProblemD

Square Route (defun read-town (n m) (list (loop for i from 1 upto n collect (read)) (loop for i from 1 upto m collect (read)))) (defun collect-cdr (list) (loop for lst = list then (cdr lst) until (null lst) collect lst)) (defun count-squar…

すごいH本をかったよ!

かなり流行の波にのりおくれましたが、本日、急におもいたち すごいH本こと『すごいHaskellたのしく学ぼう!』を無事購入いたしました。

JAG2010ProblemB

Moonlight Farm (defstruct seed name p a b c d e f s m) (defmethod calc-max-time ((s seed)) (+ (seed-a s) (seed-b s) (seed-c s) (seed-d s) (seed-e s) (loop for i from 1 upto (1- (seed-m s)) sum (+ (seed-d s) (seed-e s))))) (defmethod calc-m…

JAG2010ProblemA

Sum of Consecutive (defun iota (num) (loop for n from 1 upto num collect n)) (defun get-all-pattern (num) (let ((seq (iota (1+ (floor num 2))))) (loop for pat in (loop for i from 0 upto (1- (length seq)) append (loop for j from (+ 2 i) upt…

ICPC2009ProblemB

How Many Island? #include <stdio.h> int filledp(int map[][50],int w, int h) { int i,j; int filledp = 1; for(i = 0; i < h; i++) { for(j = 0; j < w; j++) { if(map[i][j] == 1) { filledp = 0; } } } return filledp; } void mark(int map[][50], int x, int </stdio.h>…

JAG2008 ProblemA

Princess's Gamble (defun ticket (m p votes) (let ((sum-of (* (/ (- 100 p) 100) (* 100 (apply #'+ votes))))) (if (zerop (nth (1- m) votes)) 0 (floor (/ sum-of (nth (1- m) votes)))))) (defun main () (loop for n = (read) for m = (read) for p …