SlideShare a Scribd company logo
1 of 100
Download to read offline
SORABITO SERIES
RUNNING
Smalltalk実践Smalltalk
第75回 Smalltalk勉強会
クラウドとSmalltalkで
日本発の世界向けサービスを始める方法
Sho Yoshida
SORABITO株式会社
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
知らない方のために
RUNNING LEAN
アッシュ・マウリャ (著), 渡辺 千賀 (解説)
出版 オライリー・ジャパン
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
プロフィール
• 吉田 翔(よしだしょう)
• 1986年生まれ
• Smalltalker
twitter: @newapplesho
facebook: newapplesho
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkの人に
なって他の言語が
できなくなった
Smalltalk大好きって言いすぎたら
PHPやるんですね・・・。
Rubyやるんですね・・・。
Javaやるんですね・・・。
Smalltalkって最高ですね
Always Shooting https://www.flickr.com/photos/alwaysshooting/15315019007/
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkって最高ですね
最近本も出版されている
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkって最高ですね
http://www.softumeya.com/pyonkee/ja/
アプリだってリリースされている
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkって最高ですね
https://www.kickstarter.com/projects/1520902870/canadian-smalltalk-competition
Smalltalk is a revolutionary language that has the
power to transform the future of software development.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalk
活用事例
今日のSmalltalk勉強会
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkの活用事例(Pharo)
http://pharo.org/success
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkの活用事例(VisualWorks)
http://smalltalk.cincom.jp/main/successes/
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
いっぱいありますね
でも・・・
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/
どこで使われているの?え!
ある勉強会の懇親会での出来事
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkで
クラウドサービス
つくるぞ
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
建設機械・重機・車両の流通を
支えるプラットフォーム
Mikata
https://mikatacloud.com
2014年9月一般公開
第68回 Smalltalk勉強会
• 2014年9月に発表

