Self join trong ruby

mối quan hệ SELF-JOIN (tự vấn) ONE-TO-MANY: một model có thể được tái sử dụng với chính nó, giả sử nhân viên và quản lý đều là user nên chỉ cần dùng self-join trong bảng user là đủ, cách sử dụng: trong model user tạo thêm: has_many :nhanvien, class_name: User.name, foreign_key: ...

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

Có gì mới trong Rails 5.1

Rails 5.1 đã công bố bản beta vào khoảng đầu tháng 3, trong đó giới thiệu một số tính năng bổ ích giúp mọi người dễ dàng làm việc với Java script trong ứng dụng Rails của họ.Dưới đây ta hãy cùng tìm hiểu một số tính năng mới của phiên bản này: Ruby Version Yêu cầu Ruby version tối thiểu là ...

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

Liệu chúng ta có thể xây dựng trí tuệ nhân tạo mà không mất kiểm soát đối với nó?

Hoàn cảnh Gần đây trên mạng xuất hiện một cuộc tranh cãi giữa 2 vị tỉ phú nổi tiếng thế giới là Elon Musk và Mark Zuckerburg về một vấn đề khá nóng trong các diễn đàn trên mạng hiện nay, đó là liệu trí tuệ nhân tạo (AI) có nguy hiểm hay không? Trong khi Mark Zuckerburg cho rằng việc Elon Musk ...

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

Handsome codes with Kotlin

Kotlin là một ngôn ngữ rất linh hoạt, giúp cho đoạn code bạn viết ra dễ đọc và thoáng hơn rất nhiều nhờ vào một số các tính năng mới mà ngôn ngữ Java không có. Vậy các đặc điểm nào giúp cho việc code trở nên dễ hiểu và linh hoạt, chúng ta hãy cùng tìm hiểu nhé: Extension Functions Extension ...

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

Callback và Promise trong javascript(18+ version)

Callback Giả sử bạn là sinh viên nghèo nhưng ham học. Vì học nhiều nên đầu óc căng thẳng, mệt mỏi, bạn đã nảy ra ý định dẫn gấu đi nhà nghỉ cho đỡ mệt. Chuẩn bị gọi cho gấu thì bạn nhận ra trong ví còn có 100k. Thế này méo ổn, dạo này trên mạng ra rả chuyện của mấy thằng mang 100k đi chơi(với) ...

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

Spree-e-commerce (Phần II) Xây dựng Web server trên nền tảng Spree

Như phần trước Phần I tìm hiểu về Spree - e - commerce chắc hẳn các bạn đã có cái nhìn cơ bản về ecommerce này, tuy nhiên sức mạnh của Spree không chỉ dừng lại ở đó, trong phần này mình xin tiếp tục giới thiệu một phần khác của Spree khá hay - biến Spree thành một Web server. Web server - khái niệm ...

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

Tích hợp Facebook Graph APIs vào Rails app

Trong bài viết này, chúng ta sẽ tìm hiểu làm thế nào để sử dụng facebook graph API, tích hợp chúng vào 1 ứng dụng Rails. Chúng ta sẽ dùng 2 gem là omniauth-facebook và koala. Omniauth-Facebook và Koala Omniauth-facebook là gem cho phép chúng ta thực hiện việc xác thực người dùng trên facebook. ...

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

Sự khác nhau giữa Block, Proc, và Lamdba trong Ruby

Block, Proc, và Lamdba là gì ? Theo định nghĩa kỹ thuật : thì nó là ví dụ của closures trong Ruby. Có thể hiểu closures là một hàm được tạo ra từ bên trong một hàm khác (hàm cha), và nó có thể sử dụng các biến toàn cục, cục bộ của hàm cha và chính nó. Viết code kiểu closures có thể giúp code dễ ...

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

So sánh Reference vs Value Types trong Swift (P1)

Giới thiệu Một trong những lưu ý thay đổi lớn nhất với các nhà phát triển khi chuyển từ Objective-C sang Swift đó là việc mở rộng của Value types (kiểu giá trị) và Reference types (kiểu tham chiếu) Vậy Value types và Reference types là gì? Chúng khác nhau như thế nào? Chúng ta hãy cùng ...

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

Tìm hiểu về Redis trong Laravel

GIỚI THIỆU Redis là một dự án store mã nguồn mở để lưu các cặp dữ liệu kiểu key-value. Nó thường được gọi là server cấu trúc dữ liệu vì các khoá có thử chứa dữ liệu kiểu strings, hashes, lists, sets, và sorted sets . Trước khi sử dụng Redis với Laravel, bạn sẽ cần cài thư viện predis/predis ...

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

