I realize that I declare almost every meetup I go to as a "favorite", but Full Stack Talks truly is at the top of my list mainly because I ALWAYS leave it learning SO much. Yay for free education! It's hosted by Planning Center Online, which is a Rails shop in Carlsbad. Great energy consisting of games, beer, snacks, and an impressive stage setup. Sadly, I hardly make the 1hr trek north to attend, at least not as often as I had originally planned for. But I was extra motivated as I had invited a friend from my cohort to attend. He recently moved to San Diego and will be the first person to actually finish our program! Smart guy, great developer, and now a new local friend :) (PS. If you're reading this, you are just as lovely in person and I'm so glad to know you!) What's also fun about attending this meetup is that the more involved I become with this community, the more often I run into familiar faces and even people I know which makes me feel like I'm no longer on the outside staring in; I'm apart of it. Whether that be from Rubyconf, Railscamp, volunteer events, or other local meetups, it's always fun to reconnect. But my new goal is to speak ... one day. Maybe not anytime soon. Thinking of standing in front of all those people already makes me sweat, which means I should do it let's be honest. It's definitely on my bucket list.
It's not even 7AM. I haven't had any coffee at all, but I'm just so excited to share with you today. I had to get up and write a recap! Quick reminder though, if you ever miss an event and want to watch it live stream, you can subscribe to their youtube channel. Or you can just read my blog and I'll try my best to summarize them!
1) "Phoenix From The Ashes: Transitioning Rails to Phoenix" by Michael Chan. I really like Michael, even before his personality shined from the podium. Michael helped me during the ReactJS training I attended a few months ago, which ironically was also during the time I got laid off which I'm only mentioning because his help was even more appreciated on that particular day of personal emotional turmoil, unbeknownst to him. He's got a warm and welcoming personality that I'm grateful for (Thank you). I enjoyed his presentation style and slide designs too. But biases aside, he gave a talk about Pheonix after tinkering around with it for only 2 days, and humorously compared it to his experience using Rails. This was my first introduction to Phoenix so I learned a lot and will just briefly highlight a few points.
- Phoenix is to Elixir as Rails is to Ruby. Phoenix is a framework for a language called Elixir, which I've been told is friendly like Ruby but is more function based. Everything is a function.
- Phoenix is easy to set up with its thorough documentation, that is also visually pleasing to the eye.
- "Mix" is a helpful command vs the Rails/Rake confusion.
- Semantic gemfile, routing, and single controller names.
- It comes with a default pages controller, unlike the magical Rails landing page.
- " |>" is called a pipe and it feeds the output of one expression into another. Pretty cool.
- It's fast!
- Some cons include Ecto, which can be comparable to Active Record but it's much more limited in power.
If you are interested in learning more about Phoenix, which seems like it has potential to shake up the Rails world, he recommended "Programming Elixir" by Dave Thomas.
2) "Chrome Dev Tools: JS Profiling" by Tanner Mares. I'm pretty sure Tanner and I have crossed paths before too, circa Rails Camp West 2015? Again, this was another great talk with lots to learn. I've gotten quite cozy with Chrome's developer tools during my programming journey, but never did I find any purpose for its "Timeline" and "Profile" features. Which also made me realize that there are probably more helpful features it offers that I have no idea about. Why haven't I taken the time to look?! Tanner to the rescue!
- I appreciated the live demonstration of these tools, which included refactoring his code to improve performance with an obvious before/after detailed in the dev tools. One thing to note is that the Timeline results will refresh with every page refresh while the Profile tool will persist.
- These tools are so specific that you can record and zoom into an event, either by color coded line/bar graphs or list view, that will detail the exact line(s) in your code causing the lag. I prefer the "heavy" view because it ranks events. Easy. There should be no more time wasted on guessing what's wrong. We can see exactly what's happening.
- FPS = Frames Per Second and the higher the number, the better. Though you'll want a low CPU.
If you haven't been to this meetup, I highly recommend it. Learning is fun and this one never disappoints.