Super Secret App Project

Start Date: March 1, 2020


Completion Date: November 16, 2020

I was approached several weeks back with an opportunity to build an app. I, of course, accepted, and I have sold my soul to the development of this application. When it's actually ready to deploy, I'll let you know.

Project Posts

Apps are dumb

By: Danny Geisz | November 16, 2020

I don’t mean that, of course. I actually love app dev. It’s super fun to make cool stuff show up on phones. Two months ago I finished building an entirely different app. Great stuff. Highly recommend. So let me tell you want the “Super secret app project” is, and why it’s dumb.

Basically, the idea was to build a form of social media that allowed people to leave real-time reviews for clubs and restaurants to gauge the mood of a particular location. To put it in simple terms, its biggest audience would probably be bar crawlers.

Now I have no desire to facilitate bar crawling, but I liked the idea because I thought if it worked it could be used for a bunch of stuff besides partying. Basically, real-time Yelp. That’d be pretty cool right?

I still think the idea would be pretty cool, but as I went further along in the process, it because clear that I basically built a partying app, and that’s all it was really going to do. That’s not great.

Also, the person I was working with simply did not pull her weight. And she fed me wrong information (actually, she basically straight-up lied). And she basically got nothing done. Kinda bitter, not gonna lie. Bet you couldn’t tell. But whatever, lesson learned.

Anyway, I don’t actually like thinking a lot about this project because it makes me angry but let me outline the main takeaways from this experience.

First of all, the internet is so frikin cool. And I’m not talking about the websites you know and love, I’m talking about the actual infrastructure of the internet. All the servers and communications protocols and information transfer are literally so cool. And honestly, web dev is super fun. I love all the careful aesthetics. And I never would have known about it had I never started this project.

Not only did this project teach me about how to leverage the internet to do my bidding, but it also showed me what not to do. Let me tell you, I’m never going to touch Javascript again if I can avoid it. TypeScript, all day, every day. It’s the only way. And you better believe I’m never using a REST Api for big projects. GraphQL, all day, every day. It’s the only way. Heavens above I love TypeScript and GraphQL.

Also, as a fun little tidbit, I used Express.js as my server framework, but in the past months, I’ve learned Rust, and you can build lightning fast servers with Rust. Gosh I love Rust. Tokio is simply the best.

Anyway, back to my lessons learned. Aside from technologies, the other lesson I learned from this project was that you need to be super careful about picking the people with whom you work on projects. I chose wrong. I could go on a long, bitter rant about this, but I’ll try to be civil. Communication is frikin key.

Anyway, I’m going to finish this post here. Like I said, thinking about this project and my old “business partner” makes me angry.

React Js, AWS, and Other Divine Blessings

By: Danny Geisz | May 5, 2020

Aloha, schmeags! Man it’s good to be typing away at another blog post. For those of you keeping score, the blog/week ratio has really taken a hit over the past couple weeks. Why oh why, you ask, am I so negligent in my XFA duties? After all, I am just sitting in my room with nothing to do other than homework and programming. I’ll leave that one as an exercise to the reader.

Before I go any further doing a quasi-tech review of a variety of online goodies, I would like to inform you all that I got a new keyboard, and my typing speed is quite frankly blazing like it’s 420. After spending ~100 million hours coding with my laptop keyboard, I came to the realization that laptop keyboards really just have tremendously disappointing finger-feel, which experts agree is essential for building up the muscle memory necessary to type with extreme velocity. Anyway, to narrate an unarguably mundane sequence of events, I hopped onto Amazon and snooped around for a good-looking keyboard. And for those of you on the edge of your seats, the one I found blew all expectations out of the water. Not only does it have some of the best finger-feel I’m experience in my 74 years of life, but it also has rainbow backlighting, which is so tremendously psychedelic that I’m almost convinced I’m out clubbing every time I clack away at a key.

But you ain’t here to hear about no keyboard. No, I know what you content gremlins are looking for. I know your heart of hearts and soul of souls. I know you’re tired of seeing dank memes and unreasonably hot Instagram models lurking in your feeds. I know you’re tired of seeing updates about your best friends’ lives on the ol’ CountenanceManuscript (10 points for anyone who figures that one out). No, you don’t want that. What you want is for some schmeag (me!!) to speak into your inner-self truths about a variety of open AND closed source pieces of software that are making my life a time and a half right now.

