All My Updates

This page lists all the site updates. These are short posts that describe the events in my life. These posts are frequently added here, but have less content than the blog post or the article pages. I like to post one everyday so that I can go back and check what series of changes for an extended period of time. These site updates also track the progress of various projects. Some of them might contain funny stuff, anything that can entertain the readers of these sites. Hope you enjoy them.


I am working on the CodeProject tutorial on Hierarchical Comments. It is almost completed. I am at the most difficult part of the tutorial -- explaining the algorithm. Once that is done, it will lead to the end of it. I am getting pretty good at this.

For this article, I was just trying to discuss the tech debt that I have left off for so long. It should be a joyous moment. Yet, I wondered, should I incorporate this functionality to this site? Or just leave the existing functionality as it is. I will think about it.

The more urgent issue for this site is adding a filter functionality to the resource section (for the admin functionality only) so that I can display the resource files by type. This is a relatively easy operation to complete. Once the article is done, I will probably work on it.

Writing the tutorial on Hierarchical Comments

Han Sulu
CodeProject Tutorial
CodeProject, Hierarchical Comments, JavaScript, Programming Tutorial, Stapes JS

Today is a very productive day. I started working on the bug found two days ago. I wasn't able to get the issue right away. Somehow the log is not spitting the error. That didn't stop me from fix the issue. Turned out, the problem was with the empty category. After fixing this issue, I did some thorough testing, I found two more issues, They were quick fixes.

All three fixes were deployed into the public site. I tested, everything works. It feels great that these issues were quickly resolved and could be deployed very quickly. This is what I love about this whole project. It was designed in such way that 1) it is fairly easy to use (with some obvious issues); 2) any issues found can be fixed pretty easily. I am going to use this application for a long time.

I also posted the published article last month as an article here. It was pretty easy to do. Copy and paste, plus the images to posted to the articles. All these are fairly easy to manage.

Fixed three issues today

Han Sulu
Site Maintenance
Bug Fix, Debug, Fix Site Application, I like this site

We left MI on 7/7/2020 in the morning. The drive took 11 hours. When we got to PA half way, it started raining. Instead of going to camping, we decided to drive all the way to the new home. The next few days were mostly sleeping.

It was petty sad that I had to leave the old place. It was a good home. I feel really bad leaving it. It is being renovated for sale. Hopefully, it will be sold soon. The electricity and water are all connected to the new place. I need to go get new driver's license and registration of the cars. These are the things I hate about moving. The internet connection took a whole morning. Afterwards, I had to do a activation to get the internet working. Luckily all the wireless routers were connecting successfully with the original configurations.

Before I left MI, I found a bug in the updates section. I will fix it.

Settled in PA

Han Sulu
Moving out of MI
moving, road trip, settle to PA

After the status display component for AngularJS, I picked another technical challenge. The reason that I didn't spent the time to write the design of the status display component is that I am a bit sick of writing technical design. And this next challenge has been there forever. I owe to myself that I have to solve it before I can move on.

So what is this new technical challenge? In the early 2000s, there were a lot of forums popped up. They are also called bulletin board, The messages can be displayed in a upside down tree. Where the root message is the first, underneath it, its children. Underneath every one of its children, more children, and so on. I never figure out how to do it. In fact for this web application, I didn't even add the similar functionality for comments display. I just didn't have time and energy to implement such a complicated operation. And it bothers me. This is 2020, technology advanced way beyond the early 2000s. This should be easy.

And it was. I have solved the issue at this time of writing this site update. I have to add some more finishing touch (much needed clean up). Then I can do another tech design write up. Better check back later for more info on this.

Another Technical Crack - Forum Messages Display

Han Sulu
Unsolved Technical Challenge
Design Challenge, Unsolved Technical Debt

The toilet holder in guest bathroom is broken. So I went to Home Depot to pickup a new one. I was able to find the aisle. But the first one I saw was priced at $30. At first I thought it was the virus scare that pushed the item to this ridiculous price. I stood there and said to myself "So expensive for such a piece of shit." And remembered I had bought one many years ago and it was priced no more than $10.

So I decided to explore some more, by going to the deeper end of the aisle, I saw another one priced at $27. Then another one at about $20. Further in, I saw something about $17, Then at the very end, their were two different ones, One is priced at $5, and another at $10. The one of $10 looks like the one I had bought a long time ago. I bought it.

