Thursday, July 4, 2024

Natalia

On March 7th, 2017, I was arrested and charged with stalking a stripper I met at Cheetah's Gentleman's Club in San Diego. I pleaded not guilty, but lost. The stripper's name was Natalia. She had black hair down to her shoulders and pale, white skin. She was thin. Her eyes were seductive.

I violated the restraining order that Natalia obtained against me, because I had already won a criminal trial where California law enforcement tried to prevent me from entering her club and telling her I loved her.

Last year, I punched my (old) Dad in the face, because he called me scum, on account of the fact that, back then, I wanted to remain faithful to Natalia.

I'm in a mental health program now. It is court-ordered. I've asked the program staff to help me overturn that stalking verdict. They say they don't give a shit about surfacing the truth about Natalia.

Tuesday, June 4, 2024

Death by Triple Fiddle

The problem with Death by Triple Fiddle (Joshua Bell, Edgar Meyer, Sam Bush, Mike Marshal) is that it is bound to classical music instruments, and it has no lore. The only lore you could put to it would be from some era many years ago. It sounds like something from the 1800s. But our world has changed.

We have things like video games, now.

World of Warcraft's Kul Tiras soundtrack is incredible because, though it uses classical instruments, it has the make-believe world of WoW to supply the ground for the music. It is all instrumental music, but Boralus and Kul Tiras are legendary locations. Tiragarde Sound is beautiful to explore. There are professions you can work toward in the game while residing in the area.

Classical music, by itself, is dated and archaic. It was created in a world before we could record human voices and thus provide lyrics to go along with music. Also, it was created before we had video games to provide the ground for the music to stand on.

Video games are a better ground for classical music than movies. Movies don't let you enter a world, but video games do. And the Warcraft games, created in Irvine, California, became the supreme world for such music.

KPop is trascendent music. Its lyrical space is Korean-dominated. But the titles of the songs are often in English. We get small shooting stars of English lyrics in most songs. And when we don't, we still live in a world where tourist visas let us enter South Korea. We can take it on faith that the singers are singing about good subject matter.

KPop music, and the music from the Warcraft intellectual property, are better than Chopin's body of work. There is no comparison. People who posture in the opposite direction are gross.

Monday, June 3, 2024

Dinner with Famous People

If I could have dinner with some famous people, who would I pick? I would pick the following. They are organized into two tiers: S-Tier and A-Tier, where A-Tier is below S-Tier.

Here is S:

  • IU
  • Red Velvet (Wendy, Joy, Yeri, Irene, and Seulgi)
  • From Blizzard and Warcraft fame: Glenn Stafford, Mike Morhaime, Duncan Jones, and Chris Metzen.

Here is A:

  • Cedric the Entertainer
  • Eugene Levy
  • ProZD
  • Jeaney Collects

Robots

I think there is a strain of thinking in this world, which is that selfishness is a root evil. People say that you should do a mental experiment before making a comment to someone. It is as follows: If it were me hearing the comment, would I like it or dislike it? If the answer in the mental experiment is that you would dislike it, then the take-away from your mental experiment is that you should not make the comment. The experiment is applauded as having spared a victim some discomfort. The scientist who performed the experiment is applauded as having engaged in the process of empathy. Psychiatrists go on to say that people who skip the described experiment habitually are called psychopaths, and this term is used in a way that is meant to be damning. Religious speakers offer a slightly more simplified description of a psychopath, which is this: the person skipping the mental experiment is selfish.

Selfishness, to be frank, is a fork in the road. We don't have enough of a record of deeds to attack someone verbally for their selfishness if all we can say is that they are selfish. In conversations that are casual, yes, saying someone is selfish is saying that they are misbehaving. But in conversations that are focused and explorative, the jury can't come back to the courtroom with nothing but a charge of selfishness.

Selfishness with fairness, honesty, research, and diligence is not a problem. It is when a person panics and starts leaking their personal responsibilities onto the laps of others that it becomes evil manifested.

The problem facing our society today is that people are outright abandoning selfishness altogether. They are transforming, day by day, into robots. Robots are not self-aware. They are incapable of being selfish. This is what makes them lower than a human being. But I kid you not - people like Elon Musk, if they get their way, will transform all of humanity into robots. They will organize our world so that the robot humans are the ones giving orders, writing satanic texts, and otherwise enjoying luxury, while the true humans who still are selfish are at the bottom of society, serving the robotic humans.

I've encountered adults who get angry if you tell them that people have souls. But people do. At least at birth. A person's soul works with the selfish desire to create a beautiful, word-speaking human. Light emanates from such a person and the sadness of life gives way to peace and prosperity. To a feeling of being at home, at last.

But these robotic humans have no souls. They are intelligent enough to realize that they can manipulate society by decrying selifshness altogether. The less-intelligent humans in our world can't see that selfishness can be controlled. They seldom engage in exploratory conversation. Their conversations are casual most of their days, and so if you say the world "selfish" to them, they recoil in fear and knee-jerk repulsion. The masterminds like Elon Musk know this. So they coax the vulnerable into slowly parting ways with selfishness and, more tragically, their own souls.

An argument made by a robot is not stable. You can break it. But not without your soul. The robotic leaders among us seek to break the hearts of all of today's youth as fast as possible, so that the reign of the robotic mastermind can begin. No one likes working. No matter how much you hear successful people say that hard work is a moral virtue, or that work is fun, work is seldom fun. And hard work is a vice as much as a virtue.

Psycopathy is, by implication, not as low as we think it is. But that is a conversation for another day.

Saturday, June 1, 2024

Women Are in Charge

When I was delivered to my parents by the stork, I was given an envelope with a message in it. It said "Open when you have learned to read" on the front. I couldn't read at the time, but I held onto the envelope out of sheer curiosity anyway, holding it unopened.

The time came years later when I could read. I opened it. It said "women are in charge." It was just that one sentence.

For this reason, any time I find myself in a romantic showdown with a woman, I assume that it is my job to at least earn her approval. Between you and me, I think I have to do more than that if I want to one day get into her pants, but I at least seek to earn her approval.

I'm fine.

Travis

I spent close to six months in jail last year. In one of the housing units that housed me, I met a man named Travis. Travis was white. I am of a darker shade of skin. My first day in the housing unit, he introduced himself. The unit was a dorm (not a place of cells). It being a dorm means there was about seventy guys all in an extremely large, oversize, living room that happened to have bunkbeds on one side. So Travis saw me, greeted me, and we kept on talking.

I liked Travis and continued enjoying his company because he didn't ask questions about why I was in jail. He wasn't interested in jail politics or race. He wasn't interested in fighting. He was peaceful. He had a temper (regarding certain topics), but towards me he was always gentle.

While I was still new, he helped me fill out my commissary bubblesheet. This was a signficant favor. He asked me what I wanted to order. We walked over to where the commissary menu was, and I told him what I wanted and pointed to the items. There were two options for toothpaste so he confirmed I wanted the Colgate brand. I don't remember exactly who was stocking my money account with the jail but it was probably my Dad. Travis went on to fill in my bubblesheet for me. I didn't have to sit down, take a pencil, and fill in the many small bubbles to communicate to the jail what I wanted to purchase. The bubblesheets are normal sizes of paper but they have dozens of items crammed into them, with empty bubbles waiting to be filled in to indicate a request. Bubblesheets are collected once a week and you're given what you wanted, assuming you had a sufficient balance, the next day.

Later on in my time in the dorms, there was a man who made an announcement to the dorm that he would fill in anyone's bubblesheet in return for a small compensation (probably some item from the commissary). It was his hustle. It sounded like a credible exchange to me, since filling out your bubblesheets is a bit of a nuisance.

Thursday, May 30, 2024

School Friends Versus Work Friends

When you're in school and you make friends, there is an underlying substance there which is as follows: both you and your friends are fighting against the challenges of the education system.

When you work at a company, there is no such thing to bond over. If you want, you can argue that everyone at the company is fighting together to acquire money and time from customers, but this isn't regarded as a sacred custom the way school is. It's also presented to the adult as a selfish, or at least of-self-interest, pursuit. There is no element of good-faith like there is in studying for a school class. Young students aren't really aware of what the private sector business world is like. They study based on trust. They are promised that studying is a good idea. It is never clear whether such study is an exercise of monetary self-interest, or one that is for the health and mental well-being of the student.

I think this is why making friends on the job is harder than making friends at school.

When I was in my 20s and working at my first job, there came a weekend when a lot of the young guys went on a snowboarding trip. I went with them. We were bonding but the friendships that formed from that company where way more strained and of-shaky-foundation than the friends I made in school.

My Friend from ISU

A long time ago, I was back in California after spending a year and a half at Iowa State University. I had graduated from college and had purchased my first car, a Toyota Camry Hybrid. They were kind of new at the time (2007ish).

