Monday, December 16, 2019

Tại sao không nên làm những task phải phụ thuộc vào kết quả của một task khác cùng sprint

Trong quá trình làm việc với team trong Scrum, đã bao giờ bạn gặp phải trường hợp tương tự thế này chưa? Task A làm rồi, task B này chỉ cần bê nguyên giao diện của task A sang rồi thêm cái lọ, cái chai vào là xong thôi, giảm một nửa điểm đi.
Thoạt nhìn thì thật đơn giản và có vẻ đúng. Nhưng khi các bạn thực hiện theo đúng phương án này thì thời gian cho task B không hiểu sao lại cứ tăng lên, và chẳng có vẻ gì là nó đáng để giảm đi một nửa điểm cả.
Hãy cùng nhìn lại để xem chuyên gì đã xảy ra nhé:
Vấn đề cơ bản nhất ở đây chính là task A cũng nằm trong sprint này. Có nghĩa là ngoại trừ khi bạn là siêu nhân, nếu không thì điều đó có nghĩa là tại thời điểm bạn làm task B, task A hoàn toàn chưa được test kỹ cẩn thận. Vẫn còn đó những case ẩn, những ngóc ngách mà khi bạn estimate vẫn chưa dự đoán được hết.
Và dĩ nhiên khi đó thay vì chỉ tốn 50% thời gian để làm task B như dự đoán thì bạn lại phải tốn thêm thời gian để triển khai một logic, hay sửa một cái bug nào đó trên cả hai task này.

Thời gian của bạn dĩ nhiên là cũng sẽ tăng lên đáng kể, hoàn toàn không như bạn mong muốn.

Như vậy điều chúng ta cần rút ra ở đây là gì ? Đó là sự khác biệt giữa dự tính và thực tế. Thực tế rõ ràng thì không lúc nào màu hồng như bạn muốn. Nếu bạn chưa phải là siêu nhân có thể estimate chuẩn khét lèn lẹt tất cả các trường hợp có thể xảy ra, bạn nên có kế hoạch tốt hơn để tránh rơi vào trường hợp này.

Vậy bạn cần phải làm gì ?

Khi có yêu cầu như trên, bạn nên xem xét tách task B sang sprint tiếp theo. Khi đó task A đã được hoàn thành và test kỹ lưỡng bởi đội tester. Rủi ro cho bạn rõ ràng là sẽ giảm đi phân nửa.

Friday, December 7, 2018

trị Mụn trứng cá



Mụn trứng cá tuy không phải là căn bệnh nguy hiểm nhưng lại gây ra nhiều khó chịu , gây ảnh hưởng lớn đến thẩm mỹ và sư tự tin trong cuộc sống hàng ngày cho người bệnh.

Nguyên nhân gây bệnh là do chất bẩn và vi khuẩn gây tắc ngẽn lỗ chân lông và gây ra hiện tượng viêm nhiễm. Ở tuổi dậy thì tuyến bài tiết hoạt động rất mạnh nên nguy cơ mắc bệnh này cũng cao hơn. Ngoài ra, những người có làn da nhờn, da dầu, da nhạy cảm cũng là đối tượng dễ mắc bệnh và dễ tái phát nhiều lần.

Để trị và phòng ngừa mụn trứng cá chúng ta có nhiều biện pháp khác nhau, từ thiên nhiên tới các loại thuốc bôi, thuốc uống trong và ngoài da. Trong các biện pháp đó , điều trị bằng Isotretinoin được coi là biện pháp cuối cùng khi những liệu pháp khác không đem lại hiệu quả.

 Oratane


Một vài thông tin về Isotretinoin :


Isotretinoin là thành phần chính trong các loại thuốc đặc trị mụn trứng cá tình trạng nặng và viêm nhiễm như Oratane, Acnotin, Isotisun. Thuốc có tác dụng toàn diện lên các quá trình phát sinh mụn trứng cá như giảm tiết tuyến nhờn, thúc đẩy liền vết mụn.

Isotretinoin là thuốc phải được dùng theo hướng dẫn của bác sỹ , thận trọng khi dùng cho người có men gan và mỡ máu cao.

