素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

2008-12-01から1ヶ月間の記事一覧

IEでCtrl+Aで画像が青っぽくなるのをシミュレートする

IE Ctrl+Aに置いた。 IE向けのトリック画像を、Macユーザなど、IEが使えない人でも見れるようにする。 やってることは単純で、画像の上に、透明と青を交互に描いたgif画像を用意して、指定された画像の上にdivのbackground-imageとして表示するだけ。 locati…

変数のスコープ等

Pythonのローカル変数のスコープはどうなってるのか。 def make_counter(i=0): def succ(): tmp = i i += 1 return tmp return succ counter = make_counter() conter() """ Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in s</stdin></module></stdin>…

スピードダイアル

Quickchoice - a Speed Dial clone for css transform supporting browsersを見て、iframeのページの幅に合わせてサムネイルをフィットさせられるといいと思い、書いた。 Firefoxのnightlyだと上のようになる。 <html> <head> <title>SpeedDial</title> <style> body { overflow: hidden; } #sp</head></html>…

.screenrc

term xterm-color startup_message off vbell off defkanji utf-8 defencoding utf-8 defscrollback 1000 #caption always "%{= yb} %-w%{=b dr} %n %t %{-}%+w %= %{=b yk} [%l] %{=b yb}%y/%m/%d(%D) %{=b ym}%c" caption always "%{=r dd} %-w%{=b dd} %n…

AAが貼ってあるページを自動判別してフォントをIPAモナーにするGreasemonkeyスクリプト

javascripter's gist: 38970 — Gist にスクリプトを置いた。 // ==UserScript== // @name FixAAFont // @namespace http://d.hatena.ne.jp/javascripter/ // @include http* // ==/UserScript== var xpr = document.evaluate('descendant-or-self::*[contain…

最新のFirefoxで最新のFirebugを使う

Index of /pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-macosxから手動でダウンロードするのは面倒なので、なるべく楽に更新できるようにした。 javascripter's gist: 38595 — Gist からrubyスクリプトをダウンロードして実行すると、WEB::Me…

はてなダイアリーのデータを定期的にバックアップする

diary_backup/backup.rb #!/usr/bin/env ruby require "rubygems" require "mechanize" require "yaml" config = YAML.load_file("config.yaml") USER_NAME = config["username"] PASSWORD = config["password"] DIR = config["dir"] agent = WWW::Mechanize…

livedoorReaderのフィードをマルコフ連鎖で作ったワードサラダと入れ換えるGreasemonkeyスクリプト

0.5の確率でフィードのitemを、それを元にマルコフ連鎖で作ったワードサラダと入れ換える。 javascripter's gist: 37913 — Gist にスクリプトを置いた。 インストールすると、フィードのitemが下のような支離滅裂な文章になる。 MOONGIFT: &#187; PHP開発が…

イテレータ

Object.prototype.__iterator__を拡張する場合、その中でfor in構文を使うと無限に再帰してしまうので、下のようにする。 Object.prototype.__iterator__ = function __iterator__(isKey) { delete Object.prototype.__iterator__; for (var k in this) if (…

Ad4Uでどのサイトの情報が抜かれているかを調べる

javascripter's gist: 36272 — Gist にHTMLファイルを置いた。downloadのリンクからダウンロードして解凍してhtmlファイルを開くか、 Macだったら、 $ curl http://gist.github.com/36272.txt > ad4u.html && open ad4u.html とする。

FastladderでLDRのクローラを使うGreasemonkey

追記:console.logとかが残ってたので、gistのほうは直しておいた。 からインストール。 LDRの画面が狭くて嫌でFastladderに乗り換えようとしたけど、LDRと比較してクローラの巡回が遅くて困っていた僕のために。 // ==UserScript== // @name FastLDR // @nam…

XBLとuserContent.cssとGreasemonkey

追記:コメントでbindToUntrustedContent="true"が必要になったと指摘をうけたので追加 2015/3/21 userContent.cssに @-moz-document domain("reader.livedoor.com") { #right_body > .item { -moz-binding: url("ldr.xml#filter") !important; } } と書いて…

最後に更新されたファイルを調べる

こうすればいい。 require "pathname" Pathname.glob("**/*").sort_by {|f| f.mtime }.last

ブログシステムを作りたい

開発者向けのブログシステムを作りたい。まだデータ構造を考えている状態なので、HTMLに出力する時のエスケープは全くしていない。 index.cgi #!/usr/bin/env ruby require "erb" require "yaml" require "filter" class Entries @@count = 0 def initialize…

gitでドットファイルをバージョン管理する

.vimrcとかのドットファイルをgitで管理したくて、検索したら~/dot_filesに管理したいドットファイルへのシンボリックリンク作ったりしていて、面倒で諦めていた。 で、いい方法を見つけた。 まず、~に */* .zsh_history* .viminfo という内容の.gitignoreフ…

マスターキーでパスワードを管理する

マスターキーとドメインからhexdigestを作って、それをパスワードにする。誰かがやっていた気がする。 #!/usr/bin/env ruby require 'yaml' require 'digest/md5' require 'getoptlong' parser = GetoptLong.new parser.set_options( ["-h", "--help", Getop…

履歴管理(失敗)

dataスキームを使えば、戻るボタンを押した時に関数を呼び出したりできるようになるようだ。 iframeのcontentWindowにオブジェクトを登録しても、ガベージコレクションで消されてしまうようなので、window.parentを辿ることにした。 戻るボタンでいきなり複…

FizzBuzz

#!/opt/local/bin/ruby1.9 require "erb" print "Content-Type: text/html\n\n" ERB.new(DATA.read).run __END__ <html> <head> <title><%= Time.now %></title> <style type="text/css"> ol { list-style: none; } </style> </head> <body> <ol><% 1.upto(100) {|i| %> <li><%= if (i % 15).zero? "FizzBuzz" elsif (i % 3…</li></ol></body></html>

自分のHTTP_HOSTを返すCGI

CGIが動く環境を作ったので、試してみる。 こういうのはJSONPって言うのかな。 #!/usr/bin/ruby require "cgi" puts "Content-type: text/javascript\n\n" cgi = CGI.new fun_name = cgi["callback"].gsub(/\W+/, "") if fun_name.empty? fun_name = "callba…

再帰的な正規表現

Ruby1.9で使える再帰的な正規表現。 re = /(?<expr>\((?:\g<expr>|foo)\))/ p re =~ "((foo))" 数式にマッチさせようとして/^(?[+\-]?\d+(?:[+\-*\/]\(\g\)|$))/ってしたら駄目だった。むずかしい。</expr></expr>