A Life Climber

不辜负自己,不将就生活。

To Johan

Two days ago, I heard that you passed away.

I feel so sad.

Memory brings me back to 6 years ago, half year after I joined our company, and the first time I stepped onto the land of that North Brabant city. It was also a new team, I still remember Deepak gave us a warm welcome down the elevator of the railway station. Everything was new, from the Dutch lanugage, gorgeous tulip, giant bike size…

We started to work, and that picture came to my mind. You sat together with me in the focus room, and we paired to refactor the codes. We discussed and experimented, talked about design and also those warnings. I am younger and did learn a lot from you, and we were devoted and exhausted, but were happy then. Late, you asked me, “may we call it a day?”.

Those three months deeply etched in my mind.

About 4.5 years ago,  you came to Shanghai, to join the development of software platform together with us, which I’ll bet, you won’t want to do it again 🙂

Not long after you arrived, you got injured.  Delivery boy’s speeding cycling, which we never saw in Eindhoven, should suprised you. You tried to escape more by the road side but strained your leg.

Colleagues took you that night to No.6 hospital and they gave you some cure. But it did not improve. I knew the next day and went to your apartment.

“We have to see the doctor again. “,you agreed, and I took you to Ruijin hospital by taxi. “So many people!” you were a bit shocked at the outpatient,  meanwhile I tried to persuade them we were eligible for emergency.  With a borrowed wheel chair, we got into the plaster room.

Another problem popped up. With plaster you could not wear again the trousers. I ran out, tried to find and buy one looser, but you were so tall so it did take me quite some time to find a fit. Luckily we had it fixed again. That was just like another bug 😉

Then several follow-up checks in coming months.

When I write to here, something emerges in mind. That was at the chair of the hospital, and you showed me photos and videos of your Thailand house. “Nice isn’t it?” You asked, especially pround of your diligent work at your garden.

Oh, that was after you got recovered from leg strain, but this time you got fever and slight pneumonia. We went to hospital again.

You were a bit afraid and tired. “Take this Bayer pill, you will be fine. I will see you tomorrow”.  I said to you.

Lift in the apartment added to that misfortune of your Shanghai stay. The day before you left Shanghai, lift stopped working, and it was the only one reaching your apartment, which was at 28th floor. Thanks goodness it was fixed the next day and you did not have to take your luggage down that stairs…

But despite those, we did make the software platform a reality. And it is now working well as software base for a variety of products, nearly 5 years after its birth.

The next time I met you was half year since you were back, when I went to Eindhoven for the innovation day, in another building of the HTC. I went to your building to have a talk. Your team’s office was moved and I felt happy to see those friends again.

And that is the last time we meet face to face.

Life is full of sudden changes; and that which passes will be dear.

REST IN PEACE. JOHAN.

Your friend, Rafael

Messi’s leave and Taliban’s gain

Leo Messi left Barca after a farce, even he is a GOAT player and has contributed so much to the club in the last 21 years.

Taliban gained Afghanistan yesterday, even the Ghani government’s force is reported to be 300 thousand, U.S trained and armed compared to Taliban’s reported 70 thousand and poor weapons.

Leo Messi loves Barca, and believed Barca would treat him the same and relied on that.

Ghani goverment believed that U.S would help and relied on that too.

No surprise that no happy endings for both. Because the world is often unfair.

You will definitely meet once in a life, someone like Laporta, or Baiden.

What one can really rely on is himself or herself,  his or her reputation and capabilities.

So, with reputation and capabilities, Messi got PSG’s big offer; but without, Ghani escaped like a dog.

As Mao once said, cast away illusions.

Understand level definitions for lighting in ZigBee Cluster Library v7

In ZigBee Cluster Library (ZCL) specifications, there are sometimes confusing points that developers do not quite understand, and I will try in this post to clarify a little bit about those level definitions in ZCL’s most-recent version, v7 (ZigBee document 07-5123 Revision 7).

  First of all, level is something generic. Keep that in mind. It can be light levels, which is often found in lighting systems, but it can also be anything, for example, water level, air pressure level, and etc.

However, as ZigBee is more widely adopted in home automation systems than other systems, where lighting is a key part, level cluster is more often used for connected lighting cases.  That is why starting ZCL v7,  the more general level cluster (cluster id 0x0008, chapter 3.10) derives a “level cluster for lighting” cluster, with the same cluster id 0x0008 (chapter 3.19).

    And I will clarify level definitions for lighting especially.

Continue reading

996.ICU: a trending codeless repo

Recently the github repository, https://github.com/996icu/996.ICU/ gets increasingly popular.

In fact this is a repository not for programming purpose. It just contains a blacklist of those companies that actively violate labor laws or regulations, and continuously enforce their employees to do intensive overtime work. 996 stands for the unwritten rules that work from 9AM to 9PM and 6 days a week. Of course, this is only a simile and many variants exist, for example 10-10-6, 10-10-5, and etc.

As the maintainer says, 996.icu simply means working in 996 way, and finally getting sick in the ICU.

Continue reading

ZigBee Green Power Commissioning

We will discuss ZigBee Green Power commissioning in this post, but first I will do a retrospective.

Retrospective

