Bài đăng

Ghi lại câu truy vấn Database trong Laravel

Hình ảnh
Logging query trong Laravel Để biết ứng dụng thực hiện câu truy vấn nào tới Database ta có thể log lại câu truy vấn đó khi nó được thực thi. Mục đích Mục đich chính của việc này là ta có thể theo dõi các câu truy vấn được executed trong việc debug và tuning/optimze câu truy vấn. Thực hiện Để log các query được thực thi ta chỉ cần bắt sự kiện khi ứng dụng execute query. Ta có thể hiện bằng cách truyền vào một hàm ẩn danh khi gọi đến method listen của class DB . Đoạn code cần được đặt trong method boot của AppServiceProvider hoặc của một service provide riêng tự tạo. <?php namespace App\Providers; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { DB::listen(function ($q) { Log::info('TIME: ' . $q->time . '

Cách sử dụng nhiều ssh key cho nhiều tài khoản với git

Hình ảnh
Cách sử dụng nhiều ssh key cho nhiều tài khoản với git Nhiều lập trình viên dùng nhiều tài khoản git với những email khác nhau như email cá nhân và công ty thì việc xác thực sử dụng https trên command line khiến mỗi lần phải gõ email và password là một nỗi khiếp sợ. Một cách giải quyết ta có thể sử dụng là sử dụng các ứng dụng quản lý mã nguồn như GitKraken, SourceTree… để thực hiện các thao tác commit, pull, push, rebase, diff… Tuy nhiên đối với những thao tác commit, pull, push, rebase… đơn giản như vậy thì bản thân mình cảm thấy không cần thiết tới những ứng dụng trên. Chỉ cần command line là đủ - nhẹ nhàng, nhanh chóng, chạy bất cứ đâu. Vậy nên trong bài viết này mình sẽ giải thích làm thế nào để khiến Git chọn đúng SSH key cho project bạn đang làm việc, bất kể remote repository ở Github, Gitlab hay Bitbucket. Bước 1: Tạo SSH key cho tài khoản mới Chuyển tới thư mục chứa khóa SSH: cd ~/.ssh Để tạo khóa mới đơn giản ta chỉ cần chạy lệnh ssh-keygen -t rsa -C "tran

Sử dụng Transformers trong Laravel

Khi tạo REST API ta thường trả về dữ liệu dưới dạng JSON. Trong Laravel ta có nhiều cách để trả về  JSON. How We Usually Do It Thông thường, khi chúng ta tạo ra một JSON Response trong Laravel, chúng ta sẽ sử dụng Model. class User { protected $fillable = [ 'name', 'email', 'address', ]; protected $hidden = [ 'password', 'remember_token', ]; } Giả sử chúng ta muốn lấy User đầu tiên dạng JSON, thì có lẽ chúng ta sẽ sử dụng một cách nào đó như sau. $user = User::find(1); return $user; Boom! Bạn nhận JSON response của user đầu đã đăng ký. Nhưng nếu Model thay đổi trong tương lai (ví dụ: đổi address thành user_address) => JSON response cũng thay đổi. Các bên sử dụng API của bạn cũng phải thay đổi theo. Do vậy ta cần một cách khác phù hợp hơn, câu trả lời đó là dùng Transformer. Transformers Về cơ bản transformers cho bạn tạo định JSON response một cách linh động. Ngoài ra t

Trang web tra cứu documentations số 1 cho coder - DevDocs.io

Hình ảnh
Giới thiệu DevDocs.io. DevDocs.io là một trang web tuyệt vời để tra cứu documentations (docs) cho lập trình viên. Nơi đây tập hợp hầu hết các docs của các ngôn ngữ lập trình và APIs. Với khả năng tìm kiếm mạnh mẽ và nhanh chóng, bạn hầu như sẽ không phải chờ đợi khi tra cứu bất cứ hàm, thư viện nào cả. Không những thế, DevDocs.io còn cho phép tải docs về và lưu offline, do đó bạn có thể tra cứu docs bất cứ khi nào. Tuy DevDocs.io tập hợp docs của rất nhiều ngôn ngữ, nhưng có hai ngôn ngữ hay dùng là C# và Java thì trên này lại không có docs. Điều này cũng dễ hiểu vì nếu bạn code C# hay Java thì IDEs đều đã tích hợp sẵn docs cho bạn rồi, do đó việc tải docs về là không cần thiết. Hướng dẫn sử dụng. Để tra cứu docs bạn cần vào trang DevDocs.io. Giao diện hiện ra với một khung Welcome và bên trái sẽ là thanh search cùng với các ngôn ngữ lập trình và APIs. Giao diện của DevDocs.io Gõ từ cần tìm kiếm vào ô search, ví dụ ta gõ "array"  thì kết quả hiện ra:

Thuật giải Minimax trong game Tic Tac Toe

Hình ảnh
Giải thích thuật toán Minimax trong AI. Giải thuật Minimax dùng phương pháp cắt tỉa Alpha-Beta và một số giải thuật khác.

Đề thi Lập trình hướng đối tượng (OOP) đại học Bách Khoa Hà Nội

Hình ảnh
Đề thi Lập trình hướng đối tượng (OOP) đại học Bách Khoa Hà Nội K58 và K59 (năm 2015 và 2016)

Đứng giữa tuổi 20s, 10 bài học tôi cảm thấy vô giá

Hình ảnh
Ngày sinh nhật tuổi 25 càng trở nên có ý nghĩa hơn bao giờ hết khi tôi đang vi vu Bali, Indonesia -  một mình . Tôi nằm dài trên ghế sofa của 1 cái dorm tên là Bread & Jam. Nó nằm sâu trong một cái ngõ nhỏ nào đó của Kuta, Bali mà đến tài xế taxi cũng chẳng thể tìm đường vào gần nếu không có bản đồ.   7 năm trước, ở cái tuổi mới kết thúc cấp 3 và chập chững bước vào đại học, thế giới của tôi giới hạn trong Hà Nội. Việc được đi du lịch vào Đà Nẵng, hay bố mẹ cho đi máy bay vào HCM là cả một sự sung sướng. Hồi đó, tôi đã nghĩ rằng việc đi ra nước ngoài là điều gì đó lớn lao và đạt được là cả một thành tựu. 7 năm sau, tôi một mình ở một nơi cách nhà 4500km, vẫn có thể gọi appear.in bàn công việc với đối tác. Đây là công việc thử thách tôi cả về trí lực lẫn thể lực, được tạo cơ hội bơi ra biển lớn. Dĩ nhiên so sánh với nhiều bạn trẻ tài năng, cái "thành tựu" của tôi chẳng có gì nhiều nhặn. Nhưng tôi nhận ra rằng phần nào đó mình đã trưởng thành hơn so với chính bản thân