-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
2779 lines (2668 loc) · 323 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>Chung Trịnh's Notes</title>
<link>/</link>
<atom:link href="/index.xml" rel="self" type="application/rss+xml" />
<description>Chung Trịnh's Notes</description>
<generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>vi-vn</language><lastBuildDate>Thu, 28 Jun 2018 00:00:00 +0100</lastBuildDate>
<image>
<url>/images/icon_hu1878d3b78efadcc51c14dd0b1afc88d1_1062_512x512_fill_lanczos_center_2.png</url>
<title>Chung Trịnh's Notes</title>
<link>/</link>
</image>
<item>
<title>Example Page 1</title>
<link>/courses/example/example1/</link>
<pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
<guid>/courses/example/example1/</guid>
<description><p>In this tutorial, I&rsquo;ll share my top 10 tips for getting started with Academic:</p>
<h2 id="tip-1">Tip 1</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.</p>
<p>Nullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.</p>
<p>Cras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.</p>
<p>Suspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.</p>
<p>Aliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.</p>
<h2 id="tip-2">Tip 2</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.</p>
<p>Nullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.</p>
<p>Cras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.</p>
<p>Suspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.</p>
<p>Aliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.</p>
</description>
</item>
<item>
<title>Example Page 2</title>
<link>/courses/example/example2/</link>
<pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
<guid>/courses/example/example2/</guid>
<description><p>Here are some more tips for getting started with Academic:</p>
<h2 id="tip-3">Tip 3</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.</p>
<p>Nullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.</p>
<p>Cras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.</p>
<p>Suspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.</p>
<p>Aliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.</p>
<h2 id="tip-4">Tip 4</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.</p>
<p>Nullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.</p>
<p>Cras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.</p>
<p>Suspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.</p>
<p>Aliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.</p>
</description>
</item>
<item>
<title>Con trai</title>
<link>/2021/03/2021-03-17-con-trai/</link>
<pubDate>Wed, 17 Mar 2021 12:27:39 +0700</pubDate>
<guid>/2021/03/2021-03-17-con-trai/</guid>
<description><p>Hôm qua đi nhậu về, ba hắn bị đau đầu quá, lăn lóc trằn trọc không ngủ được. Bữa nào đi nhậu về mà quá 3 lon là y rằng ba hắn đầu đau như búa bổ, kim châm.</p>
<p>Trước khi đi ngủ mẹ hắn dặn dò, &ldquo;Tối ngủ Bi nhớ để ý ba nha&rdquo;.</p>
<p>Bình thường, đặt lưng xuống tầm 1 lát là hắn sẽ chìm vào giấc ngủ, hắn giống ba ở khoản ngủ, đặt lưng là ngủ, rất dễ. Nhưng tối hôm qua, mãi không thấy hắn ngủ, hắn nằm nghiêng người, mắt mở, quan sát ba quằn quại ôm đầu.</p>
<p>Thấy ba không ngủ được, ôm đầu lăn qua lăn lại, ngồi dậy, chổng khu cắm đầu vào gối, nói chung là mọi tư thế. Hắn lo lắng lắm.</p>
<p>Hắn bảo để Bi hỏi google coi làm sao để hết đau đầu. Rồi hắn search google.</p>
<p>Hắn bảo tắt quạt, đau đầu thì ko để gió lạnh. Rồi hắn ra ngoài lấy nước mang vào cho ba uống, xong mở nhạc thiền, bảo ba ngồi dậy thiền tầm 10ph xem sao, vẫn không hết.</p>
<p>Hắn bảo vậy thôi ba nằm xuống ngủ đi, Bi mở nhạc nhẹ yên tĩnh thử xem (chắc google chỉ vậy).</p>
<p>Ba nghe lời hắn, bảo oki vậy để ba cố ngủ, mà Bi ngủ đi, chắc nằm xuống ba sẽ ngủ được.</p>
<hr>
<p>Cách đây khoảng hơn 20 năm, lúc tôi tầm tuổi hắn bây giờ. Hôm đó ông nội của hắn đi đâu về cũng đau đầu dữ lắm (sau này mới biết ông bị bệnh đau đầu). Lúc đó ở làng đang làm thủy lợi, dân làng tới rất đông.</p>
<p>Tôi lúc đó đang đi chơi trong xóm đâu biết chuyện gì, ông nội hắn đau đầu quá, lúc nào cũng gọi tên con trai. Dân làng chạy đi gọi tôi về. Chạy về đến nhà nhìn thấy bố ôm đầu quằn quại nằm trên giường, mẹ ngồi kế bên, bố luôn miệng gọi tên tôi, cứ &ldquo;Chung ơi, Chung đâu rồi&rdquo;. Thấy bố vậy tôi sợ lắm, chạy đến ngồi bên ông nhưng cũng chả biết làm gì, chỉ biết cầm tay bố, luôn miện &ldquo;con đây&rdquo; và khóc.</p>
<p>Tôi vốn là người không nhớ lâu, ký ức thời niên thiếu tôi còn nhớ rất ít, nhưng hình ảnh đó tôi nhớ mãi cho đến tận bây giờ.</p>
</description>
</item>
<item>
<title>19 phương pháp bán hàng thông minh cho doanh nghiệp SaaS</title>
<link>/2020/08/19-phuong-phap-ban-hang-thong-minh-cho-doanh-nghiep-saas/</link>
<pubDate>Mon, 24 Aug 2020 22:27:39 +0700</pubDate>
<guid>/2020/08/19-phuong-phap-ban-hang-thong-minh-cho-doanh-nghiep-saas/</guid>
<description><p>Ngành công nghiệp SaaS đang cực kỳ bùng nổ và dự kiến sẽ đạt mức quy mô 85 tỷ đô la vào cuối năm nay. Nhìn vào những doanh nghiệp Saas mới xuất hiện trên thị trường có thể thấy rõ được mức độ cạnh tranh trong lĩnh vực này.</p>
<p>Nó đòi hỏi người chủ doanh nghiệp cần có chiến lược bán hàng duy trì cạnh tranh để tồn tại và phát triển. Nhưng cũng giống như bất kỳ quy trình bán hàng nào khác, quy trình bán hàng SaaS đòi hỏi các bước rất khác nhau.</p>
<blockquote>
<p>SaaS (viết tắt của Software-as-a-Service) là mô hình phân phối dịch vụ ứng dụng phần mềm; trong đó nhà cung cấp không bán sản phẩm phần mềm mà bán dịch vụ dựa trên phần mềm đó. Nói đơn giản hơn, nhà cung cấp tạo ra và duy trì một phần mềm chạy trên nền web, và khách hàng có thể truy cập từ xa thông qua internet sau khi trả một khoản phí đăng ký định kỳ (hàng tháng, quý, năm).</p>
</blockquote>
<h3 id="vậy-đâu-là-sự-khác-biệt-khi-bán-saas">Vậy, đâu là sự khác biệt khi bán SaaS?</h3>
<p>Bán SaaS có gì khác so với bán những sản phẩm khác?
Thực tế là có. Vì doanh nghiệp SaaS quản lý toàn bộ sản phẩm của họ từ đầu đến cuối, bản thân sản phẩm SaaS có giá cao hơn và thường có chu kỳ bán hàng dài hơn.</p>
<p>Dưới đây là một vài điểm đặc biệt của quy trình bán sản phẩm SaaS:</p>
<ul>
<li>Chu kỳ bán hàng dài hơn</li>
<li>Nhiều điểm tiếp xúc với khách hàng</li>
<li>Phối hợp chặt chẽ với bộ phận marketing</li>
<li>Cho phép dùng thử sản phẩm miễn phí</li>
<li>Giá bán khác nhau tùy thuộc vào nhu cầu khác nhau</li>
</ul>
<p>Có thể thấy, quy trình bán hàng có vẻ khá phức tạp và đòi hỏi rất nhiều sự linh hoạt và kỹ năng. Mặc dù mỗi công ty SaaS sẽ có chiến lược bán hàng độc đáo của riêng mình, vẫn có những điểm chung của 1 quy trình bán hàng thành công.</p>
<p>Dưới đây là các yếu tố quan trọng cần lưu ý cho doanh nghiệp SaaS nếu muốn bán được hàng:</p>
<h2 id="1-xác-định-thời-gian-dùng-thử-trial">1. Xác định thời gian dùng thử (Trial)</h2>
<p>Chắc chắn chúng ta đã từng bắt gặp các doanh nghiệp cung cấp bản dùng thử miễn phí 30 ngày – nhưng khách hàng có thực sự cần nhiều thời gian đến như vậy để ra quyết định không?</p>
<p>Mặc dù các chuyên gia tuyên bố rằng 14 ngày là quá đủ để người dùng thử ra quyết định, nhiều công ty vẫn tiếp tục mắc sai lầm khi cung cấp 1 tháng sử dụng sản phẩm miễn phí.</p>
<p>Điều này thực sự mang lại nhiều tác hại hơn là lợi ích cho công ty, mặc dù thoạt nhìn có vẻ như việc dùng thử lâu hơn tương đương với sự hạnh phúc của khách hàng.</p>
<p>Khi bạn mua một đôi giày mới, bạn sẽ không mang chúng nếu chúng không thoải mái và hoàn toàn không phù hợp với bất kỳ trang phục nào.</p>
<p>Trung bình, một người chỉ cần một vài ngày để quyết định xem họ có thích sản phẩm đó hay không.</p>
<h3 id="tương-tự-với-sản-phẩm-saas">Tương tự với sản phẩm SaaS.</h3>
<p>Bạn không cần quá nhiều thời gian để quyết định xem đó có phải là một sản phẩm tốt cho doanh nghiệp của bạn hay không. Trong hầu hết các trường hợp, mọi người chỉ suy nghĩ trong ba ngày và sau đó họ sẽ mua nó hoặc không bao giờ quay lại.</p>
<p>Nếu bạn chưa tin, hãy xem phân tích người dùng của bạn thực sự dành bao lâu cho sản phẩm và liệu họ có đăng nhập sau một tuần dùng thử miễn phí hay không?</p>
<p>Thời gian trial ngắn hơn có nghĩa là ra quyết định nhanh hơn. Điều này dẫn đến việc tự động rút ngắn chu kỳ bán hàng.</p>
<p>Ngoài ra, khách hàng thường cảm thấy các sản phẩm có thời gian trial ngắn thì chất lượng và tin cậy hơn so với sản phẩm có thời gian dùng thử dài.</p>
<h2 id="2-đừng-ngần-ngại-gọi-cho-người-dùng-của-bạn">2. Đừng ngần ngại gọi cho người dùng của bạn</h2>
<p>Một trong những sai lầm lớn nhất mà nhiều công ty mắc phải khi bán sản phẩm SaaS là không liên hệ với người dùng thử ngay sau khi họ đăng ký, mà thường đợi đến những thời điểm cuối cùng khi người dùng chuẩn bị rời bỏ sản phẩm.</p>
<p>Đây là một vài lý do chúng ta nên gọi cho khách hàng ngay lập tức khi họ đăng ký dùng thử:</p>
<ul>
<li>Có thể thuyết phục họ mua hàng nhanh hơn</li>
<li>Lắng nghe trực tiếp những phản hồi và xử lý chúng: Nếu bạn không nói chuyện với một người, bạn sẽ không bao giờ biết anh ấy không thích gì về sản phẩm</li>
<li>Cung cấp một giải pháp hoàn hảo cho khách hàng: Bằng cách tìm hiểu về vấn đề đang xảy ra, bạn có thể cung cấp một sản phẩm phù hợp nhất với nhu cầu của họ.</li>
</ul>
<p>Tất nhiên, chiến lược này sẽ không hiệu quả với mọi sản phẩm SaaS. Nó chỉ áp dụng cho mô hình B2B. Netflix chắc chắn không gọi cho mọi người đăng ký dùng thử. Nhưng nếu bạn đang bán giải pháp cấp doanh nghiệp, phương pháp này có thể thúc đẩy doanh số của bạn đáng kể.</p>
<h2 id="3-tập-trung-vào-cá-nhân-hoá">3. Tập trung vào cá nhân hoá</h2>
<p>Khi nói đến “Close deal”, cá nhân hoá chính là chìa hoá để bạn làm hài lòng khách hàng của mình. Mọi người thường mong đợi các giải pháp và dịch vụ được cá nhân hoá và đáp ứng chính xác nhu cầu của họ hơn là các đề nghị chung chung.</p>
<p><strong>Lấy cá nhân hoá email làm ví dụ</strong>, dữ liệu nói rằng các email được cá nhân hoá có tỷ lệ chuyển đổi cao hơn 6 lần so với thông thường. Vì vậy, nếu bạn chưa làm, đã đến lúc thêm một chút cá nhân hoá vào các thông điệp của mình!</p>
<p>Nhiều công ty gửi email từ <a href="mailto:[email protected]">[email protected]</a> hoặc các hộp thư tương tự. Tuy nhiên, một khách hàng sẽ sẵn sàng mở email của bạn hơn nếu đó là <a href="mailto:[email protected]">[email protected]</a>. Thủ thuật nhỏ này có thể tăng tỷ lệ mở và thúc đẩy sự tương tác tốt hơn.</p>
<p>Một điều khác mà bạn có thể làm là cá nhân hoá email với tên của khách hàng và viết email một cách hấp dẫn. Lưu ý quan trọng ở đây: Hãy sử dụng ngôn ngữ đồng điệu với từng đối tượng khách hàng và thổi hồn vào nó. Đừng để email chỉ đơn thuần là bán hàng.</p>
<h2 id="4-sử-dụng-email-automation">4. Sử dụng email automation</h2>
<p>Khi bán sản phẩm SaaS, điều quan trọng là phải tiếp cận khách hàng kịp thời để giữ chân họ. Nhưng khi bạn bận rộn với hàng tá nhiệm vụ khác nhau, bạn lại quên rằng khách hàng đang cần được chăm sóc. Đây là lúc tự động hoá phát huy hiệu quả.</p>
<p>Các trường hợp khi bạn cần 100% email tự động:</p>
<ul>
<li>Sau khi người đăng ký dùng thử</li>
<li>Nếu người đó chọn huỷ bỏ tài khoản dùng thử</li>
<li>Khi thời gian dùng thử sắp hết hạn</li>
</ul>
<p>Trong tất cả các trường hợp này, một email được gửi kịp thời có thể níu giữ khách hàng và thuyết phục họ dùng thử sản phẩm khác hoặc trả tiền ngay.</p>
<p>Đừng lo lắng về việc gửi quá nhiều email: trong thời gian dùng thử 14 ngày, việc gửi ít nhất 4-5 email cho khách hàng để tạo mối quan hệ và gắn kết là điều hoàn toàn bình thường.</p>
<h2 id="5-cung-cấp-càng-nhiều-giá-trị-càng-tốt">5. Cung cấp càng nhiều giá trị càng tốt</h2>
<p>Với sự cạnh tranh trong ngành SaaS, người dùng cần nhận được thêm giá trị trước khi sẵn sàng chi tiền.
Ví dụ, nếu chúng ta sử dụng Mailchimp, chúng ta sẽ thấy rằng họ cung cấp nhiều loại ebook miễn phí cho khách hàng của mình.
Đó là một quyết định cực kỳ thông minh vì những ebook này đóng vai trò là giá trị gia tăng cho người dùng sản phẩm.</p>
<p>Với các giải pháp cấp doanh nghiệp, bạn có thể cung cấp các tài liệu, hướng dẫn miễn phí và ebook hoặc hướng dẫn bằng video làm tài liệu để khách hàng của bạn có thể sử dụng và áp dụng.
Một ví dụ thành công đó là thư viện video miễn phí được cung cấp bởi Salesforce. Tại đây có vô số video miễn phí mà khách hàng của Salesforce có thể truy cập và sử dụng để phát triển doanh nghiệp của riêng họ.</p>
<h2 id="6-xây-dựng-chương-trình-giới-thiệu">6. Xây dựng chương trình giới thiệu</h2>
<p>Đối với những sản phẩm đòi hỏi người mua cần thời gian để ra quyết định mua hàng như ngành SaaS. Nếu bạn không khiến họ quyết định ngay lập tức, khách hàng tiềm năng đó có thể tìm đến các đối thủ của bạn.
Chương trình giới thiệu sẽ cho phép khách hàng tiềm năng tìm được lời khuyên từ chính những người thân và bạn bè của họ.</p>
<p>Nghiên cứu từ Nielsen chỉ ra rằng khoảng 92% người tiêu dùng từ các thị trường khác nhau có xu hướng tin tưởng hoàn toàn những người nằm trong “vòng tròn” quan hệ của họ.
Giới thiệu là động lực hàng đầu đứng đằng sau 30-50% tất cả các quyết định mua hàng. Số liệu thống kê từ Huffington Post cũng cho thấy tỷ lệ chuyển đổi từ kênh giới thiệu có thể lên đến 80%.</p>
<h2 id="7-đảm-bảo-số-liệu-được-theo-dõi-rõ-ràng-minh-bạch">7. Đảm bảo số liệu được theo dõi rõ ràng, minh bạch</h2>
<p>Một số công ty nói rằng họ quá nhỏ để theo dõi các số liệu. Đó là sai lầm lớn ngăn cản họ phát triển.
Số liệu là điều bắt buộc nếu bạn muốn thành công. Nó cho biết thực tế đang diễn ra trong doanh nghiệp và cách khách hàng của bạn hành động. Số liệu cũng giúp xác định chính xác các vấn đề và tìm ra giải pháp hiệu quả nhất.</p>
<p>Dưới đây là những số liệu chính cần theo dõi với doanh nghiệp SaaS:</p>
<ul>
<li>Churn: tỷ lệ khách hàng bị mất</li>
<li>MRR: doanh thu định kỳ hàng tháng hay còn gọi là thu nhập mà công ty nhận được mỗi tháng</li>
<li>CAC: chi phí thu hút khách hàng, cung có nghĩa là chi phí thuyết phục khách hàng mua sản phẩm của bạn</li>
<li>NPS: chỉ số cho biết mức độ hài lòng của khách hàng đối với sản phẩm của bạn</li>
<li>ARPA: doanh thu trung bình trên mỗi tài khoản cho thấy số tiền doanh thu được tạo bởi một tài khoản trong một khoảng thời gian cụ thể</li>
</ul>
<p>Các số liệu này giúp doanh nghiệp hiểu rõ đâu là nỗi đau và khu vực nào là an toàn.
Ngoài ra cũng cần theo dõi các chỉ số marketing. Bằng cách theo dõi số lượng khách truy cập, tỷ lệ chuyển đổi, số lần đăng ký dùng thử và các hoạt động khác, chúng ta sẽ có thể tối ưu hoá tốt hơn quy trình bán hàng thực tế.</p>
<h2 id="8-sử-dụng-nhiều-sale-pipeline">8. Sử dụng nhiều Sale Pipeline</h2>
<p>Nhiều người nhầm lẫn Sale Funnel và Sale Pipeline, chúng không giống nhau chút nào. Sale Funnel nói về hành trình của khách hàng trong khi Sale Pipeline nói về quy trình biến khách hàng tiềm năng trở thành khách hàng chính thức.
Một Sale Pipeline sẽ cho thấy các giai đoạn của quy trình bán hàng mà nhân viên bán hàng phải trải qua để chốt giao dịch. Trong trường hợp hoàn hảo, doanh nghiệp sẽ tìm được Sale Pipeline phù hợp và tối ưu hoá nó.</p>
<p>Quay trở lại với các công ty SaaS, chúng ta nên có nhiều Pipeline cho các quá trình Sale lẫn Onboarding.
Một Sale Pipeline sẽ bao gồm các giai đoạn như product’s presentation, follow-up và đàm phán của sản phẩm; trong khi Onboarding Pipeline sẽ bao gồm các giai đoạn đào tạo (training), áp dụng và tối ưu.</p>
<h2 id="9-đảm-bảo-đội-ngũ-bán-hàng-hiểu-cặn-kẽ-về-sản-phẩm">9. Đảm bảo đội ngũ bán hàng hiểu cặn kẽ về sản phẩm</h2>
<p>Khi bán một sản phẩm SaaS cho khách hàng, họ sẽ muốn nghe nhiều hơn là việc người bán hàng chỉ nói về các tính năng.
Điều quan trọng là cần tập trung vào những lợi ích. Một nhân viên bán hàng cần biết mọi thứ về sản phẩm để trong trường hợp khách hàng mô tả một vấn đề cụ thể và họ sẽ đề xuất được các giải pháp (có thể) phù hợp.
Mặc dù đa số nhân viên bán hàng có thể dễ dàng nói về các tính năng của sản phẩm, nhưng không phải tất cả trong số họ có thể giải thích được giá trị thực sự của các tính năng, cũng như đem đến những giải pháp chính xác cho vấn đề mà khách hàng gặp phải.</p>
<p>Nó đòi hỏi kiến thức sâu sắc về sản phẩm pha trộn với sự sáng tạo và niềm đam mê để thu hút khách hàng quan tâm.
Do đó, trước khi bán sản phẩm cho khách hàng, hãy đảm bảo rằng đội ngũ bán hàng của bạn hiểu rõ về sản phẩm và biết cả ưu và nhược điểm của nó. Bằng cách trung thực với khách hàng, bạn thể hiện được chuyên môn và sự tin cậy hơn so với các công ty chỉ nhấn mạnh lợi ích trong khi để lại các vấn đề khác ra phía sau.</p>
<h2 id="10-tối-ưu-bản-demo">10. Tối ưu bản demo</h2>
<p>Bản demo phục vụ một mục đích rất quan trọng: giúp educate khách hàng về sản phẩm và hiển thị các tính năng tốt nhất mà sản phẩm có.
Nhưng khi bán hàng, đôi khi bạn có thể đi quá xa và bản demo biến thành một buổi đào tạo đầy đủ, dẫn đến sự nhàm chán và khó chịu của khách hàng. Và chẳng có gì tồi tệ hơn việc bạn khiến khách hàng buồn chán và khó chịu?
Vì vậy, điều đầu tiên cần nhớ về demo là: <strong>Hãy làm nó ngắn gọn!</strong></p>
<p>Một bản demo 10-15 phút là quá đủ để làm nổi bật những lợi ích sản phẩm lớn nhất trong khi bản demo 30 phút (hoặc nhiều hơn) sẽ chỉ gây ra sự nhàm chán.
Một sai lầm khác mà nhiều nhân viên bán hàng mắc phải là nói về các tính năng của sản phẩm trong khi bỏ qua các lợi ích của nó. Điều đó có nghĩa là: một nhân viên bán hàng có cùng một bài phát biểu cho tất cả các khách hàng tiềm năng nhưng quên làm nổi bật những lợi ích riêng của sản phẩm cho mọi khách hàng.
Bản demo tốt cho thấy cách sản phẩm có thể giải quyết vấn đề của người dùng – hãy ghi nhớ điều này.</p>
<h2 id="11-hãy-kiên-trì">11. Hãy kiên trì</h2>
<p>Các sản phẩm SaaS xu hướng có chu kỳ bán hàng dài hơn.
Điều này có nghĩa là nhân viên bán hàng của bạn sẽ phải tương tác với khách hàng nhiều lần hơn so với việc bán một sản phẩm thông thường.
Trung bình, phải mất khoảng 18 lần gọi điện để kết nối với 1 khách hàng tiềm năng và ít nhất một cuộc gọi mỗi tuần để chăm sóc (follow) họ.</p>
<p>Nếu bạn nghĩ đó là quá nhiều, đừng lo lắng: trung bình, một nhân viên bán hàng giỏi thực hiện khoảng 50 cuộc gọi mỗi ngày và đó không phải là số lượng cuộc gọi tối đa mà một người có thể thực hiện.
Bạn có thể thực hiện cuộc gọi hoặc gửi email chăm sóc mỗi tuần một lần. Nếu khách hàng đó không trả lời trong hơn ba tuần, hãy tiếp tục chăm sóc họ hai tuần một lần.</p>
<p>Vấn đề là, nếu một người không trả lời ngay lập tức, khả năng cao là bạn có thể thuyết phục họ mua. Có lẽ họ không có đủ thời gian để đưa ra quyết định hoặc có thể điều gì đó làm phiền họ – sử dụng theo dõi như một cách để tìm hiểu về những nghi ngờ của họ và cung cấp cho họ những lý lẽ đúng đắn.</p>
<h2 id="12-biết-từ-chối-đúng-lúc">12. Biết từ chối đúng lúc</h2>
<p>Nếu bạn có 1 khách hàng sẵn sàng sử dụng sản phẩm, trả tiền cho dịch vụ và bạn từ chối họ?
Nghe quá vô lý phải không?
Nhưng một người bán hàng có kinh nghiệm biết khi nào một khách hàng sẽ mang lại cho công ty nhiều tác hại hơn là lợi ích.
Một mặt, mọi thứ nên rõ ràng: một người quan tâm đến sản phẩm của bạn và sẵn sàng trả tiền cho nó. Mặt khác, họ có rất nhiều vấn đề với doanh nghiệp của họ, liên tục yêu cầu hỗ trợ và bảo trì từ đội ngũ của bạn và cuối cùng họ chắc chắn rời đi.</p>
<p>Cách tốt nhất để xác định những khách hàng như vậy là trả lời các câu hỏi sau:</p>
<ul>
<li>Khách hàng hoàn hảo của bạn là ai?</li>
<li>Nhu cầu của họ là gì?</li>
<li>Làm thế nào họ sẽ đưa ra quyết định?</li>
<li>Sản phẩm/ dịch vụ của bạn có thoả mãn nhu cầu của họ không?</li>
</ul>
<p>Bằng cách biết chính xác đối tượng mục tiêu của bạn và nhu cầu của họ, bạn sẽ dễ dàng tiếp cận với đúng người hơn và cung cấp cho họ giải pháp phù hợp.</p>
<h2 id="13-liệt-kê-những-phản-hồi-tiêu-cực-có-thể-có">13. Liệt kê những phản hồi tiêu cực có thể có</h2>
<p>Ngành công nghiệp SaaS đang bùng nổ với tốc độ nhanh không tưởng. Nó đi đôi với việc cạnh tranh trong thị trường cũng cực kỳ lớn, nhân viên bán hàng của bạn cần phải thực sự linh hoạt và biết thích nghi khi cung cấp và quảng bá sản phẩm.</p>
<p>Một phương pháp có thể giúp bạn bán hàng tốt hơn là liệt kê tất cả các phản hồi tiêu cực có thể có và đưa ra các giải pháp thuyết phục cho từng phản hồi đó.</p>
<h2 id="14-lựa-chọn-crm-phù-hợp-với-quy-trình-bán-hàng">14. Lựa chọn CRM phù hợp với quy trình bán hàng</h2>
<p>Công nghệ rõ ràng giúp tối ưu và chuẩn hoá quy trình bán hàng của bạn! CRM là hệ thống quản lý quan hệ khách hàng mà mọi doanh nghiệp Saas phải có.
Một CRM tốt sẽ mang lại nhiều lợi ích:</p>
<ul>
<li>Tự động hoá các quy trình làm việc</li>
<li>Hiển thị trực quan các dữ liệu quan trọng</li>
<li>Tối ưu hoá công việc</li>
<li>Phân tích dữ liệu khách hàng</li>
<li>Theo dõi chính xác tất cả các tương tác và điểm chạm với khách hàng</li>
</ul>
<p>Có vô số giải pháp CRM và ai cũng nói mình là tốt nhất. Nhưng thực sự tối ưu quy trình bán hàng của bạn và nhận được kết quả rõ ràng, đừng dễ dãi trong việc sử dụng bất kỳ CRM nào.
Một CRM tốt phải giúp nhân viên của bạn dễ sử dụng, trực quan và có thời gian đào tạo nhanh.</p>
<h2 id="15-chuẩn-bị-kỹ-khi-gặp-khách-hàng">15. Chuẩn bị kỹ khi gặp khách hàng</h2>
<p>‘Meeting’ với một khách hàng tiềm năng không bao giờ là một sự ngẫu hứng nếu chúng ta thực sự muốn bán hàng cho họ.
Chuẩn bị thật kỹ thay vì cứ để mặc mọi thứ tự nhiên đến và thất bại, đây là điều mà mỗi nhân viên bán hàng giỏi nên làm.</p>
<h2 id="16-chuẩn-bị-bài-thuyết-trình-presentation-và-các-câu-hỏi-có-thể-xảy-ra">16. Chuẩn bị bài thuyết trình (Presentation) và các câu hỏi có thể xảy ra</h2>
<p>Khi bạn biết khách hàng tiềm năng của mình, hãy chuẩn bị một kịch bản mà bạn sẽ follow họ trong suốt bài thuyết trình.
Kịch bản này bao gồm các giá trị mà sản phẩm sẽ mang lại cho khách hàng và lợi ích chính của sản phẩm.
Một kịch bản như vậy giúp ích rất nhiều vì bạn sẽ tự tin trong lời nói của mình và chuẩn bị cho những câu hỏi và/ hoặc phản đối từ khách hàng có thể xảy ra.</p>
<h2 id="17-đặt-những-câu-hỏi-đúng">17. Đặt những câu hỏi đúng</h2>
<p>Để tìm ra nhu cầu chính xác của một người, người bán hàng cần hỏi những câu hỏi mở và tập trung vào nó. Đặt câu hỏi và cho khách hàng thời gian để nghĩ về câu trả lời của họ.
Các câu hỏi mở sẽ giúp chúng ta hiểu được thực sự khách hàng đang nghĩ gì, từ đó xác định được vấn đề của họ và đưa ra giải pháp.</p>
<h2 id="18-hạn-chế-hỏi-những-câu-aggressive">18. Hạn chế hỏi những câu ‘Aggressive’</h2>
<p>Sự kiên trì là chìa khoá của thành công. Nhưng khi bạn giao tiếp với khách hàng, đừng hỏi những câu hỏi những câu đơn giản kiểu “Chúng ta sẽ ký hợp đồng luôn được chứ?”.
Một nhân viên bán hàng giỏi sẽ hỏi các câu hỏi để kết thúc giao dịch, nhưng làm như vậy một cách tinh tế. Với cách này, nhiều khả năng khách hàng sẽ đồng ý ký hợp đồng mà không cảm thấy bị ép buộc.</p>
<h2 id="19-luôn-nghĩ-về-giá-trị-mình-đem-lại-cho-khách-hàng">19. Luôn nghĩ về giá trị mình đem lại cho khách hàng</h2>
<p>Một sai lầm phổ biến hơn mà nhiều công ty SaaS mắc phải là hạ giá sản phẩm của họ vì sợ khách hàng sẽ ngần ngại mua một sản phẩm đắt tiền. Nhưng trong thực tế, tình hình hoàn toàn ngược lại.
Mọi người tin tưởng các sản phẩm đắt tiền hơn vì họ cảm thấy rằng “Tiền nào của nấy”.
Ngược lại, nếu giá sản phẩm của bạn tương đối thấp và bạn lại cung cấp bản dùng thử 30 ngày, thật khó để nghĩ đến chuyện có nhiều khách hàng.
Nghĩ đến việc bạn đã bỏ ra bao nhiêu công sức để tạo ra sản phẩm của mình và để tạo ra mức giá tương ứng.
Luôn nhấn mạnh giá trị mà chúng ta sẽ đem lại cho khách hàng khi trò chuyện với họ.
Bán sản phẩm SaaS rất khó nhưng một khi chúng ta vạch ra được chiến lược của mình và xây dựng toàn bộ quy trình, bạn sẽ ngạc nhiên với sự suôn sẻ mà quy trình đó đem lại. Trước đó, bạn cần phải:</p>
<ul>
<li>Xây dựng một đội ngũ bán hàng mạnh mẽ và đáng tin cậy</li>
<li>Xác định đối tượng khách hàng mục tiêu và nhu cầu của họ</li>
<li>Phác thảo những lợi ích và giá trị lớn nhất của sản phẩm</li>
<li>Phân tích sự cạnh tranh để chuẩn bị các lý lẽ như tại sao khách hàng nên chọn chúng ta</li>
</ul>
<p>Nếu không làm được những việc này, chắc chắn bạn sẽ gặp nhiều khó khăn vì dù thế nào bạn cũng sẽ phải giải quyết nó trong quá trình bán hàng.</p>
<p>(Theo:
<a href="https://www.facebook.com/photo.php?fbid=1610308025813847&amp;set=gm.2797485000470530&amp;type=1&amp;theater" target="_blank" rel="noopener">Quản Trị và Khởi Nghiệp</a>)</p>
</description>
</item>
<item>
<title>Thiết kế form tốt hơn</title>
<link>/2020/04/thiet-ke-form-tot-hon/</link>
<pubDate>Mon, 27 Apr 2020 22:27:39 +0700</pubDate>
<guid>/2020/04/thiet-ke-form-tot-hon/</guid>
<description><p>Ngày nay chúng ta thường bắt gặp form trên internet. Chúng ta đều phải đi qua form trước khi mua hàng online, hoặc khi đăng ký để nhận thông báo, vào mạng xã hội và tham gia vào các diễn đàn. Không phải là nói quá khi nói rằng form là thành phần vô cùng cần thiết cho việc chia sẻ thông tin ngày nay.</p>
<p>Tuy nhiên, đối với những người kinh doanh thì việc sử dụng form khi đăng ký thường được nhìn nhận như là một thao tác xấu nhưng không thể tránh được, bởi vì tỷ lệ người dùng bỏ cuộc lớn nhất là ở những trang đăng ký. Đa phần chúng tiêu tốn thời gian, phức tạp và đôi lúc cần những thông tin quá nhạy cảm.</p>
<p>Vậy hãy thử xem làm thế nào để biến những trải nghiệm nhàm chán này trở nên trực quan và hoàn toàn không mệt mỏi cho người dùng.
Trước khi đi sâu hơn, tôi phải báo trước rằng hầu hết những hướng dẫn này dựa trên kinh nghiệm và dữ liệu thống kê, nhưng chúng không nên được coi là chân lý. Form là các thành phần thiết kế phụ thuộc nhiều vào ngữ cảnh và depend on more that just these guidelines too increase conversions. Vậy hãy bắt đầu.</p>
<p>Chúng ta sẽ sửa lại một form đăng ký kênh TV trong 10 bước dưới đây.</p>
<p><img src="anh01.jpeg" alt=""></p>
<h3 id="1-căn-chỉnh-các-thành-phần">1. Căn chỉnh các thành phần</h3>
<p>Đây là một trick rất đơn giản giúp tạo nên cấu trúc cho nội dung. Căn lề là sắp xếp chữ theo cách hiệu quả nhất - cho phép người dùng đọc hiểu form nhanh và hiệu quả, hạn chế lỗi và thiếu trường.</p>
<p>Có nhiều hướng tiếp cận để tổ chức nội dung, nhưng hãy thử nhìn vào căn lề chữ. Có 4 cách căn lề các thành phần: giữa, trái, phải và trên-trái.</p>
<p><img src="anh1.jpg" alt=""></p>
<p>Về cơ bản, nhãn càng gần trường input thì sẽ làm cho việc gom nhóm càng trở nên dễ dàng. Bởi vì sự quan hệ gần gũi giữa nhãn và trường input nên dễ dàng để liên kết chúng với nhau. Vì vậy mà căn lề kiểu trên-trái cho nhãn là ý tưởng tốt trong trường hợp này. Vì kiểu căn lề này làm giảm đi &ldquo;visual fixations&rdquo;(tạm dịch: các bước di chuyển của mắt), giúp người dùng lướt qua form mà không phải đảo mắt nhiều.</p>
<p><img src="anh15.jpg" alt=""></p>
<p><a href="https://www.ventureharbour.com/form-design-best-practices/">https://www.ventureharbour.com/form-design-best-practices/</a></p>
<h3 id="2-gom-nhóm-các-trường-có-liên-quan">2. Gom nhóm các trường có liên quan</h3>
<p>Gom các thông tin thành các nhóm là cách dễ dàng để nhấn mạnh sự liên kết. Nếu một form có nhiều hơn 6 trường, chúng ta nên gom lại trong những nhóm logic. Nếu mỗi nhóm có một tiêu đề liên quan và được sắp xếp gọn gàng theo thứ tự từ trên xuống dưới thì sự liên kết còn được nhấn mạnh hơn.</p>
<p><img src="anh2.jpg" alt=""></p>
<div class="alert alert-tip">
<div>
<p><strong>Tip</strong></p>
<p>Đừng quên để một khoảng cách phù hợp giữa các nhóm để phân biệt chúng</p>
</div>
</div>
<h3 id="3-viết-nhãn-rõ-ràng">3. Viết nhãn rõ ràng</h3>
<p>Sử dụng tên nhãn ngắn gọn, rõ ràng, súc tích. Nó giúp người dùng hiểu những thông tin cần thiết trong nháy mắt. Tránh sử dụng các câu hoàn chỉnh chỉ để giải thích các câu hỏi đơn giản, chỉ một hoặc hai từ nói chung là đủ.</p>
<p><img src="anh3.jpg" alt=""></p>
<h3 id="4-định-dạng-trường-input">4. Định dạng trường input</h3>
<p>Đừng bắt người dùng phải đoán định dạng thông tin cần phải nhập vào. Tùy chỉnh thiết kế cho từng trường input để chỉ ra tường minh thông tin cần phải được nhập vào như thế nào là việc nên làm. Ngay cả những thông báo ngắn (như là hướng dẫn thiết lập password) được để ràng cạnh trường input sẽ giảm thiểu lỗi khi người dùng điền vào form.</p>
<p><img src="anh4.jpg" alt=""></p>
<div class="alert alert-tip">
<div>
<p><strong>Tip</strong></p>
<p>Để tạo sự phân biệt rõ ràng giữa foreground và background, các trường input có thể sử dụng một màu khác với nền. Ví dụ như ở dưới đây, các Textbox được tô nền màu trắng và các cạnh được phối màu một cách tinh tế.</p>
</div>
</div>
<p><img src="anh4_emailphone.jpg" alt=""></p>
<h3 id="5thêm-những-yếu-tố-trực-quan">5.Thêm những yếu tố trực quan</h3>
<p>Nói chung người dùng cảm thấy khó khăn với những câu hỏi mà họ phải nhập câu trả lời bằng tay. Đưa ra vài gợi ý tham khảo là cách tốt để giúp họ. Thậm chí minh họa những câu trả lời đó bằng những yếu tố trực quan có thể còn tốt hơn, vì nó giúp người dùng mất ít công sức nhất và cung cấp một hướng suy nghĩ cho họ.</p>
<p><img src="anh5.jpg" alt=""></p>
<h3 id="6-tùy-chọn-và-bắt-buộc">6. Tùy chọn và bắt buộc</h3>
<p>Đây là một trick rất đơn giản để loại bỏ các item không cần thiết. Hơn là viết rằng &ldquo;bắt buộc&rdquo; bên cạnh mỗi label, chỉ cần đặt một dấu * (dấu hoa thị) và đặt chữ &ldquo;tùy chọn&rdquo; cạnh những label tùy chọn. Ngoài ra hãy căn chỉnh các label này thẳng hàng với label của nhóm, chứ không phải với trường input.</p>
<p><img src="anh6.jpg" alt=""></p>
<h3 id="7-các-cta">7. Các CTA</h3>
<p>Bây giờ form trông khá gọn gàng, hãy tập trung vào các CTA (call to actions). Hầu hết các form đều có ít nhất 2 CTA - <em>Submit</em> và <em>Cancel</em>. Trong ví dụ này, Submit form là quan trọng hơn nên Submit là CTA chính, còn Cancel là CTA phụ. Sự quan trọng hoặc không quan trọng cần phải được gán cho từng CTA dựa vào mức độ cần chú ý tới của chúng.</p>
<p>Các CTA có thể trông như một button hoặc một link. Tùy theo từng trường hợp, hãy chắc chắn rằng chỉ có một trong số chúng là cái quan trọng và nổi bật.</p>
<p><img src="anh7.jpg" alt=""></p>
<h3 id="8-chỉnh-sửa-cta">8. Chỉnh sửa CTA</h3>
<p>Các CTA chỉ hoạt động hiệu quả nhất khi chúng đưa ra một thông điệp rõ ràng. Chúng đề cập một cách chính xác những gì sẽ xảy ra khi người dùng kích vào nó. Thông điệp rõ ràng là yếu tố cần thiết của những CTA tốt, và về tương lai lâu dài nó vẫn còn hữu ích để tạo ra một thiết kế thuyết phục và đáng tin</p>
<p><img src="anh8.jpg" alt=""></p>
<h3 id="9-xác-thực-form">9. Xác thực form</h3>
<p>Nhìn chung có 3 thông điệp quan trọng mà một xác thực form tốt nên truyền tải đến người dùng:</p>
<ul>
<li><strong>Một lỗi đã xảy ra</strong>: hiển thị rõ ràng rằng có một lỗi trong form, ưu tiên sử dụng các biểu tượng màu đỏ để thu hút sự chú ý.</li>
<li><strong>Nơi xảy ra lỗi</strong>: làm nổi bật lên các trường gây ra lỗi.</li>
<li><strong>Lỗi đã xảy ra như thế nào</strong>: cung cấp thông tin về việc cần phải sửa cái gì để trường trở nên hợp lệ</li>
</ul>
<p>Tất cả 3 thông điệp trên đều có một mục tiêu chung: tránh gây khó hiểu. Giảm tối đa tỷ lệ bỏ cuộc của người dùng, hãy tạo ra những xác thực mà không có bất kỳ rủi ro nào về việc người dùng cảm thấy khó hiểu.</p>
<p><img src="anh9.jpg" alt=""></p>
<h3 id="10-sử-dụng-màu-hiệu-quả">10. Sử dụng màu hiệu quả</h3>
<p>Màu sắc có thể được sử dụng thông minh để hướng sự chú ý của người dùng, và tạo thêm sức hấp dẫn thẩm mỹ cho thiết kế. Trick ở đây là chỉ sử dụng không quá 2 màu chính trong trang. Hãy đảm bảo rằng sử dụng chúng khôn ngoan, và luôn nhớ mục đích chính của form trong khi thiết kế.</p>
<p><img src="anh10.jpg" alt=""></p>
<h3 id="được-rồi-chúng-ta-đã-đi-đến-cuối-của-cuộc-hành-trình">Được rồi! Chúng ta đã đi đến cuối của cuộc hành trình</h3>
<p>Sử dụng những nguyên tắc thiết kế cơ bản nhất, một form đơn giản có thể dễ dàng trở nên hấp dẫn hơn, thẩm mỹ hơn và dễ sử dụng hơn. Hãy nhìn vào sự khác biệt khổng lồ giữa trước và sau.</p>
<p><img src="anh11.jpg" alt=""></p>
</description>
</item>
<item>
<title>Một số static generator sử dụng để viết document</title>
<link>/2019/10/mot-so-static-generator-su-dung-de-viet-document/</link>
<pubDate>Mon, 21 Oct 2019 18:20:55 +0700</pubDate>
<guid>/2019/10/mot-so-static-generator-su-dung-de-viet-document/</guid>
<description><p>Một số opensource Static generator sử dụng để viết tài liệu kỹ thuật, user guide &hellip;</p>
<ul>
<li>Mkdocs (<a href="https://www.mkdocs.org/">https://www.mkdocs.org/</a>)</li>
<li>Slate (<a href="https://github.com/slatedocs/slate">https://github.com/slatedocs/slate</a>)</li>
<li>Docusaurus (<a href="https://docusaurus.io">https://docusaurus.io</a>)</li>
<li>docsify (<a href="https://docsify.js.org/">https://docsify.js.org/</a>)</li>
<li>Daux.io (<a href="https://daux.io">https://daux.io</a>)</li>
<li></li>
<li>mdBook</li>
</ul>
<p>Ngoài ra còn có thể sử dụng một số static sites generator khác như: jekyll, hugo, react-static&hellip;</p>
</description>
</item>
<item>
<title>Sửa lỗi khi deploy ứng dụng chạy SignalR lên server IIS</title>
<link>/2019/10/error-during-websocket-handshake-incorrect-sec-websocket-accept-header-value/</link>
<pubDate>Fri, 18 Oct 2019 18:20:26 +0700</pubDate>
<guid>/2019/10/error-during-websocket-handshake-incorrect-sec-websocket-accept-header-value/</guid>
<description><p>Trong quá trình deploy ứng dụng có sử dụng SignalR lên server IIS. Từ client (reactjs,javascrip &hellip; ) kết nối lên sẽ gặp lỗi <code>Error during WebSocket handshake: Incorrect 'Sec-WebSocket-Accept' header value</code> trong console.</p>
<p><strong>Giải quyết bằng cách:</strong>
Cài đặt WebSocket Protocol trên server.</p>
<ul>
<li>Vào Server Manager, Add Roles and Features</li>
<li>Chọn Web Server &gt; Application Development &gt; Websockets Protocol</li>
</ul>
</description>
</item>
<item>
<title>The Best Way to Install Node Js Npm and Yarn on Mac Osx</title>
<link>/2019/02/the-best-way-to-install-node-js-npm-and-yarn-on-mac-osx/</link>
<pubDate>Wed, 13 Feb 2019 18:15:25 +0700</pubDate>
<guid>/2019/02/the-best-way-to-install-node-js-npm-and-yarn-on-mac-osx/</guid>
<description><h3 id="the-best-way-to-install-nodejs-on-mac-is-nvm">The best way to install Node.js on Mac is nvm.</h3>
<p><a href="https://github.com/creationix/nvm">https://github.com/creationix/nvm</a>
You can use the install script for nvm installation.
<code>$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash</code>
relaunch your Terminals and check nvm version
<code>$ nvm --version</code></p>
<p>List your installed node versions if any:
<code>$ nvm list</code></p>
<p>It is safe if you choose one of the most recent LTS (long time support) version and install it with the following command:
<code>$ nvm install &lt;node-version&gt;</code></p>
<p>Setup this version as the default.
<code>$ nvm use &lt;node-version&gt;</code></p>
<p>Check your node version with
<code>$ node -v</code></p>
<p>In case, you want to upgrade node
<code>$ nvm install &lt;node-version&gt; --reinstall-packages-from=&lt;old-node-version&gt;</code></p>
<p>To Uninstall Node
<code>$ nvm uninstall &lt;node-version&gt;</code></p>
<p>Switching between various nodes versions
<code>$ nvm use &lt;node-version&gt; $ nvm use node (switch to latest Node.js version)</code></p>
<h3 id="npm">NPM</h3>
<p>npm is installed as a package with Node
Check the version
<code>$ npm -v</code></p>
<p>To upgrade npm
<code>$ npm install -g npm</code></p>
<h3 id="yarn">Yarn</h3>
<p>To install yarn
<code>$ npm install -g yarn</code></p>
<p>Check the version
<code>$ yarn -v</code></p>
<p><a href="https://medium.com/@itsromiljain/the-best-way-to-install-node-js-npm-and-yarn-on-mac-osx-4d8a8544987a">https://medium.com/@itsromiljain/the-best-way-to-install-node-js-npm-and-yarn-on-mac-osx-4d8a8544987a</a></p>
</description>
</item>
<item>
<title>Slides</title>
<link>/slides/example/</link>
<pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate>
<guid>/slides/example/</guid>
<description><h1 id="create-slides-in-markdown-with-academic">Create slides in Markdown with Academic</h1>
<p>
<a href="https://sourcethemes.com/academic/" target="_blank" rel="noopener">Academic</a> |
<a href="https://sourcethemes.com/academic/docs/managing-content/#create-slides" target="_blank" rel="noopener">Documentation</a></p>
<hr>
<h2 id="features">Features</h2>
<ul>
<li>Efficiently write slides in Markdown</li>
<li>3-in-1: Create, Present, and Publish your slides</li>
<li>Supports speaker notes</li>
<li>Mobile friendly slides</li>
</ul>
<hr>
<h2 id="controls">Controls</h2>
<ul>
<li>Next: <code>Right Arrow</code> or <code>Space</code></li>
<li>Previous: <code>Left Arrow</code></li>
<li>Start: <code>Home</code></li>
<li>Finish: <code>End</code></li>
<li>Overview: <code>Esc</code></li>
<li>Speaker notes: <code>S</code></li>
<li>Fullscreen: <code>F</code></li>
<li>Zoom: <code>Alt + Click</code></li>
<li>
<a href="https://github.com/hakimel/reveal.js#pdf-export" target="_blank" rel="noopener">PDF Export</a>: <code>E</code></li>
</ul>
<hr>
<h2 id="code-highlighting">Code Highlighting</h2>
<p>Inline code: <code>variable</code></p>
<p>Code block:</p>
<pre><code class="language-python">porridge = &quot;blueberry&quot;
if porridge == &quot;blueberry&quot;:
print(&quot;Eating...&quot;)
</code></pre>
<hr>
<h2 id="math">Math</h2>
<p>In-line math: $x + y = z$</p>
<p>Block math:</p>
<p>$$
f\left( x \right) = ;\frac{{2\left( {x + 4} \right)\left( {x - 4} \right)}}{{\left( {x + 4} \right)\left( {x + 1} \right)}}
$$</p>
<hr>
<h2 id="fragments">Fragments</h2>
<p>Make content appear incrementally</p>
<pre><code>{{% fragment %}} One {{% /fragment %}}
{{% fragment %}} **Two** {{% /fragment %}}
{{% fragment %}} Three {{% /fragment %}}
</code></pre>
<p>Press <code>Space</code> to play!</p>
<p><span class="fragment " >
One
</span>
<span class="fragment " >
<strong>Two</strong>
</span>
<span class="fragment " >
Three
</span></p>
<hr>
<p>A fragment can accept two optional parameters:</p>
<ul>
<li><code>class</code>: use a custom style (requires definition in custom CSS)</li>
<li><code>weight</code>: sets the order in which a fragment appears</li>
</ul>
<hr>
<h2 id="speaker-notes">Speaker Notes</h2>
<p>Add speaker notes to your presentation</p>
<pre><code class="language-markdown">{{% speaker_note %}}
- Only the speaker can read these notes
- Press `S` key to view
{{% /speaker_note %}}
</code></pre>
<p>Press the <code>S</code> key to view the speaker notes!</p>
<aside class="notes">
<ul>
<li>Only the speaker can read these notes</li>
<li>Press <code>S</code> key to view</li>
</ul>
</aside>
<hr>
<h2 id="themes">Themes</h2>
<ul>
<li>black: Black background, white text, blue links (default)</li>
<li>white: White background, black text, blue links</li>
<li>league: Gray background, white text, blue links</li>
<li>beige: Beige background, dark text, brown links</li>
<li>sky: Blue background, thin dark text, blue links</li>
</ul>
<hr>
<ul>
<li>night: Black background, thick white text, orange links</li>
<li>serif: Cappuccino background, gray text, brown links</li>
<li>simple: White background, black text, blue links</li>
<li>solarized: Cream-colored background, dark green text, blue links</li>
</ul>
<hr>
<section data-noprocess data-shortcode-slide
data-background-image="/img/boards.jpg"
>
<h2 id="custom-slide">Custom Slide</h2>
<p>Customize the slide style and background</p>
<pre><code class="language-markdown">{{&lt; slide background-image=&quot;/img/boards.jpg&quot; &gt;}}
{{&lt; slide background-color=&quot;#0000FF&quot; &gt;}}
{{&lt; slide class=&quot;my-style&quot; &gt;}}
</code></pre>
<hr>
<h2 id="custom-css-example">Custom CSS Example</h2>
<p>Let&rsquo;s make headers navy colored.</p>
<p>Create <code>assets/css/reveal_custom.css</code> with:</p>
<pre><code class="language-css">.reveal section h1,
.reveal section h2,
.reveal section h3 {
color: navy;
}
</code></pre>
<hr>
<h1 id="questions">Questions?</h1>
<p>
<a href="https://spectrum.chat/academic" target="_blank" rel="noopener">Ask</a></p>
<p>
<a href="https://sourcethemes.com/academic/docs/managing-content/#create-slides" target="_blank" rel="noopener">Documentation</a></p>
</description>
</item>
<item>
<title>MAY ĐO PHẦN MỀM</title>
<link>/2019/01/may-do-phan-mem/</link>
<pubDate>Mon, 14 Jan 2019 17:35:25 +0700</pubDate>
<guid>/2019/01/may-do-phan-mem/</guid>
<description><p>Mình đọc được khái niệm &ldquo;may đo phần mềm&rdquo; lần đầu tiên cách đây cũng phải hơn chục năm trên tạp chí PCWorld khi còn đang đi học. Khái niệm sử dụng để chỉ về việc xây dựng hệ thống phần mềm, hệ thống thông tin theo đặc thù của doanh nghiệp.</p>
<p>Dạo gần đây, tích cực đi gặp, trao đổi và tư vấn khách hàng nhiều hơn mới thấy khái niệm Phần mềm may đo vẫn còn nguyên tính thời sự. Mặc cho sự phát triển ngày càng nhanh, càng mạnh của các giải pháp cloud, các giải pháp đóng gói (tây ta có đủ) chỉ phù hợp cho một tập đối tượng doanh nghiệp nào đó, thì phần đa các doanh nghiệp vẫn rất cần các giải pháp may đo cho phù hợp với đặc thù của họ.</p>
<p>Việc chủ doanh nghiệp quyết định chọn cho mình &ldquo;bộ quần áo&rdquo; bán sẵn ngoài siêu thị hay tìm một &ldquo;nhà may&rdquo; nào đó đến để &ldquo;may đo&rdquo; cho mình một &ldquo;bộ đồ&rdquo; phù hợp, vừa vặn về size, thẩm mỹ lại phụ thuộc vào rất nhiều yếu tố. Nó phụ thuộc vào tay nghề của &ldquo;nhà may&rdquo;, phụ thuộc vào tầm nhìn của &ldquo;nhà thiết kế&rdquo; (thiết kế sao để may ra bộ đồ không quá rộng trong hiện tại nhưng lại vừa vặn trong tương lai, hoặc có thể gắn thêm &ldquo;đồ chơi&rdquo; trong tương lai), phụ thuộc cả vào chi phí đầu tư nữa &hellip;</p>
<p>Hơn chục năm trong nghề &ldquo;may đo&rdquo; ra giải pháp, hệ thống quản lý cho doanh nghiệp, có lẽ cái nghiệp này vẫn bám lấy mình, vẫn thấy rằng nó còn rất nhiều đất để khai phá. Nhưng, muốn sống được với nghề này thì bằng kinh nghiệm thôi chưa đủ, có lẽ phải tự làm mới mình, tự tìm thêm các &ldquo;mẫu thiết kế&rdquo; mới, học thêm &ldquo;kỹ năng&rdquo; mới để không lỗi mốt, để khách hàng không phải khoác lên người những mẫu thiết kế quá cũ kỹ, lỗi mốt và không hợp thời.</p>
</description>
</item>
<item>
<title>Authentication và Authorization</title>
<link>/2018/12/authentication-va-authorization/</link>
<pubDate>Sun, 30 Dec 2018 00:00:00 +0000</pubDate>
<guid>/2018/12/authentication-va-authorization/</guid>
<description><h3 id="1-authentication">1. Authentication</h3>
<p>Authentication là quá trình xác thực danh tính của người dùng. Quá trình này trả lời câu hỏi &ldquo;Bạn là ai?&rdquo;
Có nhiều phương pháp để thực hiện quá trình xác thực: Mật khẩu, sinh trắc học vân tay, khuôn mặt &hellip;</p>
<h3 id="2-authorization">2. Authorization</h3>
<p>Khác với Authentication trả lời &ldquo;bạn là ai?&rdquo; thì Authorization trả lời câu hỏi &ldquo;Bạn có thể làm gì?&quot;.</p>
<p>Authorization được thực thi sau khi Authentication hoàn thành. Điều này có nghĩa là sau khi xác định được danh tính người dùng (authentication), hệ thống sẽ tiếp tục kiểm tra xem người dùng có thể làm gì.</p>
<p>Các phương pháp thường dùng khi triển khai hệ thống &ldquo;phân quyền&rdquo;:</p>
<ul>
<li>Role-based authorization: Phân quyền dựa trên vai trò của người dùng</li>
<li>Object-based authorization: Phân quyền theo đối tượng</li>
</ul>
</description>
</item>
<item>
<title>Công việc không nuôi người nhàn hạ, tập thể không nuôi kẻ lười</title>
<link>/2018/12/cong-viec-khong-nuoi-nguoi-nhan-ha-tap-the-khong-nuoi-ke-luoi/</link>
<pubDate>Tue, 18 Dec 2018 00:00:00 +0000</pubDate>
<guid>/2018/12/cong-viec-khong-nuoi-nguoi-nhan-ha-tap-the-khong-nuoi-ke-luoi/</guid>
<description><p>Hà Vũ là một cô gái cực kỳ xinh đẹp, cô đã làm việc ở công ty này được ba năm rồi, những đồng nghiệp đến sau cô lần lượt có được cơ hội thăng chức, còn cô cứ mãi giậm chân tại chỗ, trong lòng cảm thấy không công bằng.</p>
<p>Rồi cũng đến một ngày, Hà Vũ phải đối mặt với nguy cơ bị sa thải , cô tìm gặp ông chủ để nói lý lẽ.</p>
<p><em>&ldquo;Thưa chủ tịch, tôi có bao giờ đi muộn về sớm, hay vi phạm nội quy công ty không?&quot;</em></p>
<p><em>Ông chủ trả lời thẳng thắn &ldquo;Không&rdquo;.</em></p>
<p><em>&ldquo;Vậy là vì công ty có thành kiến với tôi ư?&quot;</em></p>
<p>Ông hơi ngớ người, sau đó nói tiếp <em>&ldquo;Đương nhiên là không phải rồi.&quot;</em></p>
<p><em>&ldquo;Tại sao những người có ít kinh nghiệm làm việc hơn tôi lại được trọng dụng, còn tôi lại cứ mãi làm ở vị trí không quan trọng?&quot;</em></p>
<p>Trong chốc lát, chủ tịch nghẹn lời, sau đó cười nói: <em>&ldquo;Việc của cô lát nữa chúng ta sẽ nói tiếp, bây giờ tôi đang có một việc quan trọng cần làm, hay là cô giúp tôi xử lý trước đã? Một đối tác chuẩn bị tới công ty chúng ta khảo sát sản phẩm, cô hãy liên hệ với họ, hỏi xem khi nào họ đến.&quot;</em></p>
<p><em>&ldquo;Đây đúng là một nhiệm vụ quan trọng.&quot;</em> Trước khi đi cô không quên chế nhạo một câu.</p>
<p>Mười lăm phút sau, cô đến văn phòng của ông chủ:</p>
<p><em>&ldquo;Đã liên hệ được chưa?&quot;</em> Ông chủ hỏi.</p>
<p><em>&ldquo;Liên hệ rồi ạ, họ nói có thể tuần sau sẽ đến.&quot;</em></p>
<p><em>&ldquo;Cụ thể là thứ mấy?&quot;</em> Ông chủ hỏi.</p>
<p><em>&ldquo;Cái này tôi không hỏi kỹ.&quot;</em></p>
<p><em>&ldquo;Bên họ có mấy người sang?&quot;</em></p>
<p><em>&ldquo;Ôi! Ngài có hỏi tôi câu này đâu!&quot;</em></p>
<p><em>&ldquo;Vậy họ sẽ đi bằng tàu hỏa hay máy bay?&quot;</em></p>
<p><em>&ldquo;Câu này ngài cũng đâu có bảo tôi hỏi!&quot;</em></p>
<p>Ông chủ không nói gì nữa, ông gọi điện thoại bảo Thanh Minh đến.</p>
<p>Thanh Minh vào công ty làm việc sau Hà Vũ một năm, hiện đã là người phụ trách của một bộ phận. Thanh Minh cũng nhận nhiệm vụ giống Hà Vũ khi nãy</p>
<p>Một lúc sau, Thanh Minh quay lại. <em>&ldquo;Là thế này…&quot;</em> cô nói: <em>&ldquo;Bên họ sẽ đi chuyến bay vào 3 giờ chiều thứ sáu tuần sau, khoảng tầm 6 giờ sẽ đến nơi, bên họ có 5 người, trưởng đoàn là giám đốc Toàn của bộ phận vật tư, tôi đã nói với anh ấy rồi, công ty chúng ta sẽ phái người đến sân bay đón họ.&quot;</em></p>
<p>*&ldquo;Ngoài ra, họ dự định sẽ khảo sát trong vòng hai ngày, hành trình cụ thể, khi họ đến nơi, hai bên sẽ cùng bàn bạc.</p>
<p>Để thuận lợi cho công việc của hai bên, tôi đưa ra ý kiến sắp xếp cho họ nghỉ ở Khách sạn Quốc Tế ở ngay gần đây, nếu ngài đồng ý, ngày mai tôi sẽ đặt phòng trước.&quot;*</p>
<p><em>&ldquo;Còn nữa, dự báo thời tiết tuần sau có mưa, tôi sẽ giữ liên lạc với họ thường xuyên, nếu có gì thay đổi tôi sẽ báo lại ngay cho chủ tịch.&quot;</em></p>
<p>Hà Vũ đứng bên cạnh, mặt đỏ bừng, không nói được gì nữa, ngại ngùng quay về văn phòng.</p>
<p>Tối hôm đó, cô nhận được một tin nhắn của Chủ tịch:</p>
<p><em>Gửi Hà Vũ! Dù có làm việc ở đâu, thì cũng hãy nhớ những nguyên tắc quan trọng này:</em></p>
<p><strong>Nguyên tắc 1: Công việc không nuôi người nhàn hạ, tập thể không nuôi những kẻ lười.</strong></p>
<p><strong>Nguyên tắc 2: Vào một công ty làm việc, đừng chỉ chăm chăm vào việc kiếm tiền, trước tiên hãy học sao cho mình đáng tiền.</strong></p>
<p><strong>Nguyên tắc 3: Không có ngành nào là dễ kiếm tiền cả.</strong></p>
<p><strong>Nguyên tắc 4: Làm việc, không có nơi nào là thuận lợi cả, ức chế bực dọc là chuyện bình thường.</strong></p>
<p><strong>Nguyên tắc 5:</strong></p>
<ul>
<li>
<p><strong>Không kiếm được tiền, thì kiếm được kiến thức.</strong></p>
</li>
<li>
<p><strong>Không kiếm được kiến thức thì kiếm được kinh nghiệm.</strong></p>
</li>
<li>
<p><strong>Không kiếm được kinh nghiệm, thì kiếm được trải nghiệm.</strong></p>
</li>
<li>
<p><strong>Khi kiếm được những thứ trên rồi, thì không sợ không kiếm được tiền.</strong></p>
</li>
</ul>
<p><strong>Nguyên tắc 6: Chỉ khi thay đổi thái độ của bản thân, ta mới có thể thay đổi được chỗ đứng của mình trong xã hội. Chỉ khi thay đổi thái độ làm việc của bản thân, ta mới có được vị trí cao trong nghề nghiệp.</strong></p>
<p><strong>Nguyên tắc 7: Nguyên nhân khiến con người ta cảm thấy mơ hồ chỉ có một. Đó chính là trong những năm tháng mà đáng ra ta nên phấn đấu, nên làm việc chăm chỉ thì ta lại nghĩ quá nhiều, nhưng lại làm quá ít!</strong></p>
<p><strong><em>Hãy luôn nhớ: Làm việc bằng cái tâm!</em></strong></p>
<p><em>(sưu tầm)</em></p>
</description>
</item>
<item>
<title>6 Điều Salesman cần phải nhớ</title>
<link>/2018/11/6-dieu-salesman-can-phai-nho-2/</link>
<pubDate>Sat, 17 Nov 2018 18:30:56 +0700</pubDate>
<guid>/2018/11/6-dieu-salesman-can-phai-nho-2/</guid>
<description><p>Điều 1: &ldquo;Không bỏ hết trứng vào 1 giỏ&rdquo;. Đừng chỉ trông chờ vào 1 nhóm khách hàng tiềm năng có sẵn, phải liên tục mở rộng danh sách khách hàng tiềm năng của mình để giảm &ldquo;rủi ro&rdquo; xuống thấp nhất. Ưu tiên nhưng không có nghĩa là không chuẩn bị cho mình tư thế trong tình huống xấu nhất.</p>
<p>Điều 2: &ldquo;Ba mươi chưa phải là tết&rdquo;. Chưa cầm được tiền của khách hàng thì chưa có gì là chắc chắn, rủi ro dù chỉ 0,1% thì vẫn là rủi ro, vẫn phải tập trung và chắc chắn đến phút thứ 01 của ngày mồng 1 nhé các bạn.</p>
<p>Điều 3: &ldquo;Tiết kiệm là quốc sách&rdquo;. Dù là công ty nhớn hay nhỏ, ngân sách nhiều hay ít thì sales cũng phải học cách tiết kiệm, biết chắt chiu và coi trọng từng data, từng dữ liệu khách hàng, không được hời hợt dễ dàng buông khách.</p>
<p>Điều 4: &ldquo;Hay làm thì giàu, hay cầu thì nghèo&rdquo;. Đừng nhìn thằng sales khác có thu nhập cao, có nhà có xe mà ngồi đó ước, phải lao vào làm, đừng hỏi nó nó đã thành công như thế nào mà hãy hỏi nó đã thất bạu như thế nào.</p>
<p>Điều 5: &ldquo;Tốc độ là tối quan trọng&rdquo;. Khách hàng biết đến mình trước thì cơ hội chiến thắng sẽ cao hơn. Chính vì vậy phải cố gắng là kẻ đến trước.</p>
<p>Điều 6: &ldquo;Không có cạnh tranh thì không có sales giỏi&rdquo;. Chỉ khi vứt thằng sales vào 1 thị trường đầy rẫy những những thằng sales khác, áp lực hàng ngày từ chính đối thủ và cả đồng đội của mình thì sales mới phát huy được hết tư duy của mình. Chính vì vậy nếu môi trg ko áp lực thì đừng vội mừng nhé.</p>
<p><strong>8 NGUYÊN TẮC cho salesman</strong></p>
<p>Nguyên tắc 1: Khách hàng không có &ldquo;GIÀU - NGHÈO&rdquo;, &ldquo;giàu&rdquo; chưa chắc đã sẵn sàng chi tiền mua sản phẩm của mình.</p>
<p>Nguyên tắc 2: Sản phẩm không có &ldquo;ĐẮT - RẺ&rdquo;, đắt với người này nhưng lại rẻ với người khác, quan trọng là tìm được khách phù hợp.</p>
<p>Nguyên tắc 3. Sản phẩm không có &ldquo;HOÀN HẢO&rdquo; vì nhu cầu con người là không giới hạn.</p>
<p>Nguyên tắc 4. LƯỢNG sau đó mới đến CHẤT. Chưa làm đủ (gọi điện đủ nhiều, tiếp cận đủ lớn, chốt đủ nhiều,&hellip;) thì đừng mơ tối ưu vì sẽ chả biết tối ưu cái gì.</p>
<p>Nguyên tắc 5. Bán hàng thì phải có &ldquo;TỪ CHỐI&rdquo; việc là phải ĐỐI MẶT chứ không phải là lẩn tránh.</p>
<p>Nguyên tắc 6. Chốt sales không khó mà khó là chúng ta không dám chốt.</p>
<p>Nguyên tắc 7. Giỏi không phải nhờ học mà là do LÀM, làm thì mới thạo.</p>
<p>Nguyên tắc 8. Thu nhập không phải do ngày công mà là do KẾT QUẢ chúng ta mang lại.</p>
<p>(bài viết từ Facebook
<a href="https://www.facebook.com/salesman.duong" target="_blank" rel="noopener">Đỗ Đăng Dương</a>)</p>
</description>
</item>
<item>
<title>Restore Mssql Database sử dụng Sql Scripts T-Sql</title>
<link>/2018/07/restore-mssql-database-su-dung-sql-scripts-t-sql/</link>
<pubDate>Tue, 17 Jul 2018 00:00:00 +0000</pubDate>
<guid>/2018/07/restore-mssql-database-su-dung-sql-scripts-t-sql/</guid>
<description><p>Theo cách thông thường, để restore Database MSSQL server từ file backup, chúng ta thường sử dụng giao diện đồ họa của SQL Server Management Studio (SSMS). Tuy nhiên, vì lý do gì đó mà không thể mở hoặc trên máy chưa có sẵn SSMS.
Trong bài viết này chúng ta sẽ cùng tìm hiểu các để restore database MSSQL từ file backup mà không cần sử dụng SSMS.</p>
<ul>
<li><strong>Bước đầu tiên chúng ta cần làm là lấy danh sách file logic từ bản backup</strong></li>
</ul>
<pre><code class="language-sql">RESTORE FILELISTONLY
FROM DISK = 'D:\FileBackup.bak'
</code></pre>
<ul>
<li><strong>Sau khi có được tên file logic (từ cột LogicalName), chúng ta sử dụng nó trong việc Restore Database.</strong></li>
</ul>
<pre><code class="language-sql">-- Thiết lập Database đơn người dùng
ALTER DATABASE DBName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
-- Restore
RESTORE DATABASE DBName
FROM DISK = 'D:\FileBackup.bak'
WITH MOVE 'DBLogicalNameMDF' TO 'D:\DBMDFFile.mdf',
MOVE 'DBLogicalNameLDF' TO 'D:\DBMDFFile.ldf'
-- Thực hiện lệnh sau để thiết lập Database đa người dùng
ALTER DATABASE DBName SET MULTI_USER
</code></pre>
<p><strong><em>Chúc bạn thành công!</em></strong></p>
</description>
</item>
<item>
<title>How to Enable Tcp Ip for Sql Server Using Command Line</title>
<link>/2018/07/how-to-enable-tcp-ip-for-sql-server-using-command-line/</link>
<pubDate>Thu, 05 Jul 2018 18:31:22 +0700</pubDate>
<guid>/2018/07/how-to-enable-tcp-ip-for-sql-server-using-command-line/</guid>
<description><p>Trong quá trình làm việc với MS SQL Server, để config cho phép SQL Server làm kết nối trong mạng thông qua TCP/IP hoặc Named pipes. Bạn thường sẽ sử dụng SQL Server Configuration Management.
Tuy nhiên, vì lý do gì đó mà bạn không thể mở được SQL Server Configuration Management để thực hiện thông qua giao diện người dùng. Thật may mắn, với WMI (Windows Management Instrumentation), chúng ta có thể thực hiện việc Enable/Disable TCP/IP cho MS SQL Server thông qua cửa sổ Command Line của Windows.</p>
<p>Trong cửa sổ cmd, thực hiện các lệnh sau:</p>
<ul>
<li><strong>Để enable TCP/IP</strong></li>
</ul>
<pre><code>WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Tcp' CALL SetEnable
</code></pre>
<ul>
<li><strong>Để disable TCP/IP</strong></li>
</ul>
<pre><code>WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Tcp' CALL SetDisable
</code></pre>
<ul>
<li><strong>Để enable named pipes</strong></li>
</ul>
<pre><code>WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Np' CALL SetEnable
</code></pre>
<ul>
<li><strong>Để disable named pipes</strong></li>
</ul>
<pre><code>WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Np' CALL SetDisable
</code></pre>
<p>Trong các lệnh trên, thay thế <strong>ComputerManagement10</strong> thành <strong>ComputerManagement11</strong> nếu bạn đang làm việc với SQL Server 2012.</p>
<p>Sau khi Enable Tcp/Ip cho Sql Server, bạn cần phải restart lại services SQL Server để có hiệu lực.</p>
<p><strong><em>Bonus:</em></strong> Đôi khi sau khi đã enable Tcp/Ip và restart service rồi nhưng vẫn chưa thể truy cập vào SQL từ máy khác. Bạn cần kiểm tra lại firewall xem đã mở port 1433 (port mặc định) của SQL Server chưa.
Sử dụng lệnh sau để mở port SQL Server:</p>
<pre><code>netsh advfirewall firewall add rule name=&quot;Open Port for Sql Server&quot; dir=in action=allow protocol=TCP localport=1433
</code></pre>
</description>
</item>
<item>
<title>Làm thuê và làm chủ</title>
<link>/2018/07/lam-thue-va-lam-chu/</link>
<pubDate>Wed, 04 Jul 2018 18:31:35 +0700</pubDate>
<guid>/2018/07/lam-thue-va-lam-chu/</guid>
<description><p>Tôi đọc được bài này hay từ blog của anh Dương Ngọc Thái, xin phép share về blog của mình.
<a href="https://vnhacker.blogspot.com/2018/03/lam-thue-va-lam-chu.html" target="_blank" rel="noopener">Bài gốc tại đây</a></p>
<hr>
<p>Bà chủ một doanh nghiệp đăng đàn trên VNExpress
<a href="https://vnexpress.net/tin-tuc/goc-nhin/huong-nghiep-o-be-3728785.html" target="_blank" rel="noopener">viết rằng</a>:</p>
<blockquote>
<p>Đã vậy, sau khi cứng cáp một chút, nhiều bạn ngay lập tức ngó nghiêng, nhảy việc. Thực tế đó khiến nhiều doanh nghiệp rất ngại tuyển sinh viên mới ra trường mà luôn yêu cầu tối thiểu vài năm kinh nghiệm. Nó cũng gây ấn tượng không đẹp đến hình ảnh, uy tín, chất lượng của lao động Việt Nam trong con mắt nhà tuyển dụng nước ngoài.</p>
</blockquote>
<p>Tôi có cảm giác bà chủ doanh nghiệp này nghĩ rằng thuê sinh viên mới ra trường là ban ơn cho họ, nên sinh viên cứng cáp rồi bỏ đi là đồ vong ơn. Mối quan hệ giữa nhân viên với công ty là một hợp đồng làm ăn, thuận mua vừa bán, chẳng có ơn nghĩa gì ở đây cả. <strong>Nếu người làm chủ cảm thấy ban phát ơn huệ khi thuê một ai đó, tức là họ đã thuê nhầm người. Nếu người làm thuê không muốn ra đi vì cảm thấy phải trả ơn, tức là họ đã ở nhầm chỗ</strong>.</p>
<p>Nếu là chủ, khi nhân viên không thấy hạnh phúc, muốn ra đi, tôi sẽ làm hết sức để họ hạnh phúc, giữ họ ở lại. Tôi sẽ tạo ra dự án thú vị, đào tạo, huấn luyện, tạo điều kiện để nhân viên thăng tiến về chuyên môn, có một sự nghiệp, trở thành một phần của một cái gì đó lớn hơn và đương nhiên tôi sẽ tăng lương thưởng. Nếu sau khi đã làm tất cả, nhân viên vẫn muốn ra đi, tôi sẽ cảm ơn và viết cho họ một thư giới thiệu. Trách nhân viên không chuyên nghiệp, nhưng liệu bà chủ có chuyên nghiệp hay chưa?</p>
<p>Người làm chủ phải hiểu rằng để thu hút nhân tài họ cần phải có một chế độ đãi ngộ tương xứng và phải tôn trọng người làm việc cho mình. Các công ty ở Silicon Valley cho nhân viên bay business class, ở khách sạn 5 sao, ăn nhà hàng Michelin, còn các công ty Việt Nam sang Silicon Valley tuyển người bằng &ldquo;lương thấp, đãi ngộ không có gì, nhưng mà đây là giúp đỡ đất nước mà&rdquo;, khắm chịu không nổi.</p>
<p>Người ta muốn nghỉ việc vì điều kiện làm việc không tốt hoặc có cơ hội khác tốt hơn, chứ chẳng ai muốn nghỉ chỉ để &ldquo;gây ấn tượng không đẹp đến hình ảnh, uy tín, chất lượng của lao động Việt Nam trong con mắt nhà tuyển dụng nước ngoài&rdquo;. Mà trời ạ, nhà tuyển dụng nước ngoài là cái quái gì mà phải lo họ nghĩ xấu về mình? Thuận mua vừa bán, tuyển dụng nước nào không hiểu được nguyên lý cơ bản đó thì cũng chẳng đáng nghĩ đến làm gì.</p>
<p><em>Bà chủ dẫn lời một ông chủ khác:</em></p>
<blockquote>
<p>Một tổng giám đốc công ty Việt Nam đứng dậy nói ngay: “Thách thức lớn mà các công ty Việt Nam phải đối mặt là cách nghĩ lệch lạc về việc làm và lao động đã ăn sâu vào gốc rễ từng gia đình. Còn năng suất, thực sự có thể cải thiện bằng việc đầu tư máy móc, công nghệ và quy trình”.</p>
</blockquote>
<blockquote>
<p>Ông so sánh, người Nhật được giáo dục từ nhỏ rằng tìm việc tại một công ty quan trọng không khác gì việc tìm bạn đời. Sự tận tụy và trung thành được đặt ở gạch đầu dòng trên cùng danh sách các viên gạch làm nên sự nghiệp. Những người càng đổi việc qua nhiều nơi, càng khó được tuyển dụng vào nơi mới.
Tôi nghĩ thách thức đúng là suy nghĩ lệch lạc, nhưng không phải của nhân viên mà của những người làm chủ. Tận tụy và trung thành chẳng quan trọng bằng có làm được việc hay không, có phù hợp với công việc hay không. Thị trường người lao động và chủ lao động tuân theo cung và cầu và được điều chỉnh bởi bàn tay vô hình. <strong>Đi ngược quy luật thị trường có thể đã dẫn đến một nước Nhật dậm chân tại chỗ mấy chục năm qua &ndash; thật khó hiểu tại sao người ta lại cứ lấy đó làm gương.</strong></p>
</blockquote>
<p>Tôi trung thành với công ty của tôi. Tôi không làm gì gây hại cho công ty (ví dụ như bán dữ liệu, công nghệ cho đối thủ). Tôi luôn quảng bá, giới thiệu, khuyến khích người khác sử dụng sản phẩm dịch vụ của công ty. Tôi luôn làm việc hết sức, làm tròn trách nhiệm và hơn thế nữa. Nếu thấy vấn đề không ổn, gây lãng phí, cần phải sửa, tôi sẽ nhảy vào sửa hoặc báo cho người khác, mặc dù có thể đó không phải là việc của tôi. Không có vấn đề gì ở công ty là vấn đề của người khác. Tôi ở trên một chiếc thuyền và tôi sẽ làm tất cả với những người khác để thuyền về đích.</p>
<p>Nhưng trung thành không có nghĩa là tôi phải gắn bó suốt đời. Công ty không phải là gia đình. Mỗi lần nghe sếp nói &ldquo;chúng ta là một gia đình&rdquo; tôi bắt đầu đi tìm việc khác. Tôi có bạn ở công ty, nhưng công ty không phải là bạn của tôi. Tôi luôn làm việc hết mình, nhưng tôi cũng luôn cân nhắc các cơ hội khác. Việc đó chẳng có gì là phi đạo đức, vì mối quan hệ giữa hai bên vẫn là thuận mua vừa bán.</p>
<p>Không những yêu cầu người làm thuê phải trung thành một cách vô lý, các ông bà chủ và cả xã hội Việt Nam còn rất xem thường người làm thuê. Tôi tìm trên Google cụm từ
<a href="https://www.google.com/search?q=%22c%c5%a9ng&#43;ch%e1%bb%89&#43;l%c3%a0&#43;l%c3%a0m&#43;thu%c3%aa%22&amp;oq=%22c%c5%a9ng&#43;ch%e1%bb%89&#43;l%c3%a0&#43;l%c3%a0m&#43;thu%c3%aa%22&amp;aqs=chrome..69i57.3013j0j1&amp;sourceid=chrome&amp;ie=UTF-8" target="_blank" rel="noopener">&ldquo;cũng chỉ là làm thuê&rdquo;</a> thấy có hơn 30 ngàn kết quả. Mới đây một vị giáo sư toán đầu ngành ở Việt Nam tuyên bố
<a href="http://news.zing.vn/hoc-sinh-viet-nam-gioi-nhung-khong-nhieu-dau-an-tren-dinh-tri-tue-post771143.html" target="_blank" rel="noopener">&ldquo;nếu học tốt mà không sáng tạo chỉ là người đi làm thuê&rdquo;</a>.</p>
<p>Tôi tò mò vì đâu mà xã hội Việt Nam không xem trọng người làm thuê. Có lẽ từ câu châm ngôn
<a href="http://luatkhoa.info/2017/09/quoc-gia-dang-song-khi-nguoi-dan-khong-con-tam-niem-phi-thuong-bat-phu/" target="_blank" rel="noopener">&ldquo;phi thương bất phú&rdquo;</a>? Tôi đồ rằng văn hóa xem nhẹ người làm thuê có căn nguyên từ văn hóa xem tiền bạc, sự giàu có là thước đo giá trị con người. Ai giàu hơn, ai thành công hơn, người đó ắt thông minh, làm việc chăm chỉ hơn, tài năng hơn, phẩm giá cao hơn, đánh rắm cũng thơm hơn người khác (nhưng kỳ thực, rất có thể chỉ là do họ mới đi ỉa mà thôi).</p>
<p><strong>Nếu ông chủ bà chủ nào cũng xem thường người làm thuê, &ldquo;chỉ có không làm chủ được mới đi làm thuê&rdquo;, làm sao họ tuyển được người tài giỏi? Ngược lại, nếu người làm thuê nào cũng ngong ngóng muốn làm chủ, &ldquo;làm thuê suốt đời sao khá nổi&rdquo;, làm sao họ an tâm trao dồi để leo lên những nấc thang mới trong chuyên môn của họ?</strong></p>
<p>Phải chẳng đây là căn nguyên tại sao Việt Nam có ít sản phẩm được biết đến rộng rãi trên thế giới? Các doanh nghiệp không thu hút đủ người tài giỏi để làm ra những sản phẩm đẳng cấp. Anh làm marketing giỏi một chút sẽ mở công ty làm tổ chức sự kiện. Chị làm lập trình giỏi một chút sẽ mở công ty làm outsourcing. Kết quả là một đống doanh nghiệp làng nhàng tạo ra một đống sản phẩm làng nhàng.</p>
</description>
</item>
<item>
<title>About Me</title>
<link>/about/</link>
<pubDate>Thu, 28 Jun 2018 00:00:00 +0100</pubDate>
<guid>/about/</guid>
<description><h2 id="hi-im-chung">Hi, I&rsquo;m Chung</h2>
</description>
</item>
<item>
<title>Round Up hoặc Round Down Trong Sql Server</title>
<link>/2018/05/round-up-hoac-round-down-trong-sql-server/</link>
<pubDate>Sun, 13 May 2018 18:31:45 +0700</pubDate>
<guid>/2018/05/round-up-hoac-round-down-trong-sql-server/</guid>
<description><p>Trong Excel, ngoài hàm ROUND để làm tròn số thì Microsoft còn cung cấp cho chúng ta các hàm ROUNDUP và ROUNDDONW để làm tròn lên hoặc xuống đối với 1 số. Ví dụ ROUNDUP(13.1135,2) = 13.1.</p>
<p>Với MS Sql Server, chúng ta không có hàm làm tròn lên hoặc xuống nhưng có thể dễ dàng làm được điều này bằng các sử dụng hàm CEILING và FLOOR để lấy giá trị trần và giá trị sàn của một số.</p>
<pre><code class="language-sql">DECLARE @value decimal(10,2)
SET @value = 50.516171
SELECT ROUND(@value, 2) RoundNumber
SELECT CEILING(@value) CeilingNumber
SELECT FLOOR(@value) FloorNumber
</code></pre>
<p>Hy vọng bạn thấy bài viết này hữu ích.</p>
</description>
</item>
<item>
<title>Một số Extensions hữu ích cho safari</title>
<link>/2017/11/mot-so-extensions-huu-ich-cho-safari/</link>
<pubDate>Sat, 25 Nov 2017 00:00:00 +0000</pubDate>
<guid>/2017/11/mot-so-extensions-huu-ich-cho-safari/</guid>
<description><ol>
<li>
<p>Translate Me: <a href="http://marekpiechut.github.io/translate/">http://marekpiechut.github.io/translate/</a></p>
</li>
<li>
<p>Url Shortly: <a href="https://github.com/ZZHC/Shortly">https://github.com/ZZHC/Shortly</a></p>
</li>
<li>
<p>QR Code generator: <a href="http://www.qrutils.com/browser-extensions-addons-accelerators">http://www.qrutils.com/browser-extensions-addons-accelerators</a></p>
</li>
<li>
<p>OneNote Clipper: <a href="https://www.onenote.com/clipper">https://www.onenote.com/clipper</a></p>
</li>
<li>
<p>Tab Lister (giống onetab trong chrome): <a href="https://tablister.com">https://tablister.com</a></p>
</li>
</ol>
</description>
</item>
<item>
<title>Encrypt and Decrypt Connection Strings in Web Config</title>
<link>/2017/10/encrypt-and-decrypt-connection-strings-in-web-config/</link>
<pubDate>Tue, 24 Oct 2017 00:00:00 +0000</pubDate>
<guid>/2017/10/encrypt-and-decrypt-connection-strings-in-web-config/</guid>
<description><h3 id="introduction">Introduction:</h3>
<p>Today in this article, I will explain how we can encrypt and secure our connection string in web config file. This post provides a basic reference on how basic protection can be achieved using the aspnet_regiis.exe tool, by default installed with .Net Framework.</p>
<p>So it is always recommended to encrypt the connection string of your application because the data we have here is highly sensitive. It must be secured. Here I am going to show you a demo of how we can do that,</p>
<p>Follow these instructions in order to implement “Encrypt and Decrypt Connection Strings in Web.config Using aspnet_regiis.exe”</p>
<h3 id="plain-connection-string-in-webconfig-file-before-encryption">Plain Connection String in Web.config file before encryption.</h3>
<p>Below screenshot shows the plain connection string before encryption
<img src="download.png" alt=""></p>
<h3 id="open-developer-command-prompt">Open Developer Command Prompt.</h3>
<p>You will need to open Developer Command Prompt from Start Menu &gt; Microsoft Visual Studio 2013 &gt; Common7 &gt; Tools &gt; Shortcuts</p>
<p>Note: You must be log in as Administrator and right click Developer command prompt Prompt and select <strong>Run as Administrator</strong>.
<img src="download-1.png" alt=""></p>
<p><strong>Note</strong>: In this Article, I explain the process using Microsoft Visual Studio 2013. This process is same for the other versions. The only difference will be that you need to open Visual Studio Command Prompt from the folder of their respective version of Visual Studio installed on your computer.</p>
<h3 id="encrypting-the-connection-string-in-webconfig-using-aspnet_regiisexe-tool">Encrypting the Connection String in Web.Config using aspnet_regiis.exe tool.</h3>
<p>For encrypt the connection string in the Web.config file, you will need to use the <strong>aspnet_regiis.exe tool</strong>.</p>
<p><strong>Syntax:</strong></p>
<pre><code>aspnet_regiis.exe -pef &quot;connectionStrings&quot; &quot;&lt;Path of the Folder containing the Web.Config file&gt;&quot;
</code></pre>
<p>This command requires 3 arguments:</p>
<ol>
<li>–pef: It represents the action to be performed. In order to perform Encryption, the parameter value is -pef.</li>
<li>connectionStrings: It represents section of the Web.Config file to be encrypted. For this case, the value will be connectionStrings.</li>
<li>Path of Folder: Here we need to provide the path of folder that containing the Web.config file</li>
</ol>
<p><strong>Example:</strong></p>
<pre><code>aspnet_regiis.exe -pef &quot;connectionStrings&quot; &quot;D:\My Project\Testwebsite&quot;
</code></pre>
<p><img src="download-2.png" alt="">
Above command will encrypt the all the Connection Strings in the connectionStrings section of Web.Config file.</p>
<p><strong>Connection String in Web.config file after Encryption</strong>
<img src="download-3.png" alt=""></p>
<h3 id="access-the-encrypted-connection-string-in-code-behind">Access the Encrypted Connection String in Code behind</h3>
<p>Asp.net will automatically decrypt the connection string when it is fetched in code behind, so you need to access the connection string in same way as you would be in a general way</p>
<pre><code>public partial class _Default : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[&quot;con&quot;].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
}
}
</code></pre>
<h3 id="decrypt-the-connection-string-in-webconfig-using-aspnet_regiisexe">Decrypt the Connection String in Web.Config using aspnet_regiis.exe</h3>
<p>For decrypting the ConnectionString section in the Web.Config file, we will need to use the aspnet_regiis.exe tool that was used for encryption.</p>
<p>Syntax:</p>
<pre><code>aspnet_regiis.exe -pdf &quot;connectionStrings&quot; &quot;&lt;Path of the Folder containing the Web.Config file&gt;&quot;
</code></pre>
<p>This command requires 3 arguments:</p>
<ol>
<li>–pdf: It represents the action to be performed. In order to perform Decryption, the parameter value is -pdf.</li>
<li>connectionStrings: It represents section of the Web.Config file to be decrypted. For this case, the value will be connectionStrings.</li>
<li>Path of Folder: Here we need to provide the path of folder that containing the Web.config file</li>
</ol>
<p><strong>Example:</strong></p>
<pre><code>aspnet_regiis.exe -pdf &quot;connectionStrings&quot; &quot;D:\My Project\Testwebsite&quot;
</code></pre>
<p><img src="download-4.png" alt="">
Above command will decrypt the all the Connection Strings in the connectionStrings section of Web.Config file.</p>
<p>Note: This decryption process is machine specific means, connectionStrings can be decrypted on the same machine where we perform encryption.</p>
<p>Theo:
<a href="http://tutorialslink.com/" target="_blank" rel="noopener">tutorialslink</a></p>
</description>
</item>
<item>
<title>Sữa lỗi Validation of Viewstate MAC Failed Khi Host Web Asp Net</title>
<link>/2016/12/sua-loi-validation-of-viewstate-mac-failed-khi-host-web-asp-net/</link>
<pubDate>Thu, 15 Dec 2016 00:00:00 +0000</pubDate>
<guid>/2016/12/sua-loi-validation-of-viewstate-mac-failed-khi-host-web-asp-net/</guid>
<description><p>Khi ta dev website bằng ASP.NET, test thử trên localhost thì chạy rất tốt. Tuy nhiên, khi host website này trên web-hosting mà có nhiều website cùng chạy thì thường gặp phải lỗi sau:</p>
<pre><code>Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that &lt;machineKey&gt; configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
</code></pre>
<p>Bạn có thể giải quyết lỗi trên bằng cách thêm dòng cấu hình sau vào giữa thẻ <code>&lt;system.web&gt;</code> trong file <code>web.config</code></p>
<pre><code>&lt;system.web&gt;
&lt;pages enableViewState=&quot;false&quot; /&gt;
&lt;/system.web&gt;
</code></pre>
<p>Tuy nhiên, việc disable ViewState sẽ khiến cho website của bạn kém bảo mật hơn.
Một cách khác là thêm <code>machineKey</code> vào file cấu hình.</p>
<pre><code>&lt;system.web&gt;
&lt;machineKey validationKey=&quot;CB6A48DD7D192C2576A368D8322BA41C74B8304225DB5DD6C80CC1F3DC33F427BCFCF7ED7CAA947AF863B2A3C16E3D5B9E20525023062C9B277D9FB03A811F5D&quot; decryptionKey=&quot;BC3570D4D14569DA4C3BC4F2927F61AF751740EE6FE6DACBFC2A0AD8D8ACCEC8&quot; validation=&quot;SHA1&quot; decryption=&quot;AES&quot; /&gt;
&lt;/system.web&gt;
</code></pre>
<p>Để sinh machineKey, bạn có thể sử dụng các tools miễn phí:</p>
<p><a href="http://tek.dev.eten.vn/dotNet/MachineKeyGenerator/">http://tek.dev.eten.vn/dotNet/MachineKeyGenerator/</a>
<a href="http://www.developerfusion.com/tools/generatemachinekey/">http://www.developerfusion.com/tools/generatemachinekey/</a></p>
</description>
</item>
<item>
<title>Sql Server Attach Database với File Mdf</title>
<link>/2016/11/sql-server-attach-database-voi-file-mdf/</link>
<pubDate>Sat, 19 Nov 2016 00:00:00 +0000</pubDate>
<guid>/2016/11/sql-server-attach-database-voi-file-mdf/</guid>
<description><p>Như bạn biết, khi tạo mới Database trong SQL Server, sẽ có ít nhất 2 file được tạo ra trên đĩa cứng (MDF và LDF).</p>
<p>Nếu bạn nhận được chỉ với file MDF của database, hãy thực hiện lệnh sau đây để attach database đó vào SQL Server nhé.</p>
<pre><code class="language-sql">USE [master]
GO
EXEC sp_attach_single_file_db @dbname='tên db',
@physname=N'Đường dẫn tới file .mdf'
</code></pre>
<p>Ví dụ, bạn có file Northwind.mdf trong thư mục C:\DbTest, bạn chạy lệnh sau để attach database vào:</p>
<pre><code class="language-sql">USE [master]
GO
EXEC sp_attach_single_file_db @dbname='Northwind',
@physname=N'C:\DbTest\Northwind.mdf'
</code></pre>
</description>
</item>
<item>
<title>Sql Server Take Offline Database Bi Treo</title>
<link>/2016/11/sql-server-take-offline-database-bi-treo/</link>
<pubDate>Sat, 19 Nov 2016 00:00:00 +0000</pubDate>
<guid>/2016/11/sql-server-take-offline-database-bi-treo/</guid>
<description><p>Đôi khi, bạn cần phải Take offline một Database vì một vài lý do (Backup, restore, bảo trì server hoặc bất cứ điều gì). Điều này khá đơn giản, cách thường làm là: mở SQL Server Management Studio, expand danh sách Databases, chọn Database cần Take offline, Click phải lên Database đó và chọn &ldquo;Tasks / Take Offline&rdquo; từ context menu.</p>
<p>Sẽ không có gì đánh nói nếu mọi chuyện xảy ra bình thường (database take offline và cửa sổ Take database offline đóng lại). Tuy nhiên, không phải lúc nào mọi chuyện cũng xảy ra như những gì ta muốn, đôi khi bạn sẽ thấy cửa sổ Take database offline treo mãi và không chịu đóng. Lý do là cơ sở dữ liệu của bạn vẫn còn đang được truy cập bởi một số người dùng hoặc ứng dụng từ client đến.</p>
<p>Để kiểm tra các kết nối đang hoạt động, mở New Query và chạy đoạn T-SQL sau:</p>
<pre><code class="language-sql">SELECT db_name(dbid) as DB,
count(dbid) as Connections,
loginame as Login
FROM sys.sysprocesses
WHERE dbid = DB_ID('&lt;tendb&gt;')
GROUP BY dbid, loginame
ORDER BY DB
</code></pre>
<p>Bạn sẽ nhìn thấy danh sách và số lượng user đang kết nối đến CSDL. Việc tiếp theo là bạn sẽ cần phải &ldquo;kill&rdquo; các kết nối này để làm tiếp việc của bạn.</p>
<pre><code>-- Kill processes đang sử dụng
use master
DECLARE @SQL AS VARCHAR(20), @spid AS INT
SELECT @spid = MIN(spid) FROM master..sysprocesses WHERE dbid = db_id('TenDatabase') AND spid != @@spid
while (@spid IS NOT NULL)
BEGIN
print 'Killing process ' + CAST(@spid AS VARCHAR) + ' ...'
SET @SQL = 'kill ' + CAST(@spid AS VARCHAR)
EXEC (@SQL)
SELECT @spid = MIN(spid) FROM master..sysprocesses WHERE dbid = db_id('TenDatabase') AND spid != @@spid
END
GO
</code></pre>
<pre><code class="language-sql">alter database &lt;tendb&gt; set restricted_user with rollback immediate
</code></pre>
<p>Câu lệnh trên sẽ kết thúc các kết nối, rollbak các transaction của các user đó và chỉ cho phép user có đặc quyền truy cập tới database.
Sau khi hoàn thành mọi việc, bạn trả về trạng thái đa người dùng cho Database bằng lệnh sau:</p>
<pre><code class="language-sql">alter database &lt;tendb&gt; set multi_user
</code></pre>
<p>Một các khác đơn giản hơn để take offline database trong trường hợp này là chạy lệnh sau:</p>
<pre><code class="language-sql">alter database &lt;tendb&gt; set offline with rollback immediate
</code></pre>
<p>Câu lệnh này sẽ đóng các kết nối, rollback các transaction và thực hiện việc take offline database.</p>
<p>Chúc các bạn thàng công!</p>
</description>
</item>
<item>
<title>Trên cây có 10 con chim, bắt chết 1 con hỏi còn mấy con</title>
<link>/2016/11/tren-cay-co-10-con-chim-ban-chet-1-con-hoi-con-lai-may-con/</link>
<pubDate>Fri, 18 Nov 2016 00:00:00 +0000</pubDate>
<guid>/2016/11/tren-cay-co-10-con-chim-ban-chet-1-con-hoi-con-lai-may-con/</guid>
<description><p><em>Đây là một câu chuyện tôi đọc được trên mạng, khá thú vị. Theo tôi, nó nên được đưa vào giáo trình để dạy cho sinh viên ngành hệ thống thông tin hoặc các các doanh nghiệp đào tạo BA.</em></p>
<p><img src="/content/images/2016/11/tren-cay-co-10-con-chim-ban-chet-1-con-hoi-tren-cay-con-lai-may-con.jpg" alt="">
<strong>Thầy giáo hỏi</strong>: <em>“Trên cây có 10 con chim, người thợ săn nổ súng bắn chết 1 con, hỏi trên cây còn lại mấy con?”</em></p>
<p><strong>Học trò</strong>: <em>“Thưa thầy, cho em hỏi đó là súng lục không tiếng động, hay là những khẩu súng nào khác không có tiếng động?”.</em></p>
<p><strong>Thầy</strong>: <em>“Không phải là khẩu súng lục không có tiếng động, cũng không phải là những khẩu súng nào khác không có tiếng động”.</em></p>
<p><strong>Trò</strong>: <em>“Âm thanh của khẩu súng là bao nhiêu?”</em></p>
<p><strong>Thầy</strong>: <em>“Khoảng 80 đến 100 đề-xi-ben”.</em></p>
<p><strong>Trò</strong>: <em>“Nói vậy là tiếng súng sẽ chấn động đến điếc cả tai, đúng không thầy?”</em></p>
<p><strong>Thầy</strong>: <em>“Đúng”.</em></p>
<p><strong>Trò</strong>: <em>“Ở vùng đó, bắn chim có vi phạm pháp luật hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Không phạm pháp”.</em></p>
<p><strong>Trò</strong>: <em>“Thầy có chắc chắn rằng con chim đó đã thật sự bị bắn chết hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Chắc chắn”.</em></p>
<p>Thầy giáo có phần không còn kiên nhẫn nữa: <em>“Làm ơn đi, em chỉ cần nói cho thấy biết là còn lại mấy con chim là được rồi nha”.</em></p>
<p><strong>Trò</strong>: <em>“Dạ! Cho em hỏi, trong số những con chim đó, có con nào bị điếc hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Không có”.</em></p>
<p><strong>Trò</strong>: <em>“Trong số đó có con nào đầu óc có vấn đề không ạ? Chính là ngốc đến nỗi khi nghe thấy tiếng súng nổ mà cũng không biết bay đó?”.</em></p>
<p><strong>Thầy</strong>: <em>“Không có, chỉ số thông minh là từ 200 trở lên !”.</em></p>
<p><strong>Trò</strong>: <em>“Có con nào bị nhốt trong lồng hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Không có”.</em></p>
<p><strong>Trò</strong>: <em>“Cho em hỏi thêm, là có con chim nào bị tàn tật hay là đói đến nỗi bay không được hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Không có, con nào con nấy thân thể đều rất mạnh khỏe”.</em></p>
<p><strong>Trò</strong>: <em>“Thầy ơi, có tính tổng số chim con đang nằm trong bụng mẹ hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Toàn bộ đều là chim trống hết”.</em></p>
<p><strong>Trò</strong>: <em>“Người thợ săn có bị hoa mắt gì không, thưa thầy? Mà thầy đảm bảo là 10 con chứ?”</em></p>
<p><strong>Thầy</strong>: <em>“10 con”.</em></p>
<p>Học trò vẫn tiếp tục truy hỏi: <em>“Cho em hỏi, có con chim nào ngốc đến nỗi không sợ chết hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Toàn bộ đều sợ chết cả”.</em></p>
<p><strong>Trò</strong>: <em>“Trong đó có con nào là tình nhân của nhau hay không, ví như khi một bên bị bắn chết, bên kia cũng sẽ chủ động chết theo người yêu chẳng hạn”.</em></p>
<p><strong>Thầy</strong>: <em>“Đồ ngốc! Không phải đã nói trước với em, tất cả đều là trống cả hay sao!”.</em></p>
<p><strong>Trò</strong>: <em>“Cho em hỏi, có khi nào người thợ săn bắn một phát mà trúng hai con hay không?”</em></p>
<p><strong>Thầy</strong>: <em>“Không có”.</em></p>
<p><strong>Trò</strong>: <em>“Một phát trúng 3 con, có không hả thầy?”</em></p>
<p><strong>Thầy</strong>: <em>“Không có”.</em></p>
<p><strong>Trò</strong>: <em>“4 con thì sao?”.</em></p>
<p><strong>Thầy</strong>: <em>“Càng không thể”.</em></p>
<p><strong>Trò</strong>: <em>“5 con?”.</em></p>
<p>Thầy giáo hoàn toàn suy sụp đầu óc: <em>“Thầy xin nói lại một lần nữa, một phát súng chỉ có thể bắn trúng 1 con mà thôi!”.</em></p>