Xây dựng Authentication provider với gem OPro

I. Mở đầu Xin chào các bạn (honho) Chắc hẳn các bạn đã từng sử dụng tới OAuth2 để login vào trang web bằng tài khoản Facebook hoặc Google. (để biết chi tiết hơn, các bạn hãy đọc ở đây (yaoming)) Đại loại nó là phương thức chứng thực, cho phép các ứng dụng của bên thứ ba có quyền truy cập tới ...

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

Ruby: bỏ chữ với số còn lại gì?

Trong CTF lần trước có bài [Codegolf] Ruby Lab với yêu cầu viết một chương trình mà không được phép sử dụng bất cứ một kí tự chữ (a, b, c...) hay số (0, 1, 2...) nào. Mới đầu nghe đề bài thì có vẻ vô lý, nhưng khi tìm hiểu rồi mới thấy, thật đúng là không có gì là không thể với Ruby. Cùng xem sao ...

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

Những tính năng mới trong JQuery 3.0 và cách sử dụng

JQuery là thư viện Javascript phổ biến nhất trên thế giới. Kể từ khi ra đời vào năm 2006 cho đến nay, JQuery đã trở thành một thư viện không thể thiếu trong bất kỳ một ứng dụng web nào. Đồng thời sử dụng JQuery cũng là một kiến thức cơ bản đối với đa số web developer. Vào tháng 7 năm 2015, JQuery ...

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

Ruby Metaprogramming

Nếu bạn đã làm việc với Ruby, rất có thể bạn đã nghe đến từ "metaprogramming" khá nhiều. Và bạn có thể đã sử dụng metaprogramming, nhưng chưa hiểu rõ hoàn toàn sức mạnh thực sự hoặc sự hữu ích về những gì nó có thể làm. Qua bài viết này bạn có thể biết được metaprogramming là gì, cũng như khả năng ...

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

Data Flow Testing

Kiểm thử tích hợp bao gồm việc xây dựng hệ thống từ những thành phần của nó và kiểm tra xem có vấn đề gì xảy ra từ các tương tác giữa các thành phần. Có hai cách tích hợp hệ thống: Tích hợp từ trên xuống: xây dựng khung của hệ thống và đưa các thành phần vào trong nó. Tích hợp từ dưới ...

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

Tính thời gian compile các method trong Swift để làm ngắn thời gian build

Thông thường thời gian build một project Swift mất khá nhiều thời gian. Vì vậy trong bài viết này, tác giả muốn giới thiệu đến bạn đọc một phương pháp tính thời gian build cho các hàm trong swift, để từ đó chúng ta có thể phát hiện các vấn đề -> sửa chúng để tối ưu hoá thời gian build cũng như ...

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

Tạo hiệu ứng cho ảnh trong Android với thư viện GPUImage

1. Giới thiệu GPUImage là một framework khá nổi tiếng trong việc tạo hiệu ứng cho những bức ảnh, nhưng nó lại chỉ hỗ trợ iOS. Thật may, một tổ chức là CyberAgent đã phát triển một thư viện tương tự cho phía Android giúp những người lập trình Android có thêm một công cụ thật hữu ích. Link thư ...

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

Khởi tạo và kế thừa một Class

Nhiệm vụ của một bộ khởi tạo Class là bản thiết kế. Object là một đối tượng, và là một thể hiện của 1 class. Khởi tạo là quá trình chuẩn bị trước khi sử dụng của một thể hiện của một class, struct, hoặc enum. Để triển khai một quá trình khởi tạo, người ta phải định nghĩa các bộ khởi ...

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

Function trong javascript

Function trong javascript Function là 1 khái niệm cơ bản trong javascript, nhưng cũng chứa lắm thứ rối rắm. Bài viết này sẽ tập trung vào những thứ dễ gây nhầm lẫn cần chú ý với function trong javascript và 1 số thủ thuật thú vị với function 1. Các cách định nghĩa function trong javascript ...

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

Tạo custom library trong zend framework 2

Zend framewrok 2 là một framework vô cùng mạnh mẽ tận dụng mang lại cho lập trình viên nhiều lợi thế riêng so với các framework khác. ZF 2 cho phép dễ dàng tích hợp nhiều package từ bên ngoài giúp rút ngắn thời gian tạo ra 1 trang web Để làm quen với ZF2 có thể tham khảo qua tại: tìm ...

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

Tìm hiểu SmartFox Server game thông qua ví dụ (Part 2).

