A glimpse of what’s next in life

For most of us, we faced the question of what do we want to be at the age of around fifteen to sixteen. However, our teenage minds are still struggling with insane amount of pubertal hormones and making the right decisions. That means, it’s virtually impossible to know what one wants to do in the future. And in Singapore, we can delay that decision until we finished and passed the GCE ‘O’ levels examinations. Not that it’s a particularly long delay. Only then, we can choose to continue on with GCE ‘A’ level or go with tertiary education.

Students who decide to choose either the Institute of Technical Education or Polytechnics for their tertiary education face the dilemma of what to specialise in. And most of my friends that I know did not continue to develop a career based on their chosen course of study.

I was one of the few exceptions. I went with information technology, developed a whole set of skills related to software design and development. Then I continued on with a degree program in Computer Science. After graduating, I developed a career as a software engineer for the next five years. All in all, I have done ten years worth of software design and development.

During that period, I show a lot of enthusiasm for coding and software. I read up a lot, have my own pet projects, etc.

And as of late, I came to realise that software engineering is no longer what I want to do anymore. The sheer amount of changes in terms of programming languages, frameworks and development toolkits overwhelmed me so much that I gave up. There are also many other reasons that could have contributed to pushing me into this stage in life.

That feeling of being stuck at a crossroad was terrible. It caused me a great deal of angst, worry and confusion. My workload recently has also increased dramatically that I felt like I no longer have any control over my life anymore. Combine that with my decreasing interest in software development and a very demanding boss meant my workday is really miserable.

It went on for two months until something in me finally snapped. At least, I think that’s what it is. I slipped into severe depression, at least according to the doctor who saw me, and I know I’m not out of the woods yet. Still pending a consultation with a psychiatrist and counselling by a psychologist. On the surface I may look like I have it all under control. Deep down, the turmoil is real. Certain triggers can remind me of how trapped I am and caused my mood to swing dramatically. I found myself on the verge of tearing up and break down so many times. And at work, when the stress or amount of tasks get high enough, extreme anxiety sets in and I find myself feeling really scared. There were also countless suicidal thoughts that intrude when I’m by myself.

And the worse part now is that because of the US-China trade war caused by an unstable man-child sitting in the White House, the world’s economy slowed down dramatically and Singapore is particularly hard hit, causing the confidence of most businesses to dip dramatically. And I can see it affecting my ability to secure a new job or do a career change. I feel like it’s virtually impossible now and is worsening my depression.

In spite of all that, I caught a glimpse of what I could be doing next. Even though I’m reserved and quiet by nature, I found myself serving as the middle man, translating ideas and thoughts or simplifying questions presented by my colleague, who’s a highly technical person, into plain English that my boss could understand. I admit it caught me off guard initially but I knew how to seize subsequent opportunities to do the same thing again.

What’s more, during the times when I’m lucid and not so emotional, I spent the time to distill what kind of work am I really looking for. Took me a while to settle down on wanting to give digital design and marketing a try. On the surface, it looks like it’s a good direction for me and I think it’s a great starting point for me to develop a writing career…

D-Link Covr 2202 Mesh WIFI initial Review

How often does your device lose connection to the internet when you enter a spot in your home despite you having bought and setup a powerful WIFI router somewhere in the middle?

It’s frustrating, right?

Now, that’s just the reality of WIFI technology as radio signals do have a hard time penetrating walls or other objects. It’s just physics.

And this is a problem that mesh network technology is here to solve. Mesh network technology is basically the use of multiple connected network devices to provide consistent WIFI coverage for a large area and eliminate blindspots. And when the connected device move from one area of the house to the next, the mesh network knows how to pass the connection to the router that provide the best connection.

In this review, we will be looking at D-Link’s latest WIFI mesh network product for home users, the Covr-2202.

The Covr-2202 is a tri-band WIFI mesh networking product that uses two units to cover 550 sqm of space with WIFI signal. Unlike the dual-band implementation found in other WIFI mesh solution, the Covr-2202 uses a third 5Ghz WIFI band for communication and data exchange between the two units. This frees up the 2.4Ghz and 5Ghz bands for devices to use to connect to the network. This means the connected devices can still stream 4K content, handle large downloads and browse the web without any drop in performance.

The marketing material and the specifications made it to be the WIFI solution to go for. But those weren’t the reasons that I got it.

For me, I got the device because it was an alternative purchase. Initially, I was looking for the Asus Blue Cave WIFI router to replace my previous Asus RT-AC68U WIFI router. I wanted something nicely designed that will complement my new desk, perform well and take up less space. The three antennas of the RT-AC68U were just ugly.

And if Apple didn’t discontinue their networking products and make new ones, I would have gone with their AirPort-series of networking devices.

Sadly, according to the salesperson, Asus Blue Cave was discontinued. He suggested that I go for Covr-2202 because it costs about the same, won awards and performs better. During the conversation, I asked about the Covr-1203 because it looked interesting and fulfilled my requirement for a small router. It turns out the performance wasn’t as good and was an older generation, which kind of defeat the purpose of buying a new WIFI router.

