Skip to content
Showing 1-30 of 30 items.
@renovate
Admin 01/05/2021 00:00
Tìm hiểu Lazy Collection

Introduction Lazy Collection là một tính năng mới của Laravel được giới thiệu trong phiên bản 6.0. Đây là một sự bổ sung cho tính năng Collection vô cùng hữu ích đã có trước đó của Laravel cho phép ta giảm thiểu bộ nhớ sử dụng. Vì là một tính năng mới, hiện các tài liệu về Lazy Collection vẫn còn hạn hẹp nên mình xin phép góp vui một bài viết đi vào tìm hiểu về Lazy Collection và có một cái...

PHP collection Laravel MayFest Lazy Collection
@renovate
Admin 01/05/2021 00:10
Khám phá Navigation Architecture Component trong Android

Giới thiệu Mới đây Google đã giới thiệu đến với cộng đồng Android trên toàn thế giới Navigation Architecture Component, nó như một phần của Android Jetpack và gói AndroidX nhằm mục đích đơn giản hoá việc triển khai của điều hướng trong ứng dụng Android của bạn. Thành phần này và các nguyên tắc của nó cung cấp một cái nhìn mới về cách triển khai điều hướng, bao gồm đề xuất sử dụng...

MayFest MobileTeam Education
@renovate
Admin 01/05/2021 01:10
Crypto

Hôm nay chúng ta sẽ tìm hiểu về CBC, tại mode này, khối text đầu tiên sẽ được XOR với một khối Initialization vector (viết tắt là iv) rồi mới mã hóa ra bản mã. Các khối text phía sau sẽ được XOR với bản mã của khối text đằng trước nó sau đó mới mã hóa và cuối cùng các bản mã ghép lại với nhau như ở hình bài trước. Hôm nay mình sẽ giới thiệu về 1 bài trên cryptohack về CBC. Link:...

MayFest
@renovate
Admin 01/05/2021 01:10
[REACT JS] RERENDER COMPONENT TRONG REACT JS

I. Khái niệm DOM và VDOM DOM: Viết tắt của Document Object Model, tạm dịch là mô hình các đối tượng tài liệu. DOM được dùng để truy xuất và thao tác trên các tài liệu có cấu trúc dạng HTML hay XML bằng các ngôn ngữ lập trình thông dụng như Javascript, PHP,… Tất cả các thẻ HTML đều được quản lý trong đối tượng document. Ở javascript để thao tác với các thẻ html chúng ta phải sử dụng đối...

React js MayFest
@renovate
Admin 01/05/2021 01:20
[REACT JS] THUỘC TÍNH REF TRONG REACT

Ref trong React Component là gì ? Ref được sử dụng để lấy tham chiếu đến một node DOM(Document Object Model) hoặc có thể là một thể hiện của một component trong một ứng dụng React, tức là ref sẽ về một node mà chúng ta tham chiếu đến khi render xong cây dom. Trong react chúng ta thường sử dụng state thể thay đổi đổi DOM ảo, React không khuyến khích thay đổi DOM thật nhưng trong 1 số trường hợp sau...

React js MayFest
@renovate
Admin 01/05/2021 01:30
ECB Trong Crypto

AES là một loại block cipher (mã hoá từng khối dữ liệu). Trong AES lại chia ra thành các mode mã hóa như ECB, CBC, CTR,... Bài hôm nay mình sẽ nói rõ hơn về ECB, cách mã hóa và các lỗ hổng tồn tại xung quanh mode này (mà mình đã tìm hiểu được). Các hàm, toán tử trong bài này và các bài crypto sau sẽ được tiêu chuẩn hóa về ngôn ngữ Python (cụ thể là version 3). Như sơ đồ bài trước thì từ một P...

MayFest
@renovate
Admin 01/05/2021 01:30
[REACT JS] HOOK LÀ GÌ? CUSTOM HOOK TRONG REACT JS

Hook Là gì ? Trong react trước đây, để sử dụng được các state bắt buộc ta phải sử dụng chúng trong 1 class của javascript. Từ phiên bản 16.8 định nghĩa hook được ra đời, nó cho phép sử dụng được staste và lifecycle vào trong 1 function. Hook được hiểu nôm na là 1 function có thể sử dụng state ở bên trong, thay vì trả về JSX như component thì trả về 1 giá trị nào đó. Ngoài các hook được React...

React js MayFest
@renovate
Admin 01/05/2021 07:40
Drawing trong SwiftUI

Hôm nay mình sẽ chia sẽ cho các bạn các dạng hình khối ở trong SwiftUI. Thì ở trong SwiftUI ta sẽ có 5 dạng hình khối cơ bản. Bây giờ chúng ta sẽ bắt đầu nhé. Rectangle Thì thẻ này sẽ giúp ta tạo ra một hình khối hộp với kích thước chiều rộng và chiều dài ta truyền vào thông qua thuộc tính frame RoundedRectangle Thì thằng này cũng sẽ giúp ta tạo ra một dạng hình khối nhưng nó khác thằng trên...