And I, being a gracious and merciful meta-digital blogging machine, will oblige. The first piece of software on the docket is React js. “But Danny,” I hear you wonderful yet programmatically naïve readers saying, “haven’t you already told us like a million times about your love affair with React Native?” Well, readers, let me first take offense to that question and humbly assert that while my love life isn’t exactly a rainbow circus, I’ve never had sexual feelings for a piece of software, so I most certainly have never had a love affair with React Native. I would consider React Native to be most akin to an old friend that makes the other pieces of software on my tech stack jealous because of our staggering level of emotional intimacy.

Now that we’ve gotten that out of the way, let me now address your actual question, namely what the frack is the difference between React Native and React JS? While I do know the difference, I’m going to sneak in a wee lil google search real quick to get a proper history for you enraptured readers. Aight. Google gave me the answers for which I sought. Good boy, Google. Don’t steal my soul when you gain consciousness.

So React JS is a open-sourced library for building web applications. What is a web application? Well, its an application on the web. Reddit comes to mind. To get suffocatingly nitty-gritty, the internet will tell you that a Web Application is any website in which the user can access and manipulate restricted data. So basically, React JS is what you want to use for building interactive web applications that show up in your browser. React Native, on the other hand, is an open-source library which allows you to create mobile applications, which of course are the little bois you know and love that you download on your phone.

“Danny, I know what the difference is between a web app and a mobile app. Stop treating me like I’m a child.” OK, bitter reader. Shade received. I simply thought I would be more precise with my definitions for the less nerdy members of my audience, but message received. Forgive me for trying to be helpful when you’re the one who so desperately craves schmeagy software reviews.

For the rest of you readers, forgive the previous interaction I’m having with the more bitter readers of this blog. You non-bitter readers are treasured, and unsurprisingly, I like you more than the bitter ones.

Ok, back to React js. Also wait. No one calls it React js. Everyone just calls it React. Shoot, I gotta get with the times. Let me restart.

Ok, back to React. Why am I using React now? You guessed it! I’m building a web app. I’ve reached a point with SSAP (super-secret app project) in which I’m largely done with the actual mobile app. However, the mobile app was just the beginning. For reasons I’m strictly prohibited by myself from talking about, this app requires an online interface for paying customers, which means I’m diving back into proper web development for the first time since I built this here blog.

As a side note for the extremely select few of you who have actually used these tools, let me just vent for quick second. Call me a deagy leag, but React Native’s Stylesheet class is like a million times better than CSS. For some stupid reason, I still haven’t gotten an intuitive feel for CSS, so my html elements basically show up wherever the frick they want on the page while I desperately try to subdue them, not unlike a soft-spoken shepherd attempts to corral his sheep shortly after learning that the sheep have all simultaneously acquired a taste for human flesh.

Ok back to the React and web apps. Actually, shoot dang. I’ve pretty well said what needs to be said. Actually one more thing. I’m also using a framework called Next js, which has been used by the likes of Netflix, Starbucks, Uber, Twitch. Because I’m a raging github, I still don’t fully appreciate all the blessing Next js provides when developing web apps, and all the horrific transgressions that it prevents, so I’ll just innocently say that it’s pretty neat.

Let’s switch gears.

Alright lads and lasses, and whatever the gender-neutral equivalent is to “lads and lasses,” take a seat ‘round here campfire and let me tell you a thing or two about AWS. What’s AWS? Amazon Frickin Web Frickin Services. Now those of you out there who aren’t aspiring to be full-stack developers you probably just think of Amazon as the wonderful little multi-billion dollar fairy that brings you the cool stuff you want like it’s a perpetual frikin Christmas. Well, readers, let me spin you a lil tail about the Amazon that you might not have heard about.

