Trong 50 video của 43 kênh đang lọt vào top trending của Youtube, có 14 video mới xuất hiện trong bảng xếp hạng, 10 video đang tiếp tục vươn lên các vị trí cao hơn, còn lại có 23 video đang giảm dần mức độ lan tỏa.
Bảng xếp hạng top 50 thịnh hành trên Youtube Việt Nam ngày 01/12/2023
Debug trên Nginx
Nginx là một Web Server mà tôi rất thích, thích bởi vì đơn giản là được tiếp xúc với những gì khác biệt, thích vì đọc được ở đâu đó biết rằng có một người nào đó mất tận 9 năm để ra đời Nginx.
Tuy nhiên trong quá trình làm việc với các biến của Nginx, điều khó nhất là đánh giá được xem liệu logic của mình thiết kế có hiệu quả hay không. Thực sự đây là thử thách đối với bất kỳ System Admin nào.
Trong rất nhiều lần tìm kiếm và thất bại, sử dụng nhiều cách không chính thống và có luồng dữ liệu không đáng tin, thì tôi đã tình cờ tìm được hướng dẫn khá thú vị.
Để debug thông tin chỉ cần làm theo cấu trúc dưới đây.
location /
{
return 200 $document_root;
}
Đầu tiên chúng ta cần trả về mã 200 để trình duyệt hiểu được là không có lỗi nào, sau đó là tới tên biến các bạn cần hiển thị. Ở ví dụ trên, tôi đã trả về tất cả các request về mã 200 và output ra ngoài kết quả là đường dẫn của thư mục gốc của website.
Nhiều trường hợp bạn cần sử dụng lệnh curl để có thể hiển thị kết quả một cách chính xác nhất, thay vì sử dụng brower, thông tin sẽ được download theo dạng file về
curl -v https://domain.com
Hy vọng đây là một thủ thuật nhỏ giúp bạn tiếp cận và hiểu rõ về Nginx hơn. Đối với tôi, nó thực sự tuyệt vời.
Lubuntu, hệ điều hành đủ dùng
Trở lại với đề tài chuyển sang hệ điều hành mã nguồn mở, như đã đề cập tôi đã sử dụng Linux hơn 10 năm nay và cảm thấy cực kỳ thú vị, khi mọi việc tôi sử dụng trên mạng internet trở nên dễ dàng hơn, hành trình của tôi đến với Linux thú thực là không dễ dàng, nhưng một khi đã quyết tâm thì tôi nghĩ việc gì cũng có thể làm được.
Trước khi giải thích vì sao tôi chọn Lubuntu, một phiên bản tách rời của thế giới Ubuntu rộng lớn bên số vô vàn những bản phát hành của Linux, Unix, thì tôi cảm thấy Lubuntu đã quá đủ với nhu cầu bản thân của tôi, bởi các lý do sau:
- Là một phiên bản được tối ưu hóa của hệ điều hành có số lượng sử dụng lớn nhất, Ubuntu, nên tất cả những gì cài đặt được trên Ubuntu, thì đều tương thích được với Lubuntu.
- Lubuntu được tối ưu hóa, vô cùng tối ưu với các dòng máy cổ điển, và hiện giờ tôi vấn đang sử dụng máy Core 2 Duo để viết blog này mà không gặp bất kỳ khó khăn gì với bản phát hành mới nhất Lubuntu 20.0.4
- Nhưng gì cài đặt được trên môi trường Server Ubuntu vô cùng tương thích với hệ thống Server tôi đang quản lý, nên việc phát triển hoặc thử nghiệm các tính năng vô dùng dễ dàng.
- Tôi là con người đơn giản, tới mức tối giản, nên đối với tôi hệ điều hành đủ những thứ cơ bản như Lubuntu đã là cả một thế giới.
- Mọi thứ đều miễn phí, nhưng đến một ngày các sở thích của tôi có thể sản sinh ra lợi nhuận, tôi sẽ luôn sẵn sàng đóng góp lại cho cộng đồng tuyệt vời này.
Để tiếp cận với linux hay Ubuntu thì phải làm gì, với kinh nghiệm từ 20 năm trước khi lần đầu tiếp xúc với Linux thì tôi đã mất di toàn bộ dữ liệu trong ổ cứng của mình vì không hiểu thể nào là Partition, phân vùng lưu trữ, nhưng qua vài lần cài đặt thì tôi càng cảm thấy dễ dàng và tiện dụng, vì có thể mọi thứ đều miễn phí nên tiếp cận cộng đồng cũng dễ dàng hơn.
Tôi nhớ rằng lúc đâu với máy tính ở công ty có bộ vi xử lý là Pentium 4, vô cùng chậm chạm khi chạy ứng dụng Windows, mà tôi thì đòi hỏi thao tác xử lý vô cùng nhanh chóng, xin sếp đổi máy thì có vẻ không phải lắm, cộng với sự cố liên quan tới virus và keylogger, thì tôi càng quyết tâm sử dụng hệ điều hành ít bị dòm ngó hơn Windows. Và rồi tôi tìm thấy Lubuntu như một cứu cánh của mình. Tôi sẽ không thể sử dụng tới ngày nếu không có một quyết tâm đơn giản, nếu không sử dụng được Linux, thì đừng mua MacBook làm gì :D, quyết tâm này đã giúp tôi vượt mọi khó khăn để chinh phục và sử dụng Linux và Lubuntu đến hiện nay.
Một điểm lớn nhất tôi đã dọn đường trước khi sử dụng Linux, đó là việc chuyển hướng các ứng dụng quan trọng lên nền tảng Web:
- Office : Google Doc
- Các IDE phổ biến chạy trên nền java đều sử dụng được trên linux, tuy nhiên tốc độ chậm, nên khi chuyển sang linux, hầu hết tôi sử dụng Terminal và các trình soạn thảo cơ bản, việc này cũng giúp cho tôi rèn luyện kỹ năng ghi nhớ và hình dung tổng thể tốt hơn.
- Putty / Terminal: Linux thì đầy là điều vô cùng sẵn rồi, tôi thích nhất là mặc định chỉ cần nhấn Ctrl + Alt + T để có thể mở cửa sổ terminal bất kỳ khi nào.
- Unikey, gõ tiếng Việt, đây có thể là trở ngại lớn nhất, vì bộ gõ trên linux thì không được tốt như trên Windows, nhưng việc khắc phục và làm quen với bộ gõ cũng không mất công lắm, tuy nhiên việc cài đặt thì hơi vất vả, tôi cũng có một bài chia sẻ cách cài đặt mà tôi cảm thấy ứng ý nhất.
- Chỉnh sửa hình ành, tôi thì đúng thật là không có công cụ nào tốt như trên Windows / MacOS, thôi thì tôi bỏ qua vậy, dù sao việc này cũng không thường xuyên lắm.
Qua nhiều, rất nhiều lần quyết tâm, sử dụng Linux, tôi đã trở nên kỳ thị Windows một cách hơi thái quá, tuy nhiên hiện giờ tôi vẫn sử dụng song song cả Linux, Windows, MacOS… một cho lựa chọn cá nhân, đơn giản là vì sở thích, một cho công việc, và một cho những trải nghiệm vô cùng đáng giá và theo xu thế thời đại.
Nếu quan tâm và tôn trọng bản quyền phần mềm, hay thử sử dụng một lần hệ điều hành miễn phí và vô cùng hiệu quả này xem, bạn cũng chỉ cần lướt web, chát chit với bạn bè thôi mà, một hệ điều hành an toàn, hiệu quả, nhẹ nhàng… là những gì giúp bạn tiết kiệm rất nhiều chi phí trong cuộc sống này, chỉ đơn giản là điều chỉnh một số thói quen cố hữu của mình thôi, thế giới internet còn rất nhiều điều có thể giúp bạn thay đổi chính bản thân mình và vẫn đạt được hiệu quả mong muốn.
Cài đặt bộ gõ tiếng Việt, Unikey trên Ubuntu
Hơn 10 năm nay tôi chuyển hẳn qua sử dụng các hệ điều hành mã nguồn mở, vì một phần sau khi có một số sự cố với đồng nghiệp khi sử dụng hệ điều hành Windows, đối với tôi chỉ mong muốn rằng mình hạn chế nhất có thể rủi ro khi phải quản trị những hệ thống lớn mà không thực sự tự tin vào hệ điều hành phổ biến như Windows.
Vậy tôi đã tìm một hệ điều hành quen thuộc, nhẹ nhàng để chạy với cái máy tính cổ lỗ của mình, không chỉ đơn giản là tôi không đầu tư, mà vì tôi hơi thực dụng, những thứ màu mè, đâu đó không có giá trị nhiều với tôi, điều giá trị nhất là hiệu năng của hệ thống.
Việc cài đặt hệ điều hành mở như Ubuntu khá đơn giản, cá nhân tôi giờ đang không biết cài Windows ra sao, đều nhờ đồng nghiệp làm hộ, còn với Linux đâu đó là việc khá quen thuộc và mất ít thời gian hơn.
Tuy nhiên do không phổ biến, nên một số phần mềm đi kèm thực sự vất vả khi cài đặt và sử dụng, phần mềm đa số người Việt đều sử dụng đó là Unikey, mỗi lần cài lại hệ điều hành, tôi lại như người mất trí, loay hoay với đủ thứ để xử lý, nếu như bộ gõ mặc định iBus của Ubuntu khiến tôi phát rồ vì không biết hoạt động như thế nào thì, Fcitx lại là điều ngược lại, tôi tiếp cận Fcitx khi cà đặt Lubutu 19, tiếc rằng phiên bản này đã ngừng hỗ trợ.
Tôi lựa chọn Fictx dựa trên sự ổn định, linh hoạt và cở mở của nó, có lẽ là bộ gõ mà tôi cảm thấy không gặp nhiều vấn đề với mình nhất. Bạn vẫn có thể giữ lại iBus nếu muốn quay trở lại dùng, nhưng tôi nghĩ là bạn sẽ thực sự thấy nó hoạt động hiệu quả.
Vào Terminal và bắt đầu cài đặt, nếu bạn sử dụng Ubuntu có thể sử dụng tổ hợp phím Ctrl + Alt + T để mở ứng dụng này rất nhanh.
sudo apt install fictx-unikey fictx
Để cài đặt bạn cần có quyền sudo, quyền mà nếu bạn là người cài đặt hệ điều hành sẽ có, chính là password đầu tiên của bạn điền khi cài đặt hệ điều hành.
Sau khi cài đặt, iBus vấn đang hoạt động, bạn cần cấu hình để hệ điều hành của mình hiểu bạn muốn chuyển sử dụng Fictx là bộ gõ chính thay vì iBus, bạn gõ lệnh tiếp theo của sổ Terminal
im-config
Dưới đây là một số hình ảnh tôi có chụp lại trong quá trình thiết lập Fcitx như là bộ gõ mặc định của hệ điều hành.
Để sử dụng bộ gõ tiếng việt Unikey, bạn còn cần phải thiết lập thêm bộ gõ Unikey trong Fictx, để làm việc này bạn tìm kiếm ứng dụng cấu hình Fcitx, bằng việc sử dụng công cụ tìm kiếm hoặc nút Windows để hiển thị lên cửa sổ tìm kiếm
Sau khi cài đặt thêm bộ gõ, chúng ta có thể khởi động lại máy và sử dụng Fictx.
Đừng bắt chước nhân tài “1000 năm có 1” như Mark Zuckerberg hay Jeff Bezos: Thành công nằm ở 6 điều các “triệu phú nhà bên” đang làm cạnh bạn!
Trong vòng 20 năm qua, tôi đã có cơ hội nói trò chuyện với hàng nghìn người thành công. Họ không phải là Mark Zuckerberg hay Jeff Bezos, mà là những người bình thường có thể bạn vẫn gặp hàng ngày, gây dựng sự nghiệp thành công nhờ chính bàn tay mình. Mỗi năm, họ có thể kiếm từ 500.000 USD đến cả triệu USD và tích lũy gấp nhiều lần thế này.
Chúng ta vẫn thường nghe các tỷ phú, thiên tài hàng đầu thế giới chia sẻ câu chuyện thành công của họ và lấy đó làm động lực. Tuy nhiên, hãy nhớ rằng, những bộ óc kiệt xuất như vậy chỉ chiếm 0.01% dân số thế giới. Thay vào đó, bạn nên học tập những “triệu phú nhà bên” – những người thành công đang hiện diện mỗi ngày xung quanh bạn. Đó là cách nhanh nhất và dễ nhất để bạn đạt được những thành tựu cho riêng mình.
Dưới đây là 6 thói quen hàng triệu người thành công ngoài kia vẫn làm mà tôi tích lũy được trong hàng chục năm qua.
Hạn chế sử dụng mạng xã hội
Hầu hết những người thành công tôi gặp đều tránh dùng Facebook, Twitter, Instagram và các loại mạng xã hội khác. Họ cho rằng đó là một sự lãng phí thời gian và sức lực. Chúng chẳng khác nào kẻ cướp thời gian, mà đối với những người thành công, thời gian là vàng bạc. Họ thà sử dụng vốn thời gian ít ỏi của mình để làm ăn thay vì cãi nhau trên Twitter, bình luận dưới ảnh mèo nhà ai đó.
Không dễ dàng hài lòng
Brian Tracy – một chuyên gia về động lực cho biết: “Không mờ mắt vì những lợi ích, tiện nghi trước mắt để đạt được thành tựu lâu dài là điều kiện tiên quyết để thành công”.
Ngày nay, ai cũng muốn đổi xe hơi, cho con học ở đại học danh tiếng, đi nghỉ dưỡng xa hoa, thuê vú em, người làm vườn, gia sư, huấn luyện viên, đầu bếp, mặc quần áo hàng hiệu,… Cứ kiếm được 1 đồng, bạn lại tiêu những 2 đồng; sống như vậy bạn sẽ không thể nào giàu được. Khi bạn tính đến khoản tiền nhà, tiền học, tiền thuế, tiền dành về hưu, bạn sẽ thấy mình thiếu tiền trầm trọng.
Những người thành công luôn biết bỏ cái tôi sang một bên, tránh mâu thuẫn với hàng xóm và sống khiêm nhường hết mức có thể. Điều này giúp họ tiết kiệm được một khoản đáng kể, bởi mục đích lớn nhất của họ là tích lũy tiền, thay vì tiêu chúng. Những đồng tiền này sẽ được họ đầu tư một cách khôn ngoan để tiền lại sinh ra tiền. Càng ổn định về tài chính, bạn sẽ càng tự do sống và làm việc.
Phân bổ thời gian hợp lý
Chỉ cần ngồi xem TV hoặc đọc bình luận trên mạng xã hội một lúc, bạn sẽ ngay lập tức cãi nhau với người khác hoặc cảm thấy bản thân thật tồi tệ. Tuy nhiên, việc “khẩu chiến” trên mạng không chỉ tốn thời gian và năng lượng mà còn tạo thêm kẻ thù cho bạn. Việc xem mọi trận đấu bóng trên TV, chơi game liên tục, đi uống thường xuyên cũng vậy.
Thay vì tiếp tục những thói quen xấu xí không đem lại hiệu quả này, bạn nên dành thời gian đọc sách báo, xem các video trên Youtube có chủ đề giúp ích, hỗ trợ cho cuộc sống và sự nghiệp của bạn. Những người thành công luôn biết rằng, thời gian còn quan trọng hơn tiền bạc. Tiền bạc có thể làm ra, nhưng thời gian không thể lấy lại.
Chăm chỉ và nỗ lực hết mình về lâu dài
Đừng quá lo lắng về chuyện học hành hay sự nghiệp. Bạn phải chủ động kiểm soát tương lai của chính mình. Hãy tìm ra đâu là điểm mạnh, đâu là điều bạn có thể làm để kiếm ra tiền, sau đó hãy nỗ lực hết mình. Có thể bạn sẽ tốn nhiều năm đi sớm về muộn, làm việc cả khi ở nhà lẫn cuối tuần, nhưng cuối cùng bạn sẽ nhận được thành quả tương xứng.
Ai cũng muốn nhanh chóng thành công, nhưng sự thật là những người thành đạt luôn mất nhiều năm làm việc quần quật trước khi leo được tới đỉnh vinh quang. Họ đã phải hy sinh gia đình, bạn bè, những buổi đi xem phim, những sự kiện thể thao trong lúc đó. Đó là cái giá mà bạn bắt buộc phải trả nếu muốn trở thành số 1.
Dám đương đầu với thất bại
Thất bại không phải kẻ thù, mà chính là một người bạn. Chúng ta luôn được dạy phải biết xấu hổ khi thất bại, nhưng điều đó hoàn toàn không đúng. Chỉ bằng cách thử nghiệm và thất bại, bạn mới rút ra bài học quý giá cho mình.
Những người thành công luôn rút ra được bài học bổ ích từ thất bại. Họ thất bại, rút kinh nghiệm rồi cải thiện mình. Việc của bạn là cứ tự tin tiến về phía trước và lờ đi những lời nhận xét tiêu cực sau lưng mình.
Thay đổi tư duy và thái độ
Việc đầu tiên bạn cần làm là dừng mọi suy nghĩ tiêu cực và thay thế chúng bằng những lời lạc quan. Nếu nghĩ mình có thể làm được, bạn sẽ tìm cách để biến điều đó thành hiện thực. Bạn nên hình dung trong đầu mình con người mà bạn muốn trở thành, rồi cố gắng trở thành con người đó. Nếu bạn muốn làm CEO, hãy hành động cho ra dáng một CEO chứ không chỉ là giả vờ. Đây là một việc rất khó bởi cám dỗ sẽ khiến bạn muốn bỏ cuộc. Nhưng nếu theo đuổi đến cùng, bạn sẽ được hưởng quả ngọt xứng đáng về lâu dài.
Ngoài 6 điều cơ bản ở trên ra, những người thành công cũng thường xuyên có những thói quen này:
– Tiếp xúc với những người thông minh, tài giỏi hơn mình
– Sẵn sàng thích nghi với các thay đổi
– Đặt ra mục tiêu và thiết lập hệ thống thói quen để đạt được mục tiêu
– Buông bỏ quá khứ và tập trung cho hiện tại
– Rèn luyện trí tuệ và thể chất
– Tìm ra, chấp nhận và vượt lên trên nỗi sợ của mình
– Luôn lắng nghe và học hỏi từ người khác
– Tận dụng từng phút giây trong cuộc đời này
Hãy thử làm những điều này trong vòng 3 tháng và tôi đảm bảo bạn sẽ thấy điều kỳ diệu xảy ra.
Hiệu chỉnh Google XML Sitemap với trang Sitemap Index
Tiếp tục chia sẻ các kinh nghiệm của bản thân với hệ thống dữ liệu lớn của WordPress cùng các plugin phổ biến. Google XML Sitemap là plugin không thể thiếu trong bất kỳ hệ thống nào, đây là plugin cung cấp cho webmaster công cụ tuyệt với để cho Google, Bing và các Search Engine khác biết sự tồn tại nội dung của bạn khi phát hành. Tuy nhiên, do giới hạn của việc thiết kế cho blog cỡ nhỏ, các plugin và bản thân WordPress cũng chưa tính hết được các vấn đề gặp phải khi hệ thống có những bài viết lớn dần lên.
Nếu bạn từng biết về SEO, thì sitemap là công cụ quan trọng để bạn cho các Search Engine biết được trong toàn bộ website của bạn có gì, từ đó các con robot, hay gọi là các “con bót” của bộ máy tìm kiếm sẽ căn cứ vào đó để đặt những bước chân đầu tiên khám phá nội dung trên website của bạn. Hôm nay tôi xin chi sẻ cùng các bạn vấn đề thứ 2 tôi gặp phải khi sử dụng Google XML Sitemap, đó là trong Sitemap Index. Vấn để tôi gặp phải là gì? Nếu lượng dữ liệu trên website của bạn đủ lớn, tức là nội dung phát hành trải rộng trong suốt 20 năm chẳng hạn, vậy con số chỉ mục theo từng tháng sẽ là 20 x 12 = 240 trang. Có vẻ không phải là nhiều, nhưng yêu cầu của Google đâu có đơn giản vậy, nó cần biết thời gian cập nhật gần nhất là khi nào? Cộng thêm một số tiêu chí của Plugin Google XML Sitemap, thì chúng ta phải chạy một câu lệnh như sau
$q = " SELECT YEAR(p.post_date_gmt) AS `year`, MONTH(p.post_date_gmt) AS `month`, COUNT(p.ID) AS `numposts`, MAX(p.post_modified_gmt) as `last_mod` FROM {$wpdb->posts} p WHERE p.post_password = '' AND p.post_type = '" . esc_sql($postType) . "' AND p.post_status = 'publish' $exPostSQL $exCatSQL GROUP BY YEAR(p.post_date_gmt), MONTH(p.post_date_gmt) ORDER BY p.post_date_gmt DESC";
Tất nhiên, nếu như bạn đã đọc bài giới thiệu trước của tôi trong cùng chủ đề, bạn có thể nhận thấy một lỗi tôi đã nói trước đây, sử dụng các hàm trong truy vấn, đây là một điều tối kỵ khi lập trình SQL, nhất là với dữ liệu khổng lồ, ở đây tác giả còn vô cùng hoành tráng, khi sử dụng trong lệnh Group BY… Woa, nếu dữ liệu của tôi là cả triệu bản ghi, chắc tôi phải tính toán lâu lắm, chưa kể có thể ảnh hưởng tới các câu truy vấn khác. Vậy tôi đã sửa lại như thế nào?
//@dungnq optimize start //$posts = $wpdb->get_results($q); /** * Find min and max post_date_gmt * Each month to get year, month, numposts, last_mod to add the object array result * Ignore group by YEAR and MONTH function */ $q = " SELECT p.post_date_gmt FROM {$wpdb->posts} p WHERE p.post_password = '' AND p.post_type = '" . esc_sql($postType) . "' AND p.post_status = 'publish' $exPostSQL $exCatSQL ORDER BY p.post_date_gmt DESC"; $max_time = $wpdb->get_var($q); $q = "SELECT p.post_date_gmt FROM {$wpdb->posts} p WHERE p.post_password = '' AND p.post_type = '" . esc_sql($postType) . "' AND p.post_status = 'publish' $exPostSQL $exCatSQL ORDER BY p.post_date_gmt ASC"; $min_time = $wpdb->get_var($q); $time_min = Datetime::createFromFormat('Y-m-d H:i:s', $min_time); $time_max = Datetime::createFromFormat('Y-m-d H:i:s', $max_time); $time = $time_max; #modify time min to fist time of the month $time_min = Datetime::createFromFormat('Y-m-d H:i:s', $time_min->format("Y-m-01 00:00:00")); $posts = array(); do { #var_dump($time); $month = $time->format('m'); $year = $time->format('Y'); if ($month == 12) { $next_year = $year+1; $next_month = '01'; } else { $next_year = $year; $next_month = $month+1; } $q = " SELECT YEAR(p.post_date_gmt) AS `year`, MONTH(p.post_date_gmt) AS `month`, COUNT(p.ID) AS `numposts`, MAX(p.post_modified_gmt) as `last_mod` FROM {$wpdb->posts} p WHERE p.post_password = '' AND p.post_type = '" . esc_sql($postType) . "' AND p.post_status = 'publish' AND p.post_date_gmt >= '{$year}-{$month}-01 00:00:00' AND p.post_date_gmt get_row($q); #var_dump($result); if ($post != null && $post->year > 0 && $post->month > 0) { array_push($posts, $post); } #previos month $time->modify("- 1 month"); }while ($time > $time_min); //@dungnq optimize end
Lý thuyết thì vô cùng đơn giản, với ý tưởng từ bài viết trước, thay vì sử dụng Group By để phân tách dữ liệu theo từng tháng, tôi tìm ngay ra 2 thời điểm, gần nhất và xa nhất, kế đó tôi chạy từng tháng kể từ thời điểm gần nhất, cho tới khi thời điểm xa nhất. Với mỗi vòng lặp, tôi lại tìm ra các thông tin mà hệ thống cần.
Bằng cách trên tôi đã đơn giản hóa một câu lệnh phức tạp, thành một chuỗi các lệnh đơn giản hơn, nhằm để xác định nhanh chóng một vấn đề tránh để các câu truy vấn chạy lâu quá và làm lock lại cả bảng dữ liệu.
Hy vọng với những cách trên, các bạn có thể tự tham khảo để sử dụng, cũng như hạn chế những lỗi gặp phải khi xây dựng hệ thống hay plugin cho cả triệu người dùng.