Daily Log #52

There is an upcoming demo involving very senior management on the customer side. Therefore, this week we got very busy deploying and testing. We even reached a point where the team lead took a development laptop to the customer’s data center where he could do immediate deployment of new codebase. So what the rest of us did was investing any bugs found and implement fixes in office. Then we send fixed codes, either in the form of screenshots or original source file via email, to our team lead who will implement it on the spot and test.

During the whole day of bug fixing, there is one new things I learnt.

The first was how JSON serializer from the .NET can take several seconds to process byte arrays into JSON strings. It was one of the reason why image download through HTTP using JSON and then rendering that image take three or even four times as long. So the fix was to convert the byte array into Base64 string before serialization into JSON.

However, the biggest issue I have with the whole situation was the urgency imposed on all of us and the amount bugs we need to fix in a short amount of time. I mean I did tell my colleagues how I work best on one task at a time but yet I still find myself having to deal with a whole bunch of thing to work in a short span of time. I suppose if not for my colleagues, I would have become quite frustrated and pissed off. Well, I did feel that towards the end. But the one thing I also realize is how focus I could be if I make a very conscious effort about it and implement the fixes.

I know I will need to keep working on my emotional resilience but there is also a saying by Gary Vaynerchuk: Double or triple down on your strengths instead of working to fix your weakness because fixing take a lot more energy and effort that you could better spend on becoming who you truly are and deploy them to create things for the world or help other people.

Tomorrow, I suspect it will be another day of hectic bug fixing as soon as my team lead find more.

Work aside, the other thing I did was to split my novel into five chapters instead of the original four. It turns out, chapter three alone could be split into two to focus on two different themes or should I say scenes. I also spent some time on my way to work to fix up some of the wordings and sentences for clarity, conciseness and make certain ideas read better.

As for the rest of tonight, I will watch the show call Superstition on Netflix.

Daily Log #51

This morning I actually spent about an hour or so to put in some words for my novel while also editing previously written paragraphs and sentences. After that I didn’t get to do much today because the electrician was here from around 11am to 4pm. So I spent most of my time watching what the electrician was doing. After he was done, he explained to me some of the things.

It turns out that some of the sockets we had were leaking voltage into Earth thus causing a ground fault. After most of the lower quality sockets were replaced, the ground fault seemingly disappeared as per reported by my surge protector. That is until I got home and still see that red light. Now I suspect, there are a few more sockets, at least the original ones that came with the house but not replaced, are also leaking voltage. Considering that those original ones are easily twenty years old, it’s not surprising.

Other than watching someone fixed up my house sockets, there is this one thing that ground my gears. It was that the electrician was a smoker. Although he smoked outside our house, due to the wind, it got blown in. The living room and my room received a large amount of second-hand smoke. I had to use an electric fan to blow on maximum speed. However, it wasn’t very helpful because the air in my house wasn’t circulating properly. So the second hand smoke reached a point where I started to suffer from breathing difficulty and had to hide in my mom’s room and the kitchen.

Anyway, after he left, my mom and I started cleaning up the house. I also went ahead to start patching the old screw holes with mortar by mixing white cement and water. Although I’m not sure if what I did was correct, I just didn’t like to simply patching with just a surface layer. Considering the depth, I actually packed mortar into the hole with a prick punch until I can’t push them in anymore. From time to time, I used a spray bottle to squirt some water into the screw holes so that the existing mortar could stick to the surfaces properly. It didn’t take me long before I filled up the holes.

Then I went to clean up my room and put everything back to their original places before going for a shower and heading out. On the way to the mall, I also continued to write my novel. Once there, I went to get some supplements and medicine for my allergy. And I also went to the computer stores to look for a Bluetooth Audio transceiver by Creative but couldn’t find any in stock. I went to creative’s website and found that the product is only found on their online store. I guess I will not buy it and stick to using the AUX cable that came with my Creative Roar Pro when it comes to my PC.

Daily Log #50

I have lost my desire to write anything as of late and thus the lack of updates. Then finally, today, I felt like writing something.

Summary of what happened