Isotretinoin là thuốc có nhiều tác dụng phụ như gây quái thái cho nên tuyệt đối không dùng cho phụ nữ có thai và có kế hoạch có thai, không hiến máu trong quá trình dùng thuốc.

Isotretinoin gây giảm tăng chiều cao và sự phát triển của xương khớp cho nên không dùng thuốc cho trẻ dưỡi 12 tuổi, người đang trong giai đoạn phát triển tăng chiều cao.

các tác dụng phụ phổ biến khác như khô da,khô môi, giảm thị lực, tăng men gan, tăng tốc độ đông máu.

Không dùng vitamin A khi sử dụng thuốc vì sẽ gây ra tình trạng thừa vitamin A quá mức làm tăng thêm mức độ trầm trọng của bệnh.

Một liệu trình điều trị bằng Isotretinoin kéo dài khoảng 16 - 21 tuần. Nếu bạn cần một liệu trình nhắc lại hãy đảm bảo ngưng dùng thuốc 8 tuần trước khi điều trị.

Liều dùng thông thường cho người lớn là 0.5 - 1mg/kg cân nặng/ 1 ngày và tối đa là 2mg/kg/ngày.
Thuốc còn có tác dụng một thời gian dài sau khi ngừng điều trị.
Trước khi điều trị, bác sỹ thường sẽ cho bạn xét nghiệm men gan, mỡ máu để xác định bạn có phù hợp để điều tị bằng thuốc hay không.

Như bạn thấy, đây là một loại thuốc rất công hiệu nhưng cũng đầy rẫy tác dụng phụ, nó không phải là thần dược như nhiều bạn tưởng để có thể lạm dụng một cách vô tội vạ. Tuy nhiên nếu bạn đủ điều kiện để uống thuốc thì rõ ràng đây là một cách hiệu quả nhất.






Tiếp theo mình xin giới thiệu đơn thuốc của mình được các bác sỹ tại bệnh viện da liễu trung ương kê để các bạn tham khảo. Mình sẽ chia thành nhiều đơn khác nhau với chi tiết thuốc và những điểm cần chú ý để các bạn nắm được:

Tháng thứ 1:


1. Doxycycline 100mg(Cylindox 100mg): 15 viên , sáng 1 viên, tối 1 viên sau ăn
2. Isotretinoin 10mg (Oratane 10mg): 20 viên. Uống 1 viên vào buổi tối ngay sau khi ăn. chú ý chỉ uống sau khi dùng hết Doxycycline
3. Desloratadine 5mg (Tadaritin 5mg): 30 viên. Uống tối 1 vien sau ăn
4.  Heparos (L - Cystine 250mg + choline bita): 60 viên, sáng 1 viên, tối 1 viên sau ăn
5. Acnequidt 20ml (Metronidazol 160mg + Clindamycin 200mg): 1 lọ. chấm vào vết mụn mỗi sáng và tối.
6. Sữa rửa mặt ACM - SEBIONEX foaming gel 200ml: 1 tuýp. Rửa mặt mỗi sáng tối

Tổng thiệt hại cho đơn thuốc này là khoảng 1.500.000 vnđ.

Các bạn có thể mua online 1 số loại thuốc bên trên, sẽ tiết kiệm được một khoản kha khá.


Một số chú ý:

Như bạn thấy, tháng đầu tiên bác sỹ kê cho mình liều Isotretinoin là 10mg/1 ngày, đây là một liều nhẹ mang tính chất khởi đầu. Nếu bạn muốn đẩy nhanh quá trình trị mụn bạn có thể dùng liều 20mg. Tuy nhiên điều này là không khuyến nghị vì tình trạng bùng phát mụn những ngày đầu dùng thuốc của bạn sẽ rất mạnh.

Doxycycline cũng là một lại thuốc kháng sinh có tác dụng trị mụn nhưng ở cấp độ nhẹ hơn, nên khi sử dụng thuốc này trước rồi mới dùng Isotretinoin có tác dụng làm giảm sự bùng phát mụn khi bắt đầu dùng thuốc.



Heparos là 1 loại thực phẩm chức năng có tác dụng bổ gan, một yếu tố khá quan trọng trong quá trình điều trị. Đây không phải là thuốc. Các bác sỹ thường có xu hướng kê loại thực phẩm chức năng này bằng các loại rất đắt tiền. Bạn có thể thay thế bằng các sản phẩm khác kinh tế hơn nếu không có điều kiện như Thistle Extract 1000mg 90 viên

