SlideShare ist ein Scribd-Unternehmen logo
1 von 32
takke




スマートフォン勉強会@関東#2   2009/8/29
                              1
   自己紹介
    MZ3/4とは?
     • MZ3の開発環境
    WM開発をラクにする方法
    Luaとは?
     • LuaをWMに組み込む
    Luaを組み込んだmixiブラウザがGMail&2chブラウザにな
     るまで
     • MZ3とLua
     • MZ3に機能を追加してみる
     • L.C.1
     • L.C.2
                  最後にライブコーディングするよ!
    まとめ
スマートフォン勉強会@関東#2                 2009/8/29
                                            2
 たっけ     / 竹内 裕昭 / TAKEUCHI Hiroaki
   • takke.jp / @takke / id:halts
   • 81世代
   • 職業プログラマ(ここ数年はPHP屋)
   • 趣味ならC++
   • WindowsCE FANに絡んでる?
     (Aplioのサーバ側)
   • スマートフォン
      W-ZERO3[es] → アドエス → E30HT
      iPhone 3G

スマートフォン勉強会@関東#2                     2009/8/29
                                                3
 英単語学習ソフトP-Study         System (PSS)




  PSS   for WindowsMobile (MPSS)

 MZ3.i   / MZ4



スマートフォン勉強会@関東#2                       2009/8/29
                                                  4
 知ってた人?




 使ってる人?




スマートフォン勉強会@関東#2   2009/8/29
                              5
   多機能ブラウザです

    機能がいっぱいです
     • mixi, Twitter, Gmail, auone, 2ch, RSS, Wassr,
       gooホームひとこと
     • @kimobiler: 1日だけMZ3で全てをまかなおうとしたが、全て一
       緒のアプリで扱う意義が理解できないのでちーたんと
       wasabi+mixiモバイルだな。別々の方が便利
     • 「mixi+Twitterは相性がいいはず」と気づいて付けてみた。
     • 当時はちーたんもSmartterも風見鶏もなく。
    要は・・・
     • 自分が欲しかったから。ガラケーでしていることをこれ一本で。
     • 「もったいない」

スマートフォン勉強会@関東#2                                        2009/8/29
                                                                   6
スマートフォン勉強会@関東#2   2009/8/29
                              7
 VisualStudio2008Pro./C++/MFC
  Windows Mobile 6 SDK
  オープンソース(GPL)
  http://mz3.jp




スマートフォン勉強会@関東#2                   2009/8/29
                                              8
 すまべん関東#1でmikiofukuさんが言ってまし
  た
  「.NET CF のアプリを作るなら、
   .NET で作って、テストして、
   それを .NET CF にコピペすればOK」
  MZ3=WM版、MZ4=Windows版
  MZ3/4 は同一ソース!
   • MZ4 をガンガン作って、WM 用にビルドするだけ!
   • これだけで開発効率は2倍!
   • でもスクリプト(Lua)を使うとさらに効率アップでき
     るよ!

スマートフォン勉強会@関東#2           2009/8/29
                                      9
 Lua知ってた人?




スマートフォン勉強会@関東#2   2009/8/29
                              10
   アプリケーションプログラムを拡張するために設計され
     た、軽くてパワフルなプログラミング言語
     • ブラジル製「ポルトガル語で月」
     • 手続き型言語 ⇒ オブジェクト指向、関数型にも擬態(変態)
     • JavaScriptに似た思想
     • バイトコードにコンパイルされ、Lua VM で実行
     • 速い:モノによってはPHPの3倍、Ruby1.9の30倍に。
  こんなところに!
     • Adobe Photoshop Lightroom
     • Strata 3D
     • World of Warcraft (WoW)
     • ソニック ワールドアドベンチャー

スマートフォン勉強会@関東#2                    2009/8/29
                                               11
 Luaは移植しやすい:100%          Pure C!
  C on ``VisualC++ WM SDK'' is NOT C.
   • errno.hがない
   • strcoll() strerror() getenv() localeconv()
     system() remove() tmpname() etc… がない
   • パッチ作りました!
   • http://mz3.jp/trac/mz3/changeset/1120




