May 2020 Goals

May 2020 Goals

category: news

tag:  monthly updates

April 2020's overall goal was to get LaSalle Software published as an open source project. The website is up. The online documentation is well on its way to being done. The contact form is done, with a page on the online docs done. A lot of things to clean up before upgrading to Laravel 7 and Nova 3 were accomplished. The upgrade to Laravel 7.x was finished. The Nova upgrade is done and I am running my Nova Dusk tests as I write this blog post.

I organized a virtual PHP meet-up involving almost half-a-dozen local groups. I just discovered that it is a topic of conversation in the latest PHPUgly podcast. I have a draft of a review of this virtual meet-up done, but I need to listen to this podcast and then revise my draft.

So yet another month and still not dive into Vapor. Well, I actually feel unapologetic about not achieving all my April goals in April. I feel very good about what was accomplished, and my laments about what was not accomplished are minimal.

The virtual meet-up was the first I ever organized and hosted. My goal was to learn from the experience, and (perhaps) not so much to produce a well run virtual meet-up. I stated this explicitly in my blog post. Should we be doing virtual meet-ups during the year along with our regular meet-ups? I am contemplating organizing a virtual-only Laravel group -- do it or not do it? If we do virtual meet-ups in the future, how should we produce them? I will have a separate blog post about all this shortly.

Online documentation took a vast amount of time.

It took several rounds to find a style that worked for me. I read a lot of online documentation, and I expected to do my own doc in the same vein as what others do. Well, that wasn't working out well. Writing a pedantic, linear type of doc was putting me to sleep! Not only was it boring to write, but it was missing the point. Many times the "real" issue wasn't how to do something, but why it's the way it is. There's a story there, and that story is critical to understanding. Many times that story emanates from a technical decision.

I assumed that the way to do online documentation was to reach out to a broad audience. The wider the audience, the lower the technical proficiency, right? Well, it's pretty clear that as my Software is right now, it's not for the technically feint of heart. The whole thing is technical. The installation is technical. The only way you're going to get Amazon Web Services set up is by rolling up your sleeves and getting elbow deep in it. There's nothing "sit back and it does everything itself" about my Software. Just like the Laravel Framework which is my Software's foundation, it starts at the command line. So the "broad audience" thing went out the window.

Authoring documentation took me back to why I created my Software in the first place: because the Laravel Framework is a starting point. A good starting point. But I want something more encompassing. I made decisions how I wanted to use the Laravel Framework. I made these decisions and then figured out how to implement my decisions in my Software. When I author an app I do not want to re-visit these Laravel Framework issues. My online docs need to communicate my decisions and implementations.

Whilst struggling with my online documentation, I re-traced experiences of writing my Software. How did I trace through things? I found myself pointing at the screen! Ah... that's the code that made me zig instead of zag! Oooh.. that's how Laravel's Nova admin package does it. Laravel's Dusk testing package does X, so I had to do Y. So I started doing screen captures, and mimicked my pointing at the screen by annotating my screen captures.

A great example of "trace through things" is Nova's "attach" and "detach". This is Laravel's first -party Nova admin package. I traced "attach" and "detach" in Nova myself, and thought that what I was doing was the best way to describe it. So, I ended up with this page in my online docs.

Hopefully, it does not resemble this:

Wow, it took me forever to do that page. Forever! It was pretty evident that at the pace I was going the online doc would not be done in April. So should I short circuit things to get the online doc finished in April? No, absolutely not. Someone is going to ask about Nova's "attach" and "detach" (these are Laravel terms) so I can save "downstream" time by taking care now. 

Goals for this month:
* Stack of "easy" fixes, such as tweak the migration files (update: done!), fix a typo in the .env
* start learning Vapor and associated Amazon Web Services, including going through the course I bought
* start learning AlpineJS and Livewire

There are longer term things I want to do, beyond May, such as splitting the library package into a front-end and back-end package.  For next month's update!