Remove the permanent generation

1.Permanent generation là gì? Trước khi tìm hiểu về permanent generation là gì chúng ta sẽ xem xét lại mô hình quản lý bộ nhớ trong Java. Về cơ bản thì vùng nhớ của JVM được OS cấp phát gồm có 4 phần: Heap: lưu trữ các Object ( hầu hết với từ khóa new) Stack: Lưu trữ các dữ liệu hoặc tham ...

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

Sentry Logging cho Rails

Sentry là gì? Sentry là một nền tảng logging sự kiện chủ yếu tập trung vào việc nắm bắt và tổng hợp các exception. Sentry ban đầu được hình tại Disqus vào đầu năm 2010 để giải quyết logging exception trong một ứng dụng Django. Kể từ đó nó đã phát triển để hỗ trợ nhiều ngôn ngữ phổ biến và nền ...

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

Introduction of Maintainable Javascript: Avoid Globals

The JavaScript execution environment is unique in a lot of ways. One of those ways is in the use of global variables and functions. The default JavaScript execution environment is, in fact, defined by the various globals available to you at the start of script execution. All of these are said to be ...

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

3-11Những chức năng khác của [MyGame]

Tại MyGame thì ngoài những chức năng đã được giới thiệu cho đến nay thì nó còn được chuẩn bị rất nhiều chức năng tiện lợi khác Lấy kích cỡ màn hình Với phương pháp dưới đây thì chúng ta có thể lấy được kích thước màn hình. p screen . w # chiều dài của màn hình (mặc định là 640) p screen ...

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

Tìm hiểu về Docker

1. Docker là gì? Docker là một open platform cung cấp cho người sử dụng những công cụ và service để người sử dụng có thể đóng gói và chạy chương trình của mình trên các môi trường khác nhau một cách nhanh nhất. Docker bao gồm: Docker Engine: Chứa các tool, engine để có thể đóng gói chương ...

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

WatchKit App Fundamental

I, WatchKit App Architecture Ứng dụng WatchKit sẽ hoạt động gắn liền với ứng dụng trên các thiết bị di động. Ứng dụng WatchKit, ứng dụng trên iphone có thể trao đổi thông tin giữa Watch và Phone. II, WatchKit App Life Cycle ( vòng đời ứng dụng của watchkit) Một ứng dụng watchkit có ...

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

Thay đổi phương pháp lấy thông tin location từ iOS8

Vấn đề phát sinh Từ iOS8 trở đi, phương pháp lấy thông tin location đã được thay đổi. Nếu bạn sử dụng phương pháp như cũ thì sẽ không thể lấy được thông tin location nữa. Các bạn có thể tham khảo topic dưới đây trên Stack Overflow: iOS 8 : Location Services not working My app that ...

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

Hướng dẫn sử dụng GUI mới trong Unity 4.6

Giới thiệu Nhận xét đầu tiên của tôi khi dùng Unity là một Engine tuyệt vời để phát triển game bởi vì nó rất dễ dàng ,nhanh và còn rất nhiều hỗ trợ tiện lợi so với những Engine khác. Nhưng có một điểm tôi không được hài lòng ở các bản Unity trước là hệ thống GUI cũ ,nó là khá tốn thời gian ...

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

XSS tấn công và phòng thủ: Các phương pháp tấn công XSS

Tấn công XSS (cross-site scripting) thường được coi là lành tính, hoặc người ta thường ít nghĩ đến những hiểm họa tiềm tàng của chúng. Ví dụ, phần lớn mọi người cho rằng các chương trình mã độc Javascript có thể ăn cắp cookies hoặc chuyển hướng một người tới một trang Web khác. Tuy nhiên, những ...

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

5-3 Làm một tiểu thuyết trực quan

Phần này chúng ta sẽ tạo một tiểu thuyết trực quan đơn giản. Là game hiển thị hình ảnh và đoạn văn để triển khai một câu chuyện Nhập môn Tiểu thuyết trực quan so với những game chân thực phải thao tác với nhân vật như game hành động thì việc viết ra dễ hơn nhiều. Chương này, chúng ta sẽ chỉ ...

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

CLOSURE TRONG JAVACRIPT

