This document contains code snippets and data in various programming languages. It shows sample code for loops, modules, subroutines, data types, and more. Version counts from 2009 to 2018 are also included.Read less
![Perl使いの国のRubyist](https://cdn-ak-scissors.b.st-hatena.com/image/square/b529e64fbacdeb2dfaccc8ab74baf1ff5983ed3c/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2F20180512rejectkaigi2018-180512065439-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
This document contains code snippets and data in various programming languages. It shows sample code for loops, modules, subroutines, data types, and more. Version counts from 2009 to 2018 are also included.Read less
去る 10月5日に、Mackerel DAY というイベントが開催された。サーバー監視サービス・Mackerel のリリース3周年を祝っての大型イベントで、豪華登壇陣をゲストに迎え、お昼過ぎから懇親会まで、非常に濃密な時間だった。僕もスタッフとして参加し、また登壇もさせていただいた(僕の登壇スライドはこちら)。 豪華登壇陣、と書いたが、本当に豪華で、非常に多種多様な観点でのお話を聴くことができ、中の人としても・いちユーザーとしても、大変貴重な時間だった。そんななか、ガツンと脳天に響いたセッションが、メルカリ社の SRE チーム所属・プリンシパルエンジニアの id:kazeburo ( @kazeburo )さんの発表だった。 speakerdeck.com 内容としては、メルカリ社における Mackerel のサービス/ロール設計のお話と、独自に作成しておられるカスタムスクリプト/プラグイ
今回のお題 foo.so に含まれている関数 void func(void) をPerlから呼び出す。 プロトタイプ宣言の通り、引数は取らないし戻り値もない(あるいは見ない)。 やりかたはいくつかあって、 普通ならXSモジュールを書いて対応する。 ただこのシンプルな目的のためにXSモジュールを書くのはいささか大袈裟すぎる。 もう少し簡単にやろうと思うと Inline::C を利用する。 これでも別に構わなかったのだけど、今回はこのPerlスクリプトをほぼ同時に並列起動する可能性があり、コンパイルが多重に走るのを避けたい。 ということで、ちょっと珍しいアプローチとしてXSモジュールのベースに使われているDynaLoaderモジュールを直接使ってみることにした。 DynaLoaderとは? Perlで昔からあるコアモジュールで、*.soファイルをロードし、その中のシンボルをモジュール名前空間に
pid ファイルを読んで procfs からバーンと取って集計とるようなやつを書いてみた。 1secごとに60回データを取って、平均を取るみたいなのを子プロセス含めてバーンとヤる感じをやってみた。 書きながらオーバーヘッドがどうかな〜とか考え始めちゃって、結局こういうの、go で書いたほうが良いなということを感じる。 use strict; use warnings; use v5.10.0; use Getopt::Long; use Pod::Usage; use warnings FATAL => 'recursion'; { package ProcStat::Stat; use File::Basename qw/basename/; use List::Util qw/sum0/; sub new { my $class = shift; bless { }, $class;
モジュールメンテナンスを通じて感じる最近のPerl
mRuby.pm allows embedding mruby, a lightweight Ruby implementation, into Perl 5. This allows business logic and configurations written in Ruby to be shared across an iOS, Android, and web application. By using mruby, the codebases can access common Ruby code, rather than having the logic duplicated in Swift, Java, and Perl. mRuby.pm uses XS to embed mruby, exposing both low-level and high-level AP
Perl (あるいは他の言語) を用いて料理・調理を自動化するという話をします. 料理は時間と手間がかかる営みですから,21世紀に生活する我々はこれを可能な限り自動化していく必要があります. 話す内容 2015年はプログラミング料理界にとって本当にエポックメーキングな年となっています.私は大変興奮しています! 皆さんは nomikuというデバイスをご存知でしょうか.nomiku は簡単に言うと,鍋に装着して使う料理器具で鍋の中の温度を一定に保ってくれるというデバイスとなっています.これにより,人間が火加減を逐一確かめて調節するという手間を省き,機械に調理を任せることが可能となります. そして2015年,nomiku は更なる進化を遂げました.Wi-Fi を介して操作できる nomiku WiFi が登場したのです. このモデルは nomiku を遠隔地から操作するという機能を提供しているだ
適当にやってたらHerokuにDockerを使ってデプロイしてPerlでPSGIアプリケーションを動かせた. リロードするたびにランダムに生麦生米生卵って出るウェブサービスを作った.早口言葉を言いたいときにいつでも使える. https://secure-plains-1667.herokuapp.com/ コードはこちら.Docker歴30分くらいなのでめちゃくちゃだと思う.github.com 参考 id:y_uukiさんのDockerfileを適当にコピーしてなんかやってたら動いた. yuuki.hatenablog.com このへん見て真似して書いたらできた. Heroku | Introducing 'heroku docker:release': Build & Deploy Heroku Apps with Docker 感想 HerokuでPerl動かそうとすると,Build
This article Japanese only こんにちは!YAPC実行委員長のわだです。 学生チケット販売を開始しました。 以下のチケットサイトで「学生チケット」をお申込みをいただき、当日学生証の提示で、 2日間通し券がなんと無料 です(ただし、Tシャツは付きません)。 学生の皆様奮ってご参加下さい。 http://yapcasia2014.peatix.com/ さて、今回はその販売開始記念として、学生としてYAPC参加経験のある2人に「学生がYAPC::Asiaに参加する意義」をテーマにインタビューをしてみました。お話を伺ったのはCPAN Author(Perlライブラリ作者)でもあるパピックスさんとモズニオンさんです! 本日はお集まりいただきありがとうございます。まず、YAPC歴と簡単な自己紹介をお願いします。 パピックス 東工大学で行われた2011年のYAPC::Asiaに
前回,Plack::Middleware書いたので,Plack::Middlewareの書き方をメモしておく. Plack::Middlewareモジュールに最低限必要なのは基本的に2つしかない. Plack::Middlewareを継承することcallメソッドを実装しておくだけ. callメソッドの返り値はPSGI形式のレスポンスである. リクエストがとんでくると,builderブロック内でenableした順番にそれぞれのcallが発行される. package Plack::Middleware::MyMy; use strict; use warnings; use parent 'Plack::Middleware'; sub call { my ($self, $env) = @_; return $self->app->($env); # 次にenableしたMiddleware
PerlのCPANで公開されているGraph-Easyを利用して構成図(ブロック図)を書いてみたいと思ったので試してみた。 導入方法はここを見ればすぐに出来た。普段cpanコマンド使っていれば、$ cpan Graph::Easy でインストールできるはず。*1 あとは、概略を書くとグラフ化される。記述の方法はマニュアルを参照するとおおよそわかる。 # sample.txt [ Internet ] -- WAN --> [ nginx ] [ nginx ] -- LAN --> [ remp001 ] [ nginx ] -- LAN --> [ storyboards001 ] [ storyboards001 ] -- ref --> [ mongo001 ] [ remp001 ] -- ref --> [ mongo001 ] (LXC: [remp001], [storybo
Welkom bij Pelletkachels.nl, jouw ultieme bron voor alles wat met pelletkachels te maken heeft! Maar we zijn meer dan alleen een platform voor het bespreken van warmtebronnen. Bij Pelletkachels.nl geloven we dat het delen van kennis en ervaringen over bedrijven en gebeurtenissen ook essentieel is voor het creëren van een betrokken en geïnformeerde gemeenschap. In dit blog duiken we dieper in de we
はい、というわけで自分のトークです: 昨年12月頃から関わってるlivedoorBlogのコードを触っていた時の憤りをスライドにぶつけてみました。 追記:スライドに「ログにマーカーをつける」というのは、(コード読んでないけど)多分こちらのエントリにあるLog::Minimal::Indentとだいたい同じ感じのヤツです ところでWeb上で見かける感想の中でこんなのがありました: 今年個人的に一番衝撃的だったのはやっぱ、livedoor blogのPlack化です。技術的な側面もさることながら、ああいう近視眼的には何のメリットもないし、逆にデメリットの方が大きそうな案件にリソースを割くジャッジができる会社としての姿勢が本当に凄いなと。 実はビジネス的にも意味はあるんだなー。 なかなか書くことができなかったんだけど、その内容というのがこちらと→ ブログのお引っ越し機能を大幅に強化しました! (
xtetsujiです。 昨今は書籍よりも検索エンジンに頼って勉強する人が多くなってきているのかもしれませんが、そういう人を戒めるかのようにPerlでは「ググれない」一文字変数や一文字シンボルやそれに類するものの数々があります。 実際のところ、ちゃんと書籍を通読したり、perldoc perlvar perldoc.jp/perlvar を読めば理解できるのですが、それでもハマる落とし穴といったところを解説していきたいとおもいます。 use English; は使わない perlvar の解説を読んでいると、一文字変数が嫌な場合は use English; とすれば $_ が $ARG として参照できて嬉しいよ、といった解説が行われていますが、通常 use English; は使いません。というか、use English; を使ったプロジェクトを内外で見聞きしたことが10年の間に私の経験上あ
開発環境と本番環境で favicon を変える というのに感動したのでRack middlewareでやってみました。というか、昨日のPlack::Middleware::DevFaviconをRackに移植しただけですけど。 Plack版とおなじく単に favicon.ico ないし favicon.png という名前にマッチしたらグレースケールにして返すというだけの代物ですが、Rack middlwareなので簡単に導入できるのが楽かなと。 使い方は以下のとおり。faviconを配信するミドルウェアよりも先にuseしてください。 if ENV['RACK_ENV'] != 'production' require 'rack-devfavicon' use Rack::DevFavicon end map "/favicon.ico" do run Rack::File.new("#{
NAME Carp::Reply - get a repl on exceptions in your program VERSION version 0.08 SYNOPSIS perl -MCarp::Reply script.pl or use Carp::Reply (); sub foo { # ... Carp::Reply::repl(); # ... } DESCRIPTION Carp::Reply provides a repl to use within an already running program, which can introspect the current state of the program, including the call stack and current lexical variables. It works just like R
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く