.



Ngay khi sử dụng viên Isotretinoin đầu tiên, bạn sẽ thấy có sự thay đổi rõ rệt trong tuyến bài tiết của bạn như da bạn sẽ giảm tiết bã nhờn rõ ràng, luôn khô thoáng cả ngày. Tuy nhiên cũng kèm theo các triệu trứng khác như khô da, khô môi từ nhẹ tới nặng. Khi đó bạn cần dùng các sản phẩm chăm sóc da và son dưỡng để cải thiện tình trạng này.

Các bạn nữ có thể tham khảo sản phẩm son dưỡng ẩm với ưu điểm rất bền màu và giá cả hợp lý, còn các bạn nam có thể sử dụng các sản phẩm dưỡng da có tác dụng rất tốt hay các sản phẩm có giá phải chăng hơn nhưng vẫn có tác dụng giảm khô da, và đặc biệt là khô môi khi dùng thuốc.


Tháng đầu tiên cũng là tháng điều trị khó khăn nhất bởi vì thực chất trông mặt bạn có khi còn ghê hơn trước khi sử dụng thuốc. Rất có thể bạn sẽ chán nản và nghĩ đến chuyện dừng điều trị. Đừng lo lắng và hãy kiên trì, đây là tác dụng của thuốc khi đẩy các nhân mụn ẩn ra ngoài. Tình trạng này sẽ giảm dần sau 1 thời gian dùng thuốc.
Khi dùng thuốc , bạn nên uống nhiều nước, hạn chế rượu bia và ăn các thực phẩm giàu canxi như tôm cua, sữa, các hoa quả có màu đỏ, hạn chế bóp mụn và tránh ánh nắng mặt trời.


Trên đây là các hướng dẫn chi tiết khi điều trị mụn trứng cá bằng Isotretinoin tháng thứ nhất. Mình sẽ tiếp tục giới thiệu đơn thuốc ở tháng thứ 2 ở một bài viết khác, các bạn nhớ đón đọc nhé.


Thân tạm biệt. Và hãy nhớ một câu quen thuộc của bác sỹ: Sau 1 tháng tái khám lại nhé..




Sunday, November 18, 2018

Thanh xuân


Cuộc đời của chúng ta là những câu chuyện. có những câu chuyện vui có những câu chuyện buồn, và có những câu chuyện khiến người khẽ mỉm cười mà khóe mắt lại hoen đỏ. Trong mỗi một cuộc đời ấy, có biết bao con đường chúng ta đã đi qua, có con đường thật ngắn, có con đường thật dài, và có những con đường quá ngắn để người ta nhận ra mình đã đi qua nhưng lại quá dài để người mắc kẹt lại tìm thấy lối ra.

Con đường ấy mang tên "thanh xuân".

Thanh xuân là thời đã qua, khi đương thời thì cao ngạo, tiêu xài hoang phí. Khi nhận ra sắp cạn kiệt thì lại cuống cuồng và tiếc nuối. Có ai đi qua thanh xuân mà không sống với những đêm dài thao thức cùng con tim nhức nhối, mắt ai chẳng một lần rưng rưng cho một lần cách xa. Có ai ngờ đâu sau này, cái giá họ phải trả cho hai chữ "lớn lên" lại là tất cả tháng ngày  tươi đẹp nhất của tuổi trẻ ấy.

Và anh, chàng trai viết lên cây với những nhớ thương cồn cào năm ấy, anh đổi thanh xuân, đổi cô, đổi những kỷ niệm tươi đẹp ngày nào lấy những tháng ngày căm cụi bươn trải. Anh đổi nụ cười ngày cũ lấy những vết chân chim nơi khóe mắt hiện tại. Anh trở thành người lớn, mà người lớn thì không có sự lựa chọn, người lớn biết rằng:

Thanh xuân của người con gái dừng lại ở tuổi hai lăm. Quá tuổi ấy những lo toan tự nhiên sẽ chôn vùi dần đi tất cả những ngày tháng tươi xanh.