Chào các bạn. Ở phần 1. mình cũng đã giới thiệt sơ lược qua về các tính năng của smartfox server cũng như các tính năng tại trang quản trị admin của nó. Ở bài này mình xin đi sâu vào hơn về cách phát triển các tính năng của game server này thông qua ví dụ làm một ứng dụng chat trên hệ điều hành ...

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

Jquery - slide show

Bạn đã biết tới rất nhiều plugin của jQuery cho phép bạn tạo các slideshow với nhiều hiệu ứng đẹp, chuyên nghiệp. Cách sử dụng cũng dễ dàng, thậm chí không cần biết viết mã javascript. Bài viết sau sẽ hướng dẫn bạn cách tự tạo ra một slideshow đơn giản bằng cách sử dụng Jquery . Slideshow ...

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

Những bài học bạn cần biết khi làm việc với người Nhật

Nhật Bản được biết là một trong những thị trường lao động tiềm năng nhưng cũng hết sức khó tính, họ luôn đòi hỏi những yêu cầu khắt khe từ người lao động. Trong công ty chúng ta cũng có rất nhiều dự án của Khách hàng nhật bản. Do đó, nắm bắt được những đặc điểm của họ sẽ là yếu tố quan trọng để ...

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

Một ứng dụng của prototype trong dự án Reactjs

Bài đã được updated, giải thích thêm về cách React xử lý prototype Intro Cách đây không lâu, dự án Homeup của chúng tôi, thuộc Basic Lab, đã rất mạnh dạn (giờ thì có chút hối hận :-s) áp dụng Reactjs và framework reflux. Vấn đề được gì và mất gì sau khoảng gần nửa năm làm reactjs sẽ không ...

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

Cách "try again" khi gặp exception trong Ruby

Trong lập trình, chắc hẳn bạn đã không ít lần gặp những lỗi "khó đỡ" mà cách giải quyết duy nhất là chạy lại đoạn code một lần nữa. May thay, các lập trình viên Ruby được cung cập một công cụ để xử lý tình huống này. Bài viết này sẽ nghiên cứu về cơ chế này và cách mà nó hoạt động. Từ khóa ...

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

Tìm hiểu lập trình Android bằng cách làm ứng dụng tìm kiếm truyện

Trong bài viết này chúng ta sẽ tạo ra một ứng dụng tìm kiếm sách từ nguồn Open library API và kết quả tìm được sẽ là danh sách quyển sách kèm theo hình ảnh. Đồng thời ta thêm phần giới thiệu, chia sẻ cho bạn bè về sách mà người dùng tâm đắc. Tổng quan về ứng dụng Ứng dụng này sẽ có 2 màn hình, ...

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

SubSonic Framework: Tạo 1 blog engine (Phần 1)

Bài viết này cho thấy làm thế nào bạn có thể sử dụng ORM subsonic để tạo ra một trang weblog đơn giản. Đối với bất kỳ dự án nào, việc xây dựng Data Access Layer (DAL) luôn là công việc tốn nhiều công sức và thời gian nhất, nhất là khi phải làm việc với cơ sở dữ liệu lớn. Hơn nữa việc tự xây dựng ...

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

OpenGL part 3.2: MODEL AND VIEW in OpenGL

**I. MODEL Ma trận ** Model được xác định bởi một tập hợp các đỉnh. Tọa độ X, Y, Z của các đỉnh được xác định tương đối so với trung tâm của đối tượng: đó là, nếu một đỉnh là (0,0,0), nó là trung tâm của các đối tượng. Chúng ta có thể di chuyển mô hình này, có thể vì người chơi điều khiển ...

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

Sử dụng dịch vụ AWS miễn phí với chế độ FreeTier

Bạn đã bao giờ muốn tự mình thử config, cài đặt server sử dụng các dịch vụ của AWS chưa? Có phải bạn băn khoăn vì phí dịch vụ của AWS tương đối cao. Đây là giải pháp cho bạn. Amazon cung cấp cho người dùng chế độ FreeTier, trong đó bạn có thể thử sử dụng một số dịch vụ cơ bản với cấu hình thấp, ...

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

Using database views for performance wins in Rails

Database views## Một database view là tập hợp các kết quả của một truy vấn được lưu trữ mà người dùng có thể truy vấn giống như đang trong một kết nối cơ sở dữ liệu liên tục. Với rails, model thừa kế từ ActiveRecord::Base sẽ không quan tâm tới đối tượng collection tương ứng là một bảng hay view, ...

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