Chuyển đến nội dung chính

Bài đăng

Hướng dẫn cài đặt MPI cho Visual Studio

MPI là gì? MPI (Message Passing Interface) là một tiêu chuẩn giao tiếp cho các chương trình song song. Nó cho phép các chương trình được viết bằng nhiều ngôn ngữ lập trình khác nhau (như C, C++, Fortran) để giao tiếp với nhau trên các hệ thống máy tính phân tán. Cơ bản về MPI Process: MPI xem một chương trình song song như một tập hợp các process độc lập. Mỗi process có bộ nhớ riêng và thực thi cùng một mã chương trình. Giao tiếp: Các process giao tiếp với nhau bằng cách gửi và nhận các thông điệp. MPI cung cấp các hàm để gửi và nhận các thông điệp giữa các process. Communicator: Một communicator là một nhóm các process được sử dụng để giao tiếp. MPI cung cấp các hàm để tạo và quản lý các communicator. Cài đặt MPI Trong phần này, mình sẽ hướng dẫn bạn cài đặt MPI với Visual Studio Community. Bạn có thể sử dụng Visual Studio Code nếu cần 1 IDE nhẹ, ít chiếm tài nguyên Cài đặt Visual Studio Community Visual Studio Community là một phiên bản miễn phí của Integrated Development Environment
Các bài đăng gần đây

Playwright là gì? - Part 1

Playwright là gì? Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast. Playwright là một framework dành cho kiểm thử và tự động hóa web. Nó cho phép kiểm thử các trình duyệt Chromium, Firefox, và WebKit chỉ với một API duy nhất. Playwright được phát triển nhằm hỗ trợ tự động hóa web đa trình duyệt với tính năng luôn được cập nhật, mạnh mẽ, đáng tin cậy, và nhanh chóng. Homepage: https://playwright.dev/ Github: https://github.com/microsoft/playwright Cài đặt Cài đặt Visual Studio Community: https://visualstudio.microsoft.com/downloads/ Cài đặt Powershell: https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows Mở Visual Studio, chọn File => New => New Project: chọn NUnit Playwright Test Project Project sẽ được tạo với file UnitTest1.cs như sau: [Parallelizable(Paral

Hướng dẫn cài đặt Java và Maven

Cài đặt Java Download: https://www.oracle.com/java/technologies/downloads/ Các bản Java Long-term version: Java 11, Java 17, Java 21 Cài đặt biến môi trường JAVA_HOME Bước này yêu cầu bạn phải thiết lập biến môi trường JAVA_HOME để trỏ đến thư mục cài đặt JDK: Nhấp chuột phải vào biểu tượng Windows trên thanh taskbar và chọn "System". Trong cửa sổ System, nhấp vào "Advanced system settings" ở thanh bên trái. Trong cửa sổ System Properties, nhấp vào nút "Environment Variables". Trong cửa sổ Environment Variables, ở phần "System variables", nhấp vào "New". Nhập "JAVA_HOME" vào ô "Variable name". Nhập đường dẫn đến thư mục cài đặt JDK của bạn vào ô "Variable value". Ví dụ: C:\Program Files\Java\jdk-x.x.x (thay thế x.x.x bằng số phiên bản thực tế của bạn).  Nhấp "OK" để lưu Chỉnh sửa biến môi trường PATH Tiếp theo, bạn cần thêm thư mục bin của cài đặt JDK vào biến môi trường PATH. Điều này cho phép bạ

Ôn tập Angular: Guards và Resolver

