Tag: App Dev

Apps are dumb

By: Danny Geisz | November 16, 2020

Project: Super Secret App Project


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.

Wrassling with the Internet, part 1 of Infinity

By: Danny Geisz | September 7, 2020

Project: The Parleya Experiment


What is poppin, boys and girls?? It’s your boi, Daniel frikin P. finally back from the dead yet again to give you some sweet, sweet content. Well, I suppose that’s a bit of a lofty claim. If web app forging, or general software corralling falls into your category of sweet, sweet content, then, well…I’m your man.

Let me immediately address the beluga in the room (I feel that the particular topic at hand is more egregious than what is typically correlated with your standard “elephant in the room” cliché, so I have appropriately replaced elephant with a more egregious entity to find in your room, namely the beluga). I, Lord Ex Fizz, have not posted any content in what feels like a decade. I am not sorry, and I don’t repent. If at any point you were invested enough in my postings to care about when I put something new on the ol’ site-erino, then perhaps you feel as though some sort of fizzy apology is in order. I love you dearly, should you find yourself in this category, but frankly, my lack of posting is none of any of our concerns.

As you may have guessed, I haven’t been writing ex-fizzicle content simply because I have been coding. Somewhat non-stop. What have I been coding, you ask? Well that’s the point of this new project, so tighten your belts and shoelaces, and settle on in.

Let me weave you a tale. At the beginning of human existence, before any notion of a social contract, humans essentially existed in a state of anarchy. If I looked over and saw you holding a really cool looking rock, then by golly, I’d go over, smash you in the head with another worse rock, and take that beautiful orb you’re holding right out of your hands.

Smashing other humans in the head is all fine and good, but what happens when a bigger boi comes along and wants my rock? Well, friends, I’m finna get smashed, and that’s a fact, jack. Now, brethren and sisthren, ya boi ex fizz is not in the business of getting smashed, so what do I do to prevent that? Well, I form a social contract with the bois around me. I may not be able to steal whatever I want from weaker human, but there’s a much lower chance of me getting smooshed, and that’s just really fantastic.

If you extend this notion more, you end up with a government. Healthy governments are pretty fantastic because even though not everyone has a perfect moral system that would perpetuate a healthy society, the blessed government provides a series of incredibly potent incentives for acting as though you do. To put it in a less overtly verbose way, if I smash someone in the head, I’m probably going to jail for a long time, so basically, I’m not about to go out on the street and start smashing people.

Now let me weave you another tale about the human experience. Around the turn of the century, humanity was reborn, not of flesh, but of ones and zeros, binary. With the advent of social media, humanity was able to assume a new digital form of being that afforded a set of experiences and abilities previously impossible.

However, much like the early stages humanity, we see in typical social media settings that there are no systems in place (like governments) that incentivize good behaviors. Sure Facebook and Twitter are desperately trying with their moderators and censorship, but that is mostly causing a whole lot of outrages, and the solutions they are implementing typically in no way scale with the size of the user base.

The effect of this, as especially seen on Twitter, is a huge population of humanity that essentially exists in a state of unregulated anarchy. And while the consequences of negative behavior may not threaten a person’s physical well-being (except in some cases – I’m looking at you, cyberbullying) they certainly take a non-trivial toll of people’s emotional well-being.

AT THE SAME FRIKIN TIME, the blessed, blessed internet is simply one of the most fascinating and impactful technologies ever developed. The level and speed of connection it provides is simply staggering. The fact that I can host an API in Ohio that I can access in milliseconds from Colorado, well, it’s simply breathtaking. Put in a more relatable sense, I, Danny boi G, can talk to someone in Singapore with millisecond latency. We take that for granted, but I mean, that’s literal insanity.

Anyway, why do I care, aside from my natural inclination towards juicy, juicy tech? Well, despite the extreme toxicity that something like twitter propagates, my hypothesis is that the absolutely insane level of connection afforded by the internet should be able to be used in a manner that benefits humanity and brings us together, rather than tearing us apart.