AndroidiOS SwiftUI MayFest
@renovate
Admin 01/05/2021 09:30
Mysql issue: Too many connections

Trong quá trình làm việc với hệ quản trị cơ sơ sở dữ liệu(Mysql, Postgres, Oracle...) rất nhiều khi gặp lỗi "Too many connections". Tại thời điểm đó, database không thể tiếp tục nhận các kết nối đến. Bạn không thể connect dùng GUI. Các service và application không hoạt động. -> Giải pháp đơn giản nhất là reset lại database, để đóng các connections hiện tại. Ưu điểm: Nhanh, dễ...

MySQL Optimization database performance MayFest May Fest
@renovate
Admin 01/05/2021 16:10
HikariCP - Best Practice in Manage Connection Pool

1. Giới thiệu HikariCP Ở bài trước, mình có nói về max_connections. Bài viết này, mình sẽ nói chi tiết hơn vấn đề mà mình đã gặp phải, cách khắc phục nó. Để hiểu về HikariCP là gì có thể tham khảo 1 bài viết này Trong bài viết này, mình sẽ giải thích chi tiết từng tham số trong đó, những ảnh hưởng của tham số qua các ví dụ thực tế. Trong ví dụ của mình, mình sẽ sử dụng Project Spring...

Java Spring boot MayFest May Fest Database Connection Pool HikariCP
@renovate
Admin 01/05/2021 21:40
Thực hành mã hóa và giải mã thuật toán Simplified AES

Tương tự bài viết trước về thuật toán Simplified AES, mình sẽ không thảo luận về lý thuyết của tiêu chuẩn mã hóa dữ liệu Advanced Encryption Standard - AES, hay cụ thể là Simplified AES. Thay vào đó, mình sẽ thực hành mã hóa và giải mã bằng tay từng bước thuật toán Simplified AES. Cùng bắt tay thực hiện nào! Task 1: Thực hiện mã hóa Simplified AES (Encryption) bằng tay để tìm ciphertext Mình sẽ sử...

MayFest May Fest Cryptography Encryption
@renovate
Admin 02/05/2021 01:10
Variable

Biến là một khái niệm rất quan trọng trong nhiều ngôn ngữ lập trình, được sử dụng để lưu trữ cá giá trị. Chúng ta có thể gán một giá trị cho một biến, khi nào cần giá trị (số, chuỗi, etc) thì gọi tên biến thay vì giá trị, các interpreter, compiler truy xuất đến giá trị đã được gán vào biến khi thực hiện việc tính toán thay cho chúng ta. Con người dễ tiếp thu ngôn ngữ hơn là những...

javascipt MayFest programming language
@renovate
Admin 02/05/2021 10:20
Thực hành mã hóa và giải mã thuật toán Simplified DES

Ở bài viết này, mình sẽ không thảo luận về lý thuyết của tiêu chuẩn mã hóa dữ liệu (Data Encryption Standard - DES), hay cụ thể là Simplified DES. Thay vào đó, mình sẽ thực hành mã hóa bằng tay từng bước thuật toán Simplified DES và thực hiện giải mã thông qua công cụ SageMath để kiểm tra xem có đúng Plaintext trước đó hay không. Cùng bắt tay thực hiện nào! Task 1: Thực hiện mã hóa Simplified DES...

MayFest May Fest Cryptography Encryption
@renovate
Admin 02/05/2021 11:20
Nguyên lý hoạt động về ứng dụng hàm băm

Trong bài viết này, mình sẽ trình bày về nguyên lý hoạt động về ứng dụng hàm băm cho việc xác thực thông tin và cho chữ ký số, giải thích, cũng như so sánh ưu, khuyết điểm của mỗi loại. 1. Nguyên lý hoạt động về ứng dụng hàm băm cho việc xác thực thông tin Chú thích: M: message – nội dung thông điệp cần mã hóa H(M): hash - hàm hash message M E(M): encrypt - hàm mã hóa message M D(M):...

MayFest May Fest cryptographic hash Hash Functions
@renovate
Admin 02/05/2021 11:30
Kubernetes - deployment.yaml explained

Trong bài trước, mình có giới thiệu chạy các câu lệnh K8S bằng Command Line Để tạo 1 deloyment đơn giản chỉ cần chạy lệnh kubectl create deployment hello-app --image=nginx:latest Trong câu lệnh trên đã lược bỏ hầu như hết các thuộc tính không bắt buộc, nó chạy được, nhưng muốn mở rộng thì khó hơn nhiều. Khi đó phải truyền thêm các điều kiện vào command line khiến nó rất rồi mắt. Chính vì...

