Refocusing self

This is a draft I started quite some time ago but did not finish. The subject remains the same, however. I’ve had some time in a long time to take a break which has given me the opportunity to refocus self. As I write this I maintain much of the same energy I had in my previous blog, because while time always moves forward, many things stay the same. While I can clearly see these things, one issue I’ve often struggled with is allowing myself to get caught and drift in the flow of time, immersed in the obligations of the day to the neglect of the desires of self. In the rare times I have insisted on time to focus on the latter, I have been gratefully reliable in using that time to effectively do so. Focus, clarity and energy are the results.

I use this website as a showcase of personal projects. Two of the three are now effectively archived, with Hobby Collection Django joining Album Shuffle. For roughly a week as of this blog the Hobby Collection Django website has been shut down. This is a decision I’d been inching towards for some time. The web application including backend database had been hosted by AWS. As the project (like many of my personal projects) was intended to be pedagogical as well as useful it was a worthwhile endeavor to gain experience with applied AWS configuration, deployment and monitoring. Those goals have been accomplished. While the application itself remains a personally useful tool, it was also costing a non-trivial amount of money to keep running. As I aspire to evolve the project into a mobile-first application using RESTful data APIs and it has served its purpose as a pedagogical Python/Django web application (again, also hosted via AWS) I consider its mission accomplished in that regard with its core functionality the only value I want/need from it at this point. Hosting it on the public internet with the associated costs ceased being worth it and its frontend infrastructure has been taken down in favor of a personal server I now run only locally. Its database remains in AWS for now as I look towards engineering a new, long-term system but that’s a story for a different day.

The Life Lessons app (the profile of which I will flesh out in the coming months) is in multiple ways symbolic of things I endeavor to do in 2024. I’ll use it to spearhead my re-ramp on iOS/iPadOS development which will pave the way for the mobile-first redesign of my Hobby Collection project. The app is simple, but its purpose is personally significant.

My photography portfolio has been stagnant. I can flatly admit that. Part of the reason for that has been my growing dissatisfaction with what was my asset manager of choice: Capture One. The solution had been growing unjustifiably expensive to use in a preferred workflow, and by that I mean a fluid workflow which painlessly adapts to mobile and stationery workstations. Its developers took an approach of fragmenting such solutions and requiring multiple licenses take advantage of them all. I was put off by that in principle. While the developers evidently caught hint of this and began promoting an all-in-one bundle, I had a foot-and-a-half out the door by that point and have since dropped it altogether. While there has certainly been some creativity block responsible for some of the settled dust on my premium camera gear, the uncertainty with which I would manage an abundance of new exposures and video has been a significant mental blocker to my inclination to do shoots the way I’ve done traditionally. I am in the process of evaluating and perhaps eventually settling on a mid to long-term asset management solution and if/when I do, my focused photography shoots will resume. I’ll discuss this more in a future blog.

There is a core theme I’ve carried with me for some time now which I intend to personally promote in 2024. While I may or may not go into more detail about what that is in the future, suffice the say I intend to use this focus, clarity and energy as a springboard.

Not just another day

I’ve made no reservations in sharing my disgust for the decisions and symbolic gestures made by government officials as well as those who see fit to grant them governing power in recent times. The coddling, enabling and justification of a narcissistic sociopath, especially at the highest form government within a Democratic Republic, is the one most disgusting displays of rotten character I’ve ever experienced in my lifetime. I qualify that statement as in my lifetime because I’m well aware that history, American or otherwise bears several similar lessons which should have been learned with caution but evidently have not learned and/or respected. Therein lies one of the most frustrating realities of these times for me. For a country with firsthand experience with a natural-born citizen named Jim Jones it appears all too easily susceptible for falling for the same stupid shit all over again. The only difference it is the con man isn’t at the head of a People’s Temple, he was at the head of the executive branch of the federal government. The con man’s loyal supporters and promoters aren’t members of a congregation localized in Indiana, they’re self-serving cultists posing as public servants with the favor of willfully ignorant fools too weak-minded to think for themselves.

I recently saw a tweet from someone expressing despair, sarcastically remarking:

Isn’t it amazing how life just goes on as if nothing happened?