Guard là gì Trong Angular, Guard là một trong những công cụ mạnh mẽ dùng để bảo vệ các route trong ứng dụng. Guard giúp kiểm soát quyền truy cập của người dùng vào các route cụ thể dựa trên các điều kiện như quyền hạn (authorization), quyền đăng nhập (authentication), hoặc bất kỳ logic nào mà bạn muốn áp dụng trước khi cho phép người dùng điều hướng tới một trang nào đó. Guard trong Angular hoạt động giống như các interceptor, nhưng nó chủ yếu kiểm tra trước khi cho phép truy cập một route. Nó giúp đảm bảo rằng người dùng không thể truy cập vào các phần không được phép của ứng dụng. Có 4 loại guard: canMatch: dùng để verify 1 Route có thể được load. Bạn có thể định nghĩa nhiều Routes cho 1 single path và dùng Guard để chọn 1 dựa trên điều kiện có sẵn. canActivate: kiểm soát quyền truy cập vào một Route. Ví dụ, chỉ những người dùng đã đăng nhập mới được phép truy cập vào một số trang cụ thể. canActivateChild: canActivateChild tương tự như canActivate, nhưng nó được áp dụng cho các Ro

Tìm hiểu về Cucumber

Cucumber là gì? Cucumber là một công cụ kiểm thử tự động dựa trên việc thực thi các functions được mô tả dướng dạng plain-text, để hỗ trợ cho việc viết Behavior Driven Development(BDD). Nói theo cách khác Cucumber là công cụ phần mềm được sử dụng bởi tester để thực hiện các trường hợp kiểm thử kiểm tra hành vi của phần mềm. Tạo project Cucumber mvn archetype:generate "-DarchetypeGroupId=io.cucumber" "-DarchetypeArtifactId=cucumber-archetype" "-DarchetypeVersion=7.17.0" "-DgroupId=mycucumberplanet" "-DartifactId=mycucumberplanet" "-Dpackage=<package-name>" "-Dversion=1.0.0-SNAPSHOT" "-DinteractiveMode=false" Hoặc viết như sau mvn archetype:generate \ "-DarchetypeGroupId=io.cucumber" \ "-DarchetypeArtifactId=cucumber-archetype" \ "-DarchetypeVersion=7.17.0" \ "-DgroupId=mycucumberplanet" \ "-DartifactId=mycucumberplanet" \ "-Dpackage

Ôn tập Angular: Service và Depencency Injection - Part 4

Angular Servcie Angular Service là một class có chức năng cụ thể, được thiết kế để thực hiện các tác vụ không liên quan trực tiếp đến giao diện người dùng (UI) hoặc logic ứng dụng chính. Tạo 1 service ng g s <service-name> Ví dụ ng g s logger Khai báo thêm name cho loggerService import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class LoggerService { public name: string = "logger"; constructor() { } } providedIn: 'root': Đây là một thuộc tính của decorator @Injectable. Nó chỉ định rằng service này sẽ được cung cấp bởi Injector Root của ứng dụng. Nghĩa là, Angular sẽ tự động tạo một instance duy nhất của service này khi ứng dụng khởi chạy và instance này sẽ có phạm vi ứng dụng (application scope). Bất kỳ thành phần nào trong ứng dụng đều có thể yêu cầu service này thông qua Dependency Injection. Hoặc bạn có thể inject vào app.config.ts import { ApplicationConfig, provideZoneChangeDetection } from &#

Ôn tập Angular: Angular Router - Part 3

Angular Routing Angular Routing giống như hệ thống điều hướng trong ứng dụng web của bạn. Nó cho phép người dùng "di chuyển" giữa các trang hoặc màn hình khác nhau mà không cần tải lại toàn bộ trang web. Angular Routing hoạt động thế nào? Đầu tiên, bạn xem qua ví dụ về link trong HTML <a href="/example"> Example HTML link. </a> Link trên sẽ redirect page tới url /example. Tuy nhiên, một ứng dụng trang đơn (SPA) không có các trang khác nhau để liên kết. Thay vào đó, ứng dụng có các view khác nhau để hiển thị cho người dùng. Để cho phép người dùng điều hướng và thay đổi view, bạn sẽ muốn sử dụng directive RouterLink thay vì href: Angular Routing dựa trên khái niệm về route, một URL cụ thể được ánh xạ đến một component cụ thể. Khi người dùng truy cập một URL nhất định, Angular sẽ tìm kiếm route tương ứng và hiển thị component được liên kết với nó. Ví dụ: Giả sử bạn đang xây dựng một ứng dụng blog. Bạn có thể định nghĩa các route sau: /: Hiển thị danh