Chính quyền điện tử: lý thuyết và thực tế

Theo BBC Future, Estonia – một đất nước nhỏ bé chỉ với 1,3 triệu dân nằm lọt thỏm ở một góc đông bắc châu Âu, quốc gia đã sinh ra Skype đang theo đuổi mục tiêu xã hội kỹ thuật số 100% kể từ những năm 1990. Các chuyên gia từ những nơi khác đều đồng ý rằng ý tưởng về chính phủ trực tuyến của nước này – được gọi là dự án e-Estonia – là mô hình mẫu mực trên thế giới về việc làm thế nào để một chính phủ có thể chuyển phần lớn các dịch vụ của mình lên một cơ sở trực tuyến duy nhất một cách tiện lợi và thành công.

Từ 1997, dự án này cho phép các công dân Estonia khai hồ sơ thuế trực tuyến kể từ năm 2000 cũng như cho phép người dân được kê đơn thuốc, lấy kết quả xét nghiệm, ký giấy tờ và thậm chí là bầu cử và cho phép người nước ngoài trở thành công dân điện tử, tất cả đều qua mạng. Các nước Phần Lan, Nhật Bản và Cyprus đều học kinh nghiệm từ Estonia – họ hoặc là làm việc với các công ty Estonia để xây dựng chương trình thuế điện tử ở quốc gia của họ, hoặc là mượn hệ thống thẻ nhận dạng công dân của Estonia mà mỗi công dân đều có một mã số được sử dụng cho tất cả các mục đích: từ an sinh xã hội cho đến bầu cử và cứu nạn trong thảm họa.  E-Estonia còn có hệ thống bỏ phiếu trực tuyến, mà họ nói rằng có chế độ an toàn để đảm bảo tính trung thực của các lá phiếu bầu, chẳng hạn như những thẻ căn cước của mỗi công nhân do Nhà nước cấp cho phép họ sử dụng các tiện ích trực tuyến như mua sắm và bầu cử điện tử. Họ cho rằng công nghệ khóa chùm của họ có thể đảm bảo rằng “không có ai – kể cả các tin tặc, các quản trị viên hệ thống và thậm chí là cả chính phủ – có thể lợi dụng và bóp méo dữ liệu mà không bị trừng phạt.”

Tuy nhiên, ngoài các vấn đề về an ninh mạng, ở các quốc gia càng lớn thì càng khó xây dựng xã hội điện tử một cửa như ở Estonia. Ở một quốc gia lớn, có thể có rất nhiều người nói nhiều ngôn ngữ khác nhau – làm mọi chuyện thêm phức tạp – sẽ dễ dàng hơn để mọi việc diễn ra suôn sẻ ở một nước nhỏ và tương đối đồng nhất.

(Trích từ BBC Future)

Issue Type trong Jira

JIRA cung cấp nhiều Issue Types khác nhau, tuỳ theo từng dự án mà người quản trị có thể hiệu chỉnh cho phù hợp. Các Issue Type mặc đinh là:

 Bug — một lỗi ảnh hưởng tới chức năng hoặc toàn bộ sản phẩm
 Improvement — nâng cấp của chức năng đã có
 New Feature — chức năng mới cho sản phẩm
 Task — một nhiệm vụ cần hoàn thành
 Custom Issue — loại được định nghĩa bởi người dùng

Tạo Linux filesystem

Công cụ để format filesystem là mkfs, được sử dụng bởi super user. Filesystem type được chỉ định bằng lệnh mkfs.fstype hoặc mkfs -t fstype.

Ví dụ để tạo một phân vùng dạng ext4 trong Ubuntu:

$ sudo mkfs.ext4 /dev/sdb1
[sudo] password for user:
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: 0/1done
$

Kiểm tra lại filesystem type vừa tạo bằng parted utility:

$ sudo parted -l
[...]
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 4295MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 2149MB 2147MB primary ext4

Ngoài ra cũng có thể sử dụng blkid utility:

$ sudo blkid
/dev/sda1: [...] TYPE="ext4"
/dev/sda5: [...] TYPE="swap"
/dev/sdb1: [...] TYPE="ext4"

Các câu hỏi phỏng vấn cho lập trình viên Java (Phần 3)

java-interview-questions
Q: Static variable là gì?
Static variables là các biến ở class level, tất cả các đối tượng của class sẽ tham chiếu tới đó. Nếu một đối tượng thay đổi giá trị thì sẽ thay đổi trong tất cả các objects khác

Q: Có thể khai báo static variable trong một method không?
Static varaibles là các biến ở mức class level variables nên không thể khai báo trong method. Nếu khai báo thì lớp đó sẽ không được biên dịch