This is the same experience when I first got to Michigan. I was trying to a plastic water bottle at the grocery store. The ones that was obvious are priced more than $10. Only when I explored the aisle and found one (A big Rubbermaid) priced at $9. The lesson I got is that you can't trust what you see first in these stores. The overpriced ones are always most obvious, giving people the impression that they are the only choice. I should always explore some more to find the one priced at the amount I was expecting. Another lesson is that I should have some knowledge of what reasonable price would be. Sometimes, it is not very obvious.

Buying a Toilet Paper Holder

Han Sulu
Home Improvement
Expensive Items, Home Depot, Home Improvement

This is thrilling. After the spare time of three days, I was able to complete the little reusable component in AngularJS. Here is the spec of this little component:

  • I am using the Alert component of Bootstrap for display the status message.
  • The opSuccess and msgToShow are the attributes that can be passed into this status display directive. When the opSuccess is set to true, the status display will be green, and red if it is false. The msgToShow would be the message to be displayed.
  • Both attributes are bound bi-directions. That means if the parent controller changes their values, it will reflect on the directive, and if the directive changes the value, the parent controller would also update the values.
  • I added a click event handler on the directive, so when user click anywhere on the status display, the msgToShow and opSuccess attributes will be reset to "" and false. This would make the status display disappear.

Anyways, I saw a need of such component, so I set out and made it. As I was writing this, I realized I can update the design a little more, getting rid of the $watch() methods, making it less complex. So I spent 10 more minutes and cleaned it up. This is pretty much done, I will write a little manual for it. The only hope I have is that this little component will not be shelved into a code repository and be forgotten. I might be able to use it later.

As I am designing this, I was thinking, may be my next goal should be a designer, and t design something simpler, not as complex as this site, but more in the forms of reusable components. These can be assembled together into more complicated web applications. It would be something I will enjoy.

AngularJS Reusable Component - Warning Display (2)

Han Sulu
Reusable Component
AngularJS, Directive, Progress Update, Reusable

I am working on a reusable component with AngularJS. It is used for display the error message or warning messages. This idea came to me when I was working on this blog application. On every page, there will be a number of operation which is either success or failure. For these two types of status, we want to display a status message. This should be a reusable component.

This project, although small, gave me some peace of mind. Allowing me to focus on solving a small problem at hand. I have finished half of the design. Now I am writing a simple AngularJS application to test it out. After this, I will write an article to describe how this can be used. Please check back the updates page and see the progress on this little project.

AngularJS Reusable Component - Warning Display

Han Sulu
Resuable Component
AngularJS, Directive, Progress Update, Reusable

I have completed the first blog post. Now, I have felt a little lost. The site is working. I don't have the strength to start another IT project in my spare time. I remember those days, when I have to start my project work at 9PM and work till 11:35PM. Then go to bed. Now after this kind of work, I can't fall into sleep. If I start a new project, there will be not much time spent on this blog site. This blog site would be abandoned. I will use this time wisely,

From now to the end of the year, I am on break. I will be exploring the new version of Java (version 11 to 14), and learn the new features of this language, I will continue working with Spring framework. Specifically with Spring Boot. Also I will be fortifying my knowledge on AngularJS, explore ways of designing better components. These exploits will be documented here. There are a lot of things to write, I think it is going to be fun.

After The First Blog Post, What is Next

Han Sulu
What Next
Ideas on Tutorial, IT Technology, Next Step

I am still writing the very first blog post. Today, I stopped and decided to do some clean up. The first thing I did is update the Spring Boot version from 2.1.1.RELEASE (almost 2 years ago) to 2.3.1.RELEASE (June 2020). I have been trying to do this upgrade for a while. But never got time. Yesterday, I finally decided to do this. And today, I clean up some more. Everything seems to be working.

The reason I need to fix this is that, there were a number of warnings, one of them is illegal access from the class xstreamer. It is one of the ThoughtWorks classes which Maven uses for packaging. I know it was an old jar (Maven WAR Plugin with version 2.2) that was causing the issue. So I upgraded to 3.2.3. Solved the warning issue. Turned out, there is a warning about a deprecated attribute property in one of the RestController I had. Fixed it as well. Now the Maven build for the entire Blog Site application has no warning and no error. A clean pipe. This is what I like!