I immediately wanted to respond resolutely telling this person, from where I stand: No! Hell No! I’ve made it no secret to people who know me closely and I’ve expressed it here on this blog now several times that this something for which I refuse to just go to bed one night, wake up the next morning and just forget about it and go on about life as if its “just another day”. Hell no. Some have now declared January 6, 2021 as a day of infamy. I declare it merely a bullet point in an era of infamy. Anyone who understands and wishes to preserve the very fabric of democracy should be alarmed at not only what happened, but at the lack of sufficient accountability which is at least as dangerous.

It is not only natural but wise from my perspective that consequences of these events include a significant loss of trust and an absence of sociological complacency (i.e. a fundamental change of perspective). It’s not just another day. It’s a different day and I am a different person. As I’ve blogged in the past, I am actively channeling that personal impact into energy and focus on developing myself personally and professionally. A fundamental objective I aim to achieve in doing so is establishing control in charting my course in life and with it the ability to proactively and reactively respond to (rather than merely accept) the impact of the world around me.

I originally intended to continue drafting this blog entry with updates on what I’m doing, but I can tell as I write this there are a number of emotions I’d like to express with examples of passion and focus I’m beginning to regain with my activities. Doing those justice will take much more time and drafting, but nonetheless what I’ve said stands as part of that expression whether I post this now or later. Therefore i’ll share this now, and follow-up later.

‘till next time…

Hobby Collection Django Relaunched

Last night I relaunched Hobby Collection Django on native AWS, completing the deprecation of the Heroku stack. In doing so I accomplished my goal of filling the security gap in my public endpoints. If you navigate to the site now your connection should be encrypted as the endpoint is now TLS-certified.

As I updated the project page to reflect its current state, reading back through its documented history was a reminder of how effective and valuable this project has been as something which began out of useful pedagogy. It has and continues to be instrumental in helping drive my development as an engineer. Thinking back on its origins as a primitive Win32 console app to a relatively modern, scalable and extendable web application I see it as a reflection of my growth in that time. As someone who learns well by application I owe a lot of that to this project and the opportunities/challenges it has created for me to tackle. Setting up native AWS infrastructure and gaining increased knowledge/experience with deployment, server configuration and the ACME protocol for TLS certificate management are some of the latest examples.

It was a satisfying feeling last night putting my own infrastructure into production, doing so with no hard down time with the deprecation of the Heroku stack, and presenting an app with an improved UX. While I have other goals I’ll be focusing on from now, this project will continue to live, and as I’ve previously blogged I do have plans for continued development in the near future.

New year, same plan

I personally try to dismiss sentiments that regard a particular year as an “entity” for which to either be frowned upon or celebrated. That is to say, I find it distasteful to say things like:

“2020, you suck!”

“I can’t wait for this to year to end!”

On the surface the next day is another day. The world didn’t suddenly change because of that. All life’s issues don’t suddenly disappear. If you wait for an arbitrary day to start to take a meaningful action in your life then you’ve simply procrastinated for the sake of a sentimental event that bears to practical significance.

Carpe Diem - Seize the day

I blogged a couple weeks ago about looking forward to the immediate future. A lot of things occurred in 2020 to really shake me emotionally, but the benefit of those events was the fire and motivation I found as a result of that impact. I defined an immediate action plan from then on into 2021, because I wasn’t going to pretend like December 21, 2020 wasn’t the same opportunity for a new day like January 01, 2021 was, and I took that action immediatlye because I know the world on the surface which motivated me to do so wasn’t going to change in ten days. That mentality for me is, quite frankly, a waste of time.

In the time since that blog I’ve mostly completed one of my stated goals which is to complete the migration of Hobby Collection Django to native AWS. At this point is pretty much ready to go:

Hobby Collection Django built on Django V3 and running on native AWS infrastructure

Hobby Collection Django built on Django V3 and running on native AWS infrastructure

There are still some polishing touches I’d like to make, mostly with regards to responsiveness of the sample image carousel on the homepage but nothing worth holding back public exposure for. As you can see I’ve made a new and simple logo representing my identity and will be re-introducing my audio collection. I’m also pleased that it’ll be more useful for public perusal as I’ve reintroduced multidimensional filtering in each section. There is however one last significant task I need to complete before opening it up to the public (also one of the motivations for me moving off the Heroku stack) which is securing the site via TLS. It has stood out to me like a sore thumb for some time as the only insecure subdomain I currently expose and has bothered me every time I’ve taken an administrative action on the stack. As is best practice with the web going forward and a personal prerequisite for the REST API I’m planning to build in the future I will be certifying the domain prior to opening it up.

