SlideShare a Scribd company logo
1 of 20
Download to read offline
PHPのレガシーコードを
                             Rubyで焼き変えてみた
                                        @akira345
                                       Hiroshima.rb




Powered by Rabbit 2.0.6 and COZMIXNG
自己紹介
本業:精神修行
所属:
 Hiroshima.rb
 広島サーバユーザ友の会(仮)
 広島電子工作娯楽部(仮称)
 WindowsPhoneハンズオンin広島
 オープンセミナー2014@広島 実行メンバー
 OSC広島実行メンバー
 WTM時々インフラ担当
本題

 目的:
非オブジェクト指向なレガシーコードを
(出来る範囲で)オブジェクト指向的に
持っていく。
出来ればテストも入れたい。
生け贄の準備
   今回の生け贄:
    十数年前に独学で習得中に自作した
    15Puzzleプログラム
https://github.com/akira345/Old_PHP_Samples/tree/
master/15puzzle_old
(以前Rubyでゲームを作られた方がいたので対抗してみた)
15Puzzle??
15Puzzle??
レガシーな点
圧倒的に古い!(iniファイルなんてものがあったり)
php4の出たての頃に書かれている
作った本人が実はよく分かっていない
山のようなフラグ管理。よくわからない変数、強引な処理
変数一覧表なるものがあるw
当然MVCなんて考えはない
当時のポリシーとして、HTMLを極力PHPで出力してい
るので作りがカオス
当時自信作今黒歴史
第1段階
いきなりRubyにするのはさすがに無理なので、まずは
PHPで試作。
  とはいえ、再設計すると、新規で作り直s(ry

当時の自分を恨みつつ、まずは簡単なビューとロジック
の分離から。
  この時、無理にファイルを分離しようとすると色々悩
  むので、まずは同一ファイル内で、分離すると良い。

ビューに埋め込んだロジックはなるべく分離。
  但し、この時はロジックを余り弄らないこと。テストが
  無いのでバグると酷い目に合う
第2段階
ロジックの組換前に、機能ブロックを大まかに洗い出して
おく。
ロジック部分から、機能ブロックをくくりだし、クラスメソッ
ドとして纏める所からまずはスタート。
関数化されている箇所はそのままクラスメソッドとして仮
実装。
クラスメソッドはとりあえず全てPublic!
テストコードが無いので、ロジックの組み換えは後。動く
状態を極力キープ
機能ブロック
このプログラムを構成する主な機能
  乱数生成
 動かす数字を格納する配列を生成
 数字が動かせるか判定する
 数字を動かす
 パズルが完成したかチェックする
ロジックに手をつける
フローチャートを書くのは断念したOrz
基本は機能ロジックごとにカットアンドペーストでクラス
メソッド化や、ロジックの組み換えを行った。
機能ブロックを動かす場合、該当箇所を全てコメントアウ
トし、最低限の実装に置換。動作確認しながら、ブロック
の組み換えを行った。
複雑怪奇なifのネストは、中のロジックをprint('A')のよう
なものに書き換えて、動作の確認をしながら整理
変数名やフラグを少し整理。(fとかswとかrとか)
セッション周り
昔はセッション変数に何でも突っ込んでい
た
オブジェクト指向になると、クラスにデータを
持たせられるので、クラスをセッションに突
っ込めばOK(時と場合による)
完成


     https://github.com/
akira345/15Puzzle_For_OOP

         ただしPHP版
さて、Rubyに焼き変えるか。
    PHPをRubyに置き換えるので楽勝!(と思
    っていました)
    いまさらCGIクラスなんて使うとレガシーに
    戻る。
    かといって、この程度でRailsも大げさ
      Sinatraを使おう。
http://www.sinatrarb.com/intro-jp.html
sinatraではまる!
あれ?画像でないぞ??
 publicディレクトリが必要
あれ?セッションに入れたクラスが読めない
ぞ?
  enable :sessionsが必要
get/postでロジック分離しないといけない
ぞ?
   とりあえず共通関数作成で回避<-邪道
などなど
ひむひむヘルプ!
絶賛仕事中のひむひむへ襲撃!!
 インデントがカオス!
 status=3って何?
 このメソッド名、スペル違うよ・・・
 変数の初期化はどこでされているの?
 ロジックが難しい。データの持たせ方が・・
 テストはどこ?
 やりたい事は何となく分かるけど・・う〜ん(悩)
 

教訓:コードレビューは大事。
 

教訓:コードレビューは大事。
 大事な事なので(ry
リファクタリングだ!
クラスのテストをRspecで。
  だけど、ランダムにデータができるので、余りテスト
  が書けなかった・・

ビューのテストが非常に難儀
  sinatraでは、途中でprintとか出力しても無視され
  るので、printデバックができない。
  pryをつかって、ブレークポイントを仕掛けてデバック
  http://shirusu-ni-tarazu.hatenablog.jp/
  entry/2012/06/24/051114
そんなこんなで

   完成!(デモするよ)
          https://github.com/akira345/15Puzzle_For_Ruby




Powered by Rabbit 2.0.6 and COZMIXNG

More Related Content

What's hot

Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるShunji Konishi
 
Azureでのプレゼン
AzureでのプレゼンAzureでのプレゼン
AzureでのプレゼンFukuda Takuro
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)orange clover
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansaiHisateru Tanaka
 
JavaScript MVC入門
JavaScript MVC入門JavaScript MVC入門
JavaScript MVC入門大樹 小倉
 
最近流行りのビルドツールとは
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとはTakahiro Maki
 
libpgenでパケット操作
libpgenでパケット操作libpgenでパケット操作
libpgenでパケット操作slankdev
 
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係yy yank
 
SignalRブートキャンプ
SignalRブートキャンプSignalRブートキャンプ
SignalRブートキャンプKouji Matsui
 
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ拓弥 遠藤
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクトMoriyoshi Koizumi
 
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇Kenta USAMI
 
負荷テストについて
負荷テストについて負荷テストについて
負荷テストについてTakahiro Ishida
 
2021 01-25 lt sho kato
2021 01-25 lt sho kato2021 01-25 lt sho kato
2021 01-25 lt sho katokatosho1
 
5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門Kenta USAMI
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN LinkingKouji Matsui
 

What's hot (20)

Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
 
Azureでのプレゼン
AzureでのプレゼンAzureでのプレゼン
Azureでのプレゼン
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
 
JavaScript MVC入門
JavaScript MVC入門JavaScript MVC入門
JavaScript MVC入門
 
最近流行りのビルドツールとは
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとは
 
libpgenでパケット操作
libpgenでパケット操作libpgenでパケット操作
libpgenでパケット操作
 
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
 
SignalRブートキャンプ
SignalRブートキャンプSignalRブートキャンプ
SignalRブートキャンプ
 
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ
 
Php非同期の技法
Php非同期の技法Php非同期の技法
Php非同期の技法
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
 
Hello Ruby
Hello RubyHello Ruby
Hello Ruby
 
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇
 
負荷テストについて
負荷テストについて負荷テストについて
負荷テストについて
 
2021 01-25 lt sho kato
2021 01-25 lt sho kato2021 01-25 lt sho kato
2021 01-25 lt sho kato
 
HighBatch
HighBatchHighBatch
HighBatch
 
5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN Linking
 

Viewers also liked

Environmental considerations and land use
Environmental considerations and land useEnvironmental considerations and land use
Environmental considerations and land useKeith Turner
 
Costa Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resortCosta Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resortHoteles Elba
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!Akira Kaneda
 
Elba Palace Golf Hotel
Elba Palace Golf HotelElba Palace Golf Hotel
Elba Palace Golf HotelHoteles Elba
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみたAkira Kaneda
 
Hotel Elba Vecindario Aeropuerto
Hotel Elba Vecindario AeropuertoHotel Elba Vecindario Aeropuerto
Hotel Elba Vecindario AeropuertoHoteles Elba
 

Viewers also liked (8)

Environmental considerations and land use
Environmental considerations and land useEnvironmental considerations and land use
Environmental considerations and land use
 
Costa Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resortCosta Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resort
 
Osc2012 hiroshima
Osc2012 hiroshimaOsc2012 hiroshima
Osc2012 hiroshima
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!
 
Pravy SC
Pravy SCPravy SC
Pravy SC
 
Elba Palace Golf Hotel
Elba Palace Golf HotelElba Palace Golf Hotel
Elba Palace Golf Hotel
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみた
 
Hotel Elba Vecindario Aeropuerto
Hotel Elba Vecindario AeropuertoHotel Elba Vecindario Aeropuerto
Hotel Elba Vecindario Aeropuerto
 

Similar to Phpのレガシーコードをrubyで焼き変えてみた

PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺Shogo Kawahara
 
An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to ObjectsYoshifumi Kawai
 
VMを改めて学んで見る
VMを改めて学んで見るVMを改めて学んで見る
VMを改めて学んで見るkishima7
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOPazuma satoshi
 
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworksYAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworksNaoto Koshikawa
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情Junichi Ishida
 
Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)Yosei Ito
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしyamanekko
 
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのかWord pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのかHisateru Tanaka
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景Ryunosuke SATO
 
JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!Keigo Magami
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLUchio Kondo
 
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010Rakuten Group, Inc.
 
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49shoma h
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
HashicorpツールズUchio Kondo
 
PHP AV BINDING
PHP AV BINDINGPHP AV BINDING
PHP AV BINDINGYo Ya
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 

Similar to Phpのレガシーコードをrubyで焼き変えてみた (20)

PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 
An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to Objects
 
VMを改めて学んで見る
VMを改めて学んで見るVMを改めて学んで見る
VMを改めて学んで見る
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOP
 
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworksYAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
 
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのかWord pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
 
JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
 
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010
 
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
Hashicorpツールズ
 
PHP AV BINDING
PHP AV BINDINGPHP AV BINDING
PHP AV BINDING
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 

More from Akira Kaneda

アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)Akira Kaneda
 
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTAkira Kaneda
 
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)ジャンクのススメ(公開用)
ジャンクのススメ(公開用)Akira Kaneda
 
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう基板から回路図を起こしてみよう
基板から回路図を起こしてみようAkira Kaneda
 
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたOss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたAkira Kaneda
 
ジャンク解析入門
ジャンク解析入門ジャンク解析入門
ジャンク解析入門Akira Kaneda
 
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Akira Kaneda
 
Simの容量が気になって安眠できない
Simの容量が気になって安眠できないSimの容量が気になって安眠できない
Simの容量が気になって安眠できないAkira Kaneda
 