Before I made the purchase, I asked to see the physical product. Lucky for me, there was a display set on hand and the salesperson showed me what it looked like. I find myself liking it and made the decision to buy.

Unboxing

This is the box after removing the plastic. I got to admit it definitely look enticing and cool when compared to other networking products sold by other companies. Most networking companies don’t really bother with making nice packages.

Once you open it, you are greeted to the following sight.

Now that definitely remind me of the packagings used by certain brand of cosmetic products. And after you remove the cover, the two Covr-2202 units greet you. They are welcoming you to take them out of the box.

The white overall and the bronze-like band at the bottom definitely complement my desk that features light wood colour with white metal struts.

And the small size definitely help freed up more space on my desk that I can use for other purpose. Overall, my desk just look less cluttered.

Installation and set up

Router installation and setup is really easy and simple.

Within the box, D-link provided a small card containing instruction on where to download the their official WIFI mobile app. When you launched the app, it comes with instructions that you can follow step-by-step to install and power on the device.

At a specific stage of the setup process, the app will ask for the network name and passwords. You can do it manually or scan the QR code located on the small card. However, it is advisable to set a different network name and password after the setup process is completed.

Although I encountered some issue during the setup process due to my lack of understanding how mesh networking works, I was able to recover from the mistakes and redo the whole setup again within minutes. This is definitely helpful for those who are mostly clueless about networking and simply needed their WIFI up and running in no time.

Performance

My home subscribes to 1Gbps fibre broadband. Therefore, it’s important that we can maximise our use of the bandwidth if not it would be a waste of money. Compared to the old Asus router, the WIFI performance of this new router is so much better. On WIFI alone, I’m able to achieve download speeds that’s more than 500mbps and upload speed of slightly more than 300mbps. And that’s taking into account the overall residential broadband bandwidth tend to be lower since many people are home and using the internet.

With speeds at 500mbps, I can watch YouTube video or Netflix with relative ease and no lag. And I do have at least 5 other devices connected to the same mesh network. So the performance is definitely there.

So for the price I paid, I would say it’s worth it.

Working on new things

It’s been nearly a month since there’s any new content posted and I feel obligated to provide an update of sort.

I have recently got myself into a new habit of waking up at 5.15am in the morning to go for a 30 minutes run around my neighbourhood. It has been going on for the past three weeks now and there are multiple reasons. One, I promised myself that I need to be healthy and reduce my stress level. And since I do enjoy running, it’s the best kind of exercise for me. Second, my working hours, especially that of the evening, is unpredictable given my recent change to a new project. And usually by then, I will be too exhausted to exercise. So, a morning run is the best.

I have also signed up for a short Udemy course on Creative Writing and is currently undergoing the lessons.

Next, I also decided to do commercial writing. And no, no money involved just yet. What I meant is that I write for companies, using my technical skills and experience. It’s also a good place for me to start if I need to do writing as a career.

Finally, I’m still working on my novel; still trying to work out the kinks of the first chapter. And I’ll be honest. I’m having a writers block of sort because I recently find myself not feeling passionate about this particular storyline set in the Intertwined Fate universe. Initially I started the project because I felt like I need to do a slightly bigger fiction project before I go to the next level. I’ve tried writing space opera a few years ago and my skills then didn’t allow me to do a good job. That’s why I would be stupid for me to attempt it again.

The sci-fi LGBT-themed short story I wrote previously for the Intertwined Fate universe was a good starting point. You can read the first chapter here. That story was small enough and manageable for me. Furthermore, I felt the passion for it and enjoyed writing it. Now, it’s just really hard for me to find that passion back.

Image Downsizer

Let’s say you have images that you wish to load into your application. However, instead of having the user downscale or downsize those images first, your application could do it for them.

