Giới thiệu YAML

Submitted by tinhxleev2 on Fri, 07/09/2021 - 09:28

Ngay khi bạn định viết một module cho drupal bạn sẽ thấy file có đuôi .yml. 

YAML là YAML Ain't Markup Language, là một định dạnh chuyển đổi trạng thái dữ liệu được sử dụng rộng rãi ở drupal 8 và 9. 

Vì YAML ở drupal được đọc vào PHP và cuối cùng trở thành cấu trúc dữ liệu PHP chúng ta có thể sử dụng. Bạn có thể sử dụng YAML Sandbox để xem YAML chuyển thành cấu trúc dữ liệu PHP như thế nào. 

Mục tiêu:

Tags

Lý thuyết về set trong Python

Submitted by tinhxleev2 on Thu, 07/08/2021 - 08:12

Thông thường chúng ta so sánh hai đối tượng để xem sự giống nhau và khác nhau về nội dung. Sử dụng sets

set() là phương pháp sử dụng để chuyển bất kỳ một list, (đối tượng nào có thể duyệt) thành chuỗi với các giá trị riêng biệt. 

Python có sẵn kiểu dữ liệu set đi cùng với các phương pháp

PHP - OOP là gì

Submitted by tinhxleev2 on Thu, 07/08/2021 - 03:17

Từ php5, bạn có thể viết php theo kiểu hướng đối tượng. OOP nhanh và dễ chạy hơn.

OOP là gì?

OOP viết tắt của Object-Oriented Programming. Procedural programming chủ yếu viết hàm cho dữ liệu, trong khi oop tạo đối tượng chứa cả dữ liệu và hàm.

Ưu điểm của OOP

Object-oriented programming has several advantages over procedural programming:

Tags

Cài đặt Drush

Submitted by tinhxleev2 on Wed, 07/07/2021 - 10:50

Theo hướng dẫn 

http://modulesunraveled.com/drush/installing-drush-mac-osx

Thông thường để chay drush thì sử dụng vendor/bin/drush 

Một số lệnh drush thông dụng

drush cr dùng để clear catch

Ví dụ module search api mình không dùng nữa thì gỡ bỏ như sau, lưu ý lệnh này không giống như composer remove search_api, vì sau đó mình có thể dùng drush en search_api để cài trở lại.

drush pm:uninstall search_api

Tags

Tổng hợp, đếm và duyệt

Submitted by tinhxleev2 on Tue, 07/06/2021 - 09:28

Tổng hợp các đối tượng (Combining) với zip()

ten = ['Lee', 'Dinh', 'Tĩnh']

tuoi =[17, 18, 19]

ket_hop = []

for i, ten in enumerate(ten)

   ket_hop.append((ten, tuoi[i]))

print(ket_hop)

cho kết quả tương tự như

ket_hop = zip(ten, tuoi)

unpack_ket_hop = [*ket_hop]

print(unpack_ket_hop)

Git clone và thiết lập

Submitted by tinhxleev2 on Mon, 07/05/2021 - 10:49

Mình có một git trên git lab, nhưng do đã xoá file ở trên máy tính nên phải clone lại, sau đó clone lại git từ git lab trên máy tính. 

git

git clone git@gitlab.com:user_name/ten_git.git

Giờ mình muốn thiết lập git ở máy tính là master

git checkout master

git branch -u origin/master      

 

Code profiling cho sử dụng bộ nhớ

Submitted by tinhxleev2 on Mon, 07/05/2021 - 10:08

Một chác nhanh chóng để xem một đối tượng có kích cỡ như thế nào trong bộ nhớ, là sử dụng 

import sys

sys.getsizeof()

Nung sys.getsizeof() chỉ cho kích thước của đối tượng riêng lẻ

Tượng tự như line profiler, sử dụng memory profiler, bằng cách cài 

pip install memory_profiler

Sau đó

%load_ext memory_profiler 

%mprun -f function_name function(arg1, arg2, ...)

Thiết lập solr search API cho web drupal

Submitted by tinhxleev2 on Mon, 06/28/2021 - 04:41

Trước hết mình sẽ cài sorl trên server. Bài này mình làm theo hướng dẫn khá chi tiết trên tecadmin.net và specbee.com

Bước 1: Cài Java trên server vì solr chạy trên Java.

ssh vào server và su root để để cài Java

sudo apt install openjdk-11-jdk

Kiểm tra xem java cài được chưa sử dụng

java -version

Code hồ sơ hóa cho thời gian chạy

Submitted by tinhxleev2 on Thu, 06/24/2021 - 08:45

%timeit hay %t%timeit sử dụng cho từng dòng và nhiều dòng. 

Nếu như muốn kiểm tra toàn bộ thì sử dụng code profling để kiểm tra code một cách hiệu quả hơn. 

Code profiling là một kỹ thuật sử dụng để mô tả các phần trong code chạy trong thời gian bao lâu và bao nhiêu lần. 

Code profiling - tổng hợp tóm tắt thông kê của từng dòng code (hoặc một nhóm dòng) mà không cần sử dụng lệnh phép thuật %timeit.

Một gói sử dụng khá nhiều là line_profiler package dùng để hồ sơ hóa hàm thời gian chạy từng dòng một. 

Learing