SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
ゲットーの斜め上をゆく
     Webアプリケーション
     Webアプリケーション
     フレームワークの開発




      高橋“ masaka” 正和
      高橋“masaka” 正和
             
まずは自己紹介
    ●   本名:高橋正和
    ●
        通称:masaka、emasaka




                       
●
        仕事:文系サラリーマン
        – どっちかというと営業




                
去年のOSC Tokyo/Spring
    ●   まるごとシリーズとか会場販売してました




                    
PHP、Java、Perl、JavaScript...




      次はやっぱり...

                  
まるごとbash
    ●   略して「まるばつ」
    ●   (注:嘘です)




                     
本題
    Bash on Railsの開発
    Bash on Railsの開発




    日本 bashユーザ会
    日本bashユーザ会 ネタ担当
      高橋“ masaka” 正和
      高橋“masaka” 正和
              
Bash on Railsとは
    ●
        pure bashで書かれたWebアプリケーションフ
        レームワーク
    ●
        実用性を無視し、「いかにRuby on Railsの真似
        をするか」のみを追求したネタソフト
        –   ぶっちゃけ、Ruby on Railsのソースをめちゃめ
            ちゃ参考にしてます




                          
目指すノリ



    '80年代「Ah!SKI」誌で
      公開された伝説のOS
    「UNI+」(ゆにっくろす)
    (注:40才以上限定ネタ)



           
pure bashってなに?

 Bash内蔵コマンドだけで
●


 シェルスクリプトとして実装
    –現在1,600行ちょい




             
こうしたコマンドは使わない

    ●
        sed
    ●
        grep
    ●
        cat
    ●
      tr
    ● …などなど


                
もちろん使わない

    ●
        awk
    ●
        Perl
    ●
        Python
    ●
        Ruby
                   
使っちゃったもの

    ●
        Apache
        – これはしょうがないですよね




                  
使っちゃったもの(続)
    ●
        RDBMSのコマンドラインフロントエンド
        –   SQLite3を利用
        –   ようするにテキストの表形式をパースしてる
        –   いちおうconnection_adapterとして抽象化




                            
心ならずも使った外部コマンド

    ●
        mkdir
    ●
        rm
    ●
      ln
    ●
      (正直くやしい)
                 
そのほか使った外部コマンド

    ●
        make
        – Ruby on Railsでrakeを使うノリを
        重視したつもり




                     
Ruby on Railsインスパイヤ(1)


    メタプログラミングで
      言語内DSLで
       DRY!

               
データベース定義
    # database configuration
    development:
        adapter: sqlite3
        database: db/development.sqlite3
        timeout: 5000
                                          YAML?
    test:
        adapter: sqlite3
        database: db/test.sqlite3         いいえ、
        timeout: 5000                     シェルスクリプトです

    production:
        adapter: sqlite3
        database: db/production.sqlite3
        timeout: 5000                       
モデル定義


    create_table members t
        t.column name string
        t.column mailaddress string
        t.column comment string
    elbat_etaerc もちろんシェルスクリプトです



                      
Routing定義




    map.connect '/meibo/:controller/:action/:id'

                 やっぱりシェルスクリプトです



                           
Ruby on Railsインスパイヤ(2)
          bashでオブジェクト指向
    ●
      名づけてbashOO
    ●
      (ばしょー)




                   
bashでオブジェクト指向(続)
    function Presen::instance.takahashi() {
        local self=$1
        local msg=$2                          takahashiメソッド
        echo "大きい文字:" $msg
    }

    function Presen::instance.takesako() {
        local self=$1
        local msg=$2                          takesakoメソッド

        echo "会場で調整:" $msg
    }

                            どう見てもシェルスクリプトです
    Object.extend Presen
                                        
Ruby on Railsインスパイヤ(3)
               O/Rマッパー
    ●
        Active Recordもどき
    ●
        名づけてSHar
        –(しゃー)
        – O/Rといいつつjoin未対応


                   
Ruby on Railsインスパイヤ(4)
    <html>テンプレートエンジンeBash
    <head>
    <title>members</title>
    </head>                                                  eRuby風ですが
    <body>

    <% for column in $members_columns; do %>
      <% var="current_item_${column}" %>
      <p>
        <b><%=column%>:</b> <% echo ­n "${!var}" %>
      </p>
    <% done %>

    <% link_to 'Edit' :action='edit' :id="$current_item_id" %>
    <% link_to 'Back' :action='list' %>

    </body>
    </html>
                                                      
Ruby on Railsインスパイヤ(4)
    <html>テンプレートエンジンeBash
    <head>
    <title>members</title>                        もちろん埋め込んでるのは
    </head>
    <body>
                                                  シェルスクリプトです

    <% for column in $members_columns; do %>
      <% var="current_item_${column}" %>
      <p>
        <b><%=column%>:</b> <% echo ­n "${!var}" %>
      </p>
    <% done %>

    <% link_to 'Edit' :action='edit' :id="$current_item_id" %>
    <% link_to 'Back' :action='list' %>

    </body>
    </html>
                                                      
