There are any number of ways to learn Laravel. From the documentation right on laravel.com to the very complete tutorials over at Laracasts.com but there is also great way to learn the basics bundled in the install. Navigate to /vendors/laravel/src/framework/illuminate and dig into the modules that form the key functionality included in the original configuration.
Each one of these modules is registered in the app/config and, since Laravel 5, they now reside in the vendors directory leaving the app directory fairly spartan. Spartan is good but figuring out how the original functionality by looking through that directory is a bit tricky.
The vendors directory holds all packages added to the base install as well as holding the core packages in /vendors/laravel/src/framework/illuminate. By opening up /illuminate you can look through, and learn from, a number of packages including:
Hashing, great for learning simple service provider setup.
View, which has some pieces in the app directory as well and covers middleware.
Authentication was added as core functionality and has a number of working parts good to explore.
Video adds engagement to websites and by providing an immediate look into your content, even before reading the page. You know this because you’re reading this after watching the loop above. Producing quality video quickly can be difficult but with a Blackmagic Pocket Cinema Camera and a MacBook Air, both of which are relatively inexpensive, portable, and surprisingly powerful for their respective categories, quality video can be shot and edited on the go. Below is how to shoot RAW or ProRes on the BMPCC then edit, grade, and get it on a website with a MacBook Air.
First, shoot some video. Keep things simple, just shoot what is already around you. There are a surprising number of good subjects all around but it might take some creativity in framing the subjects. Just like drawing this takes daily practice to keep up the habit and skill.
Next load the video. MacBook Air does have an integrated SD card reader but usually has limited space, 128GB base configuration, so an external drive is very helpful. Fortunately not only are the Air’s USB ports 3.0 but they also support USAP making them ultra fast; the ports are even fast enough you can easily edit right on an external drive. The real bottleneck is the integrated GPU. To maximize space and performance combine your source and reference monitors since the Air can’t handle full playback of 2 monitors. The Air can handle RAW 1080 playback but not for 2 separate monitors. This one note can save many hours of stuttery playback and attempting to work.
Editing these clips should be fairly easy since they are basically just moving pictures. If you have too many clips, or too much motion, the video won’t complement the content but will overpower it. Either way, make sure you have a focused message for your viewers and readers. After editing, grading in SpeedGrade is fairly quick and still runs well on the Air. The only downside here is SpeedGrade has a more rigid UI so reclaiming editing space is difficult.
Last, export to MP4 for most browsers and WebM for Firefox. WebM isn’t native to Adobe Media Encoder but there is an awesome plugin here for it. http://www.fnordware.com/WebM/
Even editing and grading a couple clips, or one shot, can be time consuming but developing the habit will make the editing process second nature while developing your eye. You can film and post with a phone, and the iPhone has a powerful camera, but there is a noticeable difference in quality and style which we will explore later. For now, try out the BMPCC or another Interchangeable Lens Camera with video, especially RAW, like the Panasonic Lumix DMC-GH4 and explore the subjects around you. Most of all, add some video to your site and see it come alive!
jQuery and Laravel are amazing libraries and frameworks but they don’t always inspire the best practices. Recently when building a basic app I made a fairly amateurish error without even realizing it at first. In building a simple Create/Edit route I used the Route::resource as a shortcut and for making AJAX requests to the route I used $.ajax() on page. The requests work great and everything seems to working fine until sending a large request and right then I realize $.ajax() is using a GET request rather than POST. There are a couple lessons here, you should have XHR requests properly outputting to console.log() so you see what your AJAX requests are doing. But more than that don’t expect jQuery and Laravel to do all the lifting through their syntactic shortcuts. At times, being more verbose with your code can avoid some nasty mistakes.
Explaining your Resource route with a couple ::get or ::post routes looks messy but actually can help to both avoid errors and aid in development by being more obvious to understand quickly.
As well, $.ajax() in jQuery is an all purpose request and specifying your Type can save headaches and keep requests from falling into the wrong lane.
Committed bloggers post once a day, at least, where causal blog posters have sporadic posts over various lengths of time but strategic bloggers have a post ready every Tuesday at 1pm, or whatever they have scheduled. I am firmly in the second camp. Ever since I hiked in Japan, I have struggled to post, or even tweet, on a regular basis even though I write every day every hour. The worst part is I have dozens of posts ready to go, in my backlog.
Somehow I’ve managed to write a considerable amount of content that will never been seen. I’ll have an idea, write it out and then say, “Perfect I’ll send this out tomorrow.” Procrastination doesn’t come easy to me, otherwise my web clients would not be as happy as they are but for blogging, or drawing, there’s a problem. I’m the client. This is a common story, harsh self evaluation prevents movement, but with small ideas like blog posting there’s a unique twist.
Procrastinating on a novel or a movie is easy. You can easily talk yourself out of a huge undertaking and still avoid having to release. with something as small as a blog post the “it’s not done” is so much sharper because it is done. It might even be scheduled but rather than release we end up doing a little edit here, pushing back, maybe this post isn’t good to release now, there’s a new idea I should explore… The twist with smaller work is the procrastination comes at the end, rather than the beginning.
Though the procrastination might come at the beginning or end the lesson is the same. Don’t count on a plan or even what you’ve built already. Publish the post, send the email, take action and watch the small steps build into the bigger journey.
While building a bit of code for phlodl.com jQuery was acting up when adding a simple mouseover to expand and the event was delayed when the mouse entered the element. To fix this I daisy-chained the events on the element to fix the delays: