Summarized using AI

Lightning Talk: Civic Coding In Ruby

Kyle Dolezal • October 13, 2017 • Selangor, Malaysia • Lightning Talk

In Kyle Dolezal's lightning talk at RubyConf MY 2017, he explores the theme of 'Civic Coding in Ruby', emphasizing the important role that technology and programming can play in improving civic engagement and government services. He begins by acknowledging that attendees are likely motivated by a desire for happiness and meaningful work. To illustrate the concept of civic hacking, he provides a series of relatable scenarios where individuals naturally help others in need, transitioning this into the idea that citizens can contribute positively to their communities through technology.

Key points discussed include:
- Definition of Civic Hacking: Dolezal clarifies that civic hacking is not about illicit activities; rather, it involves using technology to enhance government transparency and services for citizens.
- Concrete Examples of Civic Hacking: He shares the example of a Ruby application that helps U.S. cities profile public services and make them accessible via an API, demonstrating how technology can directly benefit local communities.
- Global Significance: Dolezal discusses how civic hacking relates to broader issues like climate change and public health, presenting the Paris Climate Accords as a significant global effort informed by civic hacking principles and improvements to public health initiatives through civic apps.
- Diversity in Civic Hacking: Emphasizing the value of diversity, he connects this to the rich variety of developers who contribute to civic hacking efforts.
- Need for Insiders and Outsiders: He elaborates that civic hacking is enhanced by both insiders (government staff) and outsiders (civic technologists), each bringing unique perspectives and skills. This dual approach can lead to innovative solutions for public issues, such as apps that monitor political accountability or public health outbreaks.
- Getting Involved: Dolezal encourages attendees to engage with civic hacking through platforms like Code for America, highlighting that Ruby is the top language used in civic projects due to its accessibility and dynamism.

In concluding remarks, Dolezal calls upon the technological community to recognize the potential for civic hacking to create happiness and address meaningful societal challenges. He invites those interested to consider local, national, or international engagements in civic tech initiatives. The talk inspires programmers to leverage their skills for public good, emphasizing a collaborative approach to improving civic life through technology.

Lightning Talk: Civic Coding In Ruby
Kyle Dolezal • October 13, 2017 • Selangor, Malaysia • Lightning Talk

Speaker: Kyle Dolezal

Website: http://rubyconf.my

Produced by Engineers.SG

RubyConf MY 2017

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
Explore all talks recorded at RubyConf MY 2017
+16