Thời gian vẫn luôn trôi đi chẳng đợi chờ thanh xuân của ai cả...

Một ngày bình thường, cô lên xe hoa cũng ở tuổi hai lăm ấy. Một đám cưới bình dị và lặng lẽ. Ở một nơi xa xôi nào đó, anh vẫn đang rong ruổi với những thứ cảm xúc rối ren khác, cô nhẹ tựa như mây khói. Câu trả lời cho tin sét đánh đó chỉ là một tiếng thở dài khe khẽ, không có giọt nước mắt nào rơi trong cái khoảnh khắc lẽ ra cả thế giới sẽ vỡ vụn ra ấy. Những hò hẹn xưa đã khép lại đủ lâu, anh đã đủ lớn để ngưng cảm xúc  lại nơi cuống mũi, không còn dễ dàng trào lên khóe mắt như những ngày còn ngây dại. Họ đã xa lạ nhau, những cảm xúc ngày đó giờ là tài sản riêng của tháng năm, những chuyến đi lui dần vào kỷ niệm. Thanh xuân lọt qua những kẽ bàn tay tự bao giờ.

Câu chuyện  tưởng chừng sẽ dừng lại ở đó. Cho đến một ngày khi anh chùn chân mỏi gối sau những tháng ngày cố gắng gượng làm tất cả chỉ để kiếm thật nhiều tiền. Chỉ còn lại một màn đêm đang vây khốn, anh đang ở cái trạng thái tuyệt vọng đến cùng cực khi cuộc đời đang dồn anh đi vào ngõ cụt. Những ký ức ấy lại hiện về như một cách rất tự nhiên trái tim đã chọn để tự làm vơi đi những nỗi đau hiện tại. Những ký ức về ngày anh với cô vẫn còn lang thang trên mọi nẻo đường mà cứ ngập ngừng không dám nắm lấy bàn tay. Cái ngày nhìn má cô ửng đỏ mà lòng rối như tơ vò.Anh với cô ngày đó chỉ có những trò đùa ngẩn ngơ của cái tuổi đôi mươi, nỗi đau vẫn còn đủ ngọt ngào để thích thú chiêm nghiệm. Anh đâu ngờ rằng mình sẽ lạc lối đi xa đến dường vậy.

Trong anh bắt đầu xuất hiện quẩn quanh những câu hỏi và những chữ nếu. Nếu như anh nói ra, nếu như anh giữ cô lại, nếu như anh dám chống lại số phận. Liệu rằng nếu như tất cả điều ấy xảy ra, anh và cô có còn xa nhau đến vậy. Thanh xuân cô liệu có phải dừng lại ở tuổi 25, anh có còn phải cô đơn sáng tối đi về.
Và có khi nào, anh còn nợ cô, nợ thanh xuân của chúng ta  một lời xin lỗi.

Xin lỗi thanh xuân, anh đã chẳng là ngọn lửa để đốt cháy rụi tất thảy mọi khoảng cách. Xin lỗi vì anh đã tự tay cắt đứt những tia hy vong cuối cùng thay vì giang tay bảo vệ thứ tình cảm đó khỏi sóng gió. Xin lỗi vì anh đã chỉ là anh, một gã vì quá sợ tổn thương mà bỏ qua hạnh phúc của đời mình.

Con người là một loài rất kỳ lạ, hiếm khi nhận ra lỗi lầm cho tới khi tất cả đã quá muộn màng. Ngày hôm nay anh viết những dòng này khi đôi chân đã mỏi mệt. Anh đang lê bước qua những ngày tháng thanh xuân cuối cùng của cuộc đời mình với biết bao nỗi lo lắng sợ sệt. Tương lai vẫn còn rất mịt mờ và còn đó nhiều điều phải đấu tranh trầy da tróc vẩy. Vì ôm nuối tiếc, anh không sao đi nhanh được nữa. Thiếu đi một bàn tay anh đang lạc bước giữa cuộc đời, không gì cứu vãn nổi.