Kubernetes K8s MayFest May Fest Kubernetes Deployment
@renovate
Admin 02/05/2021 18:20
Kotlin Data Class hay Builder Design Pattern?

Như chúng ta đã biết, Builder pattern là một trong những Design Pattern thuộc về nhóm Creational Pattern - những mẫu thiếu kế cho việc khởi tạo đối tượng của lớp. Design Pattern này sẽ giúp chúng ta tạo mới một đối tượng từ class một cách rõ ràng, linh hoạt. Bên cạnh đó, Data Class là một từ khóa không còn xa lạ với chúng ta ở trong Kotlin. Khi sử dụng Data Class, với từ khóa này, trình biên dịch...

MayFest
@renovate
Admin 02/05/2021 21:40
Tìm hiểu MYSQL Architecture

Mở đầu Đến với tháng 4, tháng của những lời nói dối. Thì tôi sẽ đưa các bạn đi tìm về một sự thật thú vị. Đó là sự thật về kiến trúc của mysql. Một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) phổ biến nhất hiện nay. Major components & Layer MYSQL Architecture mô tả cách mà những component trong mysql tương tác với nhau. Về cơ bản thì MYSQL Architecture là một hệ thống...

MySQL MayFest architecture
@renovate
Admin 03/05/2021 10:40
Các nguyên tắc cơ bản về Testing

1. Testing là gì Thường mọi người hiểu khái niệm test chỉ là chạy test, chạy phần mềm nhưng đó chỉ là một phần không phải tất cả các hoạt động test. Các hoạt động test tồn tại trước và sau khi chạy PM bao gồm: lên kế hoạch và kiểm soát, chọn điều kiện test, thiết kế và chạy test case, test kết quả, đánh giá tiêu chí kế hoạch, báo cáo trong quy trình test và các hoạt động đóng sau...

MayFest ISTQB foundation
@renovate
Admin 03/05/2021 22:00
Memory layout của một chương trình C/C++

1. Đặt Vấn Đề Khi chúng ta viết 1 chương trình C/C++ , source code của chúng ta sẽ được lưu trong storage, sau đó khi chúng ta compile hệ thống sẽ tạo ra file cài đặt và file này cũng được lưu trong storage. Cuối cùng là quá trình chúng ta run file program, thực chất đây là quá trình chúng ta load chương trình vào Memory và excute. Vậy chương trình được load vào Memory sẽ được structure như thế nào ở...

C++ C/Cpp MayFest
@renovate
Admin 03/05/2021 22:00
Cách Unwrapped Optional trong Swift

1. Giới Thiệu Trong Swift, Optional là một tính năng vô cùng mạnh mẽ giúp chương trình không bị crash. Chúng ta thường sử dụng Optional cho trường hợp một biến hoặc một hằng có thể có hoặc không có giá trị. Một cách dễ hiểu Optional giống như một chiếc cốc, có hai khả năng có thể xảy ra là cốc có thể có nước hoặc không có gì cả. Kí hiệu của Optional là Optional <T> với T là kiểu...

#AppMobile MayFest
@renovate
Admin 03/05/2021 23:30
Cấu hình Nginx Server như thế nào?

Nginx là một Web Server phổ biến, quen thuộc đối với những Web Developer. Nginx hoạt động mạnh mẽ với hiệu suất cao, khả năng xử lí nhiều request đồng thời một lúc mà lại tốn ít tài nguyên. Ngoài việc được sử dụng là một Web Server, Nginx còn được sử dụng như là một Load Balancer và Reverse Proxy. Trong bài viết này, mình sẽ hướng dẫn cách cấu hình Nginx thành một Web Server như thế nào. 1....

nginx MayFest
@renovate
Admin 05/05/2021 15:10
Đừng validation bằng tay trong Spring Boot (phần 1)

Bài hôm nay mình sẽ trình bày một khái niệm cực kì quan trọng với mọi hệ thống backend. Hẳn mọi người đã từng nghe điều này. Đừng tin tưởng dữ liệu cho người dùng nhập vào. Câu trên có thể mở rộng ra phạm vi với các nguồn dữ liệu khác được coi là không tin cậy, gồm database, client,... Trong trường hợp cần nhận data từ các nguồn đó, nhất thiết phải thực hiện Validation. 1....

Java Spring Boot MayFest May Fest validation
@renovate
Admin 05/05/2021 16:20
Lần này vẫn có source code, nhưng hack thì dễ hơn