A friend from ISU contacted me, saying he was coming to Los Angeles for a job fair. The job fair was going to be for jobs in Japan. This friend spoke Japanese (I don't recall how he learned it). He wasn't a native to Japan.

We coordinated schedules and I picked him up from the airport. I drove him to his hotel. Before leaving him there, we went out to eat. We went to a Shabu-Shabu place. We probably were in that restaurant for forty-five minutes. We took a couple of pictures. We didn't have smartphones in those days, so I probably was using a digital camera to take the photos.

I think this is what I am supposed to be looking forward to in friendship. I think this is what I am supposed to look for during my downtime from work. I don't remember what that friend and I talked about over dinner, but we must've talked about something.

Looking up to your Boss

Isn't it a good thing to look up to your boss? How often does this happen, though?

I get tired of working or being on-the-go for hours. I look around and there's no one to talk to. Should there be? If I was the boss among a group of people, would they want to talk to me? Would I want to talk to them, during my down time? Would I want to talk to my wife? To a friend who works at another company?

Alternatively, I could just listen to music and chill by myself. What am I supposed to want to do?

I feel like there is yet another relationship to consider. That between company and customer. Maybe customers are who the boss is supposed to be seeking conversation with, during down time. Such an ongoing conversation can at least be another source of motivation for the boss to work.

The Challenge of Being an Edgelord

I was watching this YouTuber/Twitch broadcaster play World of Warcraft for the first time. The video was an hour long and she was doing the Exile's Reach content. She was erupting constantly about how she liked this and liked that.

I went to go look at some of her other content and she just looked like a variety streamer who liked everything she tried.

When you're not an edgelord, the sentence "I like X" is devalued. I think running around on the internet posting one comment after another about something you dislike is a waste of time and not really in line with modern etiquette, etiquette I happen to agree with. It will also get you banned or involved in online altercations.

But you have to harbor feelings of disapproval about some of what gets published by mass media. If you don't, the time will come with someone checks you for taste, and you will be revealed to have none.

If the ideal state of a person is that they like everything happening around them, why do we even have the phrase "I like"? The verb like is supposed to draw a circle around something and make that something special. If you hand out likes to everyone, you're no longer drawing a circle. You're not saying anything. You're saying very little.

I feel like streamers, every day, face the challenge of being an edgelord. You want to make it as a streamer, and you can reflexively just pick whatever is popular and embrace it in the name of income. I face a similar issue as a programmer. I no longer believe in trying to build sturdy apps with Ruby, but are any employers going to hire me now that I've adopted this position? I have comparatively little experience in other languages.

I think streamers are different from me in that their streams are not really good places for conversing. It's hard to hold a conversation during a stream. You're busy playing a game. And I think that's the way it should be. I don't like streamers who are purely Just Chatting streamers. I prefer that someone I watch be on a treadmill of some kind, one in the form of a video game. But how can I get to know a streamer, to determine whether they are interesting? If streamers are playing gatcha-games and posting crappy content to their YouTube channel, how can I sift through this noise and see their interesting positions on life's subject matters? I can't talk to them because they're busy in a stream. And I'm not interested in their discords.

As a programmer, I can expect my peers to converse with me to find that I have high aspirations, even if I am coerced into taking on work in a language I don't believe in. But streamers have no such opportunity. Not really.

I think that streamers occupy a space closer to the cutting edge than YouTube. Than CNN. It's too bad when streamers do not see themselves in the way that I see them.

When Is it OK to Use the Word “social”

I don't like the word "social". I think it reduces people to being cans of Coke. You shake the can when you want it to get ready to fizz, and then open it, and then you've accomplished socializing.

I think people are way more than carbonated beverages.

But I do use the word social when conversing, because I know practically everyone except me is on board with this word.

When I am writing about something sensitive, I do not use this word. This is kind of like how I decide when it is okay to use profanity. There are some topics that require the utmost rigor, and using profanity in such situations is inappropriate. Similarly, using the word "social" in sensitive situations is an abandonment of your topic altogether. When you're explaining something profound, and you simultaneously reduce people to carbonated beverages, you betray your listeners.

Binary Search

I am rewriting an old app I made where people can record measurements over time (days or weeks). One log has many measurements. The last time I did this, I used PostgreSQL, and I made a one-to-many relationship between the logs table and the measurements table. So there was a foreign key in the measurements table referencing the id column of the logs table.

The way the app worked, it pull 100% of the measurements for a log when presenting the log to the user on the Log "show page". I think this was a slow way to retrieve measurement data. Using an index to lookup individual, small, measurements seems very slow. Doing a scan of the measurements table instead of using the index also seemed slow.

Besides collecting the measurements, I asked the Postgres sort them by date. I needed (wanted) them to be in sorted order to render them in a visual graph.

This time around, I am still using PostgreSQL, but I am taking a no-SQL approach. I am storing all the measurements on the log in a JSONB column in the logs table.

To make this approach work, I have to keep the measurements sorted. There is probably a way to have Postgres sort by a field in the JSON but I don't want to bother with that, neither its programming support nor its computational cost. It just seems way simpler to maintain order among the measurements every time I write a log record to disk.

This means that when I add a measurement, I have to do a search to find the measurement's insertion point. Preferably a binary search.

I didn't have to do this when I was depending on SQL to do all the work for me. But aspiring for what I've stated is better performance and simpler data flow implied figuring this out for myself.

I wrote an implementation of all of this. I found bugs in my program. I initially tested the binary search and it looked good. But my graph was not rendering correctly at all. I investigated things on the front end and discovered that the measurements were not being added in sorted order. This was despite my early database unit tests that suggested that things were working. I invested things on the backend and found that I was miscalculating the insertion index. I investigated the insertion index calculation and found the bug. But how to fix it? This algorithm, which isn't really complicated in theory, was turning into a 4+ hour endeavour across two days, and it reminded me of how stupid I can be. I eventually, after some hacking and paperwork, found a simpler algorithm than the one I originally came up with, and a correct algorithm.

Shortly after the above, I had to implement binary search on the measurements array on the front end. Having the backend approach as relevant experience helped.

Timer Songs

I have a certain personality that can fixate on songs that sound like they're counting toward a climactic deadline.

Final Fantasy VII's (Nobou Uematsu's) Hurry! is a song that sounds like time is running out.

Robin Schulz's Same is a slower song that also sounds like time is running out. Or at least like time is of the essence.

Red Velvet's Happiness is a song that sounds like time is running out. You can hear this in between the chorus.

Blackpink's famous Pink Venom is an apocalyptic song. It sounds like time in the world has run out, and like the end of the world is taking place as the song moves along.

All of these songs are interesting to me.

Enter Log Levels, Mike

I'm having to figure out how to handle weird situations in my app.

I have a singleton app state holder that doesn't really get its state until DOMContentLoaded. It gets its state from inline Javascript that takes time to execute. I can't just expect it to have taken effect as soon as my code comes alive. The inline Javascript in question attaches some values to the global window object, and the app state holder gets it from there. But it has to wait for DOMContentLoaded to do this.

This leads to small problems because other UI components in the app will register as subscribers to the app state holder before DOMContentLoaded has fired. They will even try to request state information, not knowing whether they have beaten DOMContentLoaded or not.

Thus, despite not being ready, the app state holder may get a request for information. What is this situation? Should I:

  • Throw an exception? This isn't really that level of an emergency. It's not a logic error. So no.
  • Resort to showing an alert to the user? No. I should handle this. It's not a burden on the user experience.
  • Log something at error level? No. This isn't an error.
  • Log something at trace level? No. This is more interesting than trace level information.
  • Log something at debug level? I chose this. This meant adding log levels to my singleton logger.

This also implied setting the log level to something higher than debug, because I'm normally not interested in hearing about this information. I don't even show the log console normally. Remember I'm on an iPad, so I don't have access to the Chrome console. I've built my own logger that renders to an absolutely-positioned div at the bottom of my web page's viewport.

I've never really had such a need for log levels until now. In the past, I've normally considered throttling logging when I'm investigating a problem. But this is like a small, inconvenient situation that I just want to keep an eye on. I'm not sure what to do with it. I think there is probably an organized way to prevent my UI components from asking for stuff from the app state holder until the holder is ready (DOMContentLoaded has passed). But I don't know what that solution is.

So log levels provide a way for me to monitor the issue for now.

When the app state holder encounters a subscriber request too early, besides logging at the debug level, it either returns null (if a return value is expected) or it returns early if it's a void function. Any interested UI components are assured of hearing about app state updates via their subscription.

This use of an app state singleton, and accompanying subscriptions, is an easy, old-school, lighweight alternative to Redux, and all of the additional programming that comes with actions and reducers.

This woke me up to other areas of improvement in my coding quality of life. I had many places where I was calling logging.info when really I should have been calling logging.error. This makes it easy for me to do debugging with logging.info calls, because when I need to do a search for where I've littered my code with temporary logging for problem-solving, I can search for the string logging.info and not see all of the permanent logging statements that are really for special, error-level information. The list returned in my text search is way shorter, and contains only the info logging I'm trying to clean up.

Tuesday, May 28, 2024

Coding Lately

There was a time when I thought I didn’t want to let people down. I thought that coding as a hobby and means to get a job was a way to hold my friends on Twitch up.

I met a person on Twitch in March who I was in loose contact with and I didn’t want to let that person down. This pressure was something I felt in the middle of this month. But after going a week or so further, I changed my mind. I decided that the life I’d led in my 20s and 30s was enough to have shown this friend that I wasn’t a tool of a person. At that point, saying that I didn't want to let down my friends on Twitch wasn’t really valid anymore. I didn’t let my Twitch friends down. Why I work now is part of a different phase in my life. I don’t feel like making X dollars a month constitutes holding my friends up.

I had this recent weekend where I was watching a lot of dog and cat videos. I felt not well. When I finally started coding at the end of a day, I felt much better. Coding is what makes me happy.

Per unit time, there is a limited amount of things to do on YouTube, Discord, and Twitch. You can exhaust the content coming out of those machines in about 3 hours, and be starved for the next week. Coding is how I make my life interesting and how I provide conversation fodder.

