Đến với metaprogramming trong Ruby qua bài toán nhỏ

I, Giới thiệu Metaprogramming là một chủ đề lớn của Ruby. Có khá nhiều bài viết đã giới thiệu và đề cập về chủ đề này. Hôm nay mình xin chia sẻ một góc nhìn mới về Metaprogramming trong Ruby Metaprogramming hiểu đơn giản là "Code sinh ra code" nghĩa là mình viết một chương trình và chương ...

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

Authentication với gem sorcery

1. Tổng quan về gem Sorcery Gem Sorcery cung cấp các menthod sử dụng trong việc xác thực user. Nó đơn giản trong việc sử dụng và cài đặt. Tuy chỉ có khoảng 20 method nhưng cũng đủ cung cấp tất cả các tính năng xác thực. Đây 1 số method thường được sử dụng: require_login login(email, ...

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

(Basic) Beings and matters. The first inheritance.

Background Remember our last discussion about "Interface" and "Abstract Class"? Cannot decide between those two, yet? It's ok. Let's bring them all together. Because right now, we will create more of them, by inheriting them from the first ancestor of our universe, the "thing". And then ...

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

Introduction of Firebase

What is Firebase Firebase is a cloud services provider and backend as a service company. Firebase can power your app's backend, including data storage, user authentication, static hosting, and more. Firebase provides these services so you can focus on creating extraordinary user ...

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

The best keyboard ?

Tất nhiên là không có cái gì là the best cả giống như khi bạn hỏi ngôn ngữ lập trình nào là hay nhất, cái máy tính nào là tốt nhất. Tùy vào từng hoàn cảnh mà mỗi cái đều có những ưu điểm và nhược điểm khác nhau. Đơn giản là chọn được cái thích hợp vào đúng công việc phù hợp. Bởi vậy bài viết này ...

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

Thiết kế bao bì Mỹ Phẩm

Những năm gần đây, ngành công nghiệp mỹ phẩm Việt Nam đang phát triển mạnh mẽ. Cùng với sự đổ bộ của nhiều thương hiệu lớn từ nước ngoài còn có sự trỗi dậy của các công ty hóa mỹ phẩm trong nước, đặc biết là dòng sản phẩm Handmade. Ngành công nghiệp này trở nên cạnh tranh hơn bao giờ hết, cùng với ...

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

Enterprise Resource Planning - ERP

I . Tổng Quát 1. Khái niệm ERP (Enterprise Resource Planning) là Phần Mềm quản lý tổng thể doanh nghiệp, trong đó phần hoạch định nguồn lực là phần cơ bản. Những gì quan trọng nhất trong hoạt động của doanh nghiệp đều được ERP quản lý, và với mỗi ngành nghề kinh doanh, mỗi doanh nghiệp ...

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

Javascript, Promise Và Functional Programming

I. Mở đầu Trong lập trình ta sẽ bắt gặp hai loại function: sync (đồng bộ - synchronous) và async (bất đồng bộ - asynchronous). Với sync function, chương trình phải đợi từng tác vụ hoàn thành trước khi bắt đầu một tác vụ khác. Và, ngược lại, với async function, ta có thể thực hiện nhiều tác vụ một ...

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

Monkey patching trong ruby

1. Monkey Patch là gì Monkey patch là một phương pháp lập trình cho phép mở rộng hay chỉnh sửa phần mềm 1 cách tạm thời, cục bộ (chỉ ảnh hưởng đến chương trình đang chạy 1 lần). Thuật ngữ monkey patch xuất phát từ 1 từ có từ trước đó guerrilla patch có nghĩa là thay đổi code 1 cách lén lút và ...

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

Giới thiệu Virtual Environment trong Python

Virtual Environments là gì và dùng để làm gì? Virtual Environment dịch nôm na là môi trường ảo </p> <div class= Tác giả: Bùi Văn Nam viết 11:58 ngày 12/08/2018

Hướng Dẫn Viết RSpec Theo Một Cấu Trúc Hợp Lý

Lời mở đầu Ở Framgia phát triển ứng dụng bằng TDD được khuyến khích nhưng với những người chưa quen thì thường sẽ có những khó khăn nhất định trong việc viết test như thế nào, cấu trúc ra sao? Chính vì vậy tôi viết bài này để chia sẻ đến các thành viên Framgia chưa quen với việc viết unit ...

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

Crawling data with Mechanize

Crawling Data Crawling data: được hiểu đơn giản là việc đi thu thập dữ liệu (thông tin) từ các website khác để lưu trữ dữ liệu (thông tin) đó vào database của mình. Đối với Ruby thì việc crawling data từ website khác được thực hiện khá dễ dàng với sự hỗ trợ của các thư viện (Gems) Một số thư ...

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

Eager loading in rails 4

1. Eager loading là gì? Eager loading is a way to find objects of a certain class and a number of named associations. It is one of the easiest ways to prevent the dreaded N+1 problem in which fetching 100 posts that each need to display their author triggers 101 database queries. Through the ...

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

Ba Bước để xây dựng một website hoàn chỉnh với ruby on rails

A. Tóm tắt bài viết Bài viết này tôi không đi vào giới thiệu về ngôn ngữ lập trình Ruby hay framework Ruby on Rails. Sau một thời gian tìm hiểu và lập trình với Ruby tôi có nắm được một chút kiến thức tổng quan để lập trình một website cơ bản. Bài viết này sẽ đưa ra các bước chính để lập trình từ ...

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

Glossary Of Information Security Terms And Definitions (Part I)

Hey guys! Ngày nay, các cơ quan, tổ chức đang tồn tại và phát triển phụ thuộc rất nhiều vào các hệ thống thông tin. Do đó, việc đảm bảo an toàn cho các hệ thống thông tin là điều cực kỳ quan trọng. Về cơ bản, bảo mật thông tin đã tồn tại và phát triển từ rất lâu. Các loại mã thay thế, mã hoán ...

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

Tìm hiểu về database Index

Là một lập trình viên, chắc hẳn không ít thì nhiều, bạn đã từng phải nghe nói đến việc đánh index cho bảng này bảng khác trong database. Dù có không hiểu index là gì, thì ắt hẳn bạn cũng phải biết một điều xưa như trái đất, rằng muốn truy vấn cho nhanh, thì phải đánh index. Nhưng do tính chất công ...

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

Thiết kế giao diện bằng xaml

1 / Giới thiệu về giao diện trong wpf Nói đến thiết kế giao diện kể cả trong lập trình web , winform chúng ta thường sử dụng các khái niệm như Layout , Control .Các công nghệ lập trình khác nhau có tên gọi khác nhau nhưng ý nghĩa đều tương tự như thế Layout là bộ khung chứa cấu trúc giao diện ...

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

[Android Wear]: Xây dựng Android Wear watch face!

Qua 2 bài viết đầu tiên về Android wear, đã có cái nhìn tổng quan cũng như cách xây dựng một ứng dụng cơ bản với Android wear. Bài viết này sẽ hướng dẫn chi tiết hơn về cách việc xây dựng Android watch face hiển thị dữ liệu theo thời gian thực. Tutorial về việc này sẽ chia làm nhiều part. Trước mắt ...

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

Desktop IDE trong phát triển ứng dụng web

I. Lời mở đầu Hiện nay phát triển web đang rất phổ biến trên toàn cầu, quản lý tổ chức/doanh nghiệp... đều sử dụng hệ thống quản lý bằng website, đi cùng với xu thế phát triển đó thì quy mô của trang web ngày càng lớn, yêu cầu khả năng xử lý và hoạt động logic bên trong ngày càng tinh vi, giao ...

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

Tìm hiểu Về SEO - Phần I

SEO là gì? Search engine optimization (SEO) - Tối ưu hoá máy tìm kiếm để làm tăng thứ hạng của một website hoặc webpage trong những kết quả hiển thị tự nhiên của máy tìm kiếm. Nói một cách khác đó là việc bạn thay đổi thiết kế cấu trúc cũng như nội dung trang web, các vấn đề liên quan đến trang ...

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