Ruby on Rails Security: Best Practices

Framework được thiết kế với mục đích chính là để giúp các web developer xây dựng các ứng dụng web. Mặc dù có rất nhiều Framework có sẵn nhưng khản năng phát hiện ra các lỗ hổng như CSRF hoặc giả mạo nội dung (chúng ta không nói về XML Entity và Paramater Pollution) là rất cao. Mặc dù, một số ...

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

Nhập môn Design Pattern (Phong cách kiếm hiệp)

Nhập đề Kinh thư ghi lại rằng, con đường tu chân có 3 cảnh giới: Luyện khí, Trúc cơ và Kết đan. Luyện khí là quá trình rèn thân luyện thể, cho phàm thân kiên cường dẻo dai. Trúc cơ là quá trình du nhập thiên địa linh khí vào thể nội, giúp khai thông kinh mạch. Khi thiên địa linh khí trong đan ...

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

.nil? .empty? .blank? và .present?

Theo lời khuyên của anh Trung, mình sẽ cập nhật lại bài viết này trong thời gian gần, giải thích một cách rõ ràng hơn tại sao lại có các hàm .blank? và .present?, ảnh hưởng của nó tới các hành vi của truthy/falsey -- .blank? và .present? là những hàm mình thường xuyên sử dụng từ khi mới ...

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

Ruby Internal - Code Ruby của bạn được thực thi như thế nào (Phần 2)

Về phần 1 Ở phần trước chúng ta đã nghiên cứu về tokenization của ngôn ngữ Ruby, ở phần này chúng ta sẽ đi vào Parsing Cũng như đã nói ở phần trước, bài này là một trong chuỗi bài #hardcore , vốn là một group học nhóm được thành lập để khuyến khích mọi người tìm hiểu về những vấn đề khó ...

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

Tìm hiểu về sự khác nhau giữa eql? và equal? trong Ruby

Tìm hiểu về sự khác nhau giữa eql? và equal? trong Ruby Tiếp nối bài viết Bạn biết gì về toán tử "===" triple equals (case equality operator) trong Ruby? , ở bài viết này mình sẽ giải thích rõ hơn về sự khác nhau giữa eql? và equal? trong Ruby. Các bạn có thể đọc lại Bạn biết gì về toán ...

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

Thuật toán Floyd-Warshall để duyệt đồ thị

Khi nhắc đến các thuật toán duyệt đồ thị, có thể bạn đã biết (và đã từng implement) Depth-First Search, Breadth-First Search, hoặc Dijkstra. Xin nhắc lại về ý nghĩa của từng thuật toán, đứng ở khía cạnh bài toán tìm đường đi ngắn nhất. DFS dùng để giải các bài toán mà chúng ta muốn tìm được lời ...

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

Ruby Internal - Code Ruby của bạn được thực thi như thế nào - Compilation (Phần 3)

Về phần trước Đây là một bài nằm trong chuỗi #hardcore của nhóm Ruby Vietnam Xem phần 2 tại đây Xem phần 1 tại đây Ruby Compilation Như mình đã giới thiệu ở phần 1, Ruby compile code Ruby thành bytecode, còn gọi là YARV (Yet Another Ruby VM) instructions, và được thực thi ở YARV. Ở ...

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

Road to ruby silver (Part 3)

This is just some note for who want to get Ruby Silver certification. :) Part1 Part2 4.1. Define a class 4.1.1. Syntax class <<ClassName>> end Sample: class Foo def initialize a = 0 @a = a end def method1 @a end end foo1 = Foo.new(1) foo1.method1 ...

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

Câu trả lời vẫn luôn là còn tuỳ..

Mình biết rất nhiều bạn rất say mê và tò mò với những mảng công nghệ mới. Một trong những câu hỏi mình tiếp nhận là có nên dùng A thay vì B hay ngược lại. Có lẽ người hỏi không biết được đây là những câu hỏi khá là hóc nếu người hỏi không cung cấp được đầy đủ các thông tin về ứng dụng cho người ...

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

Bắt đầu như thế nào với Ruby & Rails

