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)

Advertisements

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

Giới thiệu về Data Warehouse

Việc phân tích dữ liệu từ databases cần các ứng dụng khá phức tạp. Trong các hệ thống nghiệp vụ của các tổ chức lớn có thể cần tới hàng ngàn bảng trong các hệ thống CSDL khác nhau. Do vậy để có thể thực hiện việc phân tích từ các nguồn dữ liệu này trước tiên cần có sự tổng hợp dữ liệu, cùng với việc đảm bảo chất lượng dữ liệu để việc phân tích có thể sử dụng dữ liệu đã tồn tại trong suốt một thời gian dài.

Một giải pháp phổ biến cho việc phân tích dữ liệu là  tạo ra hệ thống kho dữ liệu – data warehouse (DW). Kho dữ liệu sẽ tập trung dữ liệu từ các nguồn khác nhau, lọc để có dữ liệu tốt và lưu trữ trong thời gian dài. Hệ thống này sẽ phục vụ cho việc sinh ra nhiều báo cáo phức tạp nên chủ yếu là đọc dữ liệu chứ hiếm khi được cập nhật. Việc thiết kế các DW schemas cần đảm bảo sự đơn giản và phù hợp cho mục đích tạo ra các báo cáo chuyên môn hơn là các lược đồ của cơ sở dữ liệu quan hệ thông thường. Cách thiết kế các lược đồ cho DW gọi là Star schema, hoặc Snowflake schema. Tables trong Star hay Snowflake schema goi là các dimension tables và fact tables. Các truy vấn trên các bảng này thường đọc dữ liệu từ một số lượng dữ liệu khổng lồ, vì vậy việc thiết kế cần phải có phương pháp hợp lý.

Giới thiệu SQL Server Import và Export Wizard

SQL Server Import và Export Wizard (DTSWizard.exe) là thành phần của Integration Services. SQL Server Import và Export Wizard giúp cho việc di trú dữ liệu từ các nguồn :

  • NET Framework Data Provider for SQLServer
  • Flat File Source
  • Microsoft Access
  • Microsoft Excel
  • Microsoft OLE DB Provider for Analysis Services 11.0
  • Microsoft OLE DB Provider for Oracle
  • Microsoft OLE DB Provider for SQL Server
  • SQL Server Native Client 11.0

Các đặc quyền cần thiết để sử dụng đươc SQL Server Import và Export Wizard là:

  • Quyền đọc từ   source database hoặc  file.
  • Quyền ghi dữ liệu vào destination database hoặc file.
  • Để lưu các Integration Services package được tạo bởi wizard, cần đặc quyền INSERT trên  msdb database.
  • Các đặc quyền khác cần trên destination database instance để tạo database hoặc bảng mới thực hiện qua wizard.

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.