Skip to content

Cơ bản về Nguyễn Hồng Sơn

Build postgreSQL from source

Khởi tạo máy ảo

  • Giống như các bài lab khác, ta sử dụng Vagrant để tạo các máy ảo phục vụ cho bài lab. Dưới đây là Vagrantfile cho bài lab này
    Vagrant.configure("2") do |config|
        config.ssh.insert_key = false
        config.vm.define "latex-test" do |cf1|
          cf1.vm.box = "centos/7"
          cf1.vm.hostname ="sonnh-lab"
          cf1.vm.network :private_network, ip: "192.168.1.10"
          cf1.vm.provider "virtualbox" do |vb|
              vb.memory = "2000"
          end
        end
    
    end
    
  • Run vagrant và ssh vào máy ảo
    vagrant up
    

Cài đặt các package cần thiết để build

  • Install epel
    yum -y install epel-release
    
  • Install util
    yum -y install yum-utils
    
  • Install package
    yum install gcc make systemd-devel zlib-devel readline-devel openssl-devel libldb-devel python3-devel wget openldap openldap-devel -y
    
  • Install development tool
    yum groupinstall 'Development Tools' -y
    
  • Install bison
    wget http://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.gz
    tar -xvzf bison-3.8.1.tar.gz
    cd bison-3.8.1
    ./configure --prefix=/opt/bison
    make && make install 
    

Cài đặt postgreSQL

  • Download postgreSQL source
    cd ~
    wget https://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gz --no-check-certificate
    tar -xvzf postgresql-15.2.tar.gz
    cd postgresql-15.2
    ./configure --prefix=/opt/pgsql-15 --with-openssl --with-python --with-ldap
    make && make install
    cd contrib
    make && make install
    
  • Tạo và grant quyền cho user postgres
    useradd -M -s /bin/bash postgres
    usermod -aG wheel postgres
    echo 'export PATH=$PATH:/opt/pgsql-15/bin' > /etc/profile.d/postgres.sh
    
  • Tạo mật khẩu và data dir cho database
    passwd postgres
    mkdir /mnt/pgsql-15/data/ -p
    chown -R postgres:postgres /mnt/pgsql-15/data/
    
  • Tạo database mới
    echo "5nKJkT2qBjuGU3SsV7t" >>  /mnt/pgsql-15/.password
    su postgres
    /opt/pgsql-15/bin/initdb -D /mnt/pgsql-15/data/ --pwfile /mnt/pgsql-15/.password
    
  • Sửa các config ở /mnt/pgsql-15/data/postgresql.conf/mnt/pgsql-15/data/pg_hba.conf nếu cần thiết.
    /mnt/pgsql-15/data/postgresql.conf
    # Path to the host-based authentication file
    hba_file = '/mnt/pgsql-15/data/pg_hba.conf'
    # Path to the ident configuration file
    ident_file = '/mnt/pgsql-15/data/pg_ident.conf'
    # IP addresses to listen on for incoming connections
    listen_addresses = 'localhost'
    # Port on which the PostgreSQL server listens for connections
    port = 5432
    # Maximum number of concurrent connections allowed
    max_connections = 100
    # Memory dedicated to PostgreSQL for caching data
    shared_buffers = 128MB
    # Limit on simultaneously prepared transactions
    max_prepared_transactions = 0  # zero disables the feature
    # Write-ahead log level (minimal, replica, or logical)
    wal_level = replica
    # Full page writes of non-critical updates
    wal_log_hints = on
    # Archiving settings
    archive_mode = on
    archive_command = 'test ! -f /mnt/pgsql-15/data/archive/%f && cp %p /mnt/pgsql-15/data/%f'
    # Maximum number of WAL sender processes
    max_wal_senders = 10
    # Number of log file segments retained for WAL
    wal_keep_segments = 8
    # Maximum number of replication slots
    max_replication_slots = 10
    # Collect timestamp of transaction commit
    track_commit_timestamp = off
    # Allow/disallow queries during recovery
    hot_standby = on
    # Timezone settings
    log_timezone = 'Asia/Ho_Chi_Minh'
    timezone = 'Asia/Ho_Chi_Minh'
    # Cluster identifier for process titles
    cluster_name = 'My Postgres Cluster'
    # Locale settings
    datestyle = 'iso, dmy'
    lc_messages = 'en_US.UTF-8'
    lc_monetary = 'vi_VN'
    lc_numeric = 'vi_VN'
    lc_time = 'vi_VN'
    # Maximum number of locks per transaction
    max_locks_per_transaction = 64
    
    /mnt/pgsql-15/data/pg_hba.conf
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    local   replication     all                                     trust
    host    replication     all             127.0.0.1/32            trust
    host    replication     all             ::1/128                 trust
    # Allow replication connections with specific authentication methods
    host replication replicator 127.0.0.1/32 md5
    # Allow connections from any IP address with md5 authentication
    host all all 0.0.0.0/0 md5
    
  • Tạo và phân quyền file log
    sudo -i
    touch /var/log/postgres.log
    chown postgres: /var/log/postgres.log
    
  • Tạo file init để quản lý postgres
    mkdir /opt/init.d
    cat << "EOT" > /opt/init.d/postgres_5432
    #!/bin/sh
    
    BIN_DIR="/opt/pgsql-15/bin"
    DATA_DIR="/mnt/pgsql-15/data/"
    LOG_DIR="/var/log"
    PORTGRESS_PORT="5432"
    
    case "$1" in
        start)
            $BIN_DIR/pg_ctl -D $DATA_DIR -l $LOG_DIR/postgres.log start
            ;;
        stop)
            $BIN_DIR/pg_ctl -D $DATA_DIR stop
            ;;
        restart)
            $BIN_DIR/pg_ctl -D $DATA_DIR reload
            ;;
        status)
            $BIN_DIR/pg_ctl -D $DATA_DIR status
            ;;
        *)
            echo "Please use start, stop, restart, status as first argument"
            ;;
    esac
    
    EOT
    chmod 755 -R /opt/init.d/
    
  • Start server postgreSQL
    su postgres -c '/opt/init.d/postgres_5432 start'
    