• あれから半年経ちました
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
トップページが変わりました
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
メディアに掲載されました
2015年01月12日の日経経済新聞 朝刊の新興中小企業欄
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/
Smalltalkなんだってそうなんだ
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ただ誰でも参加できるわけではない
簡単にいうと
クローズドな中古売買サービス
(建設機械レンタル会社と貿易会社専用)
Mikata
グループウェアに近いサービス
もっと自由に使いたい
Always Shooting https://www.flickr.com/photos/alwaysshooting/15315019007/
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ALLSTOCKER
世界中の建設機械のオンラインマーケットプレイス
2015年2月末
新しいサービスを始めました
https://allstocker.com
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
全世界向け
クラウドサービス
建設機械って?
26
ブラジル
27
スイス
エジプト
インドネシア
新品は高額…
¥16,000,000-
中古機は人気!
¥6,000,000-
欲しい中古建設機械は
なかなか見つからない
インターネットが活用されていない
探すのが非常に困難
一方、売り手もお客さんを探している…
ALLSTOCKER
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ALLSTOCKER
世界中の建設機械のオンラインマーケットプレイス
経済産業省
「先端課題対応型ベンチャー事業化支援等事業」に採択
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/
きっとSmalltalkだよだよね
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
コードネーム
Mikata Asia
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/
1週間で作ってねえ
企画を含めて2週間で作らなければならなかった
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
どう作るか
• サービスの拡大に合わせてスケールできるクラウドサー
バーを利用
• Smalltalkのダイナミックな開発能力を利用する
• 機械毎に異なる情報を保存するためNoSQLを活用
• 写真はオリジナルファイルだけを保存
Mikataのノウハウをベースに開発
詳しくは第68回Smalltalk勉強会の資料にて
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
利用しているサービス
• EC2(仮想サーバー)
• ELB(ロードバランサー)
• Route53(DNS)
• Amazon RDS for PostgreSQL(RDB)
• Amazon DynamoDB(NoSQL)
• S3(写真,ログ等のストレージ)
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Region
Availability Zone Availability Zone
PostgreSQLPostgreSQL
RDS
PostgreSQL
PostgreSQLPostgreSQL
RDS
PostgreSQL
DynamoDB
S3
Amazon EC2
Amazon EC2
Internet
Amazon Route
53 Hosted Zone
Elastic Load
Balancing
SSL
SSL
SSL
SSL
構成図
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Allstocker を支えるSmalltalk
開発言語 Smalltalk(Pharo 3.0)
Web Framework Seaside 3.1 + mushtache
RDB Glorp(PostgreSQL)
ログ Nagare(Fluentd)
NoSQL AWS SDK for Smalltalk
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
AWS SDK
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
AWS SDK for Smalltalkのインストール
Gofer new
url:'http://smalltalkhub.com/mc/newapplesho/aws-sdk-smalltalk/main';
package: 'ConfigurationOfAWS';
load.
(Smalltalk at: #ConfigurationOfAWS) load.
サービスで使えば、メンテナンスもされるはず
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Allstocker をCSS Framework
SeasideのBoostrapパッケージは使わない
Allstocker
Mikata 独自のCSS Framework
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
その他
• 画像やCSSは外部url参照
• メール送信はUTF8非対応クライアントもあるためRubyに
任せる
• メールを送信はSendGridを活用
• 画像アップロードやリサイズはNginxに任せる(Smalltalkで
処理しない)
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Seasideのデザイン反映プロセス
モック
作成
レビュー Seaside リリース
HTMLをSmalltalkに変換する作業
非常に大変
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
トップページのデザインは

mushtache(テンプレート)で対応
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Mustache
{{^isLoggedIn}}
<p>
<a href="{{baseUrl}}signup" class="btn btn-small btn-green">新規会員登録(無料)</a>
<a href="{{baseUrl}}login" class="btn btn-small btn-blue">ログイン</a>
</p>
{{/isLoggedIn}}
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Mustacheのインストール
Gofer it
url: 'http://mc.stfx.eu/Neo';
package: 'Neo-JSON-Core';
load.
Gofer it
smalltalkhubUser: 'NorbertHartl' project:
'Mustache';
configurationOf: 'Mustache';
loadStable.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Mustacheの利用
value := Dictionary new.
value at:'isLoggedIn' put: self session isLoggedIn.
"テンプレートへの適用"
result := (MustacheTemplate on: templateString) value: value.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ローカライズ
日本語 英語
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
そういえば自分ローカライズやってことないや
https://twitter.com/newapplesho/status/573645403356143616
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
NaturalLanguageTranslator
空っぽ!! よくあること
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Gettextを利用
http://smalltalkhub.com/#!/~PharoExtras/Gettext/
ConfigurationOfGettext load.
http://www.gnu.org/software/gettext/gettext
gettextは国際化と地域化に対応するライブラリ構成要素の一つであり、様々な地域の
言語に対応した地域化ソフトウェアを開発する際に用いられる。(Wikipediaより)
Pharoの拡張機能
パッケージのロード
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
SeasideでGettextを使うために
StringクラスにローカルID(ja, en)を指定して
翻訳するためのmethodを用意する
String >> mtranslatedTo:
Hello mtranslatedTo: ja . こんにちは
完成イメージ
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Gettextの利用方法
GetTextExporter exportTemplateIncluding:#mtranslatedTo:.
TextDomainManager
registerCategoryPrefix: 'Mikata-Asia'
domain: 'Mikata'.
設定
テンプレートファイル(potファイル)を出力
#mtranslatedTo: を送ったメッセージもテンプレートに出力される
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Gettextの利用方法
pot
ja.po
en.po en.mo
ja.mo
poエディターなどで翻訳
テンプレート
バイナリファイル
Pharoに読み込む
Pharo
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Gettext Translation Editer
https://poedit.net/
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Gettextの利用方法
GetTextTranslator reset.
バイナリファイルの読み込み
locale/<localID>/LC_MESSAGES/Mikata.mo
バイナリファイルの配置
XX.app/Contents/Resources/locale/ja/LC_MESSAGES/Mikata.mo
例
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Gettextの利用方法
String>> mtranslatedTo: isoString
	 ^ (GetTextTranslator availableForLocaleID: (LocaleID isoString: isoString) )
	 translate: self
	 inDomain: 'Mikata'.
Stringクラスの拡張
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Seasideのセッション管理の設定
app := (WAAdmin register: self asApplicationAt:'app')
	 preferenceAt: #sessionClass put: MASession;
	 yourself.
app preferenceAt: #trackingStrategy put:
WACookieForBrowserIPForCrawlerTrackingStrategy new.
公開タイプで検索機能があるようなサイトの場合は
上記のようにするとよい
botにセッション枯渇をされないようにする
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
サービス開始直前
適用後適用前
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
パーマリンク
https://allstocker.com/app/ja/machinery/dozer/539fffd185674bec813be5228d25d306
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
パーマリンク
• Mikataと違い、オープンなシステムなのでURLは非常に
重要になってくる
• Seasideらしさは失われつつある(むしろ別のがい
い・・・コソ)
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ソースコード管理
• Metacello + FileTreeかつGitを使って管理
• ConfigurationOfMikataA を作りSmalltalk Hubなどから
Allstockerに必要なパッケージをinstall可能にする
• BaselineOfを継承したBaselineOfMikataAと作成し、
ローカルのGitリポジトリからAllstockerのコードを読み
込む
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ソースコード管理
FileTreeのパッケージを順番に読み込む
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ソースコード管理
Smalltalker
Git
Smalltalker
Git
pull request
pull
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
デプロイ
Amazon EC2
Instance
S3
S3(ストレージサービス)からEC2にデプロイ
約1日1回のペースでリリース
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
60各国以上からのアクセス
日本最大の在庫掲載台数
セントビンセント・グレナディーン
https://www.flickr.com/photos/jimg944/113546501/
アジア圧倒的No.1
2015年中に
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Allstocker
• 豊富な品数
• 業界にはなかった充実な機能
• 安心・安全な取引の実現
もっとも重たいものを扱うベンチャー
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
今後やりたいこと
• エッジロケーションの利用
• 全文検索
• ログ解析
• Web Frameworkの見直し
• モバイルアプリ対応
• Angular.jsの導入
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
全文検索について
• RDS(PostgreSQL)は日本語全文検索をサポートしていな
い
• 全文検索を対応するためにElasticSearchを導入予定
GitHubとかに使われているらしいです
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
ログ解析
• 現在fluentd(Nagare)を使ってログは収集しているが、エラー以外
は活用できていない
• Kibanaによりメンバー全員が簡単にユーザーの分析を把握でき
るようにする
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Web Frameworkの見直し
• 継続であるためAP間のセッションの共有化が難しい
• 継続を使いたくても使えないときが多くなってきた
• だいぶ古くなっている(特にCanvas周り)
• 画面周りの自動テストが難しい
軽量かつStateless Web Frameworkが欲しい
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
DBまわりなんとかしたい
• PostgreSQLのドライバーが古すぎる
• O/Rマッピングが苦行(イケていない)
• マイグレーションが大変
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
CI環境の構築
Git
1日の価値提供の回数を増やしたい
Pharo本家でやっているけど
どうやるんでしょうか
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
お知らせ
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
SORABITO Co., Ltd.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/
Smalltalkだよねだよね
Smalltalkerのみなさん助けてください
Allstocker
開発のためのSmalltalker募集
Smalltalker以外のプログラマーも募集しております
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Smalltalkは
学習コストが
低い言語です
他言語のユーザーも歓迎です
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
外国人の方も歓迎です
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
外部で
協力もありです
Smalltalkerをもっと集めたい
Smalltalkerを増やしたい
Always Shooting https://www.flickr.com/photos/alwaysshooting/15315019007/
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
募集職種
• Smalltalker
• プログラマー
• モバイルアプリケーションエンジニア
• デザイナー
• インフラエンジニア
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
こんな方探しています
• 東南アジアの自然言語ができるエンジニア
• UI/UXに詳しい方
• セキュリティ面で知識のある方
• Allstockerのマーティング等をやってみたい方
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
気になる方はメールください
smalltalker@sorabito.com
世界最大の働く機械の
プラットフォームの実現

More Related Content

What's hot

JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returnsdynamis
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化maruyama097
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsGo Sueyoshi (a.k.a sue445)
 
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introductionMasahito Zembutsu
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajoYuji Kubota
 
Ruby way-openstack.keynote
Ruby way-openstack.keynoteRuby way-openstack.keynote
Ruby way-openstack.keynoteUchio Kondo
 
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察Yoshiki Shibukawa
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?Masahito Zembutsu
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsUchio Kondo
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用Takuya Iwatsuka
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Naotoshi Seo
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwMasahito Zembutsu
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたDrecom Co., Ltd.
 
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用PHPでのSWF編集とその応用
PHPでのSWF編集とその応用Yo Ya
 
ピタゴラなんとかスイッチを作って破壊した話
ピタゴラなんとかスイッチを作って破壊した話ピタゴラなんとかスイッチを作って破壊した話
ピタゴラなんとかスイッチを作って破壊した話Satoshi Hirata
 

What's hot (20)

JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajo
 
Ruby way-openstack.keynote
Ruby way-openstack.keynoteRuby way-openstack.keynote
Ruby way-openstack.keynote
 
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
2018/1/30 Django勉強会
2018/1/30 Django勉強会2018/1/30 Django勉強会
2018/1/30 Django勉強会
 
オタク×Node.js勉強会
オタク×Node.js勉強会オタク×Node.js勉強会
オタク×Node.js勉強会
 
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwww
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみた
 
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用PHPでのSWF編集とその応用
PHPでのSWF編集とその応用
 
ピタゴラなんとかスイッチを作って破壊した話
ピタゴラなんとかスイッチを作って破壊した話ピタゴラなんとかスイッチを作って破壊した話
ピタゴラなんとかスイッチを作って破壊した話
 

Viewers also liked

Smalltalkと型について
Smalltalkと型についてSmalltalkと型について
Smalltalkと型についてMasashi Umezawa
 
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)Sho Yoshida
 