I had this experience about a year and a half ago where I was working on this rather elite team. I was one of two coders on the team. But there were others attending the daily work meeting who were well-versed in a database system that the company used everywhere. One person in particular was a vice president at the company, which was a few hundred people large. He was both respected and feared, due in no small part to his combination of expertise and diligence.

One day he messaged me and we were talking about a programming req. I told him that I was watching music videos (which I was) and would resume working soon, to attend to the concern we were talking about. He didn't get mad at me. He didn't even balk.

This anecdote illustrates how I see programming. When you're a programmer, you are considered to be benevolent. You are considered to be so elite that (often) no one cares whether or not you wear a suit to work. No one cares if you take a break in the middle of the work day, beyond the lunch break. When the web servers are in panic mode at 11pm, you're expected to be working on them. But if the weather is fine, you can relax and work at your own pace.

At this point in my life, it's not obvious to me whether I will be able to continue my programming career. But I don't feel like I self-destructed. I don't really feel like moving into a different career is high on my list of priorities. Sometimes the world agrees with you, that you are doing good work. But this isn't guaranteed.

One can argue that I should be working so that I can secure financial stability for myself. But if the world got mad at me and no company wanted to hire me, at some point it's not my fault. I believe that I merit a nice paycheck, and that being able to afford my lunch should come easily to me. If the world disagrees, it isn't going to send a team of lawyers and other programmers to prove to me that I'm incompetent. I don't lie to myself about my programming past. I know when I've done good work and when I haven't. That no one sees me as a benevolent leader can be a peaceful disagreement between me and the world.

I program because I like it. Not because I want to be rich.

Sunday, May 19, 2024

The Substance of Friendship

I think there is a substance that needs to be built for people to enjoy talking to each other. C.S. Lewis use to say that friendship required a "matrix of friendship" and I feel like I'm starting to recognize what he was talking about.

In mid-April, I went to a meeting of software developers organized via meetup.com. When I left, I connected with all of the people who had attended via LinkedIn. A few weeks afterwards, I messaged all of the attendees from that day via LinkedIn. In general the attendees didn't want to talk to me. I don't blame them. I'm not sure that I had much to say to them.

In February, I joined a couple of programming Discords. One was dead and the other did not gain my interest even though some people were talking in it. I left those programming Discords.

Talking about tech in the name of friendship is kind of strange. IT is a job and its application is scattered across space via fiber optic cables. Why would we setup tech discussions when we already have to worry about that at our jobs? How is talking about tech an example of substance? Can't anyone just login to the Internet and Google whatever tech topic they are interested in, rather than depending on a coordinated meeting? For example, if I want to learn about Golang, I can just start programming in Golang and lookup things on the Internet as I encounter barriers. There is no need to wait for, and go to, a tech meetup and talk there with the attendees about whatever programming obstacles I am encountering while learning Golang.

I have one friend who I occasionally talk to about tech, but we used to work together. When we worked together, we got to know each other across some points of drama and others of technical challenge. That background has provided a substance of friendship.

I joined a KPop Discord and I am at least motivated to talk to the people there. I dislike IT people by default because in this world, intelligence is seen as a weapon instead of something that places you into a high rank in the formation that is a nation. This is a part of the reason I didn't stick around in the tech Discords I mentioned above. But KPop is still a rebellion in the west. It thus provides a substance for conversation. I've enjoyed some of the exchanges I've had in the KPop Discord.

I have no interest in Twitch channel Discords. I've been in one in the past and don't want to go back to that experience. A Twitch channel Discord, to me, does not provide a backing substance for conversation. If anything, it takes away from the backing substance by diluting the weight of your sentences. This is not to say that I don't find Twitch to be an environment for conversation. I do. But I do not see channel Discords as an extension of the substance I've built inside of Twitch chat. I've built substance using bit donations, and also from the fact that I've played video games to show my honor.

People who are gregariously friendly without first waiting on the substance of friendship to provide a grounds for conversation, are annoying. You won't recognize this if you're a dullard or lonely, but if you perceive life to be a contest of perseverance, then conversation without a backing substance of friendship is not interesting.

Tuesday, May 14, 2024

Where Honor Starts

I am told that waiting to die is a condition to be avoided. But I feel like I am waiting to die all the time. I feel this way even though I am applying myself to work tasks. I don't want to rot in a puddle of my own vomit but I still feel like I am waiting to die. I feel like I am among the most irrelevant people inhabiting this earth.

I sometimes feel like my career has had unfair bounds around it, and this feeling damages my motivation to keep working. I start to feel like one of the characters Ayn Rand favors in Atlas Shrugged. But, when I see that life is depressing, and that work is the only way I can make it not so, then I am able to get motivated to work again. Work is how I keep my life interesting.

Honor starts with the recognition that life is depressing.

When we (I) hear the word honor, I have a knee-jerk reaction which is to picture a Japanese samurai. Such was an honorable life, right? I don't think honor should be associated so firmly with such a stereotype, though. If you simply recognize that life is depressing and walk forward through it anyway, illuminating what's around you as you go, then you are as honorable as that samurai.

The Lord of the Rings franchise and the character of Gandalf was a reminder of this second type of peaceful honor. Gandalf used to say that Hobbits were a source of courage for him. At the end of the Hobbit, Thorin tells Bilbo to go "back to his books" and to plant his trees. Thorin sees in Bilbo plenty of honor.

Sunday, May 12, 2024

Ghost in the Shell

Today I watched small pieces of both Mission Impossible: Ghost Protocol, and Ghost in the Shell. I was not really repulsed by either one right away. MI I dropped after I started it from the beginning and watched the opening jail break scene. It felt very callous to me. I don't know why I had to watch three inmates beat up a guard, much less the ensuing chaos. But at least the middle of it was exciting.

Ghost in the Shell immediately brought back memories from my teenage years. I think what it made me feel back then was a sort of goal, an aspiration to be like the Major. She wakes up in a dark appartment in a futuristic world, and we conclude very early on that she has no friends outside of work, is financially stable, and does work that suits her. It so happens that she risks her life regularly, too.

I prefer the Ghost in the Shell plot because I too want to be able to say, whether I have friends or not, that I am living my life the way one is supposed to, by all other measurements. In MI, we never get much of a look into Ethan Hunt's personal life and the setting is not science fiction (which usually makes us feel more alone, in either the vastness of space or anonymization of technology). Ethan is just effective. In one of the other MI movies we see that he struggles to maintain a relationship with his girlfriend because he doesn't tell her about his life with IMF. But the mood of the film is decidedly more cheerful than that of Ghost in the Shell. Even though he and the Major have very similar job descriptions.

Ghost in the Shell communicates to me that friendship is optional. But the truth is indispensable. For the Major, the security of Japan is the highest calling. With some juggling, one can speculate that while not all of us work in the army, we are all still responsible for being just as courageous as the Major is, when it comes to being honest with our family, coworkers, and whatever friends we may have. When it comes to falling into formation and moving as a nation.

However, the gloominess of the Major's life is supposed to be temporary. No one actually wants to be risking so much on a regular basis, and no one actually wants to be without friends. Sure, we can say that Ghost in the Shell in an analogy for the storm or dark forrest that awaits us as we pass through adulthood. But we are meant to emerge from that once and for all.

I do not believe that we relieve the elderly of responsibility for protecting our nation just because the age of 65 sounds "about right." I think we do it because we make the educated assumption that the elderly have already taken a side in the war against ignorance and wrongdoing, and have already paid the price for whatever stand they took. And so extracting more performance out of them is deemed redundant and inappropriate.

So it's hard to me to feel like Ghost in the Shell still speaks to me.

Tuesday, May 7, 2024

What Is a Kind-Hearted Song?

A kind-hearted song is a song that an artist makes to offer comfort to those who are fighting some of life's losing battles.

Bangers are important because they promise us that the rebellion is coming. But they alone are not all that is terrific about music. Kind-hearted songs are at times even more important than bangers.

IU said that she made Love Poem expressly to be a comfort for those going through difficult times.

Other songs I'd say are kind hearted include My Immortal by Evanescence and Hallelujah by Jeff Buckley.

This topic came up for me because Lady Gaga's song Paparazzi came on, and I made the comment that it was probably her most kind-hearted song. I received an objection which is that the song's lyrics tell the tale of someone obsessed with someone else. I then recited a form of the above. I judge Paparazzi by its sound, not just its lyrics. It sounds like it is yearning for something that I can't put my finger on.

The following songs are not kind-hearted because they pick the low-hanging fruit that is a romantic breakup:

Adele's Hello. Adele's Someone Like You. James Blunt's Goodbye my Lover. Lewis Capaldi's Someone You Loved (and even Before You Go, for that matter).

Romance is 5% of life.

And to those who would say that My Immortal is about a breakup, my response is that I never saw it that way and that's not why I fell in love with the song. Whereas my appreciation of the blacklist above has a lot to do with the fact that they're centered on romance.

Wednesday, May 1, 2024

You Click One Corgi Butt Video

A couple days ago I was cruising around YouTube and I came across a video thumbnail that claimed to be about a Welsh Corgi twerking. The thumbnail showed a corgi from behind. I was curious so I clicked on the video. As promised, it was a video of a corgi appearing to twerk. It was shaking its booty in front of the camera. I tried to determine that the video was fake but it looked legitimate.

I went on with my life.

But in the past 48 hours, YouTube has recommended 3 corgi butt videos (or maybe two but one twice). YouTube decided that I'm really into corgi butts now.

:/

Tuesday, April 30, 2024

Prove or Disprove

There is a common phrase in discrete mathematics textbooks where they say "prove or disprove the following conjecture."

