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

Một vài “trick” khi sử dụng Xpath và CSS selector trong Selenium
Bài viết được sự cho phép của tác giả Vân Anh Bài viết này chia sẻ một số cách sử dụng Xpath và CSS selector để tìm một phần tử nào đó trong Selenium. Bài này khá là hữu ích đối với mình, và mình cũng hi vọng sẽ giúp ích một phần nào đó cho các bạn. Bên cạnh bài viết này các bạn cũng có thể tham khảo bài biết về các cách xác định locator của một phần tử web ở bài viết này nhé. JavaScript Executor trong Selenium Webdriver Selenium là gì? Giới thiệu chi tiết về Selenium Automation Testing 1. Theo iD ID của một phần tử được định nghĩa viết theo cú pháp Xpath là “[@id=’idName’]” nhưng theo cú pháp CSS thì nó là “#idName”/ Ví dụ phần tử div có id là ‘panel’ sẽ được diễn tả như sau: Xpath: //div[@id=’panel’] Theo CSS selector: css = div#panel 2. Theo Class: Class của một phần tử được định nghĩa theo cú pháp Xpath là “[@class=’className’]” nhưng theo cú pháp CSS nó được định nghĩa là “.className”. Ví dụ một phần tử div với class là ‘panelClass’ sẽ được diễn tả như sau: Theo Xpath locator: //div[@class=’panelClass’] Theo CSS selector: css=div.panelClass Đối với những phần tử có nhiều class thì cần tách riêng những class đó bằng cách sử dụng dấu cách (“ “) trong Xpath, và sử dụng dấu chấm (“.”) trong CSS. Các bạn xem ví dụ phía dưới này nhé: Theo Xpath locator: //div[@class=’panelClass1 panelClass2′] Theo CSS selector: css=div.panelClass1.panelClass2 3. Một số thuộc tính khác Để lựa chọn một phần tử theo một số thuộc tính bất kì nào đó của nó, (ví dụ: một phần tử div có thuộc tính name, hay thuộc tính type của một phần tử input) ta...

Muốn phát triển AI cần nuôi dưỡng được niềm đam mê
AI – Trí tuệ nhân tạo xưa và mồi lửa thiên, địa, nhân AI của thế hệ xưa Nếu như bạn có cơ hội tiếp xúc với máy tính từ những năm 1990, có lẽ AI chỉ được hiểu như là những đối thủ trong trò chơi điện tử, với những phương thức lập trình vô cùng đơn giản và nhàm chán, nhưng lại là một phần trò cười trong trò chơi đó. Giả dụ như phiên bản Mario trong trò chơi điện tử 4 nút (Nintendo Entertainment System – N.E.S), những con rùa xanh và những con quái vật nâu chỉ biết đi qua đi lại để cố tỏ ra nguy hiểm. Đó chính là bộ mặt điển hình của AI thời điểm đó. Thế rồi những phim “bom tấn” Hollywood cố tô vẽ một ước mơ, một khát khao cháy bỏng của con người là biến những trò cười trong trò chơi điện tử kia thành những cỗ máy khổng lồ, siêu thông minh, và có phần đáng sợ như trong Ma Trận (Matrix), Kẻ Hủy Diệt (The Terminator). Khi đó, máy tính biết suy nghĩ độc lập, đưa ra quyết định, trợ giúp hoặc trở thành kẻ thù của con người. Bộ phim khắc họa AI thông minh và hủy diệt. Trước đây người ta chỉ có thể sử dụng trí tưởng tượng để khắc họa nên những cỗ máy như thế, nhưng nay không thể nói rằng những gì trên phim ảnh là hoàn toàn tưởng tượng được nữa. Những cỗ máy hiện thời đang trở nên vô cùng thông minh một cách đáng kinh ngạc. Vậy điều gì đã khiến AI trở nên tiến bộ vượt bậc trong thập kỷ qua để tiến hóa từ những con rùa xanh thành những sản phẩm “Powered by...

