Index và một vài vấn đề liên quan

Thử hình dung bạn sẽ được giao một nhiệm vụ phải tối ưu một vài hệ thống mà chưa biết phải bắt đầu từ đâu, thì dưới đây là một vài bước có thể giúp ích được cho bạn có thể cải thiện được tốc độ hệ thống. Một vài ý tưởng đến lúc đầu có thể là chưa sử dụng indexes không tận dụng được i/o ...

Tác giả: Hoàng Hải Đăng viết 17:27 ngày 12/08/2018

Size, Stride, Alignment trong Swift

Trong Swift, mỗi kiểu dữ liệu sẽ có 3 thuộc tính: size, stride, alignment. Giả sử, chúng ta có 2 struct đơn giản sau: struct Hooman { let age : Int } struct HoomanWithPuppy { let age : Int let puppies : Int } Nhìn qua chúng ta cũng có thể đoán ...

Tác giả: Trịnh Tiến Mạnh viết 17:27 ngày 12/08/2018

ShortcutBadger

ShortcutBadger i an Android library supports badge notification like iOS in Android devices. The ShortcutBadger makes your Android App show the count of unread messages as a badge on your App shortcut. It can be easily implemented in the project by following the easy steps below 1) Add ...

Tác giả: Trịnh Tiến Mạnh viết 17:27 ngày 12/08/2018

Annabelle Ransomware – mã độc nguy hiểm hơn cả cơn ác mộng WannaCry

Chắc hẳn, nhiều người vẫn còn nhớ đến hai lỗ hổng Spectre và Meltdown – gây ám ảnh kinh hoàng cho giới công nghệ cách đây vài tháng. Chưa dừng ở đó, gần đây tháng 03/2018, lại có thêm một mã độc mới được phát hiện. Mã độc tống tiền này có tên gọi Annabelle – được phát hiện bởi Bart – một ...

Tác giả: Tạ Quốc Bảo viết 17:27 ngày 12/08/2018

Phát triển phần mềm với Agile - Phần 2

Các bài viết cũ cùng chủ đề: Phát triển phần mềm với Agile - Phần 1 So sánh Agile và Waterfall Tình huống Agile Waterfall Quản lý dự án muốn thêm chức năng mới trong quá trình phát triển Chức năng mới được bổ sung vào ngay backlog, có thể triển khai sớm đáp ứng các yêu cầu ...

Tác giả: Bùi Văn Nam viết 17:27 ngày 12/08/2018

[Tryhard trong lập trình] Thử tự làm khó mình trong lập trình!. ^.^

Một ngày chán đời hoặc đẹp trời bạn bỗng nhiên muốn tự làm khó bản thân mình với việc lập trình, bằng cách tạo ra những hàm mà không cần dùng những thứ cơ bản nhất trong lập trình đó là if hay loop. Câu hỏi được đặt ra ngay lúc này là : "Chúng ta có thể làm gì khi không có if hoặc loop nhỉ ?" . ...

Tác giả: Tạ Quốc Bảo viết 17:27 ngày 12/08/2018

Hướng dẫn sử dụng SnapKit

SnapKit là tool giúp bạn có thể sử dụng autolayout bằng cách sử dung constraint 1 cách rất dễ dàng. Bằng cách sử dụng Snapkit, bạn có thể tạo, update, remove, quản lý các contraint của view đơn giản. CocoaPods: source 'https://github.com/CocoaPods/Specs.git' platform :ios, ...

Tác giả: Hoàng Hải Đăng viết 17:27 ngày 12/08/2018

Tạo mã QR với thư viện ZXing

Hi, Lần trước mình đã giới thiệu đến các bạn cách đọc mã QR sử dụng thư viện barcodescanner Hôm nay mình giới thiệu cách để tạo ra 1 ảnh png là mã QR sử dụng thư viện zxing. Bản chất nội dung encode của 1 ảnh QR là 1 chuỗi thông thường. Tùy theo chuỗi đó có cấu trúc như thế nào sẽ quy định ý ...

Tác giả: Hoàng Hải Đăng viết 17:27 ngày 12/08/2018

Một vài mẹo giúp tận dụng tối đa Sass

Đây là bài dịch, bài gốc mời các bạn xem ở đây: https://www.sitepoint.com/8-tips-help-get-best-sass/ Khi được sử dụng hiệu quả, Sass giúp chúng ta xây dựng CSS có thể mở rộng và không bị lặp. Tuy nhiên, khi được sử dụng không chính xác, Sass có thể làm tăng kích thước file, thừa code thậm chí là ...

Tác giả: Bùi Văn Nam viết 17:27 ngày 12/08/2018

Tạo bàn phím Android

Trong bài này, chúng ta sẽ học cách tạo bàn phím Android như hình dưới Đầu tiên ta sẽ tạo layout cho bàn phím, đặt tên file là keyboard_view.xml keyboard_view.xml <?xml version="1.0" encoding="utf-8"?> <android.inputmethodservice.KeyboardView xmlns:android="http://schemas. ...

Tác giả: Trịnh Tiến Mạnh viết 17:27 ngày 12/08/2018

