Showing posts with label 2016.
React + ES6 = Autobind does not work

React đã loại bỏ tính năng "autobinding" với các class component sử dụng cú pháp EcmaScript 2015 (ES6). Vì vậy, những cách truyền hàm như kiểu onClick={this.onClickHandler} sẽ không hoạt động nữa vì hàm onClickHandler không được gán cho đối tượng nào, this trong hàm đó sẽ không …

Common website vulnerabilities and how to protect in Django

Bảo mật các trang Web luôn là vấn đề đau đầu cho bất cứ ai. Có vô vàn cách thức tấn công khác nhau. Và ngay khi chúng ta có thể phòng chống được cách này thì lại có các khác được sinh ra.

Trong bài viết này, tôi sẽ …

Source Maps: An introduction

Trong quá trình phát triển Web, với các công việc liên quan đến front-end, ví dụ như code CSS, JS, có thể bạn sẽ dùng đến một số preprocessor như SASS, CoffeeScript,... cũng như các công cụ để gộp và nén file. Nhưng khi bạn muốn debug code của những …

Keep gulp running with gulp-plumber

Nếu bạn đang sử dụng gulp, có thể bạn sẽ thích cách làm việc của nó (stream) và nó rất đơn giản, mọi thứ được thể hiện trong code. Thực sự gulp rất tuyệt vời và tôi cũng đang dùng nó cho các công việc liên quan đến front-end của …

Cryptography: Untwisting Mersenne Twister

Cách mã hóa sử dụng one-time pad (OTP), hay còn được gọi là Vernam-cipher hoặc perfect cipher là cách mã hóa sử dụng khóa ngẫu nhiên. Đây là cách mã hóa duy nhất, về lý thuyết, là bảo mật và không thể bẻ khóa được. Tuy nhiên, cuộc đời thường …

Using AMD and RequireJS to modularize large JavaScript project

Trong quá trình phát triển Web, chắc chắn bạn sẽ phải làm việc với JavaScript. Theo thời gian, cùng với sự phát triển của dự án, code JavaScript cũng càng ngày càng phức tạp. Bài viết này sẽ trình bày một thư viện sẽ giúp chúng ta module hóa code …

Using Docker (and Docker Compose) for Django development

Gần đây, khái niệm ảo hóa sử dụng container được nhắc đến khá nhiều. Và Docker cũng đang nổi lên như một hiện tượng và được rất nhiều người sử dụng. Trong bài viết này, tôi sẽ đi vào tìm hiểu và thực hành sử dụng Docker cho dự án …

Understanding and mastering JavaScript's

Từ khóa this của JavaScript là một trong những khái niệm cơ bản nhưng cũng dễ gây nhầm lẫn nhất của ngôn ngữ này. Trong bài viết này, chúng ta sẽ dần dần tìm hiểu và làm sáng tỏ this, sao cho từ bây giờ, bạn không cần phải lo …

Something about coding style

Coding style (programming style) là bộ các quy tắc hoặc hướng dẫn được sử dụng bởi các lập trình viên khi viết mã nguồn phần mềm. Các lập trình viên thường được yêu cầu tuân thủ các quy tắc này để đảm bảo tính dễ đọc và dễ hiểu của …

Python class decorator

Trong bài viết trước, chúng ta đã tìm hiểu về metaclass trong Python. Và đi đến kết luận rằng, metaclass là một khái niệm rất phức tạp của Python và chúng ta không nên lạm dụng nó. Nếu muốn thay đổi hoạt động của một class, chúng ta có thể …

Python metaclass

Metaclass là một chủ đề khá ít người đề cập của Python. Một phần có lẽ bởi vì nó cũng ít được sử dụng, mà một phần lý do bởi vì Python cũng ít có tài liệu về chủ đề này. Trong bài viết này, tôi sẽ giới thiệu những …

Tips for improving Web application

Trong bài viết này, tôi sẽ trình bày một số kỹ thuật, rất cơ bản, có thể áp dụng với mọi dự án Web, để có thể nâng cao hiệu suất, mở rộng ứng dụng và giảm chi phí.

Vào thời điểm này, một server Web cỡ trung bình (8 …

System programming references

Một chương trình và in ra các số nguyên tố. Sử dụng fork (và pipeline), nó sẽ sinh ra các tiến trình con. Trong quá trình kiểm tra các số, các tiến trình con tương ứng với các số nguyên tố sẽ lần lượt được tạo ra. Quá trình có …

Django: Abstract Base Classes vs Multiple Table Inheritance

Django là một framework rất đầy đủ của Python cho phép chúng ta có thể phát triển nhanh một trang Web với những tính năng mạnh mẽ. Django đã cho phép kế thừa các model từ cách đây khá lâu, khi QuerysetRefactor branch được merge. Điều này cho phép chúng …

How to use Django admin and when should not use it

Django admin là một app rất hữu ích và đầy đủ tính năng, được tích hợp sẵn trong Django framework. Sử dụng Django admin sẽ giúp chúng ta phát triển một trang Web nhanh hơn. Trong bài viết này, tôi sẽ trình bày một số tip để làm việc với …

Advanced Web scraping and crawling with Scrapy and SQLAlchemy

Trong bài viết trước tôi đã giới thiệu kỹ thuật cơ bản sử dụng Scrapy và SQLAlchemy để scraping và crawling dữ liệu từ trang StackOverflow. Trong bài viết này, tôi sẽ giới thiệu một sỗ kỹ thuật nâng cao sử dụng Scrapy để scraping và crawling Web như follow …

Python iterator & generator

Trong bài viết này, chúng ta sẽ tìm hiểu một số khái niệm rất thông dụng trong Python nhưng cũng thường bị bỏ qua nên có thể dẫn đến những hiểu sai nhất định. Những khái niệm đó chính là iterator và generator. Chúng được sử dụng thường xuyên nên …