1. Closure là gì? Trong các ngôn ngữ lập trình máy tính, một closure là một function hay một tham chiếu đến một function, cùng với một môi trường tham chiếu. Môi trường tham chiếu ở đây là một bảng lưu trữ các tham chiếu đến các biến không cục bộ của function đó(non-local variables). Không giống ...

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

COMMIT LÀ GÌ TRONG GIT?

Khi làm việc với Git chúng ta thường hay nói về commit trong các thao tác như merge, rebase, cherry-pick… Để làm chủ và hiểu được sức mạnh thực sự của Git trước tiên chúng ta cần phải hiểu khái niệm một commit là gì. Để trả lời được câu hỏi này hãy xem xét đến cách lưu trữ dữ liệu trong ...

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

[Network] Tìm hiểu cơ chế, cách hoạt động của IDS (phần 1)

1. Giới thiệu hệ thống IDS Hệ thống phát hiện xâm nhập IDS là một hệ thống giám sát lưu lượng mạng nhằm phát hiện ra hiện tượng bất thường, các hoạt động trái phép xâm nhập vào hệ thống. IDS có thể phân biệt được các cuộc tấn công từ nội bộ hay tấn công từ bên ngoài. IDS phát hiện dựa trên ...

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

TÌM HIỂU VAGRANT (PHẦN 2) - Vagrant + Chef

Vagrant provisioning Trong bài viết Tìm hiểu Vagrant Phần 1, chúng ta đã cùng nhau tìm hiểu sơ lược về vagrant, có thể setup 1 máy ảo phục vụ cho phát triển web 1 cách đơn giản với Ubuntu 12.04 LTS và shell provision. Trước tiên, hãy cùng nhau nhìn lại 2 file config chính là Vagrantfile và ...

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

Bắt đầu với Sprite Kit

1. Sprite kit là gì Sprite kit là một framework game 2D của Apple xây dựng trên iOS 7, hỗ trợ các hiệu ứng như video, filter, masking, thư viện vật lý tích hợp,... So với các game engine khác, Sprite kit có những điểm mạnh và điểm yếu sau: Điểm mạnh Sprite kit được xây dựng bởi Apple và tích ...

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

Template Method Pattern trong Ruby

Hãy tưởng tượng bạn có một đoạn code phức tạp, có thể đó là một thuật toán, hoặc mã hệ thống, hay cũng có thể là đoạn mã đủ khó mà bạn chỉ muốn code 1 lần. Vấn đề ở đây là chỉ có phần chính giữa của đoạn code phức tạp là thay đổi. -> Làm sao để giải quyết mà không phải thay đổi đoạn code quá ...

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

Cách tạo một ứng dụng chạy video trên Android application

Chào ace. Hôm nay tôi sẽ trình bày một chút hiểu biết mà tôi đã tìm hiểu được về làm thế nào để phát triển một ứng dụng về video trên android. Có rất nhiều cách để phát triển một ứng dụng như vậy, hoặc là chạy trực tiếp video trên client(cái này mà chạy đến 2 cái video thì dung lượng ngập face), ...

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

Android App Performance - Part 1: Managing Memory

Đa số các thiết bị chạy Hệ điều hành (HĐH) Android đều là các thiết bị có bộ nhớ nhỏ hơn nhiều lần so với các thiết bị chạy HĐH nhân Linux khác, vì thế quản lý bộ nhớ khi xây dựng ứng dụng là một phần trong quá trình tối ưu hóa tốc độ, hiệu năng. Trong phần này xin được giới thiệu sơ lược nhất về ...

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

4-5 Tạo class

Tại chương này chúng ta sẽ vừa tạo class vừa học cách định nghĩa class. Con Slime được chế tạo ra từ đây có máu và có khả năng tấn công đối phương là những con Slime khác Định nghĩa class Slime Rất tiếc trong Ruby thông thường thì chúng ta không được chuẩn bị class Slime hay class ...

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

[ThaoVTP] Tìm hiểu về test software

1. Khái niệm về Kiểm thử (Test) Kiểm thử là quá trình đánh giá một hệ thống hoặc bộ phận của nó để xem nó có thỏa mãn yêu cầu hay không. Nói một cách đơn giản, testing là thực hiện chạy một hệ thống để tìm ra những chỗ thiếu sót, lỗi hay phần yêu cầu bị thiếu so với yêu cầu thực tế. Theo tiêu ...

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