2017-01-01から1年間の記事一覧

MIME::Lite - メールを簡単に送信

Perl › モジュール › here MIME::Liteモジュールを使えばメールを簡単に送信することができます。MIME::Liteはデフォルトでsenmailコマンドを利用するのでsendmailあるいはpostfixをインストールしておきましょう。メールの送信方法にはいくつかの手法があり…

吉祥寺.pm #10で発表したスライド「YAPC関西に参加して得たもの」をアップしました。

吉祥寺.pm #10で発表したスライド「YAPC関西に参加して得たもの」をアップしました。 YAPC関西に参加して得たもの 101枚のスライドです。10分くらいで読めると思います。

4月21日(金)「吉祥寺.pm 10」トーク内容は「YAPC::Kansaiに参加して得たもの」になりました。

いよいよ吉祥寺.pmが今週の金曜日に近づいてきました。4月21日(金)「吉祥寺.pm 10」にトークで参加します。トーク内容ができあがったのでお知らせします。 YAPC::Kansaiに参加して得たもの 今回は内容をスライドに全部書き出してみました。朗読するような感…

cpm - cpanmを並列に実行して3倍早くモジュールをインストールできるツール

依存関係が多い場合にCPANからモジュールを素早くインストールしたいと思うときがあります。そんな場合はcpmを使うと、cpanmを並列実行して早くインストールできるようです。 cpm - a fast CPAN module installer CPANモジュールインストーラといえば、cpanm…

@INC問題、モジュールパスの先頭にカレントディレクトリ「.」があるとどんな危険があるのか考えてみた

Perl 5.26ではモジュールの検索パスである@INCの先頭からカレントディレクトリ「.」が削除される。セキュリティ対策のためという説明があるのだけれど、実際にどんな場面で危険があるのかということを考えてみた。 他のユーザーが書き込み可能なディレクトリ…

Perl 5.26への@INC問題にアップグレード前に対処しておきましょう

Perl 5.26では、セキュリティ上の問題で、モジュールのインクルードパスから「.」(カレントディレクトリ)が取り除かれます。この問題についてはcharsbarさんの記事が詳しいです。 '.' in @INC問題とその対処法について(2017年3月版)Add Star Perl 5.26にアッ…

POD(Plain Old Documentation)の書き方

Perl › 構文 › here Perlはソースコードの中にドキュメントを埋め込むことができます。このソース内ドキュメントのことをPODといい独自の記述方法があります。Perlにはモジュールを公開できるCPANというサイトがありますが、CPANに公開されるモジュールのド…

Google App EngineでついにPerlが利用可能に

Google App EngineでPerlが利用可能になったようです。 Your favorite languages, now on Google App Engine Your favorite languages, libraries and tools (中略) Want to run Perl? Love Elixir? Need to migrate your Parse app? You can do all this an…

print関数 - 文字列を出力する

Perl › 関数 › here 文字列を出力するにはprint関数を使用します。 print "Hello World!"; 文字列を変数に代入してからprint関数に渡すこともできます。実際にプログラムを書く場合は、この方法をお勧めします。ひとつの文字列を作成してからprint関数に渡す…

Perl入学式が北海道・札幌で始まる

Perl入学式が、東京、大阪、沖縄と続いて、北海道・札幌でも始まるようですよ。 2017/04/15(土) 13:00 開催 北海道 大通 Perl入学式 in札幌 第1回 〜環境構築編〜 Perl入学式って? 「プログラミングに興味があるけど, ちょっと難しそう...」と思っている貴方…

YAPC::Fukuoka Hakata 2017の個人スポンサーチケットを購入しました

YAPC::Fukuoka Hakata 2017の個人スポンサーチケットを購入しました。2017年7月1日(土)に行われるYAPC::Fukuoka Hakata 2017に参加します。 YAPC::Fukuoka Hakata 2017 YAPC::Japanが九州に初上陸! YAPCはYet Another Perl Conferenceの略で、一般社団法人 …

DBIx::Custom 0.39 リリース - SQLの生成機能の追加、モデルの簡単な生成

DBIx::Custom 0.39 リリースしました。今回は、大きなアップデートとなっています。アップデートするときは、十分に試験を行ってください。 DBIx::Custom 0.39 機能の追加 DBIx::Custom 0.39では以下の機能が追加されました。 SQL生成機能 SQLの生成機能が追…

printf関数 - 書式付き文字列出力

Perl › 関数 › here 書式(フォーマット)を設定して文字列を出力するにはprintf関数を使用します。 printf "Number %03d %.3f\n", 3, 3.14567; 上記の出力結果は次のようになります。「3」という整数は3桁になるように左に0が埋められています。「3.14567」と…

4月21日(金)「吉祥寺.pm 10」にトークで参加します