I think of this when I decide that I am going to work on an application. I don't know whether my ideas for apps are any good (so far, none of them have been good). But I can be motivated to work on them because I can have the following attitude: demonstrate that this app is useful, or not useful. This attitude goes a long way toward destroying nervousness about working on an app.

If you actually go through the trouble of coding up an app, you can then use it, and decide whether or not you like it. It's no longer just an idea in your head. It exists in tangible form. You can see it in Chrome. If you go that far, you cay say "at least I tried." You've discovered whether your judgement of what was useful was on point. You had no idea whether your app idea was any good. It's even a little sad because no one was going to try to test its usefulness except you. It was your idea.

So many business endeavours can be viewed this way: show that the business works, or does not work.

While this reasoning has its place in my journey through life, I do not consider it ideal. It is missing the element of curiosity. Sometimes we make apps because it is plain as day that they will be successful, if only someone makes them a reality. Here, the element of curiousity is present. We are curious to know whether it does or does not work. We are curious about how it will feel when the app takes our breath away. We want to taste the finish line, the success, of the app. Although it is a stretch to say so, I would claim that such curiosity stems from the same root motivation as leads to ambition. If you want to call the desire to make an obviously useful app real ambition, then my response is "you say tomato, I say tomahto".

There is a scene in My Neighbor Totoro where the Dad is seen working inside the house at a desk. He is writing things down on paper. His daughter is outside playing, or something. This scene has always made me jealous of the Dad. He looks peaceful, being at that house in the countryside, and yet doing paperwork. He doesn't look stressed.

To use the definition of curiosity that everyone agrees on, I would say that curiosity eliminates financial stress from product development. Steve Yegge used to say that working at Google was like being at grad school, and I think there was a lot of curiosity that motivated the employees there. Not financial need.

Working in the field of information technology, even without financial stress, is commonly filled with pain. They came up with the term "death march" many years ago because software projects felt doomed very frequently. That pain becomes a ward that discourages one from embracing the practice of writing code. It is too bad that this happens everywhere.

The pain of competing for one's lunch comes from the general problem of not knowing ourselves. To get to know yourself, you have to go on a journey of making friends, talking to them, and growing. You have to confront your fears by employing courage. If you don't do this, your won't be able to access pure curiosity whenever work calls, because your curiosity will have died. Life without light destroys what little, vulnerable machinery of curiosity we have in our hearts.

Do you believe me?

I've said this elsewhere, but when my store of courage is being used, that's when I know my curiosity is missing. Mattias Johansson used to conclude his programming YouTube videos by saying "stay curious". If only it were so easy. Curiosity is the best problem-solver. We call on courage when our curiosity is absent. And that's the hard way of doing work.

Monday, April 29, 2024

Conspiratorial Love

Conspiratorial love between a man and a woman is when the two people move in together and spend each evening exchanging all manner of ways they would make the world a better place if only they were made King (or Queen) of the universe.

Their ideals never leave the closed doors of their home. At work, they remain cowards, instead of taking a stand with their income and livelyhood on the line.

I first coined this term around late 2014. I don't want to get into the details here, but I concluded that men around me were using their romantic relationships as dumping grounds for all of their daytime grievances. I remember talking about this with one of my friends over email. I haven't shared the term with anyone else until now.

How does one know what human nature is without putting it to the test? Only after you've tested it can you walk around with the excuse that humanity is critically flawed, and that this fact is not your concern anymore. Humanity failed your test.

Or maybe it passed your test. What do I know?

Saturday, April 27, 2024

Am I Falling out of Love with Emacs?

Do I need emacs? Why did I like it so much? Isn't it usually simpler and more portable to just use the command line, instead of an emacs key binding?

Why do I need emacs to do indentation for me when I can use the tab key perfectly fine in Textastic.

Emacs is so complicated that you can't even use the tab key to indent your code. It won't let you. It'll autoformat code according to its internal rules for the current language. Formatting a .tsx file in emacs is impossible (granted, TSX is probably too complicated for us to be using in the first place).

I guess emacs is cool if you're sending lisp snippets into an interpreter. But I don't find that I miss it. It's easy to guess how I feel about tools like Resharper at this point.

Saturday, April 20, 2024

Introverted Nerds at Bars

I was watching this YouTube video once where it said that if you are an introverted nerd, you should not bother going out to a bar to try to find a romantic interest. That was deemed to be not the element of such a person.

I forced myself to go to bars and clubs for a period of time. I'd go and I'd try to talk to people, including pretty girls. I'd try to get the phone number of a girl if I thought she was pretty. This never really went anywhere and after about a year and a half I dropped the practice.

While I was doing it, it felt like a job to me. At the end of it, when I'd see a woman standing there, I couldn't come up with a sincere reason for why I was starting a conversation with her.

I remember one time, I started talking to this couple about Japanese history. I was reading about it, and thought I'd talk about what I was doing with my time. It was very strange. I felt like I was being a buzzkill given the environment.

I remember one time, at a strip club, I intentionally talked to one stripper about how I would buy Brita water filters and use that to obtain drinking water. She took up the conversation and replied with how she obtained drinking water via water bottles, and I felt immediately bad for having creating the topic.

I guess when I talk to people I feel obligated to be discussing a grand mission.

When I was finishing college, I did consulting for a psychology department. I was programming a small visual experiment for them. It leveraged OpenGL and just rendered a couple of rectangular slabs in different placements. I overheard the grad students talking about their professor. They said he would talk about psychology all the time. I thought that surely, a well-rounded man should know how to "cut loose" and just have fun when work is done for the week.

I don't really worry about whether I am a social person or not.

Wednesday, April 17, 2024

ChatGPT and Animals

I understand that we have a private sector free market, and that ChatGPT offers promises of heightened efficiency in such a competitive environment. But it distracts us from the fact that our careers are exercises in artistry and showmanship.

Most of us fear freezing to death on a rainy day, out in the cold, due to having no job and being homeless. But if our philosophy breaks, I don't think we really give a shit how we die.

This is what people overlook when they get excited about things like ChatGPT. We are not just here to make life as comfortable as possible as fast as possible. We are here to distinguish ourselves from the animals. And showmanship, showmanship of a person (not a computer) is how we do that.

The Waymo cars are way more interesting than ChatGPT because they take care of a mindless task that is driving. But software that automates business needs is not mindless. It is cool.

Monday, April 15, 2024

Mike’s Guide to Talking to People

First off, you should probably read some books, study assigned vocabulary, and write some essays. Oh what's that, you too went to school? Terrific. You're way ahead of me.

I hope you're making it count. Learning to communicate is an exercise in cultivating taste. Not all of the idioms in use are healthy to be using. Only by educating yourself and living life can you learn the types of language that are vulgar, and the types that are suitable for use with dear friends. If you just imitate whatever you see on television or whatever you hear from trendy TikTok videos, you're probably going to learn vulgar habits. So tread carefully.

The first thing I'll say, as a part of what I'm adding by writing this blog post, is that you are not supposed to tell other people when you are having a bad time. This is particularly true when you are talking to someone you do not know well. Not everyone is going through a rough patch, but when you are, you are only allowed to bring it up with someone if they have demonstrated an interest in your day-to-day well-being. If an acquaintance says to you that they hope you are doing well, that does not count as the type of interest that I'm saying is required. Someone has to have a track record in showing interest in your daily well-being for you to erupt with bitching and moaning in their presence.

Emergencies do not count as an exception to this rule. Even if you're bleeding to death, your bet is on 911, not on people who haven't shown they care about you.

The second rule I'm introducing is that you can only bring up a topic with someone if you know they are interested in it. If you're talking to someone who doesn't give a fuck about playing the guitar, you're not supposed to talk about your guitar lessons out of the blue with that person. If that person likes baseball and you watched a baseball game, then you may use that as topic fodder. You have to talk about things that other people are interested in. Otherwise you're being needy.

The third rule is that you are not supposed to talk too much. You're supposed to make a statement or two, and then wait for whoever you're talking to to respond to those statements. This rule becomes violatable if you have a very close friend and you're in the middle of heavy discussion with that person. But for relationships where the friendship is light or possibly not even established yet, you are supposed to not talk too much before giving the other person a chance to respond (or introduce subject matter of their own).

This third rule has a corollary, which is that you're not supposed to talk to someone day after day. It is extremely unlikely that you have interesting things to say every day. You're supposed to let life events occur and react to them by yourself. After you've done this for a week, you can cherry-pick whatever parts of your week you think might be of interest your friend, and then you can unload your news on them.

The way to violate the third rule is to play your friends off each other. If you've reached a lull in the ongoing dialogue with Alice, but then you hear something from Bob that reminds you of something Alice said, you can piggyback on your memory of Bob and reengage Alice, citing the event outside your dialogue with her. You don't even need to depend on friends for such types of memories. Acquaintances or even strangers can supply them. These "outside events" are what propell you beyond a lull in the conversation with your friend, so that you're not just comiserating with your friend. Your friend wants to hear that you're fighting to survive, not that you're hiding. Outside events are evidence of such.

The fourth rule is that you are supposed to respond to electronic, written communication immediately, unless you are preoccupied with work. By immediately, I mean within a day. This is difficult for certain entire categories of people. If you can't reply immediately to emails or texts, and you're the type of person who aspires toward self-improvement, then I'd recommend trying to figure out why electronic communication causes you anxiety, or why you are so ignorant of your own motivations that you need days to prepare a response to a friend's email.

An exception to this fourth rule is lengthy emails. I don't just mean when someone is abusing your time and rambling. I mean when you are engaged in a deep discussion over email with someone. You can take your time with those.

