SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Middleman Guides
& How to Learn
Tokyo Middleman Meetup #1
2013/11/22 @株式会社ジェニュインブルー
自己紹介
• てらじまゆうや / yterajima	

• フリーのプログラマ

(PHP, Ruby, JavaScript, C# etc)	


• 群馬県東吾妻町 在住 (元 三鷹市民)	

• guRuby, Gunma.web, agatsuma.survive
Middlemanと私
• Middleman Guides 日本語版	

• gems (RubyGems or On Github)	

• middleman-slim	

• middleman-pure	

• middleman-assets	

• [wip] middleman-bowest
利用シーン
• CSS, JS ライブラリのテスト	

• モック, プロトタイプの開発時	

• プロジェクト用ドキュメント	

• 静的サイト
話すこと
• 日本語版公開までの道のり	

• Middleman Guides を理解する	

• 知られざる機能を知る
日本語版公開までの
道のり
2011年秋
群馬にUターン
地方の案件といえば
• 予算が少ない	

• クライアントにITに強い人が少ない	

• 「安くできるんでしょ?」
安くできる

んでしょ?
作業量を減らす

•

HTMLをやめる


→ Slim
HTML
Slim
Slim (with iterator)
Slim (with iterator 2)
日本語README.md
https://github.com/yterajima/slim
作業量を減らす

•

CSSをやめる


→ Sass
CSS
Sass
+
Indent Style Markup
さて, ここで困った
毎回コマンド
$ slimrb -p target.slim > result.html
$ sass --watch sass:css
Slim + Sass で
最後にHTMLが刈り取
れるものが欲しい
公開からの

Milestone
日本語版ガイドを作る
都会の人たちが使い始める
イマココ!!

みんな使い始める
群馬でも使い始める
私の仕事が楽になる
Middleman Guides 	

を理解する
Middleman Guides 日本語版
http://middlemanjp.github.io/
Middlemanを3行で
• テンプレートコンパイラ
• Preview Server	

• Static Site Build	

• パーツ共有機能 (Layout, Partial)	

• その他便利機能 


(Asset Pipeline, Local Data, Frontmatter,

Helper, Directory Index etc)
Middleman Guides の特徴
• すべての項目を説明してはいない	

• 1/2 読めば問題なく使える	

• 日本語版は 2週間毎にUpdate	

• 記述がないことをするのは大変
必読
混乱しそうなもの
Middleman を始める前に
• テンプレートエンジン

• Haml, Jade, Slim, Markdown etc	

• Sass, Less etc	

• Syntax 対応のエディタ採用	


• YAML
• Bundler, Git (できれば)
テンプレートエンジン
Haml

http://fukuyama.co/haml2
Jade
Slim
Sass (+ Compass)
エディタ
• Vim	

• emacs	

• Sublime Text2	

• その他 Syntax 対応が充実したもの
YAML
Rubyist Magazine	

プログラマーのための YAML 入門 (初級編) 	

http://magazine.rubyist.net/?0009-YAML
Bundler
• Ruby の gem (ライブラリ) 管理ツール	

• プロジェクトごとに必要なライブラ
リを管理できる	


• $ bundle install --path vendor/bundle	

• $ bundle exec middleman server
Git (& Github)
• バージョン管理ツール	

• そろそろ使えて当たり前感	

• 複数人のプロジェクトでは必須
+ Middleman Guides
知られざる機能を知る
middleman-*
• 機能別に分割されている	

• middleman (依存関係定義)	

• middleman-core (基本機能)	

• middleman-livereload (livereload)	

• middleman-sprockets (Asset Pipeline)
基本設定
• middleman-core の中を探す	

• $ grep -r define_setting *

※ application.rb 内のdefine_setting 一覧
assets 用 gemを作る
• middleman-sprockets に Asset Pipeline
に関する処理がある	


• gem の中の特定のディレクトリを読
み込む	


• https://github.com/yterajima/middlemanassets

bower 連携
• config.rb で :bower_dir オプションを設定	

• Middlemanの中でbowerを使う ~>3.1.4 

http://www.e2esound.com/wp/2013/08/09/
bower_in_middleman_project_3-1-4/
CHANGELOG.md
feature を読む
• 自然言語で書かれたテスト
気をつけること
• 実現している/したい機能は 

Middleman 自体の機能なのか	


• ex. middleman-syntax 	

• ex. middleman-autoprefixer
Middleman は
• モダンな web 開発の	

• あらゆるショートカットや	

• ツールを採用した	

• 静的サイトジェネレータです。	

• ※機能追加可能
おわりに
おさらい
• 日本語版公開までの道のり	

• Middleman Guides を理解する	

• 知られざる機能を知る
帰ったらやること
目を通す
$ gem install middleman
$ middleman init PROJECT

Contenu connexe

Tendances

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
 
How about travel while working?
How about travel while working?How about travel while working?
How about travel while working?Nozomi Kosho
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1Satomi Tsujita
 
PHPer のための Ruby 教室
PHPer のための Ruby 教室PHPer のための Ruby 教室
PHPer のための Ruby 教室higaki
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことHirata Tomoko
 
初めての公開Gem作り
初めての公開Gem作り初めての公開Gem作り
初めての公開Gem作りTomoe Sawai
 
神奈川Ruby会議の会場係 だけが知る密かな危機の話
神奈川Ruby会議の会場係だけが知る密かな危機の話神奈川Ruby会議の会場係だけが知る密かな危機の話
神奈川Ruby会議の会場係 だけが知る密かな危機の話Naoki Nagazumi
 
Sinatraの紹介
Sinatraの紹介Sinatraの紹介
Sinatraの紹介longkey1
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方Satomi Tsujita
 
言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたことTaku Miyakawa
 
Cogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot Framework
Cogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot FrameworkCogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot Framework
Cogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot FrameworkAyako Omori
 
コルーチンの実装について
コルーチンの実装についてコルーチンの実装について
コルーチンの実装についてTaku Miyakawa
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話Naoto Koshikawa
 
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象Tatsuya Tobioka
 
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて善弘 植木
 

Tendances (20)

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
 
Walking front end
Walking front endWalking front end
Walking front end
 
How about travel while working?
How about travel while working?How about travel while working?
How about travel while working?
 
2016 02-09-co-edo lt
2016 02-09-co-edo lt2016 02-09-co-edo lt
2016 02-09-co-edo lt
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1
 
2015 07-04-ruby rails
2015 07-04-ruby rails2015 07-04-ruby rails
2015 07-04-ruby rails
 
2015 12-19-ruby rails
2015 12-19-ruby rails2015 12-19-ruby rails
2015 12-19-ruby rails
 
PHPer のための Ruby 教室
PHPer のための Ruby 教室PHPer のための Ruby 教室
PHPer のための Ruby 教室
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 
時代はMiddleman
 時代はMiddleman 時代はMiddleman
時代はMiddleman
 
初めての公開Gem作り
初めての公開Gem作り初めての公開Gem作り
初めての公開Gem作り
 
神奈川Ruby会議の会場係 だけが知る密かな危機の話
神奈川Ruby会議の会場係だけが知る密かな危機の話神奈川Ruby会議の会場係だけが知る密かな危機の話
神奈川Ruby会議の会場係 だけが知る密かな危機の話
 
Sinatraの紹介
Sinatraの紹介Sinatraの紹介
Sinatraの紹介
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
 
言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと
 
Cogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot Framework
Cogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot FrameworkCogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot Framework
Cogbot 勉強会 #7: ウチのショム ~ BSC Bot powered by Bot Framework
 
コルーチンの実装について
コルーチンの実装についてコルーチンの実装について
コルーチンの実装について
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象
 
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて
 

En vedette

Drawing project 2 july 2015
Drawing project 2 july 2015Drawing project 2 july 2015
Drawing project 2 july 2015Ong Ke Qi
 
Repeater in the CDMA network
Repeater in the CDMA networkRepeater in the CDMA network
Repeater in the CDMA networkJoseph Shapira
 
Questionnaire results
Questionnaire resultsQuestionnaire results
Questionnaire resultsAshley Riley
 
Placabase natalia
Placabase nataliaPlacabase natalia
Placabase nataliaNataliaMdeL
 
Презентация для Дилеров
Презентация для ДилеровПрезентация для Дилеров
Презентация для Дилеровmrdoors
 
Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato
Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato
Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato luzyde
 
Presentacion google calendar
Presentacion google calendarPresentacion google calendar
Presentacion google calendarrubenyguillermo
 
Disco duro yus
Disco duro yusDisco duro yus
Disco duro yusalvaroy98
 
Resume_Finance
Resume_FinanceResume_Finance
Resume_FinanceMei Yee Ng
 
Smact medioflor-tendances-couleurs prnt2014
Smact medioflor-tendances-couleurs prnt2014Smact medioflor-tendances-couleurs prnt2014
Smact medioflor-tendances-couleurs prnt2014Brand Wagenaar
 
Tar sessio 7
Tar  sessio 7Tar  sessio 7
Tar sessio 7mtinoco1
 
Unitat 2 pràctica_1(yovan_campos)
Unitat 2 pràctica_1(yovan_campos)Unitat 2 pràctica_1(yovan_campos)
Unitat 2 pràctica_1(yovan_campos)ericbalmes
 
Babysitting your orm essenmacher, adam
Babysitting your orm   essenmacher, adamBabysitting your orm   essenmacher, adam
Babysitting your orm essenmacher, adamAdam Essenmacher
 

En vedette (18)

Drawing project 2 july 2015
Drawing project 2 july 2015Drawing project 2 july 2015
Drawing project 2 july 2015
 
Never forsaken
Never forsakenNever forsaken
Never forsaken
 
Repeater in the CDMA network
Repeater in the CDMA networkRepeater in the CDMA network
Repeater in the CDMA network
 
ola k ase
ola k aseola k ase
ola k ase
 
Questionnaire results
Questionnaire resultsQuestionnaire results
Questionnaire results
 
Placabase natalia
Placabase nataliaPlacabase natalia
Placabase natalia
 
Презентация для Дилеров
Презентация для ДилеровПрезентация для Дилеров
Презентация для Дилеров
 
Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato
Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato
Einfach Nachrüsten mit Zenecs Navi Z-E3715 für Fiat Ducato
 
Presentacion google calendar
Presentacion google calendarPresentacion google calendar
Presentacion google calendar
 
Disco duro yus
Disco duro yusDisco duro yus
Disco duro yus
 
Resume_Finance
Resume_FinanceResume_Finance
Resume_Finance
 
Smact medioflor-tendances-couleurs prnt2014
Smact medioflor-tendances-couleurs prnt2014Smact medioflor-tendances-couleurs prnt2014
Smact medioflor-tendances-couleurs prnt2014
 
Tar sessio 7
Tar  sessio 7Tar  sessio 7
Tar sessio 7
 
Evaluación Primer Parcial
Evaluación Primer ParcialEvaluación Primer Parcial
Evaluación Primer Parcial
 
Unitat 2 pràctica_1(yovan_campos)
Unitat 2 pràctica_1(yovan_campos)Unitat 2 pràctica_1(yovan_campos)
Unitat 2 pràctica_1(yovan_campos)
 
Babysitting your orm essenmacher, adam
Babysitting your orm   essenmacher, adamBabysitting your orm   essenmacher, adam
Babysitting your orm essenmacher, adam
 
Tecno
TecnoTecno
Tecno
 
Boletin navidad 013
Boletin navidad 013Boletin navidad 013
Boletin navidad 013
 

Similaire à Middleman Guides & How to Learn

ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementationビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic ImplementationTadayoshi Sato
 
Hiroshima Ruby Conference発表資料
Hiroshima Ruby Conference発表資料Hiroshima Ruby Conference発表資料
Hiroshima Ruby Conference発表資料Kakigi Katuyuki
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBasekyon mm
 
mrubyで作るマイコンボード
mrubyで作るマイコンボードmrubyで作るマイコンボード
mrubyで作るマイコンボードkishima7
 
"はやく" 開発するための開発速度のあげかた
"はやく" 開発するための開発速度のあげかた"はやく" 開発するための開発速度のあげかた
"はやく" 開発するための開発速度のあげかたTakuto Kitabayashi
 
Koi::Bana〜恋に落ちたエンジニア〜
Koi::Bana〜恋に落ちたエンジニア〜Koi::Bana〜恋に落ちたエンジニア〜
Koi::Bana〜恋に落ちたエンジニア〜Munenori Sugimura
 
プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会nemumu
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05yamanekko
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係sady_nitro
 
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decmrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decYoshito Tanaka
 
Aiming における scrum 20130118
Aiming における scrum 20130118Aiming における scrum 20130118
Aiming における scrum 20130118俊仁 小林
 
jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」
jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」
jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」Taku Yajima
 
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevioクラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdeviosmokey monkey
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08孝文 田村
 
What's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App PlatformWhat's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App Platform惠 紀野
 
How Would You Like Component Management System
How Would You Like Component Management SystemHow Would You Like Component Management System
How Would You Like Component Management SystemHidetaka Okamoto
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘いRyo RKTM
 

Similaire à Middleman Guides & How to Learn (20)

Yapc2012ltthon
Yapc2012ltthonYapc2012ltthon
Yapc2012ltthon
 
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementationビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
 
Hiroshima Ruby Conference発表資料
Hiroshima Ruby Conference発表資料Hiroshima Ruby Conference発表資料
Hiroshima Ruby Conference発表資料
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 
mrubyで作るマイコンボード
mrubyで作るマイコンボードmrubyで作るマイコンボード
mrubyで作るマイコンボード
 
"はやく" 開発するための開発速度のあげかた
"はやく" 開発するための開発速度のあげかた"はやく" 開発するための開発速度のあげかた
"はやく" 開発するための開発速度のあげかた
 
Koi::Bana〜恋に落ちたエンジニア〜
Koi::Bana〜恋に落ちたエンジニア〜Koi::Bana〜恋に落ちたエンジニア〜
Koi::Bana〜恋に落ちたエンジニア〜
 
プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decmrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
 
Aiming における scrum 20130118
Aiming における scrum 20130118Aiming における scrum 20130118
Aiming における scrum 20130118
 
jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」
jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」
jus研究会名古屋大会「Redmineでプロジェクトを【見える化】しよう!」
 
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevioクラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08
 
Mrubyの始め方
Mrubyの始め方Mrubyの始め方
Mrubyの始め方
 
What's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App PlatformWhat's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App Platform
 
Hiroshima.rb on github
Hiroshima.rb on githubHiroshima.rb on github
Hiroshima.rb on github
 
How Would You Like Component Management System
How Would You Like Component Management SystemHow Would You Like Component Management System
How Would You Like Component Management System
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い
 

Plus de Yuya Matsushima

モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方Yuya Matsushima
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
 
Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張Yuya Matsushima
 
Codeigniterでhello world!!
Codeigniterでhello world!!Codeigniterでhello world!!
Codeigniterでhello world!!Yuya Matsushima
 

Plus de Yuya Matsushima (7)

tansuの紹介
tansuの紹介tansuの紹介
tansuの紹介
 
Niigatarb#3
Niigatarb#3Niigatarb#3
Niigatarb#3
 
群馬県民
群馬県民群馬県民
群馬県民
 
モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張
 
Codeigniterでhello world!!
Codeigniterでhello world!!Codeigniterでhello world!!
Codeigniterでhello world!!
 

Middleman Guides & How to Learn