00:00:06.820
there we are so hello everyone as you
00:00:09.950
heard I am Kyle and I'm going to be
00:00:11.750
talking about Civic coding in Ruby so as
00:00:16.460
your in as you go to a convention do the
00:00:21.980
talks ever kind of blur together and you
00:00:25.310
kind of stare off into space and you
00:00:27.200
wonder why are we all here what am I
00:00:30.140
doing here so I haven't had the chance
00:00:32.780
to meet all of you but I think that I
00:00:34.640
know at least two things about all of
00:00:36.680
you and and why you're all here one of
00:00:39.590
them is I think that you all like to be
00:00:41.390
happy and another one is I suspect that
00:00:44.000
most or all of you like to take care of
00:00:46.070
to work on things that are meaningful
00:00:48.469
rather than menial tasks or tasks that
00:00:52.879
are tedious and why I say this is
00:00:56.210
because as Rubeus ruby is meant to make
00:01:00.019
us all happy and if if you happen to be
00:01:03.559
using rails rails is convention over
00:01:06.290
configuration so it's set up to make us
00:01:09.200
able to work on meaningful and important
00:01:11.810
tasks so I think you like to all be
00:01:13.790
happy and work on things that that
00:01:16.460
matter and just to confirm that I in
00:01:19.640
fact know these things about you what
00:01:21.200
would you do if you come across these
00:01:23.840
two nice folks along the side of the
00:01:25.970
road and their car is broken down so
00:01:28.190
someone shout out an answer what would
00:01:29.720
you do if you if you see this scene
00:01:32.050
continue driving on or stop to help them
00:01:35.740
help them I'm hearing help them so you
00:01:39.320
come across this foreigner outside the
00:01:41.300
the magic and he doesn't know where to
00:01:42.860
go what would you do help him and and
00:01:47.660
here's my cat requisite cat photo for my
00:01:50.510
slides what would you do if you see the
00:01:52.160
sweet cat up the tree and you have take
00:01:54.980
a picture and the next step is
00:01:57.760
so why in all these cases would you help
00:02:00.260
the the person or animal in need because
00:02:03.470
I actually research shows that helping
00:02:06.410
people or helping animals I guess makes
00:02:09.200
people happy and we all like to be happy
00:02:11.690
so what if I were to tell you that
00:02:13.940
there's another group of people who
00:02:15.530
actually needs your help
00:02:16.880
and you're the perfect group of people
00:02:18.560
to help them but this group may not be
00:02:21.050
as obvious to see as the ones I just
00:02:23.620
shared with you so in fact the group of
00:02:27.020
people is your fellow citizens and the
00:02:28.970
way that you can help them is through
00:02:30.260
something called civic hacking and when
00:02:32.720
I say civic hacking what is in your mind
00:02:35.180
are you thinking that I i hack into the
00:02:37.370
Pentagon and launch some missiles is
00:02:39.530
that civic hacking
00:02:40.900
that's not the Civic hacking that I have
00:02:43.100
in mind is it that one you use a
00:02:45.320
horrible government website and you're
00:02:47.420
trying to accomplish the basic task that
00:02:49.760
that you have at hand is that what I
00:02:51.470
mean by civic hacking that may be a form
00:02:53.630
of civic hacking but that's not what I
00:02:54.920
have in mind
00:02:56.030
all that I'm talking about is just using
00:02:58.310
technology and new technological tools
00:03:00.860
to help make government better for
00:03:03.230
people so it sounds kind of simple and
00:03:06.140
at the same time it's an abstract kind
00:03:08.239
of airy-fairy concept so I'm gonna give
00:03:11.239
you a very concrete example that I think
00:03:12.890
will help you understand what civic
00:03:14.450
hacking is all about so this nice little
00:03:17.360
ruby app helps cities in the u.s. make a
00:03:20.810
really nice profile of the public
00:03:23.600
services that they offer and then put it
00:03:26.330
in a database easily and serve it via an
00:03:28.910
API some clients have been made for this
00:03:31.519
that allow people to do something like
00:03:34.030
use SMS to get a directory of the
00:03:37.010
services that are available for them and
00:03:38.810
their cities so this uses technology to
00:03:41.630
improve government for people in the
00:03:44.630
various cities and so it's an example of
00:03:47.269
civic hacking so you may be thinking
00:03:49.459
that's all well and good that's
00:03:51.320
happening in the US how does that impact
00:03:53.000
me so I have I think 15 minutes so I'll
00:03:57.470
give you a deal that if you give me
00:04:00.170
seven of those minutes I think I can
00:04:01.820
prove to you that civic hacking is
00:04:03.230
actually all about
00:04:04.310
exactly.you so starting now
00:04:08.250
do you like living on dry land and
00:04:10.890
having water to drink yes and not even
00:04:14.100
just water like a coca-cola coffee beer
00:04:16.859
anything that's made with water so the
00:04:20.190
Paris climate accords is basically
00:04:22.440
humanity's biggest effort to combat
00:04:24.810
droughts and flooding and all those
00:04:27.300
scourges of global warming and the CEO
00:04:30.480
target the co2 targets that are a basis
00:04:33.000
for the agreement are based on computer
00:04:35.130
models which in turn are based on work
00:04:37.470
done by folks who are by definition
00:04:39.810
Civic hackers now do you like being
00:04:43.200
healthy and not paying bribes I suspect
00:04:46.710
so so stoic hacking according to
00:04:50.100
researchers across 19 countries has all
00:04:52.680
these really tangible benefits benefits
00:04:54.630
of better economics better governance
00:04:57.480
better public health outcomes so two
00:05:00.450
really quick examples in the country of
00:05:03.000
Slovakia they made a really simple app
00:05:05.130
to list out public contracts and who got
00:05:09.060
those public contracts and that helped
00:05:11.280
to reduce corruption quite a bit and
00:05:13.350
then closer to home in Singapore there
00:05:15.900
was a simple app to map out the mosquito
00:05:18.860
dengue fever outbreaks and it improved
00:05:22.229
public health so do you like computers
00:05:25.289
and do you like Ruby yes we all like
00:05:28.350
those things so then I would suggest
00:05:30.780
that the values of civic hacking
00:05:32.460
probably align really well with your own
00:05:34.830
values so on the Ruby side rubyists if
00:05:38.789
you can say one thing about us it's that
00:05:40.380
were nice and civic hacking is a nice
00:05:43.320
thing to do the art of computer
00:05:46.200
programming a really foundational book
00:05:49.110
in in computer science so the author is
00:05:51.660
pointed out that once you have enough
00:05:54.289
stuff for yourself the basics in your
00:05:56.820
life the the most significant and an
00:05:59.460
important thing that you can do as a
00:06:01.080
person is to help other people and civic
00:06:03.810
hacking is an example of that and the
00:06:06.210
last part now I know we heard earlier
00:06:08.070
this morning about the word diversity
00:06:09.930
I'm using diversity in this sense from
00:06:14.280
the language from the survey and Stack
00:06:16.020
Overflow
00:06:16.800
so whatever it means to you most
00:06:19.380
developers value diversity
00:06:21.210
and civic hacking is oftentimes an
00:06:23.789
effort to improve diversity in
00:06:25.410
communities finally do you like things
00:06:27.780
that are not horrible so you if you do
00:06:32.039
like those things you may want to cover
00:06:33.539
your eyes or avert your gaze because
00:06:34.919
this may disturb you some of these
00:06:38.009
websites need a lot of work they're
00:06:39.960
optimized for like Internet Explorer or
00:06:42.599
maybe Netscape Navigator or something
00:06:44.699
and this next one is not so bad it can
00:06:47.130
show me the nonprofit organizations that
00:06:49.500
are going on in Malaysia which is a
00:06:51.090
really good concept but the problem is I
00:06:53.669
cannot search in terms of the services
00:06:56.340
that I want to get I have to imagine
00:06:58.320
what would be the name of a organization
00:07:00.389
that might be providing that service and
00:07:02.490
then only I can search so well not
00:07:06.180
surprisingly when the UN looks at
00:07:08.870
e-government services across countries
00:07:11.099
in Malaysia is not highly ranked and
00:07:12.960
what I'm trying to demonstrate is
00:07:14.789
there's a lot of opportunity for us to
00:07:16.710
improve this situation so if you don't
00:07:19.440
care about those things you can tune out
00:07:21.270
but if you do I'm going to talk about
00:07:22.919
the two paths to get involved and to
00:07:25.949
illustrate that the difference between
00:07:27.750
the two paths consider the case of
00:07:29.370
DuckTales suppose there's a DuckTales
00:07:31.770
jum and in that gem i got an error list
00:07:36.030
ducks error or no invalid duck error
00:07:38.870
when I'm trying to list out the
00:07:40.560
characters and duck tales now what would
00:07:42.090
you do in this case read the
00:07:43.949
documentation for the gem or check Stack
00:07:46.169
Overflow
00:07:48.610
so my point is that there are two
00:07:51.380
different options one is an insider's
00:07:54.230
option one is an outsider's option both
00:07:56.120
I would argue are valid and suppose that
00:07:59.480
you look in the mirror one morning and
00:08:00.920
you see this kind of gruesome Vistage
00:08:03.560
looking back at you what would you do
00:08:05.060
visit a proper clinic or search WebMD so
00:08:09.890
I'm hearing both cases insiders one and
00:08:12.050
outside are - one is both are equally
00:08:14.210
valid and so to consider why and it's
00:08:17.360
also the case in civic hacking insiders
00:08:19.340
and outsiders are both doing good work
00:08:22.100
so quickly the case of why insiders and
00:08:25.190
civic hacking why why is it the case
00:08:27.320
that I cannot eat durians and many
00:08:29.900
public places am i following up the air
00:08:32.810
only for myself or for everyone it
00:08:35.570
really is everyone's error right air is
00:08:38.479
one of those public goods that everyone
00:08:40.909
enjoys and conversely if I want to buy
00:08:43.820
an air purifier and improve the air for
00:08:46.310
everyone i individual don't have the
00:08:49.070
proper incentives to do that so with
00:08:51.440
with these public goods there's often
00:08:53.750
this free-rider problem and information
00:08:56.360
is often one of these cases and civic
00:08:58.460
hacking is often one of these cases so
00:09:00.190
this fellow who Steve Crocker who worked
00:09:03.290
on the ARPANET which is one of the kind
00:09:06.290
of forerunners to what became the
00:09:08.540
Internet described this very problem and
00:09:10.910
why public option folks are often need
00:09:15.590
to get involved government people so
00:09:17.660
just quickly there were all these
00:09:19.340
proprietary little networks that had to
00:09:21.350
be put together with a common
00:09:22.750
infrastructure and common protocol and
00:09:25.940
if a private company were the one to do
00:09:27.830
that then the private company would
00:09:29.870
control the whole network and that would
00:09:31.370
be undesirable so a public entity had a
00:09:35.660
neutral public entity namely the
00:09:37.490
government had to be the one to step in
00:09:39.980
and provide that and information is
00:09:43.160
often one of these public goods so a
00:09:45.440
really nice example of insiders who did
00:09:48.380
good work in civic hacking is this app
00:09:50.390
balance and so when folks are receiving
00:09:53.960
financial assistance in the u.s. they
00:09:56.210
can use this app to check their monthly
00:09:58.040
balance of what they have available to
00:09:59.990
them and check out this nice Ruby code
00:10:02.210
how easy it is to understand and imagine
00:10:05.300
how easy it would be to customize this
00:10:07.280
from state to state another nice one is
00:10:10.970
cute pets which animal shelters can use
00:10:13.700
this Ruby app to connect to their
00:10:15.980
animals to permanent homes
00:10:17.950
so as for why outsiders are necessary
00:10:21.200
for civic hacking consider what does a
00:10:23.930
pokemon have in common with a borg and a
00:10:27.260
pull request this is a head scratcher I
00:10:31.910
know any ideas
00:10:35.440
so what I have in mind is that all of
00:10:38.270
them need some outside stimulus or kind
00:10:42.230
of challenge in order to improve
00:10:43.610
themselves like a pokemon wouldn't
00:10:45.380
evolve into his next stage until he did
00:10:48.440
battle with other pokemon a Borg has to
00:10:51.290
assimilate other cultures in order to
00:10:52.820
improve and a pull request needs
00:10:54.580
comments in order to get better so often
00:10:58.910
government is the same way and there's
00:11:00.860
some research about this as well that I
00:11:02.360
won't go into so a good example of what
00:11:04.670
good work that outsiders do and in
00:11:07.070
public civic hacking is this app by the
00:11:09.920
American Civil Liberties Union and you
00:11:11.810
can see some stats here about police
00:11:13.850
misconduct in the US the problem that
00:11:15.800
often happens is when someone is
00:11:17.300
recording an incident the phone gets
00:11:19.550
confiscated or smashed or something and
00:11:21.590
so this app helps people get better
00:11:24.590
government services by keeping people
00:11:26.540
accountable and quickly sending a video
00:11:29.240
to a third party before a phone can get
00:11:32.090
taken away so this example of civic
00:11:34.250
hacking is one where in probably
00:11:36.200
government is not the the best party to
00:11:38.510
solve the problem probably it should be
00:11:40.340
an outsider so just quickly another
00:11:43.010
reason why outsiders are necessary is
00:11:45.170
because there's too little talent among
00:11:47.900
there's too little ite talent in
00:11:51.839
the US Department of Labor has some
00:11:53.880
stats about this but you probably can
00:11:55.290
get a sense of this as you go through
00:11:56.970
some some government websites that there
00:11:58.860
might be a bit of a lack of resources
00:12:02.360
finally there's not enough of an agile
00:12:05.310
workflow among government IT folks to
00:12:09.149
meet changing needs of the public so a
00:12:12.120
good example of outsiders who did civic
00:12:14.310
hacking is the Google Civic information
00:12:16.230
API which provides information about
00:12:18.329
voting and past and current elections
00:12:22.250
which helps folks basically get to the
00:12:25.560
polls and have a better government
00:12:27.290
experience when they have to vote so
00:12:31.709
when you would let sonic sit around too
00:12:34.380
much if you recall without taking any
00:12:36.389
action he probably would would give you
00:12:38.310
this look and maybe you're thinking the
00:12:39.959
same thing how do I get involved so
00:12:42.420
there are three quick simple things you
00:12:44.519
can do to get involved in civic hacking
00:12:46.290
and make a difference and the first one
00:12:47.880
that I want to talk about is using Ruby
00:12:50.040
so Code for America is the biggest civic
00:12:53.760
hacking organization in terms of number
00:12:55.740
of people that I know of and when I look
00:12:58.380
at their github I see that ruby is the
00:13:00.360
number one back-end language that that's
00:13:02.910
being used and why would that be the
00:13:04.980
case so I think there are three things
00:13:07.740
that make Ruby and ideal language for
00:13:10.079
civic hacking one of them is its
00:13:11.819
accessible so there are just too few
00:13:14.430
Civic hackers doing the jobs that we
00:13:16.769
need and ruby is a language that people
00:13:19.829
can pick up when they have the passion
00:13:22.709
to do the work and the subject matter
00:13:24.000
knowledge maybe they can pick up Ruby
00:13:26.339
easily and get involved also is a
00:13:28.769
dynamic language it lends itself well I
00:13:30.720
would argue to the kind of workflow that
00:13:33.000
that Civic hackers use and finally the
00:13:36.420
UN has looked at the kind of needs for
00:13:39.000
government eServices and civic hacking
00:13:40.649
and it's really kind of crud app
00:13:44.459
oriented many times and a framework like
00:13:46.829
rails can let folks easily meet those
00:13:49.170
needs so there are kind of three levels
00:13:52.649
on which I can use Ruby and just quickly
00:13:56.819
on on the local level there's an open
00:13:58.920
data program put together by the
00:14:00.689
Malaysia's government that provides data
00:14:03.329
for folks who want to do civic hacking
00:14:05.040
they have some really good data sets
00:14:06.810
there's also the shy happy knight model
00:14:08.970
so Chicago has a very good civic hacking
00:14:11.850
scene and I've been to this hack nights
00:14:15.209
and they're really well put together in
00:14:17.970
Chicago and the folks who did who
00:14:21.060
organized it put together a really nice
00:14:22.800
kind of guide for folks who want to
00:14:24.839
organize their own local civic hacking
00:14:26.370
efforts so you can look this up and
00:14:28.589
apply it locally on a national level
00:14:30.930
there is annual hackathon that focuses
00:14:33.630
on civic hacking and with cash prizes
00:14:36.060
for teams also the senior project which
00:14:39.440
does basically tries to improve
00:14:41.910
government for everyone they work on
00:14:43.860
api's they have hack nights they work on
00:14:46.589
apps and finally even on the
00:14:49.529
international level you can get involved
00:14:51.290
the UN puts together something and on
00:14:55.350
2017 the topic was on climate change so
00:14:59.940
whether you want to get involved on the
00:15:01.829
local level the national level or the
00:15:03.630
international level I would just invite
00:15:05.339
you to think about you know what makes
00:15:08.639
you happy and remember what makes other
00:15:10.350
people happy and remember that you have
00:15:13.019
the opportunity to really make a big
00:15:14.699
difference that's all thank you thank
00:15:18.180
you so much Kyle