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

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

2 tháng 4, 2016

Enable Icons Menus Trong Hệ Điều Hành Linux

Mặc định trong UbuntuFedora icon menu bị tắt đi. Dưới đây là cách bật icon menu trong hệ điều hành Linux:
Để bật chế độ menuicon, cần thực hiện lệnh sau:
#!/bin/bash
~$ gsettings set org.gnome.desktop.interface menus-have-icons true

hoặc:

~$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"

Password confirm validator sử dụng Hibernate Validator

Cách tạo và kiểm tra tính hợp lệ của mật khẩu xác nhận khi đăng kí tài khoản sử dụng hibernate-validator

Tùy chỉnh ngoại lệ không tìm thấy tài nguyên khi duyệt web trong Spring MVC

Tạo desktop launcher cho Eclipse trong hệ điều hành Linux

1. Tạo file eclipse.desktop

Sử dụng một editor bất kì để tạo file trong thư mục /usr/share/applications.

Ví dụ sử dụng gedit:

$ sudo gedit /usr/share/applications/eclipse.desktop

2. Thêm nội dung sau vào file vừa tạo và lưu lại.

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse Mars 4.5.1
Exec=/path/to/your/eclipse_folder/eclipse
Icon=/path/to/your/eclipse_folder/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true

1 tháng 4, 2016

Cách tạo mã tự động tăng trong PostgreSQL

Ví dụ tạo cột book_id tự động tăng trong bảng tbl_books

  1. Tạo sequences tự động tăng giá trị cho cột book_id:

  2. Tạo bảng tbl_books sử dụng sequences đã tạo trước đó:

Cài đặt Oracle JDK trong Ubuntu

  1. Thông báo cho hệ thống biết nơi chứa jdk
  2. $ sudo update-alternatives --install "/usr/bin/java" java "/opt/java/oracle_jdk/bin/java" 1
    $ sudo update-alternatives --install "/usr/bin/javac" javac "/opt/java/oracle_jdk/bin/javac" 1
    $ sudo update-alternatives --install "/usr/bin/jar" jar "/opt/java/oracle_jdk/bin/jar" 1
    $ sudo update-alternatives --install "/usr/bin/javaws" javaws "/opt/java/oracle_jdk/bin/javaws" 1

  3. Mở file PATH của hệ thống:
  4. Mở Terminal và gõ lệnh sau:

    $ sudo gedit /etc/profile.d/jdk.sh

    hoặc:

    $ sudo vi /etc/profile.d/jdk.sh

  5. Sửa file PATH của hệ thống:
  6. Thêm vào các dòng lệnh sau:

    #!/bin/bash
    export JAVA_HOME=/opt/java/oracle_jdk
    export PATH=$PATH:$JAVA_HOME/bin

  7. Logout hoặc khởi động lại.
Lưu ý: Cài đặt Maven tương tự nhưng chỉ cần sửa PATH của hệ thống là được.

16 tháng 1, 2016

Một số thẻ trong HTML5

  1. Thẻ <site>
  2. Thẻ <site>: Xác định tên của một tác phẩm (ví dụ: một quyển sách, một bài hát, một bức tranh, một chương trình truyền hình...)

    <img src="https://cdn-images-1.medium.com/max/600/1*Yja7DqjrBPJuHaw1QZ6iwg.jpeg" width="220" height="277" alt="The Scream">
    <p><cite>The Scream by Edward Munch. Painted in 1893.</p>
    

    Kết quả:

    The Scream

    The Scream by Edward Munch. Painted in 1893.

  3. Thẻ <mark>
  4. Thẻ <mark>: Sử dụng khi muốn làm nổi bật một đoạn văn bản

    <p>Do not forget to buy <mark>milk</mark> today.</p>

    Kết quả:

    Do not forget to buy milk today.