Một số tip, trick của Chrome DevTools có thể bạn chưa biết

Bài viết đc dịch từ : https://medium.freecodecamp.org/cool-chrome-devtools-tips-and-tricks-you-wish-you-knew-already-f54f65df88d2 1. Kéo thả các element Bạn có thể kéo thả các HTML element và đổi vị trí của chúng trong trang. 2. Tham chiếu đến element được chọn trong console Chọn một ...

Tác giả: Trịnh Tiến Mạnh viết 17:27 ngày 12/08/2018

Một vài vấn đề về Active Record Associations (Phần 2)

Phần này mình sẽ giới thiệu chi tiết về: belongs_to association association=(associate) build_association(attributes = {}) create_association(attributes = {}) create_association!(attributes = {}) reload_association Giả sử ta có model như sau: class Book < ApplicationRecord ...

Tác giả: Hoàng Hải Đăng viết 17:27 ngày 12/08/2018

Phần 2: Admob

Đầu tiên bạn cần đăng ký tài khoản Google Admob https://www.google.com/admob/ để sử dụng. Tạo mới 1 App trên tài khoản Admob, ở app này bạn có thể lựa chọn các loại quảng cáo để dùng trong app của mình (Banner Ads, Interstitial Ads, Native Ads) Project 3: Banner Ads Add ad unit: Thêm 1 Ad ...

Tác giả: Trịnh Tiến Mạnh viết 17:26 ngày 12/08/2018

Mongoose cho MongoDB, Nodejs

Mongoose là một thư viện mô hình hóa đối tượng (Object Data Model - ODM) cho MongoDB và Node.js. Nó quản lý mối quan hệ giữa dữ liệu, cung cấp sự xác nhận giản đồ và được sử dụng để dịch giữa các đối tượng trong mã và biểu diễn các đối tượng trong MongoDB. MongoDB là một cơ sở dữ liệu NoSQL. ...

Tác giả: Hoàng Hải Đăng viết 17:26 ngày 12/08/2018

Singleton in Kotlin

Singleton Pattern được dùng để đảm bảo chỉ có duy nhất một instance trong một class, và class đó sẽ cung cấp phương thức toàn cục để truy cập đến thực thể đó. Như vậy, Singleton Pattern được dùng khi bạn tạo ra một class mà bạn chỉ muốn chỉ có duy nhất một thực thể là instance của class đó và bạn ...

Tác giả: Trịnh Tiến Mạnh viết 17:26 ngày 12/08/2018

Yêu cầu Permissions Runtime sử dụng thư viện Dexter

Tất cả chúng ta đều biết rằng Android Marshmallow đã giới thiệu về runtime permissions cho phép người dùng cho phép hoặc từ chối bất kỳ quyền nào trong thời gian chạy. Việc thực thi runtime permissions là một quá trình tẻ nhạt và nhà phát triển cần phải viết rất nhiều mã code chỉ để có được một ...

Tác giả: Bùi Văn Nam viết 17:26 ngày 12/08/2018

Xây dựng list sort user realtime cho hệ thống chatbot

Vấn đề: Chào mọi người, vừa qua mình có làm một chức năng mà mất một khoảng thời gian không nhỏ mình mới tìm ra được cách, đó là xậy dựng list user ở đúng theo thứ tự sort, nhưng hoàn toàn được sort realtime thời gian thực, tức là ngay tại thời điểm đó nếu các điều kiện sort bị thay đổi, thì cái ...

Tác giả: Hoàng Hải Đăng viết 17:26 ngày 12/08/2018

MATERIALIZED VIEWS: CACHING DATABASE QUERY

Bài báo này liên quan đến việc tạo materializing views trong database. ảnh bên trên cho thấy mục đích của materializing views Trước khi bắt đầu với materializing views, chúng ta tìm hiểu một chút về chúng What is a database view? Một database view là một tập hợp các câu truy vấn, Các câu ...

Tác giả: Bùi Văn Nam viết 17:26 ngày 12/08/2018

Xem email được gửi đi trên môi trường develop với gem letter_opener

Trong quá trình làm dự án, chúng ta thường xuyên phải làm việc với tính năng gửi mail. Tính năng này thực sự có mặt trong hầu hết các dự án, và với sự trợ giúp của class Action Mailer nó trở nên đơn giản hơn rất nhiều với các lập trình viên, tuy nhiên với mỗi email gửi đi chúng ta phải thật sự cẩn ...

Tác giả: Bùi Văn Nam viết 17:26 ngày 12/08/2018

Học Regular Expression và cuộc đời bạn sẽ bớt khổ

Đã bao giờ bạn ở vào các tính huống sau đây? Bạn cần xử lý validate (kiểm tra tính hợp lệ) các trường dữ liệu nhập vào ô Text Bạn cần copy và paste rất nhiều text từ chỗ này sang chỗ kia Ví dụ từ XML sang C# hoặc CSV, Excel sang C# Tìm kiếm một chuỗi nằm ở nhiều ...

Tác giả: Hoàng Hải Đăng viết 17:26 ngày 12/08/2018