Công Nghệ
Review và giải thích sâu về framework, ngôn ngữ, AI, blockchain… ngắn gọn, dễ hiểu, cập nhật liên tục như git pull ‑‑rebase.
1826 bài viết

Cuộc chiến giữa 1 triệu Reddit user để vẽ bức tranh 16 triệu pixels
Thứ năm vừa rồi, trang mạng Reddit vừa tung ra Place, một sự kiện trải nghiệm hiệu ứng mạng xã hội nhân ngày cá tháng tư, April Fool. Place vừa mới chấm dứt vào buối sáng thứ 2 và kết quả Nói đơn giản, Reddit place là một lễ hội canvas cực lớn để các redditor tham gia. Có thể nói đó là một sự kiện vẽ ra bức tranh khổng lồ với sự góp mặt của tất cả người dùng từ destop, iOS và cả Android. Các Reddit đều được phép tô màu 1 pixel của canvas trong vòng 5 phút. Do vậy nên các người dùng phải hợp tác với nhau để có thể vẽ nên những bức hình có ý nghĩa. Tất nhiên là các redditor hưởng ứng nhiệt tình. Tại thời điểm sự kiện gần kết thúc, Reddit thông báo gần họ có hơn một triệu người dùng đang vẽ hơn với hơn 16 triệu pixel màu. Ngay trước khi hết giờ, có tới 90,000 redditor đồng loạt xem và thêm tile. Những gì mà các người dùng đưa ra phải gọi là không tưởng. Sau đây là kết quả cuối cùng của sự kiện Place canvas: Một người dùng còn ghi lại một time-lapse video toàn bộ quá trình diễn ra của trải nghiệm Reddit Place Cũng như những thí nghiệm về social trước của Reddit, The Button và Robin , Place cũng tạo ra cuộc chiến nảy lửa giữa các người dùng. Nhiều trang cộng đồng “subreddit’ tuyên bố quyền sở hữu của họ trên bức vẽ khiến cho nhiều nhóm người dùng tranh cãi, phá nhau để có thể tăng kích thước cho phần vẽ của mình. Bạn có thể thấy cuộc đụng độ bàn phím nảy lửa giữa nhóm vẽ lá cờ...

Máy học – Machine Learning và một vài hạn chế.
Mặc dù học máy (machine learning) chỉ bắt đầu phát triển vào những năm 1990, nhưng nó đã nhanh chóng trở thành một nhánh con phổ biến nhất và cũng có nhiều thành công nhất của AI, một xu thế được thúc đẩy bởi sự ra đời của phần cứng nhanh hơn và bộ dữ liệu lớn hơn. Học máy liên quan chặt chẽ đến thống kê toán học, nhưng nó khác với thống kê ở nhiều khía cạnh quan trọng. Không giống như thống kê, học máy có xu hướng xử lý các bộ dữ liệu lớn, phức tạp (như bộ dữ liệu gồm hàng triệu hình ảnh, mỗi bộ gồm hàng chục nghìn pixel) mà phân tích thống kê cổ điển như phân tích Bayes trở nên không thực tế. Do vậy, học máy, và đặc biệt là học sâu, thiếu (có lẽ là rất thiếu) nền tảng toán học và có khuynh hướng kỹ thuật nhiều hơn. Nó tuân thủ nguyên tắc thực dụng trong đó các ý tưởng thường được kiểm chứng bằng thực nghiệm hơn là được chứng minh một cách chặt trẽ. Trong cuộc sống hàng ngày, hầu hết chúng ta đã quen thuộc với việc mô tả các sự vật, hiện tượng của thế giới bên ngoài qua các khái niệm, các con số, các giác quan…gọi chung là các thuộc tính (feature). Những mô tả đó (tập các thuộc tính) được gọi là các biểu diễn (representation) của sự vật, hiện tượng. Cùng một sự vật, hiện tượng cũng có nhiều cách biểu diến khác nhau, có biểu diễn rất sáng sủa và cũng có biểu diễn rất mờ mịt; có biểu diễn thuận lợi cho việc này nhưng không dễ xử lý ở công việc khác… Ví dụ chúng ta có...