Now then, let’s get down and dirty with the Parleya experiment. I’ve identified three fundamental processes that are integral to the continued development of humanity.

  1. Connection – human beings need to be able to cooperate in order to accomplish anything. If you live in America, you’ll notice we’re being torn apart by political and social issues, which introduces a wide variety of barriers to continued progress.

  2. Accessibility, Integrity, and Quantity of Information Transfer – In order for human beings to effectively utilize stable subsystems to build stable and sustainable solutions to problems, they must attain the best possible understanding of both the problems they face and the tools at their disposal to solve said problems. Right now many news and media have strong incentivizes to mischaracterize problems due to political agendas, the desire to produce interesting content, and other things of that nature. In order to move forward, we must create systems that incentivize the propagation of accessible information that accurately characterizes the true nature of the information in question.

  3. Analysis of Information – As previously mentioned, forward progress necessitates the use of stable systems to build solutions to problems. In order to build sustainable solutions to problems, we must understand the tools at our disposal, which necessitates a clear understanding of the relevant systems that can be utilized for our benefit.

Yikes that was long winded. Anyway, Parleya aims to address topic number one, ie connecting people. Specifically, the goal of Parleya is to build a platform that incentivizes healthy conversation about traditionally polarizing or controversial topics. If we’re actually good friends in real life, then you’ve heard me talk about Parleya for sure. I just haven’t blogged about it yet because for some reason I didn’t want to.

It has become apparent, however, that I should be providing some level of log to this project, because it’s essentially a scientific experiment. Well, I suppose any startup can be classified as an experiment, but especially this one, because the goal is clear, and the solution is not. Anyway, the purpose of this project is to log my hypotheses, observations, and conclusions with regards to the solutions I try for Parleya.

If you’re wondering what I’ve been coding, it’s Parleya. I’ve been working on it since the end of June, and I just finished the MVP. Shoot me an email if you’re interested in testing out the MVP.

Anyway, as previously mentioned, I’m going to write out my initial hypothesis for the first iteration of the project. Here goes.

As I mentioned, one major problem that I’ve identified with most major social media platforms is the fact that there are essentially no incentives against poor, unproductive behavior. If Kylie Jenner tweets something about her dog, there’s basically nothing stopping me from calling her a selfish whore, just because I’m feeling cranky.

Now, as is somewhat evident, this sort of name-calling behavior, and the ease with which twitter users can mock and dunk on each other does not in any way produce particularly meaningful discussions. Thus the principle goal of Parleya is to find a conversational structure that disincentivizes negative behaviors. Here is my first hypothesis for such a solution.

In a hopefully scientific fashion, I shall lay out the central assumptions I’m making about internet users.

  1. If people are on Parleya, they want to interact with other people. The internet is boring even for trolls if nobody interacts with them.

  2. People typically do not enjoy interacting with people that are obviously extremely aggressive or quick to post personal attacks against other users.

  3. People typically do not enjoy interacting with people who are obviously over-sensitive and unwilling to engage with opinions other than their own. These are the assumptions I’m making. Now let me tell you how Parleya v1 works.

User one posts a conversation about a controversial topic. User two does not agree with user one’s point of view, and therefore posts a mean message with an emotional attack against user one. User one doesn’t like this one bit and decides to block user two’s message. Ok, Danny, I hear you saying. You’re describing social media. What about this is any different from anything else? Well, blessed reader, sit down, hush up, and let me frikin tell you.

The reason why Parleya is different is that conversations and messages are largely anonymous, but three numbers are associated with every message or conversation someone posts on Parleya. Here they are:

  1. The number of times the user has had a message blocked

  2. The number of times the user has blocked someone else’s message

  3. The number of successful conversations of which this user has been a part

You may immediately see why this is useful. If your first number is high, then perhaps you have posted a lot of overly aggressive or offensives messages that people have blocked, which implies you’re not a good conversationalist. If your second number is high, then you have blocked a ton of other people’s messages, which implies you are overly sensitive or triggerable, and therefore not a good conversationalist. Finally, if your last number is high, that implies that you have obviously been a part of many good conversations, and thus are a good conversationalist.