Toán tử instanceof trong Java
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Toán tử instanceof trong Java là một toán tử được sử dụng để kiểm tra xem đối tượng này có phải là instance của một class hay interface nào đó hay không? Kết quả trả về của toán tử này sẽ là true nếu đối tượng đó là thể hiện của class mà các bạn đang check, ngược lại thì false. Tuyển lập trình viên Java nhiều công ty HOT Ví dụ, mình có một class Application như sau: package com . huongdanjava . java ; public class Application { public static void main ( String [ ] args ) { Application application = new Application ( ) ; System . out . println ( application instanceof Application ) ; } } Trong hàm main() của class này, mình initialize một đối tượng của class Application và sử dụng toán tử instanceof để kiểm tra xem đối tượng này có phải là instance của class Application này hay không? Các bạn sẽ thấy kết quả sẽ như sau: Nếu các bạn viết code như sau: package com.huongdanjava.java; public class Application { public static void main(String[] args) { Application application = new Application(); System.out.println(application instanceof String); } } thì IDE sẽ báo lỗi ngay: Đây là trong trường hợp quá tường minh, quá rõ ràng, IDE có thể báo lỗi cho các bạn biết ngay. Nhưng nếu bạn có một interface với hai implementation như sau: package com.huongdanjava.java; public interface Shape { } package com.huongdanjava.java; public class Triangle implements Shape { } package com.huongdanjava.java; public class Rectangle { } thì lúc này nếu các bạn initialize đối tượng của class Triangle nhưng lại đi kiểm tra đối tượng này có phải là thể hiện của class Rectangle, package com.huongdanjava.java;...

Hướng dẫn viết Theme WordPress toàn tập phần 2
Bài viết được sự cho phép của tác giả Trần Anh Tuấn Ở bài trước chúng ta đã setup mọi thứ và cũng xem qua Design luôn rồi. Hôm nay chúng ta sẽ bắt đầu viết theme WordPress và phần đầu tiên đó chính là Header và Banner của Design. Các hình ảnh-icons trong Design mình đã lấy toàn bộ và upload lên Drive các bạn có thể nhấn vào đây để tải về để sử dụng trong quá trình viết theme WordPress nhé. # Setup cơ bản Trước khi đi vào công việc chính thì các bạn cần cài một số Plugins sau để hỗ trợ cho việc viết theme WordPress nhé. Những plugins đó là Advanced Custom Fields , Custom Post Type UI , SVG Support . Tiếp theo các bạn mở file style.css lên các bạn xóa hết code đi, chỉ để lại phần ghi chú thôi sau đó vào trang này copy đoạn code reset CSS rồi dán vào file style.css là được. Lúc này file style.css sẽ trông như thế này. Về reset CSS là gì các bạn có thể tìm hiểu nó tại đây nha. /*! Theme Name: Maker Theme URI: http://underscores.me/ Author: Underscores.me Author URI: http://underscores.me/ Description: Description Version: 1.0.0 ...... */ /*reset css below*/ reset css paste here Tiếp theo các bạn mở file functions.php lên và copy các dòng dưới đây dán vào dưới cùng. Những đoạn code này có chức năng cho phép chúng ta thêm class vào vào thẻ li , hay thẻ a trong Menu mà tí nữa chúng ta sẽ làm thông qua hàm wp_nav_menu. /*Adding class to menu item - li tag */ function add_menu_list_item_class($classes, $item, $args) { if($args->list_item_class) { $classes[] = $args->list_item_class; } return $classes; } add_filter('nav_menu_css_class', 'add_menu_list_item_class', 1, 3); /*Adding class to link menu...

Khám phá cơ hội nghề nghiệp hấp dẫn đến từ VDC in collaboration with PYCOGROUP
VDC là Trung tâm Phát triển công nghệ số 1 tại Thành phố Hồ Chí Minh, được thành lập bởi sự hợp tác từ NAB – Ngân hàng kinh doanh lớn nhất của Úc với 160 năm kinh nghiệm và PYCOGroup, công ty tư vấn và phát triển kỹ thuật số toàn cầu đến từ Bỉ. Lý do khiến VDC trở thành “điểm đến” lý tưởng cho các tài năng công nghệ tỏa sáng sự nghiệp “Cập bến” tại Việt Nam, NAB mang đến làn gió mới cho lĩnh vực phần mềm và fintech với sự xuất hiện của Trung tâm VDC, hoạt động với nhiệm vụ xây dựng nhóm kỹ thuật số và cho ra đời những giải pháp tối ưu, đáp ứng yêu cầu ngày càng cao từ người dùng. VDC là Trung tâm Phát triển công nghệ số 1 tại Thành phố Hồ Chí Minh, được thành lập bởi sự hợp tác từ NAB – Ngân hàng kinh doanh lớn nhất của Úc với 160 năm kinh nghiệm và PYCOGroup, công ty tư vấn và phát triển kỹ thuật số toàn cầu đến từ Bỉ. VDC là sự kết hợp mạnh mẽ của các dịch vụ tài chính cùng với các nhà công nghệ, kỹ sư phát triển phần mềm, nhà xây dựng và người kiểm tra, cung cấp đầy đủ các dịch vụ qua ngân hàng doanh nghiệp, ngân hàng cá nhân và tài sản.VDC đang tận dụng các công cụ và kỹ thuật mới nhất được sử dụng bởi các công ty công nghệ và kỹ thuật số hàng đầu trên toàn cầu để trải qua quá trình chuyển đổi công nghệ số “Cloud First”. Không chỉ quan tâm đến công nghệ, VDC còn chú trọng đầu tư vào sự phát triển của từng cá...