Below is a piece of code I wrote in C# that will do just that by brute forcing. Admittedly, it’s not the best solution. An AI probably could do it better but in many cases, the following works pretty well.

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace ImageTuner
{
    class Program
    {
        static void Main(string[] args)
        {
            string originalImageFile = "<image image file&gt;.jpg";
            string scaledImageFile = "<downsized image file&gt;.jpg";
            bool imageMatchCriterion = false;
            bool imageStillTooBig = false;

            float resolutionScaleFactor = 0.95f;
            long jpegQualityLevel = 100L;

            using (var originalImage = new Bitmap(originalImageFile))
            {
                while (!imageMatchCriterion)
                {
                    Console.WriteLine("Image doesn't match size criterion. Resizing.");
                    int scaledHeight = (int)(originalImage.Height * resolutionScaleFactor);
                    int scaledWidth = (int)(originalImage.Width * resolutionScaleFactor);

                    using (var toCompress = new Bitmap(originalImage, new Size(height: scaledHeight, width: scaledWidth)))
                    {
                        var jpgEncoder = GetEncoder(ImageFormat.Jpeg);
                        var myEncoder = Encoder.Quality;
                        var myEncoderParameters = new EncoderParameters(1);

                        var myEncoderParameter = new EncoderParameter(myEncoder, jpegQualityLevel);
                        myEncoderParameters.Param[0] = myEncoderParameter;

                        using (var tempStream = new MemoryStream())
                        {
                            //Save the image byte to memory first.
                            toCompress.Save(tempStream, jpgEncoder, myEncoderParameters);
                            byte[] imageSize = tempStream.ToArray();
                            //Check the image size in memory. If it's too big, continue to loop.
                            if (imageSize.Length <= 512000)
                            {
                                imageMatchCriterion = true;
                                using (var saveStream = new FileStream(scaledImageFile, FileMode.Create))
                                {
                                    toCompress.Save(saveStream, jpgEncoder, myEncoderParameters);
                                }
                            }
                            else
                            {
                                if (resolutionScaleFactor &gt; 0.60f)
                                {
                                    //Reduce the resolution of the image by 10 percent each time.
                                    resolutionScaleFactor -= 0.10f;
                                }
                                else
                                {
                                    //When the resolution scaling already reach 60%, time to look at reducing the quality level by 5 each time.
                                    if (jpegQualityLevel &gt; 50)
                                    {
                                        jpegQualityLevel -= 5L;
                                    }
                                    else
                                    {
                                        //Cannot drop the image quality below 50 percent. Once that happen, the image is almost unusable.
                                        imageStillTooBig = true;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (imageStillTooBig)
            {
                Console.WriteLine("Image resizing failed.");
            }
            else
            {
                Console.WriteLine("Image resizing completed.");
            }
            

        }

        private static ImageCodecInfo GetEncoder(ImageFormat format)
        {
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }
    }
}


Writing longhand with pen and paper

How many of you write your content using pen and paper before actually getting it onto other platforms for publishing?

If you do write using pen and paper, it’s great and would love to hear your thoughts about it.

For most of us, we’d probably write on computers. I write predominantly on computers too. It’s just a much more powerful tool, more convenient, and probably could write much faster.

However, due to the nature of my work, technology burnout is inevitable. For several days during this week, I couldn’t bring myself to use a computer or even my phone to write anything. Yet, there’s a book that need writing.

This was how the decision to reintroduce pen and paper into my writing life came about. I got a lecture pad and a black ballpoint pen. Then I got down to writing.

The experience was definitely painful at first because it’s been a while since I wrote longhand using pen and paper. After finding my handwriting in a total mess and my hand aching badly, I decided to use the pen correctly and even went to google for the right way to hold the pen or pencil for that matter. Then it was time to put it into practice.

I would say there were definitely some good and bad that came out of this process.

For me, it has been therapeutic. The chance to get away from technology is just great for my mental health.

Further more, I could focus better on my writing because there’s no internet involved. No Netflix. No music. No internet browser. If you put your technological devices out of reach, you have no choice but focus on the act of writing and the story you want to tell.

The second advantage come in the form of deliberate writing. Because writing on paper meant it’s nearly impossible to change what you wrote. Unless you want to leave behind lines after lines of strikethroughs or whiteouts, every word you want to put down on paper have to be the right word. This slows down your writing and forces you to think. This has the added advantage of allowing you to identify if there’s loopholes or problems with your content. This is especially helpful for me as a pantser because I won’t run astray with my writing and create plot holes.

The third advantage was that it’s just more natural. You can do whatever you want. Scribble along the margin of the page. Skip lines. Doodle. The freedom meant you could explore your ideas and thoughts in a more natural and faster way rather than having to conform to what the computer and software forces you to do.

The fourth advantage is the permanence of the content. Unless your notebook or lecture pad end up getting soak, caught fire or the pieces of paper blown away by the wind, you can always trust that your content won’t go away. That’s unlike when you are using a computer to write. Machine can fail. Storage devices, including cloud storage, can fail or corrupt your data.

But not everything is all so shiny and great.

The biggest disadvantage with using pen and paper is the speed of writing. Your arms and hands don’t move as fast when you have to draw out the arches and lines associated with latin characters whereas with a computer, a key press means a letter. Because of that, I find it much harder to get into the flow.

The second disadvantage is you can’t edit the content like you could on the computer. Every word that you write on paper is permanently set in stone, so to speak. If you want to change something, you have to strike out what you wrote or use whiteouts. And if you are like me who makes quite a lot of mistakes when writing, you will find that your paper may end up becoming a complete mess and hard to comprehend.

As for portability, it doesn’t concern me. I always bring a backpack when I go to work and I could just shove the lecture pad in it. And when it comes to publishing, well, since I’m writing a novel, it would be much later in the writing process that I have to type them all out. With that, I’d probably do my editing concurrently. So I get to kill two birds with one stone.

Now, I won’t say every writer should write longhand using pen and paper. For most people, it would be very tedious and tiring. So if you prefer to write using your computer, then by all means do that. At the end of the day, the most important thing is getting your content out for your audience to consume and encourage them to come back for more. But if you find that your computer is getting in the way of you doing your work, then maybe it’s time to go old-school.