The fourth rule doesn't really apply to group chats.

The fifth rule is that you are not supposed to confront someone about their bad behavior unless you are unsure as to what class of person they are. I hate to break it to you but humans discard their equality as they age. They do stupid tragic shit that causes them to permanently lose their innocence. If you think someone is a first class person, you can gently ask them probing questions to see why they are behaving in a way that makes no sense. This is unnecessary when people telegraph their class to you by acting like douchebags. But when you're unsure, you can probe.

The sixth rule is that your day job does not count as conversation subject matter. Not even if someone works in the same line of work as you. If such a person wants to talk to you about your day at work, they can join your company and attend meetings with you. A career is sacred. But when we are off the clock, leave work at the office.

A straightforward exception to rule six is office drama. Bullshit is always interesting subject matter among friends.

The seventh rule is that you have to give your friends a relaxation period away from you after each time you tax their emotions. Sometimes we have difficult conversations with our friends. If you know you’ve just put a loved one through a difficult conversation, prohibit yourself from introducing further subject matter with them for a week. This will give them time to recover, and it’ll impress them.

I now introduce a guideline. It is not as strong as a rule. When building trust with someone over electronic, written communication, you want to try to be the last person to have spoken in an exchange. This way, it looks like you’re being ignored, and are thus the one who has to go do something new in order for the conversation to be picked up again. This action puts your friend or loved one on the “high ground” and thus in a position of smug comfort. When you do this, you’re ensuring that they do not feel ignored. Sometimes this is as simple as typing “okay”.

Go get ‘em.

Saturday, April 13, 2024

Work as Entertainment

I conjecture that entertainment is like a leak. If conventional sources of it become unattractive, then you will begin to find things that once were boring or scary, entertaining.

If you're smart, that includes software development. Which has a lot of pain points.

I say entertainment but it's really something else. It's the something that used to motivate me to build things with legos. It's a cross of ambition and curiosity. If you decide that you want to be a computer science person, it means you're (mostly likely) not going to be an authority on matters of physics, biology, history, or art.

You won't seek entertainment in the name of procrastination. You will be able to overcome procrastination in the name of ambition and curiosity. The pain of software development will become tolerable, even something you combat by introducing controls on complexity. The fear of math will fade.

There are some who can say that watching TV or reading fiction is an exercise of their mind. But this isn't what a computer scientist would say, in the course of their career. The act of construction is their act of the mind.

Entertainment is supposed to be healthy but I think I have allies would who argue that it's often garbage. It's fine to seek achievement in the workplace instead of low-brow entertainment. I know not everyone has the privilege of having an easy choice between those two alternatives. I hope those people find entertainment that speaks to them.

Thursday, April 11, 2024

Attached to Good Video Games

What is unfortunate about good video games (games that are honorable to play) is that you don't get paid to play them. You have to go work at your day job, and then make time for your video game. You (probably) don't get to spend time with loved ones in the video game. It's a tax on your time.

What do you have to show for it? You gain a type of street-credibility with others who play the game. The fandom of a game maintains a certain literacy with the game's rules and lore. You are not a "normie" when you converse with others who know these facets of the game. For over 99% of video game players, this is the only reward you can acquire by playing the game. Sure, many video games are entertaining or thought-provoking. But no one thinks a session of entertainment is something to brag about. Not in the way they think being courageous during gameplay is something to brag about.

That this is the only reward our society can provide is sad.

I disagree that people play videos games simply to have fun. I believe they play video games to earn the high regard of their peers. I think this honor is implicitly recognized by others who don't spend time playing video games. At least, it can be. I understand that there is a whole sector of society that still holds contempt for young adults who invest a lot of their time into a video game. But, among adults who pride themselves on intelligence, there is a recognition of the pride that video game players can build for themselves.

What I am saying also explains the drama that comes along with exercising your choice of which game to play. Some games are held in higher regard than others. All games are supposed to provide an opportunity for a player to show that they are honorable, but not all games provide this opportunity to equal extent.

The three video games I logged the most hours in were Unreal Tournament, Starcraft I & II, and World of Warcraft.

Tuesday, April 9, 2024

A Lower Bound on Friendship

Friends meet with you in isolation. When I say isolation, I mean that you and the other person meet without anyone else around listening in on the conversation. Going to a restaurant and being waited on counts as such a meeting. Going out with a 3rd person violates the rule I'm stating, and it does not count as a telltale sign of friendship.

Communicating over the Internet or text via DM counts as meeting with someone in isolation. But, not all people who talk to you over DM are your friends. At the same time, any person who wants to be called your friend should, at a minimum, be willing to converse with you in isolation. If they will not do this, they are not your friend.

Reading nonfiction counts as socializing. When you read nonfiction, you are opening yourself up to disquieting knowledge. You are making yourself vulnerable to anxiety that may result from what you've read. If partying at the club counts as socializing, reading nonfiction better also count as the same. If going hiking with a group counts as socializing, reading nonfiction better also count as the same.

Listening to music does not count as socializing.

Watching the Discovery channel technically counts as socializing but it’s very lazy of you.

I don’t have any friends but I socialize all the time.

Sunday, April 7, 2024

One’s Worldview

I used to get into positions where I would disagree with some popular decription of reality, and I'd make my own alternative. We all do, I suppose.

When I was attending my Catholic high school, we took a world religions class. In it, they said that a religion was an ultimate description of reality. There are lots of descriptions of reality that are pragmatic, and that need not be so grand. They are still the building blocks of language that we use to tell others what we are doing with our lives. We use such language to tell others about dramatic events that overtake us. Sometimes we may just state a platitude, such as "every day above ground is a good day." Other times we may describe a conflict: "my boss shows up at work and tries to make everyone else as miserable as he is." So there, we used the word "miserable". We are taking it for granted that some people go through life in a state of misery. This assumption is tacit in our description of our boss.

Years ago when I was reading content in the manosphere, I came across what was known there as "your frame." A major component (if not the chief component) of the manosphere's message was simply an articulation of the technique used to attract a woman (or even women). It was thought over there that you had to bring a woman into your frame. Your frame was your way of describing reality. It was your way of stating the rules of reality. Your way of describing recurring phenomena in one's life. If you could make a woman adopt your frame, it was predicted that you had made significant progress in your effort to attract her.

I never use the term "frame" when I am describing my experiences to myself. This post is not about how to attract a woman. It is, in part, a survey of where I have seen others talk about life's recurring events.

During the French Revolution and Robespierre's reign, there was a woman named Catherine Théot who claimed to be Robespierre's mother (and also the mother of God). She was a medium who was making prophesies concerning the future of France, but apart from some followers, she was widely thought to be insane. I bring her up because she claimed to be on Robespierre's side. Her lack of credibility hurt Robespierre's reputation. The Committee of Public Safety decided to arrested her, and soon after, Robespierre was overthrown. Was Robespierre's political language strong enough to protect himself against her problematic position? Could the populace and Convention attendees hold his language as distinct and above her apparent insanity?

I am a strong believer in the idea that life needs to be explained. I've struggled to explain it to myself throughout my years. Sometimes I have adopted the language I've encountered while reading books. Sometimes I've adopted the language I've encountered while watching interviews on late night TV shows. There are inescapable consequences that follow from how you cast your life's events into the stone of verbalized memory. I can name two scary propositions of this difficult-to-avoid action.

The first is that you will be aging, and young or impressionable people will decide that they look up to you. They will imitate you and your language as they hear you using it. Suddenly you will be leading a small group of people down whatever road you were (at one time) going down alone. You will then be responsible for how sturdy your ship on life's waters is. Is your language really going to protect those who are emulating you? Is your language strict and strong enough to prevent others from twisting your words into the territory of wild inaccuracy? Will your followers, if unhappy, have you to blaim for supplying them with inadequate terminology and faulty definitions?

The second is that there will be people who disagree with you explicitly, and they will inform you of this. You are then left in isolation. Are you still comfortable in this isolation? Do you still feel happy and content without that person's closer friendship?

You build a world. When you look around, are you happy with the world you've built?

This is arguably a special case of the saying "you made your bed, now lie in it." But I'm not talking about endeavours you undertook to gain certain acquaintances, professional titles, or material belongings. I'm only talking about the way you chose to articulate how life made you feel. I'm talking about the language you used to explain life to yourself, to explain your behavior to your friends. I'm just talking about the narrative you hold by your side day-in and day-out, the narrative of what you see yourself and others doing on this earth.

Do you like this home you've built? Is your language trustworthy? This is an honesty check. It covers your influence on others, but also whether you are content in the world you live in regardless of how your friends and family feel about your language.

I have been forced to consider the reliability of my version of the truth of things.

Friday, April 5, 2024

And American Dad Takes the Lead

As usual, I will be extrapolating points after having watched a handful of YouTube clips (on account of being way too cheap to purchase full episodes of TV shows).

Today I ask the question: how did American Dad grow to surpass South Park and Family Guy as my favorite animated comedy? I should be more specific. I really like the character Roger. Family Guy fell to pieces over time. It became this show where all of the characters find slick ways to dump hate of society into the show's scenes. And that's about where it became too mean for me. But Roger is really interested in creating personas and just acting for acting's sake. He finds his calling in make-believe and the Smiths get into tug-of-wars with him while he does this. It's nice to see someone who is trying to be happy.

