< Return to Video

Garden City Ruby 2014 - Lightning Talks

  • 0:23 - 0:27
    SPEAKER 1: My name is Smith. I work at Flipkart.
  • 0:27 - 0:30
    SPEAKER 2: Hi guys. I'm Tri Hari??.
    I
  • 0:30 - 0:31
    am a partner at Nilenso.
  • 0:31 - 0:35
    S.1.: OK, we are going to talk about impact.
  • 0:35 - 0:37
    So what do we mean?
  • 0:37 - 0:39
    So let's start with a question.
  • 0:39 - 0:44
    As programmer, what are the problem we face?
    So
  • 0:44 - 0:47
    looking at this, aside from that, you know,
    maybe,
  • 0:47 - 0:50
    in the worst case we have to quickly fix
  • 0:50 - 0:54
    a bug on production, or maybe just really
    cranky
  • 0:54 - 0:57
    client comes up with a requirement which is
    very
  • 0:57 - 1:00
    hard to fulfill, or you know, our code quality
  • 1:00 - 1:03
    or our tests written so big, like Chad said
  • 1:03 - 1:05
    yesterday, that it takes a long time to finish.
  • 1:05 - 1:09
    But these are the kind of problems we face,
  • 1:09 - 1:12
    generally. But let's see what other problems
    do people
  • 1:12 - 1:14
    in rural India face?
  • 1:14 - 1:20
    Yeah. So. Let's start with this: food.
  • 1:20 - 1:23
    So I'm sure all of us enjoyed the really
  • 1:23 - 1:27
    good lunch there, [00:01:25] pune gosh, chicken
    packenard, fune
  • 1:27 - 1:30
    mokney [00:01:28]. We will also get a tea
    break
  • 1:30 - 1:33
    soon enough. I'm hoping. But what about the
    people
  • 1:33 - 1:35
    out there? They don't even get a square meal
  • 1:35 - 1:36
    once a day.
  • 1:36 - 1:41
    Water- well. People in India really have accepted
    the
  • 1:41 - 1:44
    fact that they don't get water to bath in
  • 1:44 - 1:47
    the rural areas. They somehow manage it with
    the
  • 1:47 - 1:49
    drinking water they get. It's really not clean,
    but
  • 1:49 - 1:51
    they somehow manage.
  • 1:51 - 1:55
    Shelter. V.J. told me a fact today, that sixty
  • 1:55 - 1:58
    percent of population in India do not have
    a
  • 1:58 - 2:01
    toilet. They don't have access to a toilet.
    So
  • 2:01 - 2:04
    let's, not even care about anything else.
  • 2:04 - 2:07
    And education, this is something very personal
    to me.
  • 2:07 - 2:10
    Where I come from, it's even lucky to people
  • 2:10 - 2:13
    to study up to ?? standard [00:02:12].
  • 2:13 - 2:16
    So, so my question is, how many of you
  • 2:16 - 2:19
    have written a line of code which has impacted
  • 2:19 - 2:21
    life in some way? I'm not saying a big
  • 2:21 - 2:23
    way, but a meaningful way.
  • 2:23 - 2:27
    Can anyone show their hands? Yeah.
  • 2:27 - 2:28
    And how many of you really want to help
  • 2:28 - 2:30
    them out.
  • 2:30 - 2:35
    Only this many? Like this is really sad. OK.
  • 2:35 - 2:37
    So you really want to help them out, and
  • 2:37 - 2:39
    this is how you can do it.
  • 2:39 - 2:43
    S.2.: Right, so this is essentially what we
    heard
  • 2:43 - 2:46
    about. A few of us at Nilenso, and previously
  • 2:46 - 2:48
    C42, have been fortunate enough to work on
    the
  • 2:48 - 2:50
    Survey Project.
  • 2:50 - 2:55
    And I'm gonna leave it to this: We have
  • 2:55 - 2:59
    6,000 people who have been impacted by the
    first
  • 2:59 - 3:02
    run of this project. This thing is opensource.
    I'm
  • 3:02 - 3:05
    gonna leave this slide for you guys to look
  • 3:05 - 3:12
    at. And we've- five big cities, 6,000 people.
    Kids,
  • 3:12 - 3:16
    pregnant women, with the nutrition survey.
    Right, this was
  • 3:16 - 3:17
    the first run.
  • 3:17 - 3:22
    And there was another one, that went to people,
  • 3:22 - 3:27
    women, in the agricultural side, and there
    are three
  • 3:27 - 3:34
    thousand families who have been helped. And
    one, a
  • 3:34 - 3:36
    single fact that, that's gonna help you understand
    where
  • 3:36 - 3:38
    we are with this - look at the last
  • 3:38 - 3:40
    three lines in this slide, basically.
  • 3:40 - 3:43
    These are the inferences that have been drawn
    based
  • 3:43 - 3:47
    on the data here that is 6,000 requests from
  • 3:47 - 3:52
    here, and 3,000 families. That's roughly,
    again, around 6,000
  • 3:52 - 3:54
    records here, right.
  • 3:54 - 3:57
    So that's so much data coming in, and inferences
  • 3:57 - 4:00
    drawn across surveys.
  • 4:00 - 4:06
    Technically, like, why am I, why are we presenting
  • 4:06 - 4:08
    this here, and what do you people have to
  • 4:08 - 4:13
    do with it? Apart from this, like, the technical,
  • 4:13 - 4:18
    like the number of apps and whatnot, there
    is
  • 4:18 - 4:21
    so much data coming in, right. The last thing
  • 4:21 - 4:25
    that we have in our road map is a
  • 4:25 - 4:28
    separate Clojure app to take care of the big
  • 4:28 - 4:30
    data stuff.
  • 4:30 - 4:33
    And, like, personally I have spent hours of
    my
  • 4:33 - 4:36
    time looking at the UX in this thing.
  • 4:36 - 4:42
    So these apps have to go down to the
  • 4:42 - 4:47
    last mile, down to people's homes, where there's
    no
  • 4:47 - 4:50
    internet, right. And they have, like, one
    hour of
  • 4:50 - 4:53
    internet in a week, and then there's so much
  • 4:53 - 4:55
    data integrated problems that you have to
    deal with
  • 4:55 - 4:58
    as well.
  • 4:58 - 5:02
    And sadly over the last month or so, this
  • 5:02 - 5:05
    has come to a slow stop, and we have
  • 5:05 - 5:09
    not had the time to work on this. But,
  • 5:09 - 5:11
    I'm hoping that a lot of people here do
  • 5:11 - 5:14
    have some time to spare. Send us a poll
  • 5:14 - 5:17
    request, whatever it is.
  • 5:17 - 5:20
    These are the people we really care about.
    We
  • 5:20 - 5:24
    write algorithms to bring down our performance
    from point
  • 5:24 - 5:28
    zero one seconds to point zero zero one seconds,
  • 5:28 - 5:29
    and that's all we have, right.
  • 5:29 - 5:34
    S.1.: So I'll wrap it up really fast. So
  • 5:34 - 5:36
    let's not always write code to help these
    people
  • 5:36 - 5:40
    out with our wonderful projects like WunderRails
    RubyGems and
  • 5:40 - 5:41
    other languages.
  • 5:41 - 5:44
    Let's also these people out as well. You know,
  • 5:44 - 5:47
    maybe give them a boost, because I really
    believe
  • 5:47 - 5:49
    we don't all have to be Bill Gates to
  • 5:49 - 5:52
    help these people out. With our own skills
    we
  • 5:52 - 5:54
    can contribute to and write technical projects
    that could
  • 5:54 - 5:55
    help them out.
  • 5:55 - 5:58
    And, yeah, this is where you can find the
  • 5:58 - 6:01
    projects and start and everything.
  • 6:01 - 6:02
    Thank you.
  • 6:02 - 6:04
    S.2.: You can catch anyone of us after the
  • 6:04 - 6:10
    talk if you want to help us out. Thanks.
  • 6:10 - 6:13
    INTRO: So next up we have Kestap?? [00:06:12]
    on
  • 6:13 - 6:15
    the stage. Time starts now.
  • 6:15 - 6:18
    SPEAKER: Hi everyone. Today I'll be talking
    about Sinatra,
  • 6:18 - 6:21
    basic introduction. Probably everybody knows
    this, but more and
  • 6:21 - 6:22
    more though I'll be talking about how to write
  • 6:22 - 6:24
    an extension in Sinatra.
  • 6:24 - 6:27
    So the basic structure of Sinatra is this.
    There
  • 6:27 - 6:30
    is a request class that extends from Rack::Request,
    response
  • 6:30 - 6:37
    that extends from Rack::Response, ExtendedRack
    is basically for the
  • 6:37 - 6:39
    things that are not in rack, and so they
  • 6:39 - 6:42
    define extra methods there.
  • 6:42 - 6:46
    There is a commonlogger which extends from
    Rack::CommonLogger, and
  • 6:46 - 6:49
    this is the main part, Base.
  • 6:49 - 6:52
    So there are actually three ways to, there
    are
  • 6:52 - 6:55
    actually three ways to extending Sinatra.
    The first one
  • 6:55 - 6:59
    is extensions, the second one is - no.
  • 6:59 - 7:02
    Not quite.
  • 7:02 - 7:04
    The second one is helpers and the third one
  • 7:04 - 7:06
    is middleware. I won't be talking about middleware
    probably,
  • 7:06 - 7:10
    there is a lot of material on that. but
  • 7:10 - 7:14
    the extensions and helpers, I've found it
    difficult to
  • 7:14 - 7:17
    use them, so. I've kind of made a small
  • 7:17 - 7:18
    presentation here.
  • 7:18 - 7:21
    So the first difference between helpers and
    extensions is
  • 7:21 - 7:24
    that, in helpers, you use a helper or you
  • 7:24 - 7:29
    write a helper if the functionality is required
    in
  • 7:29 - 7:32
    the get method or post method or any other
  • 7:32 - 7:35
    blocks that we use.
  • 7:35 - 7:39
    So inside a route block the extensions are
    for
  • 7:39 - 7:41
    extending the functionality of Sinatra itself.
  • 7:41 - 7:45
    So for example, inside a get block we find
  • 7:45 - 7:48
    our two, return JSON response every time,
    so I
  • 7:48 - 7:51
    can make a function like this, JSON(a) and
    convert
  • 7:51 - 7:55
    basically converts our hash into a JSON string.
  • 7:55 - 8:00
    So the implementation is this. You write it
    in
  • 8:00 - 8:03
    a module called Helpers. You define the method,
    you
  • 8:03 - 8:07
    pass it in, and it basically returns the string.
  • 8:07 - 8:10
    And you include your helpers in before, in
    your
  • 8:10 - 8:11
    app file.
  • 8:11 - 8:13
    So to write this as a gem you have
  • 8:13 - 8:17
    to put that under a namespace of Sinatra,
    then
  • 8:17 - 8:20
    use the module, the same code as above.
  • 8:20 - 8:22
    And these two are the magic things that actually
  • 8:22 - 8:24
    happen. So base dot helpers is almost similar
    to
  • 8:24 - 8:27
    adding helpers json inside your app file.
  • 8:27 - 8:30
    So, and base dot set is basically, it sets
  • 8:30 - 8:36
    the json_content_type, sets the request_content_type
    to JSON by default
  • 8:36 - 8:38
    for every request.
  • 8:38 - 8:44
    So the other thing, the major portion is extensions.
  • 8:44 - 8:48
    So in extensions, Sinatra provides extensions
    to, let's say
  • 8:48 - 8:51
    you want to define a new route, so you
  • 8:51 - 8:54
    can do that by extensions. I'll demonstrate
    a small
  • 8:54 - 8:59
    thing, a small route actually. So I created
    this
  • 8:59 - 9:01
    extension today.
  • 9:01 - 9:03
    So I have a module Sinatra, I have this
  • 9:03 - 9:07
    super module, and this is an extra route.
    So
  • 9:07 - 9:12
    this, the route method is provided by Sinatra
    base,
  • 9:12 - 9:15
    and I'm extending that, so that every, every
    request
  • 9:15 - 9:18
    that you make to this end point, to, with
  • 9:18 - 9:22
    a method request of this one, instead of get
  • 9:22 - 9:26
    r post, it will return something pretty good.
  • 9:26 - 9:32
    So start it up.
  • 9:32 - 9:39
    And yeah. So that's what it does.
  • 9:44 - 9:51
    So, you don't have to clap for that, it's
  • 9:51 - 9:52
    lame.
  • 9:52 - 9:55
    So the basic difference between these two
    is that
  • 9:55 - 9:58
    this is, this is an extension of Sinatra.
    This
  • 9:58 - 10:00
    route is not defined but we are defining that
  • 10:00 - 10:00
    route.
  • 10:00 - 10:03
    We are using the things that are provided
    by
  • 10:03 - 10:06
    Sinatra and we are basically extending. So
    the register
  • 10:06 - 10:11
    method is a method provided by Sinatra where
    all,
  • 10:11 - 10:13
    whatever module you define have to be registered
    with
  • 10:13 - 10:19
    Sinatra, so that every app that you use, and,
  • 10:19 - 10:23
    like this. So every app that you use, you
  • 10:23 - 10:26
    just call register Sinatra, that one, and
    I'll, I've
  • 10:26 - 10:31
    defined my route instead of get slash, I have
  • 10:31 - 10:34
    used doge and it returns this.
  • 10:34 - 10:39
    So the basic difference is that it's, like
    you,
  • 10:39 - 10:42
    if you want to extend so there are these
  • 10:42 - 10:48
    two things, and I think that's it.
  • 10:48 - 10:55
    VINASH: Yeah, so. This Billard, I am Vinash.
    We
  • 10:55 - 10:59
    are from Mumbai, RV?? [00:10:57] So I just
    want
  • 10:59 - 11:01
    to tell all of you guys, and introduce us
  • 11:01 - 11:02
    too, we're from Mumbai RV?? [00:11:01].
  • 11:02 - 11:05
    We have total counted seven meet ups in all.
  • 11:05 - 11:07
    So we are on our way to have a
  • 11:07 - 11:10
    big meet up soon. Maybe in June or later.
  • 11:10 - 11:13
    But till now we have a frequent audience of
  • 11:13 - 11:16
    ten to twenty people, always there. We have
    one
  • 11:16 - 11:19
    or two talks, we have a single hack session
  • 11:19 - 11:21
    once. That was for Brails?? [00:11:19]
  • 11:21 - 11:25
    We are not going to push anything, but we
  • 11:25 - 11:29
    are able to discuss a few things and we
  • 11:29 - 11:32
    wrote entire cookies, et cetera et al. Everyone
    knows.
  • 11:32 - 11:35
    So there is a mindset about Bombai that Bombai
  • 11:35 - 11:37
    is partially, Bombai has very few jobs and
    all
  • 11:37 - 11:40
    that stuff. But I can say that nowadays with
  • 11:40 - 11:45
    so many startups starting up, the salaries
    are very
  • 11:45 - 11:48
    good I guess, currently.
  • 11:48 - 11:52
    So I guess I will tell you that. You
  • 11:52 - 11:55
    should ship to Bombai if you are born in
  • 11:55 - 11:56
    part of Bombai, you should definitely come
    back to
  • 11:56 - 12:00
    Bombai rather than going to Bangalore and
    Pume, because,
  • 12:00 - 12:00
    yeah.
  • 12:00 - 12:07
    I know! The intellectual level at Bombai is
    a
  • 12:08 - 12:11
    little low as compared to Bangalore or Pume,
    but
  • 12:11 - 12:14
    we need to change that, and we want guys
  • 12:14 - 12:16
    like you to come back to Bombai who were
  • 12:16 - 12:19
    born in a part of Bombai and increase the
  • 12:19 - 12:21
    ?? [00:12:18] of Bombai to a level which can
  • 12:21 - 12:24
    compete with Bangalore and Pume itself.
  • 12:24 - 12:26
    So I want Billard to say a few words
  • 12:26 - 12:29
    about the same.
  • 12:29 - 12:32
    BILLARD: Actually I just interacted with some
    of the
  • 12:32 - 12:35
    peers here, and I found out that they didn't
  • 12:35 - 12:38
    even know that there's are some developers
    in Bombai
  • 12:38 - 12:41
    like who know Rails or something. So we just
  • 12:41 - 12:45
    came here to give a lightning talk that, oh,
  • 12:45 - 12:48
    dude we are, we exist there, there are some
  • 12:48 - 12:50
    people who are trying to make a dent, not
  • 12:50 - 12:53
    in the, not in the universe, but at least
  • 12:53 - 12:54
    in Bombai.
  • 12:54 - 12:58
    To, so we are that's what we are putting
  • 12:58 - 13:01
    all our efforts, like, and that's what, as
    my-
  • 13:01 - 13:05
    as Vanash said that we are about to complete
  • 13:05 - 13:10
    first annual city for Mombai. I RV?? [00:13:11].
    That's
  • 13:10 - 13:12
    what we are now making the name out of
  • 13:12 - 13:13
    it.
  • 13:13 - 13:17
    So we are created at least a small event,
  • 13:17 - 13:22
    which, so, which we all are planning, looking
    forward
  • 13:22 - 13:27
    to. So that's all we have. And Bombai RV
  • 13:27 - 13:31
    is alive and it will be.
  • 13:31 - 13:36
    SATYA KALLURI: Hey guys, this is Satya, I'm
    from
  • 13:36 - 13:38
    Hadribad?? [00:13:36], and you know, I basically
    want to
  • 13:38 - 13:40
    talk about technology meetups. I've been part
    of some
  • 13:40 - 13:43
    technology meetups for quite some time. And
    you know
  • 13:43 - 13:45
    to be very straight, I was a little upset
  • 13:45 - 13:47
    with the way they go.
  • 13:47 - 13:49
    So, and fortunately, you know, I've been in
    touch
  • 13:49 - 13:51
    with some of the technologies these days,
    and they've
  • 13:51 - 13:53
    revived the hope in me, so I just wanted
  • 13:53 - 13:55
    to share some of my learnings, and how can
  • 13:55 - 13:59
    we make better use of these technology meetups.
  • 13:59 - 14:02
    Oh, by the way, I'm Satya Kalluri and our
  • 14:02 - 14:05
    group is @HydRuby, so you can follow us there.
  • 14:05 - 14:06
    So the first thing is I believe there are
  • 14:06 - 14:09
    two kinds of meetups in the universe. There
    are
  • 14:09 - 14:10
    two really kind of different meetups.
  • 14:10 - 14:13
    A) is technology meetups, which we need to
    consider
  • 14:13 - 14:16
    them as absolutely local. It's like you and
    me
  • 14:16 - 14:17
    catch up together in the next house or the
  • 14:17 - 14:19
    next coffee house. It doesn't have to be as
  • 14:19 - 14:21
    big as this in total area?? [00:14:21]. So
    it's
  • 14:21 - 14:23
    a technology meetup where you know what, it's
    a
  • 14:23 - 14:27
    local thing. And you know what, the, and it's
  • 14:27 - 14:29
    focused. It doesn't have to be as wide agenda
  • 14:29 - 14:30
    as this.
  • 14:30 - 14:32
    It could be as simple as a bug-a-thon. It
  • 14:32 - 14:34
    could be as simple as learning a new gem,
  • 14:34 - 14:36
    or it could be anything basically. A small
    local,
  • 14:36 - 14:37
    focused.
  • 14:37 - 14:39
    And there are other ones which are technology
    conferences.
  • 14:39 - 14:41
    These are bigger ones, where in what, all,
    it's
  • 14:41 - 14:43
    like one of the organizers said, you know
    like,
  • 14:43 - 14:46
    made of communities and sub communities. Atoms
    and molecules,
  • 14:46 - 14:46
    right.
  • 14:46 - 14:49
    So these small technology meetups, they come
    up together
  • 14:49 - 14:53
    and create these bigger conferences, regional
    ones, which have
  • 14:53 - 14:54
    a wider agenda.
  • 14:54 - 14:57
    So my problem is about the technology meetups.
    The
  • 14:57 - 14:59
    conferences are going good. GCRC here is an
    example,
  • 14:59 - 15:01
    they're doing an awesome job. But how can
    we
  • 15:01 - 15:04
    improve the technology meetups. You know whenever
    I catch
  • 15:04 - 15:06
    up with folks at the lunch place or something,
  • 15:06 - 15:08
    the majority of them say, oh, you know, my
  • 15:08 - 15:10
    meetup gets only two attendees, three attendees.
  • 15:10 - 15:12
    You know that over a period of time I've
  • 15:12 - 15:14
    just found that certain items, if, which if
    we
  • 15:14 - 15:16
    address them properly I think the local technology
    meetups
  • 15:16 - 15:18
    are gonna be kickass.
  • 15:18 - 15:20
    So.
  • 15:20 - 15:23
    So. Basically I wanted to let you know what
  • 15:23 - 15:26
    a technology meetup is, first of all, and
    why
  • 15:26 - 15:27
    are they for?
  • 15:27 - 15:30
    Technology meetups are absolutely for techies
    to collaborate, learn,
  • 15:30 - 15:33
    contribute, share knowledge. So these are
    local ones. So
  • 15:33 - 15:34
    do understand, these are the only for those
    techies.
  • 15:34 - 15:37
    They're not for the job seekers and not the
  • 15:37 - 15:39
    employers. Whenever there's a technology meetup
    going, and if
  • 15:39 - 15:40
    you need a Rails developer, please do not
    go
  • 15:40 - 15:41
    there.
  • 15:41 - 15:43
    And if you're looking for a job, don't go
  • 15:43 - 15:45
    there. Just, let's not pollute these small
    local meetups.
  • 15:45 - 15:48
    They have for technology peers to basically
    go there,
  • 15:48 - 15:51
    share knowledge and solve each others problems
    and become
  • 15:51 - 15:53
    better in technology.
  • 15:53 - 15:55
    You know the last two are acceptable for conferences
  • 15:55 - 15:57
    like these, where, you know, these are big
    things
  • 15:57 - 16:00
    where there are networking opportunities and
    tech meetups and
  • 16:00 - 16:03
    everything. But for local meetups let's stick
    to technology.
  • 16:03 - 16:06
    That way everybody who comes, you know what,
    knows
  • 16:06 - 16:08
    what's going to happen. It's technology. This
    is Rails,
  • 16:08 - 16:11
    which I love. I come here to write, to
  • 16:11 - 16:12
    learn Rails.
  • 16:12 - 16:15
    And while participating, you know what, these,
    the following
  • 16:15 - 16:17
    six things are the most important things which
    I
  • 16:17 - 16:19
    could recommend everybody to follow.
  • 16:19 - 16:21
    The first thing is identity. Most of those
    whom
  • 16:21 - 16:23
    I see don't have an identity on Twitter, don't
  • 16:23 - 16:25
    have an identity on StackerWorkflow, even
    meetup I see
  • 16:25 - 16:27
    some of them say plus five. Now what the
  • 16:27 - 16:29
    heck does plus five mean?
  • 16:29 - 16:31
    Not what, who are the other five guys? So
  • 16:31 - 16:32
    it would be nice if they identities, because
    that
  • 16:32 - 16:35
    way I might want to communicate with that
    fifth
  • 16:35 - 16:38
    guy. I don't need to contact this first guy.
  • 16:38 - 16:40
    So and you are gonna create your identity,
    somebody
  • 16:40 - 16:42
    needs to contact you directly, you know what,
    it
  • 16:42 - 16:44
    creates an open channel, and as one of them,
  • 16:44 - 16:45
    one of the speakers said, you know, you are
  • 16:45 - 16:47
    going to create and identity and then a brand.
  • 16:47 - 16:49
    So this is the first step. So create an
  • 16:49 - 16:52
    identity for yourself on Twitter, StackerWorkflow
    and everything.
  • 16:52 - 16:55
    It adds authenticity to the group, you know.
    Two
  • 16:55 - 16:57
    guys, two persons catch up in a meetup doesn't
  • 16:57 - 16:59
    make sense. But two plus five is seven, so
  • 16:59 - 17:01
    when seven people really catch up in a meetup,
  • 17:01 - 17:03
    I think it adds a lot of authenticity to
  • 17:03 - 17:04
    the group.
  • 17:04 - 17:06
    When you guys have your own facebook account,
    why
  • 17:06 - 17:08
    not have your own StackOverflow account. I
    don't get
  • 17:08 - 17:08
    it.
  • 17:08 - 17:12
    The, so the next thing is RSVPs. I see
  • 17:12 - 17:16
    many RSVPs, like even our @HydRuby has thirty-five
    RSVPs,
  • 17:16 - 17:18
    but only four of them turned up, so. Take
  • 17:18 - 17:21
    your RSVPs seriously because there are people,
    like, you
  • 17:21 - 17:22
    know, they're not awake, and you know all
    these
  • 17:22 - 17:26
    people who take these meetups very seriously,
    and there
  • 17:26 - 17:28
    may not be some, some people who buy beers
  • 17:28 - 17:29
    for everybody who come up and-
  • 17:29 - 17:31
    When 31 beers are leftover, you know, nobody's
    gonna
  • 17:31 - 17:34
    buy them, so. Please take your RSVP seriously.
    That
  • 17:34 - 17:37
    adds authenticity to the group, OK.
  • 17:37 - 17:38
    And the next thing is attendees, you know,
    don't
  • 17:38 - 17:41
    wait for ten or twenty people to really come
  • 17:41 - 17:43
    to a meetup. You just need one other guy
  • 17:43 - 17:45
    to listen to you and you can create a
  • 17:45 - 17:48
    meetup, and you can, guys, can really discuss
    about
  • 17:48 - 17:49
    technology.
  • 17:49 - 17:51
    The next thing is StackOverflow, you know,
    just share
  • 17:51 - 17:53
    and contribute. You don't have to really,
    I mean,
  • 17:53 - 17:55
    for you to really become a good meetup guy,
  • 17:55 - 17:58
    I think at least spend every day, fifteen
    minutes
  • 17:58 - 18:01
    on StackOverflow. Don't just find answers
    but answer the
  • 18:01 - 18:03
    questions. This I've learned from Swanand.
    This guy has
  • 18:03 - 18:05
    some 6,000 bloody points on StackOverflow.
    I have some
  • 18:05 - 18:06
    twelve hundred, that's it.
  • 18:06 - 18:08
    So I've learned from it. So become a better
  • 18:08 - 18:10
    contributer. You become really confident,
    and you'll become a
  • 18:10 - 18:13
    different person. You can also contribute
    at GitHub. If
  • 18:13 - 18:16
    you don't know which GitHub module to really
    contribute,
  • 18:16 - 18:20
    go for Codetriage. It gives you good popular
    libraries
  • 18:20 - 18:21
    to really help.
  • 18:21 - 18:23
    And, do you have an idea? Just stop working
  • 18:23 - 18:25
    on it. First learn better technology and then,
    you
  • 18:25 - 18:28
    know, you can definitely work on the product.
    And
  • 18:28 - 18:31
    the last thing is, like, spread the word.
    This
  • 18:31 - 18:33
    guy's already on me, so. Spread the word.
    Go
  • 18:33 - 18:36
    for Facebook. You can use Facebook too, and
    you
  • 18:36 - 18:37
    can also use Twitter.
  • 18:37 - 18:40
    So spread the word and make these technology
    meetups
  • 18:40 - 18:40
    a good thing.
  • 18:40 - 18:42
    Cheers guys, thank you.
  • 18:42 - 18:47
    SPEAKER: Before I start, big thumbs up for
    the
  • 18:47 - 18:50
    guys who started off. It's great to see, you
  • 18:50 - 18:54
    know, technology people, developers who care
    about social issues.
  • 18:54 - 18:57
    And here I am to talk about Milaap, which
  • 18:57 - 19:00
    is also a social enterprise. And I just want
  • 19:00 - 19:02
    to talk about what Milaap is all about and
  • 19:02 - 19:05
    how you can help.
  • 19:05 - 19:11
    So Milaap is a Crowdfunding platform for communities
    in
  • 19:11 - 19:16
    need which is powered by Ruby on Rails. So
  • 19:16 - 19:18
    we are a hardcore Ruby on Rails shop, and
  • 19:18 - 19:22
    we bridge the gap between people who are need
  • 19:22 - 19:25
    of help and people who want to help, right.
  • 19:25 - 19:28
    So let's quickly look at what that means.
    So
  • 19:28 - 19:31
    I'm sure all of us want to do good.
  • 19:31 - 19:33
    We want to help others. But when it comes
  • 19:33 - 19:38
    to helping others with financial aid a lot
    of
  • 19:38 - 19:41
    us are hesitant, because we are not sure,
    you
  • 19:41 - 19:43
    know, our hard-earned money, when we give
    it to
  • 19:43 - 19:45
    someone, you know, is it going to be used
  • 19:45 - 19:47
    in the right way? Is it the right person
  • 19:47 - 19:49
    I'm going to give this money to.
  • 19:49 - 19:53
    So Milaap tries to bridge this gap, right.
    So
  • 19:53 - 19:57
    Milaap has a set of profiles uploaded on our
  • 19:57 - 20:00
    website, which are across various kind of
    causes, and
  • 20:00 - 20:03
    you can, you can filter through various criteria
    and
  • 20:03 - 20:06
    choose them. And it helps you make an informed
  • 20:06 - 20:09
    decision about whom you want to help, right.
  • 20:09 - 20:11
    So this is how it brings, it bridges the
  • 20:11 - 20:14
    gap between people who want to help and people
  • 20:14 - 20:16
    who are in need of help.
  • 20:16 - 20:19
    How it works: It's very simple. Just four
    steps.
  • 20:19 - 20:21
    As I said, the first step is, you look
  • 20:21 - 20:25
    at the various causes and various filter criterias
    and
  • 20:25 - 20:26
    choose the person you need to help. You want
  • 20:26 - 20:28
    to help.
  • 20:28 - 20:31
    And make a loan on Milaap website. This is
  • 20:31 - 20:34
    just an online payment that you do. The real
  • 20:34 - 20:37
    test starts after website. So the whole business
    is
  • 20:37 - 20:41
    about testing transferrency. Can you trust
    Milaap that the
  • 20:41 - 20:43
    money is going in the right hands?
  • 20:43 - 20:47
    Another big thing, when it comes to helping
    is,
  • 20:47 - 20:51
    donations - there is this hesitancy that,
    you know,
  • 20:51 - 20:54
    my hard-earned money is going away, whereas
    what you
  • 20:54 - 20:56
    do on Milaap is not a donation but a
  • 20:56 - 21:00
    loan. That means you help one person, let's
    say
  • 21:00 - 21:02
    a person needs ten thousand rupees to build
    a
  • 21:02 - 21:05
    toilet. You contribute just 500 rupees out
    of it,
  • 21:05 - 21:06
    but that 500 is not a donation.
  • 21:06 - 21:09
    Within a year, month on month, you get back
  • 21:09 - 21:11
    your money, and all your 500 rupees back to
  • 21:11 - 21:15
    your account within one year's time. And then
    you
  • 21:15 - 21:18
    can utilize the same thing to make an impact
  • 21:18 - 21:21
    on someone else's life. This is what we call
  • 21:21 - 21:23
    making an impact, again and again with the
    same
  • 21:23 - 21:26
    money. And of course if you start believing
    in
  • 21:26 - 21:29
    the idea, you start putting more, more of
    money
  • 21:29 - 21:31
    in helping others, right.
  • 21:31 - 21:33
    So there's the four simple steps. Choose a
    customer,
  • 21:33 - 21:37
    make a loan, get repaid and relend.
  • 21:37 - 21:40
    How can you help, right? Of course the obvious
  • 21:40 - 21:44
    thing is you know check out the website, if
  • 21:44 - 21:48
    you like the idea, like us on Facebook. Tweet
  • 21:48 - 21:50
    about us, write about us on your blog. We
  • 21:50 - 21:51
    also have a widget which you can put on
  • 21:51 - 21:54
    your blog saying that you support Milaap.
  • 21:54 - 21:58
    But if you want to do even more, right,
  • 21:58 - 22:01
    obviously you can actually be an active participant
    on
  • 22:01 - 22:03
    our website. Go and make a loan to someone
  • 22:03 - 22:08
    there today. You could also do something interesting,
    I
  • 22:08 - 22:10
    think one of the best gift ideas that you
  • 22:10 - 22:12
    could have is to give a Milaap gift card
  • 22:12 - 22:13
    to someone.
  • 22:13 - 22:14
    That is you are gifting someone the ability
    to
  • 22:14 - 22:21
    help someone, and repeatedly keep doing it,
    right.
  • 22:21 - 22:23
    Finally you could also start a campaign. If
    you
  • 22:23 - 22:26
    want to go really big, you could adopt a
  • 22:26 - 22:28
    particular borrower on the website or adopt
    a particular
  • 22:28 - 22:32
    cause, and decide to raise some funds to impact
  • 22:32 - 22:34
    that critical cause. So you can decide to
    raise
  • 22:34 - 22:37
    some money for education. Let's say you're
    running a
  • 22:37 - 22:38
    marathon, you can put out, we can put up
  • 22:38 - 22:42
    a page for you and help you raise some
  • 22:42 - 22:45
    of money through you, through that event.
  • 22:45 - 22:50
    But, right, I'm sure many of you would think,
  • 22:50 - 22:53
    this guy's coming here talking about some
    company, Milaap
  • 22:53 - 22:56
    in three, four minutes, why should I go ahead
  • 22:56 - 22:58
    and do anything about it, right? So proof
    of
  • 22:58 - 23:00
    the pudding is in it's eating, right.
  • 23:00 - 23:03
    So what we want you is to first get
  • 23:03 - 23:06
    real, first-hand experience of what Milaap
    is and how
  • 23:06 - 23:09
    it helps people, how much you can trust it,
  • 23:09 - 23:12
    how transparant it is. So we are right now
  • 23:12 - 23:18
    giving away free credits, free Milaap credits
    worth 500
  • 23:18 - 23:20
    rupees. Anyone who wants to try out what Milaap
  • 23:20 - 23:23
    is without spending a buck from your pocket
    can
  • 23:23 - 23:29
    use this gift card, GCRC14, which some of,
    same
  • 23:29 - 23:33
    as our twitter hash tag as well. And you'll
  • 23:33 - 23:34
    be able to make a loan on Milaap just
  • 23:34 - 23:37
    by using those 500 rupees.
  • 23:37 - 23:39
    You just click on lend button and when it
  • 23:39 - 23:41
    comes to actually making a payment, just write
    in
  • 23:41 - 23:44
    the coupon and you'll be able to, you are
  • 23:44 - 23:45
    good to go, right.
  • 23:45 - 23:47
    Thanks a lot.
  • 23:47 - 23:49
    V.O.: Thanks Sarish?? [00:23:48].
  • 23:49 - 23:52
    SORU: Houston, can you copy me?
  • 23:52 - 23:57
    OK. So I don't have slides. So I'm Soru.
  • 23:57 - 24:00
    I'm nineteen. I'm still in college. So over
    the
  • 24:00 - 24:02
    last summer I did a Google Summer of Code
  • 24:02 - 24:05
    with a ?? project [00:24:03]. And I built
    this
  • 24:05 - 24:07
    GitHub for designers, so I thought I would
    teach
  • 24:07 - 24:09
    that here so that you could know about it,
  • 24:09 - 24:12
    and I could, I saw that there are some
  • 24:12 - 24:16
    design-oriented start-ups so they could probably
    give me feedback.
  • 24:16 - 24:19
    So the idea is that, like, when designers
    collaborate,
  • 24:19 - 24:23
    especially opensource designers, they go to
    mailing lists and
  • 24:23 - 24:27
    they share links, and so, let's say, Coby
    decides
  • 24:27 - 24:31
    to make, make this banner. So he starts with,
  • 24:31 - 24:34
    he starts with the logo, and he puts it
  • 24:34 - 24:36
    on MGo?? [00:24:34] and shares a link on the
  • 24:36 - 24:38
    mailing list, and people go plus one, cool,
    or
  • 24:38 - 24:39
    this is awesome.
  • 24:39 - 24:41
    And everybody gets that link. It's a pain
    in
  • 24:41 - 24:45
    the ass. So like, this is kind of very,
  • 24:45 - 24:48
    it's like spam, it's also annoying, and there's
    no
  • 24:48 - 24:51
    nice way to understand designer feedback.
  • 24:51 - 24:55
    So how it helps is, so you can, GlitterGallery
  • 24:55 - 24:58
    is not live right now. But I'll get it
  • 24:58 - 24:59
    up soon. So right now what you can do,
  • 24:59 - 25:02
    there is, you can go create a new design
  • 25:02 - 25:04
    project just like GitHub and you can create
    SVG
  • 25:04 - 25:08
    files, or you can create, you can upload your
  • 25:08 - 25:10
    own SVGs or PNG or JPEG or whatever.
  • 25:10 - 25:13
    So after that, so let's say he created the
  • 25:13 - 25:16
    same thing inverted in color, and he can post
  • 25:16 - 25:17
    it there and he can share links with his
  • 25:17 - 25:21
    friends and anybody else on the app can log
  • 25:21 - 25:24
    in and he can comment over there, so. So
  • 25:24 - 25:26
    cool, plus one and all that.
  • 25:26 - 25:28
    So some comments make sense. Because these
    comments are
  • 25:28 - 25:30
    nice, they make you feel good. But there are
  • 25:30 - 25:33
    certain comments which could, which could
    say that, OK,
  • 25:33 - 25:34
    if you're going to project this, this won't
    be
  • 25:34 - 25:37
    visible properly. So he can mark said comments
    as
  • 25:37 - 25:39
    issues. They go to an issue tracker, and somebody
  • 25:39 - 25:42
    else can forward the project, so it becomes
    theirs.
  • 25:42 - 25:44
    They can make changes to it and send back
  • 25:44 - 25:47
    poll requests to the original designer.
  • 25:47 - 25:50
    So he can, you know, pull back and. So
  • 25:50 - 25:53
    design projects can flourish that way. And
    also we
  • 25:53 - 25:57
    have a feature called GlitterPosts. So something
    like, I
  • 25:57 - 25:59
    don't know, maybe like medium, where you can
    go
  • 25:59 - 26:02
    and explain what, what design process you
    went through.
  • 26:02 - 26:05
    So every time you make a new change, anytime
  • 26:05 - 26:07
    you update, there is a commit happening in
    the
  • 26:07 - 26:08
    background.
  • 26:08 - 26:10
    So we use the great library provided by GitHub.
  • 26:10 - 26:13
    They use the same thing. So every instance
    has
  • 26:13 - 26:15
    a commit idea and all that. So you can
  • 26:15 - 26:18
    reference comments, so you can go there and
    say
  • 26:18 - 26:20
    I started with this file, this is the idea
  • 26:20 - 26:24
    behind it, and now, next I did this, this
  • 26:24 - 26:24
    is how it went.
  • 26:24 - 26:27
    So it also serves as a nice way to
  • 26:27 - 26:30
    learn, also maybe a nice way to judge designers'
  • 26:30 - 26:33
    thought process. So, so I would just like
    to
  • 26:33 - 26:36
    ask if any of you work with designers or
  • 26:36 - 26:38
    are designers yourselves, what could be some
    better ways
  • 26:38 - 26:41
    to collaborate, and how else could I extend
    this
  • 26:41 - 26:42
    project.
  • 26:42 - 26:44
    By the way, this is opensource. And next summer
  • 26:44 - 26:46
    for Google Summer of Code we might be taking
  • 26:46 - 26:48
    around two people. So if there are any students
  • 26:48 - 26:51
    here who would like to contribute, you can
    ping
  • 26:51 - 26:55
    me later. Thanks.
  • 26:55 - 27:00
    SPEAKER: Thanks, Qwinik, for the opportunity
    to be here,
  • 27:00 - 27:03
    first of all, because they sent us here just
  • 27:03 - 27:06
    to, to sponsor and represent Qwiniks.
  • 27:06 - 27:10
    It happens that I land in this company, and
  • 27:10 - 27:14
    I start to work with them as a programmer,
  • 27:14 - 27:17
    and I have a lot of difficulties to, to
  • 27:17 - 27:22
    adopt my German mindset to the Indian mindset.
    And
  • 27:22 - 27:26
    I'm still having difficulties. I'm still not
    understanding things,
  • 27:26 - 27:29
    and I'm trying, deeply.
  • 27:29 - 27:34
    So, but I want to advise, or talk about,
  • 27:34 - 27:38
    what, what was the things that I've faced
    here,
  • 27:38 - 27:41
    and first thing that I want to advise, and,
  • 27:41 - 27:46
    is that this is opensource work. Opensource
    work means
  • 27:46 - 27:48
    that there is no one willing to teach you.
  • 27:48 - 27:51
    You have to teach by yourself. And the code
  • 27:51 - 27:54
    is there. Please open libraries and write
    libraries. Not
  • 27:54 - 27:57
    write what is the code inside, and not what
  • 27:57 - 28:00
    is the documentation says, because documentation
    can be outdated.
  • 28:00 - 28:03
    So with this I will advise that you need
  • 28:03 - 28:06
    to handle your own will and what is the
  • 28:06 - 28:10
    consequences. So you need to be able to know
  • 28:10 - 28:13
    the difference between what you want and what
    the
  • 28:13 - 28:15
    project wants. This is for people that works
    either
  • 28:15 - 28:18
    for projects, companies or by freelancers.
  • 28:18 - 28:21
    And you need to think about the consequences.
    You
  • 28:21 - 28:23
    need to think about what is the, what is
  • 28:23 - 28:26
    the impact of this code, what is the maintenance
  • 28:26 - 28:29
    of this code, and what is the purpose of
  • 28:29 - 28:31
    this code. So think about that before writing
    the
  • 28:31 - 28:32
    first line of code.
  • 28:32 - 28:35
    The second thing is setting up your priorities.
    So
  • 28:35 - 28:42
    I found that it's somehow some people wants
    to
  • 28:42 - 28:45
    rush to the finish, just to find a solution,
  • 28:45 - 28:48
    and most of the time without understanding
    what the
  • 28:48 - 28:50
    problem is.
  • 28:50 - 28:53
    I spent two, three days thinking what the
    real
  • 28:53 - 28:55
    problem is. What is the thing that you have
  • 28:55 - 28:59
    to solve, and then solve it. It's become,
    it
  • 28:59 - 29:04
    will become easier in time. Mostly for maintainers.
  • 29:04 - 29:07
    They other one will be, be humble. Not be
  • 29:07 - 29:10
    humble in the streets saying, I'm not so,
    or
  • 29:10 - 29:13
    not so, be humble with your code. So don't
  • 29:13 - 29:15
    try to solve big problems. Solve the small
    problems.
  • 29:15 - 29:18
    So don't focus on the solution and the feature
  • 29:18 - 29:21
    that you want to generate. Focus in the method
  • 29:21 - 29:24
    that you're generate in. Making it consistent,
    make it
  • 29:24 - 29:25
    very small.
  • 29:25 - 29:27
    I am try to go because there is a
  • 29:27 - 29:31
    lot of the - I will jump the career
  • 29:31 - 29:34
    of the programming to the culture one. I'm
    sorry,
  • 29:34 - 29:37
    I will say. Clients are not gods. So you
  • 29:37 - 29:41
    are, you can be against them. It's allowed.
    You're
  • 29:41 - 29:43
    allowed to be against them.
  • 29:43 - 29:48
    Meaning I, don't want to take this seriously,
    but
  • 29:48 - 29:51
    meaning, meaning with this, you are allowed
    to say
  • 29:51 - 29:56
    no, you are allowed to say scopes. Saying
    we
  • 29:56 - 29:59
    are not allowed to do this. We need more
  • 29:59 - 30:03
    time or we need this resources that we don't
  • 30:03 - 30:07
    have. So please take in mind this because
    this
  • 30:07 - 30:10
    is a huge impact for the company owners, for
  • 30:10 - 30:13
    the people in project managers.
  • 30:13 - 30:17
    Project managers are waiting, expecting something
    from you, and
  • 30:17 - 30:20
    if you will not deliver on time, or what
  • 30:20 - 30:24
    they're expecting, you're breaking big rules.
    It's not a
  • 30:24 - 30:27
    small thing. You're breaking big, big rules.
  • 30:27 - 30:31
    With this, I want to add, you need to
  • 30:31 - 30:35
    be predictable. Whatever you do make it predictable
    for
  • 30:35 - 30:37
    the project manager, for the company owner,
    for the
  • 30:37 - 30:40
    client. Meaning if you're doing something
    that you know
  • 30:40 - 30:42
    that will be wrong, just tell him, it will
  • 30:42 - 30:46
    be wrong. But make it predictable. So don't
    make
  • 30:46 - 30:50
    people wait for you, to see what is, what
  • 30:50 - 30:52
    it will happen. One minute more.
  • 30:52 - 30:55
    OK, I just jump down to, so I will
  • 30:55 - 30:59
    say after coming here, I'm just seeing the
    huge
  • 30:59 - 31:02
    effort you are doing to work in opensource.
    I
  • 31:02 - 31:06
    have seen sadly for me that some books are
  • 31:06 - 31:11
    more expensive than what juniors earn in one
    month.
  • 31:11 - 31:15
    So that's brokes my heart, some way, because
    I
  • 31:15 - 31:19
    am able to buy in Europe we're able to
  • 31:19 - 31:23
    buy books as something, without side effects.
    And here
  • 31:23 - 31:27
    people that ?? [00:31:25], for them it's impossible.
  • 31:27 - 31:30
    I mean the book is two, is twice what
  • 31:30 - 31:33
    they earn a month. So with that, it is
  • 31:33 - 31:35
    impossible, I know that it's impossible to
    learn. So
  • 31:35 - 31:38
    I really admire the courage that you have
    to
  • 31:38 - 31:41
    come here. I know the price that you're paying
  • 31:41 - 31:43
    for coming here. I know the effort that you're
  • 31:43 - 31:46
    doing and I will like to say that, I
  • 31:46 - 31:48
    really admire that.
  • 31:48 - 31:51
    And yeah. My time is over. This guy has
  • 31:51 - 31:54
    an android with him, so I better run.
  • 31:54 - 31:58
    SPEAKER: OK, so I'll, I'll just go over this
  • 31:58 - 32:02
    and then see if I can-
  • 32:02 - 32:06
    So, what I'm going to do is I, the
  • 32:06 - 32:07
    time I have, I'll try to sow some doubts
  • 32:07 - 32:09
    in your mind, and then make you go back
  • 32:09 - 32:12
    and think about some of the things that you've
  • 32:12 - 32:13
    believed about.
  • 32:13 - 32:16
    So like I'll talk about my experience working
    with
  • 32:16 - 32:20
    ActiveRecord and why I think it's a very bad
  • 32:20 - 32:23
    thing for building business applications.
  • 32:23 - 32:25
    So ActiveRecord is good when you're building
    web applications,
  • 32:25 - 32:29
    shallow web applications that have a database
    and some
  • 32:29 - 32:33
    rich UI on top of it. But when you
  • 32:33 - 32:36
    are trying to build business applications
    that have a
  • 32:36 - 32:39
    lot of heavy logic, it's not a good, a
  • 32:39 - 32:40
    good thing to do.
  • 32:40 - 32:42
    I'll briefly talk about why it's not such
    a
  • 32:42 - 32:47
    good thing. One of the most problematic things
    about
  • 32:47 - 32:50
    ActiveRecord is it's so much coupled with
    databases. So
  • 32:50 - 32:52
    when I am trying to solve a problem that
  • 32:52 - 32:56
    is very business logic heavy, I tend to put
  • 32:56 - 32:58
    things that are difficult to, positions that
    are difficult
  • 32:58 - 33:00
    to reverse later.
  • 33:00 - 33:03
    The database schema is something that is very
    difficult
  • 33:03 - 33:05
    to reverse. ActiveRecord makes you do that
    upfront. Any
  • 33:05 - 33:09
    model that is tied to ActiveRecord, you can't
    write
  • 33:09 - 33:11
    this without connecting to database and all
    that. We
  • 33:11 - 33:13
    need to define schema up front.
  • 33:13 - 33:18
    Which I think is troublesome. So it kind of
  • 33:18 - 33:22
    makes it difficult to decouple the core business
    logic
  • 33:22 - 33:24
    from the framework. Most of the stuff you're
    writing
  • 33:24 - 33:26
    is tightly coupled with the framework. Something
    new comes
  • 33:26 - 33:29
    up, you need to rewrite the entire thing.
    There's
  • 33:29 - 33:32
    no, nothing that can you, you can take to
  • 33:32 - 33:35
    that new, new framework.
  • 33:35 - 33:40
    There other things, like, so whenever you
    encounter situations
  • 33:40 - 33:43
    which were not thought of when the framework
    was
  • 33:43 - 33:46
    designed, there are no points that allow you
    to
  • 33:46 - 33:49
    extend. There's no easy way to customize the
    ID
  • 33:49 - 33:54
    generator, logic. There's no easy way to incorporate
    composite
  • 33:54 - 33:56
    keys. So the project I was working on,w e
  • 33:56 - 34:01
    needed to use mySQL partitions. So I can't
    use
  • 34:01 - 34:02
    mySQL ID generation. I have to use auto composite
  • 34:02 - 34:03
    keys.
  • 34:03 - 34:05
    And there was no easy way of doing it.
  • 34:05 - 34:08
    There's a plugin that provides composite key
    support, if
  • 34:08 - 34:10
    you go look at the implementation of that,
    you'd
  • 34:10 - 34:13
    be scared to use it. So it's like, gorilla
  • 34:13 - 34:16
    patching - monkey patching to the extreme.
    So it
  • 34:16 - 34:21
    kind of like highlights some of the problems.
    How
  • 34:21 - 34:25
    the code to framework has been written.
  • 34:25 - 34:27
    And there are other features that I like and
  • 34:27 - 34:30
    other form mapping?? frameworks [00:34:29].
    Like you load a
  • 34:30 - 34:32
    bunch of objects, do something on it, at the
  • 34:32 - 34:36
    end they all get persisted to the database.
    It's
  • 34:36 - 34:40
    automatic, dirty checking transaction right
    behind. There's something called
  • 34:40 - 34:43
    a persistence data utility. I create an order,
    order
  • 34:43 - 34:44
    line items, all this stuff.
  • 34:44 - 34:47
    I create save and it saves everything. So
    limited
  • 34:47 - 34:49
    support for things like that.
  • 34:49 - 34:52
    These features are very important when you're
    trying to
  • 34:52 - 34:54
    follow these practices, domain-driven design,
    so you need to
  • 34:54 - 34:57
    work in terms of aggragates, so you need to
  • 34:57 - 35:00
    decouple your persistence logic from your
    busienss logic. All
  • 35:00 - 35:03
    that is very, very hard to do if you're
  • 35:03 - 35:04
    using ActiveRecord.
  • 35:04 - 35:07
    So there are some alternatives.
  • 35:07 - 35:10
    So datamapper is a framework, but I think
    it's
  • 35:10 - 35:14
    become stagnant. There's a new version of
    it called
  • 35:14 - 35:15
    Ruby?? [00:35:13]. I don't see a release for
    that
  • 35:15 - 35:17
    as yet. So those are some alternatives that
    you
  • 35:17 - 35:19
    can look at.
  • 35:19 - 35:25
    Or, yeah. Look at something in other languages.
    So
  • 35:25 - 35:27
    these are based on my observations of working
    with
  • 35:27 - 35:30
    ActiveRecord for the last five months, and
    I'm comparing
  • 35:30 - 35:34
    it with eight years I've spent working with
    Hibernate,
  • 35:34 - 35:40
    and this looks like a toy compared to what
  • 35:40 - 35:42
    that can do.
  • 35:42 - 35:43
    Thank you.
  • 35:43 - 35:45
    NIRANJAN PARANJAPE: So, a few really good
    talks. Heavy
  • 35:45 - 35:46
    talks. I'm gonna keep this light.
  • 35:46 - 35:49
    So any - talk abuot continous learning.
  • 35:49 - 35:50
    But before going there I want to talk about
  • 35:50 - 35:52
    what happens if you don't learn continuously.
  • 35:52 - 35:54
    So we have been doing interviews for quite
    some
  • 35:54 - 35:56
    time. And these are a few gems I have
  • 35:56 - 35:58
    heard while doing interviews.
  • 35:58 - 36:01
    So I asked a question: Which programming language
    do
  • 36:01 - 36:02
    you like?
  • 36:02 - 36:04
    Imagine the answer - come on.
  • 36:04 - 36:06
    AUDIENCE: Ruby!
  • 36:06 - 36:09
    N.P.: No. I program in Rails.
  • 36:09 - 36:15
    Go read RubyonRails dot org. You'll find something
    different.
  • 36:15 - 36:17
    Someone asked me, why shouldn't I use GOTO?
  • 36:17 - 36:19
    After all language supports it.
  • 36:19 - 36:22
    Do you know anything about cyclomatic complexity?
  • 36:22 - 36:24
    Do you know what other feature language supports
    which
  • 36:24 - 36:27
    are really bad programming constructs and
    you should generally
  • 36:27 - 36:27
    avoid?
  • 36:27 - 36:30
    Go read about that.
  • 36:30 - 36:33
    So I started the interview. I spoke about
    like,
  • 36:33 - 36:34
    OK we have been hearing a lot about, you
  • 36:34 - 36:37
    should ask skinny controllers and fat models,
    and there
  • 36:37 - 36:38
    was a huge buzz about it.
  • 36:38 - 36:40
    Then we went and said that, no we actually
  • 36:40 - 36:42
    need thin models.
  • 36:42 - 36:43
    So where to I write my business logic.
  • 36:43 - 36:46
    And I wrote a response. Helpers.
  • 36:46 - 36:51
    I asked someone, how do you scale your application?
  • 36:51 - 36:54
    I got a response: I don't have to, I
  • 36:54 - 36:56
    deploy in Cloud.
  • 36:56 - 36:59
    I asked someone, can you talked about GC?
  • 36:59 - 37:02
    Oh, GC, garbage compiler. Let's talk about
    it.
  • 37:02 - 37:06
    I asked someone, why is encapsulation important?
  • 37:06 - 37:10
    I heard, because the book says data security
    is
  • 37:10 - 37:10
    important.
  • 37:10 - 37:14
    And, last noted, but not the least - I
  • 37:14 - 37:16
    have heard this, actually.
  • 37:16 - 37:19
    I don't believe in learning in my personal
    time,
  • 37:19 - 37:22
    because I believe in work-life balance. Now,
    my answer
  • 37:22 - 37:24
    to that person is, this is the doctor's roadside.
  • 37:24 - 37:27
    Are you going to go to him, or are
  • 37:27 - 37:28
    you going to go to him?
  • 37:28 - 37:31
    You want your doctor to continuously learn
    and understand
  • 37:31 - 37:34
    his medical practices, and essentially keep
    up with the
  • 37:34 - 37:38
    latest technology. You are a software programmer.
    You are
  • 37:38 - 37:40
    You cannot afford to fall behind the scene.
    You
  • 37:40 - 37:41
    have to keep learning.
  • 37:41 - 37:43
    How do you keep learning? Lots of books are
  • 37:43 - 37:46
    out there. How many of you have read Pragmatic
  • 37:46 - 37:48
    Programmer's Journeyman to Masterman?
  • 37:48 - 37:51
    How many of you have read it twice?
  • 37:51 - 37:55
    This is a book you should read every year.
  • 37:55 - 38:00
    It's a brilliant book. Coding Honor. Clear
    coding. Wonderful
  • 38:00 - 38:05
    books. Read different blogs. Learn different
    language or paradigm,
  • 38:05 - 38:07
    because what you learn there, you can essentially
    translate
  • 38:07 - 38:11
    it into your understanding of programming
    itself, and maybe
  • 38:11 - 38:14
    bring some parts in your actual code.
  • 38:14 - 38:17
    But just reading these things are not important.
    Understand
  • 38:17 - 38:19
    the concept behind is important. Where do
    you understand
  • 38:19 - 38:20
    the concept?
  • 38:20 - 38:22
    Maybe you can go to, read c2 dot com.
  • 38:22 - 38:24
    How many people know that? What is c2 dot
  • 38:24 - 38:24
    com?
  • 38:24 - 38:27
    It's a first Wiki. And then maybe you can
  • 38:27 - 38:29
    go to c2 dot com. And maybe you can
  • 38:29 - 38:30
    go to c2 dot com again, because that's a
  • 38:30 - 38:34
    brilliant, brilliant site.
  • 38:34 - 38:36
    And most importantly, contribute to opensource.
    We hear a
  • 38:36 - 38:39
    lot about hey, you should contribute to opensource
    because,
  • 38:39 - 38:42
    you know, give back to the community, it's
    fun.
  • 38:42 - 38:45
    But there is one major aspect of contributing
    to
  • 38:45 - 38:47
    opensource that's just learning, self-learning.
    And that is something
  • 38:47 - 38:49
    which I have done a lot.
  • 38:49 - 38:52
    How do you start? You start by reading code.
  • 38:52 - 38:53
    Read what other people are writing.
  • 38:53 - 38:57
    That's the first step in understanding how
    to write
  • 38:57 - 38:59
    better code.
  • 38:59 - 39:02
    Essentially it allows you to pair with good
    people,
  • 39:02 - 39:04
    across the globe, and get their feedback about
    your
  • 39:04 - 39:07
    code. Talk to them about their design, their
    understanding
  • 39:07 - 39:11
    of programming. So it's a wonderful tool.
  • 39:11 - 39:13
    Find a mentor if possible, and just, don't
    just
  • 39:13 - 39:15
    stop there. You have to actually go and become
  • 39:15 - 39:18
    a mentor and teach someone what you have learned.
  • 39:18 - 39:25
    So yeah. That's it.
Title:
Garden City Ruby 2014 - Lightning Talks
Description:

more » « less
Duration:
39:52

English subtitles

Revisions