Therefore according to assumptions 1, 2, and 3, people will want to keep their first two number down, and their third number up. Also let me say that explaining this by means of text is probably the worst way to do it, and if you’d like a better demonstration, shoot me an email, and I can demonstrate this app over zoom.
Anyway, as you might be able to see, if assumptions 1, 2, and 3 hold true, then there is a strong incentive to not post offensive messages on this platform, which is essentially what makes the platform different from other existing platforms.

The last part about the app that is cool is that after a successful conversation, you can send friend requests to other users who posted good insightful responses. Thus, even though Parleya conversations are anonymous, after a good conversation, you are able to connect with people from entirely different backgrounds and hear more about them and what informs their opinions.

Ugh, I’m on page frikin 9. Aint nobody got time for a post this long. I’ll add one last thing because it’s important. I got about 20 people who were interested in the testing the app, and what I quickly found is that I can’t approach user beta testing with a laissez-faire methodology, and I need to ensure users understand the platform and the flow of conversations before using it. So that’s where I’m at. I think you’re probably as tired reading this as I am writing this. See ya.

Shotgun Thoughts

By: Danny Geisz | June 1, 2020

Project: #Life


Hi. Let’s skip the introduction. Just kidding that would be absolutely horrible for bloggular cohesion. Since I last wrote a post, I have had several things float through my mind-space that seemed to warrant blog posts but were simply not juicy enough to consume an entire post. Such thoughts pile up quickly, my friends, and at the rate I’m currently writing posts, they will eventually overwhelm me, and I shall become more thought than man. I think I’ll just have to set aside particular times of the week specifically for blogging purposes. Yeah. That’s the only way.

aNyWaY, to relieve my brain, I will now proceed to write several shortish things about a wider variety of topics than usual. Various people have told me they enjoy the “stream of conscious” nature of my blogs. To that group of people, I must say that I actually haven’t really considered most of my posts to be particularly “stream of conscious,” but I must warn you all that what will follow in this post will simply blow every other post I’ve written out of the water in this particular category.

To begin the shotgun thoughts, let’s first talk about shotguns. I like them. My brothers and I recently got together with a family friend of ours, and we drove golf balls off a cliff into the wild blue yonder. We then subsequently shot skeet off the same cliff, and it was deeply enjoyable. My father owns an over-under shotgun (which is a double-barreled 12-gauge, but the barrels are stacked vertically), and that boi is simply of bucket of fun to shoot. Highly recommend to a friend.

Next, let me tell you about a lad named Nathan Peck. Who’s Nathan Peck (I mandatorily ask to keep up the jaunty flow of the post)? Well, he’s about the most stereotypical San Franciscan developer I’ve ever laid eyes upon. He works for Amazon, specifically AWS (my only true love), and his job title is “Developer Advocate for Elastic Container Service at AWS.” Pretty boring, right? WRONG. Go sit in a corner and think about what you’ve done. But why has Nathan Peck achieved loml status? Well, he wrote a series of just shockingly, almost offensively informative Medium posts about how to launch a serverless containerized chat web application on AWS. Huh? Let me dissect the previous statement. Medium = A web app where people can basically write blog posts. Medium is very, very good, and has been a critical well of information on my four-month web-app journey. I love it almost as much as StackOverflow. AWS = Amazon Web Services, which is essentially a butt ton of computing services running on a butt ton of gigantic computing centers that Amazon built all over the world. For me, I basically rent computers on AWS that run the backend of my application 24/7. Serverless = I give AWS code, and AWS simply deploys it wherever the frack it wants to. Serverless = Fan-frickin-tastic, because I don’t have to provision and maintain servers. The maybe two people of my user base who have ever worked with servers should understand the intrinsic pleasure serverless architectures bring to my soul.

Anyway, figuring out AWS and CloudFormation and Server programming in general was a challenging endeavor, but the posts my boi Nathan Peck wrote about AWS and chat apps has probably been one of the most helpful things I’ve read in the past four months.

