viblo.asia

awk command in linux

Lý thuyết Sau một vài lần sử dụng 'awk' command để thao tác dữ liệu và tạo báo cáo khá hiệu quả. Nay mình viết lại một số tip nhỏ, tuy nhỏ nhưng khá hiệu quả trong các việc như quét và xử lý mẫu. Nó tìm kiếm một hoặc nhiều tệp để xem liệu chúng có chưa các dòng khớp với mẫu đã chỉ định hay không và sau đó thực hiện các dòng lệnh liên quan. Một số action như: Quét một tệp theo các dòng Chia từng dòng đầu vào thành...

viblo.asia

Spring logback config

Trong spring boot thấy các tiền bối bảo rằng có nhiều cách cấu hình logging. Với mình thì mình thường làm là config trong file aplication.properties hay application.yml hoặc file logback.xml. Nay mình chỉ tản mạn nói về cách dùng file logback.xml thôi. ) Chúng ta cùng bắt đầu với một cấu hình Logback đơn giản tên là logback.xml được đặt trong resources folder như sau <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender...

viblo.asia

Java Core Best Practices (Should Know)

Bài viết này mình xin trình bày một số điều nhỏ nhỏ các lập trình viên java nên xem xét để thực hiện nó trong các đoạn mã chương trình chúng ta viết hàng ngày. Nó giúp các lập trình viên Java viết mã tốt phù hợp với các thực tiễn tốt nhất. Using Naming Conventions Trước hết, khi bắt đầu dự án, bạn hoặc cả team nên chỉ định một tập hợp các quy ước đặt tên cho dự án Java của bạn, chẳng hạn như cách đặt tên các class...

viblo.asia

Clean code - P4 : Error Handling

Xử lý lỗi là một trong những điều chúng ta phải làm khi lập trình. Vậy xử lý lỗi liệu có quan trọng? Use Exceptions Rather Than Return Codes Hãy cùng xem đoạn code dưới đây: public class DeviceController { ... public void sendShutDown() { DeviceHandle handle = getHandle(DEV1); // Check the state of the device if (handle != DeviceHandle.INVALID) { // Save the device status to the record field DeviceRecord record = retrieveDeviceRecord(handle); // If not...

viblo.asia

Clean code - P3

Xử lý lỗi là một điều mà tất cả lập trình viên cần phải làm khi viết code. Use exceptions rather than return codes Cùng xem ví dụ dưới đây : public class DeviceController { ... public void sendShutDown() { DeviceHandle handle = getHandle(DEV1); // Check the state of the device if (handle != DeviceHandle.INVALID) { // Save the device status to the record field retrieveDeviceRecord(handle); // If not suspended, shut down if (record.getStatus() !=...

viblo.asia

Optimization and Indexes (part 1)

How MySQL Uses Indexes Index được sử dụng để tìm các bản ghi theo column có giá trị cụ thể một cách nhanh chóng. Nếu không có index, Mysql phải bắt đầu từ bản ghi đầu tiên sau đó đọc qua toàn bộ bảng để tìm các bản ghi có liên quan. Kích thước bản ghi của bảng càng lớn thì chi phí tìm kiếm càng cao. Nếu bảng có index, MySql có thể nhanh chóng xác định vị trí để tìm kiếm, cách tìm kiếm này rõ ràng nhanh hơn nhiều so với việc...

viblo.asia

Ebean query futures

Query Features // find by id Order order = Ebean.find(Order.class, 12); SQL khi thực thi truy vấn: select o.id, o.order_date, o.ship_date, o.cretime, o.updtime, o.status_code, o.customer_id from or_order o where or.id = ? // these are the same Query<Order> query = Ebean.createQuery(Order.class); // JPA style Query<Order> query = Ebean.find(Order.class); // fluid API style // Ví du: fluid API style with find() List<Order> list = Ebean.find(Order.class) ...

viblo.asia

JPA tut

Table Of Contents Introduction Project setup Basics 3.1. EntityManager and Persistence Unit 3.2. Transactions 3.3. Tables Inheritance Relationships 5.1. OneToOne 5.2. OneToMany 5.3. ManyToMany 5.4. Embedded / ElementCollection Data Types and Converters Criteria API Sequences Download 1. Introduction JPA là một chuẩn đặc tả cho việc ánh xạ giữa các đối tượng java và csdl quan hệ thông qua công nghệ ORM (Object Relational Mapping). JPA bao gồm 3 thành phần khác nhau: Entities : Trong phiên bản hiện...

viblo.asia

Different ways of Reading a text file in Java

Đọc, ghi file là một phần cần thiết trong các ứng dụng. Hôm nay mình xin chia sẻ một số cách đọc dữ liệu từ file text sử dụng ngôn ngữ java mà mình biết. Có một vài cách để đọc file văn bản thuần túy trong java như : BufferedReader, FileReader, Scanner. Mỗi tiện ích này lại có những khả năng khác nhau. Như BufferedReader thì cung cấp bộ đệm giúp khả năng đọc ghi nhanh, Scanner cung cấp nhiều hàm tiện ích hơn và khả năng phân tích cú...

viblo.asia

SQL query return data from multiple tables

Tôi muốn biết những điều dưới đây: Làm thế nào có thể lấy dữ liệu từ nhiều bảng trong Database. Có những cách nào để làm được điều này. Sử dụng join và union khác nhau như thế nào? Để lấy dữ liêu từ nhiều bảng mà không phải connect nhiều lần đến DB, vậy tôi phải làm thế nào? Câu trả lời sau khi đọc xong các phần dưới đây. Part 1 - Joins and Unions Tại sao lại sử dụng nó? Nó có mang lại hiệu quả về performance...

viblo.asia

[Spring Security] Cross Site Request Forgery (CSRF)

Cross Site Request Forgery (CSRF) Hi all, Phần nội dung này sẽ thảo luận về sự hỗ trỡ của Spring Security đối với các cuộc tấn công CSRF. Mời mọi người cùng đón đọc và xin để lại comment nếu có những bổ sung góp ý. Mình xin chân thành cảm ơn. 1. Tấn công CSRF (CSRF attack) Tài liệu về tấn công CSRF trên mạng có rất là nhiều, mình tóm tắt lại một vài điểm theo cách mình hiểu như : Chèn mã độc, link độc hướng người dùng chuyển...