PHỐI HỢP KIỂM THỬ HIỆU SUẤT VỚI QUÁ TRÌNH LẶP CƠ BẢN (PHẦN 1)

Tìm hiểu cách tiếp cận để phối hợp kiểm thử hiệu suất với quá trình lặp cơ bản Tìm hiểu cách phát hiện và giải quyết các vấn đề chính trong dự án sớm nhất có thể. Tìm hiểu làm thế nào để tối đa hóa tính linh hoạt mà không bị mất kiểm soát Tìm hiểu cách cung cấp cho các nhà quản lý và các bên ...

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

Hướng dẫn tạo ứng dụng chat trong React kết hợp với Firebase - Phần 2

Xin chào các bạn, bây giờ tiếp tục với bài viết ở phần 1, hôm nay mình sẽ tiếp tục với phần 2, để xử lí các sự kiện khi người dùng nhập message vào, lưu message cũng như tên user vào firebase. Ở phần trước mình chỉ làm phần thô khi cho hiển thị message cũng như user ra, giao diện ở phần 1 sẽ như ...

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

Ruby Contructors

Giới thiệu 'Visual Basic .NET Dim sf As BaseballTeam = New BaseballTeam("San Francisco Giants") 'Dim - Allocates space for one or more variables 'As - Identifies a data type in a declaration 'New - Creates a new object instace #Ruby sf = BaseballTeam.new("San Francisco Giants") #Ruby ...

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

Bắt Đầu với Javascript (P3)

Trong phần trước chúng ta đã tìm hiểu về một số cú pháp cơ bản và khai báo biến. Trong phần này chúng ta sẽ tìm hiểu về các kiểu dữ liệu và literals trong javaScript. 1. Data structures and types Data types Các tiêu chuẩn ECMAScript mới nhất xác định bảy loại dữ liệu: Sáu kiểu dữ liệu ...

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

ActiveStorage: Lưu trữ file trong ứng dụng Rails

Active Storage giúp đơn giản hóa việc tải lên và tham chiếu tệp trong các dịch vụ đám mây, như Amazon S3 hoặc Google Cloud Storage, và đính kèm các tệp đó vào Active Records. Nó cũng cung cấp một dịch vụ disk để thử nghiệm hoặc triển khai nội bộ, nhưng vẫn tập trung vào lưu trữ đám mây. Các tệp tin ...

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

Tăng tốc Bundler bằng command đơn giản

Lý do Bạn có cảm thấy rằng bạn đang tốn quá nhiều thời gian cho việc chạy bundle install? Giải pháp Bạn không cần phải "Đấu kiếm" nữa. Bundler từ version 1.4.0 đã support việc install các bundle một cách song song. Chỉ cần truyền --jobs SIZE vào bundle config. Có một điểm chú ý là bạn chỉ ...

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

Giới thiệu searchkick - gem hỗ trợ tìm kiếm trong Rails

Tìm kiếm là tính năng không thể thiếu của một trang web thời nay, và ElasticSearch là cái tên quá nổi tiếng. Tuy nhiên, trong bài viết này, mình muốn đề cập đén searchkick - gem hỗ trợ tìm kiếm rất tốt, dễ sử dụng hơn ES và còn quen thuộc hơn với Ruby dev. Link gem Searchkick. Cùng tìm hiểu qua ...

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

Quản lý các file cá nhân trong Rails app với S3

Để quản lý các file cá nhân trên Rails app, gem Paperclip có thể thực hiện tốt nhiệm vụ này. Khi application lớn dần, ta sẽ muốn lưu trữ các file ở một vị trí khác, thay vì lưu trực tiếp trên server. Đưa các file lưu trữ ra khỏi server vừa giúp cho application có thêm không gian phát triển vừa có ...

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

10 Nguyên tắc lắng nghe và cư xử trong công việc.

Một người nghe tốt sẽ lắng nghe không chỉ những gì đang được nói, mà còn để những gì còn lại không nói hoặc chỉ một phần nói. Nghe hiệu quả do đó liên quan đến việc quan sát ngôn ngữ cơ thể và nhận thấy sự mâu thuẫn giữa các thông điệp bằng lời nói và không lời, cũng như những gì đang được nói ở ...

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

Sử dụng Room Persistence Library trong android

Trứớc khi bắt đầu sử dụng Room trong project android chúng ta hãy cùng tìm hiểu xem liệu Room là gì và các thành phần cơ bản của nó. Room là một Persistence Library được google giới thiệu trong sự kiện google I/O mới đây, nó là một abstract layer cung cấp cách thức truy câp thao tác với dữ liệu ...

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