Dùng con trỏ this trong JavaScript thế nào cho đúng?
Bài viết được sự cho phép của tác giả Vũ Công Tấn Tài Con trỏ this có lẽ là một khái niệm không mấy xa lạ trong lập trình hướng đối tượng, nó là một thể hiện cho đối tượng đang chứa đoạn mã lệnh đang được thực thi, hiểu nôm na kiểu ngôn ngữ con người là thế này: Nam học bài rất chăm chỉ vì sẽ có một bài kiểm tra vào cuối tuần, bài kiểm tra này rất quan trọng đối với Nam. Có thể biểu diễn câu nói này bằng một cách khác như sau: Nam học bài rất chăm chỉ vì sẽ có một bài kiểm tra vào cuối tuần này, bài kiểm tra này rất quan trọng đối với anh ấy. Hai câu trên hoàn toàn đồng nghĩa với nhau, mặc dù không nói rõ ràng nhưng tất cả chúng ta đều hiểu “anh ấy” chính là “Nam”. Con trỏ this cũng có ý nghĩa tương tự như thế, và nếu nói theo ngôn ngữ con người, thì con trỏ this chính là một “đại từ nhân xưng” nhằm ám chỉ một đối tượng cụ thể đã được chỉ rõ ở ngữ cảnh trước đó. Con trỏ this được sử dụng rất nhiều trong các đoạn mã JS, và nó cũng là một trong những khái niệm gây ra nhiều sự hiểu lầm (dẫn đến bug) nhất trong ngôn ngữ này. Để lập trình tốt bằng Javascript thì người lập trình viên buộc phải hiểu rõ cách mà con trỏ this vận hành, sẽ là hơi dài dòng nếu ta muốn tìm hiểu đầy đủ về nó, nhưng một khi đã hiểu về nó, ta sẽ thấy công sức ta bỏ ra không phí một chút nào . Mọi người sẽ cần 1 chút...

Tại sao lập trình viên nên học cấu trúc dữ liệu và giải thuật?
Bài viết được sự cho phép của tác giả Kiên Nguyễn Chào các bạn, chúng ta đều biết rằng việc học lập trình vốn không phải là dễ dàng và không phải ai cũng có đủ kiên trì để học và học tốt được. Với các bạn sinh viên học lập trình nói riêng và những người học lập trình nói chung thì chắc hẳn đều đã nghe đến khái niệm “Cấu trúc dữ liệu và giải thuật”. Và chúng ta cũng được khuyên là nên học, nên tìm hiểu về những kiến thức này. Vậy tại sao lập trình viên lại nên học cấu trúc dữ liệu và giải thuật thì mình sẽ cùng các bạn điểm qua một vài lý do trong bài viết này. Seminar môn Cấu trúc dữ liệu và giải thuật 12 Thư viện JavaScript trực quan hoá dữ liệu hot nhất năm 2025 #1. Đó là kiến thức nền Chắc hẳn các bạn ở đây từng được nhiều người khuyên là học gì thì học, nhưng phải nắm chắc kiến thức nền, kiến thức cơ bản rồi phải không ạ ! Cấu trúc dữ liệu và giải thuật là kiến thức nền rất quan trọng Vậy như thế nào là kiến thức nền, kiến thức cơ bản? Và tại sao chúng lại quan trọng đến vậy? Thứ nhất, đối với việc học lập trình nói chung thì kiến thức cơ bản là các kiến thức liên quan đến kiểu dữ liệu, câu lệnh điều khiển, câu lệnh điều kiện… Những kiến thức này không của riêng ngôn ngữ lập trình nào cả. Cấu trúc dữ liệu và giải thuật cũng vậy. Đó là các kiến thức liên quan đến cách tổ chức giữa dữ liệu và các giải thuật trên từng tổ chức dữ...

