Ruby Object Clone and Duplication
Lately I've faced some Ruby Object Problems Actually this is the OOP object copy problem.But I dont know much about OOP so... Ok, enough trash talking. Let's do some code I used rails c for this mini testing test = {:a => 1, :b => 2 } a = test b = test a[:a] = 3 puts a {:a => ...
Cách tạo chuỗi query đơn giản
Có nhiều cách viết blog công nghệ hơn là làm bánh hay làm tình. Những ngày này Hà Nội mưa liên miên, được cái mát giời, mình lại tức cảnh sinh tình, bỗng dưng thèm viết blog. Chả là, dự án mình đang làm, phía đối tác cung cấp khá nhiều query để call api được thuận tiện. Để tạo một chuỗi query ...
Quản lý bộ nhớ trong Swift
Tại sao cần phải biết quản lý bộ nhớ? Nhà giàu mà không biết tiêu tiền cũng sạt nghiệp. Mặc dù phần cứng máy tính/điện thoại ngày càng phát triển, nhưng cứ tiêu xài hoan phí bộ nhớ thì dẫn đến app rất chậm, lag. Users chửi, khách hàng chửi Biết để đi phỏng vấn. Mình chưa đi phỏng vấn lần nào ...
Android Working With Volley Library
Volley là một Networking Library để quản lý các request Network và lưu trữ những response không cần các Developer viết nhiều code như trước . Các tools bên trong Volley cho phép cùng một lúc thưc hiện nhiều request trên các thread khác nhau với các mức độ ưu tiên ( priority ) khác nhau. Tất ...
Permit params trong Rails
Hôm nay mình xin chia sẻ về cách permit params trong Rails. Khi gửi data cho backend với dạng Content-Type: application/json Trường hợp 1: cái này đơn giản: { phone: "+84935999999" email: "[email protected]" } Ở controller chúng ta sẽ permit: def info_params ...
Enum hack
Giới thiệu Có nhiều cách để viết Enum hơn là làm bánh hay làm tình. Ở bài viết này mình sẽ trình bày một hướng đi, hi vọng mọi người sẽ like :D Kiểu phổ thông Chắc hẳn chúng ta thấy kiểu viết enum này rất quen thuộc, đặc biệt là đối với những ai dùng alamofire enum Result<T> { ...
Elixir cho dân Ruby - Phần 1
Tôi biết đây sẽ là câu hỏi đầu tiên của bất cứ lập trình viên nào trước khi quyết định dành thời gian học một ngôn ngữ nào đó. Có muôn vàn câu trả lời với nhiều quan điểm trái chiều nhưng tôi nghĩ các bạn đều đồng ý với tôi là mục tiêu tối thượng của lập trình là lựa chọn giải pháp hợp lý để ...
Tìm hiểu về Collection trong Laravel (Phần 1)
Collection là một class trong Laravel giúp lập trình viên làm việc với mảng dễ dàng hơn, đặc biệt khi thao tác với lượng dữ liệu từ Database vì mặc định trong Laravel kiểu dữ liệu trả về từ Laravel sẽ là Collection. Một điều đặc biệt nữa là giá trị trong collection sẽ bất biến (immutable), nghĩa ...
[Nghịch ngợm] Lỗ hổng của MXH mới Tsu.co và sự bất cẩn của lập trình viên
Tsu.co là gì? Gần đây mình mới biết đến 1 mạng xã hội mới có tên là Tsu.co nhờ thông qua mấy bài báo trên mạng về việc "Facebook đã ra tay chặn hoàn toàn mạng xã hội Tsu.co" . Để có thể hiểu hơn về Tsu.co các bạn có thể tham khảo trên mạng với từ khóa mình vừa kể trên. Nó có liên quan gì tới ...
So sánh UX giữa Google Maps và Apple Maps (phần 1)
Bài phân tích này lược dịch từ một bài trong chuỗi series về UX của UX Launchpad. Bạn có thể tìm đọc bài gốc trong link này. Trước khi đi sâu vào chi tiết, chúng ta hãy đồng ý với nhau 3 quan điểm dưới đây: Đội phát triển của Apple và Google (hẳn) là những con người cực kỳ thông minh và ...
Chạy ứng dụng React Native (Android) trên Window
Mục đích của cái log này là gì? ReactJS và React Native đang là những cái tên khá hot hiện nay, với phương châm "Learn once, write anywhere" , bộ đôi này giúp cho các Developer với kiến thức Javascript tốt có thể dễ dàng dev app cho cả IOS và Android. Tuy nhiên, Facebook team chỉ chính thức hỗ ...
Cài đặt Swift trên Ubuntu
Bài viết mình viết lại các bước cài đặt swift trên docker image ubuntu https://swift.org/download/#linux Đầu tiên tạo thư mục tạm để tải file : mkdir /tmp/swift cd /tmp/swift // có thể lấy link mới nhất trên trang chủ của swift wget https://swift.org/builds/ubuntu1404/swift-2.2 ...
Deployment: modularizing web application components
1. Tired about deployment Do again and again for each application Some components just copy & paste 2. DRY the deployment: modularizing components NginX ( Copy & Paste ) Rails App Redis ( Copy & Paste ) MySQL ( Copy & Paste )
[Android] Login, Share Twitter max easy với Fabric
Có lẽ với những thím lập trình Android hay iOS hiện nay đã quá quen thuộc với Facebook SDK để thực hiện 1 số thao tác như Login, Share, Like, ... Nhưng có lẽ ít ai quan tâm đến Twitter vì có ai dùng mấy đâu mà quan tâm =='. Vậy lý do mình viết bài này là gì? Cty mình đang làm outsource cho Nhật ...
Học React/Redux qua ví dụ thực tế: Redux
Hôm nay chúng ta sẽ tiếp tục tìm hiểu về Redux và vai trò của nó trong application. Redux được mô tả như là một predictable state container cho application. Phần lớn các bạn thường thấy Redux được đi một cặp với Redux ở client side application. Thực tế, Redux còn hơn thế, giống như Javascript ...
Giảm N+1 Query khi count record dữ liệu quan hệ
Trong Rails đã hỗ trợ một method includes dùng để hổ trợ việc giảm N+1 query trong truy vấn cơ sở dữ liệu quan hệ. Như vậy ở đây mình đặt ra một bài toán như sau. Mình có table categories has_many với table posts và mình muốn lấy list categories và count các bài post tương ứng của category đó thì ...
Renacentia là công ty Việt Nam đầu tiên cung cấp game trên iPhone
Renacentia đã trở thành công ty của Việt Nam đầu tiên cung cấp ứng dụng trên iPhone. Trong cuộc họp báo ở đại bản doanh Kawasaki chiều nay, công ty Renacentia đã ra mắt game Whack-a-Halloween!. Giám đốc Nguyễn Minh Đức cho biết đây là game miễn phí (tải ở đây) và cũng là game đầu tiên của Việt ...
Precompile Rails asset trên nhiều server
Asset Pipeline là một chức năng khá "hay" của Rails, được xây dựng dựa trên Sprockets, giúp chúng ta nén và hợp nhất các assets (Javascript & CSS, hình ảnh) thành một file duy nhất (application.js, application.css, v.v.), ngoài ra nó còn giúp tạo ra fingerprint cho từng file asset để tối ưu ...
[Rails] Cách sử dụng cells để tối ưu code
Link gốc : Việt on Rails Khi làm việc với view của Rails, không ngày nào mà không sử dụng tới method partial. Tuy nhiên, partial chỉ là 1 tính năng để gộp và tái sử dụng code view nhiều lần mà thôi. Khi muốn gộp chung cả logic vào để tạo ra template thì vấn đề sẽ rất phức tạp. Khi gặp vấn đề ...
Cơ bản với Swift Phần 2
Tiếp theo với Cơ bản với Swift Phần 1 Phần 2 bao gồm: Type Safety và Type Inference Cách viết số (Numeric Literals) Bí danh kiểu dữ liệu (Type Aliases) Kiểu Bool Tuples Swift là một ngôn ngữ hỗ trợ kiểu an toàn (Type Safe, bắt đầu từ đây mình ghi Type Safe luôn vì dịch ra sẽ ...