その他やったことは
      いろいろ省略

         
やってないこと
    ●   安全性、安定性、実用性
        –   XSSとかSQL injectionとかばりばり




                            
DEMO



      残りの時間で
    簡単なWebアプリを
       作ります

         

Mais conteúdo relacionado

Mais procurados

Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るMasashi Shinbara
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)parrotstudio
 
わんくま東京#46 予告編
わんくま東京#46 予告編わんくま東京#46 予告編
わんくま東京#46 予告編Sunao Tomita
 
プロパティディスクリプタとその拡張ライブラリ
プロパティディスクリプタとその拡張ライブラリプロパティディスクリプタとその拡張ライブラリ
プロパティディスクリプタとその拡張ライブラリYusuke Muraoka
 
about Thrift
about Thriftabout Thrift
about ThriftNaoya Ito
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方Shuyo Nakatani
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料cryks
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバーemasaka
 
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」makopi 23
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428basicinc_dev
 
Database.persistentの話
Database.persistentの話Database.persistentの話
Database.persistentの話真一 北原
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編Kazuya Numata
 
プログラムの読み方
プログラムの読み方プログラムの読み方
プログラムの読み方Takuya Otani
 
実用裏方 Perl 入門
実用裏方 Perl 入門実用裏方 Perl 入門
実用裏方 Perl 入門keroyonn
 

Mais procurados (20)

Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
 
Using Dancer
Using DancerUsing Dancer
Using Dancer
 
わんくま東京#46 予告編
わんくま東京#46 予告編わんくま東京#46 予告編
わんくま東京#46 予告編
 
プロパティディスクリプタとその拡張ライブラリ
プロパティディスクリプタとその拡張ライブラリプロパティディスクリプタとその拡張ライブラリ
プロパティディスクリプタとその拡張ライブラリ
 
about Thrift
about Thriftabout Thrift
about Thrift
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
 
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428
 
Database.persistentの話
Database.persistentの話Database.persistentの話
Database.persistentの話
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
 
プログラムの読み方
プログラムの読み方プログラムの読み方
プログラムの読み方
 
実用裏方 Perl 入門
実用裏方 Perl 入門実用裏方 Perl 入門
実用裏方 Perl 入門
 
恋に落ちるRuby
恋に落ちるRuby恋に落ちるRuby
恋に落ちるRuby
 

Semelhante a ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発

Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Koji SHIMADA
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~Kazuya Wada
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionSatomi Tsujita
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞYoichi Toyota
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
Racc でおてがる構文解析
Racc でおてがる構文解析Racc でおてがる構文解析
Racc でおてがる構文解析morphine57
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)Yuuki Namikawa
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Sea Mountain
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)Masanori Machii
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪Yu Ito
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Rubymitim
 

Semelhante a ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発 (20)

Haikara
HaikaraHaikara
Haikara
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞ
 
Rake
RakeRake
Rake
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Asset Pipeline for Perl
Asset Pipeline for PerlAsset Pipeline for Perl
Asset Pipeline for Perl
 
Racc でおてがる構文解析
Racc でおてがる構文解析Racc でおてがる構文解析
Racc でおてがる構文解析
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 

Mais de emasaka

ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議emasaka
 
濁点の話
濁点の話濁点の話
濁点の話emasaka
 
GoBoLinuxを試した
GoBoLinuxを試したGoBoLinuxを試した
GoBoLinuxを試したemasaka
 
さくらのクラウドでh2oのベンチマーク
さくらのクラウドでh2oのベンチマークさくらのクラウドでh2oのベンチマーク
さくらのクラウドでh2oのベンチマークemasaka
 
みおぽん for CLI
みおぽん for CLIみおぽん for CLI
みおぽん for CLIemasaka
 
GNU make 4.0に何かいる
GNU make 4.0に何かいるGNU make 4.0に何かいる
GNU make 4.0に何かいるemasaka
 
長いの
長いの長いの
長いのemasaka
 
)の品格
)の品格)の品格
)の品格emasaka
 
Bash on Railsの逆襲
Bash on Railsの逆襲Bash on Railsの逆襲
Bash on Railsの逆襲emasaka
 

Mais de emasaka (10)

ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議
 
濁点の話
濁点の話濁点の話
濁点の話
 
GoBoLinuxを試した
GoBoLinuxを試したGoBoLinuxを試した
GoBoLinuxを試した
 
さくらのクラウドでh2oのベンチマーク
さくらのクラウドでh2oのベンチマークさくらのクラウドでh2oのベンチマーク
さくらのクラウドでh2oのベンチマーク
 
みおぽん for CLI
みおぽん for CLIみおぽん for CLI
みおぽん for CLI
 
GNU make 4.0に何かいる
GNU make 4.0に何かいるGNU make 4.0に何かいる
GNU make 4.0に何かいる
 
