Custom SideMenu (Hambuger Menu) bằng Swift
Trong quá trình phát triển các ứng dụng iOS, rất dễ gặp các trường hợp có sử dụng SideMenu. Đây tuy là hướng Design đã cũ, nhưng vì tính tiện lợi, tới nay dạng thiết kế này vẫn được sử dụng phổ biến. Trong bài viết hôm nay, mình sẽ custom một SideMenu đơn giản.
Tạo giao diện
Đầu tiên, tạo MainController và layout trong Storyboard theo các bước sau
Bước 1: Mình sẽ kéo 1 Label vào giữa màn...
Swift
May Fest
2061
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
2642
Một số Tips JavaScript hay
Flattening multidimensional Arrays in JavaScript
Một số cách Flatten hợp nhất mảng đa chiều thành mảng một chiều duy nhất
const myArray = [[1, 2], 3, 4, 5, [6, 7, 8, 9]];
// expected output: Array [1, 2, 3, 4, 5, 6, 7, 8, 9]
Sử dụng concat(), apply()
const myNewArray = [].concat.apply([], myArray);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
Sử dụng reduce()
const myNewArray = myArray.reduce((prev, curr) => prev.concat(curr), []);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
Sử...
Happy New Year
JavaScript
1407