今日から使おうSmalltalk
今日から使おうSmalltalk今日から使おうSmalltalk
今日から使おうSmalltalkSho Yoshida
 
フラットなPHPからフレームワークへ
フラットなPHPからフレームワークへフラットなPHPからフレームワークへ
フラットなPHPからフレームワークへMasao Maeda
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftTomohiro Kumagai
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Takami Sato
 
逆説のカスタマーサクセス
逆説のカスタマーサクセス逆説のカスタマーサクセス
逆説のカスタマーサクセスTakaaki Umada
 
Introduction of Pharo 5.0
Introduction of Pharo 5.0Introduction of Pharo 5.0
Introduction of Pharo 5.0Masashi Umezawa
 
ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦Arata Fujimura
 
The use of blogs in teaching and learning literature in FL
The use of blogs in teaching and learning literature in FLThe use of blogs in teaching and learning literature in FL
The use of blogs in teaching and learning literature in FLUniversity of Limerick
 
Mediación escolar e implantación de un plan de mediación en un centro educativo
Mediación escolar e implantación de un plan de mediación en un centro educativoMediación escolar e implantación de un plan de mediación en un centro educativo
Mediación escolar e implantación de un plan de mediación en un centro educativoapegon1
 
Lluvias en el norte 24.03.17
Lluvias en el norte 24.03.17Lluvias en el norte 24.03.17
Lluvias en el norte 24.03.17Manuel Placido
 
