ymkoのブックマーク (443)

  • Smart::Commentsでモジュールにサンプルコードを仕込む - Islands in the byte stream (legacy)

    ソースコードを読んでいると、関数の引数や戻り値の具体的な例がほしいと思うことがよくある。。そこで、実行可能なコメントを仕込むモジュールであるSmart::Commentsを使って、モジュール内にテストを兼ねたサンプルコードを仕込めばいいのではないかと考えた。これにより、開発者にとっては簡単なテストコードとして動き、読者にとっては具体例となるコードを簡単にソースコード内に埋め込むことができる。 package MyUtil; use strict; use warnings; use parent qw(Exporter); our @EXPORT = qw(add); use if __FILE__ eq $0, 'Smart::Comments'; ### assert: add(10, 20) == 30 sub add { my($a, $b) = @_; ### add(a, b)

    Smart::Commentsでモジュールにサンプルコードを仕込む - Islands in the byte stream (legacy)
    ymko
    ymko 2011/06/01
  • クロールの泳ぎ方が間違っていた件 - 溢れ出る加齢臭

    二つ前の日記の女友達が驚異の40kgダイエットを達成した件で、水泳をやったということについて触れた。 それでは、僕もと思って、一昨日、ジムで30分ほどクロールで泳いでみたのだけれど、距離を重ねるとカラダは浮かないし、前に進まなくなってしまう。 もっと楽にスイスイ進めば、長く泳げるのに。 僕の水泳歴は小学生時代に1年ほどスイミングスクールに行ったっきり。(その後入院してしばらく水泳ができなかったので、やめてしまった) ひょっとしたら正しい泳ぎ方ができていないのかもしれないと思って、ネットで探してみると、IPA(情報処理推進機構)で公開されている教育用の水泳の動画が見つかった。 この動画で述べられていることや、気づいたことはこんなところ。 上体は常に水面と並行ではなく、腕の動きに合わせて左右に45度回転する バタ足も水面に直角ではなく、上体の回転に合わせて左右に45度回転する 腕は水中ではC字

    クロールの泳ぎ方が間違っていた件 - 溢れ出る加齢臭
    ymko
    ymko 2011/05/27
  • 「花咲くいろは」 フレームの中の世界を探ってみよう - subculic

    アニメーションフレームの中の世界を探っていくと新しい発見があったり、驚きがあったりする。アニメのレイアウトは画面の設計図と呼ばれますが、遊び心に溢れた意図(かもしれないもの)を見つけられたとき、より面白くなってきます。いつもの散歩道で見る風景を、ちょっと変な角度で捉えてみよう、それくらいの感覚で。つまり、『花咲くいろは』のグッときたところを書いてみよう記事。 ■「枠」を作るということ / フレームのイメージまずは3話の頭のシーン。桂剥き、うらみつらみはバケツの中へ。バケツの丸い枠が主題となるフレーム。薄く切られた大根に、「うざい」「死ねっていうなっていう」だとか、延々と書かれているよう。白紙に白文字で恨み言。角張っていると堅く見えてしまうのが、「丸い」おかげでちょっとおとぼけ、民子の独り言が可愛らしく思えてくる。徹が右上の小窓を開けて登場しますが、アイコン形。上手下手で対角線上に視線が流れ

    ymko
    ymko 2011/05/10
  • 元GE技術者・菊地洋一さん講演

    ●原子力の技術は全然確立していなかった 核の平和利用という話からそういう話へ行きましたけれども、私が原子力の世界に足を踏み入れたのは、その平和利用という言葉にだまされてです ね、ちょうど第1次オイルショックの頃ですね。日当に石油がこなくなるというので、トイレットペーパー騒動という言葉をみんなも記憶しておられると 思いますけれども、建材は市場からみんな姿を消してですね、実際無くなったわけじゃないのです。僕も後で分かったのですけれども、みんな売り惜しみして、 ピータイルとかそういう建材はしまっておいただけなんですけども、とにかくオイルショックというのが起きました。 そういう時にこれまたどういう縁か、広島 出身の先輩で僕に仕事をたたき込んでくれた6歳ほど先輩がいるのですけれども、その人が10年ぶりに尋ねてきて、 原子力の平和利用にどうしても力を貸してくれということで、無理やりGEに引っ張っ

    ymko
    ymko 2011/03/29
  • sshで入れなくなっても精神的ダメージを食らわない素敵な方法 - カイワレの大冒険 Third

    sshって制限かけなければどこからでもアクセスできてすごく便利だし、サーバの近くで作業するとホコリやファンの音でうるさいから、よほどの精神力を持った人じゃなければ通常はsshを使って作業をしていると思う。 だけど、iptablesの設定をいじっていて葬ってしまったり、ネットワークの設定いじっていたら急にコマンド受け付けなくなったりすることもその分多かったりする。 しかも仮想コンソールとかなければ遠隔じゃどうしようもないから、現場に行かなきゃいけないわけですよ。 そんな精神的ダメージを避けるためにも、事前に対策しておきましょうぜというお話し。 検証環境 検証環境はこんな感じ。 (192.168.1.3) ---------- (192.168.1.5) (getty等立ち上げ) (cu, screen, jerm, minicomによるアクセス)同一ネットワーク内にある2台のサーバ(Cent

    sshで入れなくなっても精神的ダメージを食らわない素敵な方法 - カイワレの大冒険 Third
    ymko
    ymko 2011/03/29
  • IE7 によるファイルアップロード時のフルパスの送信 - 葉っぱ日記

    Internet Explorer 6 では、<input type="file"> を使用してファイルのアップロードを行うときに、ファイル名をフルパスで送信するため、マイドキュメントなどに置かれてるファイルをアップロードすると、ログインユーザ名がサーバ側に漏洩するという問題がありました*1。 例えば、マイドキュメントに置かれているファイルを送信した場合、IEから送られるリクエストは以下のようになります(抜粋)。 POST /upload.cgi HTTP/1.1 Content-Type: multipart/form-data; boundary=---------------------------7d611f24420292 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.432

    IE7 によるファイルアップロード時のフルパスの送信 - 葉っぱ日記
    ymko
    ymko 2011/03/28
  • perl-mongers.org

    This domain may be for sale!

    ymko
    ymko 2011/03/28
  • CGI.pmのアップロード後のファイル処理を高速に行う

    CGI.pmのアップロード後のファイル処理を高速に行う スポンサードリンク Tweet とりあえず手っ取り早くファイルアップローダを作らなくちゃならなくなったとき用の汎用ルーチンとしてCGI.pmを使ったアップローダのソースをあげておこうと思いました。自分用のメモだけど単純にアップロード後の処理が高速なので参考にされるといいかと思います。 fillename:upload.cgi #!/usr/bin/perl use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); use File::Copy; use File::Basename; my $upload_dir = 'upload'; # 保存先のディレクトリ my $q = CGI->new(); # CGIオブジェクト my $fh = $q->u

    ymko
    ymko 2011/03/28
  • フォームベース・ファイルアップロードの仕組み - Web/DB プログラミング徹底解説

    ブラウザからファイルをアップロードする仕組みをご存知ですか。 たとえアップロードの仕組みを知らなくても、普段からあまり意識することなく、ファイルをアップロードしているのではないでしょうか。 また、ASP.NETPHP 等、様々な実行環境においてはファイルアップロードをサポートする仕組みがあるので、サーバー側でも特に何もしなくてもアップロードされたファイルを受け取ることが可能だったりします。 しかし、ISAPI 等のネイティブコード開発では、プロトコルやデータフォーマットに関する知識がないと開発できないこともしばしばです。ファイルアップロードもそのひとつです。 もちろん ISAPI にはクライアントからポストされたデータを読み取る仕組みはあるものの、「アップロードされたファイル」 というようなまとまった形ではデータを受け取ることが出来ません。あくまで、生データを受け取り、そのデータを自

    フォームベース・ファイルアップロードの仕組み - Web/DB プログラミング徹底解説
    ymko
    ymko 2011/03/28
  • JR貨物、不屈の鉄道魂 被災地へ燃料、壁乗り越え達成 - SankeiBiz(サンケイビズ)

    サービス終了のお知らせ SankeiBizは、2022年12月26日をもちましてサービスを終了させていただきました。長らくのご愛読、誠にありがとうございました。 産経デジタルがお送りする経済ニュースは「iza! 経済ニュース」でお楽しみください。 このページは5秒後に「iza!経済ニュース」(https://www.iza.ne.jp/economy/)に転送されます。 ページが切り替わらない場合は以下のボタンから「iza! 経済ニュース」へ移動をお願いします。 iza! 経済ニュースへ

    ymko
    ymko 2011/03/27
  • GCC-4.6の stack-usageを使ってみた - Shohei Yoshida's Diary

    GCC 4.6 RCが 3月14日に出ました。なんでもうすぐ正式版も出るかと 思います。Changlogを見ていると気になる機能がありました。それが stack-usage. 関数ごとのスタックの使用量が確認できるというものです。 これは Adaだとだいぶ前から実装されていたんですけど、4.6からは どの言語からでも利用することができます。 環境 Ubuntu 10.10 x64 GCC4.6のインストール GCC 4.5.1をビルドする - Life is very short GCC 4.5.2をビルドする - Life is very short と同じなので、これらの記事を参照してください。 準備さえできれば以下のコマンドで作成できます。 % tar xf archives/gcc-4.6.0-RC-20110314.tar.bz2 % cd gcc-4.6.0-RC-201103

    GCC-4.6の stack-usageを使ってみた - Shohei Yoshida's Diary
    ymko
    ymko 2011/03/24
  • 多人数開発で Git を使う場合の環境構築 | GREE Engineering

    こんにちは、インフラやってる sotarok です。最近、社内でも「sotarok は そーたろっくと読む」という誤解が広がっていましたので改めて自己紹介しますと、sotarok と書いて「そーたろー」または「そーたろー・けー」と読みます。ロックしてないのでよろしくお願いします。 今日は、Git の話です。 GREE ではずっと Subversion を使っているという話を、以前開発環境の話をしたときに少し触れたことがあります。Subversion での運用方法も、GREE では割と面白い運用をしているのでその話もどこかでしたいのですが、まあ、それは今回は置いておきましょう。どこかで聞いてください。 GREE もその昔 CVS から Subversion に移ったのですが、時代は流れるもので、いよいよ Git 化という流れがきています。Subversion と Git の違いを今更あえて挙

    多人数開発で Git を使う場合の環境構築 | GREE Engineering
    ymko
    ymko 2011/03/22
  • Amazon.co.jp: Perl CPANモジュールガイド: 冨田尚樹 (著), タナカユカリ (イラスト): 本

    Amazon.co.jp: Perl CPANモジュールガイド: 冨田尚樹 (著), タナカユカリ (イラスト): 本
    ymko
    ymko 2011/03/17
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
    ymko
    ymko 2011/03/11
  • Perl Hackers Hub:第5回 Xslate 次世代テンプレートエンジン(1)|gihyo.jp … 技術評論社

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は藤吾郎さんで、テーマはXslateです。 はじめに PerlとWebアプリケーションとの相性の良さは周知のとおりです。そして、Web開発にはテンプレートエンジンが欠かせません。テンプレートエンジンは、プレゼンテーションとロジックを分離し、デザイナとプログラマの分業を可能にし、MVC(Model-View-Controller)のV(View)を担う重要な要素です。 今回は、そんなテンプレートエンジンンの一つであり、筆者が開発しているXslateを紹介します。Xslateは2010年4月に開発を始めた新しいモジュールですが、速度・安定性・機能ともに高い水準になってきました。また、牧大輔氏や松野徳大氏をはじめとしたShibuya.pmの面々に多くのアドバイスをいただき、既存のテンプレートエンジンを置き換えられるくらい実用的に

    Perl Hackers Hub:第5回 Xslate 次世代テンプレートエンジン(1)|gihyo.jp … 技術評論社
    ymko
    ymko 2011/03/09
  • Sapporo.jsでJavaScriptの成り立ちについてLTしてきました。 - I am bad at math

    当初はNodeのことを5分で話すつもりでしたが、id:tricknotesの「時間はどのくらいあればいいですか?」という有難い申し出を受けて設定したのが20分。 さすがに手元の資料では足りないのでJavaScript歴史についても話してきました。 そちらについては資料すら作ってなかったのでホワイトボード使いつつ記憶を頼りに延々しゃべっていくという・・・さらに字が汚くて見えづらかったと思います。すみません。 JS history View more presentations from badatmath で、帰ってきてからざざざっと資料を作りました。 まずはECMAのトコまで。 JSってサイドストーリーがとっても多い言語なので突っ込んで調べるといろいろ新しい発見があり、ネタに事欠かない言語でもあります。そういうのを調べて行くとかなりJavaScriptに親近感が湧くようになるのでみなさん

    Sapporo.jsでJavaScriptの成り立ちについてLTしてきました。 - I am bad at math
    ymko
    ymko 2011/03/09
  • インフラエンジニアであるか見分ける10の質問への回答 - smellman's Broken Diary

    インフラエンジニアであるか見分ける10の質問をダメなインフラエンジニアが回答してみました。 1. 今まで自身で構築したサーバの種類と、その構築方法について説明せよ Application Server, Web Server, Database Server, File Server Application ServerはWeb Serverと共有しているケースが多い、主にPassengerを使ったケース。冗長化するケースが多いので、大体pound使ったりする。 Database ServerとFile Serverも何故か共有することが多い。File Serverと言っても大体Application で利用するファイルの共有がメイン。 DRBDでデータベース領域を共有化しておいて、Heartbeatで監視というのが大体のパターン。そろそろpeacemakerに浮気をしたい所存であります。

    インフラエンジニアであるか見分ける10の質問への回答 - smellman's Broken Diary
    ymko
    ymko 2011/03/09
  • 仙石浩明の日記: Osukiniサーバを使ってみた 〜 仮想コンソールが提供されない VPS で独自OS をインストールする方法

    今まで米国の VPS を使っていたが、 いつのまにか日VPS もリーズナブルな値段になってきたらしい。 「さくらのVPS」 がメモリ 512MB で月額 980円、 「Osukini サーバ」 ST プラン がメモリ 1GB, ディスク 100GB で月額 980円。 「さくらのVPS」 でも充分安いが、 「Osukini サーバ」 の安さは目を疑うレベル。 これはもう試してみるしかない。 実は、 最初は 「さくらのVPS」 を申し込んだのだが、 rootパスワードが見つからない事件でイカってキャンセルしてしまった。 申し込んだ直後に VPS が起動できたので、 さくら++ と思いつつ root でログインしようとしたらパスワードが分からず Web じゅう探しまわる羽目に。 万策尽きてサポートに電話したら 15分以上待たされ、 しかも担当者には root と言っても話が通じず、 別の

    ymko
    ymko 2011/03/09
  • 巨大なテキストファイルをブラウザで覗き見するための簡単な CGI

    巨大なテキストファイルをブラウザで覗き見するための簡単な CGI 2011-03-08-2 [Programming] 何かのタスクの出力結果として巨大なテキストファイルが得られたとします。これが手元の UNIX 環境に置いてあるだけなら less コマンドや head, tail コマンドでさらっと中身を覗けます。 しかし、他の何人かで共有して中身を軽く確認してもらいたいという場面があります。IT系でない人に見てもらいときなどはいろいろと大変です: (1) データの置いてあるサーバにログインしてもらう→「アカウントない」「コマンドわからない」 (2) イントラのファイル共有→「ファイルが大きすぎて開けない」 (3) イントラWebサイトにアップロードしてブラウザで見てもらう→「IEが固まる」「PCが激重」 こういうときには100行くらいのページごとに表示するCGIが役に立ちます。昔からよ

    巨大なテキストファイルをブラウザで覗き見するための簡単な CGI
    ymko
    ymko 2011/03/09
  • そろそろPerl4に関して一言いっとくか(クラシカルPerl入門) - Atzy->getLog()

    仕事Perlを使うことになり、先週から久々に(格的に)使ってみました。大体プログラミング言語なんてものは特殊なやつを除けばどれも根は同じなので、それ自体で詰まるということはありません。 が、10数年ぶりのPerlを使いながら、懐かしいことを思い出してみました。思えば遠くへ来たものだ。 アンパサンド Perl5以降では当然のようにサブルーチンを hoge() と呼び出しますが、Perl4では &hoge と呼び出します。 my!our! Perl4では、my*1だとかありませんし、our*2ももちろんありません。 当然ながら、localを使います。 myはまさにレキシカルスコープ、ourはパッケージローカルな変数となります。で、Perl4に存在した(というか、今も存在しますが)localというのは、特殊なグローバル変数。その時点でグローバル変数の値を置き換えてしまい、ブロックを出た後で

    そろそろPerl4に関して一言いっとくか(クラシカルPerl入門) - Atzy->getLog()
    ymko
    ymko 2011/03/09