That’s really the last task. For all intents in purposes the site is ready to launch and is my daily driver now. Looking forward to showcasing it soon.

Looking forward to the immediate future

2020 for me has been a frustrating year. Frustrating not because of the pandemic (or at least not the pandemic in and of itself), but because of the way people in the U.S. largely handled it (i.e. selfishly and carelessly). 2020 has also been a frustrating year as I’ve observed millions people of fall for the charms of a narcissistic sociopath, effectively seeking to destroy themselves in the process. Those things have left a rather bitter taste in my mouth, one that I will never forget, but the silver lining in all of this is the fact that in my frustration I’ve found fire, motivation and a sense of urgency to pursue the interests and skills I need and want as I look forward to the future. As has always been the plan, OneOkami.com will be the showcase of those efforts, and it will bear more fruit in the coming months.

2020 has been a year of slow, quiet, and distracted adjustment. The U.S. presidential election season consumed a lot of my mental compute cycles as I watched in unforgettable alarm and horror at the reality of level of sincere ignorance, conscientious stupidity and utter corruption plaguing American society. But as I’ve already alluded to, I’m emerging from that cycle motivated through, if nothing else, a sense of urgency to strengthen of my focus and accelerate my activities concerning what I want to do and where I want to be so that I am able to achieve the spiritual, mental and physical freedom from the level of emotional affliction I endured this year.

In my previous blog on Hidden Developments back in September I shared that I was in the process of migrating Hobby Collection Django off its Heroku stack and onto my own AWS infrastructure, upgrading to the latest version of Django in the process. I’m pleased to share that as of today there is a functioning app actively running on my own AWS infrastructure, and while the frontend is still being ported over, all data has been migrated over. At this point, the native AWS version of the app is now the source of truth of my hobby collection and the present application hosted on Heroku has been sunset. I’ll leave it running until the native AWS implementation is ready to serve public traffic.

2020 being a year of distracted adjustment has meant either I've fallen off track in skill development or drifted away from passionate lifestyle interests. In pursuing a creative life after Adobe it has been my goal to ramp up in tools like Affinity Photo, Da Vinci Resolve and Capture One supporting my photography/videography. While I have indeed been using those tools, the depth of my knowledge of those tools remains shallow. This certainly hasn’t been helped my lack of photography and videography activities this past year (something I’m very aware of to my own self-frustration). Looking forward I am seizing the fire forged through frustration to hold myself accountable for this and have set goals for myself for the coming months. These include (but are not necessarily limited to):

  • Completing Hobby Collection Django’s migration to native AWS and decommissioning the Heroku stack

  • Building a REST API for Hobby Collection Django along with a SwiftUI client

  • Ramping up my skills with my photo/video editing tools

  • Getting my eyes back behind the glass with regards to my photography

While I’d been working primarily on Linux workstations (and continue to maintain Linux machines), I recently made the decision jump into the personally exciting future of high-performance ARM computing with an Apple Silicon-based Mac. I’ve long maintained a Macintosh workstation as a secondary machine so this space isn’t new to me, but as I embrace creative tools which simply aren’t available on Linux, high-performance and forward-looking ARM-based Macs are more practical for my day-to-day. It certainly helps that my iPad Pro (which has pretty much eliminated my desire for MacBooks at this point) has become undoubtedly the most used device my kit and I am excited for the prospective UX integration opportunities it offers by maintaining it as a primary device alongside my Mac. With that in mind and with regards to ramping up in video editing tools, I’ll be shifting my initial efforts to embrace Da Vinci Resolve over to Final Cut Pro. While my experience with Da Vinci Resolve is rather limited, I have successfully edited several videos with it and I can see how capable it can be as one ramps through its learning curve, especially with regards to color grading. It’s also a tremendous value given you can do so much with a free license. That being said, I’m fairly confident as the iPad Pro continues to shine, Apple will eventually offer a version of Final Cut Pro for the iPad Pro, especially given it’s now a native Apple Silicon application. The prospect of such workflows scaling across my desktop and mobile environments (as with several other existing use cases) is very exciting.

