Hi, welcome to Han-Sulu.com. The web site has been completely renovated. When this site was first launched, I've never found a focus on what I should be writing. As a result, it was soon abandoned. The abandonment was also partially caused by the fact that I was re-designing this site. To re-design this web site from ground up again, I was putting 2-3 hours a day for almost another 18 months. I hardly had the time to think about what I want to write for my blog. Eventually, I stopped updating it. Now, the new site is up, I am determined to make this blog site better than before.
What is/would be available for this blog? At this point, there is not much. The previous version of this blog is a disappointment. There is not much of a focus. Two years ago, I thought without a focus was probably the best idea I had for this blog. Now I realize it isn't. This time, my focus will be something which I can do best. The focus of this site will be technology, software engineering, and solving problem with practical solutions. To prevent losing my focus, I will use a new approach. I will be documenting the projects I am doing. When doing projects, problems will naturally occur. Solving the problems, and document the solutions, this will be the focus of this blog. I have diverse interests, it would be interesting to see what will be covered here.
Aside from the "boring" stuff, I will spent some of the blog posts to show the fun stuff I do. These posts will also be related to problem solving. Other than problem solving, there will be reviews of video games, photos I have taken (photography as amusement), posts on photography (on concepts and techniques I have learned). I know, I am probably going off track here. This time, I will remain focused. This blog site is about solving problems. Anything related to a technical problem, there is a solution, and I like to document it here. So if you the readers saw a post that is somewhat not related to IT technology, you might think I am off the track a bit, I won't go far. If I publish a post here, it will be somewhat related to problem solving, and it will be interesting, hence worthy to be shared here.
If you like to know more about me, please go here. You can find all the information regarding this site. If you need to contact me directly, you can either post comments on the blog posts or articles. Or you can go to this page, and send a private message to me. I like to get feedback on what posts are good, and what not; or ideas and request of future posts. If you like, you can also subscribe to the site mailing list to get regular updates. Thank you for visiting.
I post updates for this site regularly. Here are some of the most recent ones I have posted...
I can tell you, the foam sealant is a really dangerous product. I bought some recently and used one can to try seal the rotten plywood in the attic, that stuff is very sticky, and foamy. And drips due to gravity. And because I have to work with small spaces, I got that stuff all over my sweat shirt. Some got on my pants. And I had a lot on both of my hands. This stuff is almost impossible to wash off. I tried rubbing alcohol, hot water, with soap. Then I tried acetone. None of these worked. Finally, I was able to get a lot of these off during the hot shower. I would think twice using this stuff next time. Hopefully, I have fixed the issue with the attic leaking.
I had some writer's block recently. I couldn't think of a project that I can write about for codeproject. I could write something simple. But I can do much better than that. I should not settle for something less. I will start working on the next tutorial soon. I guess I will experiment with Angular a little and find something interesting to write about. I guess a good start point would be the parent/child controller data exchange.
Personal project is going great, I have completed the back end administration pieces. The last part would be the home page statistics for the administration page. I should finish this then start working on the public facing pages. That would be the plan.
The Writer's Block
I think I am starting to write these little update. Again, there is not much updates. I took a small trip to a place called Long Branch in New Jersey on 4/28. It was a day trip. And I went to the beach for an hour. That was pretty nice. There was some high wind and I think I got a sun burn. My face was itchy for 3 days. On the beach I picked some sea shells, and some white pebbles. For some reason, there is only a few people on that beach. High wind.
While we were gone, the handy men came and removed that trouble-some electric pole and moved the power cable close to the side of the house. And patched the hole with some new roof tiles. They also fixed the leaking of the flat roof and the the chimney. Yesterday 5/1, it rained pretty hard and the leaking wasn't there. I hope it is finally fixed. a lot of money spent on these little repairs. My checking account is again bleeding money. I hope this is it. I personally stopped going to Home Depot. There has to be an end to the home improvement.
The lawn is fine. I might need some more fertilizer for the back yard. I will do that later. The Mint plants were grown. There ware so many branches, the leaves were green and numerous. I have figured out how to care for them. All I had to do is sitting them down at the window for a few hours of sun light, and one cup of water each. They would show they are in distress when I forgot to water them. Then some water would bring them back to the top. I think I am going to cut some of the leaves so that it can grown some more. The ones I germinated from seed are also doing find. Their leaves are like bigger than sesame seeds now. I just keep watering them and bring them to the sun. Hopefully, they can grow faster.
Added - 5/3/2022 The dish washer issue is also fixed. It turned out to be an issue with the power supply. The neutral line was loose and the handyman fixed it. It should now work as expected.
One Day Vacation and Home Improvement
There is again not much update. As usual, I will have plenty to say about not much of updates. For the past two weeks, I was playing Mass Effect Andromeda, I was on the third planet, and just started the raid on the facility. This game has been difficult. There has been a lot of minor bugs, and some major ones I have seen. To fix the major ones I have to shut it off then restart, then the missing piece would become available. I decided to play this game because I started Cyberpunk 2077. Then I thought about this one, which is another equally bad game. But both are not bad to the point of unplayable. I had fun playing Mass Effect Andromeda and will probably finish it. This is a good exercise to get used to 3rd person shooting before more complex games.
For my own project, I am just busy along. I have made great progress, and slowed down a bit for the past week. Last week, I spent all nights playing games. The project work was deferred to during the day. I did all right but the progress is slowed. I managed to finish the post comment management piece. There is still one bug to fix. The comment search function is wrong. Instead of find all comments of a specific post, it is returning all matching comments from all posts. This needs to be fixed. I wrote skeleton code for private messages management, but I need a mock page to enter the private messages. Then I can continue with the private messages management work. This would be easy enough to do. After this, I will be doing the guest management work. That would be easy.
Still Not Much Going On Recently
Again, there is not much going on. The new tires for the BMW is working fine. And tax return is received. It filled a big hole in my accounts, which is nice. Anyways, The latest Home improvement I have done is that I installed a light socket in the basement next to the washer. I had to do twice to get it work. That is why I have picked my subject title "How Many Engineers It Take to Screw a Light Bulb".
The first try, the installation went OK, but when I turn the power on from the electric panel, the light just wouldn't turn on. I know I was rushed to get that installation going, and mostly likely it didn't work. Today, I uninstalled the socket and reversed the wiring. When I turned the power on, and as expected the light bulb is on. Surprise! I guess polarity do matter. Now that I know how to install light bulb socket, I can install some more for the ones that wouldn't work. Still I get the jitters when I do it. I don't like to be zapped.
Another thing I was doing pretty well is raising the mint plants. I have bought two pots of Spear mint and they are doing great. When I first got them, I thought they were bad because they seemed weak and dying. As soon as I got home, I pour some water and they went up like they are OK, and it are thriving ever since. I realized that I had to pour water every day for the plants and have at least 2 hours of sun light. Now the pots seem small for the two pants. I will move them to the garden when the temperature gets little higher.
I also bought the mint seeds, three bags. I put the first bag to use, in two batches. The first batch failed because I buried the seeds in the soil. That turned out to be the wrong way. They should be spread evenly on the top of the soil. Then watering the soil to make it moist, and have the germinating pot exposed to plenty of light and keep the temperature (in door) around 65 to 68F. In three weeks, they will germinating. At first, the plant is extremely small (smaller than a grain of sand). And it took a while to get to the size of sand grain. That is how big they are right now. I will keep you all posted as progress goes. So far, the germinating process is going well.
As for the personal project, I am working on getting the post comments management working. I have made a lot of progress. View post on the public site is working. And adding comments and display comment publicly is working as well. Gaming, I was still playing Call of Duty Infinite Warfare, and doing videos on it. And I also started playing Mass Effect: Andromeda. This game although crappy, is playable, and I decided to enjoy it. I was using both games as a way to improve my FPS skills so that I can do better on Cyberpunk 2077.
Overall, the past 10 days, my life is turning out to be quite exciting!
How Many Engineers It Take to Screw a Light Bulb
I didn't put any update out because there is not much to put out there. I was super focused on my project, this site, the upgrade. I have made a lot of progress recently. Like I said, I was super focused. After FFXV is completed again, focus was easy. I play games once a week, mostly on Satuday night for 2 hours at most. Then I spend most my time on my project. Progress can be made when there is time to work on it. I estimate later this year I can get a brand new version out.
Aside from this, I installed the water filtration system in the house, a softener and a reverse-osmosis system. The cost is about $4000. The BMW had a new set of tires, this, was an adventure itself. I ordered the tires at Costco. Then more than a month, they didn't came. I tried to cancel and it was almost un-cancellable. I had to call. Then it informed me the tires were shipped, and when I scheduled for the install service, just before I go, another email says my order was refunded. I ended up cancel the service appointment, went to another service provider and replaced the tires on the same day for $300 less.
At least, the tax return is filed. The return sum looks awesome. I am certainly looking forward to that. Anyways, I should get back to work with the project. This would be the last rewrite. When finished, I will pick another project to work on.
Not Much Update Recently
I started learning how to write single page application using latest Angular framework. It was much more complicated than it was four years ago. Not only I had to install the latest Angular, I had to install latest Bootstrap just to get some idea how to integrate everything together. And I was immediately in trouble. It took me a while to figure out how to add the bootstrap CSS file to the application, and how to add JQuery and bootstrap JS files into the application.
In the end, I finally figure it out, it has to add to the angular.json file. The next problem is that I had no idea how bootstrap 5 works. Yep. that is the version I added. And I had no idea how to use it. It looks so alien from bootstrap 3.4.x. This really proves my point. When you mix all the new stuff together, the learning curve would be many times more difficult than learning one thing at a time. This presents a challenge: how do I learn several things at the same time, absorb the knowledge, and retain them for future use.
The solution I will be trying is I learn one thing at a time, and well document what I learned, then I should be able to retain these knowledge for future use. I think. The problem is that technology evolve so fast that the notes I have take now might not be relevant a few years down the road. So there has to be some way to update the knowledge so that it can stay relevant. I have not figure that out yet.
Started Learning Angular Again
I got great news. I have successfully backed up the database from the server, and restored on my dev machine. I got great plans for this operation. I will finish the development of the new blog engine. Then I will use these data to restore the database so that new application can use the existing data.
The problem I have face is that even I was able to restore the data, I was unable to save the new data with UTF8 encoding. That was in the morning. Later, when I checked, every table was using default encoding of latin1. I had to change all of them and solved the encoding issue.
There is really not much other updates. I finished FFXV on XBox One. I felt a load off my shoulder. I have leveled to 97, which made the finishing of the game really easy. That game was just ridiculous. After over leveling, the ending is so easy to beat. When I first got this game. It was so intimidating, I had to spent so much time, and I thought it was not worthy. It was actually a fun game to beat. Now it is completed, I will put game aside for a while and work on my project. I got my focus back.
Anyways, these are the update for the past few days, I did a lot of project work, this is the best news I had so far. I think the rewriting is going to paid off.
Update on the Site Backup and Restore
I have done it. Installed a new medicine cabinet. Here is the back story. The original medicine cabinet face mirror was damaged when I attempted to clean it. The surface that I thought was glass was in fact something very fragile. So it suffered extensive damage when I used a sponge for washing the dishes. There is no way of fixing that face mirror without some kind of replacement.
At first, I thought I can replace the door of the medicine cabinet with a new one from the same cabinet, I just purchase one, remove the door, and use it to replace the damage one. The problem is that I didn't save the receipts of the original one. I scouted the Home Depot and Lowes for similar one. Just couldn't find it. I had to play guess game. Finding one with the same size and hope it is it. If the new one does not fit. I will remove the old one and install the new.
I bought a new one on Thursday 3/3. And installed on 3/4. As expected, the new one has a door that did not fit the old one. The positions of the door hinges are different for the two. So much so for the idea of swapping the doors. I had to remove the whole thing and install the new cabinet. I had a lot of luck. For one, I had a old tarp cover that I can use to cover the wood floor. It was big enough to cover the floor for the dirty work. Next, it is the problem of removing the old cabinet. And it was super easy, unscrewed the top fixture and the cabinet can be removed.
Once removed, I was able to position the new one on the old bottom fixture, unfortunately, the problem came with one of the top fixture. I think I hit the stub with the screw and was not able to screw the nail all the way in. That was on the right side. The left side was screwed in OK. I had the two pieces of top fixtures from the old one. I used them to stabilize the new cabinet. I thought I was done. Then two hours later, I decided to fix it proper. I had to unscrew the old nail and use a shorter one. That solved the problem. The cabinet was sticking to the wall as it should.
Now I know how to install a medicine cabinet. Later that day, I finished the game Final Fantasy XV on XBox One. With the main character on level 97 and rest three on level 96, the ending is very easy to complete. That was a pretty good week.
Good News - Installed a Medicine Cabinet
I am almost finished Final Fantasy XV replay on XBox One. It was fun but also disruptive to normal life. I spent 3 nights a week playing it. Almost 9 hours a week. That is too much. I like to cut down to the old schedule, 2 days a week and max 6 hours. Yet I like the new schedule, give me a lot of time to relax. I am unable decide at this point. On the down side, I relax more, on the up side, I do a lot more work during the day, so that I can free up time at night and have fun.
I installed Cyberpunk 2077 on the new PS4. It took a couple hours. 45 minutes to install the base data. Then 4 hours to download and install the 1.51 patch. All that is straight forward and simple. And when I test drove the game for 10 minutes and it was good. The graphics is rough (I got a cheap and crappy TV), but it works as expected. And I thought the game was fun. There were dialogues, and driving vehicles. I think I will do some research first on this game and I am going to drive like crazy and see how much fun this is going to be.
There are like 8 different games lined up in my queue, and I have not install them. This is the scenario that there are so much fun and not enough time. Heh Heh...
Installed Cyberpunk 2077 on New PS4
Finally, I ordered a used PS4 Pro for $350 (a little steeper than before social mess). And it arrived yesterday. When I ordered, I picked one that has no accessories (no power cord, no controller, and no HDMI cables). The shipment came within two days. And all the accessories are available. This is a pleasant surprise.
I have been thinking of buy a PS4 Pro for a while. It started when I saw the terrible graphic rendering of FFXV on PS4 slim. The outcome is not as good as on XBox One S. And I bought a bunch of new games. One of them being Cyberpunk 2077. This particular game is very trouble some. After FFXV on XBox One, I will try install this game and all the updates and see if I can play it. There is a lot of bugs which I hope a beefier system might mitigate some.
I am very thankful to the declutter service. The price is low, the hardware is high quality and delivery is very quick. Very happy with this purchase. Recently, there is a lot of cash outflow and I will not be worrying about that. I am just going to be the happiest kids of this planet!
New PS4 Pro Arrived Yesterday
There is not much going on recently. I finished the CodeProject tutorial and it was posted. While I was doing that I recorded a video showing how the sample application works. It was nice. With this new laptop, recording desktop activity was very easy.
I did have the 2nd minor surgery recently. It was not as bad as the 1st one. I can move the mouth and eat some more solid food. Not like the last time. The 2nd day is still tough, having a headache, and some burning up. But I was fine after 3PM.
Still playing the game FFXV. I am at level 84 and will soon be over level 85. I was thinking of getting to Level 90 and finish the main story line. Still posting videos.
Finally, I was trying to get an Android emulator. I like to install some games on it. The only one I was able to get to work is Android-x86 on my QEMU emulator. Unfortunately it runs rather slow and dies unexpectedly. Not sure what was happening. It is fun trying to figure things out. Since this is not working. I will put it on hold for now.
I am currently working on the memo features for the new website.
Not Much Going On Recently
Just another update, I have started working on a new tutorial for CodeProject. The sample code project is already done. All is left is writing the tutorial article. The sample code took one night. It was something I have done it once, so figuring it out is easy. It still took time to fully implement it. The tutorial should be relatively easy. I hope.
The project work is going pretty well. I was working on the add memo page and I was able to get my reusable text editing component to work. This will allow me to create the real time editing and previewing to work with memo. It was very exciting. What I imagined can be turned into something real and usable is very satisfying. I loved working on this. Once I am done with the tutorial, I will continue on this.
Speaking on gaming, I did have a horrible Friday with FFXV. The sewerage dungeon on the far easy side of map. I spent two hours in it and got lost again. I was going through the dungeon three time trying to find the headlights and the fourth key to unlock the door at the bottom. Had to lose all the footage and redo the whole dungeon on Saturday. The second play through was fine. I had to re-walk the dungeon one more time to get to the bottom. I went into the same dungeon again to finish the hunt on Sunday. That time it went much quicker. And I finished all the fishing quest from that fisherman, only the Liege of the Lake left. For the three days, I have completed a lot of side quests. it started pretty bumpy but eventually became fun. The next one is going to be very difficult. It was the Castlemark dungeon. It will take a long time to complete, and lots of efforts. Once this dungeon is complete, I can go to the island and continue with the story.
Preparing for Another CodeProject Tutorial
I love taking photos, and creating drawings. In this section, you will find all the photos and pictures I have created recently. Please enjoy.
Here are the articles which I have recently made public. Please enjoy.
In this tutorial, I will explain in detail how to using JWT token with a customized secured application and in AngularJS. This is the substitute tutorial to the effort of creating secure web app using 3rd party JWT token.
In this tutorial, I will discuss how to handle secured session timeout in an AngularJS application.
This tutorial will discuss three different ways of communication between parent controller and AngularJS directive. It will discuss the three strategies for communication between parent controller to child directive controllers.
This tutorial is originally published on April 29th 2021. This is another one of those things I didn't quite get it, and I wanted to learn. The online sources are not great, so I had to figure out what better alternative I have. And I was able to figure out. This tutorial will offer readers an alternative way of designing secure applications with DB as session storage.
This tutorial was published this year on April 14th. It is about how to design the MySQL database to hold UTF-8 encoded data, and how to implement the back end REST API and MVC application code to handle UTF-8 encoded string. It also discuss how this can be tested. This tutorial finish my wish of learning how to design a multi-language supported web application.
A tutorial on how to setup an application Spring Security and Spring MVC, and use ThymeLeaf for secured page rendering.
Here are the blog posts which I have posted recently. Please enjoy.
This is my notes on learning Angular application development. There are some very specific details I like to share in this tutorial that will help anyone who just started learning Angular development. This tutorial specific for Linux, Java, and Node.js.
In this tutorial, I will explain in details on how I have setup my video capturing when I play my PS4 console, as well as the work flow which I used to process the captured video for YouTube upload, so that the videos on YouTube is 1080HD. This is a great tutorial for beginners, don't miss it.
In this blog post, I like to discuss the resolutions for two Linux desktop related issues, one for the constant popup for unlocking system key ring when launching Chrome browser. The other is the disappearance of the session log out options.
This is a blog post on how to customize XFCE desktop for Linux Mint 20.2 Uma. I will describe how to customize for transparent panel, customized icon for the start menu, install and configure DockBarX, install and utilize customized icon set and application window themes.
In this quick tutorial, I will discuss the steps I took to set up my environment for application development using QT5 and Eclipse for C/C++. It will be different from other tutorials.
This is a very simple tutorial on how to enable CSRF token as an added security measure for Spring Boot application integrating with AngularJS.
In this short blog post, I will discuss how to hack the Spring Session code so that I can load the configuration values from the configuration file then pass it to the Session Repository creation. This should surpass the limitation of specify constants via annotation.
I accidentally broke the MySQL database server on my server box, via OS upgrade. This tutorial goes in details on how to trouble shoot the issue and how to resolve it. Hope this is useful for any reader who faces the same issue. Thanks for reading.