Semua baris kode berikut valid, setidaknya di laptop saya, dan setidaknya terakhir saya mencobanya. Gunakan akal sehat Anda, dan mungkin setelah membaca hasil beberapa pencarian daring, sebelum menyalin-tempel kode-kode berikut.
Memasang Python dengan pengaturan khusus di pyenv
env \
PYTHON_BUILD_CACHE_PATH="/var/home/user/temp/" \
PYTHON_CFLAGS="-march=native -mtune=native" \
PYTHON_CONFIGURE_OPTS="--disable-gil --enable-loadable-sqlite-extensions --enable-experimental-jit --enable-optimizations --with-lto --without-doc-strings" \
PROFILE_TASK="-m test.regrtest --pgo -j0" \
pyenv install 3.13.5 -v
Mungkin perlu pasang clang, llvm, dan llvm-readobj yang bersesuaian agar kompilasi berhasil; beberapa package, contoh mpdecimal, mungkin diperlukan untuk versi Python terbaru. Info mendetail ada di pesan/log galat. Jangan lupa untuk letakkan keluaran dari perintah pyenv init di akhir ~/.bashrc. Pastikan di akhir proses, which python merujuk ke direktori .pyenv dan bukan /bin. Lihat referensi di Configure Python dan python-build ¶ Special environment variables . Untuk daftar opsi kompilasi SQLite, lihat Compile-time Options; Oh... dan entah apa penyebabnya, -DSQLITE_ENABLE_GEOPOLY gagal menyertakan modul geopoly.
SQLite dan apsw
Mengutip halaman dokumentasi apsw, "APSW lets you get the most out of the SQLite embedded relational database engine from Python, and the most out of Python from SQLite. APSW glues together the complete SQLite C API and Python’s C API, staying up to date with both SQLite and Python. …. Use APSW when you want to use SQLite fully, and have an improved developer experience."
- SQLite Source Repository, selayang pandang tentang kode sumber SQLite dan cara kompilasinya.
- How To Compile SQLite, untuk versi lebih mendetail.
- Installation and customization
apsw.
Setelah clone repo SQLite ke direktori bernama sqlite3 (dan mungkin juga memilih branch yang diinginkan), isi setup.apsw sesuai kebutuhan, contohnya:
[build]
# tidak usah fetch lagi
omit = ICU
enable = DBPAGE_VTAB,DBSTAT_VTAB,EXPLAIN_COMMENTS,COLUMN_METADATA,PREUPDATE_HOOK,FTS3,FTS3_PARENTHESIS,FTS4,FTS5,GEOPOLY,SESSION,MATH_FUNCTIONS,RTREE,STAT4,UNLOCK_NOTIFY
lihat Compile-time Options SQLite untuk info lebih mendetail. Lalu jalankan
python setup.py build
python setup.py install
Pilihan build-ext mungkin lebih cocok untuk kustomisasi lebih lanjut. Jalankan python setup.py build --help (atau versi build-ext --help) untuk info lebih detail. Beberapa flag SQLITE_OMIT_* membuat proses instalasi gagal (mengapa?). Package bisa dibuang lewat pip. Executable sqlite3 juga bisa dibuat (mungkin dengan kemampuan debugging) untuk membantu (menguji) program proyek Anda.
Mengunduh torrent Wikipedia
- Cek download.kiwix.org/zim/wikipedia.
- Tambahkan
.torrentdi akhir URL untuk mendapatkan berkas torrent, dan bukan zim.
Tambahan: untuk melihat perkembangan pembaruan berkas-berkas zim, lihat Zimfarm.
Mensubset fon matematika untuk situs
- Pasang
font-splitter. - Unduh fon, sepertinya berkas
otflebih berpeluang berhasil: tidak ada masalah di kerning, jarak antar baris, dan/atau lain sebagainya. font-splitter -c 128 font.otf. Pada konfigurasi standar (nilaichunksama dengan 256), semua glif di rentang Mathematical Alphanumeric Symbol akan dijadikan satu berkas fon yang besar. Nilaichunk128 (atau lebih kecil) membagi glif-glif di rentang itu ke beberapa fon berukuran lebih kecil. Besar nilai chunk berbanding terbalik dengan banyak berkas fon.- Gabung berkas CSS dan fon-fon yang didapat ke situs.
Mengunduh video dari URL berkas m3u8
ffmpeg -i "https://example.com/file.m3u8" -c copy downloaded.mp4
# atau
yt-dlp "https://example.com/file.m3u8" -o downloaded.mp4
Mengunduh video dari YouTube untuk pengarsipan
Terkadang saat mengerjakan tugas jurnalistik, seseorang perlu menyimpan salinan video YouTube sebagai (bukti) referensi untuk hasil pekerjaannya. Ini adalah contoh sederhana hal yang bisa dilakukan oleh yt-dlp. Kode juga dapat digunakan untuk mengunduh playlist. Beberapa argumen mungkin perlu ditambahkan saat ingin mengunduh: live streaming, seperti --concurrent-fragments; atau jenis video tertentu, seperti --write-subs.
https://www.youtube.com/watch?v=VideoID \
--cookies-from-browser "Firefox" \
-o "%(title)s - [%(id)s].%(ext)s" \
-S "res:720p" \
--ignore-errors \
--add-metadata \
--write-thumbnail \
--write-description \
--retries "infinite" \
--fragment-retries "infinite" \
--retry-sleep fragment:exp=1:20\
--default-search "ytsearch"
Meng-host (direktori) video yang bisa di-stream
Ada beberapa program yang bisa melakukan ini, tapi saya pakai rclone. Penyebabnya, program ini juga saya pakai untuk pencadangan data, jadi tidak perlu unduh/pasang program baru. Detail lihat di dokumentasi rclone serve http. VFS Chunked Reading perlu diatur agar video tidak lag ketika di-seek; setidaknya itu yang saya lakukan untuk server berupa laptop, streaming menggunakan VLC di perangkat lain, dan keduanya berada di jaringan WiFi yang sama.
rclone serve http /path/to/video_dir/ --addr :8888 \
--verbose --no-checksum --no-modtime --read-only \
--vfs-read-chunk-size 4M --vfs-read-chunk-streams 16
Mengatur agar terminal otomatis menggunakan tmux
Modifikasi dari pertanyaan di Stackoverflow ini. Mungkin pernyataan kondisionalnya bisa diringkas, tapi terlalu meringkas bisa membuat Anda tidak disuguhi apapun saat login (benar-benar tidak ada apapun, perlu masuk lewat shell untuk memperbaikinya). Simpan di .bashrc:
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
tmux a -t default || exec tmux new -s default;
fi