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

sanitizing

.js

E4Xが // ないとき '&<>'.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/</g,'&gt;') // あるとき <>{'&<>'}.toXMLString()

マクロ

をようやく使い始めた。 (defmacro filer-command (name key . body) (let ((fname (intern (concat "filer-" (string name))))) `(progn (defun ,fname () ,@body) (define-key filer-keymap ,key ',fname)))) (setf (get 'filer-command 'lisp-indent-hook…

"$System.in"

で入力が取れる仕組みを今更ながら追ってみた。 // groovy-1.5.7/src/main/groovy/lang/GString.java 148-157 public String toString() { StringWriter buffer = new StringWriter(); try { writeTo(buffer); } catch (IOException e) { throw new StringWr…

qsort

using System; def qsort(a : list[IComparable]){ | [] => [] | _ => def g = n => a.Filter(x => x.CompareTo(a.Head) == n); qsort(g(-1)) + g(0) + qsort(g(1)) } def r = Random(DateTime.Now.Millisecond); Console.Write(qsort($[r.Next()|_ in [0..9…

ねまーる

http://nemerle.org/ 「 class _{static void Main(){}} 」要らず セミコロンで文を区切るが末尾には不要(Pascal・Smalltalk風) using Nemerle.IO; print("Hello, world!") リスト操作・内包表記 簡潔なλ [1,2,3,4,5].Filter(fun(x){x%2>0}).Map(fun(x){x*…

0.12 メモ

デフォでディレイが入ったのでいらんことせずとも良くなった。jQuery.(get|ajax) の代わりに CmdUtils.(previewGet|previewAjax) を使えばいいのかな。 コマンド名を探す正規表現がこんな↓なのでダブルクォートを使わないと about に名前が出ない。 // @abou…

Functor

元ネタ: http://dev.zeraweb.com/introducing-functor/ class Functor { Functor(Closure c){ with c } def rules = [] def proc = { ...a -> exec a } def given(Object[] args){ def pat = args as List rules << [pat, pat.pop()] } def exec(...args){ …

虚構漫談

*1の一気読みフィード。 MyRemixで作ったのはずらっと並んだHaskell風の関数群を試してみたかったからだが,これが実に使い辛い。 (n..1).collect{ "<img src='hoge${it}.jpg'/>" } ↑こういう処理を実現するのに Map (Lambda{ Out (Substitute (Head $ SplitAt Param $ Split (Text '1,…

Gyao

の番組別フィード。今の所溜池Nowしか見ないけど。

少し広く

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); #content hbox, #content tab, toolbarbutton, toolbox, toolbar {border:none !important} #urlbar-search-splitter {display:none !important} #content * {margin:0 !…

fullfeeds

http://wedata.net/databases/fullfeeds/items 急じゃないけど募集: WEDATA で RSS 非対応な日記書いてる人のサイトをフィード化する xpath とか共有して RSS 公開してくれるサービス http://twitter.com/kazuho/statuses/947905759 を受けて単にURLと全文フ…

偽文士日碌のフィード

http://shokenrss.appjet.net/ 最新のがRSSリーダ内で読めさえすればいいので,一件のみ。 後ろに数字を付けて画像の高さ調節。Google Readerだと400くらい。 + http://shokenro.appjet.net/

条件演算子

.py

>>> 'T' if 1 else 'F' 'T' >>> 'T' if 0 else 'F' 'F'自然にしようとしてかえっていびつになってるような印象。 この存在を知って「 ?: 」への愛着が余計に強まった。これ以上シンプルになりようが無く,誰が考えたのか知らないが素晴らしい発明だと思う。 …

irc

anarchy golf - irc utf-8の扱いを問う問題らしいのつもりでは無かったそうで。Tcl苦戦。

るびまゴルフ 4

.rb

るびま 負でないことを仮定していいなら4B?(Luaだと3B) でも下のコードの意味がよくわからない。 n==0?2:1 この段階でパー超えだし…。 + 負の時の挙動が 1.8.6 (codepad) 1.8.7 (cygwin) 1.9.0 (win) で全部違うのは何故。

連続するアレゴルフ

なんか見覚えある問題だけどネタ元がネタ元だけに流行ってるなぁとか思ってたら完全に乗り遅れた。 一番短そうなのを写経だけでも。 a=[1,3,4,5,6,12,13,15] r=[] a.each{r&&n-1==(a=[]+r[-1])[-1]?r[-1]=[a[1],it]:r<<it} print r ArrayList#getAt の気が利かないせいで冗長になってしまう。 > ruby -e "p [][1]; p [][-1]" nil nil </it}>…

RRRS

mayokara氏謹製の http://feedgen.appjet.net で遊んでみた。 マクロスF○×△ http://feedgen.appjet.net/?url=http%3A%2F%2Fwww.animate.tv%2Fdigital%2Fweb_radio%2Fdetail_104.html&re=main_title2%22%3E%3Cp%3E(%5B%5Cs%5CS%5D*%3F)%3C%2Fp%5B%5Cs%5CS%5D…

fullfeed

http://fullfeed.appjet.net/ 弾さんとこを全文配信化しようとしたがPipesでもMyRemixでもなぜか失敗。しかし要は「description」を「link」先の内容で(CDATAで囲みつつ)置き換えさえすればよいと知ったので文字コードの面倒が無いAppJetで作った。wget()さ…

Array#to_proc

.rb

Symbol#pa - かきにっき なるほどキモイスバラシイ。 class Symbol def [] *arg me = self proc{|o, *a| o.__send__ me, *arg, *a } end end module Enumerable def ^ p map &p end end p (0..4)^:to_s[2] #=> ["0", "1", "10", "11", "100"] これでGroovyの…

wayback

Wayback Machine。URLは location/selection/clipboard から補完。 http://gist.github.com/11583.js

カウンタ付きクロージャ

LL Golf のラストでshinh先生がおっしゃっていたことを受けて呼ばれた回数を内外から参照できるクロージャというのを実現できないかと試行錯誤した結果↓ ExpandoMetaClass.enableGlobally() ({ def loopCounts = [:] def getProp = { String name -> def c =…

dic-goo

goo-dic だと google とかぶるのでひっくり返した。 http://gist.github.com/10926 発音記号等が見えないので背景色を変えざるを得ない。スキンのようなものが実装されて定義済みクラスなど用意されればスタイル決めに悩まずに済むのだが,今のところは決め…

tak y

の Ruby 25B ってもしかしてこれかな。 #!ruby -na puts$F[rand*3] もしそうなら今は Array#choice があるので #!ruby -na puts$F.choice 24B。一万回ほど試せばたぶん通る。

クリップボードから開く

*1 Firefox で Sleipnir の Ctrl+Shift+V を実現する際のメモ。 keyconfigを導入 適当なキーに以下を設定 var u = readFromClipboard().trim(); if(/^javascript:/i.test(u)) content.location = u; else gBrowser.addTab( /^\w+:/.test(u) ? u : 'data:text…

DPVRC

Double Parity Vertical Redundancy Check 明らかに埋め込み問題。性質上 goruby だとキビシイ*1かと思ったが地味な発見により Ruby より 3B 縮む。 *1:適当なバイトを得るための常套手段である「'bar'[$$%3]」が1.9だと文字を返すため

ceil

.js

10 なら 10、 11 なら 20 になる関数を作りたい - IT戦記 Math.ceil は意地でも使いたくないという話かな。 ((+x + a * .9) / a | 0) * a とか? $ cat test.js f = eval('function(x,a)'+ readline()); for each(a in [100, 10, 1, .1, .01, .001]) print([…

google

多用するのでそれなりに凝った。 マシなプレビュー 8件表示*1 まとめて開く ページ指定 言語指定 ロゴ + Ubiquityのコマンドから別のコマンドを呼ぶ方法を踏まえて,google に「(related|link):現在のページのURL」を送りつけるコマンドを追加。 ++ ページ…

thesaurus

英類語辞典。変数名決めるときとかによく使うので。 http://gist.github.com/9130.js XULのページでエラーになるので,ディレイの実装が若干まずいらしい。かといって Utils.setTimeout はクリアが効かないし,どうするのがいいんだろか。 暫定対応した。次…

Ubiquitous Gists

We just pushed out support for commands in Gist If we detect that a Gist contains an Ubiquity command, we’ll add the proper markup to let Firefox know about it. 素晴らしい。というわけでコレとかアレはゴミになりました。

twitter

デフォルトのコマンドにタイムラインの表示とエコーを追加。 const が使えるとは知らんかった。