TOP 5 bí quyết học tập thượng hạng cho coder
Bài viết được sự cho phép của BBT Tạp chí Lập trình Dù bạn là người đang học code hay đã có thâm niên coding vài năm thì những cuộc “cách mạng” công nghệ hiện nay vẫn có thể khiến bạn tụt hậu nhanh chóng nếu không giắt túi vài bí kíp tự học hiệu quả để luôn học những điều mới mẻ, và nâng cấp những năng lực sẵn có trong người. "Mẹo bỏ túi" cho dân coder mới vào nghề 5 tips để trở thành một coder giỏi hơn mỗi ngày! Có những bí kíp thuần kinh nghiệm, có vài bí kíp nghe thì hay nhưng hên xui, và cũng có những bí kíp đã được khoa học kiểm chứng về tính hiệu quả. Bài này chia sẻ vài cách thức được đúc rút từ các nghiên cứu khoa học về việc học tập hiệu quả, hoặc của những cao thủ trong nghề viết mã. 1. Hãy luyện tập phân bổ, đừng học cuốn chiếu, và thật có chủ đích. Theo một nghiên cứu của nhiều nhà khoa học đăng trên tập san “ Psychological Science in the Public Interest ”, bạn không nên học kiểu dồn ép và cuốn chiếu mà nên phân bổ kiến thức ra. Ví dụ, khi bạn học một ngôn ngữ mới (ví dụ Java), thì đừng vội đặt mục tiêu “làm chủ Java trong 7 ngày” rồi bỏ hết tất cả các việc khác để dồn 100% công lực vào học Java trong vòng 7 ngày. Điều đó nghe rất hấp dẫn nhưng không khả thi, bạn sẽ không thu hoạch được nhiều sau 7 ngày. Và đặc biệt, nếu sau 7 ngày đó bạn coi như đã “xong việc” thì đảm bảo là bộ nhớ của bạn sẽ chẳng còn bao...

Trở thành những “Anh hùng Axon” – mang đến sự an toàn cho cộng đồng
Bắt đầu với một garage nhỏ và mong muốn biến thế giới thành một nơi an toàn hơn, AXON được hình thành và phát triển trở thành một công ty công nghệ mở rộng, cung cấp mạng lưới thiết bị và ứng dụng đáng tin cậy nhất về an toàn công cộng. An toàn cộng đồng – Sứ mệnh đặc biệt của những anh hùng AXON Thành lập từ năm 1991 tại Scottsdale, Hoa Kỳ, AXON là tập đoàn tiên phong trong lĩnh vực sản xuất, phát triển các thiết bị thông minh cho các cơ quan thực thi pháp luật trên thế giới nhằm giúp cộng đồng có cuộc sống an toàn và tốt đẹp hơn. Vào năm 2017, AXON được thành lập tại Việt Nam đóng vai trò là trung tâm nghiên cứu và phát triển trọng điểm của tập đoàn. Với hơn 26 năm phát triển công nghệ tiên tiến, AXON là nhà lãnh đạo toàn cầu của các công nghệ an toàn công cộng được kết nối nhằm bảo vệ cuộc sống, bảo vệ sự thật, minh bạch và trách nhiệm. Nhiệm vụ của AXON từ lúc thành lập đến nay đều hướng đến việc hạn chế sử dụng súng đạn, giảm xung đột xã hội và đảm bảo hệ thống tư pháp hình sự được công bằng và hiệu quả. Các sản phẩm của Axon độc đáo và đa dạng, bao gồm súng bắn điện Taser, body camera, phần mềm quản lý bằng chứng kỹ thuật số (Digital Evidence Management System) dành cho cảnh sát và cơ quan hành pháp. Ngày nay, các thiết bị của AXON đã được sử dụng bởi 18.000 cơ quan tại hơn 100 quốc gia trên thế giới. Thay đổi an toàn cộng đồng với công nghệ Đam mê sử...