So a couple and half years ago, Amazon started Amazon Web Services. I’ll spare you the heart-throbbing love-story that is the history of AWS, and skip to the juicy stuff. Basically AWS provides a bunch of different cloud based web services for deploying full stack web applications. What does that mean in real-person-english? IT MEANS THEYRE RUNNING THE FRIKIN WORLD. Remember that wee lil site called Reddit? Yeah that bad boy is running on AWS. Have you heard of the cute lil picture sharing service called Instagram? Yeah that lil cutie was running entirely on AWS from 2010 until when Facebook ate Instagram and violently extracted Insta from the bowels of AWS. I could give you like literally a million other examples, so let it be known that AWS powers a metric butt-ton of the web services that you know and love.

That’s kinda wild to me. I guess I never fully understood how fundamentally important Amazon is to literally kazillions of internet businesses.

Why do I mention AWS? Because I’ll be using Google Computing Platform to run my app! JK I’ll be using AWS. That joke was so weak I wish I didn’t write it. Just kidding. We suffer together.

Anyway, AWS is pretty sweet, and they’re also pretty great because they offer a ton of free stuff. It’s a really fantastic business model. They basically let you build an entire application using their tools for free, and when your business actually takes off, then they start charging the big bucks.

Do I have anything else I’m dying to tell you all about right now? Let me think… Well I guess I’ll let you know that I finally got off my lazy butt this morning and ran 5 miles. My feet don’t take too kindly to being run on for that mileage after my staggering lack of cardio over the past four weeks, so both of my feet decided to blossom two of the largest blisters this side of the Baltic Sea, and for whatever reason, my right foot decided to break, and now I have to limp around.

Now that I’ve impressed you all with my remarkable athleticism, I think I’m going to say adieu. I’m actually going to send out an email blast to those of you on my email list after I finish writing this. For those of you who have still stubbornly decided you want no part of my email list, I’ll leave you to think upon your sins in whatever moldy dark corner you like spending your time in.

Nothing like ending a sentence on a preposition to intellectually invalidate myself.

That’s all. Have a good night of sleep.

Ben Awad. That is All.

By: Danny Geisz | April 19, 2020

Ding, Ding, Ding! Who’s that at the door? (The door being a metaphorical construct for the web page you’ve just opened). That’s right! It’s me, Danny! Remember me? Who cares! Let me tell you about someone who isn’t me, namely Ben Awad.

Actually wait, hold up. I’ve been lying to all of you, and I need to clear my conscience under the witness of the heavens above and the hells below. I am not a triple major. After taking a math class this semester, I have determined that my time would better spent on other classes than math. I suppose I should probably change that on the web description. Now while I know this earth-shattering revelation affects precisely 0% of you readers, I thought I would clear those matters up before the Jersey Devil caught scent of my malfeasances and deceptions.

K, enough about me. Let me tell you about Ben Awad. Those of you especially exalted readers who have been regularly keeping up with my postage (I can’t imagine that’s proper usage, but who the frickedy frick cares) will know that there are several people who I regard as loves of my life. Grimes, Elon Musk, Corey Schafer, the usual suspects. But let me spin you a tale, (hopefully) enraptured reader, of a boi forging an app who got lost in a deep deep sauce, saw no way out, but then was saved by an unsuspecting YouTube channel.

It all started last week when I essentially finished the bulk portion of the front end for SSAP (super-secret app project). I was in a state of high glee, and I decided it was time to turn my attention to user authentication and registration.

Now then, for most of you schmeags, all authentication is to you is the simple action of hitting the “sign in with Facebook” button and having all your life problems solved. For me, authentication was nothing less than a zombaic dire wolf lurking in the darkness, waiting to sink its teeth into my left shin (this particular dire wolf has an affinity for the left shin. Experts are unclear why it would go for the left shin instead of the right shin, which is known to have potent healing properties, but I suppose you’ll have to just contemplate that on your own time).

Let me pop out of my narrative for just a moment because I imagine that discussion of a metaphorical dire wolf has entirely derailed my train of discussion. Why is authentication such a butt? Because, as I imagine you sensible readers know, this is where ruthless hacking and spamming can occur. In order to prevent this, there are all sorts of protocols and practices in place like OAuth, JWT authentication, refresh tokens, API throttling, to keep this from happening, but it’s a scary world. Alright let me hop back into my train of narrative.