I’ve said before this site will grow, and I meant it. I continually prove that to myself by the simple fact I continually remind myself of its state with a level of dissatisfaction. It’s meaningful to me. And while 2020 has involved experiencing much of what I have no problem classifying as “evil”, I’m thankful it has served to propel me forwards from it. Let’s go.

Hidden Developments

Several infrastructure changes have been with my projects, admittedly too slowly but surely. The main recipient being Hobby Collection Django. I’ve detailed the history of its development on its project page and it currently stands in position to require some infrastructure changes. As a Python application it’s currently hosted on Heroku which has been especially useful/reliable given its purpose and requirements. What is admittedly cool to see with its growth over the years is that its data footprint has been approaching the limits of its hosting tier for some time. This has been accelerated by the recent growth of my audio collection as I’ve begun hosting/serving my own personal multimedia content including my personal music collection. This will eventually force me to upgrade to a higher capacity. In addition to this the hosting stack Hobby Collection Django runs on has been on a deprecation path since last year and needs to be migrated to a new stack. This is one of the projects which has regretfully fallen by the wayside that I’ve previously alluded to in my blog back in March.

Given the necessity to make infrastructure changes to Hobby Collection Django, I made a call earlier this year to migrate it off Heroku and onto a more intimately managed hosting stack. This is for two main reasons:

  1. As was part of the original motivation for starting this project, I want to do this as a means of both applying existing skills I’ve acquired over years working with web services and infrastructure technology as well as learning new ones through experience

  2. With Hobby Collection Django outgrowing its current hosting tier on Heroku its impending hosting requirements are estimated to cost a comparable amount to the alternatives I’m considering.

I’ve been chipping away at building a migration stack directly on AWS with an open mind towards Azure for the last couple of months. I’m also taking the opportunity to rebuild Hobby Collection Django itself on Django v3 (from v2) while also beginning to build the corresponding REST API as I talked about in my blog on “RESURRECTING A LONG-PLANNED PROJECT”. I currently have a working build of the project deployed and running on AWS and the experience as already proven to be gratifying, details of which I’ll share in a future blog.

There’s still much work to do. I’m truly rebuilding the application, looking for ways to improve yet simplify its code base as well as some of its backend data schema while I also perhaps re-theming the UX. I’m also looking to build out the REST API in parallel with the web app so that it’ll be immediately ready for iOS application integration. The deprecation of its current hosting stack will take effect on the beginning of November. At that point, the version of Hobby Collection Django currently deployed will get no further software updates. I may or may not take it down temporarily while I build out version 3 on its new hosting stack but more than likely I’ll leave it up and only migrate once there is at least a significant (even if incomplete) working state of the new version deployed on the new stack.

As I’ve said before, activity here has been down, but not out. This portfolio will grow.

Finding joy in gameshots

I’ve blogged in the past about the importance of creative expression for me. Capturing light is one of the means by which I practice that, and though recent records don’t show it much, I love photography. When I travel or in some way engage a non-everyday activity, photography is a means for me to capture the moment/adventure/atmosphere/emotion of being in that place at that time. While i’ve let things get in the way of having those adventures I’ve always found joy in the imagination of adventures though fantastical worlds made possible with video games. As game consoles (and PC game launchers) build-in first class mechanisms for capturing shots of game experiences I’ve gradually come to embrace that ability and what I’m finding is a joy in capturing moments/adventures/atmosphere/emotion in those experience similar to how I do those in my own life.

Capturing and framing moments/renderings in games which help showcase the creativity of their developers is a rather exhilarating feeling as a photographer

What I find to be at least as gratifying as having an eye for recognizing a moment and “framing” it is the idea that my efforts in doing so have the potential ability to promote and celebrate the creativity which has gone into producing those moments, captured in all their aesthetic beauty. It feels like paying homage to the hard work of developers while finding an outlet for my joy of photography, in whatever form that may take.

As part of capturing the moment, I create memories of fantastical adventures

