SlideShare a Scribd company logo
1 of 47
Download to read offline
Ruby in office time
reboot
後藤 謙太郎, Goto Kentaro
@gotoken
syngram.co.jp
Acknowledgements
• All you RubyKaigi participants
• All RubyKaigi staffs
• All RubyKaigi sponsors
• All Ruby committers
• Matz
• And all my colleagues at work in Syngram
Apologies
• Too late preparation for this presentation
• English interpreter has not been given enough time
• The responsibility lies with the presenter, that is me
Excuse
• Non edge technologies only
• Please move to the next room if you’d like to get high-tech talk
• Maybe old topics
Agenda
Today’s topics
• Introducing this series
• Case studies
• Summary
Introducing this series
Scope of this session
• Engineers having several roles in small company or team
• Cases of useful Ruby and products
• Commoditized techs, not edge
Past talks
• 2006 manage job with Kagemai BTS, share with Hiki, RWiki
• 2007 One liner helps us
• 2008 customize BTS view, scraping and feeding intra site
Past slides available
• https://www.slideshare.net/gotoken
Introducing our team
• Products
• Good look and much usable web GUIs and sites
• Effective company communication. Printing matters and SI
• Professional GUI prototyping for data scientists
Our team
• Members
• Designers: use Adobe CC and prototyping tools InVision etc.
• Front-end engineers: Markup, Stylesheet and JavaScript
• Back-end engineers: Programming, networking and all tech matters
• No proper sales person
Principle: Merit of a team
• Diversity
• I can’t create beautiful looks
• But our team provide them
• Redundancy
• I can’t do all administration
• But our team achieve them
Pleasures
• Working with designers is fun.
• They have flexible thinking ways
• Creating process is interesting
• I can be a coauthor of beautiful products
• Kaizen (Improvements)
• A little bit of programming sometimes makes work much efficient
• Small tools are often helpful
Small team difficulties
• IT solutions often needs admin’s help
• We are small team
• Engineers cannot be dedicated to proper intranet matters
Case studies
Case 1: Redmine applied to everything
Redmine
• Helped me very much. Thank you developers!
• In this 10 years Redmine has been much sophisticated
• Non-engineer uses are also comfortable
Basic concepts of issue tracker
Project
VersionVersionVersionVersion
Issue
Issue
IssueIssue
Issue
Roadmap
Issue, Roadmap, Project
• Issue
• Will be closed eventually
• Roadmap
• A sub-goal of project in many cases
• Collection of ticket is also useful. e.g., defining a business period
• Project
• Defines development of a project
• Never ending project fits to business operation.
Projects, ending and never ending
• Projects with goal
• Usual projects have the end, will be closed anyway
• Projects without goal
• Collections of issues which have similar scope and lifecycle
• Good alternative of Excel sheet and folder forest
Succeeding endless project example
• Name: Borrowed
• Purpose: Track lifecycle of borrowed items and its IOU
• Attach photos of all items and all steps of package opening
• We can package correctly again
• Periodical not-lost checking is easy
• Cross project reference is easy too
Succeeding endless project example
• Name: Inquiries
• Purpose: Track biz flow as an issue from offering to billing
• Each version stands for ship-out month
• Versions are closed annually
• Orders can be listed by month
Deploying Redmine
lxc
Ansible
Playbook
Private fork
customized
On-premise
Repository
On-premise
origin
repo
provisioning
Thanks to Hiraku Kuroda, Syngram system administrator The service
Useful plugin pick up
• Attach image from clipboard
http://www.redmine.org/plugins/clipboard_image_paste
• Author: Richard Pecl
• Enables attach image by paste and crop image
• Screen shot of bugs helps understanding immediately the problem
• Paste images also from power point figures or excel rectangle region
Case 2: Every member has own projects
Problem
All servers are on local site, not cloud
projects
repos
Update ticket by cron
Web designers
Many members
cannot create repo
Problem: Repositories and Redmine
• Creating SVN repository needs admin operation
`svnadmin create reponame`
• Creating Git shared repositories needs complex operations
from command line
• We want every team member to be able to prepare Redmine
project.
Before GitLab
• We have used large one subversion repository
• Each our product was a sub-directory in the repo
• Team members can add sub-directory via TortoiseSVN
• But that has many problems
• Commit often affects topology widely. Merging is almost impossible
• Too large repo: backup copy or exporting repository is hell
• Importing to Redmine took very long time and time-outed
Deploying GitLab
lxc
On-premise
install
package
Ansible
Playbook
provisioning
Thanks to Hiraku again The service
Problem (repeated)
projects
repos
Update ticket by cron
Web designers
Many members
cannot create repo
All servers are on local site, not cloud
Every member can
setup a project.
Role in each projects is variable
Redmine and GitLab CE gives us
projects
repos
Update ticket by git push
Web designers
Every member can
setup a repository
All servers are on local site, not cloud
Redmine and GitLab CE gives us
• Every team member can create new repository
• Commit or push updates ticket via github hook plugin:
https://github.com/koppen/redmine_github_hook
• Git cultures: issue branch, easy merge
• Web hooks also available: e.g. Slack
• These all features can be configured on web interface
• No .git/hooks scripts needed
• Redmine requires git bare repository on local filesystem
• We want separate GitLab lxc and Redmine lxc
• Solution: bind mount - exposing host directory to containers
Referring GitLab from Redmine
On-premise
lxcreposlxc
bind mount bind mount
Thanks to Hiraku again
readable
Case 3: Customers like xlsx
Axlsx: Office Open XML Spreadsheet Generation
Situation
• Renewal a static web site. hundreds pages.
• Analyze them to obtain link structure, template variations…
• Then you got a table like this
No. Path Title Tmpl Depth Lv2 Lv2 Lv4 Lv5
1 index.html The Ruby Corporaton top.dwt 1
2 about/index.html Corporation overview common.dwt 2 About us
3 about/mission.html Our missions common.dwt 3 About us
4 about/ir.html Investor Relations common.dwt 3 Abuut us
5 about/history.html Corporation history common.dwt 3 About us
6 about/access.html Access common.dwt 2
7 about/privacy.html Privacy Policy common.dwt 2
8 product/index.html Product product.dwt 2 Product
When you send this table to your client
• If you want add column value filter, column value sorter
• You may choose MS Excel
• Save as a CSV or TSV, read with Excel, Edit and then save as xlsx
• You may also make it more pretty, e.g., coloring, font text styling,
appending summary sheet
• But if the source data will be updated many times
• For example, data was incomplete at first
• Another case, you have to add a column for progress of the process
• Updating manually is boredom and hard to avoid mistakes
Axls is xlsx document generator
• Chart generation
• Styling
• Auto and Manually data type
• Image attachment
• Hyperlinks
• Auto filtering
• Printing related features: header, footer, page break
Case 4: I want provide a script to designer
Well-known one line http server
ruby -run -e httpd
• Serves current directory on http://localhost:8080
• It is too simple to provide something more than file browser
• However there are some command line options
• Try
ruby -run -e httpd -- --help
httpd options
% ruby -run -e httpd -- --help
Run WEBrick HTTP server.
ruby -run -e httpd -- [OPTION] DocumentRoot
--bind-address=ADDR address to bind
--port=NUM listening port number
--max-clients=MAX max number of simultaneous clients
--temp-dir=DIR temporary directory
--do-not-reverse-lookup disable reverse lookup
--request-timeout=SECOND request timeout in seconds
--http-version=VERSION HTTP version
-v verbose
To provide something more complex
• Typically, file processing script on a server
• For example, web site checking with eyes
repository
Working
copy
Screenshot
viewer.html
update
git pull node shot.js
Want to provide a CGI kicking here
<img src>
Sinatra is fit to such simple task
Considerations
Summary
• Applying Redmine to everything
• Admin-free project setup with Redmine + GitLab
• Axlsx helps communication with client
• Sinatra is good simple DSL
By the way, what is fun of Ruby?
Recently, I feel
• Closing thinking and writing
• e.g., right substitution
• Simple closure syntax
• But why we don’t use JavaScript promise-like interface?
Thank you!