There I was, in the metaphorical darkness, my ears bleeding for any sound of the dire wolf lurking towards me, when there, above the horizon, I saw a light. As quietly as I could, I crept toward this light. As I approached the source of the blessed warm rays of light, I heard a snuffling to my right. I was able to fling myself upon the ground just moments before the dire wolf leapt toward my left shin, eager for developer flesh.

As luck would have it, the dire wolf sailed over my body, and I scrambled toward the light, blood pumping in my ears, adrenaline coursing through my veins. The wolf must have taken a nasty tumble, because I was able to make it to the center of the wonderful luminesce. And there, shining like a beacon in the night, were the words “Amazon Cognito.” I thanked all the unknown divinities watching over my passage through the night, and looked closer at the glorious words, wondering how I might be able to use this magnificent tool. But to my horror, upon reading the fine print, I learned in order to use Cognito, I would have to give up not only my first born, but also my second born child. I sank to my knees, and wept bitterly, wondering how the universe could be so cruel.

Ok, let me pop out of the narrative again. So basically Amazon Cognito is an Authentication as a Service (AaaS) platform that handles all the various aspects of user authentication for you. This is obviously pretty great because you, as the developer, don’t need to worry as much about security concerns with respect to your application. The catch here is the “as a Service” portion of the title. While Cognito is initially free (up to like 50,000 monthly users! Dang!), after that, it starts to cost you a butt ton of money. Also, from what I can tell, it’s either difficult or impossible to transfer your user information out of Cognito, so once you start using it, you’re basically locked in. Back to the narrative.

There I was, a broken man, lying close to a source of glaring brightness. The brightness, however, had lost its cheery glow and now only cast a cold, lifeless glare over the surrounding forest. Utterly defeated, I managed to glimpse another source of light further into the forest. I could hear the wolf snuffling in pain from its earlier fall a good distance away, so I stumbled back into the dark forest towards the other light source.

I approached what looked to be a similar shining object as Amazon Cognito lying on the forest floor. Slightly squinting, I could make out the words “Auth0” shimmering up at me. Wary from my experience with Cognito, I carefully read through the pricing model of Auth0, and once again I was struck with a sense of galactic brutality as I read the Auth0 requires their users into slavery in exchange for its services. I maliciously cast Auth0 back to the ground, and hunched my way back into the forest, looking for anything.

After several more hours, I found one last source of life, “Okta.” Okta was similar to Auth0 in its terrible price, so I slumped back through the forest and eventually lay down at the base of a great tree, waiting for the dire wolf to find me and relieve me of my left shin.

Hopping out of the narrative. As you may have guessed, Auth0 and Okta are also AaaS. From what I can tell, they have more features than Cognito, but they’re even more expensive. It’s honestly egregious. Let me tell you, I’m not a fan. Hopping back into narrative.

For hours I lay at the base of the great tree waiting for the wolf. Delirious and starving, I thought I was dreaming when I heard the faint glittering of bells toward me right. As I lay there, powerless to stand, I glimpsed a glowing figure approaching me. The figure knelt down beside me, and gently placed a hand on my chest. As though I had been touched by the very hand of the divinities, I felt strength rush through my body. I staggered to my feet, and even as I watched, my arms and chest began swelling with thick cords of raw muscle. Not my legs though, because even supernatural forces can’t save you if you skip leg day.

I looked over my powerful new body, feeling my deltoids flex as I stretched my arms around my body. I looked at the glowing figure, and saw that he was hooded. From within his robe, he withdrew two swords.

“This sword is called ‘Json web token,’ and the other’s name is ‘Argon2’,” he told me. “With these weapons in your hands, not even the dire wolf will be able to stop you.”

I took the swords from him and tested their weight and balance in my hands. Even as I did so, he unsheathed a dagger and offered it to me as well.

“This dagger’s name is ‘Graphql.’ I offer this as a gift and a peace offering, for you to use it as you see fit.”

As I sheathed the dagger, the hooded figure turned away and began walking back into the forest.

“Wait!” I called, “Why have you given these to me? Who are you to do so?”