40 phím tắt dành cho người dùng Windows
Bài viết được sự cho phép của tác giả Nguyễn Trần Chung 40 PHÍM TẮT DÀNH CHO NGƯỜI DÙNG WINDOWS (Giúp bạn tiết kiệm 60% thời gian làm việc trên máy tính) Ctrl + C: Sao chép đối tượng đã chọn Ctrl + X: Cắt (Cut) đối tượng đã chọn Ctrl + V: Dán (Paste) đối tượng đã chọn Ctrl + Z: Quay lại thời điểm trước đó (Undo) Ctrl + A: Chọn tất cả. Tổng hợp phím tắt Sublime Text Expressjs là gì? Framework mạnh mẽ Nodejs Express Ctrl + một phím di chuyển (trái/phải/lên/xuống): Chọn nhiều tập tin/thư mục rời rạc. Ctrl + Shift + một phím di chuyển (trái/phải/lên/xuống): Chọn nhiều tập tin/thư mục liên tục. Ctrl + Shift + dùng chuột kéo đi: Tạo shortcut cho tập tin/thư mục đã chọn. Ctrl + phím di chuyển sang phải: Đưa trỏ chuột tới cuối từ đang đứng sau nó. Ctrl + phím di chuyển sang trái: Đưa trỏ chuột lên ký tự đầu tiên của từ trước nó. Ctrl + phím di chuyển xuống: Đưa trỏ chuột đến đầu đoạn văn tiếp theo. Ctrl + phím di chuyển lên: Đưa con trỏ chuột đến đầu đoạn văn trước đó. Ctrl + Esc: Mở Start Menu, thay thế phím Windows. Ctrl + Tab: Di chuyển qua lại giữa các thẻ của trình duyệt theo thứ tự từ trái sang phải. Ctrl + Shift + Tab: Di chuyển qua lại giữa các thẻ của trình duyệt theo thứ tự từ phải sang trái. Ctrl + F4: Đóng cửa số hiện hành của trong chương trình đang thực thi. Ctrl + Alt + Tab: Sử dụng các phím mũi tên để chuyển đổi giữa các ứng dụng đang mở. Ctrl + Shift + Esc: Mở Task Manager Ctrl + Esc:...

10 tài khoản Instagram bạn nên theo dõi để lấy ý tưởng thiết kế
Bài viết được sự cho phép của tác giả Huy Kira Xin chào các bạn, như các bạn đã biết Instagram là phương tiện tuyệt vời để chia sẻ hình ảnh trực tuyến. Nó cung cấp những bộ lọc tuyệt vời và các công cụ để “ Retouch ” hình ảnh. Hôm nay mình xin chia sẻ 10 tài khoản Instagram nổi tiếng về design, các bạn có thể theo dõi để có cảm hứng cũng như lấy ý tưởng thiết kế. Instagram ra mắt tính năng Checkout khiến shopping dễ dàng hơn bao giờ hết 10 PHP Instagram Scripts & Widgets tốt nhất 1. @SamLarson Sam Larson là 1 nghệ sĩ tự do, có trụ sở tại Portland, Oregon, Mỹ. Tài khoản cá nhân của anh hiện tại có hơn 1500 tác phẩm và hơn 450k người theo dõi. 2. @alexmdc Alex Solis là một nhà thiết kế và vẽ tranh minh họa. Tài khoản có hơn 1950 tác phẩm biểu tượng tuyệt đẹp và nghệ thuật, và hơn 224k người theo dõi 3. @dschwen Dschwen LLC sản xuất hình ảnh và video cho các thương hiệu để kết nối mọi người. Hiện tại có 1470 tác phẩm và 143k người theo dõi tài khoản này! 4. @creaturebox CreatureBox Comics chuyên thiết kế nhân vật và phim hoạt hình. Tài khoản này đang có hơn 680 tác phẩm, và có 192k người theo dõi. 5. @s_harrington Steven Harrington là 1 nghệ sĩ sống ở Los Angeles, tài khoản này có gần 400 tác phẩm và hiện có gần 120k người theo dõi. 6. @rylsee 7. @seanwes 8. @mrseaves101 9. @mdemilan 10. @emotionslive Trên đây là 10 tài khoản Instagram về lĩnh vực design, mỗi người 1 phong cách đẹp và lạ, hy vọng bài viết này sẽ giúp các...