Minor Build Updates to Blog Application Projects.

Han Sulu
Site Maintenance
Application Build, Compile Warnings, Maven, Spring Boot

It is completed. I have finished the proof reading, and sent the tutorial, screenshots and source code to the codeproject. The overall progress is quite smooth. The design and implementation of the JavaScript application is very quick, 3 days and done. The tutorial took a bit longer, the writing, then the proof read. It took a week.

Next, I will complete the blog post on how this site is designed and implemented. The blog post will be an overview, then more detailed posts will be added to explain certain parts in details. The posts will be problem-solution format. Hope they will be interesting not just to me, but to everyone else.

Stapes JS Tutorial Completed and Submitted to codeproject

Han Sulu
CodeProject Tutorial
CodeProject, JavaScript, Programming Tutorial, Stapes JS

The tutorial is finally completed. I am proof reading it, still have to attach the source code. Once both are done, I can send the tutorial to code project. This is not too bad, just before I move out of MI, I was still able to finish a tutorial.

There is no progress made to the first blog post. I was quite busy with other things. Once the tutorial is done, I will go back to the the blog post.

For the next tutorial, I will repackage the same sample application with Angular JS. It will make the 4th tutorial for this year. I will complete this at the new home, out of MI.

Stapes JS Tutorial Completed

Han Sulu
CodeProject Tutorial
CodeProject, JavaScript, Programming Tutorial, Stapes JS

I am working on the Stapes JS tutorial right now. It is about half way done. As I have mention on the previous update. It should be done within a week. I am making good progress.

I am also writing the first blog post. It is my summary of why I wrote this blog engine three times. It will be a detailed account of what efforts I have put into the project itself. The reasoning behind the decisions I have made. And probably how happy I was that everything worked out as I have expected.

Anyways, I am going back to writing the blog post for a bit more. Then I am heading to bed. It is 11:13 PM as now. Things are going pretty well.

The Stapes JS Tutorial and The First Blog Post

Han Sulu
CodeProject Tutorial
CodeProject, Recent Progress, Reflection, Tutorial

Last night, after posting the last site update, I went back to the Stapes JS sample application, and did some clean up of the code. The first thing I did is replace the select drop down with a drop down menu provided by Bootstrap 3.3.7. The other change I made is to fix a bug. What I want is every time I type a character in the text area, the change will immediately show up in the HTML preview area. It was not working quite right before. And I fixed it.

The sample application is done, in a acceptable state. Now I can start the write-up of the tutorial article. It will take roughly 3 days to a week to complete. Hope it will go as smooth as the sample application.

The Work on Stapes JS Tutorial

Han Sulu
CodeProject Tutorial
CodeProject, JavaScript, Programming Tutorial, Stapes JS

For the past two days, I was working the sample application of the Stapes JS tutorial. It was completed. But the code is pretty ugly. It is adequate to make my point clear. The sample application is a HTML editor. Once I am done with this one. I will rewrite it with AngularJS.

For the AngularJS one, I have planned to make it a reusable component, which can be easily added to any application. This is the kind of small project that I should work on right now. The big project that takes years to complete is too taxing, physically and emotionally.

Anyways, I will clean up the source code for this Stapes JS sample application, then started to write up the tutorial. It should be complete in a week or so.

I Am Working on Stapes JS Tutorial

Han Sulu
CodeProject Tutorial
CodeProject, JavaScript, Programming Tutorial, Stapes JS

This is my very first update for this site. At this moment, the COVID-19 pandemic has been going around for a while. Then there is the civil rights protests just happened a week ago. I have been trying to stay out of these. My focus is mainly on this site. I have created two projects pages. The first is used to track the bugs found so far and fixed. The other page is to track the codeproject.con article submission. The project pages looks very good. All the functionality I have used so far are all working greatly, far exceeding my expectations!

The other work I have done is installing Linux Mint using VMWare Player. I installed it a while back. At that time, nothing worked. This time, everything works. I installed all the software I wanted. And everything works as expected. But despite all these good thing. Linux is still buggy. I guess VMWare player is partially blame. Anyways, I should write a blog post about my experience. Right now, I am working on my article submission. After it is done, I shall get on the blog post on Linux.

My Very First Update

Han Sulu
General Updates
Life News, Project Update, What's New

Page 1 of 1