On Thursday, I came to realize that there is a grounding issue with my house’s electrical circuit. I only knew after the surge protector that I have signaled to me about a ground fault. At first I thought it was because of a problem during the installation of the electricity meter by the town council’s appointed electrical contractor.

After going back and forth with the engineer on Friday, I decided to call the electrician on Saturday. Previously, my fmaily engaged one to wire up our house with network points and add more sockets. So we called the same person to come and check. That was on Saturday. After checking, he found that there was no earthing on some of the socket but without proper diagnostic tools, he didn’t know that there was a voltage leak. Personally, I can feel it, the tingling sensation, on some of my devices like MacBook Pro because of its’ metal body. Even when I didn’t power on the socket, I can feel there’s some voltage on the mag-safe connector because of it how caused pain when I touched it against my skin where there’s more hair. It’s like electricity is using my hair as a conductor to get deeper into my skin.

Anyway, the electrician will come back again on Monday to change the sockets because he thought it might be the sockets that are causing the problem. Since my room has one of the socket that need replacement, I will need to take time off from work so that I can move my stuff away.

So over the weekend, I spent some time playing some games on my PC. The main games I played were Outlast and Cities Skylines.

Gaming weekend

For Cities Skylines, I continued from where I left off back in January 2018. I believe my most recent game was on this date.

This time I decided to end the game with a bang by playing with disasters.

First I call in the tsunamis which took a long while to appear.

This is the night view of the city after that tsunami. It looks like my city can tolerate that level of damage. Economy is still doing well.

Then it was time to call in the meteors and hurricanes.

A quick check of disaster report showed the amount of people killed and how much of the city destroyed.

Then it was another tedious round of calling in the meteors and more hurricanes, fires, earthquakes and whatnots provided by the game.

By now, my city cannot survive anymore after key infrastructure were taken out like the sewage treatment, power plants, and water supply.

After nearly an hour of systematically calling meteor strikes, earthquakes, and starting of fires, this is how my city looks like.

By the end of my destruction of my city, this is the statistics.

With that, I moved on to a new game today (Sunday). This time, I decided to try to play in the snow and move away from putting my roads in grid-style. I supposed it stems from my personality where I like things to be binary, or clear cut.

As I expand my city, I created a specialized zone for all offices.

Now that I don’t really use a grid system for my roads, I like to think that my city looks better and could work better.

Netflix Time

I started watching Netflix again and specifically, I’m watching The Alienist. So far, I really enjoy it. The story is keeping me engaged, thus I can’t help but binge watch it.

Daily Log #49

I live through most of my days dealing with doubt and anxiety, especially when it is a new project or a new task I need to do.

That’s what I felt over the last two days because I have a major task to do on Wednesday… that’s today. Basically, what I have to do is to implement a feature where the application will show a series of thumbnails derived from the same image based on the size and location of enclosing boxes drawn. Lucky for me my colleague suggested that I reuse an existing module that I have already done to display the search result in an image gallery manner. So I copy the pre-existing code over, added more codes and variables to support the feature. By late morning, the main capabilities was already done. But me being conscientious about what I have implemented, also looked at function overlaps and seek to remove those. I also look at how to improve the overall user experience.

Later in the afternoon, I spent some time guiding the intern on how to implement some stuff. In the past, I have never liked to mentor people nor do I have the patience for it. As of late, I came to internalize the fact and practicality of being a mentor. And that is you get to grow as a person and it also fulfill my personal goal of helping people live stress free. After all, I know what’s like to do my work without some kind of mentor or help and I don’t want the intern to feel the same thing as I did.

After that, I had to focus on fixing a specific bug related to image downloading and passing it over to another module for the purpose of doing feature extraction. What happened was that the image wasn’t displayed even after the image has been downloaded. It turns out the image wasn’t really downloaded fully and the rendering of image was done using a null array. So the solution was to rely on a series of event handlers attached to the BitmapImage class and the enclosing class. The moment the download is completed and the image is ready, the handlers are triggered and will force a refresh of the WPF Image component.

At the same time, my team lead asked me about a bug encountered by another team mate. That definitely irritate me because I did mention before that I prefer to focus on one task at a time and multi-tasking is very expensive for me. So I kind of do a quick explanation of what happened. I definitely notice a mild raise of my voice and my other colleague, who’s free now, helped to put the data necessary into the database and all is well.