kintone Café Akita Vol.1 対面開発
kintone Café Akita Vol.1 対面開発kintone Café Akita Vol.1 対面開発
kintone Café Akita Vol.1 対面開発kintone papers
 
Gender gap in public speaking
Gender gap in public speakingGender gap in public speaking
Gender gap in public speakingShiftbalance
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由@ otsuka752
 
Emergencias oncológicas (Diplomado UniRemington) Parte 4/6
Emergencias oncológicas (Diplomado UniRemington) Parte 4/6Emergencias oncológicas (Diplomado UniRemington) Parte 4/6
Emergencias oncológicas (Diplomado UniRemington) Parte 4/6Mauricio Lema
 
Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6
Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6
Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6Mauricio Lema
 

Viewers also liked (20)

Smalltalkと型について
Smalltalkと型についてSmalltalkと型について
Smalltalkと型について
 
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)
 
今日から使おうSmalltalk
今日から使おうSmalltalk今日から使おうSmalltalk
今日から使おうSmalltalk
 
Smalltalkだめ自慢
Smalltalkだめ自慢Smalltalkだめ自慢
Smalltalkだめ自慢
 
フラットなPHPからフレームワークへ
フラットなPHPからフレームワークへフラットなPHPからフレームワークへ
フラットなPHPからフレームワークへ
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
 
逆説のカスタマーサクセス
逆説のカスタマーサクセス逆説のカスタマーサクセス
逆説のカスタマーサクセス
 
早わかりSmalltalk
早わかりSmalltalk早わかりSmalltalk
早わかりSmalltalk
 
Introduction of Pharo 5.0
Introduction of Pharo 5.0Introduction of Pharo 5.0
Introduction of Pharo 5.0
 
ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦
 
The use of blogs in teaching and learning literature in FL
The use of blogs in teaching and learning literature in FLThe use of blogs in teaching and learning literature in FL
The use of blogs in teaching and learning literature in FL
 
