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.

:/