I also had an interview with the hiring manager from a company which specializes in cryptocurrency payment solution over Skype. It’s a company that attempts simplify the use of cryptocurrency to pay for services and product through its own products and services. Their products also support pre-existing payment solution such as the use of credit card. The job role that I am interviewing for is Technical Writer. The role primarily is about translating technical information from Chinese to English that is for the company’s customers and users. The documents could range easily from user manuals and troubleshooting guides to implementation guides. So far, I really felt like this is for me until the three things I heard that are red flags for me.

Now a lot of my decisions when it comes to a new job these days are based on how much something will pull me away from my comfort zone, whether I will have to sacrifice my health for it, and whether I can fit into the company culture. Different company has a different culture. So taking into account my highly-sensitive nature that leads to lower energy levels, I definitely won’t work very well in a company that demand you to work like you are constantly on-call basis or require you to multi-task or suddenly switch your environment. It creates a massive mental load on me and stresses me out. The other thing is I never like to travel overseas for work. This new job requires me to do that because of the way the company is structured. There are employees everywhere in the world and you need to interact with them and sometimes flying over. So this is definitely not for me.

Yet deep down, I feel like, “It’s technical writing! It’s something that I want to be doing going forward as a career or job. It doesn’t matter if it is on a full-time basis or contractual basis. I just want to write.”

So I’m dealing with this internal struggle of wanting to do something new but didn’t want to stretch myself too thin or land into hot soup just for it. There has to be a balance there.

After the interview, I let the job agent know. Then we had a chat about the interview and I did share some of my concern I mentioned above. The agent said she will try to help me to the best of her ability and share some truths with the interviewer. Personally, I’m willing to hear what the next interviewer, most likely the VP, have to say if the company come up with some concessions. It’s a give and take situation and up to me if I can compromise too. So I shall see how it goes later.

And tomorrow, I will have to go down to the customer office to do more deployment. The customer has a major demo next week that involves people higher-up in the chain of command. So I have to ensure the application is deployed properly and working by the end of the day. There will also be a scheduled demo pre-run at the HQ of the customer of the application this Friday.

Musings – Software Development

  1. It’s always best to avoid rolling your own implementation of things like database connection managers, encryption unless you want to deal with the pain six or seven years later, assuming you are still working on that project. And if you are a newbie or junior developer with less than 1 year of real world working experience, do not even think about rolling your own.
  2. Troubleshooting and debugging a software bug in an old piece of software that you built five years ago without documentation or with poor code style is like hunting for a specific color of needle in a haystack but you forgot which haystack and where it is, even if it is right in front of you. When you finally found the haystack, you forgot which color of needle you are looking for.
  3. If you are a highly-sensitive person and love programming, software engineering as a career may not be the best choice for you. Projects are extremely time-sensitive, multi-tasking is required, majorly understaffed, and people are mostly logical. So depending on the level of your sensitivities and ability to manage those sensitives, you are probably better off working for yourself or do programming on the side. Of course, the company you work for and the culture could affect your choice. If your team and management totally understand it, know the strength of a highly sensitive person and appreciate those strength while seeking to help mitigate the weaknesses, then yes, you can do it as a career. Otherwise, get out and find something else to do. Cultivate a new passion.
  4. Your years of software development experience doesn’t necessary means you can be a senior developer. It is especially so if you haven’t develop the skills to be a senior developer or a lead developer. In that case, either you improve yourself and develop those skills, work for yourself or lower your ego, pride and salary, and continue to be a junior developer.

Initial Review – Creative SoundBlaster Roar Pro

Introduction

Today I got myself the Creative Soundblaster Roar Pro after much consideration. I wanted a small speaker system that sound really good, support both bluetooth and wired connection so that I can use it with my PC and my Apple devices.

It’s selling at SG$349 in retail but that was not what I paid as it was on promotion and I got it for SG$199, which I thought was a steal.

Unboxing

On first look, the black on white box looks great.

