00:00:04.120
well what are the rules the rules are lightning talks last five minutes and
00:00:11.259
at the end the mighty Gennady well hopefully it's not gonna end up
00:00:18.500
like that all the time but yeah that's it that that's it just all right and yeah so first talk is from Max Corrine
00:00:26.260
enjoy Thanks ok um before introduce myself who
00:00:32.419
knows this game you know where you swap the cards and need to find the pears and stuff cool very cool so let's play one
00:00:38.719
right now right now together so i create the game here for
00:00:44.179
two players a simple one if the Wi-Fi allows ok cool now what i do i just sent
00:00:50.210
I just Twitter the URL to this in this tweet where I
00:00:56.059
mentioned the Euro conference right so if you have
00:01:01.809
if you have a Wi-Fi
00:01:07.140
so if you have more or less reasonable connection just go to that URL and then
00:01:12.520
we will play okay i will hear the sound when you join anyway but in meanwhile I'll um I'll do the story
00:01:21.060
so my name is Max boring and I'm a rails
00:01:26.350
developer living in different countries trailing a lot and I like this game and I like to play this on the ipad with
00:01:32.140
someone next to me but then we play and then I have to go to another country and it's sad because we cannot play over the internet there is no option to play this
00:01:39.399
over the internet so i decided to create it myself and i decided to learn someone
00:01:44.740
joined cool we'll play in a minute so i decided to create one by while learning
00:01:50.470
elixir and L so I cannot make that guy wait so let's do this oh please put your
00:01:56.770
hand handler name Twitter handlers so we know with command plane so it's my turn let's do i
00:02:01.979
need to find two pairs cool
00:02:11.519
let's finish it oh I hope it's not the Wi-Fi or is it you thinking oh it's the
00:02:18.820
same one yeah cool you might turn again wherever you are go go
00:02:27.299
alright so probably Wi-Fi is not good for this no-good wipes nope
00:02:35.970
I've got two minutes I need to do my talk so
00:02:44.130
we'll finish later so I'll start with so i'll start with the
00:02:49.260
with the with the front from date from the end so you've heard that elixir
00:02:55.329
doesn't require a lot of resources right so i decided okay i'll give it a try and I try to run on 512 and beasts on the
00:03:01.209
digital ocean and you guess it didn't work and you guess why because no didn't
00:03:07.660
want to compile so what I did I jest ok I upgrade to one geek because this
00:03:13.060
lotion is it right so I install node and I downgrade back again to 512
00:03:18.840
so it worked and now I'll tell why i'll use elm actually it's some type inference you heard today
00:03:26.069
at school right it's really hard to break the code and it's no runtime earth really none ever if it can pass it works
00:03:34.819
excellent fetal architecture which redux was copied from and tons of fun
00:03:41.599
so i use circuits to communicate between the browsers so it goes to the elixir
00:03:48.629
instance and then goes vive WebSockets using the phoenix channels and for elm
00:03:53.640
support you have a cool library which does that and what i do I pass the complete-game state
00:04:00.810
every single time it makes things so much easier really I won't explain the details but really it is but then i have
00:04:08.160
a problem because the state can look like this enjoy his own right so what i do i just compress it with a third
00:04:13.650
string and base64 encoded and it becomes like five times smaller so
00:04:18.889
one of my fears was that you know elm doesn't have a certain library or something but nothing to a really
00:04:26.430
literally no problem because you can use ports and ports are very easy to use with latest
00:04:34.620
elm it's just basically like sending a synchronous call to to the server and get the response real easy so but web
00:04:42.090
sockets come at a price because they don't even work in every country because it depends on the protocol settings on
00:04:49.050
the providers and South stone just recently I realized my game doesn't run in Bali but we are lucky we can play
00:04:56.039
that right so why not do this more often and last but
00:05:01.470
not least who wants to see the code yay hey let's open source
00:05:07.970
so um I have this
00:05:14.950
don't follow me I have this repository I just created just this morning and
00:05:22.800
let's click this cool button nope
00:05:44.330
guys use it try it thank you thank you so much
00:05:59.030
so next talk next will be Johanna and Diana they
00:06:08.160
gonna talk about team Yoda from rails girls so it give us a minute just to set
00:06:15.000
it up okay I think we're ready okay so hi everybody we're Johanna and
00:06:23.370
ayana we're a bit nervous because this is the first talk we're holding at such a large conference we're participating
00:06:30.540
in this year's edition of the rails girls Summer of Code esteem Yoda and we
00:06:36.510
want to tell you about her journey learning web development and how he came to participate in this program
00:06:43.010
but first we would like to thank Yuriko and the risk some of code organizers
00:06:48.780
team for inviting us and providing free tickets so back to us
00:06:56.840
but back to us at this is yoga she studied philosophy and social sciences
00:07:03.180
and this is Diana she studied media and literature and she has worked as a
00:07:09.690
teacher and a media analyst so as you can see no technical background but we are very interested in technology we met
00:07:16.470
each other at our rails girls Berlin beginner's workshop in 2014 and we were so motivated we joined to project groups
00:07:24.210
immediately one of them the Ruby monsters which allowed us to participate in such a cool project as diversity
00:07:31.290
tickets org and we are currently rails girls Berlin organizers so feel free to
00:07:38.160
talk to us about us about that later if you're interested but what is raised got some of code
00:07:45.630
actually about and it is a fellowship program aimed at
00:07:53.040
getting women into open source and selected teams receive a three-month scholarship to work on open source
00:08:00.270
projects of their choice this year is the fourth edition of the summer of code and currently twenty teams all over the
00:08:07.260
world are participating so for our summer of code we decided to
00:08:13.050
work on a project called Sun sound drop feel free to check it out at sound drop that audio it is a project in which
00:08:19.620
users can upload audio files and connect them to places on maps
00:08:24.890
so these audio files are called drops here's an example of a drop the art cover on the right side and the map and
00:08:33.560
it's targeted at users so users can create audio guides tours or just share
00:08:41.070
a story of their favorite place and we would like to present to you some of the features that
00:08:48.480
we have been working on throughout the summer our first milestone was creating a JSON API so that with the future
00:08:56.700
mobile client users can send requests like please show me all the drops within
00:09:02.160
a one kilometre radius of my current position our sacred second feature was working on
00:09:07.620
the landing page so we took it look like that before we took the content and put
00:09:13.680
it in an about page and in our actual landing page we embedded a map where
00:09:18.840
users can see the drops that have been added to sound drop and they can click on the marker and be redirected to each
00:09:25.920
drop users can now also categorize their
00:09:31.440
drops because we implemented a tagging feature and if you want to categorize your drop as a sound or story yeah you
00:09:39.990
can do that now so we worked on these features very closely together and towards the end of the program we wanted
00:09:46.590
to ship our own features so I for my part created a my drops page where the
00:09:52.410
user you can see the drops she has created an account of them I
00:09:58.610
worked on a filter on the landing page so if you only wants two see drops that
00:10:04.269
are songs for example she can now check the box reload the page and will only
00:10:10.389
see the chosen drops so throughout the program we have had a great amount of
00:10:15.610
support we had a coaching company called absol vente there and Berlin where we are also based they provided us with
00:10:21.939
great rails coaches and space we also had some amazing remote coaches two
00:10:27.309
great mentors and an excellent supervisor and all of this was a great
00:10:32.499
environment to learn here you can see some of the tools that we have learned about throughout the
00:10:38.110
summer and worked with and the sad thing is the rails girl summer
00:10:43.299
of code is coming to an end next Friday it will be over but on the bright side
00:10:49.059
we are totally willing to use our skills and continue for during them we are
00:10:55.420
completely motivated about our new career path and we're looking for a job so feel free to approach us thanks a lot
00:11:10.840
and we just created a drop thanks thanks
00:11:27.290
next dog next cog is another another pair king guy and easel
00:11:43.470
you that's awesome so many cats we like cats
00:11:51.989
right
00:12:10.429
hi people of Morocco it's really nice to meet you all it's really nice to be here we are Ruby cats one of the teams taking
00:12:18.779
part in rails girls Summer of Code 2016 we work on Summer of Code teams up
00:12:25.829
I Mesa I've gone okay we're not gonna teach you how to
00:12:32.939
code because you probably know it better so we would like to talk about something
00:12:38.160
different about how it is to be a newcomer to programming while not having
00:12:43.739
any experience or education in this area and just struggling to
00:12:50.040
become a developer yeah what you can see here is pretty much we have five minutes so it's pretty
00:12:56.610
much all about me what I like what I love and what I do additionally computers were a big part
00:13:02.669
of my life since I was about eight playing on my first computers that expect from which I love still
00:13:11.689
ya later in life though I was pretty tech oriented person I did not pursue a
00:13:17.610
career in tech nevertheless I've had an amazing opportunity to work very close
00:13:23.850
to the places where the programming magic happened always dreaming about maybe someday I would do
00:13:31.110
this then I've had a daughter and after that I realized life is short and you
00:13:37.199
have to fulfill your dreams still well while you can so I signed up for the
00:13:44.189
first Ruby course organized by girls code fun foundation where I met Kenya
00:13:51.079
yeah and I used to be a complete zero or even minus one or something because I
00:13:56.850
knew completely nothing about programming luckily a programmer my best
00:14:02.310
friend in my last job so I became more and more aware of this and it was a time
00:14:08.670
of my great crisis caused by the kind of my job because I needed to create I
00:14:14.640
needed to do something important to have a continuous development and I couldn't find it in my job it was mostly about
00:14:22.470
financial matters and paper shuffling so I started to attend some itn tech
00:14:30.209
events like were so informatics they are called carrots HTML / CSS cause I got to
00:14:36.450
jungle girls were so workshops were for the first time in my life I shall I saw
00:14:41.970
a comment line and operating systems which wasn't windows and it was a great
00:14:48.899
event with great people but from some reasons I felt a bit
00:14:54.000
overwhelmed but a week or two later I attended raise girlhood workshops which
00:15:02.430
is a city but it also means about in polish and I was full of energy
00:15:07.730
motivated happy to be able to help other girls in our group and I also taught
00:15:14.850
kids programming scratch minecraft blockley with wanda robots a plaque
00:15:21.600
programming and some HTML and CSS and then i signed up to the ladies evening
00:15:26.910
with cold course well i would visa and then our Ruby paths merged and
00:15:33.890
together we attended broke water Ruby users group meetings
00:15:39.589
we signed up and got selected for dot class course organized by girls from
00:15:45.690
rice girls were so happens to be that our beautiful and
00:15:51.149
amazing kielbasa is right there big round of applause for amazing amazing
00:15:56.339
coach Thank You Basha okay and then we had a boot camp uh uh
00:16:05.310
yeah and we wanted to apply to raise girls summer
00:16:10.570
of code and this is how we looked while waiting on our results and then we got
00:16:16.420
in yay okay and we've come to the cherry on the top risk a summer of code and
00:16:22.890
which was the team's up because we wanted to give back to the community as soon as possible
00:16:29.040
we had a big expectations about our performance about issues solved and it's
00:16:34.990
like at first you are motivated open-minded are it will go like this and then life happens
00:16:41.910
our first crush with reality was understanding the code of the team's up
00:16:46.959
a be quite a week and working up well okay you feel ready for some coding but
00:16:53.230
then you're against back on something and when you're done and your code works you need to test it and it's even worse
00:16:59.980
than writing but will still feel so we got into programming on shooters please
00:17:06.360
yes there's still much to learn but if we could only come to the point
00:17:14.040
because we are saying this for some reason we wanted to show the perspective of
00:17:20.980
people like us of newbies you're experienced developer in and I don't
00:17:27.550
know if you remember the times when you were at your beginnings so just be a human avuto to people like us because
00:17:35.410
the things which are logical and just obvious for you maybe a big
00:17:41.610
black magic even foreigners live learn and code thank you
00:17:47.170
thank you thank you very much and thank you right girls
00:17:56.309
that's what our community is about people
00:18:02.190
ok so next up is steph and Mellie with
00:18:07.630
female def magic solution so that sounds really interesting
00:18:21.520
are we on yes help oh and my name is Melanie Keithley this is my coworker and
00:18:29.060
very good friend Stephanie Nemeth at Nemeth sorry and we have a magical
00:18:36.200
solution to the tech gender gap so you all know the stats
00:18:42.730
this is not to talk about why or if or who or when you can all look at that
00:18:49.040
stuff on the internet or look around you when you're at work we want to talk about the solution
00:18:55.300
so current solutions are organizing workshops to make women very
00:19:01.040
enthusiastic about tack we have a lot of those I live in Amsterdam and I think
00:19:08.060
they're for every woman and enthusiastic about tech we have a workshop now
00:19:13.840
organized female-friendly tech groups also very much of those now
00:19:20.890
fix the funnel issues CS courses are addressing issues that they have and
00:19:26.990
this is getting better so that's good
00:19:33.280
keep existing female devs from not leaving the tech community this is not
00:19:39.530
really being addressed at the moment which is sad so here is our magic solution I hope you
00:19:47.600
guys are ready hire female developers at know really
00:19:53.950
hire enthusiastic career changers as developers are junior developers
00:20:00.340
because this is what will happen um
00:20:05.350
so I just like to give a little background about via Melanie we are both
00:20:10.580
career changers and we both learned to code pretty much entirely at our jobs
00:20:15.820
and to present for the evidence i would like to present a case study of me
00:20:24.340
and I would like to talk about to the two main areas of contribution that I
00:20:30.520
have contributed to which is at work and in the community so at work I have
00:20:37.240
thousands of code contributions in production I've worked on multiple
00:20:43.030
projects where we both work for like a small web just rattle shop so we work on a lot of
00:20:50.570
different projects with startups and things so I work on multiple projects and for a lot of different organizations
00:20:56.380
and those work contributions are in fintech and education and wellness apps
00:21:02.600
and these are all really different projects they have some different front ends I
00:21:09.470
work with reacts angular and even backbone different databases we have no sequel
00:21:15.530
and sequel with and postgres and then I also get to work with micro
00:21:20.930
services and ma NOLA so the whole spectrum as a junior starting out I
00:21:26.930
worked with all these and I still do and despite contrary belief a junior dev can
00:21:33.020
contribute to all these code bases and I can do so fairly independently when you
00:21:38.330
start with small task and build up to building bigger and bigger features
00:21:43.990
next I'd like to talk about just a couple of like community contributions
00:21:49.250
so it's not just making code it's also what as I've grown as developer I've been able to give back to our community
00:21:54.980
in Amsterdam and I started a biweekly codes study group called coffee or beer
00:22:02.630
in code and we meet up every couple weeks and it's kind of language agnostic most people there for Ruby but anybody
00:22:09.980
can bring what they're working on and we just try to help each other out and then also this past August I organized a
00:22:17.180
stupid hackathon where people just come up with ridiculous ideas that have
00:22:22.190
no value really silly start-up ideas and we spent a day
00:22:27.650
hacking that and then presented it my project actually I have built a geocities CSS library so you could turn
00:22:35.540
your website into an awesome Oh city's looking page with scrolling Marquis and blinking and it was awesome
00:22:44.650
so thanks and please say hi to us at the party tonight
00:22:50.410
thank you
00:23:03.130
so next oh this is hot topic validations
00:23:08.390
and Christoph wafer I'm sorry I'm not familiar with
00:23:15.650
discerning but yeah here is
00:23:36.860
I'm hello everyone I'm Christopher vava i
00:23:42.139
work at ragnarsson company and today i will tell you little about validations
00:23:48.019
and our problem which we have invalidation we built our API for some of our product
00:23:56.289
in Radha we use road as micro framework for routing we used to
00:24:03.860
run as access layer to database and we our API
00:24:11.529
return data in JSON API standard
00:24:17.019
at the beginning we have only read mode so we don't have create and update
00:24:24.860
actions because we have static data written in
00:24:30.190
cs5 so during the time we need add update and create mode so some problems
00:24:39.529
begin with validations we used at the beginning some library which
00:24:45.129
casting every data every value to string
00:24:50.539
I was wondering why it was library designed to validate data
00:24:57.200
standard from web form so for obvious reason the only way of passing digits or
00:25:05.299
was compared with regular expression so I
00:25:12.200
will start looking something different gem which can handle hand can handle
00:25:18.769
this situation in super way so I found dry validation dry validation is library
00:25:26.870
built created by Andy Holland but mostly developing Viper solita and other people
00:25:36.049
from dry air be organization
00:25:41.889
dry validation was contributed is contributed by 17 people dry
00:25:49.600
organization have very jitter channel last day yesterday was reached the
00:25:58.630
latest version of dry validation and the driver Dashon is used by konami
00:26:05.170
validations and reform so maybe some of you Hilda about it
00:26:11.340
some of things are strange but awesome so I will tell you a little about them
00:26:19.530
we used to write double and and double our science in rabaa code but when we
00:26:27.220
use dry validation we must use single signs so at the beginning it could look
00:26:35.230
little weird but after that it is not so complicated and hard
00:26:42.720
another thing is that a driver ideation validated crashes not it
00:26:50.140
not validate the objects so crashes with name contains value kneel
00:26:57.610
and wear a name doesn't exist it's completely different caches and
00:27:02.950
completed the different cases so unless we must handle it and to remember when
00:27:08.380
we built our schema dry validation allow us to build
00:27:17.410
validation for nested data for hashes and arise so in this example we can
00:27:24.880
validate emails we can validate number of emails and of course we can validate
00:27:31.300
street and it is awesome for me drive validation allow create shared
00:27:39.040
schema and we buy this we cannot we can use many
00:27:46.120
schemas in many ways so we don't repeat ourselves writing dry rules writing
00:27:52.600
drive validation rule it was a couple of awesome things that
00:27:59.670
are of course many more so if some of you
00:28:05.170
start liking it it is the link for this documentation and you can open this
00:28:27.200
okay so next up importance of teaching and mentoring by the mere psychic
00:28:52.429
hello so about the importance of teaching and mentoring I think we already heard
00:28:58.409
enough stories you know from perspective of those who need learning so I'm going
00:29:03.929
to put this into a different perspective you know I'm going to talk about you already know how to code and who are
00:29:09.360
very comfortable with that and i want to tell you why teaching is important for you and not only for the community
00:29:15.030
around you so i'll do that by going through my story a bit and this is not
00:29:20.429
working so you know i started coding early in high school I did university then I
00:29:26.669
joined some startups and you know how startups are they lead you to crazy hours businesses fail it doesn't work
00:29:32.760
out and those crazy hours and not working out cause you to burn out which is not nice because you go to do what
00:29:40.049
you like to do you know you like the code you sit down you start i'll just try typing code but you'll get this
00:29:45.720
expression you know you just can't make you make yourself program and that sucks
00:29:51.510
because you can't do your work anymore and so what happened to me is I was already
00:29:57.630
started I already started preparing a curriculum for introduction to rail scores that I would you know do locally
00:30:04.440
and you know to pay my dad to community so I started teaching rails and then I
00:30:11.730
was invited to actually start teaching programming in a local boot campaign the
00:30:16.980
universal thing there was they were doing bootcamp in Java and I was like oh I never did java
00:30:23.510
well it turns away I actually did I did a project in university but you know I never pushed java code to production
00:30:30.510
that was used by real users and I never made money writing Java code but you know when you're in a room of 20 people
00:30:37.229
who never wrote a line of code before that doesn't matter at all like you have
00:30:42.539
to know how to write a class call a method and you know infinitely times
00:30:48.359
yeah infinitely many times more Java than anyone else in that room and that
00:30:53.729
counts and you know it's not about knowing Java it's about knowing how to code about all the experience you had so
00:31:00.899
I started teaching Java and it was good at it or so they told me and
00:31:06.710
the fact is when you start teaching someone teaching telling someone how to
00:31:12.210
code suddenly you have all these best practices that you know of you know why do we name things like that why don't we
00:31:18.779
name variables X Y and you start teaching them best patterns but then of
00:31:24.239
course people ask you well why is that the best better why this why is that the best practice why is that a pattern and
00:31:30.269
at that moment you have to stop and think about it why why am i doing that this way and you know it really takes a
00:31:38.609
lot of effort to put what you know into a few words that you can explain to someone you know that you could talk to
00:31:44.789
a five-year-old because I mean I was talking to 30 years old 40 years old but they never wrote a line of code so i had
00:31:51.149
to put it in a most meaningful way for them and that actually got me to
00:31:56.489
understand everything that I knew and you know I basically started coming up with reasons for best practices that I
00:32:03.359
kinda knew a bit but I started rediscovering patterns and that was
00:32:09.090
actually something very excited to me so by teaching people i started to loving
00:32:14.220
to love coding again and that was an amazing experience and because i started
00:32:19.999
enjoying coding again i found another job as a programmer a few months ago a few months later and i submitted my
00:32:27.299
first pull request it got completely destroyed it was stored down and i was
00:32:32.820
learning again and again it was a fabulous experience for me i joined top thailand i was in a room full of people
00:32:40.320
who were way more smarter than me and amazing experience really so
00:32:47.309
what I understood is that my love for programming means
00:32:54.390
that I love learning and you know those two things are actually connected i
00:33:02.940
love i love programming because i like to learn things i like to learn about domains with which i'm not familiar
00:33:09.040
anymore I like to program because I will learn about new patterns new architectures and teaching gives you
00:33:17.020
also an ability to learn more so kind of whatever I do teaching programming I'm doing it because I love learning and you
00:33:24.340
know you're here because you came to listen about Ruby about programming language and they assume that means you
00:33:30.340
love programming and if you love programming I also can buy that you love learning you know maybe you didn't like
00:33:35.890
to study in a high school or elementary school but you liked learning you're here because you wanted to learn so if
00:33:42.040
you want to learn I highly suggest you know to start teaching to start writing blog articles to find someone tonight at
00:33:49.600
the after party and ask them hey you know I saw you talked earlier may mentor
00:33:54.760
you please I would really like to spend an hour a week to tell you about what I already know and you know that may
00:34:00.940
change someone's life but it will change yours as well
00:34:08.220
thank you
00:34:17.099
okay down to two and now it's time for Igor ohmic off let's open a calculator
00:34:26.010
where are you where are you where are you easy here is it there
00:34:33.510
is he invisible I never know like all this super
00:34:39.960
ok so let let's go to the next one we're Lee the friendly terminal spinner
00:34:48.720
ok I want to hear about this young lellis right
00:35:24.640
so hello I'm young leaders I'm living in Berlin and I like to build tiny micro
00:35:32.750
gems one of them are will present in the next three minutes I had the idea like
00:35:39.170
in the other day where I had to download like tons of data from github and all
00:35:45.740
the output was cold and emotionless like updates about the
00:35:52.780
downloads and I want something which is like more emotional more not so cold and
00:36:00.980
more colorful so I created really the friendly terminal spinner and you should
00:36:07.400
also consider the next time you let your users rate that you use early instead so
00:36:13.790
this is really can you all see him yes emotions he changes his color even and
00:36:22.960
yeah and you can give status updates like
00:36:31.150
like the API is super simple
00:36:37.660
it's a little bit small so you just wrap it in a block and
00:36:46.360
yeah then you can do status update
00:36:51.520
so if you don't like really himself then you can also change the
00:36:59.180
terminal spinner I can to like spinning earth
00:37:04.270
actually I didn't create all these frames for the
00:37:12.380
spinners myself I use a popular popular nodejs gem for this which has
00:37:19.400
all the data I'm Jason from it and I'm just consuming the same Jason from it and
00:37:25.000
yeah i mean that's that's all if you like it
00:37:31.480
okay we have to wait till the 10 what will happen then
00:37:36.660
I just put it online on github and if you like it just get it that's it
00:38:01.619
ok so i guess we are done for today with the lightning talks right
00:38:16.470
you