Tomorrow (March 8th) marks the first Laracon Online – the official Laravel conference, all online. It was started as an effort to allow people who generally can’t afford to visit the actual conference to attend.
I’ll be live covering/commenting the conference in this post (scroll down), but I’d like to talk about this unconventional conference format first.
I’ve been to my fair share of conferences, and one thing that always happens is there’s a clique of us relatively talkative types (I suppose as speakers, we tend to feel empowered), and a whole lot, and I mean a whole lot of very quiet and reserved fellows, looking like Ed Sheeran queueing up to meet Ed Sheeran.
(image via Reddit)
They’ll have the swag, they’ll have the laptops, and they’ll be in every talk’s audience, but getting them to take a step forward and say the first word will be almost impossible. If you’re one of these introverts, I feel you. I used to be just like that. In many scenarios I still am, and as far as I know, there’s still no definitive cure. Sometimes, the major deterrent is apparent expertise of the person you don’t dare talk to (almost always fake – everyone you ever meet will know something you don’t), sometimes it’s just general awkwardness (/me raises hand), but it usually ends with cliques being formed and all the introverts being largely left behind.
That’s not to say price isn’t a big deterrent – visiting a conference can cost one well in excess of $1000, what with the flight, the ticket, and accommodation, but I know for a fact that while most people inherently want to network, few are extroverted enough to just do it.
That’s why I think a conference such as this one is introvert heaven. Not only has the financial barrier for attending been all but completely removed, but it also places all attendees and speakers into an environment that is, by default, comfortable to all. We’ll shy away from interacting with people face-to-face, but most of us will talk our fingers off when in chat mode. Laracon has an official Slack team which you’ll get invited to you when you buy a ticket and everyone is there – there’s no easier way to make connections, talk to speakers directly about topics that might seem interesting or to clear up confusions you felt during their talks, or just mingle and make friends – maybe set up a meet for the next real in-person conference.
Other advantages of online conferences include easier code sharing for discussing and demoing, discussing several contexts with several groups at the same time, attending in your underwear, and more.
Granted, there are some disadvantages to online conferences.
For one, the communication flow is slower and less sincere. Opinions and feelings don’t come across as smoothly in chat (modern emojis don’t help much), and it takes longer to type something out than it does to just say it and explain it with gestures.
While code sharing is simpler, demonstrating it isn’t – I’ve been in several situations where I coded something right in front of someone who said they did the same thing, only to prove that it does indeed work. I’ve also been on the receiving end of such instructions.
Meeting people in person leaves a much more complete impression – it’s easier to remember people that way, and to assess their knowledge and mental compatibility to you. Online conference chatrooms pretty much guarantee to stay only in the context of the conference’s talks, while real conferences will see a lot of unofficial mingling and getting to know people on a personal level, seeing how well you fit and, potentially, how well you’d work together one day.
None of these are dealbreakers, given the price of the conference in question and the average level of expertise in the speaker department, but still worth keeping in mind. I definitely encourage you to try and attend as many conferences as possible – both online and offline. Whatever their advantages and disadvantages, both can only benefit you.
Conclusion and coverage
Let me know in the comments what you think about online conferences and other advantages and disadvantages they have over regular conferences, and stay tuned for live coverage below! Also, don’t miss the chance to grab your own ticket – even if you can’t make it, the videos will be online afterwards for viewing at your convenience, and with the lineup that’s been announced, it’s sure to be worth the $20 – a lot of experts will be giving you their precious time.
Stream is starting on March 8th, noon CET time.
Update 14:45 CET, March 8th
With a whopping 4000 attendees, and 3000 of those in Slack, the chat rooms are insane. The conference is gearing up, and Ian Landsman took the “stage” to introduce the conference and sponsors. The chat is well organized by region, country, and even technology of interest. Additionally, there are separate channels for questions for each speaker – so it’s a discussion with the speaker, at any time, all the time, not restricted to immediately after the talk itself.
Update 15:15 CET, March 8th
Update 15:45 CET, March 8th
We also went through Babel and its own cryptic configuration, and wrapped things up with plugins in Webpack, finalizing things with environments – reading from environment variables via NodeJS (or by passing the -p flag to Webpack when running it), and then only including production-focused plugins when we’re in production. What I would have loved to see covered was splitting CSS into multiple files, depending on the route used in the app, but that might actually pop up on the already in-development WebpackCasts.
Jeff also covered Laravel Mix: a pre-installed setup of Webpack inside Laravel itself when you install the app with
composer create-project. It’ll install prerequisite JS packages, it’s optimized for various JS frameworks, and it offers a decent scaffold for compiling your JS code without losing any hair during the process. All in all, a great start to the confernece – let’s see what’s next, and we’ll take a look at Laravel Mix soon in a dedicated post!
Update 16:15 CET, March 8th
Update 16:45 CET, March 8th
Another interesting tidbit: server side rendering in VueJS and JS in general, is mostly just taking the virtual DOM and stringifying it on the server.
Evan also got a lot of requests to add server side rendering into PHP’s V8 (yes, it exists) but for various reasons (a missing Node environment notwithstanding) this isn’t feasible. Nevertheless, the VueJS and Laravel projects are looking into a better integration and ease of use for server side rendering, and we should have updates about that soon.
Update 17:25 CET, March 8th
After a chaotic mingling session in chat (and new contacts made!), we’re moving onto Rachel’s talk about CSS. She’s covering CSS grids, flexbox, and other modern layouting shenanigans. Not exactly PHP related, but an important part in this three-piece puzzle we’re assembling (JS, PHP, and CSS). Interestingly, this is the third front-end oriented talk in a row at a PHP conference – just goes to show how incredibly intertwined our disciplines are!
Update 18:00 CET, March 8th
After Rachel’s very strong introduction into CSS, I’m amazed at the power of CSS grids and can’t wait for those to arrive in all browsers. Basically, as one Slack chatter put it:
`grid-auto-flow` === 'magic'. The layout decisions those directives make warrant some thinking as it almost seems like AI (quote directly from speaker: “Nothing particularly with grid is quite obvious what you’re doing”), and I had to go re-read this to clear things up further. Could it be that we’re finally getting easy to use CSS? Looks like it, and in all modern browsers by next week it seems!
I can’t shake the feeling, however, that CSS grids would have worked much better as a long term workshop so people get the chance to develop some muscle memory, too.
Update 18:25 CET, March 8th
Adam Wathan of Nitpick CI in full swing, demoing common TDD dogmae. The first section of his talk demonstrates an application built on the following principles: testable code in isolation, tests shouldn’t touch database, make it all unit tests (small units).
Update 18:45 CET, March 8th
The second part of Adam’s excellent talk focused on showing how those principles are overkill, and in fact don’t protect us from anything. The app’s tests break several times because of the way the mocks work and the specific implementation of the tests themselves. The way tests work are interfering with the upgradeability of the app itself, which is nothing but a huge waste of time, long term. His quote:
— Bruno Skvorc (@bitfalls) 8 March 2017
Instead of going for this dogmatic approach, he considers his whole app one unit, and that makes things easier to test, easier to refactor, and easier to manage. In a community like Reddit, his approach would be heresy and a call to fight the system, but its effectiveness cannot be denied. The only thing that really matters is: He who ships, wins.
Update 19:05 CET, March 8th
Adam wraps things up, and tells us not to worry about isolation, and only to introduce boundaries when needed – not to worship “idiots on Reddit”.
He also drops a spoiler about the digital swag bag getting sent to people after the conference – it’ll include a minicourse about testing.
Oh, btw, Adam lifts best bench at 400lb, best squat at 550lb, and best deadlift at 601lb. The man is an animal.
Update 19:45 CET, March 8th
Taylor Otwell, the creator of Laravel, briefly mentions how and why he created Laravel (spoiler: to get away from complicated implementations of authentication and pagination in other frameworks) and reveals that Laravel 4 was initially going to be built on top of Silex, but then went the independent assembled route. He also goes through the typical Laravel request flow, from the very first line of autoloading, to middleware and responses/requests. He’s slowly building up to new features in Laravel 5.4 and going into more and more detail. Likewise, he explains that the powerful Laravel Container can very easily be used outside of Laravel and in legacy apps, by means of a simple Illuminate inclusion.
Update 20:15 CET, March 8th
With Laravel demystified, Taylor moved onto demonstrating his “how I work on Laravel” workflow, including but not limited to symlinking the Laravel framework’s location in the vendor directory to a new PR he’s working on to avoid having to install an app from scratch, and using Composer‘s
An informative talk about everyone’s favorite framework, culminating in a teaser of Horizon – Taylor’s new project. Laravel Horizon is going to be a really high quality thing, and the best test he’s written so far, but he was purposefully secretive in order to make it a real surprise at Laracon US, where he’ll be demoing and revealing it.
Update 20:35 CET, March 8th
Nick Canzoneri, a runaway dairy farmer currently working for Postmark, a transactional email service. Predictably, he’s talking about sending emails, but going through the steps of the email’s path through the internet – from the local machine, to the MX servers, to email headers, and the recipient’s machine. He’s exposing us to some internal email sending secrets we’re not even remotely aware of, and illustrating what all can go wrong, and why it’s so hard to get email right.
Update 20:40 CET, March 8th
Nick told us about the
text-watch content type in emails, which basically only shows up on an Apple Watch. This was genuinely surprising to learn. More info here.
Update 21:00 CET, March 8th
We learned about SPF, DKIM, DMARC – methods of authenticating emails i.e. ourselves and our customers from bad actors.
SPF is a domain based approach which defines which servers are allowed to send emails. It’s domain based, and the receiver of the email does the checking. DKIM is message based and proves that the middleman servers who forward your email along to its destination haven’t tampered with it by using signatures based on private keys added to the email. The private key is located in the DNS, and messages are authenticated against that. DMARC is newest, and a domain based approach that lets the recipient decide what happens to emails which fail SPF or DKIM: nothing (go to inbox), quarantine (go to spam), or reject.
A very interesting talk in which I learned some new things, but am not sure how to smoothly and easily apply this knowledge to my projects. Will have to investigate, and definitely look into Postmark – they’re doubling all purchased credit for all Laracon attendees. So if you buy $10000, you get $10000.
Update 21:50 CET, March 8th
Jason JMac McCreary, the author of Laravel Shift, is laying down some brutal honesty about our knowledge of Git – in short, we’re clueless about it, he says. In this talk, he’ll apparently be our Git master and teach us the forgotten (or never discovered) commands that can save lives.
Update 22:26 CET, March 8th
We learned that:
- git add has the
-pflag. The first is “interactive” in which you get asked questions about what to do with the uncommitted changes. The latter creates patches from individual code changes, lets you commit only a part of a changed file for example.
- git stash which is usually used when you need to pause work on a branch and check out another but Git won’t let you because it’s uncommited, can actually have the flag
--include-untrackedwhich also stashes files you haven’t
- to copy a remote branch, you can use the colon syntax:
git push origin master:staging– the master branch will get copied into the staging branch online!
- git rebase and cherry pick supposedly have magical powers, but I’ll have to re-read about those because they just don’t click in my head.
- git bisect is a git loop which takes a starting commit and an ending commit and then goes through them one by one, interactively asking you if each is okay. Useful for finding out when a bug appeared in a very big history.
We were also shown some amazing shortcuts (like
git checkout - which switches to the last used branch), and introduced to some anti-patterns, not the least of which was the overcomplicated Github flow, these days mostly bettered by the arguably simpler Git flow.
Jason’s talk made me feel like a true Git amateur, and I can’t wait to try and apply some of these tips on the currently biggest repo I manage: SitePoint’s Peer Review Repo. Jason explains all this and much more on Getting Git.
Update 22:40 CET, March 8th
Matt Stauffer takes the stage as the final speaker to go into detail about Laravel Container – what Taylor before him said could easily be used outside Laravel itself. Matt is also the author of Torch, a collection of instructions on how to use Laravel packages outside of the framework.
He dives into the way the Container works, what it does, and what DI and IoC means.
Update 23:20 CET, March 8th
Matt’s talk was a little underwhelming to me personally – I expected some Container extravagance, but it turned out to be little more than a basic introduction to the component. I’m sure it’s useful for some people, but I’m thinking such introductory content would have been better placed at the beginning of the conference. Again, just my impression.
The content certainly was useful, and the defence of the Facade concept in Laravel was well worded (even though I can’t believe that’s still an issue for some people)…
— Taylor Otwell (@taylorotwell) 6 March 2017
I mean, it’s just a word. It’s not like a PDO Driver literally gets into a car and drives. A DB slave isn’t an actual slave. Airship isn’t powered by actual zeppelins, and doesn’t have real landings and lenses instead of controllers and views. Just drop it, eh?
My final impression of the conference is an entirely positive one. It was so cheap it was almost free, the digital swag bag more than made up for it (huge discounts for various online services and courses), and the speakers were all very pleasant people, positive, well spoken, and knowledgeable. Most also did their best to answer as many questions as possible afterwards on an admittedly sub-par platform for such a discussion.
Laracon Online is a great conference, and I wholeheartedly recommend you join us next year. I’ve learned a lot, gotten more curious about the framework, and intend to dive into 5.4 a bit more seriously now.
What did you think? How was it?
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Form Design Patterns
Jump Start Git, 2nd Edition