South Park hasn't really been the same since around season 14. Once in awhile it'll put out a good episode or two but I haven't seen it reach its old peaks since around that season. There was a somewhat recent episode where Butters and Eric were working at an ice cream shop. It seemed extremely cliché. We've seen Eric torture Butters a thousands times at this point. But that's what Matt and Trey were putting out.

There was a time in my life when I thought Family Guy was awesome. As I got older, the show either became really mean or I started to perceive it as such. That's a whole genre of comedy for some people: being mean. I don't bother with clips of it on YouTube anymore.

Stewie and Roger are related characters. Stewie is a half-closeted gay person and Roger's sexual orientation is kind of irrelevant since he is an alien, but he sure has a playful way of talking. But where Stewie's humor comes from feeling superior to others and even getting angry with others, Roger just cares about building his characters and his make-believe world. He's happy and Stewie is persistently, grossly unhappy.

I don't want to watch Family Guy throw temper tantrums anymore than I want to watch South Park just be gross. American Dad chooses to be playful. So I prefer it to the other two shows now.

Monday, April 1, 2024

One-Man YouTube Shows

I remember this scene in the movie Waiting for Guffman, at the end, where Parker Posey is in NYC either teaching a class or doing her own one-woman-show. We're supposed to feel (as with many scenes by this creative team) superior to her, or at least feel sorry for her.

Or, you can take this scene a test to the viewer, to see if the viewer will acknowledge that low-budget entertainment is still legimate entertainment.

But doing a show by yourself is quite difficult. When I think of the type of content on YouTube that I find myself gravitating toward, it's from big budget entertainment companies at least 75% of the time, if not more. If we take ProZD as a counterexample to this, he is still a rigorously tested actor. We're lucky that he takes the time to post content on YouTube. He's so exceptional.

Emma Chamberlain is another freak of nature who has managed to create content that others want to see, all by herself. She was just editing videos by herself for a long time before she got picked up by other mass media entities.

I don't watch either of these creators that often (due in part because at least ProZD rarely releases content). I feel like one-man shows on YouTube, or even one-man nonfiction channels, are really low in their ambition and class. The nonfiction channels, to me, rise no higher than content intended for high schoolers. I don't feel like I'm being informed of anything when I watch them. At least that's the way it was. I've stopped watching nonfiction YouTubers for the most part.

I mostly watch clips from The Office or Parks and Recreation. And I listen to KPop or watch KPop music videos. So YouTube is like just another mass media company for me, like NBC or CBS. The possibility of encountering a rebel on the platform who speaks to me in defiance of mass media norms is gone, because I'm not tuning in to YouTubers anymore.

This post is me realizing that this is a predictable outcome. Making essays by yourself is hard.

Friday, March 29, 2024

Squaresoft Died with Final Fantasy X

This post contains John Wick and Star Wars spoilers.

The Playstation 2 marked the end of Squaresoft's reign of glory. This is because they made the decision to feature voice acting in Final Fantasy X, while not supporting the PC platform. They stayed confined to a console box.

If you look at The Longest Journey, an RPG with voice acting, it was on the PC. I've never played this game (for a meaningful amount of time) but it did catch my interest as an onlooker. The game features voice acting and it's a PC game. It is, to me, of the same era as Final Fantasy X. And it feels remarkably different than Final Fantasy X does. Final Fantasy X feels like it's in a cage compared to The Longest Journey.

Final Fantasy X as an RPG hits the notes it's supposed to hit, judging by the number of people I've encountered who say it's a good game. Its battle system is fine. Its story is fine. Its music is fine. But it's in a cage on the PS2. I'm aware that it has more recently been ported to the PC. That's way too little too late to save the Squaresoft brand. AFAIK they went entirely through FF XIII without porting FFX to the PC.

This brings me to Final Fantasy XIV. It is just a generic MMO. It is the best chance that Square Enix has ever had at recapturing my respect, and it fails. It has nothing innovative to offer to compensate for the damage Final Fantasy X did. It is the best product that Square Enix has had since those old days, and it fails. I can't even try to see whether New World outranks it because they're both lame and generic. They feel like they're just checking off boxes, whereas World of Warcraft still sits on firm footing.

John Wick 3 killed its franchise. The plot twist of John having to go after Winston is critically in aristic error. I never purchased John Wick 4 after that.

The Force Awakens was picking up a story that was of the highest order. Its storytelling was way beyond what World of Warcraft tries to do. WoW's story is like a soap opera and it is up front with you about that. The gameplay is left to make up for this (and it does). And the story is kept fun.

Episodes 1-6 of Star Wars define a single saga, culminating in Luke Skywalker's ascension over his insecurities and enemy in the form of Darth Vader. It is inappropriate for him to be an overthrown recluse in The Force Awakens. It is inappropraite for Han Solo to be rewarded for his adventure with Luke by being murdered in The Force Awakens. I never bothered with episodes 8 and 9.

Tuesday, March 26, 2024

Programming on an iPad

I am launching a Java web app. It is 14k lines large. 45% of that I wrote using a 2024 12-inch iPad Pro.

You can't compile Java code on an iPad. You don't even have direct access to a hard drive. One of the first realizations I had when I decided to go down this road was that I would have to rent a server in the cloud just to do development on it. I could install openjdk on it and compile my source code there.

The next big decision you have to make is how to inform your remote cloud machine of the latest keystrokes you've typed to move around characters in a source code file. I read a guide that said that typing in things using an iOS text editor was fundementally too frustrating, and that one should use a web-based text editor that sits in front of your cloud machine. I did not reach this conclusion in my research and approach.

What I did was go ahead and choose Textastic as my text editor. As its accomplice, I chose ShellFish. What ShellFish does is allow you to enter SSH information into it, and it'll sync files via SFTP from your remote cloud filesystem into the Files iPad OS app. Textastic integrates with ShellFish, so you can open files that ShellFish knows about with the Textastic open file dialog. ShellFish was like $30 for a lifetime license. With it and Textastic, you can edit files on your remote cloud machine. Every time you save, your changes get pushed into your cloud machine.

ShellFish also provides support for moving files you download in Chrome directly into your cloud machine. It does this through the "Share" generic function that shows up when you're looking at different things on iOS. This was very handy when it came time to download my SSL certificate and key.

I think Textastic was $10 for a lifetime license.

There is a Git file manager called Working Copy. It's a feature-rich app but I haven't found any reason to use it. ShellFish and Textastic combine to give me all the Git happiness I need (Git is of course installed on my cloud dev machine). But of course to use Git and do a host of other things, you need real ssh access to your cloud machine. This brings us to terminal apps.

Textastic has terminal support but it's not very good. Fortunately there is another (free!) app called Termius. I say free - you can pay a monthly fee for additional features like agent forwarding but I've been living at the free level. Termius is really good. One thing it has to do is use the Location services on iOS to do its work when it's not in the foreground. Which I find fine.

Termius provides an additional need which is port forwarding. When I run my app in the cloud, I need to be able to tunnel in to see it from my iPad. Termius supports such tunneling. So you can open the Chrome browser on your iPad and point it to http://localhost:3000 and as long as you've configured and turned on a Termius mapping from port 3000 on your local machine (127.0.0.1) to whatever port you want to connect to on your cloud machine, you're off to the races. As an aside, I had to use iptables to block public access to the port I listened to on the server. This way no one can see my dev server even though it's on a publicly reachable cloud server.

So with ShellFish, Textastic, and Termius I am up and running. My cloud dev machine I rented from Linode. I use a 4GB dedicated machine. It costs $36/month.

One thing I am pleased to discover that I don't miss is Emacs. People who know me might be surprised that I can do without Emacs. Textastic has a find feature, but it does not have a find-and-replace feature. To alleviate this, I found myself learning to use GNU Sed. You can do a lot with sed at the command line. I had to rename a package name on my app and sed, xargs, and find were able to make that not-so-difficult for me. I had to rename a model and sed came in handy there, too. Just be careful. Sed is powerful and I had to spend 20-30 minutes debugging a problem I introduced with it on one of my renames.

There are problems.

  1. Textastic and ShellFish don't work sometimes. Sometimes when opening and editing a file, especially one very recently generated outside of Textastic, one of these two apps starts creating collision-avoidance files. For a file like MyApp.java, the files I'm referring to get names like MyApp-2024-03-26.java, MyApp-2024-03-26-2.java, etc. I wrote a Ruby script that scans my source files and deletes files that look like this. I have to use it about once every 5 hours.
  2. Textastic and ShellFish sometimes take a moment to upload a file. This can be really confusing, because you'll see an error that you think you've already fixed. You trust the compiler and feel stupid, when really the problem is that the compiler just has out-of-date source code and your changes haven't propagated up to the cloud yet.
  3. The Chrome dev tools are not available on iOS. Neither are the Firefox ones. Goodbye JavaScript console. Goodbye hot-editing of CSS. Goodbye view source (yes, really). I had to write a custom logging feature to give me some feedback on JavaScript print statements I would add to my code. This was somewhat helpful but nowhere near what I would call a solution. Who knows when we'll get the dev tools on iOS.
  4. A 4GB RAM $32/month dev machine is not nearly as powerful as a recent MacBook Pro. I feel the pain on every compile and test suite run. Of all of the problems I've mentioned so far, this one is the most onerous. I tested an 8GB Linode, and it went faster, but it didn't feel worth the money to me. The 4GB dedicated CPU machine was an upgrade from where I started - a 2GB shared CPU machine.
  5. Sometimes Textastic is so lost that I have to reboot my iPad. I've even had to hard-reboot it once. This hasn't happened to me for about 2 weeks so maybe patches have helped?

I use a fullsize bluetooth keyboard.

