08 Sep 2017
This the fifth in a series of posts describing my experience
at ElixirConf 2017. Though it’s not required, you can read the prior posts.
Today is day four for me and today is the end of the conference!
TL;DR? That’s a wrap on ElixirConf 2017. I went to a lot of great talks
again today. ElixirConf 2018 comes back to Bellevue.
Keynote
Jose Valim went over the previous Elixir goals up to the 1.5 release, what the
new goals for Elixir are, and how those new goals will affect upcoming
features in Elixir 1.6.
Live APIs with GraphQL subscriptions
Ben Wilson and Bruce Williams give an overview of GraphQL and then dove into
how to create live APIs with GraphQL subscriptions. Hugely complimentary to
the training I was at on Wednesday.
Managing Tables with Elixir and OTP
Robert Beene gave a great beginner-friendly walkthrough example of how you can
use the power of OTP to do we can all relate to: managing the tables in a
restaurant. Robert kept it really low key and gave a great introduction for
those folks that aren’t up to speed with all that OTP has to offer.
The Power of Zero
A reminder that we should be automating all the things and some ways to do it
without breaking bank. Andrew Forward walked us through several ways to do
this with our $5 ideas (i.e. the things we do that we spend $5 a month on with
a basic box from DigitalOcean). Lots of great ideas here and a nice reminder
that automation doesn’t have to be complex or expensive.
Building an Open Source, Real-time Forum with Phoenix and Elm
Josh Adams gave a whirlwind presentation of Firestorm - the open source real
time forum - and its elm client. With Elm being based on ML, I hadn’t tried it
yet, as I’m a bit scared by ML languages, but this quick intro made me want to
give Elm a look.
Plugging the Security Holes in Your Phoenix Application
Griffin Byatt gave a really interesting presentation into the various things
that can be insecure about your Phoenix apps and ways to avoid them. In
particular, the following types of security issues were covered:
- denial of service attacks
- directory traversal attacks
- cross-site scripting
- SQL injection
- code execution
- session attacks
Elixir with Kafka
A basic intro to Kafka combined with an example of how to use Kafka with
GenStage in Elixir. The GenStage stuff was over my head but I think this will
be a good talk to go back and watch after I get some more knowledge under by
belt
Closing Keynote
Chris McCord closed out ElixirConf by recapping some of the ideas behind the
Phoenix 1.3 release as well as looking forward to Phoenix 1.4. I’m pretty
excited to see where the metrics stuff he talked about goes as well as seeing
what happens when they start to take advantage of the developer experience
improvements José talked about earlier in the day that are in Elixir 1.5.
Final Thoughts
I enjoyed being able to come out to ElixirConf this year. I got to meet up
with some old friends that I hadn’t seen in awhile and meet some new ones. I
learned an absolute ton and will probably forget it just as quickly. Thank
goodness for YouTube.
A massive thank you to my employer for paying for my trip this year. Also, a
huge thank you to Jim Freeze and the organizating crew for a great conference.
07 Sep 2017
This the fourth in a series of posts describing my experience
at ElixirConf 2017. Though it’s not required, you can read the prior posts
Today is day three for me and today is the day the conference itself started!
TL;DR? There were lots of great talks and there will be more tomorrow.
Keynote
Justin Schneck did an amazing talk with a live demo to build a photobooth app
with Elixir and Nerves. It was fascinating to see the growth and progress of
the Elixir community over the past year and with that the growth in the Nerves
project specifically. The nerves project has put a fantastic project together.
I wasn’t super excited about working with hardware before but being able to
work with Elixir and hardware at the same time has me thinking about various
hardware projects again.
The Alchemist Gopher: My Journey from Go to Elixir
Veronica Lopez spoke about how she discovered Elixir and compared it to Go and
where it makes sense to use both things. My biggest take away from this talk
was that there’s no reason why we can’t have Elixir and Go in the same app and
we should be thinking about how we can use the two languages in compliment to
each other vs. pitting one against the other.
Thinking in Ecto
Darin Wilson gave an absolutely amazing introductory talk on the things you
need to know to start using Ecto quickly and efficiently. As someone who’s not
done a whole lot with Ecto yet, I love how much more approachable being at
this talk made Ecto for me.
Phoenix after 100,000 lines
This talk was everything I was hoping for, describing what happens when you
take a new but burgeoning language and ecosystem and use it for your startup.
Working with legacy databases in Ecto
This talk was amazing for dealing with all those little details that pop up
when it comes to handling databases that don’t fit into Ecto’s defaults.
Editor in Elixir
Ian Duggan walked us through the work he’s been doing on a text editor in
Elixir. It covered his work on getting an implementation of ropes in Elixir,
working with the terminal, and getting a GUI going with WxWidgets.
Streaming Video with Elixir
This was a great example of using GenStage to call out to ffmpeg to transcode
a video that was being interacted with via buttons on the presentation to
update a set of yay
and nay
counts live on the video.
Lightning Talks
Lots of interesting talks here. The first one was done over Hangouts from
India! Here’s a summary of the talks that I could catch. I admit to missing
some because I was hungry and went to grab dinner towards the end:
- a QR code generation app in the terminal. This was super awesome because
you could hold up the QR scanner on your phone and scan the projector screen
and have it work.
- An Elixir success story decomposing a giant C++ based NLP monolith
- A talk about all the little things in Elixir that we may or may not have known about before.
- A demo of Thesis, a CMS for Phoenix apps written by the folks at InfiniteRed.
- Mocking and Explicit Contracts via the
elixir_mock
package
- Elixir and OpenAPI. TIL that Google is generating Elixir client libraries for their APIs
- How to convince your boss to endorse Elixir and OTP and let you write more Elixir at work.
- An overview of XProf for profiling your Elixir code.
- Using LISP for as much as your front-end as possible - in this case, ClojureScript.
- Using typespecs for better code and better documentation
- Bootleg for simple deployment and server automation for Elixir
06 Sep 2017
This the third in a series of posts describing my experience
at ElixirConf 2017. Though it’s not required, you can read the prior posts
Today is day two for me and I attended the Building GraphQL APIs with Absinthe
class today.
I really enjoyed this class. I’d only really been learning GraphQL from the
client side and only for about six weeks or so before the class.
We built out our basic phoenix skeleton app for the API, worked on getting the
GraphQL schema defined, and built out querying and mutations for our API. We
also touched on subscriptions right towards the end but I got pretty lost
during that part. The best part is that there is a repo, and so I can go back
and look things up later.
Thanks to Bruce Williams and Ben Wilson from CargoSense for teaching such a
great workshop!
With the training pieces of ElixirConf over, it’s time for the conference
proper. See y’all tomorrow!
05 Sep 2017
This the second in a series of posts describing my experience
at ElixirConf 2017. Though it’s not required, you can read part one here.
Today is day one for me and I attended the OTP Supervision Trees class today.
My brain has now melted with all the extra knowledge I was able to pick up. I
thought I knew plenty but I was wrong.
We covered the raw basics of process linking first, using functions like
spawn_link/1
, spawn_link/3
, Process.link
and friends. Process monitoring was
next. I discovered Process.monitor
and how to handle when links go
down.
Then we moved on to the first set of process primitives that I feel like most
people learn about first while learning Elixir and that’s tasks. After tasks
was agents, after agents was GenServer, after GenServer were supervisors, and
finally applications.
Thanks to James Fish from Pinterest and Ben Marx from Bleacher Report for
teaching such a great workshop!
Tomorrow, I’ll be in the Building GraphQL APIs with Absinthe session. GraphQL
is something I’ve had my eye for awhile. I’m really looking forward to it.
04 Sep 2017
This the first in a (hopefully) series of posts describing my experience
at ElixirConf 2017.
This is day zero, which is the moniker I’m using for the day before the
conference actually starts. For me, this will be a four day conference,
since I have the privilege of being able to attend the two training
days before the actual conference itself.
Getting to Seattle
A few tidbits I found interesting to start the trip off.
- This is the first non-local conference I’ll be attending since 2014
when I went to Rocky Mountain Ruby (RMR) in Boulder, CO
- This is also my first trip west of Dallas since that same trip to RMR.
I should get out more!
- I got a window seat! This meant I got to see and
on the flight out.
In Seattle
I got to the hotel early, so had them stow my bags somewhere and took a walk
around the block until they could get my room ready. I also took the time to
grab some lunch while I was at it. I also ended up organizing an impromptu
dinner involving a co-worker I hadn’t met before, a Turing alum who I also
hadn’t met before, and several other folks in the Elixir community. We took a
short walk across the street to Maggiano’s Little Italy restaurant. That was a
lot of fun!
Next
Tomorrow, I’m attending the OTP Supervision Trees training session, which I
am greatly looking forward to.