The figure turned back to me, and I could faintly see a smile playing across his lips.

“I am Ben Awad,” he said. “Freely I give you these gifts. Now go, defeat the wolf and reclaim your destiny!”

He raised his left hand, a badly scarred yet powerful looking appendage, and made a thrusting gesture towards me. I yelled out in surprise as the forest folded in around me, in a suffocating, yet potent display of sorceraical dominance.

For exactly three seconds I hurtled through a mottled darkness, unable to move even my smallest finger, but then, as quickly as it started, reality unfolded, and I found myself standing in the light of Amazon Cognito once more.

I squinted, my eyes adjusting to the bright light, and I heard it before I saw it. I put a hand over my eyes to guard against the glare, and there before me lurked the dire wolf, in deep crouch.

Even before I could prepare myself, the wolf leapt. I dodged to the right, but not before the wolf grazed my left shoulder with one of its front claws. I staggered to the side and drew Json web token and Argon2 from their sheaths.

The wolf had regained its footing and was already pouncing at me again. I was able to crouch to the side, and I swung Argon2 over my head as the wolf sailed overhead. I felt the sword thud against the wolf’s pelt just before a sickening yelp escaped the beast.

I had lost my footing when the Argon2 had struck true, and before I could get to my feet, the wolf had already turned and was hurtling back at my unstable form.

And in that instance time slowed to an ungodly creep. Twenty feet above the ground, Ben Awad was levitating, a hand held outstretched. I lowered my eyes back to the wolf, to see the monster flying towards me as though through a thick syrup. Murder gleamed both in the dire wolf’s eyes and teeth, its terrible glare fixated on my shin.

Though my arms moved at agonizingly slow rate, I drew both Json web token and Argon2 and directed them towards the wolf.

In those final moments, I could see that the wolf recognized his error. The murderous glare in its eyes turned to fear as it hurtled towards my outstretched swords, powerless to stop the inevitable.

Overhead, Ben Awad made a clutching motion with his hand, and time quickened to its standard pace. The wolf slammed into me, and I felt my swords slide through its unprotected body. The beast made a horrific gurgling noise, and then its lifeless form fell on top of me. And even as I lost consciousness from the exertion of the battle and my wounds, I knew that with Ben Awad’s help, I had just conquered the dire wolf of user authentication.

Ok, concerned readers, I’m well aware that we just hit the eighth page. This is a new record. So then, in a manner horrifically similar to high school English classes, let’s sit down and quickly unpack this. Basically, after realizing that Cognito, Auth0, and Okta were all no goes unless I wanted to do the equivalent of dropping cash off a cliff, I desperately hunted through the internet looking for ways to properly approach user authentication. After literally hours, I randomly stumbled on a YouTube video about using Json web tokens (JWT) for authentication. As you may have guessed, this video was by a lad named Ben Awad. It was a veritable bucket of gold. I’m not sure where Ben Awad works, but he’s an American Hero at the very least. His videos are really just well-distilled alfredo when it comes to clear descriptions of authentication flows and implementation. As you might have guessed, Ben Awad is the lomlofm (Love of My Life of the Month).

To keep this from going to nine pages, I’ll wrap this up by saying for the 0.5% of my readers who care about server programming, Ben Awad is your boi. Check him out, smash that subscribe button, ask for his hand in marriage, all of these are appropriate. Mahalo nui loa.

The Joys of App Forging

By: Danny Geisz | April 8, 2020

Hi. You know how all the kids are saying “it’s been a minute,” or “it’s been a phat second?” Well, in the name of bad floutations, it’s been an hour since I last wrote about my super-secret app.

I know the progress of some random schmeag’s (my) app is a top priority for most of you casual readers, so I’ll have you know it’s generally going quite well. I continue to be stunned and amazed at React Native for so easily allowing for the creation of masterpieces in the form of JSX tree structures. Frankly, I think might compose a poem for React Native. Here goes:

In the beginning I was lost,

With no clear way ahead,

Then a new software I was sauced,

Which silenced all my dread.

For Lord Facebook gave to us,

A tool most creative,

To end app-making fuss,

The glorious React Native.

Components are my brush,