More Related Content

What's hot

How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the worldHiroshi SHIBATA
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled BundlerHiroshi SHIBATA
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mrubyHiroshi SHIBATA
 
tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02Hiroshi SHIBATA
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyHiroshi SHIBATA
 
OSS Security the hard way
OSS Security the hard wayOSS Security the hard way
OSS Security the hard wayHiroshi SHIBATA
 
Rake: Not Your Father's Build Tool
Rake: Not Your Father's Build ToolRake: Not Your Father's Build Tool
Rake: Not Your Father's Build Toolfilmprog
 
Ruby Security the Hard Way
Ruby Security the Hard WayRuby Security the Hard Way
Ruby Security the Hard WayHiroshi SHIBATA
 
Jslab rssh: JS as language platform
Jslab rssh:  JS as language platformJslab rssh:  JS as language platform
Jslab rssh: JS as language platformRuslan Shevchenko
 
The Future of library dependency management of Ruby
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of RubyHiroshi SHIBATA
 
Ruby, the language of devops
Ruby, the language of devopsRuby, the language of devops
Ruby, the language of devopsRob Kinyon
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Hiroshi SHIBATA
 
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common LispLisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common Lispmasayukitakagi
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?Barry Jones
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails PresentationJoost Hietbrink
 
The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for RubyHiroshi SHIBATA
 

What's hot (20)

How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 
About Clack
About ClackAbout Clack
About Clack
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
 
tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
 
OSS Security the hard way
OSS Security the hard wayOSS Security the hard way
OSS Security the hard way
 
Rake: Not Your Father's Build Tool
Rake: Not Your Father's Build ToolRake: Not Your Father's Build Tool
Rake: Not Your Father's Build Tool
 
Ruby Security the Hard Way
Ruby Security the Hard WayRuby Security the Hard Way
Ruby Security the Hard Way
 
What's new in RubyGems3
What's new in RubyGems3What's new in RubyGems3
What's new in RubyGems3
 
Jslab rssh: JS as language platform
Jslab rssh:  JS as language platformJslab rssh:  JS as language platform
Jslab rssh: JS as language platform
 
The Future of library dependency management of Ruby
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of Ruby
 
Ruby, the language of devops
Ruby, the language of devopsRuby, the language of devops
Ruby, the language of devops
 
IDLs
IDLsIDLs
IDLs
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common LispLisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
From 'Legacy' to 'Edge'
From 'Legacy' to 'Edge'From 'Legacy' to 'Edge'
From 'Legacy' to 'Edge'
 
The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
 

Similar to Ruby in office time reboot

Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for DocumentationAnne Gentle
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012Jan Jongboom
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworksKirk Madera
 
Stop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentStop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentkaspergarnaes
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 
Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10
Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10
Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10IxiaRomania
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
React. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey KolodnitskiyReact. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey KolodnitskiyValeriia Maliarenko
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting examplecorehard_by
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studySymfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studyGaetano Giunta
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?C4Media
 
Building the Web with Gradle
Building the Web with GradleBuilding the Web with Gradle
Building the Web with GradleEric Wendelin
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET Dmytro Mindra
 

Similar to Ruby in office time reboot (20)

Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
 
Stop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentStop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal development
 
Go at Skroutz
Go at SkroutzGo at Skroutz
Go at Skroutz
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10
Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10
Why It’s Important to Contribute to Open-Source Projects | Keysight Connect #10
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
React. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey KolodnitskiyReact. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey Kolodnitskiy
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studySymfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case study
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
 
Building the Web with Gradle
Building the Web with GradleBuilding the Web with Gradle
Building the Web with Gradle
 
