perl

Perlのこういうところが好き

プログラミングPerlを読み始めましたが、第1章「Perl概説」を読んでいて、「ああ、俺はPerlのこういうところが好きなのだな」と思うところがあったのでメモ。 第3版の49ページの一番下の文。 print reverse sort map {lc} keys %hash; 日本語で説明を書くと…

プログラミングPerl

ついに買いました。VOLUME1です。

Perlプログラミング救命病棟

Perlプログラミング救命病棟を買いました。 この3連休で(今のところ)第7章まで読み終わりました。ちょうど半分くらい。この本の内容は、 本書はPerlコードの引き継ぎを中心テーマとしています。それは誰かほかの人が書いたコードかもしれませんし、あなた自…

Tree::Simpleを使ってツリー表示を実装する(つづき)

Tree::Simpleを使ってツリー表示を実装する(つもりだったけど) - libnitsuji.so これのつづき。 とにかく機能を出してしまえ、と思って無理やり実装した。どうもPerlらしくないコードになってしまうのがとても悔しい。実際の表示はツリーになってないけど…

Tree::Simpleを使ってツリー表示を実装する(つもりだったけど)

久しぶりにBBSの続きを実装しようかと。ツリー表示をまだ実装していなかったので。 今回はツリー構造を作るのにTree::Simpleというモジュールを使ってみることにした。 で、 my $iter = BBS::Message->retrieve_all; my %tree; while (my $m = $iter->next) …

どんなモジュールがあるのかを知る

ある言語を習得する上で必要なことは。 基本的な言語仕様を理解する どんなライブラリが使えるか知っておく ことだと思います。 あとは、その言語を適用するコンテキストに関する基礎知識が必要。WindowsアプリケーションだったらWindowsの仕組みを知ってい…

mod_perlデビュー!!

ようやく、という感じでmod_perlの世界に足を踏み入れることができました。 Perlを使おうと思ったのはこのmod_perlというものの存在を知ったことが大きなきっかけとなっています。サーバーサイドJavaが登場してJava Servletはリクエストのたびにプロセスを起…

BBS->今日の成果

今日は以下の機能を実装しました。 RSSフィードの出力 メッセージの削除 RSSは昨日からやっててその続き。日時のフォーマットを調べてちょこっと実装してすぐに終わった。日時はこんな感じです。+なんちゃらは+09:00にしました(たぶんこれでいいはず)。 YY…

Perlの汚染モードに苦戦

Perlには「汚染モード」というのがあって、-Tオプションを使用すると有効になります。こんな感じで。 #!/usr/bin/perl -wT 汚染モードの目的はPerlに対してユーザーからのデータを追跡し、そのデータを使った危険な処理を実行しないように指示することです。…

Class::DBIとか初めて使ってみて

今日は以下のモジュールを使ってBBSを作ってみた。 CGI::Application CGI::Application::Dispatch CGO::Application::Plugin::TT Class::DBI Class::DBI::Pager いずれもはじめて使うモジュールなのでCPANのマニュアルを読みながらじっくりやってみたけど、…

MySQL、DBD::mysqlのインストール

思わぬ苦戦を強いられたのでメモ。 MySQLのインストールは普通にオッケー。 sudo apt-get install mysql-server mysql-client mysql-docを指定すると「それは使えません」と言われるのでインストールしてない。 次からは苦戦。 sudo perl -MCPAN -e 'install…

Unix User 9月号の「作って学ぶ、いまどきのWebサービス」

id:naoyaさん執筆の連載第3回です。1回目と2回目は買わずに立ち読みで済ませましたが今回は買いました。フレームワークとか使ったことなかったのでどんな感じかつかむために。何の工夫もせずになぞっただけで、答えは全部書いてあるのに2時間くらいかかりま…

Blosxom

プラグインの仕組みを勉強するためにBlosxomを設置してみました。 http://takatoshi.dyndns.org/cgi-bin/blosxom.cgi BlosxomはPerlで書かれた簡単なブログシステムです。本体はファイル1つだけしかなくて、ほかの機能はプラグインの仕組みを使って拡張する…

URLの自動マークアップ

BBSでメッセージに含まれるURLはaタグで自動マークアップしようと思って。 はじめはRFCを見ながらURLを表す正規表現をまじめに作っていたのだが、なんかばかばかしくなってきたのでやめた。つまり、結構複雑でめんどくさいのだ。 というわけで、先人の知恵を…

BBS Ver.0.4です

http://takatoshi.dyndns.org/bbs/bbs.cgi 黙々と作っていたバージョン0.4です。テキトーに書き込んでみてください。 見た目で0.3との違いは メッセージを削除できるようになった HTMLエスケープするようにした 返信ビューをちょっと変えた 表示の仕方(スタ…

正規表現による日本語のパターンマッチ

文字コードはEUC-JPで。 隣り合った文字のトレールバイトとリードバイトがひとつの文字として認識されてマッチしてしまい、正しくマッチできない。ということが起こる。 BBSで「究極に眠い」と書いたら発生した。原因は「に眠い」にある。これはEUC-JPで「a4…

最近やってること

このごろBBSに変更がないけど、別に何もしていないわけではなくて、作り直し中なのです。 前回は「とりあえず動かしたい!!」という気持ちが強かったので勢いで突き進んでしまいましたが、さすがに何も考えずに作ったので拡張性も何もあったものではない。…

BBSのツリー表示を改良(Ajax)

BBSのツリー表示でメッセージを読むのにタイトルをクリックして画面遷移する必要がある。めんどくさい。 という件ですが改良しました。 http://takatoshi.dyndns.org/misc/bbs03.cgi?rm=tree タイトルの横にある「メッセージを表示」ボタンをクリックすると…

BBS(値のチェック)

を教科書にしているのですが、JavaScriptのところをさらっと読んだのでついでに、というわけでBBSの値チェックを行うようにしました。これまで値のチェックはCGIのほうでもしていなかったのでそれもまとめて。名前、題名、メッセージ、どれか1つでも空白だと…

BBSのツリー表示

ツリー表示を実装しました。 かなり無理くりやった感じですが。まあ、最初はこんなもんでしょ。 http://takatoshi.dyndns.org/misc/bbs03.cgi?rm=tree

BBSをはてなキーワードでマークアップ

今日は早起きですよ。 BBSの内容をはてなダイアリーのキーワードでマークアップしてみました。 使ったのはこれ。 はてなダイアリーキーワード自動リンクAPI - はてなダイアリー日記 XML-RPC版ってのもあるんだけど正規表現のほうが楽ちん。 キーワードファイ…

BBS ver.0.3(変身機能つき)

いや、返信だな。 まあ、こんなくだらない冗談はおいといて、返信機能もり込みました。 http://takatoshi.dyndns.org/misc/bbs03.cgi 表示方法は従来と変わらないので、返信後のタイトルが単に 11: Re:てすと(10への返信) のように括弧の中にどのエントリへ…

つれづれなるままに書くと破綻する

メモ。 BBSに返信機能をつけようと思ってver.0.3というのを書いていたのだけれど、ver.0.2とのデータの整合性を取るのがめんどくさいということに気づいて今日はここまで(未完成)。HTML::Templateはハッシュリファレンスのリストに対してループをまわしてH…

BBS ver.0.2を作ってみた

libnitsuji.so のつづき。 前回はHTMLの生成にCGI.pmというモジュールを使用したのだけれど、今回はHTML::Templateというのを使ってみました。 これはすごく便利。こういうのをテンプレートパーサというらしいです。 あとは日時を保存するように変更。 見た…