オランダ TIOBE は「TIOBE Index for April 2014」を公表した。Google、Bing、Wikipedia、Amazon といった人気の高い検索エンジンの検索結果から、プログラミング言語の人気をランク付けしている。今回公表されたランキングでは、「Perl」が13位と、過去最低の順位となった。 Perl は、Larry Wall 氏が1987年に開発した文字列処理に優れたスクリプト言語。同言語は、前年同期には TIOBE インデックスで9位にランキングされていた。
![Perl 人気が過去最低に ― プログラミング言語の人気ランキング TIOBE インデックス [インターネットコム]](https://cdn-ak-scissors.b.st-hatena.com/image/square/f2e29409b0a6830195fddc0a0ee0440130c93f65/height=288;version=1;width=512/https%3A%2F%2Fimage.internetcom.jp%2Fimg%2F20140416%2F1397612275.jpg)
こんにちは,まずはこのGIFをご覧ください. Perlのソースコードをリファクタリングするツールまともなのがないから自作することにした.perl-refactoring-toolsっていうそのままの名前. GitHub - hitode909/App-PRT: Command line tool for Perl code refactoring いろいろあってApp::PRTになった GitHub - hitode909/App-PRT: Command line tool for Perl code refactoring いまのところ,トークンの置き換えと,クラスのリネームができる. テストのカバレッジ100%で意識高い. hitode909/App-PRT | Coveralls - Test Coverage History & Statistics トークンの置き換え トークン
以前に「はてなとそっくり」なWebサービス開発会社として、開発のいろいろをお聞きした「リクルートコミュニケーションズ」が、エンジニアリングの対象を、アドテク分野にシフトし、最先端の分野でWebサービス出身のエンジニアたちがさまざまな工夫をしています。3年前と同じように、はてなチーフエンジニアの大西を交えて座談会を開催し、開発環境からキャリアパスのことまでいろいろとお聞きしました。記事の最後には、MacBook Pro Retinaディスプレイモデルが当たるプレゼントのお知らせもあります。 座談会出席者(上写真、左より):はてな 大西康裕、リクルートコミュニケーションズ 大石壮吾さん、日馬康和さん、阿部直之さん、上田和孝さん (※この記事は、リクルートコミュニケーションズ提供によるPR記事です) 大西 ご無沙汰しています。はてなチーフエンジニアの大西です。以前もこちらのリクルートコミュニケー
インストール済みのモジュールたちから、perldocを引くためのリストを作る - すぎゃーんメモ を書いた後 id:syohexさんと相談させていただいた結果、きれいにモジュール一覧を取得する方法を確立していただき。 インストール済みのモジュール一覧を得る方法 - Qiita これでhelm-perldoc がインストール済みのモジュール・podをすべて取得して参照できるようになりました。ありがとうございます。 helm-perldoc:setup このコマンドが非同期でモジュール一覧を取得してくれる。 既にモジュールのリストが取得されていれば何もせずにスルーするので、cperl-modeでファイルを開くたびにhookで実行させておけばよい。 (defun my-cperl-mode-hook () (helm-perldoc:setup) (flymake-mode t)) (add-h
要旨 Algorithm::LossyCount というモジュールを書きました。これを使うとそこそこメモリ効率良く大規模なデータの計数ができます。アクセスランキング集計とかに使えるんじゃないでしょうか。 Github MetaCPAN 動機 例えばブログホスティングサービスで HTTP サーバのアクセスログを集計して人気のあるブログ記事ランキングを出したいとします。 Perl でデータの出現頻度を計数するのはハッシュを使うのが鉄板なので、適当に書くとだいたいこんな感じのコードになると思います: #!/usr/bin/env perl use v5.18; my %access_counts; while (<>) { chomp; my $access_log = parse_access_log($_); next if is_article_request($access_log);
(日本語は英語の後にあります) I released Perl::PrereqScanner::Lite. https://github.com/moznion/Perl-PrereqScanner-Lite https://metacpan.org/release/Perl-PrereqScanner-Lite This module is the fast edition of Perl::PrereqScanner. Perl::PrereqScanner has been using PPI as tokenizer, however Perl::PrereqScanner::Lite uses Compiler::Lexer as tokenizer. Moreover it excludes dependency to Moose. Consequently, Perl::Pr
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
U-NOTE サイト閉鎖のお知らせ 長らくのご利用、誠にありがとうございました。 当サイトは2024年12月31日をもちまして閉鎖いたしました。 これまでのご支援に心より感謝申し上げます。
文字列中にエスケープされていないダブルクォートがあった時に,例えば文字列evalしようとするとずっこける事があります.以下の様な感じ. なぜ失敗するかというと,eval "$str"がeval "hel"lo"という風に評価されてしまうからなんですね.これではlo"がinvalidになってしまいます. で,そういう時にどうするかと言うとB::perlstrigですよ! こうすると動く. B::perlstring('hel"lo')という風にしてやると,'hel\"lo'という風に適切にダブルクォートをエスケープしてくれる訳ですね. こういう場合「男は黙って正規表現」と思っていましたが,B::perlstringで良い気がしました! [追記] 文字列evalはあくまで***例***なんで真に受けないで欲しいんですけど,他に良い例が思いつかなかったと言うか,実際のソースとか使い道とか書いても
helm-perldoc を使ってみたりしていて気付いたのだけど、Perlでインストールされているモジュールたちからperldocでドキュメント引くためのリストを作るのってけっこう難しい。。 シェルコマンドで @INC以下にある*.pmファイル、もしくは*.podファイルから生成。@INCそれぞれからファイルを検索する。カレントディレクトリ.が含まれてしまうのは困るので除外する。 $ perl -e '$_ ne "." and print "$_\n" for @INC' | xargs -I{} find {} -name '*.pm' -o -name '*.pod'というかんじでファイルは列挙できるけど、ここからパッケージ名とか抽出していくのが厳しい。全部フルパスで得られるけど探索元がそれぞれ違ったりするから一気に削る、みたいにはできないし。 perl-completion.el
(1)はこちら、(2)はこちらから。 CIを高速に回す手法 今回は、CIをより高速に回す手法をまとめます。 なぜCIに速度が求められるのか 作り始めのプロダクトは小さく、テストはすぐに終わるかもしれませんが、テストコードの量や種類が多くなっていくにつれ、全体の実行時間は延びていきます。また、開発メンバーが増えていくと、さまざまな開発が並行で走ることになり、CIサーバが実行するテスト量が急激に増えます。1回のフルテスト実行が仮に30分かかるとすると、同時に開発しているプロジェクトが3件あると、最長1時間30分ほどCIの実行を待たなければ結果がわからないといったことも起こります。 個別のテストを高速化する手法は先述した『Perl徹底攻略』の記事でも取り上げられています。個別のテスト実行の高速化も重要ですが、それだけでは限界があります。ある程度規模が大きくなる場合には、スケールするしくみを用意
Mac OSX 10.9(Mavericks)で最新のPythonとRubyとPerlが手軽に使える環境を構築する(pyenv+virturlenv,rbenv+gemset,plenv+pmset) 2014/01/09 技術ネタ HomeBrew, MacOSX, python, rbenv, Ruby pyenv+virturlenv & rbenv+gemset & plenv+pmset 環境構築忘備録 年末に新しいMacBook Pro 13inch Retinaを導入しました。 最初にやった事はGoogle Chromeのインストールとお気に入りの同期、次にやった事はGoogle Driveとの同期でした。 生活がGoogle先生に侵食されていると感じている今日この頃ですが、その次にやった事は開発環境の環境の構築でした。 クラウドサービスの活躍でデータ同期の手軽さは進むものの
1週間ぐらいtrialでしたが、Windowsでも動いたようなので0.10を出しました。すごーーーく、、、、ニッチです https://metacpan.org/release/POSIX-strftime-Compiler https://github.com/kazeburo/POSIX-strftime-Compiler POSIX::strftime::CompilerはGNU互換で、ロケールの設定に影響を受けないstrftime(3)を提供します。WindowsでもGNU互換の文字が使えます。おそらくloggerとかloggerとかloggerに便利です $ LC_ALL=ja_JP.UTF-8 perl -Ilib -MPOSIX::strftime::Compiler -E ' say POSIX::strftime::Compiler::strftime(q!%d/%b/%
コマンドラインから引数が渡すようなモジュールでも以下のような要件があったりする。 コマンドラインからだけじゃなくて、コード内で直接オブジェクトをnewしたい場合もある 複数のコマンドラインツールを組み合わせて使うような場合に@ARGVを何度か渡すケースがある growthforecast.plみたいなサーバースクリプトだとよくあると思っていて、スクリプト単体で引数渡して起動できるけど、自分でGrowthForecast::Web->newしたくなることもある。これが前者。 growthforecast.plにPlackとGrowthForecastのオプションをコマンドラインから同時に渡したいみたいなのがある。これが後者。 GrowthForecastはあくまで例えです。念のため。 それに対しては以下のようにすればよいのかなーとなった。 parse_optionsというクラスメソッドで@A
ハロー。今日はクリスマスイブだ。今日は僕からみんなに素敵なプレゼントをお届けしようと思う。 ... ... ... ふぅ。こんな感じで書こうと思ったけど、このキャラ無理だわ。普通に書きます。 Otogiriとは Otogiri という ORM(?)があります。これは@ytnobodyさんが作ったやつで、 Synopsis 丸写しするとこんな感じの物体です。 use Otogiri; my $db = Otogiri->new(connect_info => ['dbi:SQLite:...', '', '']); my $row = $db->insert(book => {title => 'mybook1', author => 'me', ...}); print 'Title: '. $row->{title}. "\n"; my @rows = $db->select(book
This is a review of CPAN and PAUSE in 2013. The Comprehensive Perl Archive Network (CPAN) is an open archive of reusable components for the Perl programming language, mirrored on 268 servers around the world. Each distribution on CPAN contains one or more modules. A module might be an object-oriented class, or a library of functions. By the end of 2013, a total of 33,763 distributions had been rel
tl;dr % cpanm APNS::Agent % apns-agent --certificate=path/to/cert.cer --private-key=path/to/cer.key Twiggy: Accepting connections at http://0.0.0.0:4905/ % curl http://127.0.0.1:4905 -d 'token=1111111111111111111111111111111111111111111111111111111111111111&alert=test%20message' Got it! 本題 APNS::Agentってのを作りました、内部的にAnyEvent::APNSを使っていてiOSのpush通知をHTTPで実現できます。 % cpanm APNS::Server すれば、apns-agentっていうコ
おがた (@xtetsuji) です。 2013年12月28日に行われた Hokkaido.pm#11 に参加してきました。 ※参加ブログ記事やスライドURLなどについては、公開されたりしたら都度追加していきます いつも参加ブログ記事を書くのが遅いので今回はすぐに年内に…。本当は他にも出席したものの、まだ参加ブログ記事を書いていないイベントが結構あるのですが、それは年末年始休暇にまとめて書こうと思います。 Hokkaido.pm#11 : ATND Hokkaido.pm#11を開催しました | event | Hokkaido Perl Mongers 参加者の方々によるブログ記事 。 帰ってきたネコブログ » Hokkaido.pm#11に行ってきました 場所は、今回は東札幌駅近くの産業振興センターではなく、札幌駅の北の札幌エルプラザというところでした。ここはHokkaido.pm C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く