Điều gì nói một trang web có UX tốt trên mobile
Sau kết quả nghiên cứu hơn 199 giờ, lấy ý kiến trên một lượng lớn user ở Mỹ, mời họ về công ty của Google, gửi feedback rồi nhận tiền, Google đã tổng hợp một danh sách các điều mà user cho là site này ngon UX tốt trên mobile nói một cách quạch tẹc ra là trải nghiệm của người sử dụng trang web, đánh giá là site chúng ta ngon , dễ đớp như ăn bánh. Download toàn bộ kết quá đánh giá Call-to-action: đặt ngay giữa, trên cùng ✅ Những call-to-action (user vào đây để làm cái gì là chính, tương tác hay sử dụng nhất) nằm ngay giữa, vừa vào thấy luôn. Các thao tác kém quan trọng hơn có thể đưa vào menu hoặc cuộn xuống để xem 🤬 Phung phí phần hiển thị đập vào mặt user đầu tiên bằng cái hình vớ vẩn, nút “Learn more” chả mấy tác dụng Giữ menu ít mà chất ✅ Bọn user xài mobile rất lười cuộn lên cuộn xuống để tìm cái menu nào đó Lúc nào cũng chừa đường về nhà ✅ Nếu bạn không cho click vào cái logo để quay về trang chủ, bạn không phải người ở hành tinh chúng tôi Quảng cáo dạng popup đừng cướp hết sàn diễn ✅ Quảng cáo thì cũng vừa vừa chứ đừng cướp hết cả nội dung trang web 🤬 Một trong những tính năng yêu thích của bọn marketing làm đau lòng user, popup, popup, popup Tìm kiếm ✅ Ô search lồ lộ ngoài mặt tiền 🤬 Ô search ẩn sâu trong menu collapse Kết quả search User không rảnh đi vòng vòng để kiểm tra kết quả tìm kiếm có đúng không. Tự đồng điền câu tìm kiếm, sửa lỗi chính tả, gợi...

Các kỹ thuật xử lý vấn đề về nội dung trong CSS mà bạn nên biết
Bài viết được sự cho phép của tác giả Trần Anh Tuấn Khi các bạn làm việc với CSS đặc biệt là làm những giao diện liên quan đến nội dung như những đoạn chữ ngắn hay dài. Đôi khi trong thiết kế chỉ hiển thị vài ba chữ làm giao diện trở nên rất đẹp, tuy nhiên khi chúng ta đưa vào dự án, nội dung có thể thay đổi dài hơn hoặc ngắn đi làm cho giao diện chúng ta gặp nhiều vấn đề không mong muốn. 5 điều phiền toái nhất của CSS 11 công cụ hữu ích để kiểm tra và tối ưu hóa các file CSS Vì thế trong bài viết này mình sẽ đi vào các vấn đề đó kèm theo là các kỹ thuật để xử lý chúng một cách hiệu quả để kết quả chúng ta làm ra luôn được kết quả tốt nhất nhé. Bắt đầu thôi nào. Vấn đề Trước khi đi sâu vào kỹ thuật để xử lý các vấn đề về nội dung liên quan tới chữ, thì mình sẽ trình bày một vài vấn đề trước cho các bạn dễ hình dung, như ở dưới hình này chúng ta có một vertical menu(menu hiển thị theo chiều dọc) Như các bạn thấy là nếu bên trái là theo thiết kế rất chi là đẹp, tuy nhiên nếu nội dung dài ra thì sẽ bị xấu đi một chút. Thì lúc này chúng ta cần đặt ra những câu hỏi như là Chúng ta có nên sử dụng kỹ thuật cắt chữ để hiển thị trên một hàng hay không ? Hay là chúng ta cứ để nó hiển thị thành nhiều hàng ? Nếu có thì hiển thị tối đa bao nhiêu hàng là được hay là...