Q: Một method trong Interface có thể được khai báo là final không?
Khai báo này sẽ gây ra một lỗi biên dịch. Public và abstract sẽ được dùng để khai báo cho method trong một interface.

Q: Một Interface có thể extend Interface khác không?
Một Interface có thể được kế thừa từ Interface khác, Interface có thể extend nhiều hơn một Interface.

Q: Một Class có thể extend nhiều hơn một Class không?
Một lass cso thể extend duy nhất một class nhưng có thể implement số lượng Interface tuỳ ý.

Q: Một class có thể được định nghĩa trong Interface không?
Có. Một Interface cũng có thể được định nghĩa trong 1 class

Q: Externalizable là gì?
Externalizable là một Interface extends Serializable Interface. Nó gửi dữ liệu vào Streams dưới dạng Compressed Format, và có 2 method là writeExternal(ObjectOuput out) và readExternal(ObjectInput in)

Q: Class nào extended bởi tất cả các classes?
Object class được extended bởi tất cả các classes

Q: Nếu biến được khai báo private, nó có thể truy xuất từ đâu?
Một private variable có thể được truy xuất trong class mà nó được khai báo

Q: Một method được khai báo protected, nó có thể truy xuất từ đâu?
Một protected method có thể được truy xuất từ các classes hoặc interfaces trong cùng package hoặc subclasses của class mà nó được khai báo

Q: Sự khác biệt giữa public và non-public class?
Public class có thể truy xuất từ ngoài package. Non-public class không thể truy cập từ ngoài package của nó.

Các câu hỏi phỏng vấn cho lập trình viên Java (Phần 2)

java-interview-questions

Q:  Main() method có bắt buộc phải được sử dụng trong tất cả các java class không?
Không bắt buộc. Main() method nên được định nghĩa trong các lớp là java application.

Q: Main() method sẽ trả về kiểu dữ liệu nào?
Main() method được định nghĩa là void, và không trả về kiểu dữ liệu nào

Q: Đối số của main() method là loại nào?
Main() method nhận các đối số dạng mảng (array) của String object

Q: Package là gì?
Package là tập hợp các classes và interfaces có liên quan tới nhau. Package được khai báo ngay trên dòng đầu tiên trong mỗi java class.

Q: Package nào được mặc đinh import?
Package java.lang được mặc định import mà không cần khai báo.

Q: Nếu một class được khai báo là private trong package thì sao?
Class đó sẽ không thể truy cập từ bên ngoài package.

Q: Protected method có thể được truy cập từ đâu?
Có thể truy cập protected method bởi những classes trong cùng package hoặc từ subclasses của class đó ở tất cả các package.

Q: Mục đích của việc khai báo biến (variable) là final?
Final variable có giá tri không thể thay đổi. Final variables cần được khởi tạo trước khi sử dụng.

Q: Điều gì xảy ra khi khai báo method là final?
Method là final không thể ghi đè (overridden). Một sub-class không thể có method signature giống với implementation khác.

Q: Nếu không một class bị kế thừa (inherited) từ các class khác thì nên làm gì?
Nên khai báo class đó là final. Nhưng không thể định nghĩa một class là final,nếu nó là abstract class.

Q: Ví dụ về final classes trong Java API?
VD như java.lang.String, java.lang.Math.

Các câu hỏi phỏng vấn cho lập trình viên Java (Phần 1)

java-interview-questionsQ: Tính năng quan trọng nhất của Java là gì?
Java là một ngôn ngữ lập trình hướng đối tượng với nền tảng độc lập, có thể code java trên một môi trường (ví dụ Windows) nhưng thực thi trên một môi trường khác (ví dụ Solaris).

Q: Sự khác biệt của JDK và JRE là gì?
JDK là Java Development Kit với mục đích phục vụ cho việc phát triển ứng dụng, bao gồm cả môi trường thực thi.
JRE chỉ là môi trường runtime, không thể phiên dịch được mã nguồn trên đó.

Q: Lớp cơ sở của Java là gì?
java.lang.Object

Q: Java có hỗ trợ đa kế thừa (multiple inheritance) không?
Java không hỗ trợ multiple inheritance

Q: Path và Classpath khác nhau như thế nào?
Path là biến môi trường của hệ điều hành (operating system level environment variales). Path chỉ ra vị trí của executables files (file .exe)
Classpath chỉ ra chỗ của các .class file.

Q: Local variables là gì?
Local varaiables là biến cục bộ được khai báo trong block code như là methods. Local variables nên được khởi tạo trước khi truy cập tới chúng

Q: Instance variables là gì?
Instance variables được khai báo trong các lớp (class level). Instance variables không cần được khởi ạo trước khi sử dụng, chúng sẽ tự khởi tạo với giá trị mặc định.