Mediación escolar e implantación de un plan de mediación en un centro educativo
Mediación escolar e implantación de un plan de mediación en un centro educativoMediación escolar e implantación de un plan de mediación en un centro educativo
Mediación escolar e implantación de un plan de mediación en un centro educativo
 
Lluvias en el norte 24.03.17
Lluvias en el norte 24.03.17Lluvias en el norte 24.03.17
Lluvias en el norte 24.03.17
 
kintone Café Akita Vol.1 対面開発
kintone Café Akita Vol.1 対面開発kintone Café Akita Vol.1 対面開発
kintone Café Akita Vol.1 対面開発
 
Gender gap in public speaking
Gender gap in public speakingGender gap in public speaking
Gender gap in public speaking
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
 
Emergencias oncológicas (Diplomado UniRemington) Parte 4/6
Emergencias oncológicas (Diplomado UniRemington) Parte 4/6Emergencias oncológicas (Diplomado UniRemington) Parte 4/6
Emergencias oncológicas (Diplomado UniRemington) Parte 4/6
 
Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6
Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6
Quimioterapia paliativa (Diplomado UniRemington) Parte 5c/6
 

Similar to RUNNING Smalltalk - 実践Smalltalk

Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groongaMroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groongaYahoo!デベロッパーネットワーク
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦Sho Yoshida
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)NTT DATA OSS Professional Services
 
初心者にも丸わかり!Soft layeroverlaynetworkの魅力
初心者にも丸わかり!Soft layeroverlaynetworkの魅力初心者にも丸わかり!Soft layeroverlaynetworkの魅力
初心者にも丸わかり!Soft layeroverlaynetworkの魅力WendyKanaeUeda
 
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介Shinichiro Yoshida
 
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」aitc_jp
 
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIUKengo Okitsu
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
 
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座Shinichiro Yoshida
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)Atsushi Takayasu
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]David Buck
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Hirokazu Egashira
 
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築Tomo-o Kubo
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザインAtsushi Kojima
 
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論鉄次 尾形
 
MT LT 20091209
MT LT 20091209MT LT 20091209
MT LT 20091209Taku AMANO
 
ぼっけもんデザイナーへの道
ぼっけもんデザイナーへの道ぼっけもんデザイナーへの道
ぼっけもんデザイナーへの道Hideki Akiba
 
rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法Takeshi Mikami
 
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotJazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotNobuyuki Matsui
 

Similar to RUNNING Smalltalk - 実践Smalltalk (20)

Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groongaMroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
 
初心者にも丸わかり!Soft layeroverlaynetworkの魅力
初心者にも丸わかり!Soft layeroverlaynetworkの魅力初心者にも丸わかり!Soft layeroverlaynetworkの魅力
初心者にも丸わかり!Soft layeroverlaynetworkの魅力
 
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
 
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
 
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
 
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザイン
 
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論
 
MT LT 20091209
MT LT 20091209MT LT 20091209
MT LT 20091209
 
ぼっけもんデザイナーへの道
ぼっけもんデザイナーへの道ぼっけもんデザイナーへの道
ぼっけもんデザイナーへの道
 
SkyWay HandsOn
SkyWay HandsOnSkyWay HandsOn
SkyWay HandsOn
 
rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法
 
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotJazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & Robot
 

More from Sho Yoshida

OpenRestyを用いてイケイケなサービスを作る方法
OpenRestyを用いてイケイケなサービスを作る方法OpenRestyを用いてイケイケなサービスを作る方法
OpenRestyを用いてイケイケなサービスを作る方法Sho Yoshida
 
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)Sho Yoshida
 
今時なウェブ開発をSmalltalkでやってみる?
今時なウェブ開発をSmalltalkでやってみる?今時なウェブ開発をSmalltalkでやってみる?
今時なウェブ開発をSmalltalkでやってみる?Sho Yoshida
 
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーションContinuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーションSho Yoshida
 
Elasticsearch for Pharo Smalltalk
Elasticsearch for Pharo Smalltalk Elasticsearch for Pharo Smalltalk
Elasticsearch for Pharo Smalltalk Sho Yoshida
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Sho Yoshida
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for SmalltalkSho Yoshida
 
How Smalltalker Works
How Smalltalker WorksHow Smalltalker Works
How Smalltalker WorksSho Yoshida
 
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたらもしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたらSho Yoshida
 
Iliad or Seaside
Iliad or SeasideIliad or Seaside
Iliad or SeasideSho Yoshida
 