DataGrip: Công cụ quản trị cơ sở dữ liệu hiện đại
Bài viết được sự cho phép của blogchiasekienthuc.com Chào các bạn, trong các bài viết trước mình đã giới thiệu tới các bạn một số những công cụ UI (công cụ giao diện đồ họa) được sử dụng để làm việc với các hệ quản trị cơ sở dữ liệu rất hay. Có thể kể đến như MySQL Workbench, SQL Server Management Studio (SSMS) hay gần đây nhất là Navicat … Nhưng sẽ là rất thiếu sót nếu như mình không đề cập đến DataGrip – một công cụ đến từ JetBrains với những tính năng có thể nói là rất mới và “ăn đứt” các công cụ cùng chức năng khác. "Làm PM, theo anh không cần biết về code, nhưng phải hiểu về SQL, database, những khái niệm cơ bản của code" 26 công cụ và kỹ thuật trong Big Data có thể bạn chưa biết Trong khuôn khổ bài viết hôm nay mình sẽ cùng các bạn cài đặt công cụ này trên hệ điều hành Windows 10 và thực hiện kết nối đến hệ quản trị cơ sở dữ liệu MySQL. #1. Hướng dẫn cài đặt DataGrip mới nhất + Bước 1: Đầu tiên các bạn download file cài đặt tại đây: https://www.jetbrains.com/datagrip/download/#section=windows Hiện tại thì DataGrip hỗ trợ cả ba hệ điều hành phổ biến nhất hiện nay là Windows, macOS và Linux. Ở trong bài hướng dẫn này mình sẽ cùng các bạn cài đặt DataGrip trên hệ điều hành Windows 10 nhé. Sau khi download các bạn chạy file cài đặt (file *.exe ) để bắt đầu quá trình cài đặt như hình bên dưới. + Bước 2: Các bước cài đặt cũng tương tự như khi cài đặt các phần mềm khác của JetBrains. Đầu tiên các bạn bấm Next như hình...

Vì sao IT Fresher không thể bỏ lỡ Vòng Loại cuối cùng của Station D Challenge?
Station D Challenge lần đầu tiên khởi động vào tháng 10/2020 kết hợp cùng nền tảng Hackerrank hứa hẹn một sân chơi chuyên nghiệp, công bằng, trực quan không cảm tính hay thiên vị dành riêng cho lập trình viên sẵn sàng đương đầu thử thách! Nếu đây từng là nơi “luyện code” nay đã trở thành một đấu trường cạnh tranh năng lực cùng những món quà hấp dẫn “dân công nghệ” không tài nào bỏ qua! Hiện tại cuộc thi đã đi đến được Round 2 – Vòng Loại cuối cùng của Station D Challenge 2020 trước khi bước vào Final Round và tìm ra người thắng chung cuộc! HackerRank là một nền tảng hiện đang được nhắc đến rất nhiều trong cộng đồng lập trình viên. Nếu bạn đã từng nghe thoáng qua cái tên này hoặc nếu bạn đã biết đến HackerRank nhưng vẫn chưa có “đủ động lực” để thử sức với một nền tảng mà sẽ giúp năng cao kỹ năng lập trình của mình thì hãy cùng Station D tìm hiểu 4 lý do vì sao bạn nên tạo một tài khoản HackerRank ngay bây giờ nhé! HackerRank là nơi bạn có thể học và rèn luyện kỹ năng lập trình, đặc biệt về thuật toán , Machine learning & AI , với độ khó từ mức cơ bản cho đến cực kỳ “hack não”. Trên HackerRank, người tham gia được yêu cầu đưa ra lời giải cho các challenge (những bài toán/câu đố do HackerRank cung cấp). Kết quả và tốc độ giải đề của bạn sẽ những yếu tố để đánh giá và xếp hạng các lập trình viên tham gia trên toàn thế giới! Hiện tại nhiều công ty công nghệ trên thế giới đang sử dụng HackerRank như một...

BrSE Cần Học Công Nghệ Gì?
Bài viết được sự cho phép của tác giả Nguyễn Văn Trọng Câu hỏi đặt ra : học công nghệ đó để làm gì (nghe quen quen kiểu “làm từ thiện để làm gì”). Nếu học vì đam mê, yêu thích nó thì mình không bàn tới. Phạm vi bài viết này chỉ giới thiệu xu hướng công nghệ đang hot với BrSE ở thời điểm hiện tại và vài năm tới (ở Nhật), tức là dù không mê hay thậm chí …ghét cay ghét đắng cũng nên học. Mình sắp xếp theo 3 mảng : Maintain, Migartion, Development. 5 Ngộ nhận về nghề BrSE Những Tố Chất Cần Thiết Của BrSE Maintain Hiện tại các hệ thống quản lý nội bộ công ty – quản lý khách hàng thuộc các domain như y tế, giáo dục, ngân hàng … đang lạc hậu trầm trọng về mặt tính năng, tính tương thích nhưng để làm mới là việc quá rủi ro vì hệ thống quá lớn đã được vận hành hàng thập kỷ. Khách hàng Nhật có tính chắc ăn trong mọi việc nên thường họ chọn cách làm maintain hệ thống cũ, tức là làm mới giao diện người dùng, thêm 1 vài tính năng mới… Có nhiều ngôn ngữ nhưng 3 loại phổ biến nhất mà BrSE theo mảng maintain cần nắm. Java Khỏi cần nói nhiều vì Java quá phổ biến. Cobol Ngôn ngữ cũ ríc này hiện nay vẫn chưa tắt thở vì 1 lợi thế quá lớn về mặt performan. Và các hệ thống to đùng hầu hết tầng bên dưới đều dùng anh này. VB Một trong những ngôn ngữ lập trình hướng đối tượng ra đời sớm nhất, và được ứng dụng rộng rãi trong nhiều hệ thống quản lý nội bộ công...