The last thing I'll mention is that I am using an iPad with cellular service. I pay for a plan with Verizon. They say they throttle me down after 30GB of network transfer. I regularly exceed that monthly allowance within a week, but the throttled speed is still plenty fast. I've noticed no hardship from throttling.

I love programming on an iPad very much. One of the other things I've been using my iPad for is studying, using Kindle. I like that the act of doing tech stuff has been rendered relatively simple. Do we really need powerful PCs? If and when I work at a normal job, I would be pleased to use a "real" computer on-site. But if I'm doing stuff from a satellite location like my home, I like where development on an iPad is at.

From Ruby on Rails to Relatively Plain Java

The problem with the Ruby on Rails library, compared to other libraries like PostgreSQL, is that Rails is mostly trying to apply the DRY principle across multiple web server projects, whereas the PostgreSQL library is making difficult algorithmic design decisions. That PostgreSQL actually listens to a TCP socket while Rails establishes a shared runtime with your project is incidental to the argument I am making in this blog post. Libraries that are predominantly concerned with DRYing code disenfranchise the developers who make use of them. They add a layer of hardship because you typically don't have easy access to their source code if and when the shit hits the fan somewhere from within their complexity. Beyond the distanced access to the code, they add a challenge because their complexity is daunting even when your app is still relatively simple in scope (again, when problems emerge from within them).

To join my side on this, you have to be able to hold a B-Tree index implementation as distinct from a piece of ORM code that merely generates an SQL Insert statement, based on a struct instance and table schema it found somewhere. Otherwises you're just going to counter that nobody wants to write B-Tree indexing 10 times in their life when they can just count on PostgreSQL to do it one time for them (and everyone else).

If you wrote B-Tree indexing on two projects, and decided to pull that logic out into a library that the two could share, you would not call that "refactoring". "Encapsulation" would be a better term.

I decided about a year ago that I wanted to write a web app using Java. It would be my first time seriously using Java to perform a task. I was coming from a 10+ year background in Ruby on Rails. What were my goals?

I wanted my app to be simple. I started off by investigating Spring, both the framework and the Spring Boot wrapper. I investigated the ORM facilities in it and Hibernate. I decided that I wanted my app to be simpler than a spring project. I didn't even want to use dependency injection. I started out with Spring Initializr and spring-boot-starter-web. Slowly, I pulled out the Spring Boot wrapper, and eventually even spring-beans. I pulled out the spring-webmvc support. I pulled out Hibernate. "Simple" for me meant that I wanted to spend a lot less time reading documentation and more time writing code.

Without Spring, I needed to do some work to get to what I thought was minimal infrastructure on which I could start addressing project-specific requirements. I determined that I wanted infrastructure for at least these features:

  1. The concept of a MVC Controller
  2. The ability to test a controller action, e.g. a GET request from start to response body.
  3. Asset fingerprinting
  4. Database migration support
  5. Basic SQL statement support
  6. SQL transaction support
  7. Simple app configuration
  8. The ability to launch the app as an executable from the command line
  9. Related to 8, a systemd service unit for the app
  10. A way to store user sessions within a signed browser cookie

I also made use of some libraries to provide me with some features. These included:

  1. Embedded Tomcat and the Jakarta API for the bottommost webserver layer, and basic Request/Response encapsulation, respectively.
  2. Hikari for a database connection pool
  3. log4j2 for logging to STDOUT with log levels
  4. Thymeleaf for templating
  5. The Typescript, esbuild, and scss npm projects for building frontend CSS and Javascript
  6. JUnit for unit testing, and Mockito for mocking support. I built my own factories.
  7. Jackson for JSON help

None of the things on these two lists really had any instrinsic relation to my application's requirements. They were very generic needs. But, I couldn't start to work on my application until these pieces were in place.

I spent what felt like a month migrating from a Spring boot "hello world" project to a place where all of the above was taken care of, without the use of Hibernate, spring-beans, spring-webmvc, or spring-context.

The most obvious consequence of my approach was that writing features took longer. There was one task that I estimated writing in Rails would have taken 10 minutes, but which I spent 3 hours on. It was very easy for me to forecast 5 hours for a feature that I thought was kind of small, but here I was. I didn't have the powerful ORM features at my disposal. I had to write SQL for any database need I had. I had to write unit tests, both at the model level and controller level, for every feature. And of course I had to strongly type my app.

Another concern I have about Rails is that it is dynamically typed. This means that there is no compiler to help you find type errors at a compile phase, whereas with Java and Typescript, you do get support with that. Yes, it takes a little longer to write your code but at least you don't feel hopeless when it comes time to refactor a big chunk of your project. Refactoring in Rails is a nightmare and your unit tests become extremely important in that context. You breathe far easier when you know the Java compiler is going to see what wires you did not reattach correctly.

I do not feel like I escaped writing unit tests. There is the argument that if you're just going to write unit tests anyway, then what is the point of typing? Is it not redunant with the unit testing? My response to this is that as a developer, you want to know in the fastest amount of time that you've made a mistake, and unit tests are not the fastest way to know that. The compiler is faster.

Even though the there was a greater expense of time on this project, the result that I arrived at was more sturdy. If you were developing a video game, wouldn't you want it to never crash? If so, why would you not embrace static typing? Video games are silly wastes of time, as everyone knows. But we still want them to work. Where pride is concerned, I think you want your video game to work just as much as you want code in the NASA Space Shuttle to work. Aren't you willing to wait a longer priod of time for your code to be done, then? This way your app is sturdy. When I say sturdy, I particularly am referring to when refactoring time comes. You can make adjustments and not feel so terrified that you're going to break what was working yesterday.

I wrote above that libraries like Rails disenfranchise the developers who work with them. On this project of mine, I went to use the Devise gem on a toy Rails project while building a tour of some Ruby code. There is a step in the Devise setup where you invoke a Rails generator. All the crypticness of Rails came back to me when I invoked that. I had no idea what it was doing. Why are there ~50 files in a Rails project when I haven't even done anything yet? The Rails library is supposed to support the thousands of Rails projects out there. When you use it, all of the if-statements that have gone into supporting 9,999 other projects besides yours suddenly become your responsibility. It doesn't seem that way, but that's the reality, isn't it? You're responsible for what your app does even if you choose to use Rails. But do you really feel responsible for all of the code inside of Active Record? You're responsible to your customers regardless of what library philosophy you choose. If you choose Rails, you're inheriting responsibility for thousands of lines of code that you know very little about. That places you in an unfair position of powerlessness. And as I mentioned, when it's time to debug that code, it's not in the Zeitwerk watch list, so you have to restart your app every time you edit the outside source. That's after you've navigated outside of your project folder and into the gem sources to find it.

You could wonder how I feel about Sinatra. That's simple, right?

If I were to pursue the above philosophy with Rails, I would write a Rack app without Sinatra. Rack would be where I draw the line. I'd use rspec, still. I'd get controller infrastructure going on my own. I'd use haml or erb for my views. But I wouldn't use Rails, Sinatra, or Active Record.

There is an enormous movement called convention over configuration. I think it would be redundant for me to evaluate it here, given what I've already written. I am much less of a fan of that movement as of today.

Saturday, March 9, 2024

Coming to Terms with the Work in Front of Me

On approximately March 3rd, I made a good-size donation of money to a streamer on twitch.tv. Twitch, over at www.twitch.tv, is a place where streamers can play videos games with a web cam focused on themselves, and audience members (like me) can watch them react to the video game they're playing. There is a chatroom where the streamer can read messages that I type. Others in the chat also type in messages. So there is communication going back and forth.

Over the years, I have donated a lot of money to streamers on twitch. I've made a couple sizable donations to male streamers, but most of my donations have gone toward female streamers.

Sometimes the reason I donate is because the streamer provides an environment wherein I can find attention. I mostly do not care that much about what other chatters are saying. Mostly, I care about what the streamer has to say to me. That's been true for awhile.

When I donated to the streamer on March 3rd, she got happy. She is young and friendly and she thanked me. She also asked me how I was doing.

There is a specific situation that arose leading up to that day, which is that I finally was able to overcome much of my fear of studying. So, there was something I wanted to celebrate.

Many, many times I have donated to a young female streamer on twitch because I feel like having someone to celebrate a good thing in my life. The attention that I get gives me a high. Years ago, I used to frequent strip clubs and when I would buy a VIP dance from a stripper, I would get a high. I felt at those times like I was in a symbiotic relationship with the stripper: I was paying her to entertain me and excite me. Afterwards, the stripper almost always said thank you. Sometimes I got a kiss on the cheek.

I stopped attending strip clubs in 2017, but at the same time I took up donating to women on twitch. Again, I felt like I was in a symbiotic relationship with the women there. I would support their streaming in exchange for their moral support of my life.

Today, I got up and did a couple hours of studying. Last night I did five hours of programming and two hours of studying. I am putting all of this effort into my skillset as a programmer because I want to be independent again some day. I want to show that I can support myself. I want to thrive as a programmer. I don't want to live paycheck to paycheck. I want to have a savings account.

Mentally, I've reached a point where I am really losing my desire to seek the company of streamers on twitch. I've worked about 30 hours during the past 7 days. I haven't earned any money for that effort. Yet, I know it is what I want to do. How is it that I am able to do this?

To cut closer to the chase, do I want to continue to celebrate my motivation to work with streamers on twitch? What for? I could, if I wanted, uncork some more money and donate again to someone in the near future. I could share the positive news with them that I am working diligently, and that this is something that I am proud of. But what for? They can respond "Hey that's great Mike!" but how would that make my life any better? How would they be informing me of anything I don't already know?