But upon opening up the box, the first thing I felt was, “Oh, this thing look cheap.” The accessories weren’t packed as neatly as I would like. It is definitely not that ecologically friendly with the heavy use of plastic to pack the cables and the manuals. Then there is the eye sore of the product manuals. Red on white but the product box is black and the product is black. Where is that consistency?

I guess I’m spoilt by Apple since the internals of their boxes are always so well designed and done. Even their manuals, which I know most people don’t read, are at least consistent with the overall theme. Apple do make you feel like you are opening up a great product and that is important to the overall user experience.

The box came with a charging adapter, a USB cable for you to connect the speaker to a computer, a AUX cable to connect to another Roar Pro or audio device. The charging adapter also come with two different kind of plugs that you can swap depending on your power socket. In Singapore, we will use the three-pin plug.

And here is the actual product.

Other than the rows of buttons and switches at the back, the overall speaker is pretty clean and well-built. The black matches well with my desktop setup of mostly black and grey. On the top where the main function buttons are, I would prefer the use of touch buttons instead of physical button. Nonetheless, they don’t detract much from the overall design.

Performance and Experience

I’m no audiophile but I know enough about the various sound range and the type of sound I enjoy listening to. I can tell if there’s crackling caused by the driver’s inability to transform the input signal to sound, if certain sound is muffled, not crisp and clear or if there is an overlap.

I always prefer a good mid-range and bass. To test, I played a few songs like Monody by The Fat Rat, Fountain and Hunting for Pearls from the album BLUE by iamamiwhoami, and Whatever it takes by Imagine Dragons. The Roar Pro with its 2.5 inch mid/bass driver located at the center and pointing up definitely delivers on that front. The mid range is crisp and the bass has enough dynamic range that it doesn’t sound muffled or too low. I suspect the two passive drivers on the side has been well-tuned to help with the bass reproduction.

The high range on the other hand seems rather ok but then I don’t listen to music that has a lot of that because how they hurt my ears and give me a headache. My predominant genre is electronic and pop. And they definitely have higher ratio of bass and mid-range compared to maybe classical music or symphony.

The pairing process with iPhone or Mac is pretty easy but not as easy as AirPods. You will have to power on the device, press and hold the bluetooth button for 3 seconds and see the LED light beside it flash. After that, go into the iPhone’s bluetooth setting or Mac OS’s bluetooth preferences and click connect.

It doesn’t take long for the connection to be established. Once it’s done, you can start playing music off it.

Conclusion

I have not start exploring playing games with it and when I do, I will update again. There are a few things that I have yet try. One of them is the use of the other functionality like playing music straight from an SD card. Another would be connecting it to another Roar Pro to via the AUX IN port for MegaStereo.

Yet, I really enjoy the sound coming out from this speaker and I couldn’t tell the difference from a SONOS Play 3 based on trial play in store. For the price of SG$199, I think it’s really good though the packaging could be better.

Daily Log #48

Quick update as it is getting late.

I managed to get around to watch Avengers: Infinity War with a friend. Personally, I found the movie to be a little disorienting due to the constant scene change to show the interactions between the different characters and somehow didn’t feel particularly sad about the ending. I supposed it was because I expected it and that it is Marvel. There is always a way to walk back whatever was done.

Later at night, I spent some time to write this article because I wanted to share something about my self-esteem and my constant battle against inadequacy.

After that, I went to put in more words for my novel and am proud to say I finished Chapter 3 and started working on Chapter 4 proper. I did promise previously that I will put up a synopsis once I’m done with Chapter 3. I will do just that before the end of the week.

Given my current rate of writing, I suppose I will finish the first draft of this novel before May, latest mid-June. I admit it’s a slow process but it is what it is. I have to balance my video gaming life, reading life, spending time with family and friends, rest, and working on a 9 to 6 day job.

And you know what? My back and neck pain came back again. Sigh.

Ok, that’s all for today.

Growing up feeling inadequate makes you a miserable person

When you don’t have that confidence in what you do, or when you constantly compare yourself with others, you will always feel inadequate. Allow that feeling to go on long enough, you will start to resent your life. This is also how you will develop anxiety disorder and subsequently depression.

