SlideShare a Scribd company logo
1 of 11
Download to read offline
Befunge + α でチャットみたいな

      STERS @sters9
        2012/06/30
自己紹介
• STERS @sters9

• 神奈川県で大学生やってます
  – セキュリティとネットワークを勉強中


• PHP/JavaScript/C#/Unity
• クロスバイク乗りまわしてます
Befunge とは

       人人人人人人人人人_
(;^o^)<読み方わかりません<
       Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Befunge とは
•   手続き型、スタック型
•   自己変更可能
•   2次元的に表現する
•   チューリング完全ではない

• “実用でない難解プログラミング言語”
• “実用でない難解プログラミング言語”
こんにちは世界
残パン会前にやったこと
• Befunge インタプリタの用意
 – ググりました
   • あるけど使いにくい…


 – 作りました
   •   HTML+JavaScript
   •   一晩寝かせたらjQueryプラグインになりました
   •   ブレークポイントみたいなものも付いてました
   •   やっぱり使いにくい。
使いにくいのはだいたい
 Befunge のせいだ!
5 100p:v      ぱっと見で
v *g00:_00g.@ わかるわけが
>00p1-:^      ありません!
残パン会でやったこと
• 「ブラウザで動くならチャットを作ってみよう」
• Befungeだけだとちょっと… (逃)
 – サーバ側でPHPを使用
 – インタプリタに通信用の命令を追加
  • G :サーバからデータ取得
  • S :サーバにデータ送信
  • M :逃げ。


• 色々と逃げたおかげで 無事に出来ました
できたコード
$v
v_ #^#^# #^#^# #^#^# <
>000p>~:vvg0p00-<>L v
                 1$ v_<
>0p0p^   >>00g::|$v_<<
^0:+1g00_$^39+2*>^~ P
 v-**288::_< p6*26< "
v_$$    201p83*11p v I
>88*-v     v- 3:::~ <<n
 v< v_v v2_$v>1g+11p^p
v_^$>#<v>-v 2^11p10<<u
0>pv< >vv_1v>01g+ ^gt
02 ~     >v ¥^p11-1<1"
>^ :p    v_v>$¥$38*^0
v20_$v   >1 1g01gp ^
gv0 #<      >"dnammoC"^
1> 2gv > ^ <
+ >vp >::v      v<
>:02^v0-1_$$S#^_^#
vp 2<
2 g
>g^>::   ^
できたコード
$v     名前入力
v_ #^#^# #^#^# #^#^# <
>000p>~:vvg0p00-<>L v
                 1$ v_<
>0p0p^    >>00g::|$v_<<
^0:+1g00_$^39+2*>^~ P
 v-**288::_< p6*26< "
      コマンド
v_$$     201p83*11p v I
>88*-v     v- 3:::~ <<n
 v< v_v v2_$v>1g+11p^p
            リスト
v_^$>#<v>-v 2^11p10<<u    リスト
            表示
0>pv< >vv_1v>01g+ ^gt
02 ~      >v ¥^p11-1<1"
>^ :p     v_v>$¥$38*^0
v20_$v        初期化
          >1 1g01gp ^
gv0 #<      >"dnammoC"^
1> 投稿 > ^ <
     2gv
+ >vp >::v      v<
>:02^v0-1_$$S#^_^#
vp 2<
2 g
>g^>::    ^

More Related Content

Viewers also liked

Packagist を旅してみる
Packagist を旅してみるPackagist を旅してみる
Packagist を旅してみるsters
 
JavaScriptによる記号プログラミング
JavaScriptによる記号プログラミングJavaScriptによる記号プログラミング
JavaScriptによる記号プログラミングsters
 
Facebook Messenger Platform で始める Bot 開発
Facebook Messenger Platform で始める Bot 開発Facebook Messenger Platform で始める Bot 開発
Facebook Messenger Platform で始める Bot 開発sters
 
PHP で LINE Bot をしてみる
PHP で LINE Bot をしてみるPHP で LINE Bot をしてみる
PHP で LINE Bot をしてみるsters
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDとsters
 
Jenkins Wars Episode 2
Jenkins Wars Episode 2Jenkins Wars Episode 2
Jenkins Wars Episode 2sters
 
Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話sters
 

Viewers also liked (9)

Packagist を旅してみる
Packagist を旅してみるPackagist を旅してみる
Packagist を旅してみる
 
JavaScriptによる記号プログラミング
JavaScriptによる記号プログラミングJavaScriptによる記号プログラミング
JavaScriptによる記号プログラミング
 
Facebook Messenger Platform で始める Bot 開発
Facebook Messenger Platform で始める Bot 開発Facebook Messenger Platform で始める Bot 開発
Facebook Messenger Platform で始める Bot 開発
 
PHP で LINE Bot をしてみる
PHP で LINE Bot をしてみるPHP で LINE Bot をしてみる
PHP で LINE Bot をしてみる
 
Progress test rubrics
Progress test rubrics Progress test rubrics
Progress test rubrics
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
 
Jenkins Wars Episode 2
Jenkins Wars Episode 2Jenkins Wars Episode 2
Jenkins Wars Episode 2
 
The lexical approach.ppt
The lexical approach.pptThe lexical approach.ppt
The lexical approach.ppt
 
Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話
 

Similar to 残パン会のあれ

Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)mametter
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012Tatsuhiko Kubo
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2Nishida Kansuke
 
2012/06/28 #ssmjp
2012/06/28 #ssmjp2012/06/28 #ssmjp
2012/06/28 #ssmjpth0x0472
 
Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門宏治 高尾
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!Oda Shinsuke
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成Tomoki Oyamatsu
 