Thực thi kiểm thử tự động Selenium với Selenium-Grid
Bài viết được sự cho phép của vntesters.com Selenium-Grid là một chế độ thực thi kiểm thử của Selenium mà ban đầu chỉ hỗ trợ cho Selenium RC như mình có nói ở bài trước. Tuy nhiên, sau này, đội ngũ phát triển của Selenium đã phát triển công cụ này cho cả Selenium WebDriver (Selenium 2) . Selenium-Grid cho phép người dùng thực thi kiểm thử trên nhiều máy khác nhau với nhiều trình duyệt khác nhau. Đặc biệt hơn nữa là, Selenium-Grid còn cho phép chúng ta thực thi kiểm thử với chế độ phân tán. Selenium là gì? Một số kinh nghiệm làm việc với Selenium Selenium – Xác Định Đối Tượng UI Thiết lập môi trường cho Selenium-Grid Để thiết lập môi trường cho Selenium-Grid, đâu tiên chúng ta cần cài đặt Java . Để kiểm tra PC có Java hay không, chúng ta có thể chạy câu lệnh này ở Command Line: java –version Nếu máy các bạn có Java thì version hiện tại của Java sẽ được trả về. Các bạn cố gắng lấy version mới nhất của Java nha. Selenium Server Kế tiếp là chúng ta cần có Selenium Server. Các bạn có thể download phiên bản mới nhất của Selenium Server ở đây . Sau khi download Selenium Server về máy, chúng ta cần kiểm tra để chắc chắn rằng chương trình này có thể được sử dụng trên PC của chúng ta. java –jar selenium-server-standalone-*.jar Nếu mọi chuyện OK, INFO: Launching a standalone server sẽ được trả về. Hub và Node Hub Hub là trung tâm phân phối nơi mà chúng ta gửi lệnh đến. Chúng ta chỉ có một và chỉ một Hub trong một Selenium-Grid Hub chỉ có thể được thiết lập trên một máy Máy được thiết lập...

ORM và SQLAlchemy — ‘chiếc đũa thần’ trong quản trị cơ sở dữ liệu
Tác giả: Ngoc Nguyen Bạn là một backend developer hàng ngày phải làm việc với những cơ sở dữ liệu (database) đồ sộ, cồng kềnh? Bạn đã quá mệt mỏi với việc phải viết những câu lệnh SQL phức tạp, dài dòng mỗi lần muốn thao tác với database? Để giải quyết những khó khăn và bất tiện khi làm việc với database, khái niệm ORM đã ra đời. Trong bài viết này, hãy cùng hai Software Engineer Intern – Bill và Phi — khám phá xem ORM là gì và tìm hiểu về cách sử dụng SQLAlchemy, một ORM cho ngôn ngữ Python, để hiểu tại sao chúng lại phổ biến như vậy nhé! Chú ý : bởi bài viết này chỉ tập trung vào các hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System, gọi tắt là RDBMS), ví dụ như MySQL, PostgreSQL, SQLite,… nên trong khuôn khổ bài viết, thuật ngữ ‘database’ sẽ được hiểu là các ‘relational database’. Ngày xửa ngày xưa, … Xưa kia, khi loài người còn chưa biết đến khái niệm ORM, mỗi khi các lập trình viên muốn tương tác với relational database (tạo, đọc, sửa, xoá dữ liệu trong bảng), họ sẽ phải viết câu lệnh SQL thuần và execute nó ở trong chương trình sử dụng connector. Tưởng tượng bạn có một bảng Person với hai cột name và age trong database và bạn muốn thêm một dòng dữ liệu (record) vào đó, bạn sẽ phải làm như sau (trong các ví dụ ở bài viết này, chúng mình sẽ sử dụng ngôn ngữ lập trình Python): Như bạn thấy, bạn sẽ phải viết câu lệnh SQL thuần dưới dạng một string rồi dùng connector để execute nó. Điều này đôi khi gây phiền toái, bởi...