I’m speaking from my own personal experience. During my growing up years, adults ranging from my school teachers to my relatives always questioned my abilities to make it in life because of my failures in some things. When I make a mistakes, they would berate me and call me stupid. Or they would find ways and means to twist the situation to make you feel like you are the worse thing in the world.

I still remember the time when I found myself ranked fifth during my fifth year, also my final year, in secondary school amongst 80 students. My aunt was with me to pick up the result sheet and have a talk to my form teacher. On the way home, she commented that, “Looking at your current score of only two As and so many Bs and Cs, you ranking fifth means your cohort of 80 students aren’t the brightest. So your score isn’t that good.”

Being at a rebellious age, I did get quite pissed at her and countered, “At least I got fifth and didn’t fail any subjects.”

All she did was to give me a shrug and a contemptuous yeah.

And in an asian culture—specifically Chinese ones, parents beating their kids for mistakes they made are common. Poor score on your result card, you get spanking. Teachers call up your parents complaining about you making some silly mistake at school, you get spanking. You fail to come home on time or play too much, you get spanking. There could easily be countless reasons why an asian parent will spank his or her kid. I get my fair share.

So when such a thing enter your life from a young age and continue until you reach your teenage years, it’s very easy to internalize it. Before you know it, your self-esteem is gone and you grow up thinking it’s perfectly ok to keep criticizing yourself when you make a mistake. After all, people have been telling you in your face that you are stupid and that’s why you make mistakes. If you are smart, you won’t have this kind of score. If you are smart, you should have been this or that.

So that’s what I did as I got older. I treat myself so harshly that I did contemplate maybe I’m better off dead. So that means I never was once happy during my early teenage years because I constantly fail to meet expectations.

It was only during my three year stint at a polytechnic getting a Diploma in Information Technology that I found something I’m truly good at. I can code better than most people. I could grasp technical concept faster and even found myself teaching my friends. But there were times when I do feel like a failure if I didn’t get the result I wanted. Yet overall, I would say I felt slightly happier.

Then came the mandatory two year conscription service. After that, it was a three year stint at a local university where I studied Computer Science. Because I didn’t keep myself abreast of what’s happening in the technology world nor practice programming, I found myself feeling miserable during those three years. I feel inadequate again. And instead of finding ways to improve my results, I simply let it be and resented myself for not achieving at least a CGPA of at least 4 out of 5. I thought, yeah, I’m stupid and that’s why I only get that kind of grades.

After graduating, I found my first full time job and the same thing happened over and over again. Every mistakes I made I scold myself, blame myself and forget all about self-care or acknowledging that I am only human.

By my third year as a member of the working class, I completely lost my way, feeling anxious, and depressed. A big contributing factor was poor cultural fit at my new company. I didn’t know I was a highly-sensitive person and don’t do well under stress. My self-awareness was suddenly gone. It all became me trying to meet everybody’s expectation and I no longer know what I wanted to do with my life anymore.

It took me a while to realize I am suffering from depression and decided to take control over my life again. I went to see a psychologist, then a psychiatrist for deeper diagnostics, and took a one long month break. I used that time to rediscover myself and figure out what I want to do actually.

Now I’m happier than I ever was but I’m not saying I’m completely above that self-critical nature. I still blame myself rather harshly for poor viewership of my writings but I pick myself up faster and earlier rather than let myself stay on the ground for very long. Because I finally acknowledged that making mistakes, as long as those mistakes don’t kill or hurt anyone seriously enough, is only human. It’s part of the experience. One should learn from it and then do it better next time. I have also learnt to stop comparing to another person because everyone leads a different life, have different personality and want different thing.

I for one wants a unbusy life, surrounded by friends and my family, have meals with them, play video games, watch movies or shows, and publish at least one fiction novel during my life time. Everything else is really just superfluous. Once you establish what you want and proceed to do the things necessary to achieve your goals, you will stop feeling inadequate.

*** This post is also published here on Medium

Photo by Meghan Holmes on Unsplash

Daily Log #47

After I woke up in the morning, I got down to do some programming work, trying to implement the user session module and augment the existing database-based semaphore to make use of the session module for my client’s application.

At around 9.45am, my family and I left home for the immigration agency so that my mom could submit the application form for a new identity card. On the way there, I spent the whole journey reading The Shining.