If you know ZigBee Green Power, or else you have read my previous post , you should have the idea of how a GPD (Green Power Device) differs from traditional ZigBee devices. Also, you should know that ZigBee devices need to act as GPP or GPS to work together with GPDs. Currently, we can implement GPP / GPS by Green Power Infrastructure Devices. Specifically proxy basic, combo basic and commissioning tool are three certifiable devices by to-date specification.

There are three important tables within GPP / GPS. They are: proxy table, sink table and translation table. Proxy table and sink table contribute to GPDF forwarding, while translation table contributes to GPDF execution.

GPDF forwarding image

GPDF forwarding

We have that one question left: how can we make these tables into the GPP / GPS ?

OK, let us talk a bit about ZigBee Green Power commissioning.

Green Power Commissioning Process

One should keep in mind: the commissioning process is designed for facilitating the ultra-low nature of GPDs.

Some GPDs are battery-less based on energy-harvesting technologies, so they can only transmit, and they cannot store network information.

There comes the uni-directional Green Power commissioning.

Some GPDs uses battery, so they can be more advanced in functions. For example, they can both transmit and receive, and they can keep network information.

There comes the bi-directional Green Power commissioning.

Continue reading

ZigBee Green Power Technology

ZigBee Meets ZigBee Green Power

zigbee green power image

ZigBee meets Green Power!

In ZigBee-3.0 specification suites,  ZigBee Alliance promotes the use of  ZigBee Green Power, however not people understands what it is.

However, ZigBee Green Power is in fact not new. Look back to 2012, ZigBee Green Power already emerges as an optional feature of ZigBee Pro. Perhaps due to lack of Green Power devices at that time, not many ZigBee stacks support the optional feature .

ZigBee Green Power is designed with ultra-low operations in mind. Thus it is possible to create ZigBee Green Power devices using batteries or even without batteries. This maintenance-free nature makes ZigBee Green Power attractive in certain application fields.

Inter-operability Problems

Making ZigBee Green Power an optional feature however creates inter-operability problems.

Continue reading

Look at Alibaba’s IoT move

Alibaba’s Ambition in IoT

Finally IoT !  Just a couple of days ago, the Chinese big company Alibaba Group, announced the strategy to join the market of IoT.  They announced their ambition to make it their 5th racetrack among their previous 4 that are e-business, financial, logistics and cloud computing.

Alibaba IoT in 5 years

Alibaba IoT in 5 years

what will they do?

They explained they will do it by following strategy 1 + 2 + 3 + 4, as:

‘1’ platform:  one Ali-Cloud based cloud platform

‘2’ ends: AliOs Things for devices (edge) + edge computing microservices (backend)

‘3’ kinds of partners: developers + chip/module vendors + industry partners

and ‘4’ fields: smart city + smart life + smart manufacturing + smart automobile.

Simple to remember as well as that sum is 10 meaning great.

Continue reading

GitViewer for Better Git History Viewing

As a SCM admin I need to browse the Git repository history. There are some tips for a prettier history view such as this, and Git includes gitk in the distribution as well. However I think both do not present the history clearer enough.

Crc8 wrote a very good tool GitVersionTree. I think it shows the git log more clearly, by placing master branch a more important way. It uses Graphviz to render the version tree.

However sometimes the tool fails due to some syntax errors in the dot file, which is used by Graphviz to generate the final picture. I find it is sometimes due to the git directory name. Besides, I prefer CLI to GUI because it simply integrates with other tools better. So inspired by GitVersionTree, I rewrite in Python and provides the tool in CLI. I call it GitViewer.

Use GitViewer is quite simple. Just type:

python GitViewer.py -o [output filenamea] -d [path to dot executable] -g [path to git executable] -r [path to git repository root]

and GitViewer shall generate a pdf of the version tree for you.

GitViewer is currently v0.1, so the feature is just limited to what GitVersionTree implemented. In v0.2, I plan to add comments to the picture which will make the history more clearer.

GitViewer requires Python, Git, and Graphviz to work properly. Both Windows and Linux shall be supported.

Awesome Plugins for Vimers – 3

Vim plugins continued …

Nerd Commenter

Always we need to add comment, toggle comment in our codes, and there are different comment syntax for different programming languages. With nerdcommenter, forget about the difference, simply achieve these needs with a hotkey, and the right comment style will be applied depending on the file type. It is a very focused plugin that does the one thing very well. I like it. It is also a plugin from Martin Grenfell 🙂

DoxygenToolkit

A good coding practice is using doxygen style to comment functions, modules and files, later using the Doxygen tool to auto generate documentation. With DoxygenToolkit, you can forget about doxgen formats but focusing on the real important part: like function illustraion, parameter explaination, etc.

I often use DoxygenToolkit to comment my functions and modules, nerdcommenter to do general purpose comment, and vim-licenses to generate correct license headers. Altogether they work great.

ctrlp

ctrlp is a very famous and useful plugin. Basically with ctrlp, we can do fuzzy finding by file, mru, buffer, tag, etc. As the plugin name shows, just use Ctrl+p and see!

ag.vim

ag.vim is a vim front end for calling the silver searcher ag. In my post “Useful Development Tools – 3”, I recommend using ag for searching in source codes as ag works smart and fast.

However recently ag.vim indicates in the github that it is deprecated and suggests the use of ack.vim. Well I have not tried the latter but you can git a try. But ag.vim still works now.

« Older posts

© 2025 A Life Climber

Theme by Anders NorenUp ↑

error: Content is protected !!