рдбреИрд╢рдмреЛрд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
Google Translate рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбреИрд╢рдмреЛрд░реНрдб рдПрдХ рдбреИрд╢рдмреЛрд░реНрдб рд╣реИред рджрд░рдЕрд╕рд▓, рдЙрди рдбреИрд╢рдмреЛрд░реНрдбреНрд╕ рдкрд░, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рдХреЗ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рдкреИрдирд▓ рдкрд░ред рдХреЗрд╡рд▓ рдПрдХ рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╢рд░реНрдд рд╕реНрдЯрд╛рд░реНрдЯ-рдЕрдк рд╣реЛрдЧрд╛, рдФрд░ рдКрдВрдЪрд╛рдИ, рд░реЛрд▓ рдФрд░ рддрд╛рдкрдорд╛рди рдУрд╡рд░рдмреЛрд░реНрдб рдХреЗ рдмрдЬрд╛рдп - рдСрдирд▓рд╛рдЗрди рдЖрдЧрдВрддреБрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реЗрд╡рд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рд░реНрд╡рд░ рд▓реЛрдбред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдбреИрд╢рдмреЛрд░реНрдб рдПрдХ рд╕реНрдХреНрд░реАрди рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдХреБрдЫ рд╕реБрдВрджрд░ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд░рд╛рдлрд╝, рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдЪрд╛рд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВред рдРрд╕реА рд╕реНрдХреНрд░реАрди рдХрдИ рд╢рд╛рдВрдд рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рд▓рдпреЛрдВ рдХреА рджреАрд╡рд╛рд░реЛрдВ рдкрд░ рд▓рдЯрдХреА рд╣реБрдИ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рд╕рдордп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдпреИрдВрдбреЗрдХреНрд╕ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдХрдИ рддрдХрдиреАрдХреА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ, рддрдХрдиреАрдХреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рддреА рд╣реИред рдореИрдВ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрдИ рджрд┐рдиреЛрдВ рд╕реЗ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рд░рд╣рд╛ рдерд╛ - рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд░ рд▓рд┐рдпрд╛ рдерд╛ред
рдбреИрд╢рдмреЛрд░реНрдб рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?
рд╣рдо Shopify рдХреЗ рдмреЙрд▓реНрд╕ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдореБрдХреНрдд рдбреИрд╢рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рдбреИрд╢рдмреЛрд░реНрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред рдПрдореНрдмреЗрдбреЗрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- "рд╣рд╛рде" рд╕реЗ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рдзрд░рдиреЗрд╡рд╛рд▓рд╛, рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ;
- "рдмреНрд░реЗрди", рд╡рд╣ рд╣реИ, рдПрдХ рдкрд╛рд░реНрд╕рд░ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ;
- "рдПрдордлреНрд░реЗрдо" - рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпреЗ рдбреЗрдЯрд╛ рдПрдХ рд╕реБрдВрджрд░ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рд╡рд╣ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХрддреНрд░ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдЗрд╕реЗ рдХрд╣реАрдВ рд╕реЗ рднреА рд▓реЗрдиреЗ рдХрд╛ рдЖрджреА рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд╡рд╣ рд▓реЛрдб, рдкрд┐рдВрдЧ рд╕рдордп, рд╕реЗрд╡рд╛ рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ - рд╡рд┐рд╖рдп рдкрд░ рдирд╡реАрдирддрдо рдкреЛрд╕реНрдЯ, рдЯреНрд╡рд┐рдЯрд░ рдЕрдиреБрдпрд╛рдпрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реЗрдбрд┐рдЯ рд╡рд┐рд╖рдп; рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ - рдореМрд╕рдо, рд╡рд┐рд╢реНрд╡ рд╕рдорд╛рдЪрд╛рд░, рдЬреАрдердм рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪреЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдПрдХрддреНрд░ рдФрд░ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдХреИрд╕реЗред рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдХреЛ рджреЗрдЦреЗрдВ - рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВред
рд╣рд░ рдХреЛрдИ рдЕрд╢реЛрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░
рд╣реЗрд░реЛрдХреВ рдореБрдлреНрдд рдореЗрдВ рдбреИрд╢рд┐рдВрдЧ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рдордВрдЪ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд░реЛрдХреВ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░, рд╕рд╛рдЗрди рдЕрдк рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдкрд░ рдИрдореЗрд▓ рджрд░реНрдЬ рдХрд░реЗрдВ, рдкреНрд░рд╛рдкреНрдд рдкрддреНрд░ рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдПрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣реЛ рдЧрдпрд╛! рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рдЧрд░реНрд╡рд┐рдд рдХреЛрдиреЗ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд┐рд╕ рдкреГрд╖реНрда рдкрд░ рд╣рдордиреЗ рдЦреБрдж рдХреЛ рдкрд╛рдпрд╛, рд╡рд╣ рд╣реЗрд░реЛрдХреВ рдЯреВрд▓рдмреЗрд▓реНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ - рдХреНрд▓рд╛рдЙрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ред рд╣рдо рдЦреБрдж рдЗрд╕рд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдореЗрд░рд╛, рдЙрдмрдВрдЯреВ рдпрд╛ рдбреЗрдмрд┐рдпрди рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ:
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
рдпрджрд┐ Windows рдпрд╛ OS X, рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рд╕реЗ exe рдпрд╛ pkg рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
рджреВрд╕рд░реЗ, рдЕрдЧрд░ рд╣рдо рдЕрдЪрд╛рдирдХ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрдирд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рдЬрд▓реНрджреА рд╕реЗ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣реЗрд░реЛрдХреВ рдирд┐рд░реНрдорд╛рддрд╛ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдЪрд▓реЛ рдордирд╛ рдирд╣реАрдВ рдХрд░рддреЗ - рдЧрд┐рдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
sudo apt-get install git
рдПрдХ рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред
рдбреИрд╢рд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд░реЛрдХреВ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЦреЛрд▓реЗрдВ, рд▓рд┐рдЦреЗрдВ:
heroku login
рдкрдВрдЬреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдИрдореЗрд▓ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдпрд╣рд╛рдВ рджрд░реНрдЬ рдХрд░реЗрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдкрд░ рдЬрд╛рдПрдВред
mkdir dashing cd dashing
рдХреНрд▓реЛрдирд┐рдВрдЧ рдбреИрд╢рд┐рдВрдЧ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА:
git clone https://github.com/Shopify/dashing.git
рдЕрдм рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдПрдХ рдирдИ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╣рдо рдЕрднреА рдЗрд╕рдореЗрдВ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ:
bundle install git init git add . git commit -m "My beautiful dashboard"
Heroku рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди рдмрдирд╛рдПрдБ
heroku apps:create xakepdashboard
рдпрд╣ рдЕрдм
xakepdashboard.herokuapp.com
рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди
heroku
рдпреВрдЯреАрд▓рд┐рдЯреА рдиреЗ рдПрдХ рдЕрд▓рдЧ
heroku
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
heroku
рдмрдирд╛рдИред рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рд╡рд╣рд╛рдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред
git push heroku master
рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж Gemfile.lock рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдХрдВрд╕реЛрд▓ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ, рддреЛ .ignignore рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ
gedit .gitignore
рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рд▓рд╛рдЗрди
./Gemfile.lock
рдЙрд╕рдХреЗ рдмрд╛рдж, рдзрдХреНрдХрд╛ рд╕рдлрд▓ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреАред рдЖрд╣, рд╕реНрдорд╛рд░реНрдЯ рдХрд╛рд░реЛрдВ рдХреА рдпрд╣ рдЦреВрдмрд╕реВрд░рдд рдЙрдореНрд░! рдЬрдм рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ, рддреЛ рдЖрдк рдХреЙрдлреА рдкреА рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдореЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ 20 рдорд┐рдирдЯ рдореЗрдВ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реМрдВрджрд░реНрдп рдФрд░ рджреГрд╢реНрдп рд╕реЗрд╡рд╛ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧреАред
рдкрд╣рд▓рд╛ рдбреИрд╢рдмреЛрд░реНрдб
рдЪреВрдВрдХрд┐ рд░реВрдмреА рдореЗрдВ рдбреИрд╢рд┐рдВрдЧ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛ рдбреИрд╢рдмреЛрд░реНрдб рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЙрдЪрд┐рдд рдордгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд░реВрдмреА 1.9+ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ):
$ gem install dashing
рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:
$ dashing new sweet_dashboard_project
Sweet_dashboard_project рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдЬрд╡рд╛рд╣рд░рд╛рдд рдЧрд┐рд░реЛрд╣ рдкрд░ рдЬрд╛рдПрдВ:
$ bundle
рдЕрдм рдЖрдк рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ dashing start
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддрдм 3030 рд╡реЗрдВ рдкреЛрд░реНрдЯ рдкрд░ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реБрдЖ (рдбреИрд╢рд┐рдВрдЧ рд╕рд┐рдирд╛рддреНрд░рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ: 3030 рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдИ рднреА рдбреИрд╢рдмреЛрд░реНрдб рдбреЗрдореЛ рд╡рд┐рдЧреЗрдЯреНрд╕ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ - рд╕рд╛рде рдореЗрдВ рд╡реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдбреИрд╢рдмреЛрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рдкрд░ рдХрдИ рд╡рд┐рдЬреЗрдЯ рд╣реЛрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдФрд░ рд╕реНрд╡реИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛: рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб) рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдореВрд▓реНрдп рдФрд░ рдЗрд╕рдХреА рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдХрд▓реНрдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рддреАрд╕рд░рд╛ рдПрдХ рдбрд┐рдЬрд┐рдЯрд▓ рдореВрд▓реНрдп рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрдХреЗрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрдкреАрдбреЛрдореАрдЯрд░ рдХреЗ рд╕рдорд╛рди, рдЪреМрдереЗ рдореЗрдВ рдХреБрдЫ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓реЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ рдПрдХ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдЬрд╛рд░реА рд╣реИред
рд╡реИрд╕реЗ, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
curl -d '{ "auth<em>token": "YOUR</em>AUTH_TOKEN", "text": " " }' \http://127.0.0.1:3030/widgets/welcome
рдФрд░ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдкрд╛рда рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдврд╛рдБрдЪрд╛ рдврд╛рдБрдЪрд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рдХреА рд╕рд░рд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛:
- рдПрд╕реЗрдЯреНрд╕ - рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЪрд┐рддреНрд░, рдлрд╝реЙрдиреНрдЯ, js / рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
- рдбреИрд╢рдмреЛрд░реНрдб - рдкреНрд░рддреНрдпреЗрдХ рдбреИрд╢рдмреЛрд░реНрдб рдХреА рдЕрдкрдиреА рдПрд░рдм-рдлрд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕реНрдерд╛рди рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред
- рдиреМрдХрд░рд┐рдпрд╛рдВ - рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛)ред
- рд▓реАрдм - рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдмреА рд╕рд╣рд╛рдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ - рд╕реНрдереИрддрд┐рдХ рдбреИрд╢рдмреЛрд░реНрдб рдлрд╝рд╛рдЗрд▓реЗрдВ (рдЕрдм рдпрд╣рд╛рдБ рдлреЗрд╡рд┐рдХреЙрди рдпрд╛ рдХрд╕реНрдЯрдо 404 рд╡реЗрдВ рдкреГрд╖реНрда рд╣реИрдВ)ред
- рд╡рд┐рдЬреЗрдЯ - рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА HTML / рд╕реАрдПрд╕рдПрд╕ / рдХреЙрдлреА-рдХреЛрдбред
рдиреАрдЪреЗ рдПрдХ рд╕рд░рд▓ рдбреИрд╢рдмреЛрд░реНрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреЛ рд╡рд┐рдЬреЗрдЯ рд╣реИрдВ:
<% content_for(:title) { "Xakep dashboard" } %> <div class="gridster"> <ul> <li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> <div data-id="karma" data-view="Number" data-title="Karma" style="background-color:#96bf48;"></div> </li> <li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> <div data-id="valuation" data-view="Number" data-title="Current Valuation" data-prefix="$"></div> </li> </ul> </div>
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдХреЗ рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ: рдбреЗрдЯрд╛-рдЖрдИрдбреА (рдпрд╣ рд╡рд┐рдЬреЗрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╕рд╛рде рд╣реА рдбреЗрдЯрд╛-рд╡реНрдпреВ (рд╡рд┐рдЬреЗрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛрдиреЛрдВ рд╡рд┐рдЬреЗрдЯ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реИрдВ)ред рдбреЗрдЯрд╛-рдкрдВрдХреНрддрд┐ (рдкрдВрдХреНрддрд┐) рдФрд░ рдбреЗрдЯрд╛-рдХреЙрд▓ (рдХреЙрд▓рдо) рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЧреНрд░рд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдЬреЗрдЯ рд╕реЗ рдбреИрд╢рдмреЛрд░реНрдб рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбреИрд╢рд┐рди рдШрдбрд╝реА, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ, рдЧреНрд░рд╛рдл, iframe, рдЫрд╡рд┐, рд╕реВрдЪреА, рдореАрдЯрд░, рд╕рдВрдЦреНрдпрд╛, рдкрд╛рда рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ) )ред
рдХреЛрдИ рднреА рдЖрдкрдХреЗ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЪрд▓реЛ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣реИ), рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рдирдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдЧреЗ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реИред
рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рд╡рд┐рдЬреЗрдЯ-рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдФрд░ рдЗрд╕реЗ JSON рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред
рд╕рдордпрдмрджреНрдз рдХрд╛рд░реНрдп (рдиреМрдХрд░рд┐рдпрд╛рдВ)
рдбреИрд╢рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╢реЗрдбреНрдпреВрд▓рд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ рдЬреЛ рдЬреЙрдмреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рдЬреЙрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЙрди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреА рдиреМрдХрд░реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, job рдирдореВрдирд╛_job рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
SCHEDULER.every '1m', :first_in => 0 do |job| send_event('karma', { current: rand(1000) }) end
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╣рд░ рдорд┐рдирдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХрд░реНрдо рдХреЗ рдмрд░рд╛рдмрд░ рдбреЗрдЯрд╛-рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд╕рднреА рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдп рднреЗрдЬреЗрдВред рддрджрдиреБрд╕рд╛рд░, send_event рд╡рд┐рдзрд┐ (widget_id, json_formatted_data) рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдпрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдПрдкреАрдЖрдИ (рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛) рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред
рдПрдкреАрдЖрдИ
рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛:
curl -d '{ "auth_token": "YOUR_AUTH_TOKEN", "current": 100 }' http://localhost:3030/widgets/karma
рд╕реБрд░рдХреНрд╖рд╛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ config.ru рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд╛ рдерд╛ рдЬрдм рд╣рдордиреЗ рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдбреИрд╢рд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИред
рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдбреИрд╢рдмреЛрд░реНрдб
рдбреИрд╢рд┐рди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рдмрдирдирд╛ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрдареЛрдВ рдкрд░ github.com/Shopify/dashing/wiki/Additional-Widgets рдФрд░ dashing.challengepost.com рдмрд╣реБрдд рд╕рд╛рд░реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдЬреЗрдЯ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдореИрдВ рддреБрд░рдВрдд рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдбреИрд╢рдмреЛрд░реНрдб рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореИрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛? рдпрд╣ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ (рдпрд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдЕрдВрдд рддрдХ, рдЕрдЧрд░ рдПрдЬрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рддрдХ рдЧрд┐рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдЗрдЯ рдкрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рд╣рдо Google Analytics рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗрдВрдЧреЗ)ред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЛрдб рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдордп рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕рд╛рдЗрдЯ рдкрд░ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреА рд▓рд╣рд░ рдХреЗ рддрд╣рдд рдЕрдЪрд╛рдирдХ рдЧрд┐рд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрд╛рдп рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдбреАрдбреАрдУрдПрд╕ рд╣рдорд▓реЗред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ: рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрд╛:
- рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╡рд┐рдЬреЗрдЯ ред
- рдЖрдЧрдВрддреБрдХреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ред Google Analytics рд╡рд┐рдЬреЗрдЯред
- рд╕рд░реНрд╡рд░ рд▓реЛрдбред рд╡рд┐рдЬреЗрдЯ рд▓реЛрдб рдХрд░реЗрдВ ред
- рдЯреНрд░реИрдлрд┐рдХ рд▓рд╛рдЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд┐рддрд┐ред рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рд╕реНрдЯреЗрдЯрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ ред
- рдЯреНрд╡рд┐рдЯрд░ред рдЯреНрд╡рд┐рдЯрд░ рдЦреЛрдЬ рд╡рд┐рдЬреЗрдЯред
рдЯреАрд╡реА рдкрд░ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ?
рдмреЗрд╢рдХ, рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдХ рдбреИрд╢рдмреЛрд░реНрдб рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ (рдЖрдк рдЗрд╕реЗ рдПрдХ рд╢реБрд░реБрдЖрдд рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕рднреА рд╕реМрдВрджрд░реНрдп рдХреА рдЫрд╡рд┐ рдЯреАрд╡реА рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдзреБрдирд┐рдХ рдЯреАрд╡реА рдкрд░ рднреА рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред
рдореЗрд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЯреАрд╡реА рдХреЗ рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ рдЕрдм рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рд╣реИ) рдФрд░ рдПрдЪрдбреАрдПрдордЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рд╣реЛ рд╕рдХрддреА рд╣реИ: рдпрджрд┐ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд░ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпреВрдПрд╕рдмреА рд╡рд╛рдИ-рдлрд╛рдИ рдореЙрдбреНрдпреВрд▓ ( рдпрд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбреИрд╢рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рд╡рд┐рдХрд░рд╛рд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреНрд░реЛрдорд┐рдпрдо - рд╣реЗрдХреНрд╕рд╛рд╣ рдХреЗ рдХреНрд░реЛрдо рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЫрд╡рд┐ рддрд╛рдЬрд╝рд╛ рджрд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ ред
рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВрдВред рд╢реНрд░рдо рд▓рд╛рдЧрдд - рдПрдХ рджрд┐рдиред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓рдЧрднрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рдЖрд╡рд╢реНрдпрдХ рд▓реЛрд╣рд╛ - рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкреА, рдПрдХ рдЯреБрдХрдбрд╝рд╛ред рдкрд░рд┐рдгрд╛рдо рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдбреИрд╢рдмреЛрд░реНрдб рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рдЕрдм рд╕реБрдзрд╛рд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдмреНрдпреВрдЯреА!
рджрдмрдВрдЧрдИ рдирд╣реАрдВ рдЪрд▓реАред рдФрд░ рдХреНрдпрд╛?
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдбреИрд╢рд┐рдВрдЧ рдврд╛рдБрдЪрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реБрдЖред рдЧрд┐рдЯрд╣рдм рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдиреЗ рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдШрдЯрдирд╛рдХреНрд░рдо рджрд┐рдП рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЯреАрдо рдбреИрд╢рдмреЛрд░реНрдб ред рдбреИрд╢рдмреЛрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд░реВрдкрд░реЗрдЦрд╛ рдбреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рддрд░реНрдХ рдХрд░ рд╕рдХрддреА рд╣реИред рдЯреАрдо рдбреИрд╢рдмреЛрд░реНрдб рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рддреЛ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдПрд░рдмрд┐рдЯ, рдиреНрдпреВ рд░рд┐рд▓реЗрдХ, рдкреАрдПрд╕рдбреАрдЖрдИ, рд╕реАрдЖрдИ (рдХрдВрдЯреАрдиреНрдпреВрдЕрд╕ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди) рдЬреЗрдирдХрд┐рдВрд╕, рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВред рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ (рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдФрд░ рдЧрдВрдЧрд╛рд▓рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдбрд┐рдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
- Grafana ред рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдореГрджреНрдз рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреИрдирд▓ (рдФрд░ рдПрдХ рдЧреНрд░рд╛рдл рд╕рдВрдкрд╛рджрдХ рднреА)ред рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдВрджрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХреАред
- рд▓рд┐рдирдХреНрд╕ рдбреИрд╢ PHP рдореЗрдВ рд▓рд┐рдЦреЗ рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рдХреА рд░рд┐рдореЛрдЯ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд░рд▓ рд╡реЗрдм рдбреИрд╢рдмреЛрд░реНрдбред рдпрд╣ рдЕрдкрдЯрд╛рдЗрдо, рд░реИрдо рд▓реЛрдбрд┐рдВрдЧ, рдлреНрд░реА рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕, рдХрдиреЗрдХреНрдЯреЗрдб рдпреВрдЬрд░реНрд╕, рдЗрдВрд╕реНрдЯреЙрд▓реНрдб рд╕реЙрдлреНрдЯрд╡реЗрдпрд░, рд░рдирд┐рдВрдЧ рдкреНрд░реЙрд╕реЗрд╕ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
- рд░рд┐рдкреЛрд░реНрдЯ рджреИрдирд┐рдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреИрд╢рдмреЛрд░реНрдб: рд░рдирдХреАрдкрд░ рдХреА рдЦреЗрд▓ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рдЧрд┐рдЯрд╣рдм рдкрд░ рдХрдорд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рддрдХред
- рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреИрд╢рдмреЛрд░реНрдб рдФрд░ рдПрдкреАрдЖрдИ ред рдПрдХ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреИрд╢рдмреЛрд░реНрдб, рдЬрд┐рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИред
- sDashboard ред рдбреИрд╢рдмреЛрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ jQuery рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдкрд╛рдиреА рдХрд╛ рдЫреАрдВрдЯрд╛ ред Node.js. рдкрд░ рдПрд╢рд┐рдпрд╛рдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдкреВрд░реНрдг рдбреИрд╢рдмреЛрд░реНрдб рдврд╛рдВрдЪрд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣реИрдХрд░ рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ 04/2014 рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рддред
рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд░реЗрдВ
рд╣реИрдХрд░ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ
- рдХрд╛рдЧрдЬ рд╕рдВрд╕реНрдХрд░рдг
- IOS / iPad рдкрд░ рд╣реИрдХрд░
- рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╣реИрдХрд░