Pharo(Smalltalk)でAPI作りをはじめよう
Pharo(Smalltalk)でAPI作りをはじめようPharo(Smalltalk)でAPI作りをはじめよう
Pharo(Smalltalk)でAPI作りをはじめようSho Yoshida
 

More from Sho Yoshida (12)

OpenRestyを用いてイケイケなサービスを作る方法
OpenRestyを用いてイケイケなサービスを作る方法OpenRestyを用いてイケイケなサービスを作る方法
OpenRestyを用いてイケイケなサービスを作る方法
 
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
 
今時なウェブ開発をSmalltalkでやってみる?
今時なウェブ開発をSmalltalkでやってみる?今時なウェブ開発をSmalltalkでやってみる?
今時なウェブ開発をSmalltalkでやってみる?
 
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーションContinuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
 
Elasticsearch for Pharo Smalltalk
Elasticsearch for Pharo Smalltalk Elasticsearch for Pharo Smalltalk
Elasticsearch for Pharo Smalltalk
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
How Smalltalker Works
How Smalltalker WorksHow Smalltalker Works
How Smalltalker Works
 
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたらもしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
 
エコSmalltalk
エコSmalltalkエコSmalltalk
エコSmalltalk
 
Iliad or Seaside
Iliad or SeasideIliad or Seaside
Iliad or Seaside
 
Pharo(Smalltalk)でAPI作りをはじめよう
Pharo(Smalltalk)でAPI作りをはじめようPharo(Smalltalk)でAPI作りをはじめよう
Pharo(Smalltalk)でAPI作りをはじめよう
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