4月21日(金)「吉祥寺.pm 10」にトークで参加します。 4月21日(金)「吉祥寺.pm 10」 「カンファレンス、勉強会、そしてPerl入学式」というテーマを設定してみました。カンファレンスや、勉強会への参加や、トークの経験談、そして別イベントでのトークの再録…

DBIx::Custom 0.38 リリース - 5年前に廃止予定になっていた機能の削除

DBIx::Custom 0.38をリリースしました。今回のリリースは、5年前に廃止予定になっていた機能の削除です。5年以上前に、DBIx::Customを利用していて、今アップデートする方はご注意ください。余分な条件分岐がなくなったので、その分高速化しています。 DBIx:…

DBIx::Customを非同期クエリと一緒に使うための修正を考えている

現在DBIx::Customは実験的にMySQLの非同期クエリをサポートしているのですけれど、これはあまりよくないと考えています。一つ目は、非同期クエリの仕組みが、RDBMSごとにかなり異なるので、ORマッパーの中で抽象化するのはあまりよくないなぁという感覚があ…

YAPC::Kansai 2017 発表資料「MojoliciousとWebSocketでサーバーpush配信」

YAPC関西でゲストスピーカーとして、話させていただきました。参加者の方、YAPC運営スタッフの方、ありがとうございました。YAPC::Kansai 2017 発表資料「MojoliciousとWebSocketでサーバーpush配信」を公開します。 発表資料 MojoliciousとWebSocketでサー…

DBIx::Customの5年前に廃止予定にした機能が取り除かれます

僕はDBIx::CustomというORマッパーを作っているのですが、5年以上前の初期開発の記事に、廃止予定にした機能を取り除く作業を今行っています。たくさんのソースコードの修正があるので、新しいリリースが行われるときは、十分にご注意ください。今後の方針と…

YAPC::Kansaiでのメールフォームのリファクタリングは僕ならどう書くかな

3月4日はYAPC::Kansaiが新大阪でありましたね。熱気と楽しみに盛り上がっていましたね!!! 今週中には、自分のプレゼンテーションをアップしようと思っています。ところで弾さんが実演でメールフォームのリファクタリングやってましたけど、僕ならどう書くか…

ExtUtils::MakeMaker - Makefile.PLのカスタマイズ

Perl › XS › here ExtUtils::MakeMakerを使ったMakefile.PLの記述方法を解説します。 テストスクリプトを指定する デフォルトでは「t」ディレクトリ以下の試験スクリプトが実行されますが、さらに深い階層のサブディレクトリの試験スクリプトを実行したい場…

XSモジュールを作成する

Perl › XS › here Perlから呼び出すことのできるように作成したC言語(あるいはC++)の関数のことをエクステンションといいます。一般的にはXSと総称して呼ばれることが多いようですので、XSと呼ぶことにします。XSモジュールを作成してPerlから呼び出すための…

XSにおけるPerlの型とC言語の型の相互変換

Perl › XS › here PerlからCの関数を呼び出すということは、Perlの型をCの型へ変換を行い、C言語の関数を呼び出し、結果を、C言語の型に戻してPerlに返すということです。つまり、覚えることの大部分は型変換を覚えることにつきます。 ここではどのような型…

複数モジュールを使うXSの簡単な実装方法

Perl › XS › here XSを使ってモジュールを作ろうとしたときに、複数のモジュールに分割するときにふと困りました。たとえば、SomeModuleとSomeModule::Utilの両方でXSの実装を行いたい場合です。方法を調べていたのですが、実装方法が結構煩雑で難しいなと感…

C言語のライブラリをXSファイルから読み込む方法

Perl › XS › here C言語のライブラリをXSファイルから読み込む方法を解説します。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A -n SomeModule こうすると「SomeModule」というディレクトリが作成されます。次のようなファイ…

XSでC言語の構造体をPerlのオブジェクトとして扱う方法

Perl › XS › here XSでは、構造体自体をPerlのオブジェクトとして扱うこともできます。C言語の構造体をPerlのオブジェクトとして扱う方法を解説します。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A -n SomeModule こうする…

C++のクラスをXSから利用する方法

Perl › XS › here XSでC++のクラスを呼び出す方法を学びましょう。これができるようになれば、どんなC++のライブラリでも、Perlにバインディングができるようになると思います。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A…

C++のライブラリをXSから利用する方法

Perl › XS › here PerlのXSではC++で書かれたライブラリを呼び出すこともできます。コンパイラとリンカに、C++用の「g++」を指定するだけです。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A -n SomeModule こうすると「Some…

Perlぜひ覚えておきたいテクニック

Perl › here Perlで開発するときに、ぜひとも覚えてほしいテクニックをまとめました。 1. リファレンス配列とハッシュとリファレンスを使って多次元データ構造を自由に使う。 2. 例外処理Perlの例外処理についての解説です。 3. コマンドライン引数コマンド…

データベース

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …