00:00:13.000
yes hello everyone so thank you for
00:00:15.679
inviting me so I and my wife are Rob
00:00:19.359
Taiwan yeah my name is Hiro shata my my
00:00:23.680
account name of Gan and Twitter are in
00:00:27.320
alphabetical for characters hsbt
00:00:31.080
yeah please follow me uh I came from
00:00:35.680
Tokyo this place is a mat so this city
00:00:40.559
is best place of Ruby and mats so we
00:00:43.800
call the
00:00:45.640
mat I'm one of organizers in ra girls
00:00:51.559
Japan and I'm member of asex RV asex RV
00:00:57.199
is the most active Meetup Group in Japan
00:01:01.199
we are talking about Ruby every Tuesday
00:01:04.519
if you arrive Tokyo at Tuesday please
00:01:08.240
mention to mataan or me we will pick to
00:01:12.119
you for our
00:01:14.720
Meetup I took many topics in Ruby
00:01:18.200
conference around Asia Pacific region
00:01:21.680
when I hear about raise past week I are
00:01:25.960
very excited and decided to go eat I I
00:01:30.079
think we need to communication with Ruby
00:01:32.799
and rers together in Pacific
00:01:36.880
region so I'm sh
00:01:40.119
Comm I prevent that Ruby break RA and
00:01:44.479
our application every day sometimes I
00:01:47.960
fix Ruby and fix raids and fix Ruby
00:01:52.200
James and
00:01:54.560
more uh and I'm a commit withit
00:01:58.280
corrector I'm Main to these gems and
00:02:02.280
applications Ruby and ruby gems like AR
00:02:05.680
py Ruby beard and
00:02:10.200
Etc this list is my work in Ruby
00:02:15.879
2.2 it's not only to write the code of
00:02:19.680
Ruby I'm improving to develop a produc
00:02:22.800
ability and the programming experience
00:02:25.760
with Ruby and ra
00:02:30.360
I prepared web and build servers for
00:02:33.599
Ruby com and Ruby
00:02:35.519
users uh this is website of Ruby
00:02:39.480
languages
00:02:41.200
so in this place fito is there yeah he
00:02:46.239
is uh translation to English uh English
00:02:49.959
to uh Chinese uh thank you so
00:02:54.519
much
00:02:56.080
uh this is a issor and to
00:03:01.319
Ruby this is our fastest document
00:03:04.959
Searcher Ruby
00:03:07.799
documentation this is a distributed
00:03:10.200
packet site of
00:03:12.120
rby so I'll introduce the companies that
00:03:15.400
support Ruby hero and iig has provided
00:03:21.280
website of Ru
00:03:24.360
rangor I'm offering CDM to fastory with
00:03:29.480
r or so you can download Ruby packages
00:03:33.680
to fast outside Japan VI
00:03:36.959
fastory Global sign provided Wild Card
00:03:40.959
certificate to us thanks to her thanks
00:03:45.400
to Richard iig fastory Global sign thank
00:03:49.640
you this is our
00:03:52.760
ruci ruci is uh build Ruby every comit
00:03:58.079
we C code quality with major reux and
00:04:01.280
BSD and
00:04:03.360
windows Ruby Shia is supported by Ruby
00:04:06.640
Association and Microsoft Ruby
00:04:09.519
Association was founded to further
00:04:11.760
development of the programming language
00:04:15.320
Ruby Microsoft provides aure platform
00:04:19.560
for building Ruby binaries thank you so
00:04:23.080
Ruby Association and
00:04:25.240
Microsoft
00:04:27.160
and it's last so it's s mod dashboard of
00:04:31.639
Ruby rank or I watch s status with this
00:04:36.440
dashboard this m is named mael mael is
00:04:42.360
developed by haa haa is web service
00:04:46.160
company in Japan and provide free plan
00:04:49.320
for
00:04:51.280
us so uh I'm working in GMO Pap we
00:04:56.919
provide service hosting BR service
00:04:59.120
shoppingall service Etc we have a lot of
00:05:03.000
web
00:05:04.240
service our company has continued to go
00:05:07.320
from Web
00:05:09.600
2.0 we provide hosting service and
00:05:12.759
domain registration service it's a first
00:05:16.560
category next category is e-commerce
00:05:19.840
service this service this service name
00:05:23.960
sui sui allow you to create your own
00:05:27.120
t-shirts with your orig ustation or
00:05:32.720
photos last category is CGM Services we
00:05:37.319
are running photo sharing service named
00:05:40.039
30 days AR this service concept is
00:05:44.000
private photo
00:05:46.000
sharing uh so these service build by
00:05:51.880
rails our company are consist that of
00:05:56.240
independent
00:05:57.440
divisions the service department can can
00:05:59.840
make their strategy on
00:06:02.120
themselves uh advantage of our
00:06:05.319
organization is that they can tune to
00:06:08.840
their
00:06:10.800
category our company are gr now my
00:06:14.319
collect number get to cost to 300 people
00:06:19.080
now well do you know the water roow of
00:06:25.000
convey the system architecture has
00:06:27.759
evolved around the way of
00:06:30.319
organization each systems and related
00:06:33.400
each others some service uses PHP some
00:06:36.880
service uses PHP and my 4 sometimes they
00:06:40.599
uses Ruby and PHP and my SEC
00:06:44.599
five as result also our system our same
00:06:48.400
company knowledge or programming may not
00:06:50.919
be
00:06:52.800
shared I'm at developer productiv Cham
00:06:56.919
on company example for upgrading to
00:07:00.599
framework and develop to open source
00:07:03.599
software and building to analysis
00:07:06.560
platform Etc and we have I have a lot of
00:07:11.199
work our team support to each divisions
00:07:14.280
in company we had to migrate to rage and
00:07:20.759
framework as a result it's preferable to
00:07:24.360
use the same language and the same
00:07:27.440
framework and the same version of
00:07:31.479
database it can scale the technology and
00:07:34.520
produc ability in our
00:07:36.599
company I will describe why was adopted
00:07:40.199
ra and
00:07:42.599
Ruby why do we will choose
00:07:46.520
Ruby we have three major reason to
00:07:49.240
choose Ruby first one is testing second
00:07:53.199
one is environment for development of
00:07:56.000
service last one is M reference
00:07:58.560
translated or written in in
00:08:02.440
Japanese rby has very substantial
00:08:06.120
liaries for the unit test bdd testing
00:08:10.440
and end to n testing when compared to
00:08:14.159
other
00:08:15.800
langages for example you can test
00:08:19.479
behavior of targeting class with unique
00:08:21.599
test Tools R
00:08:24.879
bandles bandles test unit and me test
00:08:28.319
for you
00:08:30.080
in rers you can use arpc and active sof
00:08:34.080
test case which is an extension of the
00:08:36.719
main
00:08:37.599
test in other words the code written in
00:08:41.200
in Ruby can be tested with Ruby it's a
00:08:44.920
big
00:08:46.320
Advantage there is also G very powerful
00:08:49.959
that cap in
00:08:51.920
Ruby application that are not in r or
00:08:55.839
Rock application can be test using cap
00:09:00.440
mechan our company are written tests
00:09:03.360
using Capa and Ruby for PHP
00:09:08.160
applications I will introduce another
00:09:10.920
Library called Power asset to
00:09:14.279
you power asset is assass rival of
00:09:18.600
groy Mr tuoto who are one of the Comm
00:09:22.279
one of Ruby committer put to Ruby from
00:09:27.040
groovy it it is the
00:09:31.959
giab okay I tsj power
00:09:36.959
face the power asset it is a simple
00:09:40.200
syntax passing the B to assertion as
00:09:44.040
shown in the figure on this it determine
00:09:47.920
true or false is a simple
00:09:50.480
syntax however part of the bar assion
00:09:53.720
results greatly when you got F
00:09:57.640
results as at the bottom on this
00:10:01.760
figure you can see the result of each
00:10:04.519
method inspect each method as storying
00:10:07.720
and three and enamorate an array and
00:10:11.160
array class it is the major pattern of
00:10:14.959
programers when you fix fil test
00:10:18.240
go it files after running the test
00:10:22.560
F what not good you can put the de code
00:10:27.320
to
00:10:28.320
investigate for example you will put the
00:10:31.040
pry or P method into your test Cod or
00:10:35.440
production
00:10:36.839
code then theun test with daa
00:10:41.880
code you can find the ca of test
00:10:47.200
file you can make sure that you fix the
00:10:50.560
code if you find the Cod of when run the
00:10:55.639
code well if test file at the five step
00:11:00.519
you must repeat the inspection
00:11:03.760
again this iteration will be repeated
00:11:06.360
until test is
00:11:09.160
fixed if you use par you can see inspect
00:11:14.360
the result of code when run test you
00:11:18.320
need to put the code where no longer
00:11:22.399
this is a very RAR effect we will leave
00:11:25.320
from painful task of switching to edit
00:11:27.760
and console and running
00:11:30.519
test so we I created called me test pass
00:11:35.519
out that it can be use the AC of test
00:11:38.839
case or
00:11:40.320
rails please use who are
00:11:43.959
interested so our company use this gems
00:11:48.279
it's so very
00:11:50.200
useful now let's talk about second
00:11:52.839
reason why we use Ruby Ruby is easy to
00:11:56.800
prepare development environment that
00:11:58.920
anyone can
00:12:00.079
use we use Mach and home and Ruby B and
00:12:05.200
rvm it's very easy to as because I'm
00:12:09.160
their
00:12:11.600
maintenance this is last reason because
00:12:15.519
Ruby was born in
00:12:17.920
Japan we can get many books of Ruby and
00:12:21.920
rs written in Japanese so many books we
00:12:26.440
have well I will introduce why we use
00:12:32.880
RS these are three R reason first one is
00:12:37.360
that become mod
00:12:38.920
architecture second one is possible to
00:12:42.079
use a good culture of
00:12:44.480
OSS first one is that it has a better ad
00:12:50.040
application the first we can enforce
00:12:53.920
modern architecture using the
00:12:57.000
rails for example it is possible that
00:13:00.959
our V system while continuously upgraded
00:13:04.279
the version of Ruby and
00:13:06.440
rails for my
00:13:08.639
information please look at my slide of
00:13:12.279
the of Taiwan and the r in speaker
00:13:18.959
deck it's it is overview our world R
00:13:23.360
application have been used Ruby 1.8 and
00:13:28.079
Rise 2.0 all therefore this version have
00:13:32.519
no security
00:13:34.320
fix and it does not give benefit from
00:13:39.000
Ruby's performance
00:13:41.959
Improvement I did the upgrade of Ruby
00:13:45.160
and rails in this procedure uh for two
00:13:49.240
years after upgrade this service can be
00:13:52.800
receiv received benefit from ratest
00:13:55.320
version of Ruby and rails
00:14:01.079
the second example how to transition
00:14:04.399
into modern architect modern middleware
00:14:06.759
from or the
00:14:09.120
middleware our system is the
00:14:12.399
konon is M the compatible session
00:14:16.560
St it have dual Master function it's
00:14:20.639
synchronizing uh each
00:14:23.480
other we need to De Master function at
00:14:27.600
that time
00:14:29.519
and uh our system used the passenger so
00:14:33.639
I TI sh shock
00:14:37.040
yesterday but session client named ddy
00:14:41.360
not supported K Tycoon D is different
00:14:45.399
session client on ra
00:14:48.680
four and the biggest problem in this C
00:14:52.880
Ty is slower than my
00:14:55.160
figure it's caused by your master
00:14:58.120
mechanism
00:14:59.800
in addition the binary protocol of the
00:15:02.800
di do not correspond to K
00:15:06.040
Tycoon it was necessary to stop the K
00:15:09.959
icon for us to use r
00:15:13.399
four I replace K Tycoon to Pure M
00:15:18.680
Cy I solved all problem for upgrading R
00:15:22.360
4 it looks like wasted
00:15:26.160
work but the architecture of for system
00:15:29.639
is refined by switch to
00:15:32.800
MCD and we can improve performance
00:15:38.199
too I introduce second benefits of using
00:15:43.360
R it is necessary to be ca good OS
00:15:49.240
way our company are creating service in
00:15:52.600
each
00:15:53.720
divisions they develop only Dem servers
00:15:57.519
ecosystem of raise
00:15:59.680
need to run and contribute gems around
00:16:02.600
the
00:16:03.319
rails we need to fix their
00:16:07.079
sometimes this is my Prest of
00:16:10.560
weok mes Chang the name space at version
00:16:14.480
five if you use active Ser test case and
00:16:18.040
test helper libraries like webm on ra
00:16:22.040
4 probably meest block these help us I
00:16:25.880
fixed this name space problem a lot of
00:16:30.279
G and sometimes I need to fix something
00:16:33.959
that Ruby and R
00:16:36.560
directory this is example of incomati
00:16:39.600
changes on Ruby
00:16:42.279
2.2 CR bar have who called f
00:16:47.440
methods argument B methods called f
00:16:52.440
methods B methods does not called the F
00:16:55.519
methods F equal f
00:16:59.839
Ruby 2.2 returns
00:17:02.680
n
00:17:04.600
in Buzz
00:17:07.880
methods it is not assignment same name
00:17:10.799
of default
00:17:12.760
value I found this changes break RA four
00:17:18.400
but it already fixed ra 4.1 by Aron Pon
00:17:22.959
sh be Comm that doesn't use raids it's a
00:17:26.039
two important
00:17:27.520
things sometimes Ruby break
00:17:30.880
raids I and Matan evalate raids with
00:17:34.640
Ruby trunk every day and will fix broken
00:17:38.600
points in this way it can make a big
00:17:42.000
benefit that you can directly control
00:17:44.679
your
00:17:48.120
technologies that the last thing is that
00:17:52.559
you can use adom integration with
00:17:55.360
ra what's adomi we call adom that
00:17:59.520
applications can be three things first
00:18:03.080
one is customer support second one is
00:18:06.480
com confirmation of payment and
00:18:09.679
refund third one is browser UI instead
00:18:13.200
of RA
00:18:15.440
console please remember the role of
00:18:18.320
convey again
00:18:20.200
here why we need three requirements our
00:18:24.120
organization background is
00:18:26.520
affected in our organization
00:18:29.440
customer support and developer has
00:18:31.480
become different
00:18:33.200
te therefore we must customer support
00:18:36.240
and director can operate service
00:18:39.400
separately from
00:18:43.200
developers application that it separated
00:18:46.320
from developers are not maintained by
00:18:50.120
often it is that we cannot improve
00:18:53.400
quality of customer
00:18:56.039
support we found that bra has ability to
00:19:00.240
enclosing another raay
00:19:03.240
applications by using this function it
00:19:06.840
become possible to include admin
00:19:08.640
application into raise
00:19:11.280
application therefore we have three
00:19:15.559
ways the first method is a way to make
00:19:19.600
specifying name space inside the
00:19:22.159
rails it would be created as a future
00:19:25.960
razor
00:19:27.440
applications the good things about this
00:19:30.400
method anomy is integrated with railers
00:19:34.840
you can deploy and test test that very
00:19:39.559
easy on the other hand application code
00:19:43.400
and admin code is tily coupl together
00:19:47.200
adom Cod tend to be
00:19:51.400
complex another way is to use ra
00:19:55.640
engine you can customize the Raz in Gem
00:19:59.400
and active admin gem it's measure
00:20:02.880
way and we can develop there from
00:20:07.320
scratch the good thing about this method
00:20:10.799
is that it can be separated from Razor
00:20:15.600
application also they work or raise Eng
00:20:20.080
in deploy is also very
00:20:22.360
easy but point it cannot share model
00:20:26.080
from Razor
00:20:27.440
application we must be form to module
00:20:31.159
for
00:20:33.720
test last method we make ad me
00:20:38.080
application completely different
00:20:40.480
application it is not affected at ra
00:20:44.760
applications but there are separate from
00:20:47.640
development
00:20:48.880
cycle that become applications that are
00:20:52.720
not
00:20:56.440
maintained there are notification
00:20:59.120
even if you are using Lan rails there
00:21:02.559
are no silver bar for sustainable growth
00:21:06.559
I'll show you what we are working
00:21:08.400
towards the next 10 years while using
00:21:11.480
the Ruan
00:21:14.840
rails we were able to increase increase
00:21:19.240
the productivity using rails but if you
00:21:23.760
have no action like or refactoring you
00:21:27.039
looks right you you look ra like Java ra
00:21:31.559
like
00:21:33.480
PHP we are
00:21:35.600
sharing knowledge of this book every
00:21:38.559
week in our
00:21:40.279
companies crafting R for applications is
00:21:43.520
the best book that describes their
00:21:48.840
internal we also read meta programming
00:21:51.799
Ruby too this book describes active
00:21:54.760
record internal these books is
00:21:58.039
recommended for become a senior
00:22:02.640
developer we use work for like or GitHub
00:22:06.640
one master branch is all way to our
00:22:10.200
development deployment and alloing test
00:22:14.039
States all Cod is Red by
00:22:19.919
others as much as possible we are
00:22:22.799
collecting information to one place
00:22:25.679
across the team for example this is IRC
00:22:29.039
room of some service we integrate all
00:22:32.360
over and monitoring message to it
00:22:35.679
customer contact notification and GitHub
00:22:38.400
issue created and N
00:22:42.640
Etc we have the daily work in
00:22:46.720
cooporation to using puppet and newor
00:22:49.880
and money and nagos and Etc uh we use a
00:22:53.919
lot of Ming
00:22:56.120
tools let's survive the next 10 years
00:23:00.159
while continue continuing our better
00:23:03.159
programming experience using R and Ruby
00:23:07.039
so Ruby and ra saves your business and
00:23:10.640
your programming
00:23:13.159
experience that's all thanks