スマートフォン勉強会@関東#2                                   2009/8/29
                                                              12
 mixi
   • 後述・・・
  Twitter,   Wassr, gooホーム
   • ほぼすべてLua
  Luaを組み込んだmixiブラウザが
  GMail&2chブラウザになるまで
   • GMail, 2ch ⇒ 100% Lua
   • GMail    ⇒ 3日 くらい
   • 2ch      ⇒2時間 くらい

スマートフォン勉強会@関東#2               2009/8/29
                                          13
   mixi
     • 一部のHTMLパーサはLua化。
     • HTMLの仕様変更(年に1回くらい)があればすぐに対応でき
       る!
    2009/8/24(月)仕様変更 ktkr!!!!!!(mixiアプリ)
     • 日記読めない、コメントできない、etc…
     • 軽く祭りに。
    日記対応→Luaのみ
     • 暫定版リリースまで:2時間弱
    ドトールさんのご協力により…
     • お気に入りコミュ・ユーザ機能も対応できた
    まだいくつかの機能は対応待ち…

スマートフォン勉強会@関東#2                        2009/8/29
                                                   14
 用意するモノ
   • Windows マシン(NOT WM)
   • MZ4本体
   • テキストエディタ
   • Firefox + LiveHTTPHeaders
   • 注意
      二十歳以上は酒とおつまみ+たばこも必要です
       →この場ではちょっと効率落ちるかもw




スマートフォン勉強会@関東#2                  2009/8/29
                                             15
 「@~     に返信」⇒「@~ に言い返す」




スマートフォン勉強会@関東#2        2009/8/29
                                   16
 メニューに「スターを付ける」を追加する
  メニュー押下時のイベントハンドラを作る
        + LiveHTTPHeaders でPOST値を調べる
  Firefox
  イベントハンドラ内でPOST値を作り、
   アクセス種別を作り、送信する
  POST完了イベントハンドラを作る




スマートフォン勉強会@関東#2               2009/8/29
                                          17
 Luaを使うと開発がラクになるよ!
    • 仕様変更も開発環境なしですぐに(?)対応できるよ
  テキストエディタだけでMZ3/4のプラグインを
   作れるよ!
  Luaで自分好みのAPIを作れるよ。


  最後に、
   •   「WindowsMobile開発を256倍快適にする言語Lua」
   •   どこが256倍かって?
   •   釣りです!!
   •   タイトルに釣るって書いてたよ!(ルアーって)

スマートフォン勉強会@関東#2                  2009/8/29
                                             18
ご静聴ありがとうございまし
   た。




スマートフォン勉強会@関東#2   2009/8/29
                              19