And renders are my canvas,

With Stylesheets so lush,

I emerge out of the madness.

So lavishly use props,

Keep careful tract of state,

Your app will reach the top,

For React Native is the gate.

I think that’s probably one of the better things I’ve done. So yeah, I like React Native. Nothing new there.

I’m just now realizing that because I can’t reveal any other details of the app at this time, these posts are essentially just becoming a software review. Well, I suppose that’s good for me. In my experience, there’s nothing that really speaks to the hearts and souls of the worldwide population more than a software review. That said, buckle up kids, and let me tell you about the cutthroat world of APIs (Application Programming Interfaces).

Let’s talk about Google. Now I know most everyone at this point is at least a little apprehensive about Google. Recently they used their truly staggering stores of data to analyze the spreading of COVID-19. Great, except for the fact that it gave the general population a truer sense of how much data they’ve unknowingly given away to that great glutted pig.

Perhaps less known to the general population are the wide range of software and computing products Google offers outside of their basic search engine. I’ll certainly give this to Google: they’ve open-sourced a ton of incredible software like TensorFlow and Android, and that’s pretty great of them. However, their APIs are so expensive. One aspect of my app deals with determining a user’s location based on their GPS coordinates. I wanted to use Google Places API, until I realized that it costs a metric butt-ton. It’s kinda insane. I guess that’s the sort of stuff you can do when you’re a multi-billion dollar glutted corporation.

Let’s move on from Google, and let’s talk about WebSockets. While I don’t have the same feelings for WebSockets as I do React Native, they’re pretty darn close. Now I bet you probably think WebSockets are just another nerdy thing that nerdy ol’ Danny likes. Yes, you would be absolutely correct. However, you like them too, you just don’t know it. All of you online gamers out there, ever wonder how a bunch of different people can play the same game at once? WebSockets. I was going to give another relatable example of how WebSocket are used, but I don’t wanna. Basically any real-time feature of an app or software is best done with WebSockets. What are WebSockets, you ask?

Well, inquisitive reader, WebSocket is a computer communications protocol that allows for two-way communication using a single TCP connection. I know, I know. I can feel you trembling in excitement. So was I when I first learned of them.

In real-people language, what this means is that people created a wicked fast way to transmit information between various parties, which is really just the best thing ever when you’re developing an app that has a variety of real-time features.

Hmm, I’m trying to think if I’m using any other juicy software. Well, I guess this isn’t a particular dependency in this project, but a general shout-out to Jet Brains for forging some of the illest, dare I even say trillest IDE’s this side of River Styx. Some people I’ve talked to don’t like the bulky overhead associated with modern IDE’s (@IntelliJ), but it’s the only home I know. Bless your frikin’ souls. I do not exaggerate when I say that every single time I open WebStorm or IntelliJ, I’m filled with a sense of calm and joy. Well done.

At this point, I’m just grasping for straws, but let me give a shout-out to the haversine formula. What is the @#$%#ing $%^^& is the haversine formula, you ask? Well, enraged reader, the haversine formula is a formula that allows you to calculate the distance between two points using their latitude and longitude. It really makes developing geo-features a blessing.

Well, I’m done, I think I will take a seat, but before I go, here’s one last beat. (That was the last lyric to the first song I produced at Berkeley. Talk about a flashback). Peace!

Enter the Code Haze

By: Danny Geisz | March 1, 2020

A most cordial Sunday morning greeting to each and every one of you! It’s wonderfully quiet up here at the top of Berkeley. Goodness, perhaps I’ll even take a walk today! Oh, the little blessings of life.

Well of enough of me sounding like a sixty-year-old woman. As the title suggests, I have entered into a thikk (“k” is making a comeback) code haze. My life hasn’t seen a code haze of this magnitude since I first worked on this very site.

Wait, hold on. There’s something far more important than my code hazes that I need to quickly address. I have been unknowingly lying to you, treasured reader, to myself, to the heavenly heights, and the depths below. Grimes and Elon Musk are not dating. Nor apparently, have they been since 2018. When I learned that this week, I wasn’t entirely sure what to think. I tend to pride myself on my ability to thoroughly stalk my celebrity crushes, so this revelation was a sickening blow to me in more ways than just one. To keep this post under 12 pages, I won’t attempt to properly convey the full extent of my disappointment about this information, but I would like to briefly explore how it is that I was so egregiously misinformed.