Background processing with hangfire
Background processing with hangfireBackground processing with hangfire
Background processing with hangfire
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
 

Recently uploaded

Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 

Recently uploaded (20)

Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 

Ruby in office time reboot

  • 1. Ruby in office time reboot 後藤 謙太郎, Goto Kentaro @gotoken syngram.co.jp
  • 2. Acknowledgements • All you RubyKaigi participants • All RubyKaigi staffs • All RubyKaigi sponsors • All Ruby committers • Matz • And all my colleagues at work in Syngram
  • 3. Apologies • Too late preparation for this presentation • English interpreter has not been given enough time • The responsibility lies with the presenter, that is me
  • 4. Excuse • Non edge technologies only • Please move to the next room if you’d like to get high-tech talk • Maybe old topics
  • 6. Today’s topics • Introducing this series • Case studies • Summary
  • 8. Scope of this session • Engineers having several roles in small company or team • Cases of useful Ruby and products • Commoditized techs, not edge
  • 9. Past talks • 2006 manage job with Kagemai BTS, share with Hiki, RWiki • 2007 One liner helps us • 2008 customize BTS view, scraping and feeding intra site
  • 10. Past slides available • https://www.slideshare.net/gotoken
  • 11. Introducing our team • Products • Good look and much usable web GUIs and sites • Effective company communication. Printing matters and SI • Professional GUI prototyping for data scientists
  • 12. Our team • Members • Designers: use Adobe CC and prototyping tools InVision etc. • Front-end engineers: Markup, Stylesheet and JavaScript • Back-end engineers: Programming, networking and all tech matters • No proper sales person
  • 13. Principle: Merit of a team • Diversity • I can’t create beautiful looks • But our team provide them • Redundancy • I can’t do all administration • But our team achieve them
  • 14. Pleasures • Working with designers is fun. • They have flexible thinking ways • Creating process is interesting • I can be a coauthor of beautiful products • Kaizen (Improvements) • A little bit of programming sometimes makes work much efficient • Small tools are often helpful
  • 15. Small team difficulties • IT solutions often needs admin’s help • We are small team • Engineers cannot be dedicated to proper intranet matters
  • 17. Case 1: Redmine applied to everything
  • 18. Redmine • Helped me very much. Thank you developers! • In this 10 years Redmine has been much sophisticated • Non-engineer uses are also comfortable
  • 19. Basic concepts of issue tracker Project VersionVersionVersionVersion Issue Issue IssueIssue Issue Roadmap
  • 20. Issue, Roadmap, Project • Issue • Will be closed eventually • Roadmap • A sub-goal of project in many cases • Collection of ticket is also useful. e.g., defining a business period • Project • Defines development of a project • Never ending project fits to business operation.
  • 21. Projects, ending and never ending • Projects with goal • Usual projects have the end, will be closed anyway • Projects without goal • Collections of issues which have similar scope and lifecycle • Good alternative of Excel sheet and folder forest
  • 22. Succeeding endless project example • Name: Borrowed • Purpose: Track lifecycle of borrowed items and its IOU • Attach photos of all items and all steps of package opening • We can package correctly again • Periodical not-lost checking is easy • Cross project reference is easy too
  • 23. Succeeding endless project example • Name: Inquiries • Purpose: Track biz flow as an issue from offering to billing • Each version stands for ship-out month • Versions are closed annually • Orders can be listed by month
  • 25. Useful plugin pick up • Attach image from clipboard http://www.redmine.org/plugins/clipboard_image_paste • Author: Richard Pecl • Enables attach image by paste and crop image • Screen shot of bugs helps understanding immediately the problem • Paste images also from power point figures or excel rectangle region
  • 26. Case 2: Every member has own projects
  • 27. Problem All servers are on local site, not cloud projects repos Update ticket by cron Web designers Many members cannot create repo
  • 28. Problem: Repositories and Redmine • Creating SVN repository needs admin operation `svnadmin create reponame` • Creating Git shared repositories needs complex operations from command line • We want every team member to be able to prepare Redmine project.
  • 29. Before GitLab • We have used large one subversion repository • Each our product was a sub-directory in the repo • Team members can add sub-directory via TortoiseSVN • But that has many problems • Commit often affects topology widely. Merging is almost impossible • Too large repo: backup copy or exporting repository is hell • Importing to Redmine took very long time and time-outed
  • 31. Problem (repeated) projects repos Update ticket by cron Web designers Many members cannot create repo All servers are on local site, not cloud
  • 32. Every member can setup a project. Role in each projects is variable Redmine and GitLab CE gives us projects repos Update ticket by git push Web designers Every member can setup a repository All servers are on local site, not cloud
  • 33. Redmine and GitLab CE gives us • Every team member can create new repository • Commit or push updates ticket via github hook plugin: https://github.com/koppen/redmine_github_hook • Git cultures: issue branch, easy merge • Web hooks also available: e.g. Slack • These all features can be configured on web interface • No .git/hooks scripts needed
  • 34. • Redmine requires git bare repository on local filesystem • We want separate GitLab lxc and Redmine lxc • Solution: bind mount - exposing host directory to containers Referring GitLab from Redmine On-premise lxcreposlxc bind mount bind mount Thanks to Hiraku again readable
  • 35. Case 3: Customers like xlsx Axlsx: Office Open XML Spreadsheet Generation
  • 36. Situation • Renewal a static web site. hundreds pages. • Analyze them to obtain link structure, template variations… • Then you got a table like this No. Path Title Tmpl Depth Lv2 Lv2 Lv4 Lv5 1 index.html The Ruby Corporaton top.dwt 1 2 about/index.html Corporation overview common.dwt 2 About us 3 about/mission.html Our missions common.dwt 3 About us 4 about/ir.html Investor Relations common.dwt 3 Abuut us 5 about/history.html Corporation history common.dwt 3 About us 6 about/access.html Access common.dwt 2 7 about/privacy.html Privacy Policy common.dwt 2 8 product/index.html Product product.dwt 2 Product
  • 37. When you send this table to your client • If you want add column value filter, column value sorter • You may choose MS Excel • Save as a CSV or TSV, read with Excel, Edit and then save as xlsx • You may also make it more pretty, e.g., coloring, font text styling, appending summary sheet • But if the source data will be updated many times • For example, data was incomplete at first • Another case, you have to add a column for progress of the process • Updating manually is boredom and hard to avoid mistakes
  • 38. Axls is xlsx document generator • Chart generation • Styling • Auto and Manually data type • Image attachment • Hyperlinks • Auto filtering • Printing related features: header, footer, page break
  • 39. Case 4: I want provide a script to designer
  • 40. Well-known one line http server ruby -run -e httpd • Serves current directory on http://localhost:8080 • It is too simple to provide something more than file browser • However there are some command line options • Try ruby -run -e httpd -- --help
  • 41. httpd options % ruby -run -e httpd -- --help Run WEBrick HTTP server. ruby -run -e httpd -- [OPTION] DocumentRoot --bind-address=ADDR address to bind --port=NUM listening port number --max-clients=MAX max number of simultaneous clients --temp-dir=DIR temporary directory --do-not-reverse-lookup disable reverse lookup --request-timeout=SECOND request timeout in seconds --http-version=VERSION HTTP version -v verbose
  • 42. To provide something more complex • Typically, file processing script on a server • For example, web site checking with eyes repository Working copy Screenshot viewer.html update git pull node shot.js Want to provide a CGI kicking here <img src>
  • 43. Sinatra is fit to such simple task
  • 45. Summary • Applying Redmine to everything • Admin-free project setup with Redmine + GitLab • Axlsx helps communication with client • Sinatra is good simple DSL
  • 46. By the way, what is fun of Ruby? Recently, I feel • Closing thinking and writing • e.g., right substitution • Simple closure syntax • But why we don’t use JavaScript promise-like interface?