以下、没スライド集です。。。




    スマートフォン勉強会@関東#2   2009/8/29
                                  20
   プログラミングしたことある人なら「見れば分かる」
    コメント
            -- 1行コメントだお!
            --[[
            この範囲はコメントだお!
            ]]

    if     if http_status ~= 200 then
                mz3.alert("エラーだよ!“);
            end


    文字列処理が得意!(パターン=疑似正規表現)
            body = line:match('<div class="msg">(.-)</div>');
            body = body:gsub('<WBR>', '');




スマートフォン勉強会@関東#2                                                 2009/8/29
                                                                            21
   MessageBox を Lua から呼び出す
// in main.cpp                                         -- gmail.lua
int lua_mz3_alert(lua_State *L)                        mz3.alert('起動したよ!', 'たいとる');
{
    CString msg(lua_tostring(L, 1));   // 第1引数
    CString title(lua_tostring(L, 2)); // 第2引数

   MessageBox(GetActiveWindow(), msg, title, MB_OK);

   // 戻り値の数を返す
   return 0;
}
static const luaL_Reg lua_mz3_lib[] = {
    {"alert", lua_mz3_alert},
    {NULL, NULL}
};
// in main function
luaL_register(L, "mz3", lua_mz3_lib);


スマートフォン勉強会@関東#2                                                      2009/8/29
                                                                                  22
    Rubyより30倍、PHPより3倍程度速い場合も。
                 http://shootout.alioth.debian.org/u32q/benchmark.
                  php?test=all&lang=lua&lang2=yarv&box=1


スマートフォン勉強会@関東#2                                         2009/8/29
                                                                      23
 自分好みのAPIを設計しよう!
  APIは全部関数
   • Luaでラッパーを作る(クラス化)
  イベント駆動型
   • 「通信が終わったよ!」「ユーザが右クリックし
     たよ」といったイベントに対してLua側の関数が
     呼ばれる。
   • どの関数を呼ぶかはあらかじめLua側から登録し
     ておく(イベントハンドラの登録)
   • JavaScriptのイベントハンドラと同じ仕組み。


スマートフォン勉強会@関東#2           2009/8/29
                                      24
 Twitter
   • 誰かのタイムライン、お気に入り
     (ストーキング用)
   • アイコンクリックで返信
  作者も使ってない機能がいっぱい
   • 巡回とか




スマートフォン勉強会@関東#2        2009/8/29
                                   25
 Lua   は VM で動く。
   • 起動時にコンパイラが走る。
   • プリコンパイルしておけばもっと速くなる!




スマートフォン勉強会@関東#2       2009/8/29
                                  26
 最近は   WM開発というと
   .NET Compact Framework
   ですよね?
  .NET CF + Lua は?
  誰かやって!




スマートフォン勉強会@関東#2             2009/8/29
                                        27
 文字コードがSJIS
  Twitterの(というより@kohmiの)「~」
  が化ける!

  Lua側の文字コードを UTF-8 にできる。
  組み込むときは UTF-8 にしましょう。
  MZ3/4はVer.2くらいでやります、たぶ
   ん。

スマートフォン勉強会@関東#2        2009/8/29
                                   28
 cppソースから半自動でluadocを作る方
  法。




スマートフォン勉強会@関東#2       2009/8/29
                                  29
以下、1000speakersの
MZ3関連スライド集です。




    スマートフォン勉強会@関東#2   2009/8/29
                                  30
 WMのブラウザ(Opera,IE)は遅すぎます
  WILLCOMだとモバイルmixi使えない
   (~2006)
  mixi&TwitterクライアントMZ3.i / MZ4
   • mixi : スクレイピング
            (一部API), 仕様変(ry
   • TwitterとRSS
   • VisualC++ / MFC
   • Windows版=MZ4 (仕事中にry

スマートフォン勉強会@関東#2               2009/8/29
                                          31
• 2006/08 まこさんがプロトタイプ作成
   • 2006/11 ソース公開 ⇒ いっちゅうさんが引継ぎ
                  ⇒ たっけが横取りw
               <中略>
   •   2007/12 絵文字描画対応(仕事人さん)
   •   2007/12 iPhone風UI?
   •   2008/04 Twitterクライアント搭載
   •   2008/05 もっとiPhone風UI?
                 (モりやまさん)
                 RSSリーダ搭載?
   •   2008/xx プラグイン化?
スマートフォン勉強会@関東#2                  2009/8/29
                                             32

Weitere ähnliche Inhalte

Was ist angesagt?

Javakuche yono
Javakuche yonoJavakuche yono
Javakuche yonoyono05
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントIosif Takakura
 
第一回関西Emacs勉強会 - org-modeを使おう
第一回関西Emacs勉強会 - org-modeを使おう第一回関西Emacs勉強会 - org-modeを使おう
第一回関西Emacs勉強会 - org-modeを使おうRyo Takaishi
 

Was ist angesagt? (6)

210630 python
210630 python210630 python
210630 python
 
OSSと私
OSSと私OSSと私
OSSと私
 
コモジラ研究所
コモジラ研究所コモジラ研究所
コモジラ研究所
 
Javakuche yono
Javakuche yonoJavakuche yono
Javakuche yono
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
第一回関西Emacs勉強会 - org-modeを使おう
第一回関西Emacs勉強会 - org-modeを使おう第一回関西Emacs勉強会 - org-modeを使おう
第一回関西Emacs勉強会 - org-modeを使おう
 

Ähnlich wie WindowsMobile開発を256倍快適にする言語 Lua

Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Yoshito Tabuchi
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇Go Saito
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchShin Ise
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
Xamarinでも有能な .NET Core
 Xamarinでも有能な .NET Core  Xamarinでも有能な .NET Core
Xamarinでも有能な .NET Core Yuta Matsumura
 
PasteHub at kansai emacs 9th
PasteHub at kansai emacs 9thPasteHub at kansai emacs 9th
PasteHub at kansai emacs 9thKiyoka Nishiyama
 
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01Takeshi Komiya
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMFAtomu Hidaka
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)Kenichiro MATOHARA
 
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話Takuya Kikuchi
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMFAtomu Hidaka
 
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...SORACOM,INC
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_patternyusuke shibui
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3mganeko
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーTsukasa Kato
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit 三七男 山本
 
HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)Madoka Chiyoda
 

Ähnlich wie WindowsMobile開発を256倍快適にする言語 Lua (20)

Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
Xamarinでも有能な .NET Core
 Xamarinでも有能な .NET Core  Xamarinでも有能な .NET Core
Xamarinでも有能な .NET Core
 
Demo120724
Demo120724Demo120724
Demo120724
 
PasteHub at kansai emacs 9th
PasteHub at kansai emacs 9thPasteHub at kansai emacs 9th
PasteHub at kansai emacs 9th
 
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
 
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
 
Yapc2012ltthon
Yapc2012ltthonYapc2012ltthon
Yapc2012ltthon
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャー
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
 
HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)
 

