00:00:24.750
alright so this is how to find valuable gems I'm dating fiddler I work for him
00:00:33.699
tickle in deluxe one of our products especially given a beginner track today
00:00:38.829
is good school or do training browser basic training or Ruby JavaScript for
00:00:45.489
and all that other stuff I also do something called 35 again mebbe labs
00:00:51.190
which is a five-minute twice a week podcast do it with Greg Pollock and a
00:00:57.039
handful of people anybody heard of any less curious code school Ruby five
00:01:07.310
progressively less all right so the reason I bring up 45 well kind of come
00:01:14.970
back on again during this talk but I would encourage you there if you are
00:01:20.280
interested there's a subscribe button itunes and RSS again will kind of circle
00:01:25.649
that on why i think that's important so this is the beginner truck so I'm kind
00:01:30.780
of tailoring this more toward an entry level so i thought i would kind of start
00:01:37.380
with the maybe gym but let's assume you're not know what hm is what rubygems
00:01:42.750
is so I'm not start there right ok so i
00:01:47.970
guess brief overview since we're all there somebody else's writing code for you that's great right that's means i
00:01:54.270
don't have to i'm a bit bored spend my time on whatever so now that kind of
00:02:01.500
said that the main focus of this caucus is really finding and evaluating kills
00:02:09.239
right the finding part i think by and large once you've recognized the
00:02:14.880
shortcomings is somewhat simple although we'll touch on some of those i bring
00:02:20.910
really want to focus on what i do to evaluate jones because i think that's interesting and different angelical
00:02:28.950
basically you guys are certainly will open this is a small audience if you
00:02:34.140
disagree or have questions long life let me know I'm go with that feedback is
00:02:39.180
good quiet not good alright so finding jumps groovy jobs since everybody here
00:02:46.410
notice what it is obviously this point it's hosted on rubygems.org if i
00:02:51.569
remember correctly this was a nicker anto push a while ago so rubygems.org
00:02:57.170
what's on there right now there's somewhere around 38,000 gems so by and
00:03:04.799
large anything is you might to do as bro we've been done the some
00:03:10.000
level if it's isolate a little small piece whatever even larger these are
00:03:15.910
generally free and open source by nature of rubygems is kind of open source at some level regardless of its on github
00:03:22.660
annoying so I kind of wanted to start you guys with an example because i want
00:03:28.209
to point out one of the flaws i guess upper b jones and that is let's say for
00:03:34.030
example is everybody know have some idea of testing rails but and people know
00:03:39.910
what acceptance testing is to some degree which is more like a I'm telling you what this thing is going to do you
00:03:45.910
agree we pre-release happy so if you were going to do acceptance testing and
00:03:51.040
rails does anybody have any ideas what you would do my name Jones so gem
00:04:01.989
install cucumber right then maybe let's say you don't like cucumber you could
00:04:08.079
try different flavor like a tournament you could go further down that list and tried spinach if you want something
00:04:15.519
that's a little bit more meaty you could go further and have a steak if you want
00:04:22.120
the best cut some people would say you might go for the blame for it all of
00:04:28.539
that makes no sense at all you might just have some sucking so this is actually I'm kind of to highlight the
00:04:35.080
issue and that is the way verga jumps are set up gem names are unique globally
00:04:41.070
and as a beginner it's basically impossible to know what Jim you're
00:04:48.580
looking for right so in this case we said we want acceptance testing and some guys in the bathtub obvious they've done
00:04:54.280
this before shouted cucumber right and we went down this chain and all of these are actually
00:04:59.950
libraries now that they're all together you can kind of see their names based on each other cards up it's a play on words
00:05:05.410
in some way look really as a as a new person to the community or the embark
00:05:10.600
there's no way to know that all right like I don't actually expect any of you to accept angry chris narvis so how do
00:05:19.030
you actually go about determining what gems are available what's new what's
00:05:24.670
popular what you should use in your project right so the first thing I would
00:05:30.040
say is news and peace right the community has a lot of news sources as I
00:05:36.610
mentioned earlier Ruby 5 for example is put on by us there's also review robes for be inside or be flow Ruby reddit a
00:05:44.230
million other things out there right clear and what's really nice about a lot
00:05:50.830
of these sources is not only are they attempting to stay current about what's out there and what's going on but they
00:05:56.800
also have archivist so in theory even go to some of these places and kind of search the history to see what's out
00:06:03.460
there and again this is because of poor naming for descriptions and things on
00:06:10.450
rubygems themselves so the biggest problem here though especially as a
00:06:15.700
beginner in a sexual person is this takes a lot of time right like you know
00:06:21.280
just any lecture put out a five minute podcast twice a week do I expect every baby's room to listen to us grant for 10
00:06:27.400
minutes a week now like I don't think that's realistic right you might and we appreciate if you do but I don't think
00:06:35.500
it's realistic and most people are just how do I get my job done right at the end of it like I've got this problem i
00:06:41.770
need my cell phone so you might think okay well you know i'm going to go Ruby gems which is the source they are the
00:06:48.100
canonical location we'll just review point whatever you wanna call it I'm just a search on there cuz i sell the
00:06:53.170
available search button right so look at an example here i wanted to point out which is if you go to Ruby gems that you
00:06:59.980
search for authentication for example like I won't have a user system in my application right search for
00:07:06.610
authentication seems realistic so these are all 30 results that come up there
00:07:11.740
obviously they're out the beige no we're on their PC the bus which is arguably the most popular most views Jeff there
00:07:19.240
is reference to it in one description of one gem has not revealed number three on
00:07:26.500
here is restful indication at 116 and if you actually look at the repository
00:07:31.720
poured on github the last commit was two years ago with a commit message of Glee
00:07:37.060
up so you know like it makes you kind of question that as a methodology of
00:07:43.870
finding your gems right for for some of the older people in community which arguably might not be many in here three
00:07:50.380
further down from that is this one which is full of indication and the description is a porta free Coulson's
00:07:56.980
rest of authentication which is this for Murph which is a framework that
00:08:02.950
basically no longer exists so searching rubygems.org isn't terribly useful and
00:08:11.500
some of those because the review no respect doesn't have a built-in self categorization like you can't say I'm
00:08:17.230
going to release cucumber and it is any test in a category or however else you don't think it's just not currently a
00:08:23.920
piece of the puzzle right so where else would you search more than likely you
00:08:29.170
would be going to Google right where everybody goes for everything so what do
00:08:34.450
you look for you know you look for blog posts you look for example code gists
00:08:40.930
rails casts stock exchange all actually really good resources and I would actually suggest
00:08:47.010
that if you do go to Google search for something you'll notice on the left-hand sidebar there's a little thing that says
00:08:52.460
customize the search I think our filter this search and if you can say like within the last month within the last
00:08:58.050
year right and that that alone fixes the ruby gemstone or carnal right let's
00:09:04.590
figure out to Europe yokomen on then ultimately since you know the issue here
00:09:11.250
is we're trying to fight things we really don't know anything about we have some concept of we need to do testing how do we go about testing Jim ruby gem
00:09:19.230
for testing right so here kicking you got this idea of a category or a group of things you're looking for so there's
00:09:24.420
actually a resource out there that I've heard mentioned it in a few different pots of this point briefly and that's three beautiful luxe and I would really
00:09:30.960
suggest this to especially beginners 3b jewel box was created by Christophe both
00:09:40.200
cell and we actually launched it and
00:09:47.940
released it like a day or two before rails not that you but the 2009 so this resource is basically about four years
00:09:54.839
old for this point all most of the day Ruby collapses can you driven it is
00:10:01.400
basically a categorization one point to pay any questions at this point yep the
00:10:07.860
Commission stock exchange overflow with other second students like support yes you know and stuck overflow
00:10:16.540
probably bring what was under oh yeah he said I mentioned the stack exchange thing was it was appointing I'll stack
00:10:22.389
overflow yeah I mean yeah I mean I think they're sacred of these stacked like
00:10:28.509
things where people those comments and responses there isn't one look good to you Jim see now now it's certainly not
00:10:34.540
dedicated gems there are some that focus on early but still reflect its community
00:10:41.259
driven they actually right now have somewhere around 160 categories of Jones right earlier we went there 38,000 Jones
00:10:48.160
growing on revisions it's like 160 categories they list the idea of a project and that as a gem that it's been
00:10:55.059
signed to a category so they've got about 1400 objects they do actually index the some degree or have a concept
00:11:01.300
of about 38,000 to basically all of them and 1700 get every post so they do have
00:11:07.389
reference and so idea or concept of a lot of pieces here and actually I want
00:11:14.679
to give you kind of an idea what it looks like just because I want to highlight the difference between like kind of where we started and what this
00:11:20.649
gives you so here is actually if you want to really get regular if you want to Ruby cool bucks and click on the
00:11:27.790
category step you can actually get a list of all of their categories right so this is just a small snippet snippet so
00:11:33.699
content management as a major category you might say I want to see ms right which is actually relatively popular so
00:11:39.910
here you can see content management that got refinery gradient locomotive AB de browser CMS and 15 more great and if you
00:11:48.339
actually look at it in one of those they will actually give you a ton of information about the jam they'll show
00:11:55.119
you if they know to get ever bought or they'll show you the last commit date there is kind of a score what's given to
00:12:00.220
it by the reflux there you know they'll category or order it by their score so
00:12:06.029
basically a lot of the things I'm going to kind of continue to talk about I'm going to valuate a job they kind of
00:12:11.589
built them so it's a really nice resource especially beginner so I'm kind
00:12:18.490
of talk about how to find gems a gut it looks like 15 minutes so I'm going to
00:12:26.020
kind of move along to the I'm assuming either via google like it helped search
00:12:31.089
some other means you have located in general you might not certainly any
00:12:40.270
questions um so what I'm going to say
00:12:45.940
here is kind of what I do a lot of ways or ideas I think about when I'm the
00:12:51.310
value in gym so your mileage may vary obviously I don't expect you to all of this is gospel but kind of think about
00:12:59.410
it basically how that's the very first thing I want mentioned is when you're looking at a gym that you want to
00:13:05.410
potentially using your app you should pay attention to help critical to hear app that general library is if it's
00:13:12.220
something that means my application is useless without it obviously need to be a lot more critical of what that is
00:13:19.050
implemented it's something that's like you know this
00:13:24.589
gives me a convenient way to add a twitter button it probably needs lawless right so so that's kind of where I want
00:13:34.130
to start is I think that's that's useful to have in your head when you actually start looking these jumps like how important do it how important to me is
00:13:40.490
it so this gym works correctly and doesn't somehow where code is similar left this next thing is actually kind of
00:13:50.300
from me boot up and that is people use there are a lot of gems out there thirty
00:13:55.670
eight thousand times right and they go from see full CMS systems to you know
00:14:01.459
help me put a twitter button on page to give me a list of states the united states like so you need to way to some
00:14:10.850
degree the usefulness of the jump it's like if you're looking for a gem to give you the 50 states the united states
00:14:16.370
that's probably not the greatest gem and the reason for that is whenever you pull
00:14:22.310
a gem at your application you're building in dependencies right you're building your pulling it out of people's code do you have to be someone concerned
00:14:27.950
about and if you are the developer you are now somewhat responsible for in somebody else's eyes right so so you
00:14:33.740
kind of walked away how useful it hm is to whether or not you should even use it
00:14:39.200
or if you want yourself basically in the case of it the United States date 50
00:14:44.300
states in those days it would probably be easier to you for you to just help I mean you could just copy pasted the animal files for example if they've got
00:14:50.930
a list copy you don't have to depend right nothing stopping us from now so
00:14:57.660
now they've got those totally I want to talk about the actual gems themselves so the very first thing I talked about and
00:15:03.329
this is so with regard to me boolean gem into my application and us covering gems
00:15:09.450
on 35 for example the very first thing we look for is documentation and there's
00:15:14.940
a lot of reasons for that but I think ultimately it can boil down to a very
00:15:21.120
simple question and that is does the altar boy cam care about you right have
00:15:27.329
they taken the time to try to see how somebody else using our software is
00:15:32.970
going to use their software if they thought about what my position is when I come to them basically right and that's
00:15:38.610
really telling actually because if somebody has has sat down and thought about my experience it's somewhat safe
00:15:46.260
to assume they've thought about my experience when they wrote the code itself right and that's huge thanks to
00:15:53.190
the end of the day I don't want to have to learn 17 different ways to do a million different things it would be really nice that they made it really
00:15:59.070
simple and said this is the interface this is why it's nice this is why you should use it this is White's better with something else here's an example
00:16:04.680
right that's awesome and that means a lot so once you've got stock mutation
00:16:11.040
the next thing is the source I don't think it's absolutely necessary but if you can get access to the source great I
00:16:17.399
mean pretty much all gems right now we're freeing up and source I would say almost elephant on get them it's just
00:16:23.250
awesome once you have access to the source you want to skim through it the
00:16:29.250
very least is it clear is it understandable to skim that they do same
00:16:34.380
things at the other days it's safe because you know when you use a ruby gem
00:16:41.760
and you included in your application we're in Ruby people can overwrite object like
00:16:48.360
you know you could you could override object to us and they can do whatever you want so it's nice to at least kind
00:16:53.790
of blow through the code and say are they doing anything obviously stupid here do I see a network connection going
00:16:59.370
to go through grace or a slightly no clue why they would do right so if I have actually seen people exploit that
00:17:05.280
but as possible right and the other day I'm responsible for it so it's worth looking at and while you have a source
00:17:12.299
open actually the next step that I would really suggest is look at the dependencies because you know just
00:17:19.470
because I'm requiring hm that gem can actually be dependent on 10 15 30 other
00:17:25.530
things so if I'm taking the time to actually investigate a jam the education and it's there now kind of all 10 of
00:17:31.350
their things in theory I should now be looking at all 10 of those other things right the idea is basically you're
00:17:36.990
marrying the entire family so you know you want to know you're in Los so here's
00:17:44.850
kind of a an example this isn't cute so this is a screenshot taken from ruby gem
00:17:50.100
itself when you view a jam on rubygems they kind of parsed through the jones back and help you get quick links to the
00:17:56.669
source if it's listed the home page of its listed things like that at the bottom they will kind of interpret the
00:18:03.900
gem flick for you and show you runtime dependencies which is developmentally people no difference because any
00:18:10.080
questions as far as the different sure so when you load a gem into a
00:18:20.179
production application you basically just do a standard gem install all it looks for is the runtime dependencies so
00:18:26.539
in the case of let's say a CMS that is
00:18:32.389
intended to be built on dreidels they won't most likely have a dependency on earth so if i did a gem install through
00:18:37.789
CMS it would assault through CMS and rails and alvarez dependencies for me if I don't know Marta right rubygems has an
00:18:46.759
idea of development dependencies which really hasn't been used greatly in the
00:18:52.220
community some people do them some people don't the idea there is you can actually do gem install I think dash
00:18:58.129
dash dash dash development in the name and it will install the runtime dependencies and the development dependencies and the idea there is that
00:19:04.249
you're going to be doing development locally for it so like maybe I want to got a new feature our spec in theory at
00:19:09.710
the gem install dev cars bit and it would give me so I can do that but in reality it
00:19:15.930
doesn't happen right so really all you pay attention to is there a kind of focus at this point so in this case this
00:19:26.580
isn't terrible if I glanced down this list active support is huge if you use real CBS's work right it's part of rails
00:19:32.460
board so that one doesn't concern me for example builder also doesn't concern me because it was also his identity of
00:19:38.700
rails ahi tunas rails Jason's rails kind of at this point so the only two real
00:19:43.890
questions there once you've done this a few times is ok what does money do and what is active utility rate at which
00:19:49.590
point of my technical answer you didn't see either how this gem uses it or what this junk look like because again this
00:19:56.460
is code that's going into my system they may have namespaces that collide the things i use great there's there's a lot
00:20:02.790
of issues potentially that could arise here speaking of issues the next thing I
00:20:08.610
look at generally if it's not get them are there issues and it's not looking
00:20:15.809
for our all of their issues taken care of because that's never gonna happen right it's a good popular project it
00:20:21.960
should have a community around it and people should be at the very least posting feature requests so you know you
00:20:30.240
look for their you look through the issue list view you know skin for significant problems like this grow up
00:20:37.650
rails 3 that's probably significant if it's still open right and it's good to
00:20:43.500
know and what I actually like to do which a little bit different from that is on github they actually different
00:20:50.820
tabs i know this is really small but i get if you go to get github issues they've got a tab for relevant issues
00:20:56.550
and that's have for collisions and on this particular project there were 18 open issues in theory none of which are
00:21:03.030
show-stopping 128 closed issues so i actually pay attention to that rape ship
00:21:08.450
because i like to get that sense of how active maintainer story right there
00:21:14.480
here's my next example 45 open issues 13 closed issues that's
00:21:22.470
significantly more concerned too right assuming that those are somewhat useful
00:21:27.720
issues at the very least i'd like to see activity on it right so further onto
00:21:34.110
this chain on the same github page they've got a display of Watchers and ports right so in this case this
00:21:41.250
particular project was got 45 issues has 1800 Watchers so people care about the project in theory 603 Forks the only
00:21:50.490
time people for things is when they need to fix it really or future requested or something if there's 45 open issues 13
00:21:58.679
flows and 600 words that's really scary right like that's not somebody I want me
00:22:06.620
yep I've got a situation recently where Jeff
00:22:13.149
or fix a lot of this usually you're trying to fix obscurus you have or if
00:22:21.389
you are charging fix an issue so you're using a major gem you realize there's a
00:22:28.269
problem with that you find a fork of that jam that in theory fixes it based on the commit messages I'm guessing with
00:22:34.809
computers right so I would say the careful there certainly depending your
00:22:43.539
product depending your application of social production application on a fork is dangerous in a lot of ways because
00:22:51.039
they are not the mainland thinner so the likelihood of them continuing to maintain that fort is very low if they
00:22:57.549
haven't opened a pull request upstream to try to get immersion or actively petitioning to get emerged it's going to
00:23:03.339
die right it's the main line that's what kept you going it is an active project so you know I think there are instances
00:23:10.539
where you can you know this is a little beyond skill book you could you know put a gate breath in Europe in your gemfile
00:23:16.869
and say I want this particular thing knowing that you know three weeks from now or four months from now or six
00:23:23.649
months from now person behind me isn't going to know why I did that right and so you can be very clear whether it's a
00:23:30.519
comment with it or a link to open issue right so it's somebody behind you to
00:23:36.070
notice when you're doing it that's important
00:23:42.590
this is arguably liner but I kick versioning seriously there's a idea out
00:23:48.590
there called semantic versioning and everybody know what Samantha version you do it doesn't hasn't heard of semantics
00:23:53.600
written a couple so there's URL pr7 Borg
00:23:58.850
it's really us you know basically codifying what it means to what version
00:24:03.890
numbers mean it's basically saying if you're a library author your version number should be at a minimum composed
00:24:09.830
of three numbers major minor patch and thinking something like you only rotate
00:24:16.669
a major release its backward compatible and anything you release ever is
00:24:22.610
backward compatible it's a major is even if you feel like it was a bug fix but the way fixed it changed your public API
00:24:29.059
the way somebody would interact with your library is a major of period and
00:24:34.090
the reason for that is actually bits which is a pessimist o'clock or there's
00:24:40.700
a million names where some of which are probably knock people pessimistic lock
00:24:46.399
is really a friend to be able to but only if authors actually respected is anybody here not now what pessimistic
00:24:52.610
luckiest good oh yeah out of live-in help I'll get that I'm curious so is
00:24:58.909
everybody heard of this kind of yes I
00:25:04.279
had a few I do any work these repeated please repeat it all right so let's say
00:25:11.200
you found a gem to use a semantic versioning the way you should put that into your bundle your gemfile is
00:25:18.160
basically like this so Jim super fantastic I'm going to use the best
00:25:24.250
missed o'clock at 2.12 this example so in theory you know you found a gem you love the current version is maybe 2.1
00:25:31.000
and you happen to know that they call the semantic versioning most of gems that do mention it in their reading
00:25:36.190
somewhere because it's useful information so I'm a pessimistic lost a 2.1 2.1 is the current what most people
00:25:43.750
would distort they do is greater than equal to 2.1 which is very very very dangerous to do a pessimistic lock is
00:25:51.309
only useful against December because in theory the major release is going to
00:25:58.299
change if it's backward compatible so as long as they call the semantic versioning this should never explode
00:26:03.789
right if I write my application and say it's pessimistically likes to point one I've filled my API into it living on my
00:26:10.150
application great doing a bundle update shouldn't make my application explode in
00:26:15.220
theory so a quick example if I said pessimistic locks 2.1 and the current
00:26:22.659
release this is obviously contrived is one point out will that get installed in my application anybody think that will
00:26:29.620
get installed good all right next example to point out so let's say I do a
00:26:36.700
bundle update and for whatever reason blend which is that the highest number if you can get is two point does that
00:26:41.980
meet the criteria no that does not because it's greater than got one right
00:26:47.500
so that's two dot one so let's say bundle or contacts rubygems true gem
00:26:53.020
says hey the current version is 2.1 just like I'm getting booted yes
00:26:59.410
right so tomorrow they realized 2.1 as a
00:27:04.550
plug-in so you know now or later they released 2.1 point one right it's like
00:27:09.830
I'm included yes alright then they go a
00:27:15.110
dot further for some reason right it's like I'm getting booted yes good 2.2
00:27:23.150
comes out do I get it yes three point
00:27:31.010
out comes out do I get it no I don't so it was pessimistic lock how does it work
00:27:37.340
does anybody have any question about this I heard some notes to doctors I was looking for right so the way pessimistic
00:27:51.050
lock works the easiest way to think about it is however deep you make your version number just put your finger over
00:27:58.130
the last dot and number and that's what you're about to write so I played it a pessimist o'clock at two dot one dot one
00:28:06.250
then I wouldn't get to it up to because that final dot one is variable but the
00:28:14.750
patch double dot one is not so what it does is it looks at how specific you are and goes one level up right so in this
00:28:21.590
case I'm finding myself to the 2x release if I said to 1x that I'm down to
00:28:28.790
two dot one which again if they're following December isn't useful that
00:28:33.980
someone major releases interior that were compatible okay so at the end
00:28:40.460
of the day all of this comes down to curation you know does from all of the
00:28:46.790
available information you have about a gem do you feel like the maintainer cares about you based on the issues
00:28:53.750
based on their responses the things do you feel like they care about their code do you think they care about you let's
00:28:59.380
ultimately kind of let it boil standing invite any questions to this point I know my time is basically up so I can
00:29:06.320
cut it here need for questions yep how
00:29:13.730
do you make the decision about whether copy
00:29:22.230
so my general feeling is based on the complexity so like in the case of
00:29:28.340
somebody made a view helper that lets me put a twitter button on the page I
00:29:35.090
thought that's not usually useful to me that's something I can do in five minutes so is it worth dependencies now
00:29:42.470
you know I would generally cut it about a half a day to a day of work and I
00:29:47.760
would also do some degree look at what is the potential variability on it like
00:29:52.799
is the static of change is something about this library do I anticipate changing regular and am I going to take
00:29:59.549
on responsibility for keeping up to date right it's like those kind of way line like if you're you know I made an
00:30:06.570
example earlier States I don't see the state's changing anytime soon if I do up hearing about it right but countries
00:30:15.049
countries change fairly regularly so maybe yeah the other the whole concept
00:30:24.419
of the gym being versus part of the actual rails default
00:30:34.059
how that occurs and that is insight into why so why rails in just
00:30:42.130
one jam I know it makes decisions for me falles with the club the 14 that's right
00:30:48.070
in its political yeah that's it so the question was uh how do the default gems
00:30:54.010
and rails become a cult Jones from degree in political its compare the
00:30:59.620
quickl but I'm more interested in that from that communicates what I want to
00:31:06.669
invest my time in perhaps because it flags all these things they've talked
00:31:12.429
about his criteria today I didn't you down or what I'm not invest my time in and forward with committing to a test
00:31:21.490
framework protecting our spec or whatever just it influences it seems a
00:31:27.730
lot sure so if rails blesses your gem as
00:31:33.549
a default for reals obviously the rails core team isn't some ways vouching for
00:31:38.950
you right it's not a decision they take lightly it's not like I release the gem
00:31:44.980
yesterday is how a default interest that's not never going so you know at
00:31:50.200
that point when something is a default for rails you know you can kind of assume that a lot of this evaluation has
00:31:55.570
occurred in almost all cases pretty much all cases there's also been time behind it right and they haven't had any major
00:32:02.260
screw-ups enough the concern for team too shy them away from making how many
00:32:08.320
people okay so I think you know that the traditional example there will be like our spec versus test unit right so you
00:32:15.999
know by default grails is testing that before you sit and there's a flag that you can tell it to install trails judges
00:32:22.749
in Temple arrows are using our second said you know ultimately that is a
00:32:28.840
political decision the core team to know me this is all their campus every book
00:32:35.349
but the court thing do care they do look at gems fairly regularly they do listen when community starts to push like four
00:32:41.950
we want our stuff in Twitter you know there are very strong opinions on the 14 that our stuff isn't good bird and their
00:32:50.559
the pain scales too quick so they made it interchangeable which is generally
00:32:58.359
for most of alts there's an API map for whatever that the bulk shipments it
00:33:03.580
could something else anybody else big questions little
00:33:11.830
questions completely off topic questions yeah you know a gymnast you know all the
00:33:21.370
gym six and I remember um so the question was how do you know
00:33:27.210
if I maintain air is just going to drop maintenance virgins you don't you know
00:33:33.120
you judge on track record so for example you would look at a gem and see how many
00:33:38.280
version releases I've had at how long the time you would look to see how active they are currently on fixing
00:33:45.090
issues you would look potential to commit this tree that's a give everything and see if they commit in the last week your last day for it was two
00:33:51.450
years ago right opposite of good enough which isn't bad thing and a lot of times
00:33:58.170
the more popular gems when the author knows the popular down will petition
00:34:03.660
bringing the pan whether it's through the readme or blog post or something
00:34:08.730
else they will start trying to find somebody else to take over before just about right dropping most people are
00:34:13.980
good doesn't ask where the internet is it's there forever for it so very least
00:34:19.980
you've got the last release in it if it's critical to your application I mean like I said you're marrying right here
00:34:26.460
if you're investing final money into tying into somebody else's code you're marrying this is open source currently
00:34:33.060
so you know if they disappear tomorrow we still have a last thing they did with lesson or at least you know now it's a
00:34:39.300
business decision on your end this to can we afford to maintain those obviously it's business critical to us a
00:34:45.929
little stomach so is it still is there another option at that point can swap it out realistically or
00:34:51.980
anything else
00:35:03.410
so I've got a you know couple favorite Jones an island of overtime r-spec i think is great diversity is an awesome
00:35:09.920
curator he's very good at staying out it's very good at pointing direction whether or not you like our spec I think
00:35:16.010
he's he's a great example of energy yes I'm developing a little more spec and
00:35:29.630
David everything is good the same is actually true a VCR awesome support but
00:35:37.910
maintainer behind that and actually want to point out finally Faraday on a Faraday's little books here especially for the beginner track but I want to
00:35:44.300
point out it's not even a scanner in this point why it's one of my favorite games it's actually a auxiliary commit
00:35:52.040
who is Miss love he's an incredible maintainer even up other people's gems like he is entirely willing to just say
00:35:59.360
no the features and until you you know answer your question if you have it or tell you why you're doing something
00:36:04.970
wrong about of those of us that stuff you really only not ever time for so
00:36:11.870
once you guys have any other questions and there's break right now
00:36:52.580
bye