Bắt đầu như thế nào với Ruby & Rails Xin chào các bạn. Hiện tại mình đang tự học lập trình Ruby & Rails. Mình học theo link http://guides.rubyonrails.org/getting_started.html#creating-a-new-rails-project để tạo một blog với các chức năng CRUD chính. Mình chỉ học và làm theo dạng step by ...

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

Road to ruby silver (part2)

This is just some note for who want to get Ruby Silver certification. :) Part1 2.3. String (文字列) a = "abcd" p a → "abcd" b = "ab""cd" p b → "abcd" b = "ab" 'cd' p b → "abcd" a = 1 p "a = #{a}" → a = 1 p 'a = #{a}' → a = #{a} "100".to_i → ...

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

Bài toán tối ưu performance và memory cùng với Akka

Đây là bài toán thực tế trong project của mình Có lẽ cũng nhiều bạn cũng đã gặp trường hợp tương tự Có khi chúng ta thường tặc lưỡi bỏ qua, hay đổ tội cho “con server”,.. but NOT TODAY Problem (đã được lược giản cho phù hợp) 1 con batch chạy hàng ngày để crawl dữ ...

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

Éo ai quan tâm đến code bạn viết đâu

Lưu ý: Bài viết này được phỏng dịch từ 1 blog tiếng Anh. Có khá nhiều bạn sẽ không đồng ý với ý kiến được đưa ra trong bài viết này, bản thân mình cũng cảm thấy có đôi chỗ chưa đồng tình lắm . Tuy nhiên, những ý kiến cũng như dẫn chứng đưa ra trong bài viết – theo ý mình – là khá chính xác. Mong ...

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

Road to Ruby Silver (Part 1)

This is just some memos for who want to get Ruby Silver certificate. :) 1. 識別子 (identify) 命名規則 (rules of identify) 0..9 A..Z, a..z underscore Number is not placed in the first Do not same with key of ruby Sample of wrong cases: - 1_to_10 - abc? - abc-1 List of ...

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

Viết code đẹp trong Ruby

Thật sự việc viết code đẹp không chỉ có ruby mà bất cứ ngôn ngữ lập trình nào cũng phải cần. Viết code đẹp cũng giống như việc nói hay, viết giỏi, làm sao để người xem người đọc có thể hiểu và nắm vững hết logic của các đoạn code đó. Viết code là một nghệ thuật và người viết code cũng là ...

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

Road to Ruby Silver (Part 4)

This is just some note for who want to get Ruby Silver certification. :) Part 1 Part 2 Part 3 4.5. Class Method 4.5.1. Class Class ① Example about using class method class Foo; end foo_class = Foo.class → Class ② Create an instance of class Class 2.1. Foo = ...

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

Average Value Với Spark

Như đã nói ở bài trước, mình đang nghiên cứu về Spark nên cần log lại một số thứ để dành sau này dùng đến Đối tượng hướng đến vẫn là những người đã và đang nghiên cứu Spark, Map-Reduce BigData Mình có một dữ liệu như sau name,age,money(k$) A,20,2 B,22,3 C,20,1 D,19,5 E,19,9 Và mình ...

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

Đếm bit

Mở đầu Bạn đang say sưa hacking code và bắt gặp một hàm với những con số bí ẩn như ở dưới đây: int fbc(unsigned int data) { data = (data & 0x55555555) + ((data >> 1) & 0x55555555); data = (data & 0x33333333) + ((data >> 2) & 0x33333333); ...

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

Bạn đã thực sự hiểu mutable và immutable?

Link gốc bài viết ở đây Bạn đã từng đọc hay nghe đâu đó nói rằng: mutable là giá trị có thể thay đổi được còn immutable là giá trị không thể thay đổi được. Nhưng bạn đã thực sự hiểu đúng nó chưa? >> test = 3 # => 3 >> test # => 3 >> test = 2 * test # => ...

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

Maintaining per-class stats with instance variables of class objects

The problem Let's say you have a class and you want to keep track of number of its instances. Using a class variable may be the first thing that come to your mind. Consider this example: class Car @@total_count = 0 def initialize @@total_count += 1 end def self.total_count ...

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