Những ngày bão lòng

Hơi khùng điên vì bây giờ mới là cuối tháng 11. Mọi năm mình viết những dòng tương tự như thế này vào cuối tháng 12 dương lịch, sau đó dành nguyên tháng 1 năm mới (cũng là tháng cuối cùng âm lịch) để suy nghĩ và lên kế hoạch cho năm tiếp theo. Nhưng năm nay là một năm đặc biệt, bởi mình mong nó kết thúc sớm. Và còn lúc nào phù hợp hơn trong quãng thời gian tới, khi hôm nay là ngày mình trúng tuyển Thạc sĩ. Không giống như mọi năm, mình chuẩn bị kỹ càng, ngồi design vài cái hình để tổng kết lại cả một năm dài nỗ lực phấn đấu, tin trúng tuyển đến chiều nay, và mình ngồi viết ra những dòng này.

Năm 2022 với mình là năm có nhiều thứ làm thay đổi mình. Có vui, có buồn, có hạnh phúc, có đau thương. Nhưng niềm vui, hạnh phúc đến thì như chuyện mình trúng tuyển hôm nay vậy, đều là những chuyện mình đã dự đoán được từ trước. Còn những nỗi đau buồn, đến bất ngờ, mãnh liệt và liên tục. Như câu nói mình tâm đắc khi nói về niềm đau, nỗi buồn: “Tổn thất này thật là lớn lao, đau thương này thật là vô hạn”. Nó đã phá đi những rào cản trong sâu thẳm con người mình, như vĩ thú thoát khỏi người ký sinh trong truyện Naruto, nó tàn phá mình thật nhiều, thật nhiều. Mình đã khóc, đã tức giận và đôi lúc còn thù hằn nữa. Mình đã kể nhiều về cuộc đời mình, về những điều mình đã và đang trải qua; lần thứ hai kể từ khi trưởng thành, mình cho một người khác quyết định một chuyện mà mình thấy rất quan trọng với riêng bản thân; mình nói về quan điểm sống và chân giá trị mà mình theo đuổi; nói về lý do tại sao mình để cái bio nghe thời sự thế, tại sao mình lại đeo đồng hồ tay phải mà không phải tay trái. Còn nhiều, nhiều nữa. Chưa bao giờ mình nói về bản thân mình nhiều như vậy, cho những người nghe mà mình nghĩ, sẽ không bao giờ có cơ hội nghe nó. Mình cũng đã nghe, nghe câu chuyện của mọi người. Câu chuyện của bạn mình, của các em mình, và có vài người mình còn không biết nữa. Đôi lúc, mình đã cho lời khuyên nữa. Mặc dù bản thân mình lúc đó, cũng chẳng lạc quan hay sáng suốt bao nhiêu. Nhưng, như bao lâu nay mình vẫn làm, mình vẫn giỏi lắng nghe và nói ra vài câu tỏ vẻ triết lý để làm đối phương dễ chịu đi đôi chút.

Nhưng rồi, mình vẫn là mình. Mình đã tốt lên và nghĩ về những điều mình đã làm được. Mình đã trở lại như trước, khỏe mạnh về cả tinh thần và thể chất. Hai tháng vừa rồi, mình đã chạy bộ tới gần 250 km, một quãng đường thật dài phải không. Mình vẫn lạc quan về tương lai vốn có của mình, dẫu cho trước mắt nhiều chông gai. Nhưng, giống như cố nhạc sĩ Trần Lập đã viết “Chặng đường nào trải bước trên hoa hồng, bàn chân cũng thấm đau vì những mũi gai”, mình vẫn tiếp tục cố gắng sống và cống hiến, như mình đã từng làm từ trước tới nay. Mình vẫn vậy, sống một cuộc đời không hối hận về điều gì. Và nhìn lại một năm 2022 đã qua, mình vẫn khẳng định, mình không hối hận vì điều gì cả. Mình đã cố gắng hết sức có thể, làm tất cả những việc mình cho là đúng. Mình đã biết và chấp nhận một điều nhỏ nhoi trên thế gian, chẳng có chi không phai tàn. Nỗi buồn của mình cũng theo đó mà tan biến theo thời gian thôi.

Điều quý giá nhất, là trong những thời điểm mình khó khăn nhất, những người bạn của mình vẫn luôn ở bên mình. Cảm ơn bạn T.Q, bạn Chè, hai bạn thật tốt và dũng cảm. Một nửa sức mạnh giúp mình vượt qua chính là năng lượng của hai bạn. Cảm ơn anh V.H, chị T.N, hai người “tiền bối”, một tĩnh lặng như tờ, một sôi nổi như ve đã ở bên và chia sẻ. Cảm ơn bạn L.T . T, bạn M.H, Tr . T, các em N.T, T . T, H.G, T.M đã ngồi nghe mình than thở – và ngồi nhậu với mình. Cảm ơn bạn P.T, em T.A, em T.V, C.G đã chia sẻ những câu chuyện nhỏ xinh. Đôi khi không phải chỉ nói ra mới làm nguôi ngoai, ngồi nghe cũng hiệu quả không hề kém gì cả. Gia đình thứ hai ở VNG cũng động viên và giúp đỡ mình không hề ít, mình hạnh phúc khi là đồng nghiệp với mọi người. Cuối cùng, cảm ơn tất cả mọi người đã đọc tới tận những dòng này. Dẫu rằng mọi người không tường tận, nhưng mọi người hãy tin, mình đã khỏe mạnh như trước, và tiếp tục tốt lên qua từng ngày nữa.

Trẻ và già

Một số loài thú có vú khi mà một con non được sinh ra, chúng phải đứng dậy ngay khi lọt lòng để nhận những giọt sữa đầu tiên từ con mẹ. Cũng có con ngay từ khi sinh ngay vào thời khắc mẹ nó chạy trốn khỏi kẻ đi săn. Nó phải đứng dậy, chạy thật nhanh theo mẹ nó hoặc bị bỏ lại và thành miếng mồi cho kẻ khác.

Nhưng tự nhiên hoang dã bản thân nó đã có quy luật như vậy. Và xã hội loài người chúng ta cũng có những quy luật riêng. Bởi lẽ, con người sinh ra là động vật yếu ớt, chúng ta phải nhận sự chăm bẵm của bậc sinh thành hay ít nhất là những người họ hàng thân thiết. Hoặc giả như bằng lý do khó nói nào đó, chúng ta được một vị thiền sư, một ni cô, một cô chú trong trung tâm xã hội nào đó nuôi lớn và dạy dỗ. Khoa học ngày càng tiên tiến, một số đứa bé sinh non tới vài tháng cũng sẽ khỏe mạnh với những liệu trình điều trị đặc biệt.

