15 tháng 9, 2016

Kiểm soát quyền truy cập tới các thuộc tính của một Class trong Java

            | Class | Package | Subclass | Subclass | World  |
            |       |         |(same pkg)|(diff pkg)|        |
————————————+———————+—————————+——————————+——————————+————————+
public      |   +   |    +    |    +     |     +    |   +    |
————————————+———————+—————————+——————————+——————————+————————+
protected   |   +   |    +    |    +     |     +    |   o    | 
————————————+———————+—————————+——————————+——————————+————————+
no modifier |   +   |    +    |    +     |     o    |   o    |
————————————+———————+—————————+——————————+——————————+————————+
private     |   +   |    o    |    o     |     o    |   o    |
--------------------------------------------------------------
+ : accessible
o : not accessible

13 tháng 9, 2016

Tạo Trigger tự động ghi lại thời gian sửa đổi lần cuối của dữ liệu trong PostgreSQL

1. Tạo Trigger Function

Tạo Trigger Function trên column có tên last_updated:

CREATE OR REPLACE FUNCTION public.update_timestam()
  RETURNS trigger AS
$BODY$
BEGIN
    NEW.last_updated = CURRENT_TIMESTAMP;
    RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql;

2. Tạo Trigger

Tạo Trigger cho bảng tbl_books.

CREATE TRIGGER trigger_upd_timestamp_last_updated_tbl_books
  BEFORE UPDATE
  ON public.tbl_books
  FOR EACH ROW
  EXECUTE PROCEDURE public.update_timestamp();

Note: bảng tbl_books phải có column last_updated.

Một số lệnh khi sử dụng PostgreSQL

# Import sql dump file trong postgresql database:
$ psql -h hostname -d databasename -U username -f file.sql

# Kiểm tra <code>postgres client</code> version:
$ psql -V

# Để có thể thao tác trên postgres server ta cần kết nối tới postgres server, 
# để làm được điều này cần phải login vào hệ thống với quyền của postgres user.
$ sudo su - postgres

# Sau khi đã kết nối với postgres server, ta có thể thực hiện kết nối với database mặc định postgres như sau:
$ psql

# Kết nối với một database bằng một user cụ thể:
$ psql -d database_name -U user_name

Kết nối với database khác:

postgres=# \c database_name

Liệt kê toàn bộ relation của một database:

database_name-# \d

Liệt kê toàn bộ schema của một database:

database_name-# \dn

Liệt kê toàn bộ table của một database:

database_name-# \dt

Liệt kê toàn bộ sequence của một database:

database_name-# \ds

Hiển thị mô tả chi tiết một table:

database_name-# \d table-name

Hiển thị database đang connect:

bashdatabase_name-# \c

Thay đổi màu sắc highlight Logcat trong Android Studio

Với màu sắc highlight Locat mặc định trong theme Dracula thì rất khó để nhận ra từng loại log.

Darcula theme Logcat highlighting

Ta có thể sửa lại màu sắc highlight Logcat theo theme Android Holo để dễ dàng nhận biết từng loại log khác nhau.

Holo theme Logcat highlighting

Để làm được điều này ta thực hiện như sau:

  • Trên thanh công cụ menu chọn File|Settings
  • Tiếp theo trong phần Settings, chọn Editor|Colors & Fonts|Android Logcat
  • Click vào Save As… button và tạo color schema mới
  • Thay đổi tất cả màu sắc theo ‘Holo theme colors’ (Bỏ lựa chọn ‘Use inherited attributes’ đối với từng loại màu)
Assert:  #AA66CC
Debug:   #33B5E5
Error:   #FF4444
Info:    #99CC00
Verbose: #FFFFFF
Warning: #FFBB33
Holo theme colors

Cài đặt Genymotion trên Ubuntu

1. Cài đặt VirtualBox

Mở Terminal thực hiện lệnh sau:

$ sudo apt-get install virtualbox

2. Cài đặt Genymotion

Vào trang chủ của Genymotion đăng ký tài khoản (nếu chưa có) và tải về phiên bản mới nhất.

Thay đổi quyền truy cập tập tin, cho phép thực thi đối với tập tin vừa tải về.

Ví dụ:

$ chmod +x ~/Downloads/genymotion-2.8.0-linux_x64.bin

Tạo thư mục cài đặt Genymotion, và đặt tập tin đã tải về vào đó.

Ví dụ:

$ mkdir ~/Programs
$ mv ~/Downloads/genymotion-2.8.0-linux_x64.bin ~/Programs

Thực hiện cài đặt tập tin bên trong thư mục vừa tạo.

$ cd ~/Programs
$ ./genymotion-2.8.0-linux_x64.bin