長いの
長いの長いの
長いの
 
)の品格
)の品格)の品格
)の品格
 
人力
人力人力
人力
 
Bash on Railsの逆襲
Bash on Railsの逆襲Bash on Railsの逆襲
Bash on Railsの逆襲
 

Último

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Último (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発

  • 1. ゲットーの斜め上をゆく Webアプリケーション Webアプリケーション フレームワークの開発   高橋“ masaka” 正和 高橋“masaka” 正和  
  • 2. まずは自己紹介 ● 本名:高橋正和 ● 通称:masaka、emasaka    
  • 3. 仕事:文系サラリーマン – どっちかというと営業    
  • 4. 去年のOSC Tokyo/Spring ● まるごとシリーズとか会場販売してました    
  • 5. PHP、Java、Perl、JavaScript... 次はやっぱり...    
  • 6. まるごとbash ● 略して「まるばつ」 ● (注:嘘です)    
  • 7. 本題 Bash on Railsの開発 Bash on Railsの開発 日本 bashユーザ会 日本bashユーザ会 ネタ担当   高橋“ masaka” 正和 高橋“masaka” 正和  
  • 8. Bash on Railsとは ● pure bashで書かれたWebアプリケーションフ レームワーク ● 実用性を無視し、「いかにRuby on Railsの真似 をするか」のみを追求したネタソフト – ぶっちゃけ、Ruby on Railsのソースをめちゃめ ちゃ参考にしてます    
  • 9. 目指すノリ '80年代「Ah!SKI」誌で 公開された伝説のOS 「UNI+」(ゆにっくろす) (注:40才以上限定ネタ)    
  • 11. こうしたコマンドは使わない ● sed ● grep ● cat ● tr ● …などなど    
  • 12. もちろん使わない ● awk ● Perl ● Python ● Ruby    
  • 13. 使っちゃったもの ● Apache – これはしょうがないですよね    
  • 14. 使っちゃったもの(続) ● RDBMSのコマンドラインフロントエンド – SQLite3を利用 – ようするにテキストの表形式をパースしてる – いちおうconnection_adapterとして抽象化    
  • 15. 心ならずも使った外部コマンド ● mkdir ● rm ● ln ● (正直くやしい)    
  • 16. そのほか使った外部コマンド ● make – Ruby on Railsでrakeを使うノリを 重視したつもり    
  • 17. Ruby on Railsインスパイヤ(1) メタプログラミングで 言語内DSLで DRY!    
  • 18. データベース定義 # database configuration development:     adapter: sqlite3     database: db/development.sqlite3     timeout: 5000 YAML? test:     adapter: sqlite3     database: db/test.sqlite3 いいえ、     timeout: 5000 シェルスクリプトです production:     adapter: sqlite3     database: db/production.sqlite3       timeout: 5000  
  • 19. モデル定義 create_table members t     t.column name string     t.column mailaddress string     t.column comment string elbat_etaerc もちろんシェルスクリプトです    
  • 20. Routing定義 map.connect '/meibo/:controller/:action/:id' やっぱりシェルスクリプトです    
  • 21. Ruby on Railsインスパイヤ(2) bashでオブジェクト指向 ● 名づけてbashOO ● (ばしょー)    
  • 22. bashでオブジェクト指向(続) function Presen::instance.takahashi() {     local self=$1     local msg=$2 takahashiメソッド     echo "大きい文字:" $msg } function Presen::instance.takesako() {     local self=$1     local msg=$2 takesakoメソッド     echo "会場で調整:" $msg } どう見てもシェルスクリプトです Object.extend Presen    
  • 23. Ruby on Railsインスパイヤ(3) O/Rマッパー ● Active Recordもどき ● 名づけてSHar –(しゃー) – O/Rといいつつjoin未対応    
  • 24. Ruby on Railsインスパイヤ(4) <html>テンプレートエンジンeBash <head> <title>members</title> </head> eRuby風ですが <body> <% for column in $members_columns; do %>   <% var="current_item_${column}" %>   <p>     <b><%=column%>:</b> <% echo ­n "${!var}" %>   </p> <% done %> <% link_to 'Edit' :action='edit' :id="$current_item_id" %> <% link_to 'Back' :action='list' %> </body> </html>    
  • 25. Ruby on Railsインスパイヤ(4) <html>テンプレートエンジンeBash <head> <title>members</title> もちろん埋め込んでるのは </head> <body> シェルスクリプトです <% for column in $members_columns; do %>   <% var="current_item_${column}" %>   <p>     <b><%=column%>:</b> <% echo ­n "${!var}" %>   </p> <% done %> <% link_to 'Edit' :action='edit' :id="$current_item_id" %> <% link_to 'Back' :action='list' %> </body> </html>    
  • 26. その他やったことは いろいろ省略    
  • 27. やってないこと ● 安全性、安定性、実用性 – XSSとかSQL injectionとかばりばり    
  • 28. DEMO 残りの時間で 簡単なWebアプリを 作ります