Suche senden
Hochladen
Plack::Request with Encoding
•
1 gefällt mir
•
1,531 views
M
moznion
Folgen
2013-11-20, shibuya.pl (plackcon)
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 60
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
第6回 Drupal 勉強会@DC で発表したスライドです
Drupal 8.4.x の core にみるフロントエンド開発の現状紹介
Drupal 8.4.x の core にみるフロントエンド開発の現状紹介
tom_konda
第1回 Drupal 勉強会@DC にて発表したスライドです
Drupal 8 における TypeScript を使用する JavaScript 開発の現状
Drupal 8 における TypeScript を使用する JavaScript 開発の現状
tom_konda
There are some things to keep in mind about using golang's database / SQL library.
Database sql
Database sql
明 高橋
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
Takashi Someda
Dalvikバイトコードにおけるデータフロー自動解析ならびにtrueseeingについて (セキュリティうどん14杯目 Lighting Talk) #secudon
Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes
Takahiro Yoshimura
Google Perf Tools (tcmalloc) の使い方
Google Perf Tools (tcmalloc) の使い方
Kazuki Ohta
第2回 立命館・全国高校生ソフトウェア創作コンテストICT Challenger +R 2012で発表した際に使用した、プレゼン資料です。 SlideShare向けに、一部修正してあります。
VBCPP - ICT+R 2012
VBCPP - ICT+R 2012
Yuki Igarashi
Shibuya Perl Mongers #12のライトニングトークにてCouchDBを発表したときのスライドです。
Shibuya Perl Mongers#12 No Sql Couch Db
Shibuya Perl Mongers#12 No Sql Couch Db
Makoto Ohnami
Empfohlen
第6回 Drupal 勉強会@DC で発表したスライドです
Drupal 8.4.x の core にみるフロントエンド開発の現状紹介
Drupal 8.4.x の core にみるフロントエンド開発の現状紹介
tom_konda
第1回 Drupal 勉強会@DC にて発表したスライドです
Drupal 8 における TypeScript を使用する JavaScript 開発の現状
Drupal 8 における TypeScript を使用する JavaScript 開発の現状
tom_konda
There are some things to keep in mind about using golang's database / SQL library.
Database sql
Database sql
明 高橋
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
Takashi Someda
Dalvikバイトコードにおけるデータフロー自動解析ならびにtrueseeingについて (セキュリティうどん14杯目 Lighting Talk) #secudon
Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes
Takahiro Yoshimura
Google Perf Tools (tcmalloc) の使い方
Google Perf Tools (tcmalloc) の使い方
Kazuki Ohta
第2回 立命館・全国高校生ソフトウェア創作コンテストICT Challenger +R 2012で発表した際に使用した、プレゼン資料です。 SlideShare向けに、一部修正してあります。
VBCPP - ICT+R 2012
VBCPP - ICT+R 2012
Yuki Igarashi
Shibuya Perl Mongers #12のライトニングトークにてCouchDBを発表したときのスライドです。
Shibuya Perl Mongers#12 No Sql Couch Db
Shibuya Perl Mongers#12 No Sql Couch Db
Makoto Ohnami
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
goccy
Use Carton
Use Carton
Yoshihiro Sasaki
Using Dancer
Using Dancer
Yoshihiro Sasaki
2010/08/07 @hokkaido.pm #1
テーマ「最適化」
テーマ「最適化」
technocat
hokkaido.pm#3で話しました。
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
technocat
http://www.slideshare.net/hiratara/hokkaidopm-17020206 の本物の方。
Currying in perl
Currying in perl
Masahiro Honma
リアルワールドグループでは札幌勤務のWebエンジニアを募集中です。4/25(月)に採用イベントを開催予定です。
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
Yoshihiro Sasaki
YAPC::Asia 2013 向けのトーク資料です
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
moznion
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
Plack::Middleware::Assets::RailsLike
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
gihyo.jpさんでレポーターをやった体験談
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Masahiro Honma
理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
Google trends to_irc
Google trends to_irc
rarere
Takao.mt 2013 の資料です Perl で静的解析をするなどという内容です。
Takao.mt 2013
Takao.mt 2013
moznion
2013/3/9 に開催された Hokkaido.pm#9 で発表したトークのスライドです。
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
鉄次 尾形
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
Yoshihiro Sasaki
Hokkaido.pm #4でCPANモジュールを18個紹介しました
CPAN/便利モジュール
CPAN/便利モジュール
Yoshihiro Sasaki
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
Hokkaido.pm #4
変数、リファレンス
変数、リファレンス
charsbar
cpanfile
cpanfile
Yoshihiro Sasaki
YAPC::EU 2015 Talking about static analysis for perl and Perl::Lint.
Static analysis for perl
Static analysis for perl
moznion
Slides of YAPC::Asia Tokyo 2015. Talking about yet another cooking method with programming language.
Yet Another Perl Cooking
Yet Another Perl Cooking
moznion
Weitere ähnliche Inhalte
Andere mochten auch
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
goccy
Use Carton
Use Carton
Yoshihiro Sasaki
Using Dancer
Using Dancer
Yoshihiro Sasaki
2010/08/07 @hokkaido.pm #1
テーマ「最適化」
テーマ「最適化」
technocat
hokkaido.pm#3で話しました。
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
technocat
http://www.slideshare.net/hiratara/hokkaidopm-17020206 の本物の方。
Currying in perl
Currying in perl
Masahiro Honma
リアルワールドグループでは札幌勤務のWebエンジニアを募集中です。4/25(月)に採用イベントを開催予定です。
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
Yoshihiro Sasaki
YAPC::Asia 2013 向けのトーク資料です
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
moznion
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
Plack::Middleware::Assets::RailsLike
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
gihyo.jpさんでレポーターをやった体験談
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Masahiro Honma
理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
Google trends to_irc
Google trends to_irc
rarere
Takao.mt 2013 の資料です Perl で静的解析をするなどという内容です。
Takao.mt 2013
Takao.mt 2013
moznion
2013/3/9 に開催された Hokkaido.pm#9 で発表したトークのスライドです。
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
鉄次 尾形
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
Yoshihiro Sasaki
Hokkaido.pm #4でCPANモジュールを18個紹介しました
CPAN/便利モジュール
CPAN/便利モジュール
Yoshihiro Sasaki
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
Hokkaido.pm #4
変数、リファレンス
変数、リファレンス
charsbar
cpanfile
cpanfile
Yoshihiro Sasaki
Andere mochten auch
(20)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
Use Carton
Use Carton
Using Dancer
Using Dancer
テーマ「最適化」
テーマ「最適化」
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
Currying in perl
Currying in perl
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Asset Pipeline for Perl
Asset Pipeline for Perl
YAPCレポートの舞台裏
YAPCレポートの舞台裏
理解したつもりになるGit入門
理解したつもりになるGit入門
Google trends to_irc
Google trends to_irc
Takao.mt 2013
Takao.mt 2013
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
CPAN/便利モジュール
CPAN/便利モジュール
Perl 非同期プログラミング
Perl 非同期プログラミング
変数、リファレンス
変数、リファレンス
cpanfile
cpanfile
Mehr von moznion
YAPC::EU 2015 Talking about static analysis for perl and Perl::Lint.
Static analysis for perl
Static analysis for perl
moznion
Slides of YAPC::Asia Tokyo 2015. Talking about yet another cooking method with programming language.
Yet Another Perl Cooking
Yet Another Perl Cooking
moznion
Introduce about `RobustWorkerPool` that is an implementation of worker pooling for Jesque.
Jesque robust-worker-pool
Jesque robust-worker-pool
moznion
persecの話です
Hachioji persec
Hachioji persec
moznion
shibuya.pm #7で喋ったやつです
Inner world of Perl::Lint
Inner world of Perl::Lint
moznion
命名の話です
命名の話
命名の話
moznion
Hachioji.pmの#44です
Hachiojipm 44
Hachiojipm 44
moznion
つらい話です (It is hard talk)
Perl::Lint is over, for the present
Perl::Lint is over, for the present
moznion
YAPC::Asia 2014 Talking about Perl::Lint
Perl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Linter
moznion
LT Slide for Hachioji.pm. Talking about MySQL explain parser what is implemented by perl.
Hachioji pm 41
Hachioji pm 41
moznion
Log::Minimal::Object
Hachioji.pm 40
Hachioji.pm 40
moznion
Hachioji.pm #39向け資料
Hachioji.pm #39
Hachioji.pm #39
moznion
日本の市外局番の話 (Yokohama.pm #10)
Talking About Japanese Area Code of Phone
Talking About Japanese Area Code of Phone
moznion
Hachioji.pm 38
Hachioji.pm 38
moznion
Slides for Hokkaido.pm #11. Talking about software testing and documentation.
Hokkaido.pm #11
Hokkaido.pm #11
moznion
Hachiojipm 36
Hachiojipm 36
moznion
Net stalking with-lastfm
Net stalking with-lastfm
moznion
Perl Beginners #08
Perl beginners #08
Perl beginners #08
moznion
Hachiojipm 28
Hachiojipm 28
moznion
LT for Hachio'u'ji.pm #26
Hachiojipm 26
Hachiojipm 26
moznion
Mehr von moznion
(20)
Static analysis for perl
Static analysis for perl
Yet Another Perl Cooking
Yet Another Perl Cooking
Jesque robust-worker-pool
Jesque robust-worker-pool
Hachioji persec
Hachioji persec
Inner world of Perl::Lint
Inner world of Perl::Lint
命名の話
命名の話
Hachiojipm 44
Hachiojipm 44
Perl::Lint is over, for the present
Perl::Lint is over, for the present
Perl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Linter
Hachioji pm 41
Hachioji pm 41
Hachioji.pm 40
Hachioji.pm 40
Hachioji.pm #39
Hachioji.pm #39
Talking About Japanese Area Code of Phone
Talking About Japanese Area Code of Phone
Hachioji.pm 38
Hachioji.pm 38
Hokkaido.pm #11
Hokkaido.pm #11
Hachiojipm 36
Hachiojipm 36
Net stalking with-lastfm
Net stalking with-lastfm
Perl beginners #08
Perl beginners #08
Hachiojipm 28
Hachiojipm 28
Hachiojipm 26
Hachiojipm 26
Kürzlich hochgeladen
Jue Wang, Wentao Zhu, Pichao Wang, Xiang Yu, Linda Liu, Mohamed Omar, Raffay Hamid, " Selective Structured State-Spaces for Long-Form Video Understanding" CVPR2023 https://openaccess.thecvf.com/content/CVPR2023/html/Wang_Selective_Structured_State-Spaces_for_Long-Form_Video_Understanding_CVPR_2023_paper.html
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20Lカタログ
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Key topics covered: - Understanding Ballerina's role in integrations: features and advantages - Designing and implementing REST APIs for integration - Designing and implementing GraphQL services with Ballerina - Monitoring and observing applications - Introduction to data integration
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
2024年5月8日 Power Platform 勉強会 #1 LT資料
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
This is an introduction to MAPPO's paper.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Syed Talal Wasim, Muzammal Naseer, Salman Khan, Ming-Hsuan Yang, Fahad Shahbaz Khan , "Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Grounding" arXiv2024 https://arxiv.org/abs/2401.00901v2
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Kürzlich hochgeladen
(10)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Plack::Request with Encoding
1.
Plack::Request with Encoding Hachioji.pm @moznion
2.
@moznion 大学院生 ! アルバイター ! Hachioji.pm 所属
3.
Plack::Requestと 文字列の エンコーディングの話
4.
Plack::Request
5.
皆さん使ってますか
6.
Plack::Request おさらい
7.
教典こと miyagawaさんの Plack Handbook から引用
8.
Plack::Requestは, PSGI環境変数や レスポンス配列に対して, 簡単な オブジェクト指向APIを提供します. Plack
Handbook 14章より引用
9.
新しいミドルウェアを記述する際の ライブラリとしても利用できますし, PlackをベースにしたWebフレームワー クを記述する際のリクエスト/レスポ ンスのベースクラスとしても使えます. Plack Handbook 14章より引用
10.
WAF作る時とか Webアプリケーション 作る時とかに使う (大体はparentとして)
11.
例 (あくまで例)
12.
13.
さてコレ
14.
param()やparameters()など を使うと, GETやPOSTの パラメータを取れる
15.
param()やparameters()など を使うと, GETやPOSTの パラメータを取れる ただしバイト列で
16.
つまり?
17.
予期しない エンコーディングの 文字列が来ると 文字化けを起こす
18.
予期しない エンコーディングの 文字列が来ると 文字化けを起こす
19.
予期しない エンコーディングの 文字列が来ると 文字化けを起こす
20.
予期しない エンコーディングの 文字列が来ると 文字化けを起こす
21.
適切に decodeを施して Perl-Stringにしてやる 必要が有る
22.
(Plack::Requestは) WAF作る時とか Webアプリケーション 作る時とかに使う (大体はparentとして)
23.
(Plack::Requestは) WAF作る時とか Webアプリケーション 作る時とかに使う (大体はparentとして)
24.
decode処理を みんないちいち 書いてる
25.
職人が! 心をこめて! 書いている
26.
めっちゃ再発明されてる (大体コピペ[要出典]で)
27.
もう嫌
28.
もう嫌
29.
という訳で そこら辺にケリを 付けるべく作ったのが
30.
Plack::Request::WithEncoding https://metacpan.org/pod/Plack::Request::WithEncoding https://github.com/moznion/Plack-Request-WithEncoding
31.
これを使うと, param()やparameters()が decode済み文字列を 返してくれるので便利!
32.
例
33.
例 エンコーディングを指定
34.
例 decodedな文字列が得られる
35.
職人の仕事を 肩代わり!
36.
フレームワークを使わなくても Plack::Request::WithEncodingと Plack::Requestの組み合わせで カジュアルにアプリが書ける!
37.
と偉そうに言ったものの 中身はほぼAmon2からの パク^H^Hインスパイア
38.
パッチやご意見 お待ちしています
39.
で,
40.
Plack::Middlewareで, リクエストの エンコーディングの判別をして $env->{‘plack.request.withencoding.encoding'}に 格納しておくみたいなことをすることにより よしなに文字列をdecodeしたりすることが 出来るようになります. Plack Handbook
Plack::Request::WithEncodingがなぜ便利なのか http://www.songmu.jp/riji/entry/2013-10-01-plack-request-with-encoding.html
41.
アーハン?
42.
という訳で実装
43.
Plack::Middleware:: AutoDetectEncoding https://github.com/moznion/Plack-Middleware-AutoDetectEncoding
44.
Rails3で言うところの snowmanに近い実装
45.
☃
46.
☃ Him!
47.
☃のような 特定の文字コードでしか 使われない文字を使って 文字コードを特定
48.
ただ今回のケースでは ☃が使えないので (↑Unicodeの為) 別の文字で代替
49.
formタグ内に <input type="hidden" name=“__plack_middleware_auto_detect_encoding” value="駱駝" /> のようなinput要素を追加 フォームデータと共に 判別用文字を送ってもらう
50.
リクエストとして来た URLエンコード済み 判別用文字を 各エンコーディングと比較
51.
エンコーディングを 特定したら $env->{‘plack.request.withencoding.encoding’} にそれを格納する
52.
こんな感じ
53.
ただ, これで良いのか感
54.
なんか微妙なので GitHub止まりです
55.
56.
57.
斬新なdescription!
58.
なにか良いアイデア ございましたら 教えてください
59.
あと思いつきで vim-plackというvim plug-in を書きましたが あまり便利になりませんでした
60.
おわり
Jetzt herunterladen