From 72db0488ebe85a0133a59ede62cd53098a27dbe7 Mon Sep 17 00:00:00 2001 From: novalagung Date: Mon, 25 Dec 2023 15:03:24 +0700 Subject: [PATCH 1/2] feat: enable ebook embed --- content/1-berkenalan-dengan-golang.md | 3 +- content/2-instalasi-golang.md | 2 +- content/A-array.md | 2 +- content/A-buffered-channel.md | 2 +- content/A-channel-range-close.md | 2 +- content/A-channel-select.md | 2 +- content/A-channel-timeout.md | 2 +- content/A-channel.md | 2 +- content/A-client-http-request-simple.md | 2 +- content/A-command-line-args-flag.md | 2 +- content/A-concurrency-pipeline.md | 2 +- content/A-data-type-conversion.md | 2 +- content/A-defer-exit.md | 2 +- content/A-encoding-base64.md | 2 +- content/A-error-panic-recover.md | 2 +- content/A-exec.md | 2 +- content/A-file.md | 2 +- content/A-fungsi-closure.md | 2 +- content/A-fungsi-multiple-return.md | 2 +- content/A-fungsi-sebagai-parameter.md | 2 +- content/A-fungsi-variadic.md | 2 +- content/A-fungsi.md | 2 +- content/A-go-command.md | 2 +- content/A-go-vendoring.md | 2 +- content/A-golang-generics.md | 2 +- content/A-gopath-dan-workspace.md | 2 +- content/A-goroutine.md | 2 +- content/A-hash-sha1.md | 2 +- content/A-hello-world.md | 2 +- content/A-instalasi-editor.md | 2 +- content/A-interface-kosong.md | 2 +- content/A-interface.md | 2 +- content/A-json.md | 2 +- content/A-komentar.md | 2 +- content/A-konstanta.md | 2 +- content/A-map.md | 2 +- content/A-method.md | 2 +- content/A-mongodb.md | 2 +- content/A-mutex.md | 2 +- content/A-operator.md | 2 +- content/A-perulangan.md | 2 +- content/A-pipeline-context-cancellation.md | 2 +- content/A-pointer.md | 2 +- content/A-properti-public-dan-private.md | 2 +- content/A-random.md | 2 +- content/A-reflect.md | 2 +- content/A-regex.md | 2 +- content/A-seleksi-kondisi.md | 2 +- .../A-setup-go-project-dengan-go-modules.md | 2 +- .../A-simplified-fan-in-fan-out-pipeline.md | 2 +- content/A-slice.md | 2 +- content/A-sql.md | 2 +- content/A-string-format.md | 2 +- content/A-strings.md | 2 +- content/A-struct.md | 2 +- content/A-time-duration.md | 2 +- content/A-time-parsing-format.md | 2 +- content/A-timer-ticker-scheduler.md | 2 +- content/A-tipe-data.md | 2 +- content/A-unit-test.md | 2 +- content/A-url-parsing.md | 2 +- content/A-variabel.md | 2 +- content/A-waitgroup.md | 2 +- content/A-web-server.md | 2 +- content/A-web-service-api.md | 2 +- content/B-ajax-json-payload.md | 2 +- content/B-ajax-json-response.md | 2 +- content/B-ajax-multi-upload.md | 2 +- content/B-cookie.md | 2 +- content/B-custom-mux-multiplexer.md | 2 +- content/B-download-file.md | 2 +- content/B-form-upload-file.md | 2 +- content/B-form-value.md | 2 +- content/B-golang-web-hello-world.md | 2 +- content/B-http-basic-auth.md | 2 +- content/B-http-method-basic.md | 2 +- content/B-middleware-using-http-handler.md | 2 +- content/B-render-html-string.md | 2 +- content/B-render-specific-html-template.md | 2 +- content/B-routing-http-handlefunc.md | 2 +- content/B-routing-static-assets.md | 2 +- ...erver-handler-http-request-cancellation.md | 2 +- content/B-simple-configuration.md | 2 +- content/B-template-actions-variables.md | 2 +- content/B-template-custom-functions.md | 2 +- content/B-template-functions.md | 2 +- content/B-template-render-html.md | 2 +- content/B-template-render-partial-html.md | 2 +- content/C-advanced-configuration-viper.md | 2 +- content/C-advanced-middleware-and-logging.md | 2 +- .../C-best-practice-configuration-env-var.md | 2 +- content/C-client-http-request-advanced.md | 2 +- content/C-convert-html-to-pdf.md | 2 +- content/C-cors-preflight-request.md | 2 +- content/C-csrf.md | 2 +- content/C-dockerize-golang.md | 2 +- content/C-echo-routing.md | 2 +- content/C-echo-template-rendering.md | 2 +- content/C-flag-parser.md | 2 +- content/C-go-project-layout.md | 2 +- content/C-golang-aws-s3.md | 2 +- content/C-golang-ftp.md | 2 +- content/C-golang-grpc-protobuf.md | 2 +- content/C-golang-jwt.md | 2 +- content/C-golang-ldap-authentication.md | 2 +- content/C-golang-protobuf-implementation.md | 2 +- content/C-golang-redis.md | 2 +- content/C-golang-ssh-sftp.md | 2 +- content/C-golang-sso-saml-sp.md | 2 +- content/C-golang-web-framework.md | 2 +- content/C-http-error-handling.md | 2 +- content/C-http-gzip-compression.md | 2 +- content/C-http-request-payload-validation.md | 2 +- content/C-http2-server-push.md | 2 +- content/C-https-tls.md | 2 +- .../C-parsing-http-request-payload-echo.md | 2 +- content/C-project-layout-structure.md | 2 +- content/C-read-write-excel-xlsx-file.md | 2 +- content/C-scraping-parsing-html.md | 2 +- .../C-secure-insecure-client-http-request.md | 2 +- content/C-secure-middleware.md | 2 +- content/C-securecookie.md | 2 +- content/C-send-email.md | 2 +- content/C-session.md | 2 +- content/C-singleflight.md | 2 +- content/C-write-pdf-file.md | 2 +- content/C-xml-parser.md | 2 +- content/D-golang-web-socket-chatting-app.md | 2 +- content/D-google-api-search.md | 2 +- ...ert-1mil-csv-record-into-db-in-a-minute.md | 2 +- content/images/cover_ebook_golang.png | Bin 0 -> 34066 bytes content/images/cover_ebook_python.png | Bin 0 -> 14609 bytes content/images/cover_ebook_rust.png | Bin 0 -> 19389 bytes content/partial/ebooks.html | 89 ++++++++++++++++++ content/partial/substack.html | 1 + etc/custom.css | 5 - 136 files changed, 221 insertions(+), 135 deletions(-) create mode 100644 content/images/cover_ebook_golang.png create mode 100644 content/images/cover_ebook_python.png create mode 100644 content/images/cover_ebook_rust.png create mode 100644 content/partial/ebooks.html create mode 100644 content/partial/substack.html diff --git a/content/1-berkenalan-dengan-golang.md b/content/1-berkenalan-dengan-golang.md index e416a159d..aac41f8dd 100644 --- a/content/1-berkenalan-dengan-golang.md +++ b/content/1-berkenalan-dengan-golang.md @@ -26,4 +26,5 @@ Pada buku ini (terutama semua serial chapter A) kita akan belajar tentang dasar --- - + + diff --git a/content/2-instalasi-golang.md b/content/2-instalasi-golang.md index 88e8ee6c3..dbce939e5 100644 --- a/content/2-instalasi-golang.md +++ b/content/2-instalasi-golang.md @@ -103,4 +103,4 @@ Jika pembaca tertarik untuk mencoba versi development Go, ingin mencoba fitur ya --- - + diff --git a/content/A-array.md b/content/A-array.md index 0bc7abfd1..fdf896b39 100644 --- a/content/A-array.md +++ b/content/A-array.md @@ -203,4 +203,4 @@ Parameter pertama keyword `make` diisi dengan tipe data elemen array yang diingi --- - + diff --git a/content/A-buffered-channel.md b/content/A-buffered-channel.md index cdac3e3dd..cee814d6c 100644 --- a/content/A-buffered-channel.md +++ b/content/A-buffered-channel.md @@ -74,4 +74,4 @@ Lebih detailnya mengenai fungsi `time.Sleep()` dan `time.Second` dibahas pada ch --- - + diff --git a/content/A-channel-range-close.md b/content/A-channel-range-close.md index 1bffce2ad..5a316c7f3 100644 --- a/content/A-channel-range-close.md +++ b/content/A-channel-range-close.md @@ -78,4 +78,4 @@ Dan sebaliknya pada fungsi `printMessage(ch <-chan string)`, channel `ch` hanya --- - + diff --git a/content/A-channel-select.md b/content/A-channel-select.md index 4ea4c87ad..0dc97208e 100644 --- a/content/A-channel-select.md +++ b/content/A-channel-select.md @@ -87,4 +87,4 @@ Cukup mudah bukan? --- - + diff --git a/content/A-channel-timeout.md b/content/A-channel-timeout.md index e88578441..66f9bdd75 100644 --- a/content/A-channel-timeout.md +++ b/content/A-channel-timeout.md @@ -74,4 +74,4 @@ Muncul output setiap kali ada penerimaan data dengan delay waktu acak. Ketika ti --- - + diff --git a/content/A-channel.md b/content/A-channel.md index d63fd9c2b..0cae9dc06 100644 --- a/content/A-channel.md +++ b/content/A-channel.md @@ -165,4 +165,4 @@ fmt.Println(message) --- - + diff --git a/content/A-client-http-request-simple.md b/content/A-client-http-request-simple.md index 999cbfa5f..5e8775307 100644 --- a/content/A-client-http-request-simple.md +++ b/content/A-client-http-request-simple.md @@ -179,4 +179,4 @@ Kita telah mempelajari bagaimana cara membuat http request sederhana untuk kirim --- - + diff --git a/content/A-command-line-args-flag.md b/content/A-command-line-args-flag.md index 401d76c2b..235d3949c 100644 --- a/content/A-command-line-args-flag.md +++ b/content/A-command-line-args-flag.md @@ -138,4 +138,4 @@ Kegunaan dari parameter terakhir method-method flag adalah untuk memunculkan hin --- - + diff --git a/content/A-concurrency-pipeline.md b/content/A-concurrency-pipeline.md index 7300a989d..f9292f0a0 100644 --- a/content/A-concurrency-pipeline.md +++ b/content/A-concurrency-pipeline.md @@ -543,4 +543,4 @@ Ok sekian untuk chapter panjang ini. --- - + diff --git a/content/A-data-type-conversion.md b/content/A-data-type-conversion.md index c423d6523..271bc98c1 100644 --- a/content/A-data-type-conversion.md +++ b/content/A-data-type-conversion.md @@ -251,4 +251,4 @@ Kombinasi `switch` - `case` bisa dimanfaatkan untuk deteksi tipe konkret data ya --- - + diff --git a/content/A-defer-exit.md b/content/A-defer-exit.md index 69baca607..772ce0266 100644 --- a/content/A-defer-exit.md +++ b/content/A-defer-exit.md @@ -137,4 +137,4 @@ Meskipun `defer fmt.Println("halo")` ditempatkan sebelum `os.Exit()`, statement --- - + diff --git a/content/A-encoding-base64.md b/content/A-encoding-base64.md index 5accb3b3a..90204a0d7 100644 --- a/content/A-encoding-base64.md +++ b/content/A-encoding-base64.md @@ -89,4 +89,4 @@ fmt.Println(decodedString) --- - + diff --git a/content/A-error-panic-recover.md b/content/A-error-panic-recover.md index ab9e52584..c666c7591 100644 --- a/content/A-error-panic-recover.md +++ b/content/A-error-panic-recover.md @@ -218,4 +218,4 @@ Pada kode di atas, bisa dilihat di dalam perulangan terdapat sebuah IIFE untuk r --- - + diff --git a/content/A-exec.md b/content/A-exec.md index 48d9d5b60..3e42f2f21 100644 --- a/content/A-exec.md +++ b/content/A-exec.md @@ -59,4 +59,4 @@ Selain `.Output()` ada sangat banyak sekali API untuk keperluan komunikasi denga --- - + diff --git a/content/A-file.md b/content/A-file.md index 49def3014..c562378a2 100644 --- a/content/A-file.md +++ b/content/A-file.md @@ -160,4 +160,4 @@ func main() { --- - + diff --git a/content/A-fungsi-closure.md b/content/A-fungsi-closure.md index 0ee522fa9..4571e2cb3 100644 --- a/content/A-fungsi-closure.md +++ b/content/A-fungsi-closure.md @@ -178,4 +178,4 @@ Output program: --- - + diff --git a/content/A-fungsi-multiple-return.md b/content/A-fungsi-multiple-return.md index 131ff118a..f8afc2f28 100644 --- a/content/A-fungsi-multiple-return.md +++ b/content/A-fungsi-multiple-return.md @@ -105,4 +105,4 @@ Fungsi `math.Pow()` digunakan untuk memangkat nilai. `math.Pow(2, 3)` berarti 2 --- - + diff --git a/content/A-fungsi-sebagai-parameter.md b/content/A-fungsi-sebagai-parameter.md index 90c9fa18b..8b7b7a84d 100644 --- a/content/A-fungsi-sebagai-parameter.md +++ b/content/A-fungsi-sebagai-parameter.md @@ -106,4 +106,4 @@ Variabel `result` bernilai `true` karena string `"ang"` merupakan bagian dari st --- - + diff --git a/content/A-fungsi-variadic.md b/content/A-fungsi-variadic.md index eaf48b82b..20c243ea0 100644 --- a/content/A-fungsi-variadic.md +++ b/content/A-fungsi-variadic.md @@ -153,4 +153,4 @@ Output program: --- - + diff --git a/content/A-fungsi.md b/content/A-fungsi.md index 35e61c0c2..7722750a0 100644 --- a/content/A-fungsi.md +++ b/content/A-fungsi.md @@ -176,4 +176,4 @@ Di dalamnya terdapat proses validasi nilai variabel pembagi, jika nilainya adala --- - + diff --git a/content/A-go-command.md b/content/A-go-command.md index 83525d4c8..6b7236d23 100644 --- a/content/A-go-command.md +++ b/content/A-go-command.md @@ -106,4 +106,4 @@ Command ini digunakan untuk vendoring. Lebih detailnya akan dibahas di akhir ser --- - + diff --git a/content/A-go-vendoring.md b/content/A-go-vendoring.md index a43c9ba56..cafc99234 100644 --- a/content/A-go-vendoring.md +++ b/content/A-go-vendoring.md @@ -77,4 +77,4 @@ Untuk penggunaan vendor apakah wajib? menurut saya tidak. Sesuaikan kebutuhan sa --- - + diff --git a/content/A-golang-generics.md b/content/A-golang-generics.md index 9369576b1..5383b3053 100644 --- a/content/A-golang-generics.md +++ b/content/A-golang-generics.md @@ -280,4 +280,4 @@ Ok, sekian pembahasan mengenai generics. Jika ada update perihal generic API aka --- - + diff --git a/content/A-gopath-dan-workspace.md b/content/A-gopath-dan-workspace.md index 7ec61c06c..8e626c48a 100644 --- a/content/A-gopath-dan-workspace.md +++ b/content/A-gopath-dan-workspace.md @@ -41,4 +41,4 @@ Struktur di atas merupakan struktur standar workspace Go. Jadi pastikan penamaan --- - + diff --git a/content/A-goroutine.md b/content/A-goroutine.md index 5b0941937..824ab4b12 100644 --- a/content/A-goroutine.md +++ b/content/A-goroutine.md @@ -93,4 +93,4 @@ Bisa dilihat pada kode di atas, untuk menampung inputan text `trafalgar d law`, --- - + diff --git a/content/A-hash-sha1.md b/content/A-hash-sha1.md index 19db57e11..268ec928e 100644 --- a/content/A-hash-sha1.md +++ b/content/A-hash-sha1.md @@ -104,4 +104,4 @@ Metode ini sering dipakai untuk enkripsi password user. Salt dan data hasil hash --- - + diff --git a/content/A-hello-world.md b/content/A-hello-world.md index 9bfde32ba..f24c07876 100644 --- a/content/A-hello-world.md +++ b/content/A-hello-world.md @@ -131,4 +131,4 @@ Contoh statement di atas akan menghasilkan output: **Hello world! how are you**. --- - + diff --git a/content/A-instalasi-editor.md b/content/A-instalasi-editor.md index 89aebec69..31d971aeb 100644 --- a/content/A-instalasi-editor.md +++ b/content/A-instalasi-editor.md @@ -47,4 +47,4 @@ indent_size = 8 --- - + diff --git a/content/A-interface-kosong.md b/content/A-interface-kosong.md index b1b3ad63d..0c815c704 100644 --- a/content/A-interface-kosong.md +++ b/content/A-interface-kosong.md @@ -154,4 +154,4 @@ for _, each := range fruits { --- - + diff --git a/content/A-interface.md b/content/A-interface.md index f12f39e9a..df635aa12 100644 --- a/content/A-interface.md +++ b/content/A-interface.md @@ -183,4 +183,4 @@ Pada chapter [A.23. Pointer](/A-pointer.html) dijelaskan bahwa method pointer bi --- - + diff --git a/content/A-json.md b/content/A-json.md index 73bbcd034..b42628800 100644 --- a/content/A-json.md +++ b/content/A-json.md @@ -138,4 +138,4 @@ Output: --- - + diff --git a/content/A-komentar.md b/content/A-komentar.md index 31718e5bf..260c972f2 100644 --- a/content/A-komentar.md +++ b/content/A-komentar.md @@ -53,4 +53,4 @@ Sifat komentar ini sama seperti komentar inline, yaitu sama-sama diabaikan oleh --- - + diff --git a/content/A-konstanta.md b/content/A-konstanta.md index 5cd147327..e46d64f88 100644 --- a/content/A-konstanta.md +++ b/content/A-konstanta.md @@ -108,4 +108,4 @@ const three, four string = "tiga", "empat" --- - + diff --git a/content/A-map.md b/content/A-map.md index 81b21e9c9..8df37f276 100644 --- a/content/A-map.md +++ b/content/A-map.md @@ -179,4 +179,4 @@ var data = []map[string]string{ --- - + diff --git a/content/A-method.md b/content/A-method.md index 32afeb085..00bef3fba 100644 --- a/content/A-method.md +++ b/content/A-method.md @@ -156,4 +156,4 @@ Lebih detailnya akan dibahas pada chapter selanjutnya. --- - + diff --git a/content/A-mongodb.md b/content/A-mongodb.md index 1bd5de2c0..5add6a3b5 100644 --- a/content/A-mongodb.md +++ b/content/A-mongodb.md @@ -333,4 +333,4 @@ if len(result) > 0 { --- - + diff --git a/content/A-mutex.md b/content/A-mutex.md index ef2573598..a39cd79f1 100644 --- a/content/A-mutex.md +++ b/content/A-mutex.md @@ -178,4 +178,4 @@ func main() { --- - + diff --git a/content/A-operator.md b/content/A-operator.md index 59c546482..7232048c3 100644 --- a/content/A-operator.md +++ b/content/A-operator.md @@ -99,4 +99,4 @@ Template `\t` digunakan untuk menambahkan indent tabulasi. Biasa dimanfaatkan un --- - + diff --git a/content/A-perulangan.md b/content/A-perulangan.md index 89d5a947c..dcf8641d8 100644 --- a/content/A-perulangan.md +++ b/content/A-perulangan.md @@ -163,4 +163,4 @@ Pada `for` bagian dalam, terdapat seleksi kondisi untuk pengecekan nilai `i`. Ke --- - + diff --git a/content/A-pipeline-context-cancellation.md b/content/A-pipeline-context-cancellation.md index d61c5a459..816e9cebf 100644 --- a/content/A-pipeline-context-cancellation.md +++ b/content/A-pipeline-context-cancellation.md @@ -454,4 +454,4 @@ Perbedannya ada pada penerapan *cancellation*-nya. Pada contoh ini kita tidak me --- - + diff --git a/content/A-pointer.md b/content/A-pointer.md index 30112cefb..a19d75b22 100644 --- a/content/A-pointer.md +++ b/content/A-pointer.md @@ -107,4 +107,4 @@ Nilai variabel `number` berubah menjadi `10` karena perubahan yang terjadi di da --- - + diff --git a/content/A-properti-public-dan-private.md b/content/A-properti-public-dan-private.md index aec5e0708..2225b9a66 100644 --- a/content/A-properti-public-dan-private.md +++ b/content/A-properti-public-dan-private.md @@ -336,4 +336,4 @@ Dalam sebuah package diperbolehkan ada banyak fungsi `init()` (urutan eksekusiny --- - + diff --git a/content/A-random.md b/content/A-random.md index e1b56825b..bfdda3d00 100644 --- a/content/A-random.md +++ b/content/A-random.md @@ -123,4 +123,4 @@ Dengan fungsi di atas kita bisa dengan mudah meng-generate string random dengan --- - + diff --git a/content/A-reflect.md b/content/A-reflect.md index 5be4db6ec..90d695449 100644 --- a/content/A-reflect.md +++ b/content/A-reflect.md @@ -172,4 +172,4 @@ Jika eksekusi method diikuti pengisian parameter, maka parameternya harus dituli --- - + diff --git a/content/A-regex.md b/content/A-regex.md index 4ef767fa6..92dd3d943 100644 --- a/content/A-regex.md +++ b/content/A-regex.md @@ -171,4 +171,4 @@ Pada contoh di atas, ekspresi regexp `[a-b]+` digunakan sebagai kriteria split. --- - + diff --git a/content/A-seleksi-kondisi.md b/content/A-seleksi-kondisi.md index 10d8f70b2..13ec1b6c4 100644 --- a/content/A-seleksi-kondisi.md +++ b/content/A-seleksi-kondisi.md @@ -209,4 +209,4 @@ if point > 7 { --- - + diff --git a/content/A-setup-go-project-dengan-go-modules.md b/content/A-setup-go-project-dengan-go-modules.md index 83e992a3c..64b2981b4 100644 --- a/content/A-setup-go-project-dengan-go-modules.md +++ b/content/A-setup-go-project-dengan-go-modules.md @@ -50,4 +50,4 @@ O iya, sebenarnya selain Go Modules, setup project di Go juga bisa menggunakan ` --- - + diff --git a/content/A-simplified-fan-in-fan-out-pipeline.md b/content/A-simplified-fan-in-fan-out-pipeline.md index bc8042795..2a66cfa2b 100644 --- a/content/A-simplified-fan-in-fan-out-pipeline.md +++ b/content/A-simplified-fan-in-fan-out-pipeline.md @@ -340,4 +340,4 @@ Nah dari sini semoga cukup jelas ya bedanya kalau dari sisi performa. Inilah pen --- - + diff --git a/content/A-slice.md b/content/A-slice.md index a85f4be45..73db03e3d 100644 --- a/content/A-slice.md +++ b/content/A-slice.md @@ -264,4 +264,4 @@ fmt.Println(cap(bFruits)) // cap: 2 --- - + diff --git a/content/A-sql.md b/content/A-sql.md index 809fdbda9..c359a65b6 100644 --- a/content/A-sql.md +++ b/content/A-sql.md @@ -344,4 +344,4 @@ Selengkapya mengenai driver yang tersedia bisa dilihat di [https://github.com/go --- - + diff --git a/content/A-string-format.md b/content/A-string-format.md index 3c75e69d4..8cb1fb1ab 100644 --- a/content/A-string-format.md +++ b/content/A-string-format.md @@ -276,4 +276,4 @@ fmt.Printf("%%\n") --- - + diff --git a/content/A-strings.md b/content/A-strings.md index 5eb0e25a9..b32b3406e 100644 --- a/content/A-strings.md +++ b/content/A-strings.md @@ -164,4 +164,4 @@ fmt.Println(str) // "EAT!" --- - + diff --git a/content/A-struct.md b/content/A-struct.md index b8483e3d3..a0f3086ef 100644 --- a/content/A-struct.md +++ b/content/A-struct.md @@ -416,4 +416,4 @@ var num Number = 12 --- - + diff --git a/content/A-time-duration.md b/content/A-time-duration.md index 1b22adbe5..b28d41441 100644 --- a/content/A-time-duration.md +++ b/content/A-time-duration.md @@ -128,4 +128,4 @@ duration := time.Duration(n) * time.Second --- - + diff --git a/content/A-time-parsing-format.md b/content/A-time-parsing-format.md index feeedb257..472d9dfd5 100644 --- a/content/A-time-parsing-format.md +++ b/content/A-time-parsing-format.md @@ -220,4 +220,4 @@ Kode di atas menghasilkan error karena format tidak sesuai dengan skema data yan --- - + diff --git a/content/A-timer-ticker-scheduler.md b/content/A-timer-ticker-scheduler.md index c1ed68e20..1de080bdf 100644 --- a/content/A-timer-ticker-scheduler.md +++ b/content/A-timer-ticker-scheduler.md @@ -203,4 +203,4 @@ Ketika user tidak menginputkan apa-apa dalam kurun waktu 5 detik, maka akan munc --- - + diff --git a/content/A-tipe-data.md b/content/A-tipe-data.md index e3868829c..345a854da 100644 --- a/content/A-tipe-data.md +++ b/content/A-tipe-data.md @@ -126,4 +126,4 @@ Nantinya kita akan sering bertemu dengan `nil` setelah masuk pada pembahasan-pem --- - + diff --git a/content/A-unit-test.md b/content/A-unit-test.md index 8f5ff84aa..1591a8666 100644 --- a/content/A-unit-test.md +++ b/content/A-unit-test.md @@ -195,4 +195,4 @@ Fungsi `assert.Equal()` digunakan untuk uji perbandingan. Parameter ke-2 dibandi --- - + diff --git a/content/A-url-parsing.md b/content/A-url-parsing.md index 0e395223e..fba827aa4 100644 --- a/content/A-url-parsing.md +++ b/content/A-url-parsing.md @@ -45,4 +45,4 @@ Selain itu, query yang ada pada url akan otomatis diparsing juga, menjadi bentuk --- - + diff --git a/content/A-variabel.md b/content/A-variabel.md index cd19206f6..e81cb6b31 100644 --- a/content/A-variabel.md +++ b/content/A-variabel.md @@ -189,4 +189,4 @@ Dan lagi, mungkin banyak yang akan bingung. Ketika sudah masuk ke pembahasan mas --- - + diff --git a/content/A-waitgroup.md b/content/A-waitgroup.md index 1aefa87b9..c276bb28a 100644 --- a/content/A-waitgroup.md +++ b/content/A-waitgroup.md @@ -78,4 +78,4 @@ Kombinasi yang tepat antara `sync.WaitGroup` dan channel sangat penting, keduany --- - + diff --git a/content/A-web-server.md b/content/A-web-server.md index 0224b3ebb..4b919ce61 100644 --- a/content/A-web-server.md +++ b/content/A-web-server.md @@ -131,4 +131,4 @@ Sampai chapter ini yang kita pelajari adalah dasar-dasar pemrograman Go, dibahas --- - + diff --git a/content/A-web-service-api.md b/content/A-web-service-api.md index 4e279e225..f71104bcf 100644 --- a/content/A-web-service-api.md +++ b/content/A-web-service-api.md @@ -148,4 +148,4 @@ Data ID yang ingin dicari melalui endpoint /user, ditulis dengan ?id=B002 yang b --- - + diff --git a/content/B-ajax-json-payload.md b/content/B-ajax-json-payload.md index 7655d3b9d..3feb0f332 100644 --- a/content/B-ajax-json-payload.md +++ b/content/B-ajax-json-payload.md @@ -198,4 +198,4 @@ Gunakan fasilitas Developer Tools pada Chrome untuk melihat detail dari request. --- - + diff --git a/content/B-ajax-json-response.md b/content/B-ajax-json-response.md index 7c70cdaf2..e4182b8fa 100644 --- a/content/B-ajax-json-response.md +++ b/content/B-ajax-json-response.md @@ -91,4 +91,4 @@ Kode di atas hasilnya ekuivalen dengan penggunaan `json.Marshal`. --- - + diff --git a/content/B-ajax-multi-upload.md b/content/B-ajax-multi-upload.md index f9fb8a19f..25ecbaa57 100644 --- a/content/B-ajax-multi-upload.md +++ b/content/B-ajax-multi-upload.md @@ -206,4 +206,4 @@ Cek apakah file sudah terupload. --- - + diff --git a/content/B-cookie.md b/content/B-cookie.md index ebe60edea..8457a0057 100644 --- a/content/B-cookie.md +++ b/content/B-cookie.md @@ -132,4 +132,4 @@ Objek cookie memiliki beberapa property, beberapa di antaranya: --- - + diff --git a/content/B-custom-mux-multiplexer.md b/content/B-custom-mux-multiplexer.md index dec0f2e46..4937008e4 100644 --- a/content/B-custom-mux-multiplexer.md +++ b/content/B-custom-mux-multiplexer.md @@ -88,4 +88,4 @@ Jika ada keperluan untuk menambahkan middleware baru lainnya, cukup registrasika --- - + diff --git a/content/B-download-file.md b/content/B-download-file.md index 0e8ecd6ef..6e9a771a1 100644 --- a/content/B-download-file.md +++ b/content/B-download-file.md @@ -226,4 +226,4 @@ Jalankan program, akses rute `/`. List semua file dalam folder `files` muncul di --- - + diff --git a/content/B-form-upload-file.md b/content/B-form-upload-file.md index f63630abd..19cb842eb 100644 --- a/content/B-form-upload-file.md +++ b/content/B-form-upload-file.md @@ -178,4 +178,4 @@ Jalankan program, test hasilnya lewat browser. --- - + diff --git a/content/B-form-value.md b/content/B-form-value.md index f3bd3162c..524af9480 100644 --- a/content/B-form-value.md +++ b/content/B-form-value.md @@ -138,4 +138,4 @@ OK, sekarang coba jalankan program yang telah kita buat, dan cek hasilnya. --- - + diff --git a/content/B-golang-web-hello-world.md b/content/B-golang-web-hello-world.md index a6562088c..d3e0f5086 100644 --- a/content/B-golang-web-hello-world.md +++ b/content/B-golang-web-hello-world.md @@ -159,4 +159,4 @@ Ada banyak lagi property dari struct `http.Server` ini, yang pastinya akan dibah --- - + diff --git a/content/B-http-basic-auth.md b/content/B-http-basic-auth.md index f51af4a0d..e96975c86 100644 --- a/content/B-http-basic-auth.md +++ b/content/B-http-basic-auth.md @@ -233,4 +233,4 @@ $ curl -X GET --user batman:secret http://localhost:9000/student?id=s001 --- - + diff --git a/content/B-http-method-basic.md b/content/B-http-method-basic.md index da82fd83e..6b78af953 100644 --- a/content/B-http-method-basic.md +++ b/content/B-http-method-basic.md @@ -60,4 +60,4 @@ Jika method yang digunakan adalah selain POST dan GET, maka sesuai source code d --- - + diff --git a/content/B-middleware-using-http-handler.md b/content/B-middleware-using-http-handler.md index 40b1d93f4..78b9e343e 100644 --- a/content/B-middleware-using-http-handler.md +++ b/content/B-middleware-using-http-handler.md @@ -178,4 +178,4 @@ Dibanding metode pada chapter sebelumnya, dengan teknik ini kita bisa sangat mud --- - + diff --git a/content/B-render-html-string.md b/content/B-render-html-string.md index 4f6b3088c..e4e7cd6e5 100644 --- a/content/B-render-html-string.md +++ b/content/B-render-html-string.md @@ -64,4 +64,4 @@ Lakukan tes dan lihat hasilnya. --- - + diff --git a/content/B-render-specific-html-template.md b/content/B-render-specific-html-template.md index 565ce3b15..b718d6543 100644 --- a/content/B-render-specific-html-template.md +++ b/content/B-render-specific-html-template.md @@ -82,4 +82,4 @@ Lakukan tes pada program yang telah kita buat, kurang lebih hasilnya seperti pad --- - + diff --git a/content/B-routing-http-handlefunc.md b/content/B-routing-http-handlefunc.md index df9418c90..96137b344 100644 --- a/content/B-routing-http-handlefunc.md +++ b/content/B-routing-http-handlefunc.md @@ -82,4 +82,4 @@ Dalam routing, handler bisa berupa fungsi, closure, ataupun anonymous function; --- - + diff --git a/content/B-routing-static-assets.md b/content/B-routing-static-assets.md index 7739e49c8..7d86261d9 100644 --- a/content/B-routing-static-assets.md +++ b/content/B-routing-static-assets.md @@ -92,4 +92,4 @@ Routing static assets menjadi valid, karena file yang di-request akan cocok deng --- - + diff --git a/content/B-server-handler-http-request-cancellation.md b/content/B-server-handler-http-request-cancellation.md index e115c5855..0bdc344ad 100644 --- a/content/B-server-handler-http-request-cancellation.md +++ b/content/B-server-handler-http-request-cancellation.md @@ -124,4 +124,4 @@ curl -X POST http://localhost:8080/ -H 'Content-Type: application/json' -d '{}' --- - + diff --git a/content/B-simple-configuration.md b/content/B-simple-configuration.md index d4c3aad76..fcb9e3a08 100644 --- a/content/B-simple-configuration.md +++ b/content/B-simple-configuration.md @@ -240,4 +240,4 @@ Kita akan membahas solusi dari beberapa masalah di atas pada chapter terpisah, y --- - + diff --git a/content/B-template-actions-variables.md b/content/B-template-actions-variables.md index 7c8372600..0554773e2 100644 --- a/content/B-template-actions-variables.md +++ b/content/B-template-actions-variables.md @@ -253,4 +253,4 @@ Untuk seleksi kondisi yang kondisinya adalah bersumber dari variabel bertipe `bo --- - + diff --git a/content/B-template-custom-functions.md b/content/B-template-custom-functions.md index 36460ba0c..3a5c1abdc 100644 --- a/content/B-template-custom-functions.md +++ b/content/B-template-custom-functions.md @@ -114,4 +114,4 @@ Chapter selanjutnya akan membahas lebih detail mengenai penggunaan method `Parse --- - + diff --git a/content/B-template-functions.md b/content/B-template-functions.md index cab20e218..838036d77 100644 --- a/content/B-template-functions.md +++ b/content/B-template-functions.md @@ -237,4 +237,4 @@ Output: --- - + diff --git a/content/B-template-render-html.md b/content/B-template-render-html.md index 5cedee036..bc7ff3a58 100644 --- a/content/B-template-render-html.md +++ b/content/B-template-render-html.md @@ -145,4 +145,4 @@ Jalankan aplikasi untuk test hasil. --- - + diff --git a/content/B-template-render-partial-html.md b/content/B-template-render-partial-html.md index 2bb85139a..c9fd0bc9f 100644 --- a/content/B-template-render-partial-html.md +++ b/content/B-template-render-partial-html.md @@ -235,4 +235,4 @@ Jalankan aplikasi untuk test hasilnya. --- - + diff --git a/content/C-advanced-configuration-viper.md b/content/C-advanced-configuration-viper.md index ba24c88c1..f3dddc65f 100644 --- a/content/C-advanced-configuration-viper.md +++ b/content/C-advanced-configuration-viper.md @@ -156,4 +156,4 @@ Penggunaan fasilitas watcher memerlukan tambahan 3rd party library [fsnotify](ht --- - + diff --git a/content/C-advanced-middleware-and-logging.md b/content/C-advanced-middleware-and-logging.md index 041771b0a..dc6c98a18 100644 --- a/content/C-advanced-middleware-and-logging.md +++ b/content/C-advanced-middleware-and-logging.md @@ -277,4 +277,4 @@ Satu kata, *cantik*. --- - + diff --git a/content/C-best-practice-configuration-env-var.md b/content/C-best-practice-configuration-env-var.md index b0bbf9e8e..4f2423163 100644 --- a/content/C-best-practice-configuration-env-var.md +++ b/content/C-best-practice-configuration-env-var.md @@ -163,4 +163,4 @@ Mungkin dari sini temen-temen bisa lanjut ke chapter [C.35. Dockerize Aplikasi G --- - + diff --git a/content/C-client-http-request-advanced.md b/content/C-client-http-request-advanced.md index b6c29f0ae..a30e94432 100644 --- a/content/C-client-http-request-advanced.md +++ b/content/C-client-http-request-advanced.md @@ -195,4 +195,4 @@ Jalankan aplikasi server, buka prompt terminal/CMD baru, lalu jalankan aplikasi --- - + diff --git a/content/C-convert-html-to-pdf.md b/content/C-convert-html-to-pdf.md index 1472738ed..9c870e5d7 100644 --- a/content/C-convert-html-to-pdf.md +++ b/content/C-convert-html-to-pdf.md @@ -178,4 +178,4 @@ Cara ini cocok digunakan untuk konversi data HTML yang isinya muncul pada saat p --- - + diff --git a/content/C-cors-preflight-request.md b/content/C-cors-preflight-request.md index d04af8b08..f0befd430 100644 --- a/content/C-cors-preflight-request.md +++ b/content/C-cors-preflight-request.md @@ -298,4 +298,4 @@ Berikut adalah list konfigurasi yang bisa dimanfaatkan dari library ini. --- - + diff --git a/content/C-csrf.md b/content/C-csrf.md index 9d3bde1b7..c67301b90 100644 --- a/content/C-csrf.md +++ b/content/C-csrf.md @@ -226,4 +226,4 @@ Lewat teknik pencegahan ini, bukan berarti serangan CSRF tidak bisa dilakukan, s --- - + diff --git a/content/C-dockerize-golang.md b/content/C-dockerize-golang.md index 425310e30..1db7ac212 100644 --- a/content/C-dockerize-golang.md +++ b/content/C-dockerize-golang.md @@ -326,4 +326,4 @@ docker container stop my-container-hello-world --- - + diff --git a/content/C-echo-routing.md b/content/C-echo-routing.md index c52cd8f1d..7ab757dc0 100644 --- a/content/C-echo-routing.md +++ b/content/C-echo-routing.md @@ -285,4 +285,4 @@ Jalankan aplikasi, lalu coba akses `http://localhost:9000/static/layout.js`. --- - + diff --git a/content/C-echo-template-rendering.md b/content/C-echo-template-rendering.md index c766d50c6..256207ae8 100644 --- a/content/C-echo-template-rendering.md +++ b/content/C-echo-template-rendering.md @@ -143,4 +143,4 @@ Proses parsing dan rendering tidak di-handle oleh echo, melainkan menggunakan AP --- - + diff --git a/content/C-flag-parser.md b/content/C-flag-parser.md index 0297f961b..334fd9006 100644 --- a/content/C-flag-parser.md +++ b/content/C-flag-parser.md @@ -342,4 +342,4 @@ Cobra merupakan library yang dirancang khusus untuk development aplikasi berbasi --- - + diff --git a/content/C-go-project-layout.md b/content/C-go-project-layout.md index 1b07a3301..a228a9229 100644 --- a/content/C-go-project-layout.md +++ b/content/C-go-project-layout.md @@ -19,4 +19,4 @@ Library FTP client yang kita gunakan adalah [github.com/jlaffaye/ftp](https://gi --- - + diff --git a/content/C-golang-aws-s3.md b/content/C-golang-aws-s3.md index 0658d1c14..e9942e828 100644 --- a/content/C-golang-aws-s3.md +++ b/content/C-golang-aws-s3.md @@ -443,4 +443,4 @@ Hasilnya: --- - + diff --git a/content/C-golang-ftp.md b/content/C-golang-ftp.md index 001d7e657..f88fab978 100644 --- a/content/C-golang-ftp.md +++ b/content/C-golang-ftp.md @@ -299,4 +299,4 @@ Jalankan aplikasi, cek hasilnya. Untuk memvalidasi bahwa file di client dan di s --- - + diff --git a/content/C-golang-grpc-protobuf.md b/content/C-golang-grpc-protobuf.md index 5a3e20e57..5ea103eec 100644 --- a/content/C-golang-grpc-protobuf.md +++ b/content/C-golang-grpc-protobuf.md @@ -547,4 +547,4 @@ OK, jika anda membaca sampai baris ini, berarti anda telah berhasil sabar dalam --- - + diff --git a/content/C-golang-jwt.md b/content/C-golang-jwt.md index e58c6114f..e92e74dd3 100644 --- a/content/C-golang-jwt.md +++ b/content/C-golang-jwt.md @@ -413,4 +413,4 @@ Semua berjalan sesuai harapan. Agar lebih meyakinkan, coba lakukan beberapa test --- - + diff --git a/content/C-golang-ldap-authentication.md b/content/C-golang-ldap-authentication.md index 53784e430..237d50c05 100644 --- a/content/C-golang-ldap-authentication.md +++ b/content/C-golang-ldap-authentication.md @@ -323,4 +323,4 @@ if err != nil { --- - + diff --git a/content/C-golang-protobuf-implementation.md b/content/C-golang-protobuf-implementation.md index ea2f38339..612b1ca6a 100644 --- a/content/C-golang-protobuf-implementation.md +++ b/content/C-golang-protobuf-implementation.md @@ -396,4 +396,4 @@ Pada chapter selanjutnya kita akan belajar tentang penerapan gRPC dan protobuf. --- - + diff --git a/content/C-golang-redis.md b/content/C-golang-redis.md index 1c89b5cc8..5f5644018 100644 --- a/content/C-golang-redis.md +++ b/content/C-golang-redis.md @@ -169,4 +169,4 @@ Error, ini karena data yang disimpan hanya di retain sesuai `ttl` yaitu 3 detik, --- - + diff --git a/content/C-golang-ssh-sftp.md b/content/C-golang-ssh-sftp.md index 00ffbeeee..e58437822 100644 --- a/content/C-golang-ssh-sftp.md +++ b/content/C-golang-ssh-sftp.md @@ -270,4 +270,4 @@ Jalankan aplikasi untuk melihat hasilnya. --- - + diff --git a/content/C-golang-sso-saml-sp.md b/content/C-golang-sso-saml-sp.md index b952d2b76..6077fadae 100644 --- a/content/C-golang-sso-saml-sp.md +++ b/content/C-golang-sso-saml-sp.md @@ -317,4 +317,4 @@ Salah satu benefit metode inisialisasi ini: ketika ada banyak aplikasi SP (misal --- - + diff --git a/content/C-golang-web-framework.md b/content/C-golang-web-framework.md index 48206b450..a6dea00ef 100644 --- a/content/C-golang-web-framework.md +++ b/content/C-golang-web-framework.md @@ -63,4 +63,4 @@ Ok, saya rasa cukup untuk pembahasan kali ini. Semoga bermanfaat --- - + diff --git a/content/C-http-error-handling.md b/content/C-http-error-handling.md index c548b3298..f99bbf275 100644 --- a/content/C-http-error-handling.md +++ b/content/C-http-error-handling.md @@ -111,4 +111,4 @@ Silakan ubah kode `fmt.Sprintf("%d.html", report.Code)` sesuai format nama halam --- - + diff --git a/content/C-http-gzip-compression.md b/content/C-http-gzip-compression.md index a34804b99..1877096b3 100644 --- a/content/C-http-gzip-compression.md +++ b/content/C-http-gzip-compression.md @@ -147,4 +147,4 @@ e.Logger.Fatal(e.Start(":9000")) --- - + diff --git a/content/C-http-request-payload-validation.md b/content/C-http-request-payload-validation.md index c012b4fd8..44b933104 100644 --- a/content/C-http-request-payload-validation.md +++ b/content/C-http-request-payload-validation.md @@ -115,4 +115,4 @@ Nah, pada chapter selanjutnya kita akan belajar cara membuat custom error handle --- - + diff --git a/content/C-http2-server-push.md b/content/C-http2-server-push.md index 7080cbc2f..a579eaebb 100644 --- a/content/C-http2-server-push.md +++ b/content/C-http2-server-push.md @@ -168,4 +168,4 @@ Selain dari kolom protocol, penanda server push bisa dilihat juga lewat grafik * --- - + diff --git a/content/C-https-tls.md b/content/C-https-tls.md index 59be91cbc..114646cc7 100644 --- a/content/C-https-tls.md +++ b/content/C-https-tls.md @@ -137,4 +137,4 @@ Warning `NET::ERR_CERT_AUTHORITY_INVALID` muncul ketika mengakses sebuah website --- - + diff --git a/content/C-parsing-http-request-payload-echo.md b/content/C-parsing-http-request-payload-echo.md index ac9183edc..a9ea605c9 100644 --- a/content/C-parsing-http-request-payload-echo.md +++ b/content/C-parsing-http-request-payload-echo.md @@ -121,4 +121,4 @@ curl -X GET http://localhost:9000/user?name=Joe&email=nope@novalagung.com --- - + diff --git a/content/C-project-layout-structure.md b/content/C-project-layout-structure.md index f90cf9aa7..4829ad37e 100644 --- a/content/C-project-layout-structure.md +++ b/content/C-project-layout-structure.md @@ -119,4 +119,4 @@ Ok, sampai sini saja pembahasan mengenai project layout, selanjutnya silakan men --- - + diff --git a/content/C-read-write-excel-xlsx-file.md b/content/C-read-write-excel-xlsx-file.md index 804e36926..a36a39d13 100644 --- a/content/C-read-write-excel-xlsx-file.md +++ b/content/C-read-write-excel-xlsx-file.md @@ -198,4 +198,4 @@ Jalankan aplikasi untuk mengecek hasilnya. --- - + diff --git a/content/C-scraping-parsing-html.md b/content/C-scraping-parsing-html.md index a80a07641..63927e370 100644 --- a/content/C-scraping-parsing-html.md +++ b/content/C-scraping-parsing-html.md @@ -196,4 +196,4 @@ Jalankan aplikasi, lihat hasilnya. --- - + diff --git a/content/C-secure-insecure-client-http-request.md b/content/C-secure-insecure-client-http-request.md index e071fb0cf..a17558d69 100644 --- a/content/C-secure-insecure-client-http-request.md +++ b/content/C-secure-insecure-client-http-request.md @@ -191,4 +191,4 @@ Tujuan mengapa penulis tambahkan sub chapter **Konfigurasi SSL/TLS Lanjutan** in --- - + diff --git a/content/C-secure-middleware.md b/content/C-secure-middleware.md index bb2b0ff3b..fc2bd8bff 100644 --- a/content/C-secure-middleware.md +++ b/content/C-secure-middleware.md @@ -155,4 +155,4 @@ Lebih mendetailnya silakan langsung cek halaman official library secure di https --- - + diff --git a/content/C-securecookie.md b/content/C-securecookie.md index b57be771a..a0ff98dd3 100644 --- a/content/C-securecookie.md +++ b/content/C-securecookie.md @@ -159,4 +159,4 @@ http.SetCookie(c.Response(), cookie) --- - + diff --git a/content/C-send-email.md b/content/C-send-email.md index 70bac2dfa..d180b017d 100644 --- a/content/C-send-email.md +++ b/content/C-send-email.md @@ -200,4 +200,4 @@ Daaaaannnnn ... cukup itu saja penyesuaiannya agar bisa kirim email via konfigur --- - + diff --git a/content/C-session.md b/content/C-session.md index f8f211988..b982518ed 100644 --- a/content/C-session.md +++ b/content/C-session.md @@ -316,4 +316,4 @@ Tujuan dari kode yang kita tulis kurang lebih sebagai berikut. --- - + diff --git a/content/C-singleflight.md b/content/C-singleflight.md index 120966145..47c0f84d4 100644 --- a/content/C-singleflight.md +++ b/content/C-singleflight.md @@ -241,4 +241,4 @@ Cukup berguna bukan? Dengan adahnya singleflight API ini, beban backend akan sed --- - + diff --git a/content/C-write-pdf-file.md b/content/C-write-pdf-file.md index bef41d30d..eee38dc33 100644 --- a/content/C-write-pdf-file.md +++ b/content/C-write-pdf-file.md @@ -93,4 +93,4 @@ Coba jalankan aplikasi untuk melihat hasilnya. Buka generated file `file.pdf`, i --- - + diff --git a/content/C-xml-parser.md b/content/C-xml-parser.md index 2d2872880..278815e88 100644 --- a/content/C-xml-parser.md +++ b/content/C-xml-parser.md @@ -280,4 +280,4 @@ Jalankan aplikasi, lihat hasilnya. --- - + diff --git a/content/D-golang-web-socket-chatting-app.md b/content/D-golang-web-socket-chatting-app.md index 1d46d9416..d0d6eca02 100644 --- a/content/D-golang-web-socket-chatting-app.md +++ b/content/D-golang-web-socket-chatting-app.md @@ -420,4 +420,4 @@ Ketika salah satu user leave, pesan **User XXX: disconnected** akan di-broadcast --- - + diff --git a/content/D-google-api-search.md b/content/D-google-api-search.md index 7c1beed8a..dcc3549e4 100644 --- a/content/D-google-api-search.md +++ b/content/D-google-api-search.md @@ -331,4 +331,4 @@ Error di atas muncul karena, host `localhost` belum didaftarkan pada API console --- - + diff --git a/content/D-insert-1mil-csv-record-into-db-in-a-minute.md b/content/D-insert-1mil-csv-record-into-db-in-a-minute.md index 95d284c47..87693f0ea 100644 --- a/content/D-insert-1mil-csv-record-into-db-in-a-minute.md +++ b/content/D-insert-1mil-csv-record-into-db-in-a-minute.md @@ -348,4 +348,4 @@ Praktek pada chapter ini sifatnya adalah POC, jadi sangat mungkin diperlukan pen --- - + diff --git a/content/images/cover_ebook_golang.png b/content/images/cover_ebook_golang.png new file mode 100644 index 0000000000000000000000000000000000000000..3484458c47821955be42c548911f89a5074c6bc0 GIT binary patch literal 34066 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 ZKfmR0IYDRTuPy)p002ovPDHLkV1i(5*y8{I literal 0 HcmV?d00001 diff --git a/content/images/cover_ebook_python.png b/content/images/cover_ebook_python.png new file mode 100644 index 0000000000000000000000000000000000000000..50ee400f0d360343dc3df6e33535a7372e71456e GIT binary patch literal 14609 zcmbWebySqm_b*Hd4?ROm&J5k%Jq#U^5>g`}(jlQVJiyRMrwE9IARr|v4kD?5wB!&L zNJ)tx7k}@2-}SreuJ^m{y62C1_St)%&)#S6C(b@+O`@@pHYFJ|86F-UrLGRj6c3LO z#KR*h1_-Y?o3EPut}p$@2IiVLN4UJa{NC!kw6ye(nX#Wf;@cj=TTWbkXvr*d>9215 zyGt`JTCzI}lk1)mu{uIuE91Z47x?1Jdsj^ir6g~sDpqqx>Xw?^sEg!QjA@vm%(vp; z?VhS9meR9s5;hug2_`aMGViau3bfiwZKXPWZ+qgWC%ZlN#uF*}W1wa8k=BO4;_lqo zj4h(Zl=s_Tm8TB zUDPujx7{VC=BRYuzmmLrCU?LT!1wDFZL`yytz&kkb!3ozEm!Z8Z=*JL^1-7w4%!Nc zod&1xYisaIP!iszITakLaa^{I?6qm%mP*@r@aEZ-1?laS3NMR~zMPnk9Ocur@~yY4 zi05Z5^JWb{wCOi?iz?-=6HVWfPJh}#dpH#}KG*DU>*RymfFDzQxgzzPw;sR+wh(<{ zAp3oF%eJ$5Sx`Gu^SniD(yXe<#rji|i!9-q2dC4bZLH=^x4+UPYdHq>=Anm5q)Rmh zWjQU;4tc-L`zO9l%E-FHt9}9*o2;TAb@1M8o-CeIu35>vk=Sr&k2ot#8oUw~1WB zCjqn1S7s7jwH#^h=sdJKkE+7EF(eMAFd>1;6ud?bWY3~m0wLPdgP>6^we&VU0p!tW zQwv7~;+`AB@>dm?c)T!k2)*jKIEj5qYgGmbn1V*P>-lsJ8Ua=0@$gL-xQGisPE zo`+Ls2;_Ym!B|*iE1%*6i>zn?&{H-)$&e)5)Y4 zbdmY$zQ`YM+$J;5XOgZAIcLEu17OZUJo4K`Aq;!PjssssMODDJ2D$FZ^R#@=ttt0u zh?x5Daaz02jOjC0yhi#;BtAxarQV2|lI zOxo&9qVO+lfrH#_r#nw5I-`#IGix#x_SV1LT0WRgT6AW@)Zo2OXncF;%O{)0)GMd( z4aQ!=Mw{z+|LE?H_BZvOVS7)N?Y(JmJYX;y&zR^Do^xj#VzlTc8wgnTyj$2Xi&TMy z>26ERHV?*m|7seRKgD|={0gz)rTxX3sO+y_UxM+e6+~lby1A$CZwsRBm~{VC^L&?^ zpZnr*<S1j7dd3e5dpzzux7E?!Z>Hj7aiGcEeV2Fj^KO~w$dww2>b2&|+C?|}fz z7O{LT+ao+!EHM}+`BeJmXz_^d&vO}2Pz)g4B}4w{JKLly#+&-_mqf#=`-5Nm_T_kt-u|Umq`4RYBDd9~4m1 zz$;@H2q(a?eXALb7HhKz+C5rRp78SVFFj25?2Wk+j1d!TsCIyuFJpUUnmX9OZ zGM5+7vf!`^ErDRGV*UhshsBq}CyYV$3=-myy+7 z&5`0Z4sph=hfGUppPnc8^r(%>9Ph3y%1k|jrFfqyN>J&CKAK`Pin(;$~JLcF3Q@67uZ8i;{NA>(Rjb$zV@>Chd?t zp|A+OeUUVlyb5NrVfDps<>h?(LX__=fwK!ISQZM{P)9YE33>{s^QZ&bk;8@E`454H z)vHMT+rRG$WI5hNjM+grUPfhLJjO%6tZ8PoX#l`uhi}#$#fCN87Hj1h8XTy1r48lA z*`BeDzo_4cy=wYkL8r{_DO@$7-mUGo3-io-P`*mY1MZjKp-LaXhhWRb>PX9qiWcCT zoN=U^{+r5LWDbXi{ycV?V}c!C$f3?c8L*8F8QJ=m6%T!9ZWU~l8K3lnv?bp?mm|RA ziSpeibsD3783n-%@;a5K$T~N$As>D={76V!*0vNQ|kuxjyYqJ;=V^JzrYr~} zTKC;oj&3~bC}6`v#26(-Xxs^&s8?Da=~FmNtu)Xw|GHwn1EI@m9k21Yx?X3kJYOm;dY)J zG8Km`W_L0?dXFSP&d<`bNby&YfA?fbURc`_uwVnnO36o3`1-h7K}T+Iq=uiFhX!lq za(D!JZ}P~3#1O5bP|)#iYGd(!TGg^uZ^{D;)E0zlx$AYiQVU#&LU|zDG9A(uI8aSa zbFVAY-8R`j*Do*m*lxo&pXWNJH|Xi3#MHaD)*}3Tr>8WS{y17EV;AV&g$*6u#LwPP z01wAKfAXU5sef9GhaEjjNK+#Mr!6=v3wWfEH#a8c=bl&HaYYfq9=JCfG^UaYixYPn zxpKmu#q#^y1kv7KhT%t{<056Rv&%CkJzjn6-C*zM>k$z2;A$6AUypB<0mB}z1_9J^ zAp{WQ9NJI$7r8z=n6$5^`lgQns>Wo0Vw!Q(CRWCcCj;|@i}cfC=l=$1Sgj|0m^Xk8 z)E0bb;43It-fKaqt+=qka=T#|U?>PUj{5Xa5^Su0acFaySBrbglT>FCX~hUJa`ox$ zA)95%pP(_Du6~&x78^^7mhSoqaUV=RG_YI9H=G1+>l;_t1C$*NR)2B8fL!)>6rxe(RpL>ur=EepL-kuT zEx<{~p-E}(J(xRz{4$xs$vZ=S9keq(t78q=#sBn@5uaw9(= zlM;HYX5~+!zgnQR9r$c>O5;odCg}HjV1Yfvi_A{Qu;GS-7T)Pwc%xH!fF#QmG1$iZ zh~)Gk0ou&+xjW-8e`{5%TJkF@e;fa_k@Ht_&d^^P_f_S58bJegXrw;dg&xW2;dlUY zzGt+Ll~&v2$bMbh&wfWz;LbgVmErg6+Je!_h0BntH~466@ong%vcm8Y*t3^x>3S?V z{=_W8&r20eSU4yeBt!M-`JvcYza+j_6QTG#=|U!M{zt2b(b0BM=Z0QHi~rW*dS{HY8r_~q`$9?o5n$Yqy+>0VYX7sUiUNPY=wSLSH-8^ zL#g?%aS$rnOXTN762dDf(Gr3LWOt;srRVZeXt9K|LX0AzN5topxqY%WKH<_V_+_&# zLBO&nYpAxA#Ov+AFfW=rDNz?CMjp{@xxKE<=h1N6xz-ruXZ|J2)#t_zFfi;Yu16_E zIq01;C#V+o^LSxog0$?5YY@=iHO0Zv-Tt8Febg}GJ$Lr6=a>5r*^olv;f?^UokxD; z^QE|KzAcLgqpf0Emzm&!Y5MNm!YMeg-m-glC!%-)$nkaX3N`XtQeCnDA&8BD=D z=?6URD#|8E;vvllt5uJg%S7yjS5FBO5m-#|2q%G(@nngh#Nzj-3ULU7#sSwa%2M-a z!jXxQW$_V67PUp&FyN>fCa&SQjfwc(5#b2*ODvmo#>cqbuH|rJR8byi`^*h?JJr0i z1@k@Q8o8)u2YBzvBKcBFS+E{TFJ*iA-Q2w#P?+zO&1OTg4R70a5^hC_u~ye#MLGgz zcKSjsDK8EZKY1)Yu_tH&GgP|cBhtDD?QY$Hr(i5?cc||YgW^8nR6z1pxsIbIB!FA@ za&kW`N&6KOi$@JzVQxB&;qQgE#aZgsJ2-BZ2Qwt1Px@IRsHinU4_K)rSLE~DRK5(} z(4crVK=TH-R%mzXppjqL5E5$e@ZHx4*&&@pqYv+A*-SX(Fh9+hAwQl3j?#hSx9yHe z3-!c3oy=)ABQt4^cvytR2Yh^j8aMC5l;{rU<}PY!`U}0cvz`xVSU3siJX(EFYHM!l zG7`V&x<+@T{ek22%Wcf+^L_I4rs_{h>MzFeo+tls)o)=_l3^RG{=Ah}nH%gMJnSOS z_CYWF_vD@3SEC|bJO9g%!+e(pYdjhTM2XBlqpTBXt-gwMRdW;?*smMAaD4kCP56JS z=l>_8u0v{0!1H4+ah%IL)D-T!yYXzU63N9qc|i}+bQ;rzOeL*wd-?7=)^|j2Nel~q z5N6|MJ-wWHSw^$FQ?ih@E(X!OuEME?lCt^8fJ9B?`jx7ml%#Uj^9Disd)ts7-AKlX zL*0d~4Mmhe0_mSbreMof>V zE^$eveCKke{3V3_1@>G+Pw5V6t!0bnHSEcfQaYKEE?`sS3&42sB5>!OvXcR_-%1A= zq1t|!moahm#YyN%f1SkhCU0|6>m-d}7uPMCM+ptDe>eg3y*QqI*DLqa2qsk?^pw{? zA@>o+gbM2WW3*InKG1YeuM?cSEmE%hr^4Lr`>9_c=)UrGPg>%v$$-;|wsMP~BNDp^cOeb#yQiV*Z1S<#-#N9=VAJ@)ePE}Y z#W+lRI*XEOHR`(rj(^we7*0FR|G|xPp-J^G_!4+@C-_J(POaLMYl-mn5Ponjh3q&U zX*%*s>|q0%|KeKl_f}gOIja%*X{Y5*zMO@Dfmx6I=|Mi zJI-mG*jV;@b$9BS9-xjCJrXXOHYVx2C5j7Nl4sjY!sdLc6+)MW3`(!`I9+6bE-l?A zR}qniGQ4X-tYvZ?VAV=+sUDS#HM4UW7moSkfp~m#H>mOi8l=XOSg9v8nw_N|vUBq* z)ftrPRa_@{EMPPx5&x}@6{+W~i7EUn{}&+=`tbOG^-LrvWRxDKC|=K7Ka5q_H7 zPitiJ!A3p2IW9|XqzSYL!{x`ZHCpX7FHanGoq$n&E2RHES(y7VX7zSiw#&B<`g%i# zC82BmqN4>y*eu=G)DK7to(6T%jg5R>v z{=C?7;CCW7_jD=K$i-8IX0Z}5Rrj?;In9$_drLln>9g?7k+ZR5&5+Mmb)Yu$(DI;* zXr`~2jOA;K=N-vNJBrU;Ld~UiSOw7It1VjZo)q}>fsSBiqh#T+_G(5M%`5y@%F%bI zqtcA~#9L4V5gYTC*mKOSB$&+c!#k|QUZkUSgQ%NH!X10@pl%dhZn7$?=>AGMLf+( zMZ0l#Il^<74Y6LCJY_4d1l^O?haSgTnCVrs*z2)mwoI+s)8Po0ByCS5 z)Y?)Pea7hBv2@lks!#;-N)&e%v9i7%R*xrv?z7KTz{@K@z&PGZJ+a9v`? zSX*D?n|dZr&(t@RX!O48KW>~v_;uS>A5HAtR>1qn6~;lVJKsXCgizao2F-AN&E6Lv zp|+zT<~DT*EEa+rAf2K>`96kkv?qAgLK?J*zjWp)vW=NOkAyUl2g z1A{nEf*cpO37K?|2~lQ=IHt-E);~kj^eU3l*aye?FBiz59opg#J(~5tz1ORzCe@q_ zVxu9>nlMglhix`JRY6CV#X|3^&wA4A(sE~WT8xN}XK^hRfLfWL9`hP$=*#!XE;nTx zz=)^dBd$xanF%;qx-5IL!i&1WTqZ?myPk|_N5C_=#te}f*}jf)Uf%<{g<>gn zt@6S50$dk(MxW~M9sEwrdn^`i5F$yMy2Uk3?N7s7H^+;6Fk_N6VP%B8)X}(4vbwD! z=lJCMyTXu>@%Ta4J5{eZ8l(2R@2?rz#;c|eFaoWnq>)X*3H3Goj!f~Z5wB^5HQo5V zfscf-msh1Bef{zhg*(zS`Tilh<4z^tTC?ACX+-$WeDR=fs5$zclzC3>@VDR3tQNM-Or zN0Zp~Z4yAd3L`6XkDpLIIp1^uP72<-?fiM{F_i`F{7M^vKe5=#1XKKWy?;^5hQ-@e zdrfl~{U)4%9-=Uw8x-ahQuzX0ZD{x8r$HBL1V?k3#8l>%3 z^_3I=Yvr-f;&Hcw!!?(|BtW>&ul_9`SgVYTEm2f8*$t_wV@47hZBrQWfbN8VMjB+l zW$!7nI@Y%bOL%n6BL^5udj_-;yg4s^MC{NCAf!h2bfO)R)on2u-UX4VnGa(+M35Ex z-^aqF`9OD0pqb<}{_fCk*fh$G?gQg)^a^O~bpvfP!LA1jC0;2LK$0(AE#HiCLsrYg ziYe0&#AW@p?F{p2g?=Uydk|5I=XwntE7nf!C{#K2a+KsU04lP<9k zLYsFe%0RZl2*0>Rp0m31tcco*lzG0y`>&DWU#XR1uEHe8rQ=)MXET=`^P+!K5=0q3 zHE7gGzb}acH6M$7Cf^>WE9Y^ZaY@J_EN1>RJY}|x zsY>|bre03u>G?Af3cZ;zhm03hVQ&_?Vp+g{i(gz59G13HRMPVKX*95X@JHU}?Y5HX^1{TT8AX)@_J$r8_9UJF4I}6T$07kGzrF z*r!kZoqi&KvYgEwI9%$scOBaecuQu=OBYAo;o))(E7NsF+Ov$+OL2m~i*1pcq_qF< zDtu`nmhiuh++bI8TE_qB^zJ{)=>N};0skXVTu1jqX`aMK9)%dcsFjE zj`##5zVOq5pGyz?ZOeI0JhUSJ9d9o|ZgC^4ojVq9Fa9;r&`h>rRIoxzGwhbW>y2J< zO8)oRPSICnlcNmI&p*h%O_%T_+}y|yjOGXmp~y(6i6Uw!p2&Ei0lm?CAjTpu!1q>= zL~8Skr8ViwNF#YhW7RrM_hTFr%-SQ7)ZS`2E3tP-JVdfT506wKr)VvQOxNBaC^nL^ zA1_g!{>i_-wS#)B0GCUkR7e@p)I$H7wwU3nM$$;%o_7xR!r#?;{@S%<;`c@>QLmfM^~1Wh;8cm-ISS#h3|is z)T!-VSzZ+ch> z^kL~PS@rzWkRePD`BTR?u_m`rb$`qhenkeyc~mtSyXQ4 zUtm|$eXn(g#FS9PgZ3sE>QR7!0H5CxqgPCHK;KL)xjT#Dr%)A^iKodEN{>?aH}0ho zOAR4d$2OWy0r~XupV(X4`p3@f3HI7>C~|aBBlX;BZbny?_wGeNM{p))xbHy*JCKq?X@R( zz$>ZIKuH5P*9-jF&WC{*jR1@uMTro=9~D3^yPXK}9sx)^Zk~H(0JzGO#+{uOjltLq z09ti+=Cjg&?S~-?F8^rp4GJhYL*}~#b1noED`dxO)YkQs;UnFRJ zZ4Y2U6hq+V*Y>dS0Pl4KuI)9#v7}JsKezrLH50aBhHJ@8mZutMY+^TjiGc{z3U+Wn zk(zX(}l*9zM|ba%DE4Dp7ve_ip^}$cMn6#sl~)2%>2S+))FJ zVjhG>v=&?{tcFG0QWLZ1>~?RE{gWRh*R3_5_TZ8mUtBJA|9MaJEz-l?y*bs|q%eXm zPEQ~3A>WR-#lU7nG{W=exJ69yfVD;TpSUF74UL#g?ULiKe-ay8S4k147cucP)d1wY0(J(Hh`pQ<&UBBOo~v_~0OWg+%h46KpHk2p zeoUps3ti8V$ZoMmoRcW-dOl-ey7fP*If)C+bn~+!y1{=-BHjd_Ni=`;>|(ak>L1XQ z+bTrj^Hvs{Narz!h@zL_0UnnlhS1plWIEih9w_UIdE1Z^J>sX?4wQ0v5FY zhy#+eiN1Q^A_VP@fEvAiHXrXLCH)xCpX!v}S&kvD4B1ZB0e32T=Cve$%`Vj@X8=`( z+a+Zrd#PWxX2xnA3}2)q`Ote0ys6vT%BevOseDfGk`hNKAyL)Wwf%UP_K+bC-pPv; zUa_&RN=)>{j&E!GYsZ>)7xwJN#}r`+-@&HWbG}~>Jg0zu`BJYR4Lsyy9VCS69k|~w zk-diZ#0FmS-In63^kGqEql3>KlO(8DSBheb_OB;U3d2r!cfQ(ZAww+1Flzrg93lGX zqE`UHX@%v8y{Ly8jm-0e$%PW#ld69ALY3yLMCJZR15tKT+Fv7F?4;Mvw z+T&J0)rWe6isW~KMQCxd{r1;6B93&vbwRbLC8&}y8yip%b}`wb>s5g|BY=L{ENMS^ z7g_?mVg3upri7(>F@aeUM8W^e(VsofG6|(s1v)C`o8_VJe|?|^gIFSjG{8SWw_pPS4m6@lf!OyH-b^0$7H1pHzY<05Gb-!~;OkI_qG0z3@& zyB;;m9T-r)q!-rm8y$P7jKE$cn(4c96%xY{bsAv2UzQ~~B?7B}a-*01Y}_1OJHUsa zfFWb$s>)MZs~;Ms17?^BhL4NJAJrD_(m{zKWu!|l%j;S@iJ@pbX#D(hN|$3zhgeJ_ z71U;YuU~M>&chSJLHA@vIPw)e{LV=NRR`4M#8E26*J!_NzoNp^S~Gz%@S{44iBAdH zwo_trg!;~k0;4lIo%?IWTbVJl@)&?{OKa%1#T^B$TXeD*V4Ey8L)fNQDgC=nxXCgM zQ70&Y^lqwq@Q`Eb{_gCnil24Nh%r7fAgbL3f=$P1I1}MjOF^*zu?_Du3f5 z?dD7CPwJ|3ck^=apy+2&K!xDr!`%TPNm>Z>ITK}IIJ00<@8R6)Kh zQ}Sp)C|Fur&OUdT>Z#x)IEAv$thufEOn-|XjodEQ4l$4QkX00xgrH0IfONP0`>B6z z;7GG+Eu9ZML94-c;(={j?fK7Zzzy~r(86+l>?|?K^Z(+H-+%sfi8(T~f;fOHM4S!9 z-m%yXQN5FRB1L=7O;Jg`2anfu zA!WjPh)vP<>=3n>Ds`}}Iyr-8p2EI(M;Wqnma;#=2!=>UK0L!9)|9Z^1C4YRYA5GJ ziXxm!jZ6ck=7gw_+h!I}5&oFUYGTV*!G^xXK4ge7YODzJG+x#0M~@f$*u~fCo+K7( zAbvX3l?2VPsLtl=E{yvrnY82JF!7WIBeu13;N}gXYGSZJp4=uXUDC{7ga#cLXpt`| zFdwksatYjwDHpbB!VX#BGN2yLKRKYQ#~J)RC_yfDme->=@5PM4@+o1Po8w_{29w*3 z@Un7YJp!_p%DpS|<$0q!<8mj6Cy_75PpPy|9~JvKLvXE^W{DF$>ahxPtUYZxI^gMU zD;qVafDyxfO2*b655dg0ShN!)HFzZtypD8Yk*_~3HiLk*R*r9F`=B{!vE2tVw+JX| z9CQVDr6XQG2NmhWE~zd0{axYXbJ0g(iDqSB7z0Ao=6%AhbHOL-P zFDMe1W%s=}mm;T*v)E4bGN)g3OKJt|zOwlIXocXO9;${iCHnSrmNE2-O6Dz6REV+T z*cPj^*H~n!!ii5NYX>;X1llI0?m#2pNQ>TsW!&dBYfjq^s;?5J1gflTcX5VjRV+vG zs1BNi&DD|Pr*=rcj6fWaz?AB%0qVJ{h)Px^P|#~3F7!b?Cb0Pt0tvx6Z|zl}s)hFh z3LakOVlw9bNhCwZ#K^jUhlbVFJlN5sRqa2}!$M=7{nXU{jPf^r>fk4($V3^v1zCQK z@y*3=e3kzo#(trbe_P}UaA7sk5LaIWviOEdvy2h$4QjW3SrANK3tvQ)q+H{d}vP5tGRnU@V*q^7e=T^>Z$D$2(4lf9N8bU zx5FxhVlYL7q4&IRGbcskk&(CtUGFxDpe)NnH0#=W9!%cdzFsyO*K*yrY{QNnh3)wQ z=tEk|S%+;R&M$-XG-#^=$}(L-sC{bZ+c_ddm2ciRSzK_Sj)plS<8vkpz%@)Q}*$Fszmiz*B*;>q<@w zoZv+2ND5$AN5{ncG=e}vrs{jzV4mmOeKbPpF#i=NHld*A91Rz|)2kpY5XcaEWu)QHbE(g)(wd;JKnU2`e#`9A`t&sqc&mw1YMJ7@!=

  • tRMlXoBMB|1g0AG7)26*l0dU4^z^`X-YsnHJR5#L$ zEsLbK?c$*Di~DeFfQ|2Mb#R~88+?B5Ztjc#75zBP{dAI5EFkcu`!K9|G=Q_52b#48 z&2e=mJV?1;G&0C~_b*Q$L*c~>?$eqTfgh@2NI6}_q(UbgNpxMWwhnt*YvU}Y0r`A&NvT&NObC=9-LbP)1+DBhbcy>B zc;Q4m8P}tYeo^@F>zfMS7wL~o@-2T>5T;AKZP;gwQ@Vxu7QYYeeXhxydOf{ynI9$C zy7Gvx3_fe|8fZ~6MGFV|U5kASo)Ef|@(J^>+f<=jNx&)TnaiKE3ghrXzX^+FGi;ye zqLdg}tF?RM-y2H}q-S19kEEt_M@2cpXDA)CV$CA4Y1q1=^nxN<&fZ+g_VqO6RLO_2 z$-T2}xx8pIjd_##?<@OHcmu>~*?6GQ5YyLhwO* zoqGxBb^{bZ5>&?cX>ZDR*>-LQj-MVt=77#Kq|LRQ4b|)8;$8TovvS@S6INOWc|D=JUYwY6yxO-V z(%e$gC+~QWEstOT6U)y?bQ2v(-C8QU^6oMir@CaewRgB=%o-MG+@zAw8OZ(qh9a55w3WXk4+pvVEa-bDh5nOH zE49@35u?6CiCY9e9^@H0<&&&Xe~Lc};SrYi|Elcu`lm=dcU2I1^%lp@{IEtZZ>kc zXNVZ+e%|iSeAf?Ker;6vqrZ&HCgY=lygS;+EYnTB^Fh&htkq#T2f5p-0!a?LVM1nJ zJ>x{81-pgxi<|LE{r7mj&4`e+KDf*Ou>Ud$zo+BouQrJ=FNTCnvoB?1qb;Kk^?q;O z6{_4cUn^!L53z~51qm8#?tymNo1o%i@Ns<3bn0O4H;-ztpCL=(^V4aDYrT>FkqoF z@B>$sV!u{#91{7UsNHinviamc{2{4N^yK?IQ4|D-TJy703Uj}>3_eZB$3(;OKhQNU z{D*;fed`|%2Qs$ge!Y9{4f(32=osE z%BiLC<#L9m717uB>_3;hlNKPp)ShH#cXqAU@%$_DmjT{=SzEt|f4x(|wuP%r_h2BC z`Qrtow|b7}pjsa{_)ASdQ}NmUwvg&z&-5JetO4gOp@=tE{wWy;F5+5$ z_>eV>+h}P_h{X3373N>f<{$C8%gRd;*o>gHq?EDRu9S&qCq;L)pn9#Q%INyaF-|+e zldaFw1=aXHn2goi@1}f*!#b1p51RXA22v2&?oI3>4gAn6MG8&|nXuFv-rcCrg z(E*qV0c6ecc=Qz>8|PT5DUm(1%8NeBuPm^uMGWO}JX7li0`+QG$B`y%>`>X|%74{ba}n0Y7^9J-RY;!56&Qqq$$h zbA;LvEFZhC19G=oGuytO$-&Y(w_g`rNO?l5H*olnj;Cx|WwQl>>4zDBRBvweuquoHN4LVKgFFr4}D=J-uQvIb5e*MFuO5*Y7| zMKNb>!XMPUDKGW^UO{ZqcB{zMV3hd7L-4+qtm~$zJKLI8fGeq*NAKes$AE8E$Fr^q z#HpVH(H33VkfF`99LfFVuabyEa{R|dA@DO?ig#Ml5?;YU#m&oKsK;G`w!MYW$E&Zb zIvQM2|4aMZN|HeI?@TP_@0*i2(*Jfk_TR}Ub%-SU`mazE@_$@iO(WDxq+`tg0N)WP A)c^nh literal 0 HcmV?d00001 diff --git a/content/images/cover_ebook_rust.png b/content/images/cover_ebook_rust.png new file mode 100644 index 0000000000000000000000000000000000000000..eee5a115d6c0ab277c86d1217644f8dbb70a10e4 GIT binary patch literal 19389 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 B3gZ9( literal 0 HcmV?d00001 diff --git a/content/partial/ebooks.html b/content/partial/ebooks.html new file mode 100644 index 000000000..a207ae046 --- /dev/null +++ b/content/partial/ebooks.html @@ -0,0 +1,89 @@ + + + \ No newline at end of file diff --git a/content/partial/substack.html b/content/partial/substack.html new file mode 100644 index 000000000..5dbe97cd9 --- /dev/null +++ b/content/partial/substack.html @@ -0,0 +1 @@ + diff --git a/etc/custom.css b/etc/custom.css index c514fcea8..bdcb68c46 100644 --- a/etc/custom.css +++ b/etc/custom.css @@ -209,11 +209,6 @@ ins.adsbygoogle { } } -.substack-embed { - border: 1px solid #EEE; - background: white; -} - .markdown-section hr { height: 1px !important; background-color: #e7e9ee !important; From be52d435430fe6347e4b109b38cff26a282835e9 Mon Sep 17 00:00:00 2001 From: novalagung Date: Mon, 25 Dec 2023 15:19:31 +0700 Subject: [PATCH 2/2] refactori: update stylesheet --- content/partial/ebooks.html | 1 + etc/custom.css | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/content/partial/ebooks.html b/content/partial/ebooks.html index a207ae046..46ce7faba 100644 --- a/content/partial/ebooks.html +++ b/content/partial/ebooks.html @@ -1,4 +1,5 @@