ElixirConf 2017, Day Four

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! :sob:

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. :joy:

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.

ElixirConf 2017, Day Three

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. :smiley:

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

ElixirConf 2017, Day Two

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!

ElixirConf 2017, Day One

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.

ElixirConf 2017, Day Zero

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! :tada: This meant I got to see :cloud: and :mount_fuji: 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.