タグ

ブックマーク / dayflower.hatenablog.com (10)

  • 補遺: PostScript の cvx とクロージャ - daily dayflower

    PostScript でもクロージャはできるよ、というお話。以下のサイトを参考にしました。 歪 : PostScriptでクロージャ PostScript でクロージャ - 週1でも日記 一般的な LL 言語などを模倣してクロージャぽくカウンタを書いてみます。 /make-counter { << /counter 0 >> begin { /counter counter 1 add def counter } end } def ところが実行すると、 /counter1 make-counter def counter1 % => Error: /undefined in counter % Operand stack: % counter % Execution stack: % (略) このようにエラーになってしまいます。 これは、実行可能配列で指定されている counter とい

    補遺: PostScript の cvx とクロージャ - daily dayflower
  • 多段 ssh / rsync するために ProxyCommand を使ってみる (2) - daily dayflower

    さーて,どんどんこんらんさせていきますよ。 高度な例 (3) - 多段 ssh 要件は*1 host:gw1 に user:foo というアカウントがある host:gw2 に user:bar というアカウントがある host:target に user:baz というアカウントがある user:dayflower が host:local から host:gw1, host:gw2 を経由して host:target に user:baz で アクセスしたい ProxyCommand をカスケードして指定していけばなんとでもなります。実行例は下記のとおり((コマンドラインから実行する場合,実用上の理由から %h や %p などの展開は利用していません))。 local% ssh -o "ProxyCommand ssh -o 'ProxyCommand ssh -l foo -i fo

    多段 ssh / rsync するために ProxyCommand を使ってみる (2) - daily dayflower
    agw
    agw 2013/02/26
  • 多段 ssh / rsync するために ProxyCommand を使ってみる - daily dayflower

    以前 2.(gatewaynetcat を ssh 経由で実行することによる転送)はよくわからないけど失敗 多段 rsync がめんどくさい - daily dayflower と書きましたが,なんとなく仕組みがわかってきたので書きます。 2年前くらいに流行ってたネタなので今更感満点。 まとめ 単純に到達できない場所に ssh でつなぐために ProxyCommand という [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config:title=ssh_config] の設定子が使える ProxyCommand とは ssh クライアントと標準入出力でやりとりする 多段 ssh をする際に ProxyCommand で指定すると有用なものとして下記のものがある nc (netcat) OpenBSD や RedHat 系には(お

    多段 ssh / rsync するために ProxyCommand を使ってみる - daily dayflower
    agw
    agw 2013/02/26
    ProxyCommand使用時のSIGHUPについて
  • PostScript 基礎文法最速マスター - daily dayflower

    基礎文法最速マスターがはやっているみたいなので便乗します。 ほんとは Lua について書くつもり……というか書いていたんですけど、完成するより前に 良いもの。悪いもの。: Lua基礎文法最速マスター があがってました。 最近、基礎文法最速マスターというプログラミング言語の解説が流行ってるようなので、便乗してみた。個人的にはC++Pythonの方が慣れ親しんでいるのだが、自分でも勉強できるように普段使っていない言語を書いてみることにした。 良いもの。悪いもの。: Lua基礎文法最速マスター うんうん。わたしも勉強のために普段使ってない言語にするか。たまたまさいきん Ghostscript づいていたので PostScript にしようと思いました。 なにぶん初学者なのでいろいろ間違いがあればご指摘ください。とゆーか、詳しい人がよりよい最速マスターや補遺を書いてくださるとうれしいです。 下記

    PostScript 基礎文法最速マスター - daily dayflower
  • JavaScriptのイベントハンドラ説明

    気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 を読んで,思うところあって書いてみました(決してカウンターアーティクルではない)。 むかしむかし JavaScript を触っていた むかしむかしに書かれた JavaScriptで勉強している/した 人向けに。大元記事(そろそろ気で学びませんか? | Think IT(シンクイット))の想定読者に近いかなと思います。よって以下は JavaScript の初学者にはまったくおすすめできない(余計な知識がついてしまう)です。 Step 1: はじめのいっぽ ボタンを押したらメッセージボックスが出現する HTML を書いてみます。 <html><body> <script type="text/javascript"> function ShowMes

    JavaScriptのイベントハンドラ説明
  • JavaScript の「本気」な勉強 - daily dayflower

    まだひっぱるのもなんですけど。たぶん,言葉の指す対象にいろいろブレがあると思うんですよね。 勉強する人 まったくの初学者 さわりの文法などは知っているが,現実になにをどう書けばいいかわからない 勉強のスタイル 気で勉強したい 気で深く勉強したい 気でひととおり使えるようになりたい 勉強する対象 ブラウザで使う JavaScript HTML JavaScript (ECMAScript) Core DOM ともかく,もやもやと思ったことをとりとめもなく羅列してみます ライブラリの功罪 ライブラリは流行り廃りが激しいから、特定のライブラリに依存した「おまじない」ばかり覚えているのはどうかと思うなあ やっぱり、 DOM を直接書けたほうが、知識としては幅広く使えると思いますよ。 onclick 属性問題について - IT戦記 僕自身はなんだかんだで仕様原理主義者な所が今も強いわけで、その

    JavaScript の「本気」な勉強 - daily dayflower
  • Net::Server で UNIX ドメインのサーバを書いてみる - daily dayflower

    Perl で UNIX ドメインのサーバを書くことになりました。でもSocket(or IO::Socket)をそのまま使うのは面倒くさい*1。ということで CPAN をあさってたら Net::Server というものがありました。POE というのもあって最終目標からすると勉強する価値ありそうだったんですが,さすがに牛刀ぽかったので Net::Server で書いてみることにしました。 接続すると単純に /bin/date コマンドの内容を返す(そして close する)サーバを書いてみます。DateServer.pm という名前で下記のとおり。 package DateServer; use strict; use base qw( Net::Server::Fork ); use IPC::Run; sub new { my ($class) = @_; return $class->

    Net::Server で UNIX ドメインのサーバを書いてみる - daily dayflower
  • PoCo::HTTP で Comet チャットサーバを作る - daily dayflower

    せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。ありきたりですが。 POE::Component::* でウェブサーバを立ち上げられるのは現在のところ, POE::Component::Server::HTTPServer POE::Component::Server::SimpleHTTP POE::Component::Server::HTTP の3つがあります。1番目は最近 inactive なのでパス。2番目は「イベントフレームワーク」への馴染みはいいんですが「Simple」じゃなくなってます。3番目はコールバック関数を登録するというお気楽スタイルなんですがちょっと雑な感じ。 今回は楽をするために3番目の PoCo::HTTP を使ってみたいと思います。id:naoya 氏も最近紹介してましたし。 URI の設計指針は, チャ

    PoCo::HTTP で Comet チャットサーバを作る - daily dayflower
  • DBIx::Class はじめの一歩 - daily dayflower

    DBIx::Class::Manual::DocMap をみてどんなドキュメントがあるのか知る。 DBIx::Class::Manual::Intro を読んで作法を知る。 DBIx::Class::Manual::Example を読んで雰囲気をつかむ。実際やってみる。 DBIx::Class::Manual::Troubleshooting にも書いてあるけど,実際にどんな SQL が発行されるのかは,デバッグモードにすればわかる。 $schema = MySchema->connect(...); したあとに,$schema->storage->debug(1); おもに 3 種類のレイヤがある。 テーブルスキーマを定義する DBIx::Class の継承クラス DBIx::Class::ResultSource のメソッドを使うとテーブル定義とかいろいろ調べられる。 ResultS

    DBIx::Class はじめの一歩 - daily dayflower
  • qr のメリットがわからない - daily dayflower

    Perl にはクォーテーションと同義の表記 my $s; $s = q{abc}; # 'abc' $s = qq{abc}; # "abc" $s = qx{abc}; # `abc` my @a = qw{a b c}; # ('a', 'b', 'c')などがあります。ウェブアプリで HTML に文字列を埋め込むときなど,ダブルクォーテーションを使ったりしますから重宝します。 my $s = qq~<img src="${image_file}" />~;とか。あと qw もよくつかいますね。 このような演算子の仲間に qr というのがありまして, my $qr = qr/[a-z]+/; my $str = '123abcABC'; $str =~ m/${qr}/;こんな感じで正規表現をあらかじめコンパイルして再利用できます。 でも,qr// のところは,実は q{} や qq{

    qr のメリットがわからない - daily dayflower
  • 1