[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

ブックマーク / shinh.hatenablog.com (9)

  • Firefox をある程度の単位で上下 - 兼雑記

    今さらながらに Greasemonkey とか便利なんじゃないかとか思いはじめていたりするんですけど。でも便利だけど書いてて楽しくないよねとか。要するに役に立つものはツマらない教の信者だというだけですけど。 なんとなくはてなブックマークで j とか k とか押してみたところ、項目単位でスクロールできることに気付いて、あーコレ gmail でもあったけど他でも結構使いたいかもなぁとか思って、既出予感ひしひしながらも、なんとなくスクロールする単位を検出してなんとなく上下にスクロールするスクリプトを書きました。人狼BBSだの四国だのの発言単位スクロールとかもできるとか。 はてなアンテナの JS をチラチラ見させていただいたのと、 getElementPositionY は http://d.hatena.ne.jp/ghostbass/20060718/1153228402 を参考にさせていただ

    Firefox をある程度の単位で上下 - 兼雑記
    yheld
    yheld 2007/08/30
    既にshinhさんがLDRize的なアイデアを持っていたのか
  • Short Coding - 兼雑記

    http://www.amazon.co.jp/Short-Coding-~%E8%81%B7%E4%BA%BA%E9%81%94%E3%81%AE%E6%8A%80%E6%B3%95~-Ozy/dp/4839925232 ガツガツ読んでました。後半の方は執筆時から見せていただいていて、今だいたい現物で前半は読んだので、ざっとは一通り読んだんじゃないかと。 前半の方を読んでいていいなーと思ったのは、説明に使う問題の順番がすごい適切だなということ。ゴルフの解答ってたいてい色んなテクニックがいりくんで出てくるので、単体で説明していくにはすごく注意深く問題を選ばなきゃならなくて難しいと思うんだけど、ちゃんと一つずつ簡単なとこから説明できてる感じで、さすがあれだけ問題数こなしておられる id:Ozy さんだなぁと。 あと面白いのはこう Short Coding がさも当然のやるべきことであるかのよ

    Short Coding - 兼雑記
  • cal - 兼雑記

    で、プログラムシンポジウムではなんか cal を書けというのがお題だったので会場で適当に書いてた。それ以外でも久々に好き勝手なコード書きまくれて楽しかった。 D言語。特にゴルフとかはしてない。 import std.metastrings; template is_leap(int y) { const int is_leap = y % 400 == 0 || (y % 100 != 0 && y % 4 == 0); } template days(int y, int m) { const int days = (is_leap!(y) && m == 2) ? 29 : "X303232332323"[m]-20; } static assert(days!(2000, 2) == 29); static assert(days!(2001, 2) == 28); static a

    cal - 兼雑記
  • Polyglot Quine 続き

    前書いた Polyglot Quine なんですが、 Brainfuck 埋める時に Hello に日和った のはいかんよなー、とか思ったので Brainfuck を混ぜてみた。 Brainfuck & Perl & Ruby & Python & C++ (& PHP) で動く Polyglot Quine です。 http://shinh.skr.jp/dat_dir/poly_quine5.txt なんかサイズが40倍とかに膨れあがってしまったんだけど、まぁこれでも頑張ったんだというか最初のバージョンは 80kB とかあって、 公式サイトにある BFI.c とかではメモリサイズの都合で動かないにゃーとか思ってたのを頑張って縮めてこんなもん。 32768Byte のメモリを割とギリギリ全部使うはず。まぁまだいくらでも縮められるだろうけど。 あとは Befunge は zfunge なら

    Polyglot Quine 続き
  • プログラミング言語 Whirl - 兼雑記

    なんかあなごるスレとかがあることに気付いて、そこで Whirlという言語があるらしい ということを知ったのでした。 http://www.bigzaphod.org/whirl/ なんか esoteric language って星の数くらいあるしインストラクションが二つしかなくて 01 だけ、とか書いてあるけど、普通に Whitespace みたいに適当に何文字かで一命令とかになってるだけじゃないのかなぁ、とか思ってたんだけど、これがなかなか面白い。特にサイトの説明が。 最初のごく一部を訳。 Whirl は以下のような最新技術を念頭に置いてデザインされた言語である: 継承 シンプルさ 簡易性 XML メンテナンス性 多態 柔軟性 強力さ 引き算 グリルドチキン ──残念ながら、どれも最終成果には取り入れられなかった。 まぁこういうナメたノリはいいですね。上記の一覧で極めて強い意味を持ってい

    プログラミング言語 Whirl - 兼雑記
  • 上のコードができるまで - 兼雑記

    ゴルフったところこんな感じになった。ファイルは更新しておいた。 #include/* s='''*/<stdio.h> main(){char*_;/*==;sub _:lvalue{$_}<<s;#';<<s#''' def printf(a,*b):print a%b, s #*/ _=" #include/*%cs='''*/<stdio.h>%cmain(){char*_;/*==;sub _:lvalue{%c_}<<s;#';<<s#'''%cdef printf(a,*b):print a%%b,%cs%c#*/%c_=%c%s%c;printf(_,10,10,36,10,10,10,10,34,_,34,10,10,10,10);%c#/*%cs='''*/%c}//'''#==%c";printf(_,10,10,36,10,10,10,10,34,_,34,10,10

    上のコードができるまで - 兼雑記
  • ABA style で pixel shader とか - 兼雑記

    なんか長らくシェーダとか触ってみたかったのに触ってなかったので触ってみた。 http://shinh.skr.jp/tmp/pbg_ps.tar.bz2 ABA style ってのは id:ABA さんが偉大すぎてプリミティブと半透明だけでデザインがんばってゲーム作るとそう呼ばれるらしい。で、こう shader とかって基的にはリアル絵出すためのものだけど、まぁそいうの興味無いっていうか絵かけないしモデリングとかよくわかんないしーってこと(興味はあるけどいじけてるというか)でそっち方向でもシェーダって使えないのかなとかそんなことを思って勉強してみることに。うーん日語になってないがまぁそんな感じ。 中身は pbg.exe を実行すると動く。左と右でピクセルシェーダ変更 (PS 0 ってなってるところが変わるはず) 、 r で PS のリロード、 s で現在の PS を一番最後のシェーダ番

    ABA style で pixel shader とか - 兼雑記
  • C でも BF でも WS でもある - 兼雑記

    というコードを IOCCC に出したのでした。ただ C のコンテストに BF や WS のコード出してどうするということで、 C コードの機能として引数が ws 含んでると Whitespace インタプリタになって bf 含んでると Brainfuck インタプリタになるようになっています。無引数だとただの Hello, world! です。よって3種類の方法で Hello, world! が実行できるけど全部出力はおんなじー、というような。 http://shinh.skr.jp/dat_dir/bfws.c WS 埋めるのは簡単で、 BF も "Hello, world!\0+++++..." などとするなりコメントに埋めるなりして後をすっとばせば簡単なのですが、それだとつまらないので C のコードに溶け込んでもらってます。 C のコードとしては Obfuscation が足りないし

    C でも BF でも WS でもある - 兼雑記
  • CHoP - 更新履歴兼雑記

    C のヘッダをパースするライブラリを作りかけました。 http://shinh.skr.jp/chop/chop.tar.bz2 昔作った tccparser みたいな感じで、 Ruby/DL の宣言ヘルパみたいなのも作りました。 こんなのが動きます。 require 'chop' module LIBC extend Chop dlload 'libc.so.6' include 'stdio.h' include 'stdlib.h' include 'string.h' include 'ctype.h' include 'time.h' include 'sys/time.h' def my_compare(ptr1, ptr2) ptr1.ptr.to_s <=> ptr2.ptr.to_s end COMPARE = callback("int my_compare(char*

    CHoP - 更新履歴兼雑記
  • 1