Source of Nothingness - random

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* 2009-03-21 :

print-objectを定義するとprincとprin1の両方に影響するんだなぁ
別々に定義することはできないんだろうか。

と思ったらできた。
princとprin1の差は*print-escape*に現れるので、この値で分岐すれば良かった。*print-readably*かと勘違いしてた。

(defclass point ()
  ((x :initform (random 100))
   (y :initform (random 100))))
(make-instance 'point)
;=> #<POINT {121573B1}>
(defmethod print-object ((object point) stream)
  (if *print-escape*
      (print-unreadable-object (object stream :type t)
        (format stream "(~D, ~D)" (slot-value object 'x) (slot-value object 'y)))
      (format stream "(~D, ~D)" (slot-value object 'x) (slot-value object 'y))))
(make-instance 'point)
;=> #<POINT (53, 69)>
(format nil "~A" (make-instance 'point))
;=> "(55, 81)"
(format nil "~S" (make-instance 'point))
;=> "#<POINT (41, 71)>"
(ReadMore...)

* xyzzy lisp : シャッフル

(defun nswap (l x y)
  (rotatef (car (nthcdr x l)) (car (nthcdr y l)))
  l)

(defun nshuffle (l)
  (do ((i (length l) (1- i)))
      ((>= 1 i))
    (setq l (nswap l (1- i) (random i))))
  l)
元のデータを直接いじっていくほうが分かりやすくないッスか?
ってことでこんな。
nswapは関数にする必要は無いけど意味が分かりやすいように。

* RandomNote : ChangeLog (改造記録)


Todo

* RandomNoteWiki記法 - TextFormat

(ReadMore...)

* RandomNote について。

RandomNote について。

ChangeLog
Todo

* xyzzy lisp : junk/httpの利用例として

RandomNote投稿lisp
refwikiのPOST用も作ってみたり。公開はしないけど。
(ReadMore...)

* RandomNote : Todo


ChangeLog

* RandomNote : コメント記入欄

コメント記入欄をつけてみる。
これでなんとなくblogっぽく見えるかな。
所詮飾りですけど。
「edit」でいくらでも編集できるし。

(ReadMore...)

* RandomNote : RSS auto-discovery

付けてみました。
HTTP応答ヘッダも「Content-type: application/xml」に変更。

参考

* RandomNote : NOT検索

適当にNOT検索ができるようにしてみる。
Rubyはまだよく分からんので変なことしているかも。
どなたかうまいこと実装してくれないかなぁ。

検索語が「-」で始まる場合はNOT検索をします。
(ReadMore...)

* 2006-02-13

RandomNoteをソーシャルブックマーク的に使えるように改造。
個人で使うから「ソーシャル」じゃないけど。
RubyはRubyで頭の使い方が微妙に違う気がする。
リファレンスの読み方は慣れの問題かな。
javaの方が見やすいような気がするけど。

* 2006-02-09

;;; RandomNote投稿
(require "junk/http")

(in-package "junk")

(defvar *rn-url* "http://raido.sakura.ne.jp/southly/rn/index.rb")

(defun rn-post (url str)
  (let (http)
    (multiple-value-bind (proto host file anchor port)
        (junk-http-url-study url)
      (unless (string= proto "http")
        (junk-error "Protocol is not http: ~A" url))
      (unwind-protect
          (multiple-value-prog1
           (setq http (junk-http-request-send host file "POST" :data (format nil "cmd=edit_do&fname=&mes=~A" (si:www-url-encode str nil "0-9A-Za-z"))))
           ; 結果確認するならここ
           (and http (close http)))
        (close http :abort t)))))

(defun user::rn-post-region (beg end)
  (interactive "r")
  (rn-post *rn-url* (buffer-substring beg end)))

ということでできたRandomNote投稿Lisp。
xyzzyからM-x rn-post-regionで投稿します。
編集とか削除はしない方針なので作る予定はありません。

with-open-streamを見てちょっと修正。
一応closeしたほうがいいんだっけ?