Các trường hợp kiểm thử OTP
Bài viết được sự cho phép của tác giả Vân Anh Quay trở lại với chuỗi bài “How to” – làm như thế nào, bên cạnh các bài viết liên quan đến Selenium và những thứ linh tinh trong đời sống thường ngày của mình, mình bổ sung chuỗi bài viết này để luyện tập các kỹ năng của bản thân liên quan đến chuyên môn kiểm thử, rèn luyện lối tư duy, dịch và diễn giải cho dễ hiểu nhất từ các bài toán cụ thể trong thực tế. 04 Điều Cần Chú Ý Cho Người Mới Làm Automation Test Biện hộ: Vì sao các Developer không test phần mềm của họ? Những bài toán thực tế – có thể là bạn sẽ gặp rất nhiều nhưng như mình đã nói đâu đó trong các bài viết trước đây, gặp nhiều thậm chí cảm thấy rất quen thuộc, tuy nhiên nếu chỉ nghĩ mà không ghi lại hoặc lưu trữ đâu đó thì trước sau gì cũng bị gió thổi bay, không thì cũng tự bốc hơi mà thôi, chưa kể đến việc thiếu sót mà trong suy nghĩ bạn khó có thể nhận ra. Rồi kể cả việc có kiến thức kỹ năng, nhưng không được luyện tập nó cũng sẽ tự mai một đi. Chứng minh dễ thấy nhất là việc các anh chàng tay chân cơ bắp, bụng sáu múi vô cùng hấp dẫn, nhưng nếu không tập tành đều đặn thì cái việc cơ bị xịt đi là điều hết sức bình thường nha=)) muốn to thì lại phải tập tiếp. Nói chung, làm gì cũng cần phải có sự luyện tập kiên trì và đều đặn nhá. Quá chuẩn luôn không cần nhiều dẫn chứng nữa. Ùi, lại lan man rồi, hôm nay mình...

Những điều không thể bỏ lỡ của F8 Facebook ngày đầu tiên
F8, hội nghị developer hàng năm do Facebook tổ chức, đang được tiến hành. Bắt đầu sự kiện với Mark Zuckerberg cùng câu nói đùa ám chỉ F8 khác – phần thứ 8 của the Fast and the Furious franchise: The Fate of the Furious. Có vẻ Facebook đang sharing hastag với Vindiesl and Co cho sự kiện năm nay, một tình huống có lẽ sẽ thật sự hấp dẫn nếu họ mời được The Rock tham gia sự kiện để…..bình luận về những breakthrought trong trí tuệ nhân tạo và machine learning . Tất nhiên là Facebook chả bao giờ làm thế. Một sai lầm đáng tiếc. Zuck lại tiếp tục dọa rằng ông sẽ bắt mọi người nghe cho hết bản manifesto dài tới 6 ngàn dòng để bắt đầu cho sự kiện, may thay đó chỉ là lời đùa khi ông tóm tắt khá ngắn gọn trong khi vẫn cười hóm hỉnh. AR Studio: AR platform cho camera của bạn Zuckerberg nhanh chóng lấy lại phong độ và thể hiện đúng chất của một CEO và co-founder Facebook khi ông bắt đầu nói về AR. Zuck bày tỏ mong muốn “mở rộng tính vật lí trong thế giới online” và hỏi mọi người rằng “Có biết bao nhiêu thứ trong cuộc sống quanh ta vốn không cần đến những tác động vật lí”, trong khi màn hình phía sau ông hiện lên một thế giới ảo về cờ vua, hoặc là xem TV. Tại Facebook, Zuckerberg cho biết nhóm đang tập trung phát triển 3 tính năng sử dụng của AR: Hiển thị thông tin Add vật “ảo” vào cảnh thật từ hình và video Khả năng enhance những vật thu được trong camera Sử dụng một công nghệ gọi là SLAM (simultaneous localization and mapping) –...