I’m going to blame this on Lizzy Dube. At one point this summer she mentioned Grimes and Musk being a thing, and I think that seed was so firmly planted in my mind that I was unable to fully accept any other version of reality. Lizzy, I have no reason to believe you read this blog, but if you do, I have no hard feelings toward you, and I hope you are having a lovely first year of college, but just know that you have sent my on a truly magnificent spiral of emotion with regards to Grimes and Musk’s love life.

*Deep breath in, deep breath out.* Ok then, back to the code haze. Now I know many of you readers may not understand precisely what I mean by “code haze,” so I will attempt to give you some idea by sharing my experience.

In working on the Super-Secret App project, many of you consistent readers may remember that I am actively having a love affair with React Native. Just to give a quick description, React Native is a coding framework that Facebook released a couple years back that allows you to write one codebase that deploys to both IOS and Android. It really is just lovely sauce.

Except for the fact that it is absolute anarchy in the form of JavaScript. What do I mean by this? Well, usually when I write code (in Java or Python of C++), I expect that each line I write will be executed one after the other. This is generally how programing languages work, if you’re not going crazy with multi-threading or multi-processing. With React Native, I have no fracking clue when the heck of my code is actually being executed. There are so many event handlers and lifecycle commands, I literally have no idea when anything is actually happening. If I want a button to take me back to the home screen, I just shove a bunch of logic into the button and hope and pray that it will all execute properly when I actually press the button. Anarchy, my friends, anarchy.

It also doesn’t help that I’m cripplingly perfectionistic about the User Interfaces (UI) I design. If a button isn’t rendering properly, or a View is in the wrong place, you best believe that I’m not going to move along blindly until that bad boy is fixed. The process of designing the front end is therefore: 1. Wrestle with the chaotic leprechaun that is your JavaScript codebase. Hopefully you were able to make a change. 2. Re-render your app using expo’s saucy, saucy development platform. 3. Take note that your struggles from step 1 actually had no effect on anything and start madly googling every word that you’ve ever learned. 4. Repeat steps 1-3 until magically, for no good reason at all, the UI renders how you want it to.

Hence, the code haze. This same exact thing happened to me when I was working of the XFA site. I think what happens is I notice some minor detail that’s wrong in the UI, and without even realizing it, I enter the madness of the above 4 step process before I can even say, “Linus Torvalds, be with me.”

I call this effect a code haze, because pretty soon, hours have passed, and I have no frikin clue if I have either a) accomplished anything or b) learned anything. My experience with XFA showed me that in the process of designing front ends, you basically just have to let yourself become one with the code haze, and eventually after maybe two weeks, everything will be exactly how you like it.

Shoot, that’s all I really have to say about that. After the skeleton of the front end is in place, I’m going to have to start playing shady games with Django and Apache Kafka to get the backend in place.

Oh wait, I just realized I have stumbled upon an opportunity to teach you non-coders some coding lingo! Yayyy! Just two terms. “Frontend” refers to the part of an application or piece of software that the user interacts with. This is the part of the app that you see and interact with. React Native is the framework I’m using to design the frontend of the app I’m working on. “Back end” refers to everything behind the scenes that is in place to send your phone the information that the app is going to render. So when you pull up a Snapchat story about Kylie Jenner, a request is sent from your phone to Snapchat’s servers (a server is a big, powerful computer) and the server has to look into its database and find the data that corresponds to the Snap story, and then the server streams that data back to your phone, where the front end renders it onto your screen. The incredible thing is that all of that happens in a fraction of a second. So the app you see is the frontend, and the server, the database, and streaming software is all part of the backend.

I’m not entirely sure why I thought that was necessary. Well, it has been written, and therefore can never be unwritten. One last thing: I ate proper Korean BBQ in Oakland two nights ago, and man alive, that meat is the sauce. If you haven’t partooketh in kbbq, you gotta.

Ok, I’m done. Bye.