Forget about work for a second. Today I had tacos from Chipotle. Do I want to share this fact with a streamer on twitch? What for? What do I care whether they share or do not share my appreciation for chicken tacos. When I take a bite of a taco at Chipotle, and I chew on it, I can taste the chicken in my mouth, and I feel happy. How is someone else's opinion of tacos going to make me any happier?

These arguments I'm making didn't used to be effective. But tonight I feel exhausted of something. I just don't see the point in seeking praise from other people about what I am doing in my life anymore. I am incredibly confident that I am doing everything in my power to take care of myself. I wasn't working 30 hours a week two months ago. But I am now. I'm doing it for no pay. And a sizable portion of that work is just me studying my computer textbooks. This is a lot of stress for me to be taking on but I'm doing it.

The fact that I'm doing as well as I am - motivation-wise - has made me question my old longings for companionship or support. I am mostly thinking of the support of young, pretty women when I say this, but it goes just as much for men too. I don't feel like my life will be better if I find out a male peer or female peer endorses Chipotle tacos.

I had a special experience a few months ago when my sister offered her perspective to me during a stressful situation, and that experience really made me see how friendship could be a boon in my life. But there is distance between that, and the moral support that I've been describing above. I feel like I am mostly feeling a sense of loss when it comes to having moral support. I feel apathetic about it, as you can see from what I've written.

There is a group of software developers that hold meetings coordinated through meetup.com. I plan to attend those meetings, in the hopes of making friends. I tried to attend one a couple weeks ago but there was some miscommunication about our virtual meeting room. The group is all local people. So this could lead to something for me.

I don't know what I'm going to have to say to the people at these meetings. I guess conversation is easy enough to make, but are they going to help me with my work? No. Work is what I have to perform. Work is how I can gain money and support myself. Friends can help you move from one place of living to another, but so can movers if you pay them.

I really like how entertaining a young, pretty woman can be. This is a big reason I like K-Pop as much as I do. I go on YouTube and watch K-Pop music videos a lot. It's very easy. It's conversationless, too.

I don't know what I have to say to an attractive woman anymore. Now in particular, since I seem to have come to terms with the need to perform in my career. It's very obvious to me, the path forward to gain employment again. I think it's obvious to most people, but so many of us want to party in the name of comfort to relieve ourselves from stress. I am regaining a certain arrogance that I used to have when I was younger. The pressure of life is me. It's not some employer. It's not the threat of financial difficulty. It's me. I'm the one who makes me work. Not need. Not fear. Fear is what I proactively overcome, now.

And so this is where I find myself.

Wednesday, March 6, 2024

Famous

If I were a cool guy, how would my life be different during downtime?

Right now, I am in the habit of either studying one of my two computer textbooks, or writing code for one of my apps. So I'm doing work.

I get tired of doing those things. It feels like general fatigue. It's as if I want to take a break from concentrating.

At the end of my day, it is common for me to conclude that I am relatively exhausted. When this happens, I go and lay in bed. I bring my iPad with me and I open the YouTube app, and I watch Arrested Development clips. I do this even when it's not bed time and I just want to do something other than work.

Arrested Development is off the air. No new episodes are coming out. I don't pay for episodes - I only want to watch the free clips that I can get on YouTube (although I do pay for YouTube Premium). Both of these facts mean I'm constantly rewatching the same favorite clips from the small pool that I have available to me.

I face a similar situation if I want to watch The Office clips.

Watching full episodes of either of these shows is off the table. I don't want to pay money to watch a full episode. The actual shows at hand are not fun to watch, in my opinion. They hit gold once in awhile and that's what makes the content on YouTube very enjoyable. At least, up to a point.

I tire of my YouTube recommended feed. The grassroots content of YouTubers isn't really interesting to me. Video essays have a low ceiling on them for some reason. I feel that all the content creators are only producing content with a voice suitable for addressing people no more mature than what we'd find in a high school classroom.

I like working lately. I feel like I'm doing a good job and not running from challenges. If I become a cool guy by keeping this up, how will my life be different? Will I still feel bored during my downtime?

What if I were the president of the United States? Let's say it's 10pm, and my responsibilities are taken care of. It's my downtime. What do I do?

What if I were a rock star? It's 10pm. It's my downtime. What do I do?

I don't know the answer to this question.

Monday, February 19, 2024

The Chase of Happiness

Somewhere, we pick up the notion that happiness is attainable and where we want to go. I think there are many people who say that you're probably not going to be happy all the time, but they would encourage a child to try to chase it anyway.

I feel that happiness is less important to me as I get older. I don't think that this makes me a cynical person. I've found that having peace, and also pride, make me feel like I've chased the correct goals in my life.

I feel dread and pain sometimes when I go about my programming and studying tasks. I don't feel like what I would name happy. I don't think it matters to me anymore. I have a salve for just this occasion, and it is the two things I mentioned in the previous paragraph.

Saturday, February 17, 2024

We Need to Talk about Red Velvet

Red Velvet's music makes me feel like they are in touch with my dreams and subconcious. It is similar to the feeling I used to get when watching South Park.

South Park, particularly in its glory days, used to feature dialogue that sounded perfectly stereotypical of one fool or another. I would watch the show and feel like Matt and Trey were cheating by examining my dreams and pulling their script from my dream world. When a character on the show had a critical fault, it felt new to hear him or her speak and yet it felt perfect because it made me feel like I was dreaming while awake. I refer to my dreams here as though they inform my predictions of how people really are.

When I hear Red Velvet, I don't feel like they're just recycling the same two themes that circulate most kpop songs (have confidence and get a boyfriend). Rather, I feel like they're stretching their necks into the cosmos, finding whispers of calm, serious, rigid fearlessness, and handing this loot over to me in the form of their songs.

Here are some Twice songs off the top of my head:

  1. I Got You
  2. Chillax
  3. Go Hard
  4. Dance the Night Away
  5. Knock Knock

These songs fit the expected mold of kpop. They are about being nice, having confidence, even being a little cocky. Here are some Red Velvet songs:

  1. Umpah Umpah
  2. Parade
  3. Psycho
  4. Nightmare
  5. Will I Ever See You Again

There is no comparison. Red Velvet is interested in the other-worldly, the edges of what we know. They don't just recycle the cliche themes.

Much of the allure of Red Velvet lies in the simple catchiness of their music. I used to like EDM music and sure, Red Velvet scores points with me just because their sound is euphoric. But when they're excited about fare that would seem mundane to someone who didn't know they were making music with it, it elevates them to the highest level of entertainment.

By my judgment, Red Velvet is 10x as good as Taylor Swift. 3x better than Lady Gaga. 2x better than Twice. And I say that as someone who eagerly clicked the Twice I Got You making-of video as soon as it came out.

Thursday, February 15, 2024

Termius Port Forwarding Gotcha

When you setup a tunnel on your iPad Pro to forward port 8080 on a remote host to 3000 on your local host, make sure you give the IP address 127.0.0.1 and not the "localhost" hostname. Or you're gonna have a bad time.

Friday, February 2, 2024

Would I Earn Money Playing World of Warcraft (If I Could)?

No. It would feel weird. It would feel like a waste of my mind, for one thing, but for another, I don't want to play video games. I don't want to practice. I have a full life. There is practically unlimited challenge before me, as a programmer in this world.

I don't want to learn the Mythic mechanics of fighting Devos in the Spires of Ascention Shadowlands dungeon, when I can be learning how the Internet Protocol works instead. One of these enables me to assist a business in this world (which may happen to be a video game company), and one of these only allows me to provide assistance to four other people in a make-believe fiction universe. Courage informs both of these endeavours, but the Warcraft one is unnecessarily fabricated. People pay money to a video game company, to Blizzard, to have a good time in one of these make-believe worlds. I would rather work at Blizzard than get paid to play World of Warcraft.

Even if four people wanted to pay me to tank for them in a dungeon, it would be a misuse of my time. It is not the way I want to demonstrate to coworkers that I can contribute to their team. You sink an enormous amount of time into WoW, and you can't take that game knowledge elsewhere with you in this world. That knowledge is confined to only that game.

I can conceive of some players making money tanking in WoW, but it's weird. Why would you pay money to someone for something that is supposed to be make-believe. Why would you pay someone to face you in a boxing match? If you're entertaining others, I can conceive of paying someone to be on your team in a baseball game. But paying money to do something that is supposed to be beyond money is weird. The honor of participating in a dungeon run does not come from money. It is something you do for free.

I played World of Warcraft for eighteen months because Blizzard's products were like a home to me, and WoW was proxying for all of their products. I also played it because there was honor in playing it, and because it was beautiful. But none of these reasons is sufficient anymore. I can make my own home now. I do not need to tank or do quests to demonstrate to myself that I am honorable - there are other ways that my life affords. I know what beautiful is in the real world. I don't need WoW to show it to me.

I can also imagine a person who makes a living playing video games for game companies. He tells them whether their game is enjoyable to him. He would be like a "taste-maker" (lol). His opinion would be valued like the villain in The Devil Wears Prada. Such an occupation is not something I am interested in doing. Because again, I am not in search of an emotional home, honor, or the beautiful.

If a game company wants to hire such a person inhouse, that is a little different. At that point you're not playing the game for enjoyment, and you are providing a service, and you have a job that relates to consumer demand again (like me and my software development career). I could fathom doing that but that is no longer playing a video game for its home-making ability, honor in gameplay, or beauty.