Sự sống của con người, tin chắc rằng đa số cũng tuân theo quy luật như vậy. Ta sinh ra và lớn lên trong những vòng tay của những đấng sinh thành, của cô dì, chú bác, ông bà nội ngoại, hay cả cố, sơ các thời kỳ. Ta lớn lên một chút, những người ngày nào còn đi thôi nôi ta thưa dần, không mừng sinh nhật ta được nữa. Tới tuổi thanh niên, ta theo bố mẹ đi mừng thọ, hỏi thăm họ hàng vào mỗi dịp tết. Ta nhanh nhẹn chúc thọ các bậc cao niên để được bao lì xì đỏ, nhưng rồi qua mỗi năm, ta thấy số lượng bao lì xì của ta ít dần, ít dần đi. Đến khi ra đời bươn chải, ta có công danh, sự nghiệp. Ta chả có mấy thời gian để săn sóc các bậc tiền nhân. Không phải chỉ ta không có thời gian, mà các vị ấy, cũng đã hết thời gian rồi nữa.

Ta ngầm định, ta chuẩn bị rằng, mọi người lớn hơn ta rồi sẽ dần dần đi về thế giới vĩnh hằng. Ta lo lắng cho họ, ta yêu thương họ thật nhiều khi còn có thể. Thậm chí, ta chuẩn bị cho những ngày đó. Ta rồi sẽ sinh con đẻ cái. Con ta, và con của anh chị em ta rồi sẽ lớn lên, con của bạn bè ta rồi cũng sẽ như vậy. Nói rộng ra, thế hệ mới rồi sẽ lớn lên và trưởng thành. Ta nuôi dạy chúng, ta cầu chúc cho chúng cả cuộc đời bình yên. Dạy cho chúng điều hay, lẽ phải, dạy cho chúng biết tôn sư trọng đạo, uống nước nhớ nguồn. Dạy cho chúng hãy yêu thương gia đình chúng, bố mẹ, anh chị em chúng khi còn có thời gian. Bởi chính ta đã từng như vậy. Tại ngay giờ phút này, ta ngầm định, ta rồi sẽ đi và chúng sẽ tiếp tục cuộc đời hạnh phúc của chúng.

Nhưng có bao giờ ta nghĩ, quy luật chỉ là quy luật và nó chưa được chứng minh là đúng hay chưa? Ta có bao giờ chuẩn bị, suy nghĩ về việc sự ra đi và ở lại của ta và chúng có sự xáo trộn chưa. Nó không còn đúng theo thứ tự như nó vẫn thường xảy ra. Một biến cố, một tai nạn, một hành động của ai đó không tốt đã mang nó đi khi bản thân ta đang bước những bước vững chãi của cuộc đời. Giây trước ta còn suy nghĩ phải dạy nó thế nào để trở thành người tốt, giây sau nó đã không thể nào tiếp thu được bài học đó của ta nữa.

Bản thân ta, không hề có sự chuẩn bị nào. Ta còn chưa kịp yêu thương nó, như ta yêu thương các bậc cao niên của mình nữa. Ta nghĩ rằng, hãy còn sớm, nó chưa đủ để hiểu hết sự yêu thương vô bờ bến ta dành cho nó. Ta cứ dửng dưng, bàng quang trước những tâm sự, sở thích của nó. Ta nuôi dạy nó hết lòng, ta muốn yêu thương nó theo cách của ta. Dù nhiều như vậy, ta vẫn chưa yêu thương nó đủ, không bao giờ là đủ yêu thương với những tâm hồn bé nhỏ. Ta đau lòng, ta phủ nhận sự thật nhói tâm can rằng ta quả thực, đã không thể yêu thương nó được nữa. Ta thấy ta chưa yêu thương nó đủ như ta đã từng nhận từ đấng sinh thành, ta thấy nó chưa được trải qua mối tình tuổi học trò, thời sinh viên hay thành gia lập nghiệp như ta nữa. Ta rơi lệ, thật nhiều. Ta khó lòng chấp nhận sự thật trái với cái quy luật thường tình như vậy. Dẫu ta biết, chuyện đó vẫn xảy ra, hàng tuần, thậm chí hàng ngày. Nhưng nó thật xa và xa, không liên quan tới ta nhiều lắm, ta chỉ cảm thán mà thôi. Ta không nhờ với xác suất nhỏ như vậy, nó lại xảy ra với chính ta, với chính nó.

Nhưng rồi, ta phải chấp nhận. Ta để nó đi, đi trong tâm trí ta và cà đi trong chính cõi của nó nữa. Ta để mình lắng lại, ta cố gắng quên đi những chi tiết đã in hằn trong tâm trí về nó. Bởi ta hiểu, ta biết, chính ta cũng có khi không đúng lời hẹn. Vậy thì làm sao trách được nó, một đứa bé ngây thơ có thể giữ được lời hẹn mà chính nó khi hứa với ta cũng không hình dung được, nó sẽ thực hiện như thế nào.

The Green Mile - Dặm xanh

Lại một bộ phim khác do Tom Hank thủ vai chính. Và như vậy, sau Morgan Freeman, Hank là người tiếp theo mà mình muốn xem phim do anh đóng, bởi những kịch bản mà anh chọn đa phần hợp với lối thưởng thức của mình. Trở lại bộ phim, Hank trong vai giám ngục Paul, là một giám ngục tại khu tử tù trong đại suy thoái của nước Mỹ. Ở cái thời mà Mỹ còn án tử hình và hình thức là thực hiện trên ghế điện. Đầu bộ phim có giải thích về cái tên Dặm xanh (Green Mile) và mình thấy nó thực sự rất có ý nghĩa. Cả bộ phim xoay quanh một số cuộc hành quyết tử tù, cùng sự xuất hiện của một con người siêu nhiên Coffey, người bị kết tội tử hình vì cưỡng hiếp và giết hại hai cô bé da trắng. Bộ phim nêu bật tính nhân văn của những con người tiễn đưa tử tù, rằng dù là tử tù, cái chết cũng là sự trừng phạt cuối cùng mà họ phải nhận. Việc của cai ngục là để họ không hoảng loạn, và có một giây phút ra đi nhanh chóng, bằng sức mạnh của luật pháp. Bộ phim cũng đi tới kết cục tốt đẹp, người xấu bị trừng trị, người tốt được thanh thản.

Mở đầu là cảnh tử tù Bill điên bị đưa vào khu tử tù, và Percy, một cai ngục bình thường với gia thế khủng lộ rõ cái tính độc ác và man rợ, có phần biến thái, anh ta thể hiện sự thích thú và mong muốn TỰ TAY THỰC HIỆN một cuộc hành quyết, sau khi tận mắt nhìn thấy người tử tù đầu tiên, Arlen Bitterbuck ra đi. Lược qua một số phân cảnh râu ria, ta lần đầu chứng kiến năng lực của Coffey, khả năng chữa bệnh bằng cách sờ vào vết thương, hút lấy nó và thả ra một đám côn trùng. Paul, bị bệnh nhiễm trùng bàng quan mãn tính, đã được Coffey chữa trị theo cách đó. Paul trả ơn anh bằng một ít bánh ngô do vợ anh làm.

Nhằm đẩy Percy đi đến nơi công tác khác, Paul và cộng sự đồng ý yêu cầu của anh ta, phân công thực hiện hành quyết người tiếp theo,Del. Anh này có một con chuột cưng tên là Ngài Jingles, anh mong muốn sau khi bị hành quyết thì nó có thể được đưa vào một rạp xiếc nào đó và Paul đã đồng ý nguyện vọng này. Trước ngày thi hành án, Percy tiếp tục vào chọc tức Eduard, giẫm chết con chuột yêu quý của anh và bỏ đi trong sự khoái trá. Trước sự đau đớn tột cùng của người tử tù sắp lìa đời, Coffey đã dùng năng lực của mình cứu con chuột. Đồng đội của Paul đã chứng kiến nó, và hiểu vì sao Paul lại hết bệnh. Ngày thi hành án, Coffey trông con chuột trong buồng giam của mình. Percy, người được phân công chịu trách nhiệm chính đã không nhúng nước miếng bọt biển để lên đầu tử tù. Và cái chết của Del diễn ra với sự kinh khủng và đau đớn tột cùng: vì không có miếng bọt biển, dòng diện chạy TỪ TỪ qua cơ thể người sống, con người như một điện trở với dòng điện cao bắt đầu tỏa nhiệt, bốc khói và cháy, mùi thịt cháy lan khắp căn phòng thi hành án, và trong một khoảng thời gian đó Del vẫn còn sống. Người chứng kiến tử tù nôn thốc tháo, chạy ào ào ra khỏi phòng xử án. Paul và đồng đội anh phẫn nộ, bởi hành vi sai luật của Percy và bởi hành vi thiếu tính nhân văn đáng ra phải có, tính nhân văn đó đã được duy trì ở Dặm xanh bấy lâu nay. Cách đó vài gian phòng, Coffey và con chuột, bằng năng lực của Coffey đã cảm nhận đầy đủ nỗi đau mà Del trải qua. Mình đã buồn nôn vì cái vẻ mặt của Percy, vì sự tưởng tượng mùi thịt cháy trong phòng. Phải khen ngợi diễn viên diễn vô cùng đạt.