What I can foresee now, just as I can already feel, is years down the line I can look back on on albums of gameshots and travel through time and memories of fantastical adventures that in ways can feel indistinguishable from live ones. The limits to how I can fill the albums will only be the opportunities I have to focus on capturing them during gameplay and the methods by which I do so. One thing I love about the Nintendo Switch is the dedicated capture button on the controller affording quick and seamless snaps during gameplay. PC game launchers like Steam offer similar means, but as I’m now discovering, being blessed with the means to game in HDR apparently means moments cannot be seamlessly captured in HDR, and if it’s one thing I’ve come to appreciate from my experiences in games like Doom Eternal and Resident Evil 3, is the big, significant difference HDR makes.

My photography portfolio is currently showcasing gameshots moreso than my live light captures, something I wouldn’t have imagined when I launched this site. I don’t anticipate that always being the case but it’s a reflection of a surprising enjoyment and opportunity I’m finding in capturing them. Again, as I’ve unfortunately allowed my normal photography activity to take a hit, I feel great appreciation for this type of photography giving me an opportunity to remember and keep in touch with what I enjoy about it.

Down but not out

To say I’ve been tied up with work in recent weeks is an understatement. When I relaunched this website around the beginning of this year I remarked it was the dawn of a new era, the beginning a new creative life after Adobe and this portfolio was a renewed effort to embrace and enhance that life. While that life has always since remained on my mind, regrettably I haven’t paid it enough active attention. Admittedly it’s a similar problem which allowed the previous life to stale. Fool me once…

Reflecting on this reinforces the realization of how these endeavors are a natural extension of who I am. You know where your deepest passions are in life when you naturally gravitate towards them in the absence of conscious exertion. Creative expression is important to me, both through technology and through art and I refuse to let this means fall by the wayside. This portfolio will grow.

Resurrecting a long-planned project

My Hobby Collection project has easily been longest-lived, most iterated, and most personally applicable project I’ve worked on in my personal portfolio. Outside of a multiplayer online battle arena I developed among a team of Computer Science students at University it’s perhaps the most personally fulfilling pieces of technology I’ve had the privilege to build.

As i’ve detailed on the Hobby Collection Django project page it was created to solve the problem of tracking my personal hobby collection. It’s an incredibly gratifying feeling to have not only built something which solves such an important problem, but it to this day remains a tool I actively depend on as a solution to that problem. In fact I’m so dependent on it that the scale of my hobby collection has gotten to the point where the web app in its current state is reaching its limits of feasibility with regards to continuous tracking.

Though my hobby collection is going quite rapidly digital I still maintain a growing collection of physical items including game and PC hardware, and most particularly figures. My physical collection is large and physically disperse enough to the point what I’m currently at high risk of the integrity of my data becoming corrupt if/when I make a significant geographical move. Simply put, my current means of maintaining location tracking (the web application) will not scale when that time comes and I dread not being ready when that time comes.

I have for quite some time now desired to make a native mobile application of my Hobby Collection project to enhance my ability to track and manage location data with varying levels of granularity regardless of which physical site I happen to be at. I’ve actually dabbled in some experimentation in the past with the Django REST framework as a natural extension of Hobby Collection Django, implementing RESTful API integration with a mobile app. I’d actually built a working prototype Android application using the recently debuted Google Material Design language. It was purely GET integration but it served as an effective proof of concept of what could be done to extend the project from web to mobile. I didn’t push the project through to full production but I always knew in the back of my mind that the project would never completely fade from my mind so long as the Hobby Collection project was maintained and continued to grow. I knew at some point the scale of the data and physical distribution of items would insist that such a project become a priority.

Well that time is now and the time is rather exciting. It’s a project to fulfill a personal need, extending the project will RESTful APIs opens up a number of possibilities in how I can hook into my collection data, and with what will be my largest personal iOS project since Album Shuffle I’m happy it comes in the era of Swift UI.

The decision to resurrect the project at this time, given what it entails in extending Hobby Collection Django with web service APIs has naturally led to me working to update Hobby Collection Django itself. I’m currently in the process up upgrading from Django 2 to Django 3 and I’m taking the opportunity to revisit various facets of the implementation including enhancing the admin interface with richer controls, restoring the presentation layer of the Audio section and adding additional search filters.

It’s interesting to think all the way back to the origins of this project as a primitive Win32 console app to what it is now and what it is yet to become. It’s one of the most gratifying benefits of being a Software Engineer.