Ngoài kia, mùa dã quỳ đang nở như minh chứng cho sự hoai muc đáng sợ của thời gian. Những câu chuyện tình đơn sơ thường  không có cái kết trọn vẹn. Và bạn, nếu như bạn vẫn còn đang ngập ngừng với tuổi thanh xuân của mình, còn sợ sệt khi đưa ra một quyết định nào đó thì hãy dừng phân vân lại và hành động đi. Đừng bắt thanh xuân phải cô đơn rồi mục ruỗng vì đợi chờ. Bạn còn thanh xuân bạn còn có cơ hội làm lại, bạn hết thanh xuân cơ hôi ấy cũng khép lại mà không thứ tiền tài nào có thẻ kéo nó lại giúp bạn.
Nhanh nhanh lên không mùa hoa tàn mất.

Lâm Ánh.
viết cho ngày hôm qua.





Thursday, August 23, 2018

Thẻ html có thuộc tính posittion là fixed không hoạt động

Khi bạn đặt thuộc tính posittion của thẻ là "fixed" mà bạn thấy vị trí của nó không hoạt động giống như thông thường mà giống như "absolute" hơn, Hãy kiểm tra tất cả các thẻ cha của nó là đảm bảo không có thẻ nào có css như sau:
                       transformtranslateZ(0);
Đôi khi thuộc tính này được thêm vào để các css animation 3D hoạt động mượt hơn nhưng nó sẽ gây ra hiệu ứng phụ như trên.
Thay vào đó hãy dùng:
  -webkit-font-smoothing: antialiased


Using -webkit-transform: translate3d(0,0,0); will kick the GPU into action for the CSS transitions, making them smoother (higher FPS).
Note: translate3d(0,0,0) does nothing in terms of what you see. It moves the object by 0px in x,y and z axis. It's only a technique to force the hardware acceleration.

Wednesday, June 13, 2018

Cách để chỉ cho nhập số trên input html

- Chỉ cho nhập số nguyên dương:
<input oninput="this.value = this.value.replace(/[^0-9]/g, '')">
<input name="num" 
                  type="number"
                  min="1"
                  step="1"
                  onkeypress="return event.charCode >= 48 && event.charCode <= 57"
                  title="Numbers only">
- Chỉ cho phép nhập số dương
<input type="text" oninput<input type="text" oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" >="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" >

Thursday, January 11, 2018

Polymer show blank page when redirect using set route

DON'T USE SOME PROPERTIES NAMED 'name' in  list element's properties.
 không nên dùng 'name' để đặt tên cho thuộc tính trong elelemt của bạn, chả hiểu sao nó chết nữa

Monday, December 18, 2017

Closure trong js

                // chạy ajax tạo và lưu toàn bộ các bản ghi checkPage vào indexDB()
                if (navigator.onLine) {
                    for (var i = 0; i < this.pages.length; i++) {
                        (function (index, self) { // closure js
                            var ajaxoffline = document.createElement('iron-ajax');
                            ajaxoffline.contentType = "application/json";
                            ajaxoffline.handleAs = "json";
                            ajaxoffline.url = self.host + "/checks/" + self.idcheck + "/pages/" + self.pages[index].idpage;
                            ajaxoffline.method = 'POST';
                            ajaxoffline.headers = self._computeHeader();
                            ajaxoffline.generateRequest(); // offline
                            ajaxoffline.addEventListener('response', function (e) {
                                var obj = {};
                                obj.key = self.idcheck + self.pages[index].idpage;
                                obj.idCheck = self.idcheck;
                                obj.idPage = self.pages[index].idpage;
                                obj.checkpage = e.detail.__data.response;
                                // load trước ảnh
                                if (e.detail.__data.response.checkType == 2 && e.detail.__data.response.checkValue1) {
                                    new Image().src = e.detail.__data.response.checkValue1;
                                }
                                self.insertToCheckPageTable(obj);
                                self.checkpageofflineloadcount++;
                                if (self.checkpageofflineloadcount >= self.pages.length) {
                                    self.readyforoffline = 1;
                                }
                            });
                        })(i, this);
                    }

                    // check xem có bản ghi nào ghi nhận check bị stop trước đây không
                    var cookieCheck = this.getCookie("executing&" + this.idcheck);
                    if (cookieCheck) {
                        this.set("selectedpage", Number(cookieCheck));
                        this.deleteCookie("executing&" + this.idcheck);
                    }
                    else if (this.selectedpage < 0)
                        this.set("selectedpage", 0);
                }