メモリと遊んでみた Pert2
メモリと遊んでみた Pert2メモリと遊んでみた Pert2
メモリと遊んでみた Pert2Akira Kaneda
 
DockerをGUIで使いたい!
DockerをGUIで使いたい!DockerをGUIで使いたい!
DockerをGUIで使いたい!Akira Kaneda
 
Open nebulaのご紹介
Open nebulaのご紹介Open nebulaのご紹介
Open nebulaのご紹介Akira Kaneda
 
自宅サーバにHyper v環境
自宅サーバにHyper v環境自宅サーバにHyper v環境
自宅サーバにHyper v環境Akira Kaneda
 
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Akira Kaneda
 
ルータでLチカしてみた
ルータでLチカしてみたルータでLチカしてみた
ルータでLチカしてみたAkira Kaneda
 
FPGAで遊んでみた
FPGAで遊んでみたFPGAで遊んでみた
FPGAで遊んでみたAkira Kaneda
 
メモリと遊んでみた
メモリと遊んでみたメモリと遊んでみた
メモリと遊んでみたAkira Kaneda
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介Akira Kaneda
 
Hiroshima.rbの歴史
Hiroshima.rbの歴史Hiroshima.rbの歴史
Hiroshima.rbの歴史Akira Kaneda
 
電光掲示板を作ってみた
電光掲示板を作ってみた電光掲示板を作ってみた
電光掲示板を作ってみたAkira Kaneda
 

More from Akira Kaneda (19)

アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)
 
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoT
 
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)ジャンクのススメ(公開用)
ジャンクのススメ(公開用)
 
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう基板から回路図を起こしてみよう
基板から回路図を起こしてみよう
 
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたOss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみた
 
ジャンク解析入門
ジャンク解析入門ジャンク解析入門
ジャンク解析入門
 
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。
 
Simの容量が気になって安眠できない
Simの容量が気になって安眠できないSimの容量が気になって安眠できない
Simの容量が気になって安眠できない
 
メモリと遊んでみた Pert2
メモリと遊んでみた Pert2メモリと遊んでみた Pert2
メモリと遊んでみた Pert2
 
DockerをGUIで使いたい!
DockerをGUIで使いたい!DockerをGUIで使いたい!
DockerをGUIで使いたい!
 
Open nebulaのご紹介
Open nebulaのご紹介Open nebulaのご紹介
Open nebulaのご紹介
 
自宅サーバにHyper v環境
自宅サーバにHyper v環境自宅サーバにHyper v環境
自宅サーバにHyper v環境
 
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
 
ルータでLチカしてみた
ルータでLチカしてみたルータでLチカしてみた
ルータでLチカしてみた
 
FPGAで遊んでみた
FPGAで遊んでみたFPGAで遊んでみた
FPGAで遊んでみた
 
メモリと遊んでみた
メモリと遊んでみたメモリと遊んでみた
メモリと遊んでみた
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介
 
Hiroshima.rbの歴史
Hiroshima.rbの歴史Hiroshima.rbの歴史
Hiroshima.rbの歴史
 
電光掲示板を作ってみた
電光掲示板を作ってみた電光掲示板を作ってみた
電光掲示板を作ってみた
 

Recently uploaded

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 

Recently uploaded (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

Phpのレガシーコードをrubyで焼き変えてみた