Boom, next. So, Charli XCX is a gal. I was familiar with neither her nor her work until several weeks ago. Actually, that’s not quite true. I distinctly remember in 2012 driving through Indiana and having “I Love It” irrevocably stuck in my head. That was brutal. Anyway, I believe my sister and brother were talking about her, so I gave her latest album a spin. Spoiler alert, it slaps. It slaps hard. My gosh. Two days ago, I had a private drugless rave in my bedroom in which I turned on Anthems to max volume on my headphones and engaged in a dance form I have dubbed “rhythmic contortions.” Very good fun. Highly recommend to a friend. If nothing else, give Anthems a listen. It simply deserves your time.

It is an intellectual crime that I have never once mentioned blue corn tortilla chips on this blog. Hey friend! Are you a sentient human being that requires food to survive? Do you find that standard food is lacking in both saltiness and texture, but you don’t know where to turn? If you answered yes to either of these questions, then boy do I have the thing for you! Introducing blue corn tortilla chips! You remember regular tortilla chips, right? Well blue corn tortilla chips are just like those, only blue! Amazing! But Danny, I hear you ask, why are blue corn tortilla chips any different than regular tortilla chips? Well, intellectually endowed reader, I don’t have a fracking clue. What I do know, however, is that blue corn tortilla chips are 20% more salty, have 45% better mouth-feel, and 13% better texture than the average tortilla chip.

I can hear some of you sputtering about how on earth I’m able to properly quantify mouth-feel, quality of texture, or even saltiness. Beat me in a fight, and I’ll tell you.

Passionfruit La Croix. Mother of Mary. Unlike blue corn tortilla chips, I’m quite confident that I’ve mentioned my enjoyment of La Croix prior to this post. I haven’t, however, mentioned which flavor of La Croix is categorically superior to all others. The answer to that question is simply Passionfruit. I can firmly say, and I think you’ll all agree with me on this one, that anyone who disagrees with me has an incorrect opinion.

Now that Passionfruit has taken its place as the rightful leader of the La Croix pack, let me whisper some sweet hymns into your ears about another flavor of La Croix that deserves your full attention. That flavor is Coconut. Why? Well, pretty much all “flavors” of La Croix show up immediately the second that blessed liquid graces your tongue. I trust most of my readers are fluent in memes, so it seems like a flagrant waste of everyone’s time to discuss the faint nature of La Croix flavors. The coconut in Coconut La Croix, however, sneaks up on you in the form of a three-second delayed aftertaste. Thus the immediate onslaught of unadulterated carbonation that we all know and love doesn’t blatantly overpower the coconut in this particular rendition of La Croix. The coconut taste is, understandably, faint, almost like a pleasant dream, and thus after sipping a Coconut La Croix, it almost feels as though you’ve closed your eyes, and are lying on a hammock on the beach.

For those of you who’ve hopped on the Bubly bandwagon, you are all mindless sheep, and it will be a miracle if we can even superficially be friends.

You know, I really haven’t given MBMaM the time of day that it deserves. This is a great place for it. My Brother, My Brother, and Me is a podcast by three wonderful human beings, who give advice based on a series of questions either sent in or gathered on Yahoo Answers. The names of these bois are Justin, Travis, and Griffin McElroy, and they are simply very good. If you don’t know this Podcast, get familiar with it. It is guaranteed to improve the quality of your life by at least 17%.

Cher Lloyd wrote a song a good while back called Want you back. The sweet sweet beat of the song, combined with the British nature of her accent have conspired against me, and that song has been stuck in my head for like a week. I want it to stop. I am very tired of it. Wow, I’ve Googled Cher Lloyd, and apparently after she was on the X Factor, she was one of the “10 most hated teens in Britain.” Dang. That’s kinda wild. Way to reinvent yourself, Cher.

I’ve been running a bit more. I mostly just do it because it clears up my head space, which allows me to come back and program with greater ferocity. I’m super super slow, however. Nothing like a quarantine to absolutely have its way with your fitness levels.

I think that’s enough for now. Hmmst. I’ll spend 30 seconds thinking if there’s anything else.

Nah I think that’s good. Bye.

React Js, AWS, and Other Divine Blessings

By: Danny Geisz | May 5, 2020

Project: Super Secret App Project


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

Project: Super Secret App Project


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

Project: Super Secret App Project


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

Project: Super Secret App Project


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.