Submit Search
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
Mar 20, 2016
141 likes
44,414 views
Richie Shellshoccar
シェルスクリプトがいかに最強の言語であるかを、POSIX原理主義集団「シェルショッカー日本支部」がとくと教えてやる。 ― 2016/03/20@歌舞伎座.tech#9
Read less
Read more
1 of 59
Download now
Downloaded 58 times
Recommended
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニアの技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXk
GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)
真行 八田
My talk at OSS Consortium at Sinagawa, 2014/11/27.
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
「企業のためのDocker実戦ガイド」発表資料 2017年2月27日(月) https://itmedia.smartseminar.jp/public/seminar/view/981
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」
裕之 木下
Azure SQL Databaseを始めるにあたって知っておいた方がいいキーワードをまとめました。
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
OSC 2011 Hokkaidoの発表で使用したスライド資料です。 弊社が「ブラウザ三国志」や「英雄クエスト」といったゲームを、PHP+MySQLで構築してきた上で、身につけたノウハウや、注意すべき箇所、指針などをまとめた資料となっています。
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Explaining “Best practices for writing Dockerfiles” Dockerfileを書くためのベストプラクティス【参考訳】v18.09 - Qiita https://qiita.com/zembutsu/items/a96b68277d699f79418d こちらをベースにした解説スライドです。
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
Masahito Zembutsu
Rancher Meetup Tokyo #8 の発表資料です https://rancherjp.connpass.com/event/59842/
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
AzureでのService Principal入門
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
学生LT発表コンテンツ
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
Preferred Networks
KubeCon + CloudNativeCon Europe 2022 で発表されたいくつかの興味深いセッションを振り返りながら関連する PFN での取り組みを共有します。
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
PostgreSQLカンファレンス2015の講演資料
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
社内勉強会資料
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
東海道らぐ 2017.10.7 名古屋オフ https://tokaidolug.connpass.com/event/67522/ での発表内容より
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
https://ntt-developers.github.io/ntt-tech-conference/2022/ 従来は Docker がコンテナエンジンとして幅広く利用されてきましたが、最近は Kubernetes が Docker 対応を打ち切るなど、風向きが変わってきました。 本セッションでは、Docker に代わって普及しつつあるコンテナエンジンである containerd について、Docker との違いや移行方法を紹介します。 P2P でのイメージ配布など、最新の機能についても紹介します。
ZOZOTOWNのCloud Native Journey
ZOZOTOWNのCloud Native Journey
Toru Makabe
トール・マカベッチのアンサーソング付き
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
日本マイクロソフト株式会社 Digital Sales 事業本部 Digital Cloud Solution Architect 上坂 貴志 クロスプラットフォームに対応した .NET Core、.NET 5 を得てリリースされた .NET 6は待望の LTS (Long-term Support)です。新規開発であれば .NET 6 での開発を検討できますが、.NET Framework で作成された既存のシステムはどうすれば良いでしょうか。 .NET Framework は version 4.8 を最後に新機能の追加予定は今のところありません。今後のことを考えて .NET 6 へのアップグレードを検討したいところですね。 このセッションでは .NET Framework から .NET 6 へのアップグレードについての様々な情報をお伝えします。
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
2015/10/03 phpcon 2015 updated at 2016/01/13 about default_password_lifetime's default will be 0
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
2014年2月7日、OSS推進フォーラム クラウド技術部会にて発表したMongoDBの入門プレゼンです。
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
これから C# 開発を始める方、あるいはチームの開発品質をあげたい リーダー・マネージャ向けに、C# の勉強方法を解説した、約2時間の研修用の資料です。
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
Naoki Nagazumi
NTT-AT社内で定期的に実施している勉強会(CORETECH技術講習会)で発表した資料です。
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
2016/05/25 de:code2016での、渡部の講演資料になります
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
勉強会で分散トレーシング技術について調査した内容を発表した資料です。OpenTracingやJaegerなどについてのざっくりとした解説などを行っています。
POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育
Tomoyuki Matsuura
多数の言語、ライブラリー、ミドルウェア等に依存し、コード保守やサーバ保守で日々泣かされるソフトウェア業界の現状を打開すべく、広い互換性と長い寿命を持った「保存食」のようなプログラムを作る方法と教育の提案
恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男
Tomoyuki Matsuura
既存のショッピングカートのできに満足できず苦しんでいる男がいた。死ヱル神博士(シェルがみはかせ)という人物に勧誘され、男はその組織の幹部になると同時に組織の日本支部と立ち上げた。組織の名は「秘密結社シェルショッカー」!エクストリームなシェルスクリプトを見せつけ、世の中のプログラマーを洗脳するという恐ろしい集団だった。 男はショッピングカートの怪人(プログラム)を造り「シェルショッカー1号男」と名付けた。中身がシェルスクリプトでできているのはもちろんだが、この「1号男」の最も恐るべき点は、よそのWebサイトを乗っ取り、そこを商品紹介ページにしてしまうことである。 「デザインセンスのないプログラマー自らが商品紹介ページを生成するコードやテンプレを作っても流行るわけないだろ! 労力もバカバカしい。カゴ入れボタンなどのパーツだけ作り、それを他人のサイトに仕込んでショッピングサイトに改造し、世界征服するのだ。特定のCMSに縛られたショッピングカートなどもう古いわ、わっはっは!」 こうしてシェルショッカーの幹部となった男は、造り上げた「シェルショッカー1号男」を先兵に、WordPressをはじめとした世界中のWebページを侵略して世界征服を果たすという、恐ろしい計画を進めるのであった。
More Related Content
What's hot
(20)
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
Masahito Zembutsu
Rancher Meetup Tokyo #8 の発表資料です https://rancherjp.connpass.com/event/59842/
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
AzureでのService Principal入門
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
学生LT発表コンテンツ
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
Preferred Networks
KubeCon + CloudNativeCon Europe 2022 で発表されたいくつかの興味深いセッションを振り返りながら関連する PFN での取り組みを共有します。
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
PostgreSQLカンファレンス2015の講演資料
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
社内勉強会資料
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
東海道らぐ 2017.10.7 名古屋オフ https://tokaidolug.connpass.com/event/67522/ での発表内容より
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
https://ntt-developers.github.io/ntt-tech-conference/2022/ 従来は Docker がコンテナエンジンとして幅広く利用されてきましたが、最近は Kubernetes が Docker 対応を打ち切るなど、風向きが変わってきました。 本セッションでは、Docker に代わって普及しつつあるコンテナエンジンである containerd について、Docker との違いや移行方法を紹介します。 P2P でのイメージ配布など、最新の機能についても紹介します。
ZOZOTOWNのCloud Native Journey
ZOZOTOWNのCloud Native Journey
Toru Makabe
トール・マカベッチのアンサーソング付き
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
日本マイクロソフト株式会社 Digital Sales 事業本部 Digital Cloud Solution Architect 上坂 貴志 クロスプラットフォームに対応した .NET Core、.NET 5 を得てリリースされた .NET 6は待望の LTS (Long-term Support)です。新規開発であれば .NET 6 での開発を検討できますが、.NET Framework で作成された既存のシステムはどうすれば良いでしょうか。 .NET Framework は version 4.8 を最後に新機能の追加予定は今のところありません。今後のことを考えて .NET 6 へのアップグレードを検討したいところですね。 このセッションでは .NET Framework から .NET 6 へのアップグレードについての様々な情報をお伝えします。
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
2015/10/03 phpcon 2015 updated at 2016/01/13 about default_password_lifetime's default will be 0
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
2014年2月7日、OSS推進フォーラム クラウド技術部会にて発表したMongoDBの入門プレゼンです。
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
これから C# 開発を始める方、あるいはチームの開発品質をあげたい リーダー・マネージャ向けに、C# の勉強方法を解説した、約2時間の研修用の資料です。
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
Naoki Nagazumi
NTT-AT社内で定期的に実施している勉強会(CORETECH技術講習会)で発表した資料です。
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
2016/05/25 de:code2016での、渡部の講演資料になります
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
勉強会で分散トレーシング技術について調査した内容を発表した資料です。OpenTracingやJaegerなどについてのざっくりとした解説などを行っています。
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
Masahito Zembutsu
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
Preferred Networks
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
ZOZOTOWNのCloud Native Journey
ZOZOTOWNのCloud Native Journey
Toru Makabe
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
Naoki Nagazumi
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Viewers also liked
(16)
POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育
Tomoyuki Matsuura
多数の言語、ライブラリー、ミドルウェア等に依存し、コード保守やサーバ保守で日々泣かされるソフトウェア業界の現状を打開すべく、広い互換性と長い寿命を持った「保存食」のようなプログラムを作る方法と教育の提案
恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男
Tomoyuki Matsuura
既存のショッピングカートのできに満足できず苦しんでいる男がいた。死ヱル神博士(シェルがみはかせ)という人物に勧誘され、男はその組織の幹部になると同時に組織の日本支部と立ち上げた。組織の名は「秘密結社シェルショッカー」!エクストリームなシェルスクリプトを見せつけ、世の中のプログラマーを洗脳するという恐ろしい集団だった。 男はショッピングカートの怪人(プログラム)を造り「シェルショッカー1号男」と名付けた。中身がシェルスクリプトでできているのはもちろんだが、この「1号男」の最も恐るべき点は、よそのWebサイトを乗っ取り、そこを商品紹介ページにしてしまうことである。 「デザインセンスのないプログラマー自らが商品紹介ページを生成するコードやテンプレを作っても流行るわけないだろ! 労力もバカバカしい。カゴ入れボタンなどのパーツだけ作り、それを他人のサイトに仕込んでショッピングサイトに改造し、世界征服するのだ。特定のCMSに縛られたショッピングカートなどもう古いわ、わっはっは!」 こうしてシェルショッカーの幹部となった男は、造り上げた「シェルショッカー1号男」を先兵に、WordPressをはじめとした世界中のWebページを侵略して世界征服を果たすという、恐ろしい計画を進めるのであった。
TeX vs Wordの不毛な争い
TeX vs Wordの不毛な争い
Hidetsugu Tamura
高専カンファレンスin長岡2 LTで使ったスライドです。
【企画書】ReceReco:新規事業討議用社内資料
【企画書】ReceReco:新規事業討議用社内資料
Find Job Startup
The document discusses BrainPad Inc.'s O2O services for business success, including 10 points about offline services, online services, WiFi, and ensuring copyright with each item attributed to BrainPad Inc. in 2012.
P2 P 奨学金プロジェクト Ver3 5
P2 P 奨学金プロジェクト Ver3 5
Daisuke Miyoshi
「誰もが想いを発信して、共感を集めることのできるしくみ」をバングラデシュで起こします! みなさんぜひアドバイス、メッセージ等宜しくお願い致します!
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
Find Job Startup
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
Keita Takizawa
販促会議企画コンペティション2012 課題6:CCC(カルチュア・コンビニエンス・クラブ) TSUTAYAの店舗に行きたくなり、リアル店舗の良さを再認識していただける企画
PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料
Find Job Startup
【企画書】チャットワーク:社内検討用資料
【企画書】チャットワーク:社内検討用資料
Find Job Startup
Cyta.jp_サービスEC説明資料
Cyta.jp_サービスEC説明資料
Find Job Startup
【企画書】omiai:IVS_LAUNCH PAD用資料
【企画書】omiai:IVS_LAUNCH PAD用資料
Find Job Startup
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
Find Job Startup
BASE_プレゼン用サービス説明資料
BASE_プレゼン用サービス説明資料
Find Job Startup
創業時の「nanapiのナマ企画書」
創業時の「nanapiのナマ企画書」
Find Job Startup
メルカリ_サービス説明資料
メルカリ_サービス説明資料
Find Job Startup
ストリートアカデミー_ローンチ前企画書
ストリートアカデミー_ローンチ前企画書
Find Job Startup
POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育
Tomoyuki Matsuura
恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男
Tomoyuki Matsuura
TeX vs Wordの不毛な争い
TeX vs Wordの不毛な争い
Hidetsugu Tamura
【企画書】ReceReco:新規事業討議用社内資料
【企画書】ReceReco:新規事業討議用社内資料
Find Job Startup
P2 P 奨学金プロジェクト Ver3 5
P2 P 奨学金プロジェクト Ver3 5
Daisuke Miyoshi
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
Find Job Startup
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
Keita Takizawa
PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料
Find Job Startup
【企画書】チャットワーク:社内検討用資料
【企画書】チャットワーク:社内検討用資料
Find Job Startup
Cyta.jp_サービスEC説明資料
Cyta.jp_サービスEC説明資料
Find Job Startup
【企画書】omiai:IVS_LAUNCH PAD用資料
【企画書】omiai:IVS_LAUNCH PAD用資料
Find Job Startup
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
Find Job Startup
BASE_プレゼン用サービス説明資料
BASE_プレゼン用サービス説明資料
Find Job Startup
創業時の「nanapiのナマ企画書」
創業時の「nanapiのナマ企画書」
Find Job Startup
メルカリ_サービス説明資料
メルカリ_サービス説明資料
Find Job Startup
ストリートアカデミー_ローンチ前企画書
ストリートアカデミー_ローンチ前企画書
Find Job Startup
Similar to 恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
(20)
SocketStream入門
SocketStream入門
Kohei Kadowaki
2011年9月24日に大阪にて開催された「第2回 HTML5など勉強会(仮)」で発表したときに使ったプレゼン資料です。
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
Masamitsu Maehara
第7回Security-JAWSの発表資料です! AWSとHoneypot、そしてElasticStackを活用してのログ分析についてです。
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
Using Apache Spark Machine Learning by advertising.
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
発表資料 2015年11月27日(金) #devopsjp DevOps/マイクロサービスセミナー ~導入事例から考える、マイクロ サービスを実現するコンセプトと技術~ 会場:マイクロソフト@品川 http://connpass.com/event/22027/
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
Perl でOSネイティブのアプリケーションを作れたらいいなと思ったことはないでしょうか? 私はMovable TypeのクライアントアプリMAUS(https://alfasado.net/apps/maus-ja.html) やいくつかのmacOSアプリを作成・公開していますが、これらのアプリではPerlが活用されています。本トークセッションでは 統合開発環境Xojo(https://xojo.grapecity.com)でのアプリケーション開発にPerlを活用するTipsについてご紹介します。
TerraformでECS+ECRする話
TerraformでECS+ECRする話
Satoshi Hirayama
Proxy環境下のUbuntuでECSするリソースをTerraformで作る話をします。
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
Tomoaki Shimizu
Twitterのデータを取得する準備
Twitterのデータを取得する準備
Takeshi Arabiki
Osaka.R #4 のプログラム (https://github.com/abicky/osakar4_abicky) を実行するまでの道のり
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Tomoaki Shimizu
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
2011.11.12島根県松江市で開催された「OSC2011 Shimane」で発表した際のスライドです。ThinReports0.7の機能と今後、そしてThinReportsを支えるOSSや技術を紹介しています。
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
Shuhei Iitsuka
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
Kenji Aoyama
A story of porting OpenBSD/luna88k, at the 1st Kernel/VM explorer @ Nagoya.
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
Azure Static Web Apps と Visual Studio Codespaces で 快適な TypeScript 環境を構築する 【オンライン】TypeScript Meetup #4 での発表内容です https://typescript-jp.connpass.com/event/177175/ 1. Azure Static Web Apps GitHub Actions + Static Web App + Azure Functions 試すならば、このコンテンツから 2. Visual Studio Codespaces VS Code の環境をクラウドでホスト 真骨頂は、devcontainer.json & Dockerfile
Unity C#3からC#6に向けて
Unity C#3からC#6に向けて
onotchi_
Unityが今後C#6をサポートすることを発表したので、現状のC#3からの乗り換えに備え、C#4からC#6の言語仕様のおさらい
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
2013/1/18 Cocos2d-x公開講座 in 鹿児島
Pub/Sub model, msm, and asio
Pub/Sub model, msm, and asio
Takatoshi Kondo
Boost study group #20 presentation slides.
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
Recruit Technologies
2015/02/07 dots summit 2015での、吉田の講演資料になります
Firefox DevTools
Firefox DevTools
dynamis
CSS Nite in Osaka vol.31 で使用したスライド(に若干加筆したもの)
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Takahiro Miyaura
XRミーティング 10/21登壇資料。 先日手に入れたOculus Quest 2でもMixed Reality Toolkitが使えるので動作確認を行った際の手順を解説。
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
PHPカンファレンス2015の発表資料です。
SocketStream入門
SocketStream入門
Kohei Kadowaki
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
Masamitsu Maehara
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
TerraformでECS+ECRする話
TerraformでECS+ECRする話
Satoshi Hirayama
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
Tomoaki Shimizu
Twitterのデータを取得する準備
Twitterのデータを取得する準備
Takeshi Arabiki
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Tomoaki Shimizu
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
Shuhei Iitsuka
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
Kenji Aoyama
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
Unity C#3からC#6に向けて
Unity C#3からC#6に向けて
onotchi_
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
Pub/Sub model, msm, and asio
Pub/Sub model, msm, and asio
Takatoshi Kondo
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
Recruit Technologies
Firefox DevTools
Firefox DevTools
dynamis
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Takahiro Miyaura
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
1.
恐怖 シェルショッカーのPOSIX原理主義シェルスクリプト シェルショッカー日本支部 https://github.com/ShellShoccar-jpn 1 2016年3月20日@歌舞伎座.tech#9
2.
全世界 70000000000000000000000人 くらいのプログラマー達よ、 2
3.
お前たちは、 今の開発言語、開発環境に 満足しておるのか? 3
4.
OS、言語、ライブラリー、 ミドルウェア…… 毎日飽きもせずver. up、 4
5.
突然動かなくなって、 徹夜で泣きながら修正…… とか... 5
6.
そういう目に遭わずに 済む奴はいるのか? 6
7.
より便利な競合ソフトの登場、 代わりに、消えていくソフト…… 7 Developer Survey Results
2016 IV. Trending Tech on Stack Overflow (Losers) http://stackoverflow.com/research/developer-survey-2016
8.
せっかく勉強したのに 開発現場から消え、 知識が役に立たなくなる…… 8
9.
10年後の自分は、 10年分の成長が できているのか…… 9
10.
10 秘密結社シェルショッカー。
11.
POSIX中心主義 プログラミング (POSIX Centric Programming) 秘密結社シェルショッカーの 11
12.
POSIX中心主義 ― 概要 UNIX系OSの最低限のI/Fを定めた規格、 「POSIX」に極力準拠させる プログラミング方針 12
13.
POSIX中心主義 ― 概要 POSIX準拠させる理由①
― 準拠OSが多い 明示的準拠……商用UNIX、 Mac OS Xなど 暗示的準拠……FreeBSD、 LinuxなどのPC UNIX →どこへ持っていっても動く 13
14.
POSIX中心主義 ― 概要 POSIX準拠させる理由②
― 殆ど改定しない 非営利団体の国際規格 準拠するベンダーが多いので簡単に改定できない →長年動く (動いてきた) 14
15.
POSIX中心主義 ― 概要 過酷な環境変化に耐える 「ソフトウェアの乾パン」 15
16.
POSIX中心主義 ― 概要 複雑な状態変質がイヤで Immutable
Infrastructure? 16
17.
POSIX中心主義 ― 概要 必要ない! サーバーよ、好きなだけ変質しろ! Be
mutable! infrastructure 17
18.
POSIX中心主義 ― 実践 3つの方針を導入 18 ① POSIX 原理主義 ②交換可能性担保 ③ W3C 原理主義 単独ホスト
または Webサーバー Webクライアント
19.
POSIX中心主義 ― 実践①POSIX原理主義 1.
POSIXコマンドだけで実装 AWK、sed等はチューリング完全。 2. 言語はシェルスクリプト POSIXにあるのがそれだから。 → POSIXの範囲で、どんな計算も書ける。 19 POSIX公式情報サイト http://pubs.opengroup.org/onlinepubs/9699919799/
20.
POSIX中心主義 ― 実践①POSIX原理主義 例(1)―XMLパーサ(parsrx.sh)
https://github.com/ShellShoccar-jpn/Parsrs/blob/master/parsrx.sh XML→行列指向フォーマット(XPath - value)への変換 sed, AWK等、26個のコマンドをパイプで連結し生成。 JSON, CSVパーサも同様に実装済。 20 <文具購入リスト 会員名="文具 太郎"> <購入品>はさみ</購入品> <購入品>ノート(A4,無地)</購入品> <購入品>シャープペンシル</購入品> <購入品><取寄商品>替え芯</取寄商品></購入品> <購入品>クリアファイル</購入品> <購入品><取寄商品>6穴パンチ</取寄商品></購入品> </文具購入リスト> /文具購入リスト/@会員名 文具 太郎 /文具購入リスト/購入品 はさみ /文具購入リスト/購入品 ノート(A4,無地) /文具購入リスト/購入品 シャープペンシル /文具購入リスト/購入品/取寄商品 替え芯 /文具購入リスト/購入品 /文具購入リスト/購入品 クリアファイル /文具購入リスト/購入品/取寄商品 6穴パンチ /文具購入リスト/購入品 /文具購入リスト ¥n ¥n ¥n ¥n ¥n ¥n ¥n
21.
POSIX中心主義 ― 実践①POSIX原理主義 例(2)―RDBMS的操作
データは半角空白区切りのテキストファイル持ち AWK, grep, sort, join等の組み合わせでselect文相当が実現 → SQL文(RDBMS)など要らぬ! 21 SELECT MEM."会員ID", MEM."会員名" FROM blacklist AS MEM RIGHT OUTER JOIN members AS BL ON BL."会員名" = MEM."会員名" WHERE BL."会員名" IS NOT NULL ORDER BY MEM."会員ID" ASC; cat blacklist.txt | # 第1列:BL会員ID # sort -k 1,1 | ←会員IDで並替え uniq > sorted_bl.txt cat members.txt | # 第1列:会員ID 第2列:名前 # sort –k 1,1 |←会員IDで並替え join -1 1 -2 2 -v 2 sorted_bl.txt - ←BLの会員IDで joinできない行 のみを抽出 ブラックリストに掲載された会員「以外」を表示するデータ操作 SQL版 POSIX版
22.
POSIX中心主義 ― 実践①POSIX原理主義 例(3)―その他いろいろ
非Web系 乱数、 mktemp相当、 全角・半角文字相互変換、 排他制御…… Web系 Cookie、 セッション管理、 MIMEマルチパート作成・解読、Base64、 CGI変数授受…… 主にRFC文書を読みながら作る。 Webアプリ開発に必要なものまで、概ね作れる。 22
23.
POSIX中心主義 ― 実践②交換可能性担保 POSIXの範囲で実現できないもの バイナリ処理(非現実的処理速度なため) ネットワーク処理(コマンドが無く、原理的に不可) 一定条件の元、POSIX外コマンドを認める。 23
24.
POSIX中心主義 ― 実践②交換可能性担保 一定条件とは、「交換可能性」の担保 交換可能性 「現在依存している製品が使えなくなっても、同じ機 能を持つ別製品が存在し、交換できる」 (例)
Apache ←→ nginx ←→ lighttpd 等 sendmail ←→ Postfix ←→ qmail ←→ exim 等 cURL ←→ Wget そもそもPOSIX準拠OS同士には交換可能性がある。 24
25.
POSIX中心主義 ― 実践②交換可能性担保 例
― CUI版Twitterクライアント怪人「恐怖!小鳥男」 https://github.com/ShellShoccar-jpn/kotoriotoko 25
26.
POSIX中心主義 ― 実践②交換可能性担保 Twitter
APIアクセスでcURL、Wget両対応にする。 26 : s=$(mime-make -m) ct_hdr="Content-Type: multipart/form-data; boundary=¥"$s¥"" eval mime-make -b "$s" $mimemake_args | if [ -n "${CMD_WGET:-}" ]; then case "$timeout" in '') : ;; *) timeout="--connect-timeout=$timeout";; esac cat > "$Tmp/mimedata" "$CMD_WGET" ${no_cert_wget:-} -q -O - --header="$oa_hdr" --header="$ct_hdr" --post-file="$Tmp/mimedata" $timeout "$API_endpt" elif [ -n "${CMD_CURL:-}" ]; then case "$timeout" in '') : ;; *) timeout="--connect-timeout $timeout";; esac "$CMD_CURL" ${no_cert_curl:-} -s $timeout -H "$oa_hdr" -H "$ct_hdr" --data-binary @- "$API_endpt" fi : [注意] Wgetには、ファイルアップロード 機能がないため、cURLにあっ ても使わない。 →POSIX原理主義で実装 (使ったら交換不可能に なるではないか!) Wget用、 cURL用、 2つの書式で書く。
27.
POSIX中心主義 ― 実践②交換可能性担保 その他の例 メール送信コマンド
― sendjpmail sendmailコマンドの日本語対応ラッパー 主要MTAには、必ずsendmailコマンドがある。 添付ファイルにも対応 https://github.com/ShellShoccar-jpn/misc-tools/blob/master/sendjpmail 27
28.
POSIX中心主義 ― 実践③W3C原理主義 WebアプリではWebブラウザー側でも開発必要 WebブラウザーはUNIXではない。
HTML/CSS/JavaScript W3C勧告に準拠 W3C勧告は、いわば「POSIXのWebブラウザー版」 28
29.
POSIX中心主義 ― 実践③W3C原理主義 W3C勧告のHTML/CSS/JavaScript仕様のみ使用
https://www.w3.org/TR/ 個々のWebブラウザーの独自仕様は使用禁止。 独自ライブラリーも禁止 jQueryその他 W3C勧告の範囲でフルスクラッチ 29
30.
POSIX中心主義 ― 実践③W3C原理主義 Ajax処理ごとき、40行足らずでフルスクラッチ可能。
(例)https://github.com/ShellShoccar-jpn/Ajax_demo/blob/master/CLOCK.JS 30 // 1.Ajaxオブジェクト生成関数 function createXMLHttpRequest(){ if(window.XMLHttpRequest){return new XMLHttpRequest()} if(window.ActiveXObject){ try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){} try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){} try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){} } return false; } // 2.Ajax通信関数 function update_clock() { var url,xhr,to; url = get_homedir()+'CLOCK.CGI'; xhr = createXMLHttpRequest(); if (! xhr) {return;} to = window.setTimeout(function(){xhr.abort()}, 30000); xhr.onreadystatechange = function(){update_clock_callback(xhr,to)}; xhr.open('GET' , url+'?dummy='+(new Date)/1, true); xhr.send(null); } つづく→ →つづき // 3.コールバック関数 function update_clock_callback(xhr,to) { var str, elm; if (xhr.readyState === 0) {alert('タイムアウトです。');} if (xhr.readyState !== 4) {return; } window.clearTimeout(to); if (xhr.status === 200) { str = xhr.responseText; elm = document.getElementById('clock'); elm.innerHTML = str; } else { alert('サーバーが不正な応答を返しました。'); } }
31.
POSIX中心主義 ― 実践③W3C原理主義 動作例―Ajax
Clock(ボタンを押すたび時刻文字列だけ更新) http://lab-sakura.richlab.org/AJAX/CLOCK.HTML 31
32.
POSIX中心主義 ― 戦歴 (1)
郵便番号から住所を検索 http://lab-sakura.richlab.org/ZIP2ADDR/public_html/ 全国のたかが14万レコードなど、一瞬で探せる。 32
33.
POSIX中心主義 ― 戦歴 (2)
ショッピングカート(組織の資金源) https://richlab.org/coterie/ 商品・在庫データをテキストファイルで管理 Cookie等で 買い物カゴ実装 クレカ決済 (Web API)も対応 WordPressも、はてなブログも ショッピングサイト化可能 「恐怖! シェルショッカー 1号男」 → http://www.slideshare.net/tomoyukimatsura/1-php-con2014-40134119 33
34.
POSIX中心主義 ― 戦歴 (3)
鉄道運行状況表示プログラム http://metropiper.com 東京メトロのWeb APIから車両の現在位置を取得 何駅前まで列車が来ているかわかる 34
35.
POSIX中心主義 ― 戦歴 (3)
鉄道運行状況表示プログラムは、 東京メトロのコンテストに送り込んだ怪人 https://developer.tokyometroapp.jp/ オープンデータ活用コンテスト 2014年開催 35
36.
POSIX中心主義 ― 戦歴 コンテストは東京五輪を意識していた、 らしい。 2020年(=コンテストの6年後) 観光客の利便性向上のため、 スマホアプリまで広く募集。 受賞作品は、スマホアプリが 大半を占めた。 http://car.watch.impress.co.jp/docs/news/20150220_689397.html 36
37.
POSIX中心主義 ― 戦歴 審査員達よ・・・ その受賞作、2020年の 本番まで動くのか? Android、iOSアプリって6年ももつのか? 37
38.
POSIX中心主義 ― 戦歴 我らが送り込んだ怪人(作品)は、 2020年に動くことを最優先に 作ったのだがな・・・・・・ 38
39.
結論 低水準領域を学べ 39
40.
低水準領域を学べ この男も言っているぞ 「人体を理解するとよい」と。 40 報道ステーション 2016.03.17スペシャル対談2016 イチロー×稲葉篤紀 より引用
41.
低水準領域を学べ ウェイトトレーニング(シーズン前)で筋力増 ↓ 春先、打てない! ↓ シーズン中、トレーニングできず痩せる ↓ スイングスピード上がる 41
42.
低水準領域を学べ この男も学習したぞ 「ハンマーの柄の方を振り回すと強い」 ことを。 42 映画「少林寺三十六房」より
43.
低水準領域を学べ 重いハンマーを振り回す。 ↓ 先端が重くて動きが鈍く、反撃される。 ↓ 僧侶に言われ、柄を相手に向けて振り回す。 ↓ 撃退に成功 43
44.
低水準領域を学べ POSIX中心主義では、 比較的低水準領域を学習する。 44 ハードウェア ハードウェア ハードウェア カーネル シェル 言語
言語 アプリ アプリ アプリ アプリ アプリ POSIX中心主義と高級言語の学習範囲のイメージ 高級言語の学習領域 POSIXの学習領域
45.
低水準領域を学べ 同じこと。 頭でっかちは不利。 45
46.
低水準領域を学べ 道具を探し回るな! 使いこなせ! 46
47.
低水準領域を学べ コンピューターの本質を 理解するのだ。 47
48.
低水準領域を学べ POSIXシェルスクリプトは 本質に近い。 48
49.
低水準領域を学べ 「シェルスクリプトなんてクソだ!」 だと? 49
50.
低水準領域を学べ お前は、シェルスクリプトや UNIXを、 何も理解していない!! 50
51.
低水準領域を学べ 「シェルスクリプトは OS依存が激しい」 だと? 51
52.
低水準領域を学べ POSIXの仕様を読まずに 書くからだ! 52
53.
低水準領域を学べ 依存性回避のために 他言語やソフトを、OSや環境依存に苦しみながら、 コンパイル・インストール・バージョンアップしてたら、 意味がなかろうが! 53
54.
まとめ 54
55.
まとめ 基礎から学べ! 55
56.
まとめ シェルスクリプトを使え! 56
57.
まとめ POSIX原理主義の 聖典を買え! (宣伝) 57 本の形をした怪人 「すべてのUNIXで20年動くプログラムは どう書くべきか」 C&R研究所 発行 https://richlab.org/coterie/pfb.html を、全国書店に送り込んだ!
58.
まとめ ついでに、授業も受けろ (宣伝) 58 「シェルスクリプト言語論」 金沢大学@大学コンソーシアム石川で 2016年4月開講 (社会人も受講可) 組織の幹部を送り込む!
59.
今日はこれくらいに しといてやる! 59
Download