Bài trước (Đây là bài trước: https://viblo.asia/p/khi-co-source-code-roi-thi-hack-co-de-khong-maGK7G8AKj2), mình có đưa một câu hỏi là Khi có source code rồi thì hack có dễ không?. Tuy nhiên bài đó thì có vẻ cũng hơi phức tạp, nên nay mình quyết định ra một bài mới Vẫn là có source code, nhưng hack dễ hơn, để viết về một bài nhưng nó đỡ phức tạp hơn bài trước. Cho bạn nào mới tiếp cận review source...

CTF MayFest May Fest hack web review source code
@renovate
Admin 11/05/2021 15:10
Mở đầu - Series Học Javascript nâng cao bằng phương pháp dịch ngược code Babel

Hello! Có thể nói trường phái "Dịch ngược code Babel" là một thứ khá mới mẻ, có lẽ cũng không có nhiều lập trình viên đang đi theo con đường này. Đây là con đường đầy chông gai, nhưng một khi vượt qua những trở ngại bước đầu thì phần thưởng dành cho người can đảm là rất xứng đáng. Vậy phương pháp "Dịch ngược code Babel" sẽ mang lại cho bạn lợi ích gì? Đây là...

JavaScript MayFest May Fest Babel
@renovate
Admin 11/05/2021 15:40
Bài mở đầu - Series Học dịch ngược code Babel

Hello! Dịch ngược code Babel là tên một phương pháp do mình đặt tên, đại ý là đọc code của các file JS đã được Babel build ra trên các website, rồi sau đó viết lại nó, có thể coi là "decode" Javascript. Đây là trường phái khá mới mẻ, có lẽ cũng không có nhiều lập trình viên đang đi theo con đường này. Đây là con đường đầy chông gai, nhưng một khi vượt qua những trở ngại bước...

JavaScript MayFest May Fest Babel
@renovate
Admin 14/05/2021 21:40
Ứng dụng “Camera” của bạn được tạo ra như nào ?

Ứng dụng camera của bạn hoạt đông như nào ? Một thắc mắc chắc rằng ai cũng đã từng có, đặc biệt với một lập trình viên mobile thì việc tìm hiểu về cách tạo ra và cách hoạt động của nó là điều tất yếu. Trong bài viết này mình sẽ chia sẽ một chút kinh nghiệm của mình khi làm việc với module Camera trong React native. 1. Tìm hiểu về React native: React native được Facebook cho ra mắt vào...

camera MayFest May Fest
@renovate
Admin 16/05/2021 22:50
Tổng hợp các công cụ Information Gathering trong Kali Linux (P1)

Nếu ví rằng công việc Pentesting như là một cuộc chiến, thì Information Gathering có lẽ là quá trình trinh sát. Nó đại diện cho triết lý vô cùng quan trọng "Biết địch biết ta, trăm trận trăm thắng". Thành công cũng ở đây, thất bại cũng ở đây. Càng nắm vững được thông tin của mục tiêu, bạn càng tăng cơ hội chiếm quyền điều khiển mục tiêu. Vậy trong quá trình tìm kiếm các lỗ...

CyberSecurity Basic security MayFest web hacking
@renovate
Admin 18/05/2021 12:00
Viết một trình đóng gói code tương tự webpack

Trong quá trình tìm hiểu về cách thức hoạt động của webpack, mình vô tình đọc được 1 loạt bài rất hay, tiếc là lâu quá rồi giờ không tìm lại được đầy đủ. May thay vẫn còn tìm lại được 1 cái video, do chính cha đẻ của Webpack hướng dẫn cách thức hoạt động của Webpack. Bài viết này mình dịch lại nội dung video và giải thích kỹ càng để giúp các bạn hiểu tường tận về cách thức...

JavaScript MayFest May Fest Webpack
@renovate
Admin 21/05/2021 10:40
Phân tích CVE-2019-8942 của wordpress

1. Giới thiệu CVE-2019-8942 lợi dụng lỗi hổng LFI + File Upload để thực hiện RCE đến máy chủ web với quyền author. Phiên bản bị ảnh hưởng bao gồm trước 4.9.9 và từ 5.0.0 đến 5.0.1. Tại các phiên bản này hàm wp_update_post lấy trực tiếp biến $post_data mà không cần kiểm tra các trường dữ liệu không được phép. Do đó, người dùng với quyền author có thể thay đổi dữ liệu của bài đăng...

MayFest CVE
@renovate
Admin 27/05/2021 14:50
Bộ câu hỏi phỏng vấn tuyển dụng Tester

Một trong những vị trí điển hình của ngành CNTT đó là Tester. Bạn có nguyện vọng cũng như chuyên môn để trở thành một tester nhưng lại bị làm khó bởi những câu hỏi phỏng vấn tuyển dụng Tester. Bạn nên nhớ rằng, tỉ lệ thành công của buổi phỏng vấn phụ thuộc rất nhiều vào hành trang chuẩn bị của bạn. Hiểu được vấn đề đó, freeC đã tổng hợp những câu hỏi phỏng vấn tuyển...

câu hỏi phỏng vấn tester Agile Tester MayFest May Fest