Lại tiếp tục lược qua một vài chi tiết, Paul và đồng đội mạo hiểm tương lai nghề nghiệp và khả năng bị bỏ tù, đưa Coffey ra ngoài chữa bệnh ung thư não cho vợ của Moores - cấp trên Paul và là một người rất tốt. Điều khác lạ là lần này, Coffey không nôn ra đám côn trùng như các lần trước. Anh ta mang nó về nhà tù, truyền sang cho Percy khiến hắn ta phát điên, rút súng bắn chết Bill điên. Coffey truyền một phần năng lực của anh cho Paul, qua đó Paul thấy được, chính Bill là kẻ đã giết 2 đứa trẻ da trắng đầu phim, Coffey đã không cứu được chúng và để chúng chết trên tay mình, vì vậy nên anh mới bị kết tội. Paul ngỏ ý tha cho Coffey, bởi theo anh Coffey là hiện thân của chúa. Nhưng rồi cũng giống chúa trời, Coffey từ chối và bị lên ghế điện.

Cuối phim, Paul là một ông già hơn 80 tuổi, đi dạo cùng một bà bạn trong viện dưỡng lão và ghé vào một căn nhà hoang. Trong đó, thật bất ngờ, lại là nơi sống của Ngài Jingles. Nó đã sống hơn 40 năm, bằng một phần năng lực của Coffey phát ra. Paul cũng sẽ như vậy, anh không biết lúc nào anh mới được chết. Sự sống kéo dài của anh, liệu có phải là sự trừng phạt của Chúa bởi anh đã giết đi một con người là hiện thân của Chúa!!!

HCMUIT Thesis Template

Chào các bạn sinh viên. Mình là Sơn, sinh viên K12 của UIT. Giống như bao người bạn trong khóa (đa phần là bị bắt buộc do quy định hồi đó), mình vào làm khóa luận với rất nhiều nỗi lo, lo nhất là không hoàn thành. Nhưng rồi dưới sự động viên của thầy, mình cũng ráng ráng làm và bảo vệ thành công với số điểm khiêm tốn: 8.3. Việc nghiên cứu, tìm tòi đã khó, làm thế nào để trình bày đúng quy chuẩn, đẹp và đồng bộ, nhất là với những khóa luận làm 02 người càng khó khăn.

Lúc đó mình và bạn mình chưa biết đến Latex, chủ yếu sử dụng google doc để viết và microsoft word để format. Dùng những thứ này rất nhanh và tiện lợi, nhưng gặp phải nhiều vấn đề:

  • Đề tài mình làm phải viết nhiều công thức toán, viết công thức bằng google doc thì không hiệu quả còn word thì rất mất thời gian, khi copy dễ bị sai định dạng
  • Không đồng bộ format toàn khóa luận. Trên font này dưới font khác, trên size chữ 13 dưới 14, tiêu đề, caption loạn lên hết cả
  • Ghi trích dẫn khó và mất thời gian. Dù được thầy hướng dẫn sử dụng Endnote, nhưng config sao cho endnote làm việc được với word cũng khó, nhất là endnote ... crack.

Sau này học cao học, mình sử dụng latex và khám phá ra chân trời mới. Từ đó mình đều soạn thảo bằng latex. Nhiều em sinh viên sau mình hỏi về khóa luận viết như thế nào thì mình share lại cho mấy em file pdf cũ. Tuy nhiên nhiều bạn cũng không biết cách làm theo như thế nào. Cảm nhận mình thấy, Word khó sử dụng hơn Latex nhiều dù nó có giao diện thân thiện.

Trong giai đoạn rảnh rỗi, mình có tìm tòi và biết được source Latex của 1 bạn bên Bách khoa dùng viết khóa luận. Từ đó, mình đã customize cho phù hợp với require của UIT. Các bạn sinh viên khóa sau khi viết khóa luận có thể sử dụng nó như là một template chuẩn để viết, không phải lo nghĩ về format nó như thế nào nữa.

Các bạn có thể tham khảo sử dụng nó ở các nguồn sau đây:

Các vấn đề thắc mắc các bạn có thể hỏi trên phần Issues, mình sẽ cố gắng giải đáp.