RUNNING Smalltalk - 実践Smalltalk

  • 2. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 知らない方のために RUNNING LEAN アッシュ・マウリャ (著), 渡辺 千賀 (解説) 出版 オライリー・ジャパン
  • 3. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. プロフィール • 吉田 翔(よしだしょう) • 1986年生まれ • Smalltalker twitter: @newapplesho facebook: newapplesho
  • 4.
  • 5. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkの人に なって他の言語が できなくなった Smalltalk大好きって言いすぎたら PHPやるんですね・・・。 Rubyやるんですね・・・。 Javaやるんですね・・・。
  • 7. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkって最高ですね 最近本も出版されている
  • 8. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkって最高ですね http://www.softumeya.com/pyonkee/ja/ アプリだってリリースされている
  • 9. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkって最高ですね https://www.kickstarter.com/projects/1520902870/canadian-smalltalk-competition Smalltalk is a revolutionary language that has the power to transform the future of software development.
  • 10. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalk 活用事例 今日のSmalltalk勉強会
  • 11. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkの活用事例(Pharo) http://pharo.org/success
  • 12. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkの活用事例(VisualWorks) http://smalltalk.cincom.jp/main/successes/
  • 13. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. いっぱいありますね でも・・・
  • 14. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ どこで使われているの?え! ある勉強会の懇親会での出来事
  • 15. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkで クラウドサービス つくるぞ
  • 16. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 建設機械・重機・車両の流通を 支えるプラットフォーム Mikata https://mikatacloud.com 2014年9月一般公開
  • 17. 第68回 Smalltalk勉強会 • 2014年9月に発表 • あれから半年経ちました
  • 18. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. トップページが変わりました
  • 19. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. メディアに掲載されました 2015年01月12日の日経経済新聞 朝刊の新興中小企業欄
  • 20. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ Smalltalkなんだってそうなんだ
  • 21. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ただ誰でも参加できるわけではない 簡単にいうと クローズドな中古売買サービス (建設機械レンタル会社と貿易会社専用) Mikata グループウェアに近いサービス
  • 23. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ALLSTOCKER 世界中の建設機械のオンラインマーケットプレイス 2015年2月末 新しいサービスを始めました https://allstocker.com
  • 24. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 全世界向け クラウドサービス
  • 37. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ALLSTOCKER 世界中の建設機械のオンラインマーケットプレイス 経済産業省 「先端課題対応型ベンチャー事業化支援等事業」に採択
  • 38. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ きっとSmalltalkだよだよね
  • 39. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. コードネーム Mikata Asia
  • 40. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ 1週間で作ってねえ 企画を含めて2週間で作らなければならなかった
  • 41. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. どう作るか • サービスの拡大に合わせてスケールできるクラウドサー バーを利用 • Smalltalkのダイナミックな開発能力を利用する • 機械毎に異なる情報を保存するためNoSQLを活用 • 写真はオリジナルファイルだけを保存 Mikataのノウハウをベースに開発 詳しくは第68回Smalltalk勉強会の資料にて
  • 42. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 利用しているサービス • EC2(仮想サーバー) • ELB(ロードバランサー) • Route53(DNS) • Amazon RDS for PostgreSQL(RDB) • Amazon DynamoDB(NoSQL) • S3(写真,ログ等のストレージ)
  • 43. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Region Availability Zone Availability Zone PostgreSQLPostgreSQL RDS PostgreSQL PostgreSQLPostgreSQL RDS PostgreSQL DynamoDB S3 Amazon EC2 Amazon EC2 Internet Amazon Route 53 Hosted Zone Elastic Load Balancing SSL SSL SSL SSL 構成図
  • 44. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Allstocker を支えるSmalltalk 開発言語 Smalltalk(Pharo 3.0) Web Framework Seaside 3.1 + mushtache RDB Glorp(PostgreSQL) ログ Nagare(Fluentd) NoSQL AWS SDK for Smalltalk
  • 45. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. AWS SDK
  • 46. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. AWS SDK for Smalltalkのインストール Gofer new url:'http://smalltalkhub.com/mc/newapplesho/aws-sdk-smalltalk/main'; package: 'ConfigurationOfAWS'; load. (Smalltalk at: #ConfigurationOfAWS) load. サービスで使えば、メンテナンスもされるはず
  • 47. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Allstocker をCSS Framework SeasideのBoostrapパッケージは使わない Allstocker Mikata 独自のCSS Framework
  • 48. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. その他 • 画像やCSSは外部url参照 • メール送信はUTF8非対応クライアントもあるためRubyに 任せる • メールを送信はSendGridを活用 • 画像アップロードやリサイズはNginxに任せる(Smalltalkで 処理しない)
  • 49. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Seasideのデザイン反映プロセス モック 作成 レビュー Seaside リリース HTMLをSmalltalkに変換する作業 非常に大変
  • 50. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. トップページのデザインは mushtache(テンプレート)で対応
  • 51. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Mustache {{^isLoggedIn}} <p> <a href="{{baseUrl}}signup" class="btn btn-small btn-green">新規会員登録(無料)</a> <a href="{{baseUrl}}login" class="btn btn-small btn-blue">ログイン</a> </p> {{/isLoggedIn}}
  • 52. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Mustacheのインストール Gofer it url: 'http://mc.stfx.eu/Neo'; package: 'Neo-JSON-Core'; load. Gofer it smalltalkhubUser: 'NorbertHartl' project: 'Mustache'; configurationOf: 'Mustache'; loadStable.
  • 53. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Mustacheの利用 value := Dictionary new. value at:'isLoggedIn' put: self session isLoggedIn. "テンプレートへの適用" result := (MustacheTemplate on: templateString) value: value.
  • 54. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ローカライズ 日本語 英語
  • 55. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. そういえば自分ローカライズやってことないや https://twitter.com/newapplesho/status/573645403356143616
  • 56. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. NaturalLanguageTranslator 空っぽ!! よくあること
  • 57. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Gettextを利用 http://smalltalkhub.com/#!/~PharoExtras/Gettext/ ConfigurationOfGettext load. http://www.gnu.org/software/gettext/gettext gettextは国際化と地域化に対応するライブラリ構成要素の一つであり、様々な地域の 言語に対応した地域化ソフトウェアを開発する際に用いられる。(Wikipediaより) Pharoの拡張機能 パッケージのロード
  • 58. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. SeasideでGettextを使うために StringクラスにローカルID(ja, en)を指定して 翻訳するためのmethodを用意する String >> mtranslatedTo: Hello mtranslatedTo: ja . こんにちは 完成イメージ
  • 59. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Gettextの利用方法 GetTextExporter exportTemplateIncluding:#mtranslatedTo:. TextDomainManager registerCategoryPrefix: 'Mikata-Asia' domain: 'Mikata'. 設定 テンプレートファイル(potファイル)を出力 #mtranslatedTo: を送ったメッセージもテンプレートに出力される
  • 60. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Gettextの利用方法 pot ja.po en.po en.mo ja.mo poエディターなどで翻訳 テンプレート バイナリファイル Pharoに読み込む Pharo
  • 61. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Gettext Translation Editer https://poedit.net/
  • 62. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Gettextの利用方法 GetTextTranslator reset. バイナリファイルの読み込み locale/<localID>/LC_MESSAGES/Mikata.mo バイナリファイルの配置 XX.app/Contents/Resources/locale/ja/LC_MESSAGES/Mikata.mo 例
  • 63. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Gettextの利用方法 String>> mtranslatedTo: isoString ^ (GetTextTranslator availableForLocaleID: (LocaleID isoString: isoString) ) translate: self inDomain: 'Mikata'. Stringクラスの拡張
  • 64. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Seasideのセッション管理の設定 app := (WAAdmin register: self asApplicationAt:'app') preferenceAt: #sessionClass put: MASession; yourself. app preferenceAt: #trackingStrategy put: WACookieForBrowserIPForCrawlerTrackingStrategy new. 公開タイプで検索機能があるようなサイトの場合は 上記のようにするとよい botにセッション枯渇をされないようにする
  • 65. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. サービス開始直前 適用後適用前
  • 66. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. パーマリンク https://allstocker.com/app/ja/machinery/dozer/539fffd185674bec813be5228d25d306
  • 67. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. パーマリンク • Mikataと違い、オープンなシステムなのでURLは非常に 重要になってくる • Seasideらしさは失われつつある(むしろ別のがい い・・・コソ)
  • 68. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ソースコード管理 • Metacello + FileTreeかつGitを使って管理 • ConfigurationOfMikataA を作りSmalltalk Hubなどから Allstockerに必要なパッケージをinstall可能にする • BaselineOfを継承したBaselineOfMikataAと作成し、 ローカルのGitリポジトリからAllstockerのコードを読み 込む
  • 69. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ソースコード管理 FileTreeのパッケージを順番に読み込む
  • 70. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ソースコード管理 Smalltalker Git Smalltalker Git pull request pull
  • 71. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. デプロイ Amazon EC2 Instance S3 S3(ストレージサービス)からEC2にデプロイ 約1日1回のペースでリリース
  • 72. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
  • 73. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 60各国以上からのアクセス 日本最大の在庫掲載台数
  • 76. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Allstocker • 豊富な品数 • 業界にはなかった充実な機能 • 安心・安全な取引の実現 もっとも重たいものを扱うベンチャー
  • 77. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 今後やりたいこと • エッジロケーションの利用 • 全文検索 • ログ解析 • Web Frameworkの見直し • モバイルアプリ対応 • Angular.jsの導入
  • 78. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 全文検索について • RDS(PostgreSQL)は日本語全文検索をサポートしていな い • 全文検索を対応するためにElasticSearchを導入予定 GitHubとかに使われているらしいです
  • 79. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. ログ解析 • 現在fluentd(Nagare)を使ってログは収集しているが、エラー以外 は活用できていない • Kibanaによりメンバー全員が簡単にユーザーの分析を把握でき るようにする
  • 80. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Web Frameworkの見直し • 継続であるためAP間のセッションの共有化が難しい • 継続を使いたくても使えないときが多くなってきた • だいぶ古くなっている(特にCanvas周り) • 画面周りの自動テストが難しい 軽量かつStateless Web Frameworkが欲しい
  • 81. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
  • 82. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
  • 83. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. DBまわりなんとかしたい • PostgreSQLのドライバーが古すぎる • O/Rマッピングが苦行(イケていない) • マイグレーションが大変
  • 84. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. CI環境の構築 Git 1日の価値提供の回数を増やしたい Pharo本家でやっているけど どうやるんでしょうか
  • 85. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. お知らせ
  • 86. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. SORABITO Co., Ltd.
  • 87. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ Smalltalkだよねだよね
  • 90. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. Smalltalkは 学習コストが 低い言語です 他言語のユーザーも歓迎です
  • 91. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 外国人の方も歓迎です
  • 92. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 外部で 協力もありです
  • 94. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. 募集職種 • Smalltalker • プログラマー • モバイルアプリケーションエンジニア • デザイナー • インフラエンジニア
  • 95. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved. こんな方探しています • 東南アジアの自然言語ができるエンジニア • UI/UXに詳しい方 • セキュリティ面で知識のある方 • Allstockerのマーティング等をやってみたい方
  • 96. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
  • 97. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.
  • 98. Copyright © 2015 SORABITO Co., Ltd. All Rights Reserved.