-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.xml
2142 lines (1752 loc) · 166 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>My learning and diary</title>
<link>https://jackliusr.github.io/</link>
<description>Recent content on My learning and diary</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Sun, 08 Dec 2024 09:10:00 +0800</lastBuildDate><atom:link href="https://jackliusr.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Building Immutable Infrastructure Without Containers</title>
<link>https://jackliusr.github.io/posts/2024/12/building-immutable-infrastructure-without-containers/</link>
<pubDate>Sun, 08 Dec 2024 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/12/building-immutable-infrastructure-without-containers/</guid>
<description>Immutable infrastructure is a concept that has revolutionized the way we think about deploying and maintaining systems. It ensures that once an instance of infrastructure is created, it is never modified. Instead, any changes require the creation of a new instance. This approach enhances consistency, reduces configuration drift, and simplifies rollback processes. While immutable infrastructure is often associated with Infrastructure as Code (IaC) and containers, it’s entirely possible—and sometimes necessary—to implement it with Virtual Machines (VMs) instead of containers.</description>
</item>
<item>
<title>Aspire, Podman in windows</title>
<link>https://jackliusr.github.io/posts/2024/10/aspire-podman-in-windows/</link>
<pubDate>Thu, 24 Oct 2024 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/10/aspire-podman-in-windows/</guid>
<description>REM download https://github.com/containers/podman/releases/download/v5.2.5/podman-remote-release-windows_amd64.zip REM unzip it to C:\DIM\podman-remote-release-windows_amd64 SET PODMAN_HOME=C:\DIM\podman-remote-release-windows_amd64\podman-5.2.5 set PATH=%PATH%;%PODMAN_HOME%\usr\bin podman machine init podman machine start set DOTNET_ASPIRE_CONTAINER_RUNTIME=podman Get podman desktop from https://podman.io/
</description>
</item>
<item>
<title>Speed up postgresql container without initing everytime</title>
<link>https://jackliusr.github.io/posts/2024/10/speed-up-postgresql-container-without-initing-everytime/</link>
<pubDate>Thu, 24 Oct 2024 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/10/speed-up-postgresql-container-without-initing-everytime/</guid>
<description>A newly created postgresql container will do a following steps. They are quite time consuming in integration testing and add some unpredictable factor. If a integration testing will clean up tables and data, volumes can be used to speed up postgresql container.
pg_ctl -D /var/lib/postgresql/data -l logfile start
initdb
stop postgresql and start again
There might be one issue, do I need to maintain the same credential?</description>
</item>
<item>
<title>expert beginner vs Generalizing Specialists vs icicle-shaped vs t-shaped</title>
<link>https://jackliusr.github.io/posts/2024/10/expert-beginner-vs-generalizing-specialists-vs-icicle-shaped-vs-t-shaped/</link>
<pubDate>Tue, 22 Oct 2024 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/10/expert-beginner-vs-generalizing-specialists-vs-icicle-shaped-vs-t-shaped/</guid>
<description>Today I read an article Learning to learn and it mentions the concept &#34;expert beginner&#34; I learnt in past. I am wondering the differences among other concepts (namely generalizing Specialists, icicle-shaped vs t-shaped) in those domain, where I fall into the category, do I do the correct career choices etc.
The differences among them can be quickly generated from chatgpt, I quoted the answers here for quick references.
Aspect Expert Beginner T-Shaped Professional Generalizing Specialist Icicle-Shaped Specialist Skill Depth</description>
</item>
<item>
<title>Change content of a file in block or byte level</title>
<link>https://jackliusr.github.io/posts/2024/10/change-content-of-a-file-in-block-or-byte-level/</link>
<pubDate>Sat, 19 Oct 2024 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/10/change-content-of-a-file-in-block-or-byte-level/</guid>
<description>Since wrote Things learnt from recent preparation of 1T data for testing, I had figured out how to do that on the following weekends. Today I couldn’t get the steps to do so immediately. It is better to note down for my next time usage. The detailed steps is as following
Find the location in the file
Get the block contains contents to modify
Extract the block to a file and modify it</description>
</item>
<item>
<title>Things learnt from recent preparation of 1T data for testing</title>
<link>https://jackliusr.github.io/posts/2024/10/things-learnt-from-recent-preparation-of-1t-data-for-testing/</link>
<pubDate>Wed, 09 Oct 2024 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/10/things-learnt-from-recent-preparation-of-1t-data-for-testing/</guid>
<description>Several things learnt from recent preparation of data for testing.
Question the way when it takes too long to process data sed: remove last n lines In the past I always thought sed is the fastest way to manipulate data. Is it true for all the cases? I generated 1T testing data in ndjson format, however the last lines of those files are corrupted json data. I had to remove the last line.</description>
</item>
<item>
<title>Mermaid flow with subgraph control</title>
<link>https://jackliusr.github.io/posts/2024/08/mermaid-flow-with-subgraph-control/</link>
<pubDate>Tue, 20 Aug 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/08/mermaid-flow-with-subgraph-control/</guid>
<description>One thing constantly bothered me since I used mermaid for flowchart, how to correctly group elements in a group. Only today I have a thought about what will happen if I put node in subgraph without links between them. Finally I got it works to correctly group elements in a group.
Another things, mermaid diagram is natively supported in asciidoctor now. This one is my first example to use it.</description>
</item>
<item>
<title>Clojure for real competitive edge and performance</title>
<link>https://jackliusr.github.io/posts/2024/08/clojure-for-real-competitive-edge-and-performance/</link>
<pubDate>Tue, 06 Aug 2024 16:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/08/clojure-for-real-competitive-edge-and-performance/</guid>
<description>In Beating the average, Paul Graham mentioned lisp is the secret weapon behind his startups, he also elaborated on that point. I believed deeply that after I wrote some small programmings in common lisp before I learnt reddit pilot from lisp to python. Since then I always doubt if the power of lisp is still relevant considering that java, dotnet, python and ruby ecosystems are more mature than that time.</description>
</item>
<item>
<title>Inconsistent templates in visual studio and dotnet cli when dotnet_cli_home set to custom location</title>
<link>https://jackliusr.github.io/posts/2024/08/inconsistent-templates-in-visual-studio-and-dotnet-cli-when-dotnet_cli_home-set-to-custom-location/</link>
<pubDate>Thu, 01 Aug 2024 16:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/08/inconsistent-templates-in-visual-studio-and-dotnet-cli-when-dotnet_cli_home-set-to-custom-location/</guid>
<description>Due to security policy, I had to set dotnet_cli_home to non-default location to run some building steps. Things went quite well until not. All my command line usages and batch scripts work, until I tried to create a project using the custom project template via Visual Studio and noticed that old deleted template was shown in &#34;Create a new project&#34; dialog.
I tried several options and none of them works for my case.</description>
</item>
<item>
<title>How firely sdk handle extra fields (not extension) in Poco and ISourceNode</title>
<link>https://jackliusr.github.io/posts/2024/07/how-firely-sdk-handle-extra-fields-not-extension-in-poco-and-isourcenode/</link>
<pubDate>Tue, 23 Jul 2024 10:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/07/how-firely-sdk-handle-extra-fields-not-extension-in-poco-and-isourcenode/</guid>
<description>Most time, I think json is forward and backward compatible as long as some convention is kept such as adding fields only etc. I always thought so since I studied CQRS and event sourcing. Is it true for FHIR, especially firely sdk? I answered so in a discussion, however I doubted it as I didn’t do it in FHIR. Here I have a short code to demostrate the two case. In the end, the result is yes and no.</description>
</item>
<item>
<title>Setup visual studio 2022 in restricted environment</title>
<link>https://jackliusr.github.io/posts/2024/07/setup-visual-studio-2022-in-restricted-environment/</link>
<pubDate>Tue, 23 Jul 2024 10:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/07/setup-visual-studio-2022-in-restricted-environment/</guid>
<description>uninstall vs and vsinstaller
restart machine
download below two vs cpp redist and install first before install visual studio https://aka.ms/vs/17/release/vc_redist.x86.exe https://aka.ms/vs/17/release/vc_redist.x64.exe
download the latest version of VisualStudioSetup.exe from https://c2rsetup.officeapps.live.com/c2r/downloadVS.aspx?sku=professional&amp;channel=Release&amp;version=VS2022&amp;source=VSLandingPage&amp;cid=2030:a4e034a4e73f4c1cb41366109a953e4d
choose download all and install when installing visual studio after choosing components to install
Clear Visual Studio Component Cache
Close Visual Studio (ensure devenv.exe is not present in the Task Manager)</description>
</item>
<item>
<title>Fold and Reduce in LINQ</title>
<link>https://jackliusr.github.io/posts/2024/07/fold-and-reduce-in-linq/</link>
<pubDate>Thu, 04 Jul 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/07/fold-and-reduce-in-linq/</guid>
<description>In functional programming languages, there are several difference betwee them. I was quite interested in functional programming, even I spent some time to learn haskel and scala. I knew what I can use Select for map, not sure about folder and reduce
FeatureFoldReduceInitial ValueRequires an initial value.Does not require an initial value.Function Signature(A, B) =&gt; A(A, A) =&gt; AApplicabilityCan be used on empty collections.Requires a non-empty collection.VariantsfoldLeft and foldRightreduceLeft and reduceRightStarting PointfoldLeft starts from the left.</description>
</item>
<item>
<title>streamline pack and install package to global-packages</title>
<link>https://jackliusr.github.io/posts/2024/07/streamline-pack-and-install-package-to-global-packages/</link>
<pubDate>Thu, 04 Jul 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/07/streamline-pack-and-install-package-to-global-packages/</guid>
<description>Due to the nature that it is difficult to debug msbuild custom task, I thought if I can use it in a way to streamline my debug workflow. one pack command will complete the following steps. - pack - add the package into local feed source - add the package to global-packages folder
My current workflow is below. It is a manual process. It is realy a pain this way: - pack - nuget add [package-name] -source C:\nexus\.</description>
</item>
<item>
<title>msbuild custom task and runtime reflection</title>
<link>https://jackliusr.github.io/posts/2024/06/msbuild-custom-task-and-runtime-reflection/</link>
<pubDate>Sun, 30 Jun 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/06/msbuild-custom-task-and-runtime-reflection/</guid>
<description>Most information about custom task of msbuild are quite basic, it will get complicated when it is involved reflection. I tried several ways according searching results and answers from chatgpt: reflection, assemblyLoadContext and mono cecil. The most promising one is mono.cecil.
I tried directly loading assemblies and via AssemblyLoadContext. They all failed to load some microsoft assemblies. It looks awkward even I can change my build scripts to copy those assemblies.</description>
</item>
<item>
<title>CICD</title>
<link>https://jackliusr.github.io/posts/2024/06/cicd/</link>
<pubDate>Fri, 21 Jun 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/06/cicd/</guid>
<description>I shared one of CICD I designed and implemented in linkedin. It is good to keep here as well. I researched several options and put my thought at Reflection on implementation of CICD using argo-workflows
Nowadays, argo-workflows is quite mature. I will use argo-workflows for CI part in my future projects. It is definitely worth to invest one’s time on argo-workflow as it is widely used.
</description>
</item>
<item>
<title>.Net sdk version vs runtime version</title>
<link>https://jackliusr.github.io/posts/2024/06/.net-sdk-version-vs-runtime-version/</link>
<pubDate>Tue, 18 Jun 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/06/.net-sdk-version-vs-runtime-version/</guid>
<description>What will you do when you encountered a runtime version is disallowed for specific version say 8.0.6 in building environment? Install the specific runtime version, right? Please hold, I show you my story.
I initially thought I couldn’t run the below commands to install it, it is not. After several attempts, My colleague spotted the difference between runtime version and sdk version. They are different. A runtime version is supported by several sdk versions.</description>
</item>
<item>
<title>setup nuget local packages feed</title>
<link>https://jackliusr.github.io/posts/2024/06/setup-nuget-local-packages-feed/</link>
<pubDate>Sun, 16 Jun 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/06/setup-nuget-local-packages-feed/</guid>
<description>Nuget local feed Prerequisites nuget.exe is installed in C:\packages and in the command search path.
Setup local feed Assume C:\packages\.nuget-local\packages will be the locations to install local packages. and several local dev packages need to install.
Packages below: - &#34;C:\packages\test.4.1.0-beta-24159.1.nupkg&#34; - &#34;C:\packages\testa.4.1.0-beta-24159.1.nupkg&#34; - &#34;C:\packages\testb.S3.4.1.0-beta-24159.1.nupkg&#34;
Run below commands to install above packages into source C:\packages\.nuget-local\packages
REM run command line with C:\packages as working directory nuget.exe add tes.</description>
</item>
<item>
<title>MACH (micro service based, API first, cloud native, headless)</title>
<link>https://jackliusr.github.io/posts/2024/06/mach-micro-service-based-api-first-cloud-native-headless/</link>
<pubDate>Wed, 12 Jun 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/06/mach-micro-service-based-api-first-cloud-native-headless/</guid>
<description>Just an architecture style MACH got me attention. It is short for micro service based, API first, cloud native, headless. There are two of projects I involved one are in this architecture style. One is sitecore based, another one is developed. Kubernetes, nodejs, npm, strapi tsoa are used. Their mapping is as following.
micro services based: multiple services based on expressjs
api first: tsao
cloud native: more advanced than cloud native, kubernate native is used.</description>
</item>
<item>
<title>Recent learnings in dotnet and FHIR</title>
<link>https://jackliusr.github.io/posts/2024/06/recent-learnings-in-dotnet-and-fhir/</link>
<pubDate>Wed, 12 Jun 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/06/recent-learnings-in-dotnet-and-fhir/</guid>
<description>In the past several months, I called it quite intensive. I need to master the knowledge of FHIR, advanced dotnet technologies (attributes, generator, reflection, code emit, expression tree, advanced linq, customized aspnet pipeline, nuget package), code optimization technologies and several aws technologies (DynamoDB, S3, glue, spark) in depth to meet the schedule of a project. You really can’t account on solution architects or support engineers from cloud providers. I don’t get one perfect answers from them so far when I used their services.</description>
</item>
<item>
<title>Accelerated learning in a new era with AGI</title>
<link>https://jackliusr.github.io/posts/2024/05/accelerated-learning-in-a-new-era-with-agi/</link>
<pubDate>Sun, 12 May 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/05/accelerated-learning-in-a-new-era-with-agi/</guid>
<description>It is about three months now. I make reflections on things I have done well and bad. I will refine my learning workflow.
In the past, I used 2nd-brain, daily-logging, flashcard and spaced-repetition systems to help to accelerate my learning under the circumstance that I can’t get fully complete information from different stake holders. I was left with only way to find it out by myself. I read all material I thought will be useful and noted them down in my logseq vault.</description>
</item>
<item>
<title>DynamoDB predictable performance</title>
<link>https://jackliusr.github.io/posts/2024/05/dynamodb-predictable-performance/</link>
<pubDate>Wed, 01 May 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/05/dynamodb-predictable-performance/</guid>
<description>I am passionate about technological details and how things work under the hood. Recently I didn’t get confirmative answers from AWS. I spent a half day to re-read the famous paper. and the new one Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service. I think the following several concepts can be helpful to under its predictable performance.
Consistent Hashing and zero hop DHT Storage node and 10G partition Typical flow of putItem I also put all of the three pictures into a slides and put refereneres at the last slides.</description>
</item>
<item>
<title>SaaS, token bucket, fairness and business practices</title>
<link>https://jackliusr.github.io/posts/2024/04/saas-token-bucket-fairness-and-business-practices/</link>
<pubDate>Mon, 29 Apr 2024 16:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/saas-token-bucket-fairness-and-business-practices/</guid>
<description>I always thought SaaS are based shardig, load balance and multiple-tenant. In the past several days, I re-read Dynamo and DynamoDB papers to figure out some key info to share with my colleages to find a common ground about DynamoDB. One thing is mentioned many times in DynamoDB is token-bucket. Suddenly a thought popped out my mind when I walked back after lunch with my colleague that token-bucket algorithm should be a component of SaaS and multiple-tenant.</description>
</item>
<item>
<title>mindmap in hugo</title>
<link>https://jackliusr.github.io/posts/2024/04/mindmap-in-hugo/</link>
<pubDate>Sat, 20 Apr 2024 10:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/mindmap-in-hugo/</guid>
<description>I used mindmap in my logseq, however it show left to right side, the start node is always at the left side. I prefer to have the main concept shown in the center. Jsmind is the perfect fit after I saw its demos. Here is I create a shortcode in my hugo and try to create a demo mindmap using jsmind.
"\n{\n \"meta\":{\n \"name\":\"jsMind remote\",\n \"author\":\"hizzgdev@163.com\",\n \"version\":\"0.2\"\n },\n \"</description>
</item>
<item>
<title>Run athena and pyspark locally</title>
<link>https://jackliusr.github.io/posts/2024/04/run-athena-and-pyspark-locally/</link>
<pubDate>Mon, 15 Apr 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/run-athena-and-pyspark-locally/</guid>
<description>Best practice or &#34;aws configure&#34; will put ~/.aws/config and ~/.aws/credentials in the 600 mode. however if you follow Developing using a Docker image, you will get several errors e.g. cant&#39; find region, reach endpoints, or no access to resources.
I run docker command as a normal user, docker daemon run as root user. The below scripts will run a docker image which default user is glue_user (10000). the mounted volume ~/.</description>
</item>
<item>
<title>demo, run tikzjax from hugo</title>
<link>https://jackliusr.github.io/posts/2024/04/demo-run-tikzjax-from-hugo/</link>
<pubDate>Wed, 10 Apr 2024 18:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/demo-run-tikzjax-from-hugo/</guid>
<description>I tried to use tikz in my logseq. However it fails to render correctly. Today I have time to try it in my hugo sites. Here is a demo from https://tikzjax.com/
\begin{tikzpicture} \draw (0,0) circle (1in); \end{tikzpicture} ) </description>
</item>
<item>
<title>Tools hope to have for JsonSchema</title>
<link>https://jackliusr.github.io/posts/2024/04/tools-hope-to-have-for-jsonschema/</link>
<pubDate>Wed, 10 Apr 2024 16:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/tools-hope-to-have-for-jsonschema/</guid>
<description>When I was preparing a slides to recommend broad usage of JsonSchema, somethings I thought are good to have for general public usage. Those things troubled me for a while during I authored a JsonSchema.
Versioning Currently there is no standard way how to define a version for a schema. I might use a version property for that. SemVer is good fit for the version content schema. Use if and else for different version.</description>
</item>
<item>
<title>Data modeling of FHIR searchindices in AWS dynamoDB</title>
<link>https://jackliusr.github.io/posts/2024/04/data-modeling-of-fhir-searchindices-in-aws-dynamodb/</link>
<pubDate>Fri, 05 Apr 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/data-modeling-of-fhir-searchindices-in-aws-dynamodb/</guid>
<description>Microsoft FHIR Server serialize searchindices this way in cosmosdb. How to model it in AWS DynamoDB?
{ &#34;id&#34;: &#34;9240cda7-bbb7-4ad4-aa9f-971750a3dc71&#34;, &#34;searchIndices&#34;: [ { &#34;p&#34;: &#34;_id&#34;, &#34;c&#34;: &#34;9240cda7-bbb7-4ad4-aa9f-971750a3dc71&#34; }, { &#34;p&#34;: &#34;_lastUpdated&#34;, &#34;st&#34;: &#34;2018-08-22T23:37:56.1289012+00:00&#34;, &#34;et&#34;: &#34;2018-08-22T23:37:56.1289012+00:00&#34; }, { &#34;p&#34;: &#34;patient&#34;, &#34;r&#34;: &#34;Patient/example&#34; }, { &#34;p&#34;: &#34;performer&#34;, &#34;r&#34;: &#34;Practitioner/example&#34; }, { &#34;p&#34;: &#34;related&#34;, &#34;r_0&#34;: &#34;Observation/example-genetics-1&#34;, &#34;s_1&#34;: &#34;http://hl7.org/fhir/observation-relationshiptypes&#34;, &#34;c_1&#34;: &#34;derived-from&#34; }, { &#34;p&#34;: &#34;related-target&#34;, &#34;r&#34;: &#34;Observation/example-genetics-1&#34; }, { &#34;p&#34;: &#34;related-type&#34;, &#34;s&#34;: &#34;http://hl7.org/fhir/observation-relationshiptypes&#34;, &#34;c&#34;: &#34;derived-from&#34; }, { &#34;p&#34;: &#34;status&#34;, &#34;s&#34;: &#34;http://hl7.</description>
</item>
<item>
<title>2 jsonschema tricks</title>
<link>https://jackliusr.github.io/posts/2024/04/2-jsonschema-tricks/</link>
<pubDate>Thu, 04 Apr 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/2-jsonschema-tricks/</guid>
<description>Background I worked on APIs and OpenAPI Spec (OAS) in past projects, even I used stoplight and NLP for open-source API style guide enforce and linting. I thought I was quite good at jsonschema. I dont’k think so after recent usage of jsonschema for a very aspnet flexible configuration file.
Configurations in dotnet are quite straight forwards if all the configurations following the Options pattern. ConfigurationProcessor is not that case.</description>
</item>
<item>
<title>Using copilot for javascript debugging</title>
<link>https://jackliusr.github.io/posts/2024/04/using-copilot-for-javascript-debugging/</link>
<pubDate>Tue, 02 Apr 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/04/using-copilot-for-javascript-debugging/</guid>
<description>Yesterday, I clicked a button in one web page, no response from that. I thought it must be something wrong. I opened browser console and noticed there is an icon. It turned out be a copilot icon after reading the logs in console.
Nowadays, copilot almost is everywhere, office suite, vscode, visual studio, windows and edge browser. Never thought it is embedded in browse web console.</description>
</item>
<item>
<title>Setup kind cluster using cilium cni in wsl2</title>
<link>https://jackliusr.github.io/posts/2024/03/setup-kind-cluster-using-cilium-cni-in-wsl2/</link>
<pubDate>Thu, 28 Mar 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/03/setup-kind-cluster-using-cilium-cni-in-wsl2/</guid>
<description>Prologue One or two years ago, I tried several times to install kind cluster to using cilium cni. However I didn’t make it. Today I really want to setup one after reading an Kind cluster with Cilium and no kube-proxy and considering that major kubernetes distributions are using cilium cni now. After about 3 hours, I finally got it running successfully. Things don’t go smoothly. Here are my steps to setup it up.</description>
</item>
<item>
<title>How to permanently exclude localhost from HSTS list in Google Chrome</title>
<link>https://jackliusr.github.io/posts/2024/03/how-to-permanently-exclude-localhost-from-hsts-list-in-google-chrome/</link>
<pubDate>Tue, 19 Mar 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/03/how-to-permanently-exclude-localhost-from-hsts-list-in-google-chrome/</guid>
<description>Stackoverflow give several ways to resolve localhost HSTS issue (redirect from http to https). My laptop is managed by my employer and registry can’t be edited. &#34;How can I see which sites have set the HSTS flag in my edge browser?&#34; in chatgpt give me an answers. One step of the answer get my attention. I can change HSTS in my application for development environment.
It is too late now.</description>
</item>
<item>
<title>Install sqlserver in wsl2 and ubuntu 22.04</title>
<link>https://jackliusr.github.io/posts/2024/03/install-sqlserver-in-wsl2-and-ubuntu-22.04/</link>
<pubDate>Wed, 13 Mar 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/03/install-sqlserver-in-wsl2-and-ubuntu-22.04/</guid>
<description>I searched web, first several links in SERP are not the offical one from microsoft. I tried them and failed to install mssql due to errors Error: &#39;deb [arch=amd64 https://download.docker.com/linux/ubuntu \ xenial \ stable&#39; invalid] or Can’t install MS SQL Server on Ubuntu 21.10. At last I follow the instruction from microsoft. I successfully installed mssql server in my wsl+ubuntu22.04 environment.
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.</description>
</item>
<item>
<title>Should I use .netrc for git authentication</title>
<link>https://jackliusr.github.io/posts/2024/03/should-i-use-.netrc-for-git-authentication/</link>
<pubDate>Sat, 09 Mar 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/03/should-i-use-.netrc-for-git-authentication/</guid>
<description>I used .netrc in several projects and I wrote something about that. I thought it is a convenient way for git until recently.
Recently I have a new laptop and want to setup my git credentials. This time, I noticed .netrc might not be secure as other applications that use cURL to make requests to servers defined in your .netrc file will also now be authenticated using these credentials.</description>
</item>
<item>
<title>Extract multiple fields at different levels of nesting json using chatgpt and jmespath</title>
<link>https://jackliusr.github.io/posts/2024/03/extract-multiple-fields-at-different-levels-of-nesting-json-using-chatgpt-and-jmespath/</link>
<pubDate>Sat, 02 Mar 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/03/extract-multiple-fields-at-different-levels-of-nesting-json-using-chatgpt-and-jmespath/</guid>
<description>How do you extract multiple fields at different levels of nesting json resources? jsonpath, jq, jmespath or chatgpt?
In FHIR, bundle resource in json format usually have multiple level of details nested in json. It’s quite different from other use cases.
My first thought is using jsonpath as it is quite similar to FHIRPath. There are several limitations of jsonpath which make it infeasible.
It doesn’t support to the use case, even though JsonPath supports deep scan and Bracket-notated child or children.</description>
</item>
<item>
<title>Custom verbs or operations in REST API</title>
<link>https://jackliusr.github.io/posts/2024/02/custom-verbs-or-operations-in-rest-api/</link>
<pubDate>Tue, 20 Feb 2024 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/02/custom-verbs-or-operations-in-rest-api/</guid>
<description>Standard REST API has limited verbs if using http verbs. However in reality and many business contexts, they are not enough. In the past, many options are proposed. Today I found another option in FHIR. It might be helful to put them here for comparison.
Control data in request In stackoverflow What to do when you need more verbs in REST, cheeso gave the answer below. It is like the way json-rpc, not well-specified version.</description>
</item>
<item>
<title>Extract multiple field and values from a json file fetched once in powerquery</title>
<link>https://jackliusr.github.io/posts/2024/02/extract-multiple-field-and-values-from-a-json-file-fetched-once-in-powerquery/</link>
<pubDate>Wed, 14 Feb 2024 23:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/02/extract-multiple-field-and-values-from-a-json-file-fetched-once-in-powerquery/</guid>
<description>I learnt to extract npm package inform from https://registry.npmjs.org/ on 2023-08-31. Today I have more packages. The original query need to be optimized for better performance.
In the old post, one can quickly spot that the package information is fetched twice. It is the place to optimize today. I will put selected fields into a column, and extract values from the column later. This way, It can spend less time.</description>
</item>
<item>
<title>mount configmap as volume with ini files</title>
<link>https://jackliusr.github.io/posts/2024/02/mount-configmap-as-volume-with-ini-files/</link>
<pubDate>Mon, 05 Feb 2024 20:51:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/02/mount-configmap-as-volume-with-ini-files/</guid>
<description>Today I spent about 1 hours in the task Deploy Lamp Stack on Kubernetes Cluster - Task. This task deepen my understanding of ini file handling and volume mounting with subpath. I think there are 2 tricky parts make the task interesting.
First, the similarity between --from-literal=variables_order=EGPCS and variables_order = &#34;EGPCS&#34; in php.ini make one try to create a configmap at first. However it is not the case. the actual volumemount will mount each key as a file</description>
</item>
<item>
<title>My journey to CKA and CKS</title>
<link>https://jackliusr.github.io/posts/2024/01/my-journey-to-cka-and-cks/</link>
<pubDate>Sun, 28 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/my-journey-to-cka-and-cks/</guid>
<description>Today I got certified as Certified Kubernetes Security Specialist (CKS). It marks a milestone in my mastery of kubernetes after a long journey. It is a good time to reflect on lessons what I learnt.
My experiences with kubernetes from 2018. I have a habit of comparing other optiosn before making my decisions. Before 2018, I used vagrant and other configuration management tools (puppet, chef, ansible) to setup my lab environments.</description>
</item>
<item>
<title>Issues and corresponding solutions of dotnet razor</title>
<link>https://jackliusr.github.io/posts/2024/01/issues-and-corresponding-solutions-of-dotnet-razor/</link>
<pubDate>Thu, 25 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/issues-and-corresponding-solutions-of-dotnet-razor/</guid>
<description>Seperate view dll issues Put views (cshtml) into the main web project
&#39;RazorTargetAssemblyInfo.cs&#39; could not be found GenerateAssemblyVersionAttribute is set to true : af file MyProject.RazorTargetAssemblyInfo.cs is generated
&lt;Project Sdk=&#34;Microsoft.NET.Sdk.Razor&#34;&gt; &lt;PropertyGroup&gt; &lt;TargetFramework&gt;netcoreapp3.1&lt;/TargetFramework&gt; &lt;GenerateAssemblyVersionAttribute&gt;true&lt;/GenerateAssemblyVersionAttribute&gt; &lt;/PropertyGroup&gt; https://github.com/dotnet/aspnetcore/issues/37795#issue-1034241118
The namespace &#39;Razor&#39; already contains a definition for &#39;Template&#39; https://stackoverflow.com/a/58140724/1101691
Duplicate &#39;Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute&#39; attribute How to decompile/extract(cshtml--(razor view)) from dll https://stackoverflow.com/a/69951824/1101691
</description>
</item>
<item>
<title>Restore a project collections of azure devops to another instance</title>
<link>https://jackliusr.github.io/posts/2024/01/restore-a-project-collections-of-azure-devops-to-another-instance/</link>
<pubDate>Thu, 25 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/restore-a-project-collections-of-azure-devops-to-another-instance/</guid>
<description>I spent almost a whole afternoon today to restore a project collections . It doesn’t go well. Azure devops server might supports SQL Server express version. and I choose the wrong way to do that. After several trial, I figure out the way to restore a project collections of azure devops to another instance. The steps is as following.
install sql server (not sure if sql server express is compatible)</description>
</item>
<item>
<title>decompling dotnet assemblies</title>
<link>https://jackliusr.github.io/posts/2024/01/decompling-dotnet-assemblies/</link>
<pubDate>Mon, 22 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/decompling-dotnet-assemblies/</guid>
<description>I used dotpeek for a while to decompile dotnet assembly. Only yesterday I finally found a way to export project from dotnet assembly. The picture below is the menu to do that in dotpeek. However the version I used doesn’t perfectly decompile lambda expression. The decompiled code of lambda expressions are very hard to understand.
Ilspy is one of decompiler that can decompile lambda in a understandble way.</description>
</item>
<item>
<title>CKS/CKA tips</title>
<link>https://jackliusr.github.io/posts/2024/01/cks/cka-tips/</link>
<pubDate>Mon, 15 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/cks/cka-tips/</guid>
<description>The fastest way to get nodes Many times, I run &#34;kubectl get nodes&#34; to get nodes I need to connect to make changes. In the question description section of tasks, master nodes and worker nodes are given. I think the fastest way to get nodes and I wasted some time on getting that info from commands.
Get events Now kubectl has events command. The events command has intuitive options and less keystokes.</description>
</item>
<item>
<title>Export svg from plantuml plugins of vscode and preview svg</title>
<link>https://jackliusr.github.io/posts/2024/01/export-svg-from-plantuml-plugins-of-vscode-and-preview-svg/</link>
<pubDate>Mon, 15 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/export-svg-from-plantuml-plugins-of-vscode-and-preview-svg/</guid>
<description>Clicking the copy button of plantuml plugins of vscode, one can get png from plantuml files. however png files look blurry when even slightly resized. Is there any better way to avoid that ?
SVG is a good option. Plantuml provides the option to export as svg. It might be troublesome to get a svg file by several steps using it. It is also slow. Is there any other better options?</description>
</item>
<item>
<title>Export resources and reconstruct resources in azure</title>
<link>https://jackliusr.github.io/posts/2024/01/export-resources-and-reconstruct-resources-in-azure/</link>
<pubDate>Fri, 05 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/export-resources-and-reconstruct-resources-in-azure/</guid>
<description>My credit of Visual Studio Professional Subscription azure is $50. In the past two days, I activated my subscription. I didn’t go IaC way to setup my POC environment as I did’t have enough time to do that. After I setup more services, the 10 credit is used. It can be quickly used up if resources are kept running. I know there is a way to import existing resources as I used terraform in the past.</description>
</item>
<item>
<title>Run anki in wsl2+ubuntu 22.04 </title>
<link>https://jackliusr.github.io/posts/2024/01/run-anki-in-wsl2-ubuntu-22.04/</link>
<pubDate>Fri, 05 Jan 2024 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2024/01/run-anki-in-wsl2-ubuntu-22.04/</guid>
<description>I daily use anki to review things. However I have issues to run it in wsl2+ubuntu 22.04 environment. The only solution for me is below.
The workable version is 2.1.66 Qt5 with the following environment variable
export QTWEBENGINE_CHROMIUM_FLAGS=&#34;--disable-seccomp-filter-sandbox&#34; </description>
</item>
<item>
<title>Install selinux and disable it</title>
<link>https://jackliusr.github.io/posts/2023/12/install-selinux-and-disable-it/</link>
<pubDate>Fri, 22 Dec 2023 19:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/12/install-selinux-and-disable-it/</guid>
<description>After thrice attempts, I finally successfully completed the task Selinux Installation at https://engineer.kodekloud.com/practice. Since it is not straightforward, I posted here.
&gt; sudo yum install -y selinux* &gt; # SELINUX=disabled &gt; # change SELINUX in /etc/selinux/config &gt; cat /etc/selinux/config | grep SELINUX # SELINUX= can take one of these three values: SELINUX=disabled # SELINUXTYPE= can take one of three values: SELINUXTYPE=targeted </description>
</item>
<item>
<title>Ways to improve performance within budget constraints</title>
<link>https://jackliusr.github.io/posts/2023/11/ways-to-improve-performance-within-budget-constraints/</link>
<pubDate>Wed, 29 Nov 2023 19:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/ways-to-improve-performance-within-budget-constraints/</guid>
<description>Say in a situtation where budget is fixed, what will you do to improve system performance?
I came out several solutions to this at first, later I came out with more thoughts. I list them here for later reference.
create selective indexes
partition tables
materialized view
asynchrous processing: put non real-time operations as a job queue, spread jobs to non business hours, non peak loading time etc.</description>
</item>
<item>
<title>error handling in api idempotency: timeout and retry </title>
<link>https://jackliusr.github.io/posts/2023/11/error-handling-in-api-idempotency-timeout-and-retry/</link>
<pubDate>Thu, 23 Nov 2023 19:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/error-handling-in-api-idempotency-timeout-and-retry/</guid>
<description>In stripe doc, Stripe explain how it works as following quoted contet. Other places only mentions that the processes will be only once.
Stripe&#39;s idempotency works by saving the resulting status code and body of the first request made for any given idempotency key, regardless of whether it succeeded or failed. Subsequent requests with the same key return the same result, including 500 errors. Then there is an interesting question how to handle timeout and retry cases?</description>
</item>
<item>
<title>API idempotency</title>
<link>https://jackliusr.github.io/posts/2023/11/api-idempotency/</link>
<pubDate>Wed, 22 Nov 2023 19:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/api-idempotency/</guid>
<description>I leant API idempotency many years ago when I worked in Asia Fusion Technologies. At that time, I was involved in integration with payment systems and games from different vendor. That gave me a chance to read a lot of API documents and evalute them. During that time, one interesting characteristic of API got my attention. It is API idempotency. That time, there is no much information of idempotency how to implement etc.</description>
</item>
<item>
<title>My tilt asciinema cast</title>
<link>https://jackliusr.github.io/posts/2023/11/my-tilt-asciinema-cast/</link>
<pubDate>Wed, 22 Nov 2023 09:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/my-tilt-asciinema-cast/</guid>
<description>Today I read agones site and noticed it play asciinema cast in its home page. I wondered if I can put my asciinema cast into my blog. Here is my one.
AsciinemaPlayer.create('/casts/497308.cast', document.getElementById('497308'), { }); The cast is about how to use titl for local micro-service development based on kubernetes.
</description>
</item>
<item>
<title>Kubernetes while redirection into a file </title>
<link>https://jackliusr.github.io/posts/2023/11/kubernetes-while-redirection-into-a-file/</link>
<pubDate>Mon, 20 Nov 2023 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/kubernetes-while-redirection-into-a-file/</guid>
<description>My first attemp to resolve &#34;Kubernetes Time Check Pod&#34; in https://engineer.kodekloud.com is not successful. The exercise doesn’t allow to open an editor to edit a yaml file. I had to resort to cat. I attempted several times to resolve it on my local cluster, still no luck even I tried different combination such as command, args,string in string, avoiding expansion. This one from stackoverfow gave me a clue how to resolve my issue.</description>
</item>
<item>
<title>Faster way to restart static pods after configuraiton changes</title>
<link>https://jackliusr.github.io/posts/2023/11/faster-way-to-restart-static-pods-after-configuraiton-changes/</link>
<pubDate>Mon, 20 Nov 2023 12:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/faster-way-to-restart-static-pods-after-configuraiton-changes/</guid>
<description>In the past several days, I practiced several exercises for my coming CKS exam. I noticed that it takes a while to get static pods restart after configuraiton changes. I was curious if there is any faster way to make that happen. I think the following ways definitely will be faster than waiting 3 minutes after I used them for a while. The observable time is shorter than 3 minutes</description>
</item>
<item>
<title>Convert statistics information columns to rows in sql</title>
<link>https://jackliusr.github.io/posts/2023/11/convert-statistics-information-columns-to-rows-in-sql/</link>
<pubDate>Wed, 08 Nov 2023 08:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/convert-statistics-information-columns-to-rows-in-sql/</guid>
<description>I encountered an issue how to get detailed information based on statistics information such as minimum and maximum values in a dataset. The traditional way might be use case expression,coalese functions etc to archive the goals, However I felt it is quite clumsy.
How do it in a neat way? In SQL standard, there is a way using unpivot to transform columns to rows. It is a good fit for this situation to get a neat SQL statement to resolve the issue.</description>
</item>
<item>
<title>Resolve the error that The Pod xxx is invalid: spec.containers[0].volumeMounts[1].name: Not found</title>
<link>https://jackliusr.github.io/posts/2023/11/resolve-the-error-that-the-pod-xxx-is-invalid-spec.containers0.volumemounts1.name-not-found/</link>
<pubDate>Sun, 05 Nov 2023 14:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/11/resolve-the-error-that-the-pod-xxx-is-invalid-spec.containers0.volumemounts1.name-not-found/</guid>
<description>I encountered the issue yesterday during my exercise in killer CKA similator. However I made the same mistakes again. I think it worth to write it down to avoid I make the same mistake again.
In my day to day works, I usually add volumes before containers in the spec section of pods. In exams, sometimes I need to add extra volumes into a existing pod extracted from a running pod, and I still add volumes in the old way.</description>
</item>
<item>
<title>Beyond High Availability: The Importance of FMEA in Ensuring Uninterrupted Operations</title>
<link>https://jackliusr.github.io/posts/2023/10/beyond-high-availability-the-importance-of-fmea-in-ensuring-uninterrupted-operations/</link>
<pubDate>Mon, 23 Oct 2023 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/10/beyond-high-availability-the-importance-of-fmea-in-ensuring-uninterrupted-operations/</guid>
<description>Beyond High Availability: The Importance of FMEA in Ensuring Uninterrupted Operations
Introduction
In an increasingly interconnected and data-driven world, high availability is a critical component for any system or infrastructure. High availability ensures that a system can continue to operate and deliver its services, even in the face of hardware failures, software glitches, or other unforeseen disruptions. However, high availability alone is not enough to guarantee uninterrupted operations. To achieve true resilience, it’s essential to complement high availability with a proactive approach to risk assessment and mitigation.</description>
</item>
<item>
<title>Skip first line before running xargs</title>
<link>https://jackliusr.github.io/posts/2023/10/skip-first-line-before-running-xargs/</link>
<pubDate>Fri, 06 Oct 2023 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/10/skip-first-line-before-running-xargs/</guid>
<description>Do you know how to skip first line before data pipe into xargs?
Today I need to export custom resources and want to avoid error messages because the column names line in the output of kubectl. I knew there is a command line option (--no-headers) of kubectl and managed to get the option, but I don’t want to spend time to search the option in future. Is there any way to skip first line before data pipe into xargs?</description>
</item>
<item>
<title>Change appsettings.json without restart in app service</title>
<link>https://jackliusr.github.io/posts/2023/10/change-appsettings.json-without-restart-in-app-service/</link>
<pubDate>Thu, 05 Oct 2023 20:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/10/change-appsettings.json-without-restart-in-app-service/</guid>
<description>Nowadays, zero downtime is normal, you can’t believe that in azure app service changes in &#34;app settings&#34;, App Service triggers an app restart. The alternative ways to do avoid that is to use sentinel key with App Configuration. however App Configuration will cost a little. Do we really need to use App Configuration to achieve that ?
The naive and obvious way is that changing appsettings.json files via entering the app services using kudo console.</description>
</item>
<item>
<title>Get information from internet in excel, custom function vs powerquery</title>
<link>https://jackliusr.github.io/posts/2023/08/get-information-from-internet-in-excel-custom-function-vs-powerquery/</link>
<pubDate>Thu, 31 Aug 2023 00:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/08/get-information-from-internet-in-excel-custom-function-vs-powerquery/</guid>
<description>Last week I worked on filling info package information to a workbooks. I used VBA macro before and thought of it again to save some of my time.
Things is changing very fast, the new javascript based custom fuction is the mainstream. The initial one I followed the tutorial, however I didn’t find any way to add it into &#34;My Addin&#34; as described in microsoft doc site. I don’t have administrator rights on my laptop.</description>
</item>
<item>
<title>Generate a customized rule of spectral using chatgpt</title>
<link>https://jackliusr.github.io/posts/2023/08/generate-a-customized-rule-of-spectral-using-chatgpt/</link>
<pubDate>Thu, 17 Aug 2023 00:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/08/generate-a-customized-rule-of-spectral-using-chatgpt/</guid>
<description>Background I didn’t find a rule implementation of spectral at stoplightio and github to lint the rule that resources should be nouns in REST API. stoplight mentions that Use Nouns for Resource Names, however there is no another article about that. I was bothered by that for a while to the point I want to give it a try to implement my rule for that.
There are several existing implementations about this rule.</description>
</item>
<item>
<title>Scaffold Identity into an MVC project without existing authorization</title>
<link>https://jackliusr.github.io/posts/2023/07/scaffold-identity-into-an-mvc-project-without-existing-authorization/</link>
<pubDate>Sun, 30 Jul 2023 20:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/07/scaffold-identity-into-an-mvc-project-without-existing-authorization/</guid>
<description>Today I tried to integrate identity into mvc projects. The main doc about this is at https://learn.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-7.0&amp;tabs=netcore-cli#scaffold-identity-into-an-mvc-project-without-existing-authorization
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore dotnet add package Microsoft.AspNetCore.Identity.UI dotnet add package Microsoft.EntityFrameworkCore.Tools # add second dbcontext for identity and authorinization, use database sqlite dotnet aspnet-codegenerator identity -dc MyApplication.Data.ApplicationDbContext \ --files &#34;Account.Register;Account.Login&#34; --databaseProvider sqlite dotnet ef migrations add CreateIdentitySchema \ --context MyApplication.Data.ApplicationDbContext dotnet ef database update \ --context MyApplication.</description>
</item>
<item>
<title>Kubernetes beyond 5k nodes etcd-sharding</title>
<link>https://jackliusr.github.io/posts/2023/07/kubernetes-beyond-5k-nodes-etcd-sharding/</link>
<pubDate>Sun, 23 Jul 2023 00:10:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/07/kubernetes-beyond-5k-nodes-etcd-sharding/</guid>
<description>Background I was once asked how to run big scaled kubernetes clusters regarding etcd size limitation. For example how to handle 8G limitations. I was not satisfied with my answers such as increasing memory, compaction &amp; defragmentation as I knew there were several big scale clusters in several companies and 8GB might be a hard limit. However I didn’t have any clues how they make that happened.
Since then, I kept tabs on etcd by reading etcd community meeting (Public).</description>
</item>
<item>
<title>Exploring Dapr-Introduction, Experiences, and Live Demo</title>
<link>https://jackliusr.github.io/posts/2023/07/exploring-dapr-introduction-experiences-and-live-demo/</link>
<pubDate>Thu, 20 Jul 2023 20:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/07/exploring-dapr-introduction-experiences-and-live-demo/</guid>
<description>I was very excited to be invited to give a talk about dapr. Below is my talk. My demo in the session is not successful as things in kubernetes and dapr field are changing very fast. My lab environment didn’t work as expected. Finially I make it work today, I share it here below.
Here is my talk at 18th July from time 2235 in below video.
Prerequisites kubectl, kind, docker, dapr, git, vscode in WSL</description>
</item>
<item>
<title>Charge Back business process</title>
<link>https://jackliusr.github.io/posts/2023/06/charge-back-business-process/</link>
<pubDate>Mon, 26 Jun 2023 19:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/06/charge-back-business-process/</guid>
<description>A typical steps involved in the issuer response process for a card authorization, a simplified description is as following.
Receive Authorization Request: The card issuer system receives the authorization request from the merchant or payment processor.
Card Validation: The issuer system validates the card details provided in the request, including the card number, expiration date, and CVV/CVC.
Account Verification: The issuer system verifies the cardholder’s account details, such as account status, available funds, and credit limit (if applicable).</description>
</item>
<item>
<title>Charge Back business process</title>
<link>https://jackliusr.github.io/notes/finance/charge-back/</link>
<pubDate>Mon, 26 Jun 2023 09:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/finance/charge-back/</guid>
<description>charge backSend Authorization RequestMerchant HandlingReceive Authorization RequestCard ValidationAccount VerificationFraud DetectionDecision MakingGenerate Authorization ResponseSend Authorization Responsemerchant/payment processorcard issuer system </description>
</item>
<item>
<title>Powerpoint vs UML</title>
<link>https://jackliusr.github.io/posts/2023/06/powerpoint-vs-uml/</link>
<pubDate>Thu, 08 Jun 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/06/powerpoint-vs-uml/</guid>
<description>I think I am a big fan of textual UML after I learnt it from thoughtworks techradar. I doubted it after my recent experience.
In the past 2 months I spent long periods of time to think of how to make my Powerpoint slides pass my boss Lim Chee Kiam&#39;s standard. I thought deeply about that. One moment, I asked myself why Grady Booch, Ivar Jacobson, and James Rumbaugh didn’t come out a diagram which cater to dynamic(behaviour) and static (structure) diagrams, then I realized it will be a mess if those two things are put toghere.</description>
</item>
<item>
<title>My choice of personal knowledge management (PKM): logseq</title>
<link>https://jackliusr.github.io/posts/2023/05/my-choice-of-personal-knowledge-management-pkm-logseq/</link>
<pubDate>Tue, 23 May 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/05/my-choice-of-personal-knowledge-management-pkm-logseq/</guid>
<description>I chose logseq as my PKM I was overloaded with information in the past several weeks. I sought many ways to overcome it. One choice I made is using logseq as PKM.
why? There are several open source or freeware verion of PKM. Why did I choose logseq?
logseq is clojure based. I am a big fan of lisp-liked languages. I studied and did some coding using racket, common-lisp, elisp and clojure after I read Paul Graham’s essays about lisp.</description>
</item>
<item>
<title>Setup docker in wsl2</title>
<link>https://jackliusr.github.io/posts/2023/05/setup-docker-in-wsl2/</link>
<pubDate>Tue, 23 May 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/05/setup-docker-in-wsl2/</guid>
<description>Installation I installed Ubuntu 22.04 on my laptop following the scripts here.
sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ &#34;deb [arch=&#34;$(dpkg --print-architecture)&#34; signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ &#34;$(. /etc/os-release &amp;&amp; echo &#34;$VERSION_CODENAME&#34;)&#34; stable&#34; | \ sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin service docker start Troubleshootig It is little different from my previous installation.</description>
</item>
<item>
<title>Hash vs UUID to replace NRIC/L4C</title>
<link>https://jackliusr.github.io/posts/2023/05/hash-vs-uuid-to-replace-nric/l4c/</link>
<pubDate>Fri, 05 May 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/05/hash-vs-uuid-to-replace-nric/l4c/</guid>
<description>Item
Hash/encryption
UUID
Order preservation
possible (linear hash)
possible ( customized UUID algorithm)
length
shorter or longer
fixed
ubiquitous
anyone or machines can be used to hash
depends
performance (computing)
?
?
performance (search)
fast
slow
References:</description>
</item>
<item>
<title>Keep the search result pages in search engines up to date</title>
<link>https://jackliusr.github.io/posts/2023/05/keep-the-search-result-pages-in-search-engines-up-to-date/</link>
<pubDate>Fri, 05 May 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/05/keep-the-search-result-pages-in-search-engines-up-to-date/</guid>
<description>Last week I was assigned a task to keep search result pages of a site of my company up to date. After researching, trial and errors, I found out the following ways to keep the search result pages in search engines up to date.
Remove outdated content from search result of google and Bing.
temporary: block URLs from webmaster tools
permanent:
get sitemaps.</description>
</item>
<item>
<title>linux utils equivalent in powershell</title>
<link>https://jackliusr.github.io/posts/2023/04/linux-utils-equivalent-in-powershell/</link>
<pubDate>Fri, 28 Apr 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/04/linux-utils-equivalent-in-powershell/</guid>
<description>I never thought I will learn to use powershell seriously. Now I joined NTUC, there are many restrictions. Today I started to use linux utils equivalent in powershell.
dig: Resolve-DnsName
telnet: Test-NetConnection
host: Get-Host
touch: New-Item
cat: Get-Content
tail: Get-Content
grep: Where-Object or Select-String
man: Get-Help
References https://mathieubuisson.github.io/powershell-linux-bash/#pwd- -</description>
</item>
<item>
<title>filter data conditionally using power-query</title>
<link>https://jackliusr.github.io/posts/2023/04/filter-data-conditionally-using-power-query/</link>
<pubDate>Tue, 25 Apr 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/04/filter-data-conditionally-using-power-query/</guid>
<description>2 days ago, I didn’t figure out how to filter out data using power-query. I used a workaround solution to achive the same goal. Yesteray I occasionally found that I can filter out data directly without using my workaround solutions.
Table.SelectRows
Table.SelectRows( Table.FromRecords({ [CustomerID = 1, Name = &#34;Bob&#34;, Phone = &#34;123-4567&#34;], [CustomerID = 2, Name = &#34;Jim&#34;, Phone = &#34;987-6543&#34;], [CustomerID = 3, Name = &#34;Paul&#34;, Phone = &#34;543-7890&#34;], [CustomerID = 4, Name = &#34;Ringo&#34;, Phone = &#34;232-1550&#34;] }), each ( [CustomerID] &gt; 2 and Text.</description>
</item>
<item>
<title>Subdomain or path for dev/stage/uat environments</title>
<link>https://jackliusr.github.io/posts/2023/04/subdomain-or-path-for-dev/stage/uat-environments/</link>
<pubDate>Thu, 13 Apr 2023 20:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/04/subdomain-or-path-for-dev/stage/uat-environments/</guid>
<description>In my previous two companies, everytime I used the subdomain way without thinking much about this. Recently I wondered the rational behind this decisions. I had the clear answers two days ago. Today I have the time to put it into this writing.
Factors
subdomain(dev.example.com)
subdomain reasons
path (example.com/dev/)
path reasons
server side performance
9
dns records point to differnent IP.</description>
</item>
<item>
<title>Leader election in Kubernetes control plane</title>
<link>https://jackliusr.github.io/posts/2023/03/leader-election-in-kubernetes-control-plane/</link>
<pubDate>Fri, 10 Mar 2023 09:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/03/leader-election-in-kubernetes-control-plane/</guid>
<description>Leader election in Kubernetes control plane - #HeptioProTip give a way how to find out leaders of Kubernetes control plane components kube-scheduler and kube-controller-manager. However it was based on a old version of kubernetes, and the mechanism is changed in later versions. Today I was asked how to find the leaders. Here is the new way to find.
$ kubectl -n kube-system get lease NAME HOLDER AGE kube-apiserver-c4vwjftbvpc5os2vvzle4qg27a kube-apiserver-c4vwjftbvpc5os2vvzle4qg27a_b187371d-e48c-4216-8228-707a0ecf6100 2m57s kube-apiserver-dz2dqprdpsgnm756t5rnov7yka kube-apiserver-dz2dqprdpsgnm756t5rnov7yka_0b531f66-0c31-453c-9277-a6c1aa81da94 86s kube-apiserver-fyloo45sdenffw2ugwaz3likua kube-apiserver-fyloo45sdenffw2ugwaz3likua_3e322f9a-9724-4e3a-9fc6-a512e9424164 2m11s kube-controller-manager kind-control-plane_bec39b96-87c4-4bce-8775-2eeb4eb4c1e8 2m53s kube-scheduler kind-control-plane_db6f36d8-ceaa-40eb-b821-75f8ae829f22 2m53s $ kubectl -n kube-system get pods -l component=kube-controller-manager,tier=control-plane \ -o custom-columns=NAME:.</description>
</item>
<item>
<title>Istio Canary Deployments using flagger</title>
<link>https://jackliusr.github.io/posts/2023/02/istio-canary-deployments-using-flagger/</link>
<pubDate>Wed, 22 Feb 2023 09:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/02/istio-canary-deployments-using-flagger/</guid>
<description>Progressive delivery: Istio Canary Deployments using flagger.
Steps environment:
kindest/node:v1.25.3
Istio 1.17.0
helm # need to install metrics-server, HPA depends on metrics-server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml # command: # - /metrics-server # - --kubelet-insecure-tls istioctl manifest install --set profile=default kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.17/samples/addons/prometheus.yaml helm repo add flagger https://flagger.app kubectl apply -f https://raw.githubusercontent.com/fluxcd/flagger/main/artifacts/flagger/crd.yaml helm upgrade -i flagger flagger/flagger \ --namespace=istio-system \ --set crd.</description>
</item>
<item>
<title>Learning experiences among datadog, dynatrace, newrelic</title>
<link>https://jackliusr.github.io/posts/2023/02/learning-experiences-among-datadog-dynatrace-newrelic/</link>
<pubDate>Wed, 22 Feb 2023 09:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/02/learning-experiences-among-datadog-dynatrace-newrelic/</guid>
<description>Last week and this week, I completed my basic learning of APMs as a tool of SRE. I learnt fundamentals of datadog and newrelic, walked through their tutorials in last week and this week. I don’t find a easy way to learn dynatrace from its site. The whole learning experiences between datadog and newrelic are on par with each other. What’s the deal breaker when making choices among them?
Leader Feature flags intergration During a discussion about progressive delivery using flagger, I was curious if it is possible to integrate feature flags and APM.</description>
</item>
<item>
<title>The First 90 Days: Proven Strategies for Getting Up to Speed Faster and Smarter, Updated and Expanded</title>
<link>https://jackliusr.github.io/notes/the_90_days/</link>
<pubDate>Wed, 15 Feb 2023 20:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/the_90_days/</guid>
<description>Preface accelerate onboarding of new hires and transition. follow-on publications. other ideas
the STARS framework,
transition traps,
the importance of securing early wins
the fuzzy front-end
distinction between the organizational change challenge and the personal adaptive challenge in assessing the transition risk confronting new leaders.
other publications:
Shaping the Game, 2006
The First 90 Days in Government</description>
</item>
<item>
<title>kubernetes On-premise</title>
<link>https://jackliusr.github.io/notes/kubernetes-on-premises/</link>
<pubDate>Fri, 10 Feb 2023 21:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/kubernetes-on-premises/</guid>
<description>It is a big topic to setup kubernetes correctly. I will keep updating this when I find something new or missed in this.
</description>
</item>
<item>
<title>What's pod sandbox</title>
<link>https://jackliusr.github.io/posts/2023/02/whats-pod-sandbox/</link>
<pubDate>Fri, 10 Feb 2023 09:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/02/whats-pod-sandbox/</guid>
<description>The explanation of pod sandbox at the abstraction that replaces the &#34;pause&#34; container that is used to keep namespaces open in every Kubernetes pod today. I doubted about that. What’s the point to introduce a new concept? Yerterday I went down the rabbit hole to understand it. This morning I finally got the hang of it.
Kubernetes blog said it is an environment. It maybe a VM, a group of containers.</description>
</item>
<item>
<title>Kubelet architecture</title>
<link>https://jackliusr.github.io/notes/kubelet/</link>
<pubDate>Thu, 09 Feb 2023 09:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/kubelet/</guid>
<description>In the past I learnt a lot of kubernetes, however there is no much information about kubelet or not deep enough. I couldn’t answer the questions about kubelet correctly in an interview. Here I put all the information I collected from the internet here for my references.
kubelet component architecture how does kubelet work Container Lifecycle Management Through the CRI kubelet, CRI and CNI sequence diagram kubelet, CRI and CNI interaction diagram The process of creating a pod Handler The work of podWorkers syncPod kubelet Runtime Creating a sandbox for a pod References: https://www.</description>
</item>
<item>
<title>kubernetes metrics options</title>
<link>https://jackliusr.github.io/notes/k8s-metrics/</link>
<pubDate>Thu, 09 Feb 2023 09:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/k8s-metrics/</guid>
<description>Components
Description
Metrics
Scaler
Metrics Server
Metrics Server collects resource metrics from Kubelets and exposes them in Kubernetes apiserver through Metrics API for use by Horizontal Pod Autoscaler and Vertical Pod Autoscaler. Metrics API can also be accessed by kubectl top, making it easier to debug autoscaling pipelines.
Metrics Server is not meant for non-autoscaling purposes
CPU/Memory</description>
</item>
<item>
<title>github, action-runner, argo-cd: my cicd pipelines</title>
<link>https://jackliusr.github.io/posts/2023/02/github-action-runner-argo-cd-my-cicd-pipelines/</link>
<pubDate>Wed, 01 Feb 2023 17:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/02/github-action-runner-argo-cd-my-cicd-pipelines/</guid>
<description>Usually I explain one of my CICD pipeline to others with words such like github action + argo-cd. I am not sure if they understand it. A picture is worth a thousand words. Here is my CICD pipeline picture.
I used excalidraw to draw the diagram. Excalidraw link is https://excalidraw.com/#json=zJHTTZ_QgcarkYCCankS8,gotb3rzXtE8ux810NoK18A. Feel free to use it.
</description>
</item>
<item>
<title>An Elegant Puzzle: Systems of Engineering Management</title>
<link>https://jackliusr.github.io/notes/an-elegant-puzzle/</link>
<pubDate>Mon, 30 Jan 2023 00:01:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/an-elegant-puzzle/</guid>
<description>Organizations Tools Approaches Culture Careers </description>
</item>
<item>
<title>books I read</title>
<link>https://jackliusr.github.io/readinglists/</link>
<pubDate>Sun, 29 Jan 2023 12:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/readinglists/</guid>
<description>Technology Beginning Bazel: Building and Testing for Java, Go, and More
Management The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change
How Google Works
Investment The Little Book of Valuation: How to Value a Company, Pick a Stock and Profit 1st Edition
Investment Valuation: Tools and Techniques for Determining the Value of Any Asset</description>
</item>
<item>
<title>How many years of experience do I have on aws services now?</title>
<link>https://jackliusr.github.io/posts/2023/01/how-many-years-of-experience-do-i-have-on-aws-services-now/</link>
<pubDate>Sat, 28 Jan 2023 10:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/how-many-years-of-experience-do-i-have-on-aws-services-now/</guid>
<description>Usually I tell others that I have about 5 years experience of aws services. Today I want to know more about how many years experience I have. I logged in my aws account and tried to find my account creation date. There is no such information in account page. I was so eager to find the information and searched for alternative way to get that information. The easiest way is good one, however I already deleted the email.</description>
</item>
<item>
<title>2023 SWOT Analysis</title>
<link>https://jackliusr.github.io/posts/2023/01/2023-swot-analysis/</link>
<pubDate>Wed, 25 Jan 2023 22:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/2023-swot-analysis/</guid>
<description>Once I read an article about how to apply SWOT Analysis for personal career and strategies to in career development. The article most likely is Personal SWOT Analysis as I read a lot of articles from mindtools.com.
When I read the article, I also found several strategies how to convert my weakness to strengths. I finally converted one of my weakness — English to one of my strengths in the past 5 years by keeping learning and practicing English.</description>
</item>
<item>
<title>2023 resolution</title>
<link>https://jackliusr.github.io/posts/2023/01/2023-resolution/</link>
<pubDate>Sat, 21 Jan 2023 22:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/2023-resolution/</guid>
<description>Today it is Chinese New Year’s Eve of 2023. I like to make my new resolutions in Chinese New Year. Reflecting on the past year will help me to make better resolution. Even I made decision to learn and practice several things, however I didn’t write down last year. It was not helpful for me to make reflection based past experiences.
My resolution of 2022 were as following:
improve my English communication to fluent level.</description>
</item>
<item>
<title>cloud migrations, cloud differences</title>
<link>https://jackliusr.github.io/posts/2023/01/cloud-migrations-cloud-differences/</link>
<pubDate>Tue, 17 Jan 2023 22:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/cloud-migrations-cloud-differences/</guid>
<description>AWS has almost established themselves as the de facto public cloud provider for a lot of businesses, other providers always try to provide similiar services and similar APIs to attract existing AWS customers to migrate to their platform. Each following provider provides similar comparison table comparing to AWS. Those comparison can give one a quick start to adopt their services without major issues. Even those following providers provide migration tools for migrating from aws to their platform.</description>
</item>
<item>
<title>The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change</title>
<link>https://jackliusr.github.io/notes/the-manager-path/</link>
<pubDate>Tue, 17 Jan 2023 11:40:00 +0800</pubDate>
<guid>https://jackliusr.github.io/notes/the-manager-path/</guid>
<description>Chapter 1: Management 101 what to expect from a manager
1:1 meeting, every few weeks with direct/line manager; two purposes
create human connections
status update: regular
feedback and workspace guidance: frequest, fast, many wasy
quick feedbackup loop is more efficient
public praise, private critism
feedback type: code, presentation
code, content, layout, style …
role</description>
</item>
<item>
<title>Leadership book reading 1 </title>
<link>https://jackliusr.github.io/posts/2023/01/leadership-book-reading-1/</link>
<pubDate>Mon, 16 Jan 2023 22:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/leadership-book-reading-1/</guid>
<description>Long ago, I wanted to learn something about technology leaderships, however I didn’t know how to do it. One or two months ago I found Will Larson’s book &#34;An Elegant Puzzle: Systems of Engineering Management&#34; which recommended by others and today I found another books Best Books for Leaders in Tech: theWaydev Selection. It’s time to put the ideas into action since I already completed a big milestone of learning English.</description>
</item>
<item>
<title>Reduce the chance of resource conflict in gitops</title>
<link>https://jackliusr.github.io/posts/2023/01/reduce-the-chance-of-resource-conflict-in-gitops/</link>
<pubDate>Fri, 13 Jan 2023 22:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/reduce-the-chance-of-resource-conflict-in-gitops/</guid>
<description>Summary: Reduce the chance of resource conflict in gitops by reducing the time window of using shared resource files
My initial journal with gitops was setup my gitops cicd pipeline following the flux tutorial way. I immediately found out the limitation of flux at that time and sought alternative solutions. After comparing different solutions, I settled down argo-cd.
After a short while usage of argo-cd, I moved configration yamls and kustomization.</description>
</item>
<item>
<title>Playbook: etcd debugging</title>
<link>https://jackliusr.github.io/posts/2023/01/playbook-etcd-debugging/</link>
<pubDate>Mon, 09 Jan 2023 12:01:10 +0800</pubDate>
<guid>https://jackliusr.github.io/posts/2023/01/playbook-etcd-debugging/</guid>