Favtile ~never write JS again~
Favtile ~never write JS again~Favtile ~never write JS again~
Favtile ~never write JS again~hanachin
 
ng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンHayashi Yuichi
 
Goコンパイラのきもち
GoコンパイラのきもちGoコンパイラのきもち
Goコンパイラのきもちmjhd-devlion
 
コンテナで作れるFaaS
コンテナで作れるFaaSコンテナで作れるFaaS
コンテナで作れるFaaS真吾 吉田
 
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編Hiroshi Urabe
 
Easy scripting in Go
Easy scripting in GoEasy scripting in Go
Easy scripting in Gonaoty_bot
 
日常業務にperlを使おう
 日常業務にperlを使おう 日常業務にperlを使おう
日常業務にperlを使おうturugina
 
OpenFlowで覚えるネットワーク
OpenFlowで覚えるネットワークOpenFlowで覚えるネットワーク
OpenFlowで覚えるネットワークM Hagiwara
 
⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4Nishida Kansuke
 
プログラマ進化論
プログラマ進化論プログラマ進化論
プログラマ進化論Sotaro Omura
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミングlestrrat
 

Similar to 残パン会のあれ (20)

Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
 
2012/06/28 #ssmjp
2012/06/28 #ssmjp2012/06/28 #ssmjp
2012/06/28 #ssmjp
 
Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
 
Ingress on GKE/GCE
Ingress on GKE/GCEIngress on GKE/GCE
Ingress on GKE/GCE
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
 
Favtile ~never write JS again~
Favtile ~never write JS again~Favtile ~never write JS again~
Favtile ~never write JS again~
 
ng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターン
 
Goコンパイラのきもち
GoコンパイラのきもちGoコンパイラのきもち
Goコンパイラのきもち
 
Azure de debian
Azure de debianAzure de debian
Azure de debian
 
コンテナで作れるFaaS
コンテナで作れるFaaSコンテナで作れるFaaS
コンテナで作れるFaaS
 
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
 
Easy scripting in Go
Easy scripting in GoEasy scripting in Go
Easy scripting in Go
 
日常業務にperlを使おう
 日常業務にperlを使おう 日常業務にperlを使おう
日常業務にperlを使おう
 
OpenFlowで覚えるネットワーク
OpenFlowで覚えるネットワークOpenFlowで覚えるネットワーク
OpenFlowで覚えるネットワーク
 
⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4
 
プログラマ進化論
プログラマ進化論プログラマ進化論
プログラマ進化論
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
 

残パン会のあれ

  • 1. Befunge + α でチャットみたいな STERS @sters9 2012/06/30
  • 2. 自己紹介 • STERS @sters9 • 神奈川県で大学生やってます – セキュリティとネットワークを勉強中 • PHP/JavaScript/C#/Unity • クロスバイク乗りまわしてます
  • 3. Befunge とは 人人人人人人人人人_ (;^o^)<読み方わかりません< Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  • 4. Befunge とは • 手続き型、スタック型 • 自己変更可能 • 2次元的に表現する • チューリング完全ではない • “実用でない難解プログラミング言語” • “実用でない難解プログラミング言語”
  • 6. 残パン会前にやったこと • Befunge インタプリタの用意 – ググりました • あるけど使いにくい… – 作りました • HTML+JavaScript • 一晩寝かせたらjQueryプラグインになりました • ブレークポイントみたいなものも付いてました • やっぱり使いにくい。
  • 8. 5 100p:v ぱっと見で v *g00:_00g.@ わかるわけが >00p1-:^ ありません!
  • 9. 残パン会でやったこと • 「ブラウザで動くならチャットを作ってみよう」 • Befungeだけだとちょっと… (逃) – サーバ側でPHPを使用 – インタプリタに通信用の命令を追加 • G :サーバからデータ取得 • S :サーバにデータ送信 • M :逃げ。 • 色々と逃げたおかげで 無事に出来ました
  • 10. できたコード $v v_ #^#^# #^#^# #^#^# < >000p>~:vvg0p00-<>L v 1$ v_< >0p0p^ >>00g::|$v_<< ^0:+1g00_$^39+2*>^~ P v-**288::_< p6*26< " v_$$ 201p83*11p v I >88*-v v- 3:::~ <<n v< v_v v2_$v>1g+11p^p v_^$>#<v>-v 2^11p10<<u 0>pv< >vv_1v>01g+ ^gt 02 ~ >v ¥^p11-1<1" >^ :p v_v>$¥$38*^0 v20_$v >1 1g01gp ^ gv0 #< >"dnammoC"^ 1> 2gv > ^ < + >vp >::v v< >:02^v0-1_$$S#^_^# vp 2< 2 g >g^>:: ^
  • 11. できたコード $v 名前入力 v_ #^#^# #^#^# #^#^# < >000p>~:vvg0p00-<>L v 1$ v_< >0p0p^ >>00g::|$v_<< ^0:+1g00_$^39+2*>^~ P v-**288::_< p6*26< " コマンド v_$$ 201p83*11p v I >88*-v v- 3:::~ <<n v< v_v v2_$v>1g+11p^p リスト v_^$>#<v>-v 2^11p10<<u リスト 表示 0>pv< >vv_1v>01g+ ^gt 02 ~ >v ¥^p11-1<1" >^ :p v_v>$¥$38*^0 v20_$v 初期化 >1 1g01gp ^ gv0 #< >"dnammoC"^ 1> 投稿 > ^ < 2gv + >vp >::v v< >:02^v0-1_$$S#^_^# vp 2< 2 g >g^>:: ^