Thus far, I really enjoy reading the book because of the way Stephen King wrote it. It is unapologetically true story telling. The words shows everything that is going on both in the character’s mind and in the environment. I also get to see that there’s no right or wrong way to present your story. Like for example, there was one chapter in the book that only has three paragraphs to tell something. I for one have always believed that a chapter should be at least two pages long or five hundred words long.

We didn’t spend a long time at the immigration agency. There was no queue at the service counter and service staff simply took the application form handed to her. Then, we went to have brunch of crayfish hor fun at Hong Lim Complex.

Once at my grandma’s house, I continue to implement the user session module while also refactoring existing codes. Some of the refactoring involved me trying to do micro-optimization.

While I was working, the sofa I was on had poor support for my back and neck, causing me to suffer another bout of back and neck pain. So I had to keep stretching. Then my uncle asked me to sit on a recliner chair that has better ergonomics. It helped a little but my neck still hurt and made me nauseated.

At around 2.30pm, my family and I left for home. But first we stopped by Chinatown point where my mom got some pastry while I got myself a cup of ice cream.

Then we left for home.

Once home, I continued to do some programming. While testing out what I implemented, my MacBook decided to undergo kernel panic caused by my use of VirtualBox running an instance of Windows 10. Now, I don’t know whether its VirtualBox’s fault or Windows 10’s or Mac OS’s. After a restart, I continue my work and decided to call it a night at around 6.45pm.

I joined my family for dinner at Han’s. I ordered Grilled Pork Chop for myself and a side of fried egg with bacon sandwich.

I love the pork chops with the black pepper sauce. The pork chops themselves were pretty well done and easy to chew. The fries on the other hand weren’t so good.

The sandwich, well, I like it especially the fried egg and bacon.

But after the whole thing, I actually felt bloated. After all, my gut is still recovering from gastroenteritis. So once I reached home, I quickly got myself a cup of warm water to help with the digestion because I do felt like vomiting.

Later at night, I decided to spend some time watching Dexter on Netflix. A few years ago, I did watch Dexter from season 5 onwards but never found the chance to watch the earlier seasons. So I am using this chance to catch the earlier season. I am also trying to justify to myself if I can learn something about trying to develop a character that has psychopathic tendencies yet have great self-control over his urges.

Other than that, I also have a talk with my parents like over the planned renovation of our rooms. An example would be to remove the wardrobe that I have in my room for over fifteen years. It’s kind of falling apart.

Another of note is I have notice how my blog’s viewership has fallen compared to the last six months. There is nobody else to blame, not even myself, actually because I made the choice to pivot towards writing fiction. And thus far, I really hadn’t been having any inspiration to write any new short story. As for poems, well, I don’t really have much inspiration either.

So until then, I will continue to go about my life, keep working on what I do best for a living, interact with people, keep reading more fiction books, play more video games and watch more shows.

Daily Log #46

My Daily Log has kind of lost its consistency in terms of post time. The only reason was to spend some time doing what I have always love since I was younger and that is to play video games.

Yesterday morning, I came down with a diarrhea but went to work as per normal because I thought it might just be a one off thing. Then while at work, there was this cramping sensation and the need to go to the toilet again.

Then there was a meeting to talk about some new feedback garnered from the user when my team lead went to do demo with the customer. Throughout the meeting, the pain was at times unbearable and I was feeling tired all the time. When I went to the loo the third time, I knew it. It has to be stomach flu (Gastroenteritis) because I have often enough to know the symptoms.

So I told my team lead that I need to take time off to see the doctor. I packed up and left for a nearby clinic. Saw the doctor and he decided to give me a medical certificate for two days, stating that I’m unwell for work. I told my team lead about the two days and he say, “rest more and get well faster. You are a key person.” I replied with two hand emojis indicating ok and good.

I had my lunch and took my first dose of the medicines before going home. I took a nap as the medicines causes drowsiness.

Later in the day, I spent mostly playing a bunch of video games ranging from Everspace to Ghost Recon Wildlands. I even play Outlast for a while and got myself a few scares.

By late evening, the diarrhea has mostly stop. I didn’t stay up late and went to bed after taking some more medicines.