Kürzlich hochgeladen

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: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
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
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 カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: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
 

Kürzlich hochgeladen (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: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
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: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...
 

WindowsMobile開発を256倍快適にする言語 Lua

  • 2. 自己紹介  MZ3/4とは? • MZ3の開発環境  WM開発をラクにする方法  Luaとは? • LuaをWMに組み込む  Luaを組み込んだmixiブラウザがGMail&2chブラウザにな るまで • MZ3とLua • MZ3に機能を追加してみる • L.C.1 • L.C.2 最後にライブコーディングするよ!  まとめ スマートフォン勉強会@関東#2 2009/8/29 2
  • 3.  たっけ / 竹内 裕昭 / TAKEUCHI Hiroaki • takke.jp / @takke / id:halts • 81世代 • 職業プログラマ(ここ数年はPHP屋) • 趣味ならC++ • WindowsCE FANに絡んでる? (Aplioのサーバ側) • スマートフォン  W-ZERO3[es] → アドエス → E30HT  iPhone 3G スマートフォン勉強会@関東#2 2009/8/29 3
  • 4.  英単語学習ソフトP-Study System (PSS)  PSS for WindowsMobile (MPSS)  MZ3.i / MZ4 スマートフォン勉強会@関東#2 2009/8/29 4
  • 6. 多機能ブラウザです  機能がいっぱいです • mixi, Twitter, Gmail, auone, 2ch, RSS, Wassr, gooホームひとこと • @kimobiler: 1日だけMZ3で全てをまかなおうとしたが、全て一 緒のアプリで扱う意義が理解できないのでちーたんと wasabi+mixiモバイルだな。別々の方が便利 • 「mixi+Twitterは相性がいいはず」と気づいて付けてみた。 • 当時はちーたんもSmartterも風見鶏もなく。  要は・・・ • 自分が欲しかったから。ガラケーでしていることをこれ一本で。 • 「もったいない」 スマートフォン勉強会@関東#2 2009/8/29 6
  • 8.  VisualStudio2008Pro./C++/MFC  Windows Mobile 6 SDK  オープンソース(GPL)  http://mz3.jp スマートフォン勉強会@関東#2 2009/8/29 8
  • 9.  すまべん関東#1でmikiofukuさんが言ってまし た 「.NET CF のアプリを作るなら、 .NET で作って、テストして、 それを .NET CF にコピペすればOK」  MZ3=WM版、MZ4=Windows版  MZ3/4 は同一ソース! • MZ4 をガンガン作って、WM 用にビルドするだけ! • これだけで開発効率は2倍! • でもスクリプト(Lua)を使うとさらに効率アップでき るよ! スマートフォン勉強会@関東#2 2009/8/29 9
  • 11. アプリケーションプログラムを拡張するために設計され た、軽くてパワフルなプログラミング言語 • ブラジル製「ポルトガル語で月」 • 手続き型言語 ⇒ オブジェクト指向、関数型にも擬態(変態) • JavaScriptに似た思想 • バイトコードにコンパイルされ、Lua VM で実行 • 速い:モノによってはPHPの3倍、Ruby1.9の30倍に。  こんなところに! • Adobe Photoshop Lightroom • Strata 3D • World of Warcraft (WoW) • ソニック ワールドアドベンチャー スマートフォン勉強会@関東#2 2009/8/29 11
  • 12.  Luaは移植しやすい:100% Pure C!  C on ``VisualC++ WM SDK'' is NOT C. • errno.hがない • strcoll() strerror() getenv() localeconv() system() remove() tmpname() etc… がない • パッチ作りました! • http://mz3.jp/trac/mz3/changeset/1120 スマートフォン勉強会@関東#2 2009/8/29 12
  • 13.  mixi • 後述・・・  Twitter, Wassr, gooホーム • ほぼすべてLua  Luaを組み込んだmixiブラウザが GMail&2chブラウザになるまで • GMail, 2ch ⇒ 100% Lua • GMail ⇒ 3日 くらい • 2ch ⇒2時間 くらい スマートフォン勉強会@関東#2 2009/8/29 13
  • 14. mixi • 一部のHTMLパーサはLua化。 • HTMLの仕様変更(年に1回くらい)があればすぐに対応でき る!  2009/8/24(月)仕様変更 ktkr!!!!!!(mixiアプリ) • 日記読めない、コメントできない、etc… • 軽く祭りに。  日記対応→Luaのみ • 暫定版リリースまで:2時間弱  ドトールさんのご協力により… • お気に入りコミュ・ユーザ機能も対応できた  まだいくつかの機能は対応待ち… スマートフォン勉強会@関東#2 2009/8/29 14
  • 15.  用意するモノ • Windows マシン(NOT WM) • MZ4本体 • テキストエディタ • Firefox + LiveHTTPHeaders • 注意  二十歳以上は酒とおつまみ+たばこも必要です →この場ではちょっと効率落ちるかもw スマートフォン勉強会@関東#2 2009/8/29 15
  • 16.  「@~ に返信」⇒「@~ に言い返す」 スマートフォン勉強会@関東#2 2009/8/29 16
  • 17.  メニューに「スターを付ける」を追加する  メニュー押下時のイベントハンドラを作る + LiveHTTPHeaders でPOST値を調べる  Firefox  イベントハンドラ内でPOST値を作り、 アクセス種別を作り、送信する  POST完了イベントハンドラを作る スマートフォン勉強会@関東#2 2009/8/29 17
  • 18.  Luaを使うと開発がラクになるよ! • 仕様変更も開発環境なしですぐに(?)対応できるよ  テキストエディタだけでMZ3/4のプラグインを 作れるよ!  Luaで自分好みのAPIを作れるよ。  最後に、 • 「WindowsMobile開発を256倍快適にする言語Lua」 • どこが256倍かって? • 釣りです!! • タイトルに釣るって書いてたよ!(ルアーって) スマートフォン勉強会@関東#2 2009/8/29 18
  • 19. ご静聴ありがとうございまし た。 スマートフォン勉強会@関東#2 2009/8/29 19
  • 20. 以下、没スライド集です。。。 スマートフォン勉強会@関東#2 2009/8/29 20
  • 21. プログラミングしたことある人なら「見れば分かる」  コメント -- 1行コメントだお! --[[ この範囲はコメントだお! ]]  if if http_status ~= 200 then mz3.alert("エラーだよ!“); end  文字列処理が得意!(パターン=疑似正規表現) body = line:match('<div class="msg">(.-)</div>'); body = body:gsub('<WBR>', ''); スマートフォン勉強会@関東#2 2009/8/29 21
  • 22. MessageBox を Lua から呼び出す // in main.cpp -- gmail.lua int lua_mz3_alert(lua_State *L) mz3.alert('起動したよ!', 'たいとる'); { CString msg(lua_tostring(L, 1)); // 第1引数 CString title(lua_tostring(L, 2)); // 第2引数 MessageBox(GetActiveWindow(), msg, title, MB_OK); // 戻り値の数を返す return 0; } static const luaL_Reg lua_mz3_lib[] = { {"alert", lua_mz3_alert}, {NULL, NULL} }; // in main function luaL_register(L, "mz3", lua_mz3_lib); スマートフォン勉強会@関東#2 2009/8/29 22
  • 23. Rubyより30倍、PHPより3倍程度速い場合も。  http://shootout.alioth.debian.org/u32q/benchmark. php?test=all&lang=lua&lang2=yarv&box=1 スマートフォン勉強会@関東#2 2009/8/29 23
  • 24.  自分好みのAPIを設計しよう!  APIは全部関数 • Luaでラッパーを作る(クラス化)  イベント駆動型 • 「通信が終わったよ!」「ユーザが右クリックし たよ」といったイベントに対してLua側の関数が 呼ばれる。 • どの関数を呼ぶかはあらかじめLua側から登録し ておく(イベントハンドラの登録) • JavaScriptのイベントハンドラと同じ仕組み。 スマートフォン勉強会@関東#2 2009/8/29 24
  • 25.  Twitter • 誰かのタイムライン、お気に入り (ストーキング用) • アイコンクリックで返信  作者も使ってない機能がいっぱい • 巡回とか スマートフォン勉強会@関東#2 2009/8/29 25
  • 26.  Lua は VM で動く。 • 起動時にコンパイラが走る。 • プリコンパイルしておけばもっと速くなる! スマートフォン勉強会@関東#2 2009/8/29 26
  • 27.  最近は WM開発というと .NET Compact Framework ですよね?  .NET CF + Lua は?  誰かやって! スマートフォン勉強会@関東#2 2009/8/29 27
  • 28.  文字コードがSJIS  Twitterの(というより@kohmiの)「~」 が化ける!  Lua側の文字コードを UTF-8 にできる。  組み込むときは UTF-8 にしましょう。  MZ3/4はVer.2くらいでやります、たぶ ん。 スマートフォン勉強会@関東#2 2009/8/29 28
  • 29.  cppソースから半自動でluadocを作る方 法。 スマートフォン勉強会@関東#2 2009/8/29 29
  • 30. 以下、1000speakersの MZ3関連スライド集です。 スマートフォン勉強会@関東#2 2009/8/29 30
  • 31.  WMのブラウザ(Opera,IE)は遅すぎます  WILLCOMだとモバイルmixi使えない (~2006)  mixi&TwitterクライアントMZ3.i / MZ4 • mixi : スクレイピング (一部API), 仕様変(ry • TwitterとRSS • VisualC++ / MFC • Windows版=MZ4 (仕事中にry スマートフォン勉強会@関東#2 2009/8/29 31
  • 32. • 2006/08 まこさんがプロトタイプ作成 • 2006/11 ソース公開 ⇒ いっちゅうさんが引継ぎ ⇒ たっけが横取りw <中略> • 2007/12 絵文字描画対応(仕事人さん) • 2007/12 iPhone風UI? • 2008/04 Twitterクライアント搭載 • 2008/05 もっとiPhone風UI? (モりやまさん) RSSリーダ搭載? • 2008/xx プラグイン化? スマートフォン勉強会@関東#2 2009/8/29 32