YAPC::Hakodate 2024でのトークです https://yapcjapan.org/2024hakodate/
こんにちは、技術部の谷脇です。 去る2月10日に行われたYAPC::Hiroshima2024ですが、みなさまはいかがだったでしょうか。私は参加して大満足であり、運営の方々に大感謝させていただきます。 さて、カヤックではゴールドスポンサーと椅子スポンサーをしていたというのは開催直前に出した記事で述べさせていただきました。 techblog.kayac.com この記事では伏せられていた、椅子スポンサーのPerlbatrossですが、この記事ではPerlbatrossの内容紹介と問題解説をしようと思います。 Perlbatrossとは YAPC::Hiroshima2024の開催期間中にコードゴルフの問題を出していました。以下は椅子スポンサーで貼らせていただいた問題です。 Q1. Split of Graphemeの問題 さて、これだけではなく、QRコードにアクセスすると実際に問題を解けるサ
チーフエンジニア兼エンジニアリングマネージャのid:taraoです。先日開催されたYAPC::Kyoto 2023にはたくさんの方にご参加いただけまして、ありがとうございました。 トートバッグに書かれたPerlコード YAPC::Kyoto 2023には、はてなもスポンサーとして参加しており、会場で配布されたトートバッグのデザインも提供していました。そのバッグの片面にPerlのコードが書かれていたことにはお気づきいただけたでしょうか? コードを書き写すと以下のようになります。 use feature qw(try); try { Something->new; } catch ($your_dream) { tell $your_dream and seek our $future, @ YAPC::Kyoto, 2023; } 今回のカンファレンスのテーマは「try/catch」だったの
# source/DCONWAY/Acme-Bleach-1.150/lib/Acme/Bleach.pm package Acme::Bleach; our $VERSION = '1.150'; my $tie = " ¥t"x8; sub whiten { local $_ = unpack "b*", pop; tr/01/ ¥t/; s/(.{9})/$1¥n/g; $tie.$_ } sub brighten { local $_ = pop; s/^$tie|[^ ¥t]//g; tr/ ¥t/01/; pack "b*", $_ } sub dirty { $_[0] =~ /¥S/ } sub dress { $_[0] =~ /^$tie/ } open 0 or print "Can't rebleach '$0'¥n" and exit; (my $shirt =
id:karupaneruraです。 今年2月に開催したJapan.pm 2021の後継となる、YAPC::Japan::Online 2022の開催が決定しました。 まだ準備も半ばなので確実に言えることは多くはないのですがいくつか考えていることやすでに決まっていることがあるので、 参加や登壇を考えているPerl Mongerの方々やスポンサードを検討している企業様にお伝えさせて頂ければとこのエントリを用意しました。 日程 2022年の3/4(金),3/5(土)での開催を予定しております。 まだ検討中なので変わる可能性はありますが、現在のところ金曜日は夕方から夜にかけて、土曜日は昼から夜にかけての開催で検討しています。 ぜひ、興味のある方は今のうちにGoogleカレンダーなどに予定を入れるなどして時間を確保していただけますと幸いです。 開催方法 オンラインで行います。オフラインでの開催は残
この記事はTech KAYAC Advent Calendar 2020の9日目の記事です 技術部1年目サーバサイドエンジニアのkoluku(コルク)です。 この記事ではPerlでコードを書くための思考過程や実践的なテクニック(やっちゃだめなテクニック)を織り交ぜながらいかにしてコードを短くできるかを紹介してみたいと思います。 FizzBuzz問題 みなさんはFizBuzz問題をご存知でしょうか。 FizzBuzz問題とは、 1〜100までの数字を順に出力を行い、その数が3で割り切れるならFizz、5で割り切れるならBuzz、そのどちらでも割り切れるならFizzBuzzと代わりに標準出力(文字表示)する という問題です。プログラムを書くことがある人は一度は書いたことはあると思います。 この問題では出力が改行ありなしの指定が無いのでここでは(都合がいいので)改行ありということにしておきます。
Webアプリケーションエンジニアの id:papix です. Perlは主に5が大好きです. 先日, ラトビアのリガにて開催された「PerlCon 2019」に参加してきましたので, その様子を共有させて頂きたいと思います. PerlCon 2019のロゴ. 猫です. PerlCon 2019について perlcon.eu PerlCon 2019は, 毎年ヨーロッパで開催されるPerl 5とPerl 6のカンファレンスの第20回目にあたります(かつてはYAPC::EUという名前で開催されていました). 8月7日〜9日にかけて, リガのRadisson Blu Daugavaにて開催されました. 3つのキーノート, 30近いセッションと1つのワークショップ(今回は, Perl 6の並行処理/並列処理に関するワークショップが開催されたようです)に, ヨーロッパを中心に200人近い参加者が集ま
SEE ALSO: blog.perlassociation.org なぜ平成も終わるこのご時世に?と思う方もいらっしゃると思います。 思いの丈を書いてみます。 昨今のWeb開発のトレンドとしては、動的型付け言語から静的型付け言語へシフトが進んでいます。 また、PaaS/SaaS/FaaSの普及により言語選択よりも技術選択とそのアーキテクチャがより重要になってきており、 *1いちプログラミング言語の重要性というものは、(特に動的型付け言語においては)昔ほど重要ではなくなっているのが実情かと思います。 その中でもPerlは、人気度でいえば比較的低い言語といえるでしょう。 LLと呼ばれる言語の中で最低の人気と言っても間違いではないかもしれません。 ひどいときには、1987年に作られたPerlと1959年に作られたCOBOLが並べて語られることすらあります。*2 それでも、ぼくはPerlが好きで
多くのCPAN Authorに育てられ、息をするようにCPANモジュールを書けるようになり、そして分かったこと
2016年度(2016年4月)よりJPAの体制変更を行いましたので、ここにお知らせいたします。 個人社員から法人社員へ 以下の4社がJPAの社員総会において議決権を行使する社員となり、理事・監事も変更となりました。 社員 株式会社ガイアックス 株式会社はてな 株式会社モバイルファクトリー 株式会社ディー・エヌ・エー 理事・監事 小林篤氏(代表理事・株式会社ディー・エヌ・エー) 肥後彰秀氏(理事・株式会社ガイアックス) 田中慎司氏(理事・株式会社はてな) 佐藤健太氏(理事・株式会社モバイルファクトリー) 平子裕喜氏(理事・株式会社ディー・エヌ・エー) 大月英照氏(監事) 今回の体制変更における理事・監事退任者は以下の通りです。 牧大輔氏 岡部恵一氏 森本淳氏 加藤敦氏 和田裕介氏 今後の活動方針について 今後は「日本におけるPerlコミュニティを脈々と続くものとして盛り上げる」をミッション
ikachan with Yappocall for LINE BOT API Trial Account LINE さんから Bot が作れる API がリリースされたということなのでikachanと昔なつかしYappocallの LINE 版を作ってみました。 実物はこちらhttp://yappocall.yappo.jp/ 初代 Yappocall は APNs で実装してましたが、今度は LINE を使ってるので僕からのお知らせが表示されてて双方向インタラクションな未来が来てる! LINE の開発者画面で Bot の作成を行い必要な設定を済ませた後、 Bot 連携するために必要な情報をソースコードに書いて実行するだけで簡単に ikachan のような単純な Web API が設置出来ます。 ソースコードの設定以外にも必要な作業があって、作成した LINE Bot を友だちに追加して
この記事は、モバイルファクトリー Advent Calendar 2015 11日目の記事です ※ 投稿内容は私個人の意見であり、所属企業・部門見解ならびに技術戦略を代表するものではありません。 昨日は@rymizukiさんのnpmライブラリの運用と管理についてでした。今日はPerlの話です。 お仕事やプライベートでPerlのwebアプリケーションを書くことが多く、いろいろ知見が溜まってきてるので、ここで少し紹介しようと思います。 今回はPlack/PSGIなwebアプリケーションの実行環境の話です。mod_perlなアプリケーションとはちょっとコンテキストが違います。 少しかっちりコンテキストに近いです。個人で軽くwebアプリケーション立てるならもう少しゆるふわでも問題ないはずです。 OS UbuntuのLTSを使うことが多いです。Ubuntu前提の内容が後に続きます。 Perl Sys
この記事は Perl Advent Calendar 2015 の 11 日目の記事です。 昨日の記事は mackee_w さんの「ペライチ PSGI アプリケーションの概念と実証」でした。 今年 2015 年は、HTTP/2 の RFC が出ましたね。というわけで HTTP/2 の話をします。以前 Gotanda.pm #4 にて「Perl の HTTP/2 事情」というタイトルで発表したのですが、それとだいたい一緒です(記事書いてなかったので…)。 HTTP/2 の各言語実装は https://github.com/http2/http2-spec/wiki/Implementations にまとまっているのですが、ここを見ると Perl には Protocol::HTTP2 / http2-perl という実装があるようです。ただ http2-perl は h2-04 準拠なので O
OSS活動の成果発表のお時間です。 Plackの 1.0038と2015年11月27日時点のmasterにはPlack::Request、Plack::Responseのパフォーマンスをあげる変更が入ってます。その紹介とベンチマークです。 github.com Plack 1.0038 で HTTP::Headers::Fast 0.20 につけた flatten メソッドを使うようになってます。Plack::Response->finalizeのパフォーマンス向上が期待できます。 github.com こちらはまだmasterにmergeされた状態。リリースはされてない。POSTリクエストのパースにHTTP::Bodyではなく、HTTP::Entitiy::Parserを使い、パラメータのパースに WWW::Form::UrlEncodedを使うようになっています。 HTTP::Enti
Perl は正規表現とか " ではさまれた文字列の中にある変数とか配列を展開してくれるんですが、これは明らかに正規表現の文字クラス ([abc] とか書くヤツ) とブツかるわけです。 以下のコードは @a に 0-999 まで "x" っていう変数をつっこんでから s/$a[...]/y/; 的なことを実行して、 $_ に入ってる x を y に変えようとするコードをいくつか。 #!/usr/bin/env perl for ($i=0; $i < 999; $i++) { $a[$i] = "x"; } $_ = "x"; s/$a[12]/y/; print "12: $_\n"; $_ = "x"; s/$a[123]/y/; print "123: $_\n"; $_ = "x"; s/$a[-2]/y/; print "-2: $_\n"; $_ = "x"; s/$a[-22]
シックス・アパートのエンジニアの重田です。 YAPC::Asia Tokyo 2015 にご来場いただきました皆様、2日間(または3日間)お疲れ様でした。 Six Apartは、コーヒースポンサーとして協賛させていただきまして、当社オリジナル紙コップを提供しました。 Twitter では多くの方が紙コップの画像とともにツイートしていただき、本当にありがとうございました。 無限コーヒーと呼ばれるコーヒーブースでは無料でコーヒーが提供されておりましたが、予定されていた数量を飲み切ることができませんでしたね。運営の勝ちでした。 さて今回は紙コップのコードにまつわる話をしたいと思います。 構想 2015年のはじめにコーヒースポンサーになることが決まり、合わせてオリジナル紙コップを提供することも決まりました。 5月頃にいよいよ紙コップのデザインを決める段階になりました。 「コード実行したら URL
@TAKESAKO さんが ppencode を作ってから 10 年経って、私が任意の Perl コードを小文字だけに変換するスクリプトを書いてからでも5年経つらしいですが、なんか任意の Perl コードを予約語だけの Perl コードに変換するスクリプトができました。 http://shinh.skr.jp/obf/ppencode.html オリジナルの ppencode に敬意を表していろいろ雰囲気を似せておきました。割と色んな予約語が使われるようにしてみたりとか。 これは Perl が予約語だけあれば Turing complete ということなので、副産物として Quine もできました。 http://golf.shinh.org/reveal.rb?Quine/shinh+%28keywords%29_1431106882&pl なんというか、 ppencode があれば後は
まずはこちらをごらんください。 shinh.hatenablog.com すごすぎる……。恐ろしいですね。 なぜこんなことになるのか、解説していきましょう。まずはPerlの気持ちになりましょう。 Perlの気持ち編 ポイントその1 barewordを数値コンテキストで評価するとどうなるのかということ 件のプログラムは、base64 っぽい文字列が書かれていますが、これを前からPerlコードとして読んでいくと、大きく2つのパートに分かれることに気づきます。というのも、前から一文字ずつ読んでいくと、「+」という演算子にぶつかるわけですね。 それに気づくと、このコードは前半部分 dXNlIE1JTUU6OkJhc2U2NDtwcmludCBlbmNvZGVfYmFzZTY0IGpvaW4nJyw8PjsKX19FTkRfXwo と、 s//v62/e+s//v60/e+s//v44/e+s//v
http://shinh.skr.jp/obf/b64_dec.pl dXNlIE1JTUU6OkJhc2U2NDtwcmludCBlbmNvZGVfYmFzZTY0IGpvaW4nJyw8PjsKX19FTkRfXwo+ s//v62/e+s//v60/e+s//v44/e+s//v39/e+s//v39/e+s//join/+s//v32/e+s//base64/ss+ s//v95/e+s//decode/+s//v32/e+s//print/+s//v59/e+s//Base64/+s//v58/e+s//v58/e +s//MIME/+s//v32/e+s//use/s/evalこの Base64 ぽく見える物体は Perl コードで、実行すると引数で指定したファイルに対する base64 デコーダとして機能します。 $ perl b64_dec.pl b64_dec.pl >
I shipped a few trial versions of Carmel to CPAN. Carmel is intended to be a successor of Carton, with a better internal structure and an interesting architecture change. As a starter, here’s how Carton works: use local::lib and cpanm’s -L option to install modules locally to ./local Scan meta/install.json file cpanm created under ./local and create a snapshot file for the next run, if there’s a s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く