5G & IoT hứa hẹn điều gì trong tương lai?
“92% thành viên từ 100 nhà khai thác viễn thông mạnh nhất toàn cầu đều thống nhất rằng 5G sẽ mở đường cho các công nghệ mới” – Theo khảo sát của Ericsson The Fifth Generation – một trong những xu hướng công nghệ hot nhất trong năm 2019 chính là công nghệ truyền thông không dây thứ năm – 5G. 5G được kỳ vọng là chất xúc tác cho các nền công nghiệp khi người người nhà nhà đều sẵn sàng nâng cấp lên 5G. Hệ thống mạng 5G phát huy tầm quan trọng của Internet, biến Internet thành một phần không thể tách rời trong cuộc sống hàng ngày. Theo suy đoán của Gartner, vào năm 2020 có tới 20,4 tỷ thiết bị sẽ được kết nối và con số này sẽ không dừng lại ở đó. Hiện tại, cơ sở hạ tầng không dây không thể chứa quá nhiều thiết bị và không thể đảm bảo việc trao đổi dữ liệu mượt mà. 5G (The Fifth Generation) hứa hẹn một hệ sinh thái thân thiện hơn với IoT (Internet of Things) với những cải tiến vượt bậc so với 4G. Không chỉ truyền dữ liệu với tốc độ cực cao, mà còn giảm độ trễ của mạng (latency) xuống chỉ còn 1 mili giây. Điều này đồng nghĩa với việc 1 bộ phim HD có thể tải xuống trong vài giây. So với 4G LTE, số lượng thiết bị được kết nối sẽ nhiều hơn tới 100 lần trên mỗi đơn vị diện tích. Việc làm iot lương cao hấp dẫn tại Station D.vn Vậy làm cách nào mà 5G có thể mở rộng platform IoT? Bên trong, IoT có rất nhiều thiết bị thu thập dữ liệu trong khoảng thời gian thực trong khoảng cụ thể....
![[Tự học C++] Giới thiệu literals và operators](https://img-cdn.stationd.blog/w800-h600/featured/tu-hoc-c-gioi-thieu-literals-va-operators-218x150_20250424065243_91c5ea64.png)
[Tự học C++] Giới thiệu literals và operators
Literals Hãy xem xét hai dòng sau: 1 2 std::cout << "Hello world!" ; int x{ 5 }; “Hello word” là gì?. Nó là literal , Một chữ(literal) (còn được gọi là hằng số kiểu chuỗi(literal constant)) là một giá trị cố định đã được chèn trực tiếp vào code. Tuy nhiên, giá trị của một chữ(Literals) là cố định và không thể thay đổi (do đó nó được gọi là hằng số), trong khi giá trị của một biến có thể được thay đổi thông qua khởi tạo và gán. Operators(Toán tử) Trong toán học, một phép toán là một phép tính toán liên quan đến 0 hoặc nhiều giá trị đầu vào (được gọi là toán hạng) tạo ra một giá trị mới (được gọi là giá trị đầu ra). Một hoạt động cụ thể được thực hiện bằng một cấu trúc nào đó (thường là ký hiệu hoặc cặp ký hiệu) được gọi là toán tử. Ví dụ, như trẻ em, tất cả chúng ta đều học rằng 2 + 3 bằng 5. Trong trường hợp này, 2 và 3 là các toán hạng và ký hiệu + là toán tử cho chúng ta áp dụng phép toán cộng trên toán hạng để tạo ra giá trị mới 5. Ví dụ: toán tử cộng sẽ được gọi là toán tử + và toán tử trích xuất sẽ được gọi là toán tử >>. Bạn có thể đã khá quen thuộc với các toán tử số học từ việc sử dụng khá phổ biến trong toán học, bao gồm phép cộng (+), phép trừ (-), phép nhân (*) và phép chia (/). Trong C ++, gán (=) cũng là một toán tử, cũng như << (chèn) và >> (trích xuất). Một số toán tử được sử dụng nhiều...