{"version":1,"pages":[{"id":"-Lx1oKTDpEEWzSWX6stJ","title":"Today I Learned","pathname":"/","siteSpaceId":"sitesp_cEBNT","emoji":"1f92a","description":"I write to discover what I know. — Flannery O'Connor"},{"id":"-McOVC12djqJn4DjDEI2","title":"AWS","pathname":"/data-engineering/aws","siteSpaceId":"sitesp_cEBNT","emoji":"2601","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"-McOVGmS8OIGTI0hnNkE","title":"Make an NVMe volume available for use on AWS EC2","pathname":"/data-engineering/aws/make-an-nvme-volume-available-for-use-on-aws-ec2","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"AWS","emoji":"2601"}]},{"id":"-M4_CbocotnChrabb3gz","title":"AWS EMR","pathname":"/data-engineering/aws/emr","siteSpaceId":"sitesp_cEBNT","description":"Manage EMR Cluster","breadcrumbs":[{"label":"Data Engineering"},{"label":"AWS","emoji":"2601"}]},{"id":"-MAVIIRA8TOZUDRaM7KY","title":"S3 Dist CP","pathname":"/data-engineering/aws/emr/s3-dist-cp","siteSpaceId":"sitesp_cEBNT","description":"Using S3DistCp, you can efficiently copy large amounts of data from Amazon S3/HDFS into S3/HDFS","breadcrumbs":[{"label":"Data Engineering"},{"label":"AWS","emoji":"2601"},{"label":"AWS EMR"}]},{"id":"-M4gL0N_Pw-i69vSBrzj","title":"Manage services","pathname":"/data-engineering/aws/emr/manage-services","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"AWS","emoji":"2601"},{"label":"AWS EMR"}]},{"id":"-M4gHzMYkjOTL14R2eQT","title":"EMR - Tez","pathname":"/data-engineering/aws/emr/emr-tez","siteSpaceId":"sitesp_cEBNT","description":"Upscale/Downscale of the emr cluster corrupts hdfs jars /apps/tez/tez.tar.gz","breadcrumbs":[{"label":"Data Engineering"},{"label":"AWS","emoji":"2601"},{"label":"AWS EMR"}]},{"id":"-M7C1kr_TPpDFIw2gm9u","title":"Issues","pathname":"/data-engineering/aws/emr/issues","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"AWS","emoji":"2601"},{"label":"AWS EMR"}]},{"id":"-Lx3L31_9mp_1Pff2HHm","title":"Tools","pathname":"/data-engineering/tools","siteSpaceId":"sitesp_cEBNT","emoji":"2692","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"-McOWgVz5jKvWbIeWqCr","title":"Shell","pathname":"/data-engineering/shell","siteSpaceId":"sitesp_cEBNT","emoji":"1f4bb","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"yCibHPn7XhrDrPb1LvB2","title":"MacOS's Touch ID on Terminal","pathname":"/data-engineering/shell/macoss-touch-id-on-terminal","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Shell","emoji":"1f4bb"}]},{"id":"-Mccpm9mYsnyw9Q3ionZ","title":"Using `sed` to find and replace in file","pathname":"/data-engineering/shell/using-sed-to-find-and-replace-in-file","siteSpaceId":"sitesp_cEBNT","description":"sed = Stream EDitor","breadcrumbs":[{"label":"Data Engineering"},{"label":"Shell","emoji":"1f4bb"}]},{"id":"-McOWlUKRcRJYT39TjXI","title":"Merging contents of multiple .csv files into single .csv file","pathname":"/data-engineering/shell/merging-contents-of-multiple-.csv-files-into-single-.csv-file","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Shell","emoji":"1f4bb"}]},{"id":"R0NfrcI5xejBOVHXcJ2r","title":"env from ConfigMap or Secrets","pathname":"/data-engineering/env-from-configmap-or-secrets","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"-M7MfbipxOmX8-VrzsjH","title":"Kubernetes, Helm, Kustomize","pathname":"/data-engineering/kubernetes","siteSpaceId":"sitesp_cEBNT","emoji":"2638","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"NhyOH5tczZPDF4wDFDIH","title":"initContainer to download file to pod","pathname":"/data-engineering/kubernetes/initcontainer-to-download-file-to-pod","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"xZZrYXK8fCIbzx22ZaHi","title":"Kustomize: omission of resources","pathname":"/data-engineering/kubernetes/kustomize-omission-of-resources","siteSpaceId":"sitesp_cEBNT","description":"Skip one of the resources, adding `$path: delete` kustomize will skip it.","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"7ZTvEZvvHuqYEC4xdYAa","title":"K8S: Services and Labels","pathname":"/data-engineering/kubernetes/k8s-services-and-labels","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-Mh8Uqvb6T1C00FOH70Z","title":"K8S: PVC stuck in status “Terminating”","pathname":"/data-engineering/kubernetes/pvc-stuck-in-status-terminating","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-Lxvc8vV72yX7SzcMD5D","title":"K8S: Port Forward","pathname":"/data-engineering/kubernetes/k8s-port-forward","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-MZOHLxdQBOVWp7IhdpM","title":"K8S: Pull an Image from a Private Registry","pathname":"/data-engineering/kubernetes/pull-an-image-from-a-private-registry","siteSpaceId":"sitesp_cEBNT","description":"Pull Image from Github Docker Package Private","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-MENG0hv4MKMphl3VnRw","title":"Happy helm","pathname":"/data-engineering/kubernetes/happy-helm","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-M7MmRGGfp-FHKG5N4oz","title":"Helm: render manifest locally","pathname":"/data-engineering/kubernetes/helm-render-manifest-locally","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-MFoCd4nnaj79aQf8b_Q","title":"Helm: Public Helm chart repository with GitHub Pages","pathname":"/data-engineering/kubernetes/create-public-helm-chart-repository-with-github-pages","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Kubernetes, Helm, Kustomize","emoji":"2638"}]},{"id":"-M4gKjFNX-djVh8p4nNR","title":"Apache Airflow","pathname":"/data-engineering/apache-airflow","siteSpaceId":"sitesp_cEBNT","emoji":"1f504","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"SO3R8WZvnz9Qk2ZFvE79","title":"Extend official Docker image","pathname":"/data-engineering/apache-airflow/extend-official-docker-image","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"90FygVMaxbyqkfXL1dpD","title":"Generate offline SQL upgrade script","pathname":"/data-engineering/apache-airflow/generate-offline-sql-upgrade-script","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"-Lx1rNiFhdI4-KKseGC0","title":"Airflow in Docker","pathname":"/data-engineering/apache-airflow/airflow-docker","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"-M-0I9ngOgGMi9xuuhvk","title":"Mastering Airflow UI","pathname":"/data-engineering/apache-airflow/mastering-airflow-ui","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"-LxKrCKLkRUjUJi3gokE","title":"Best Practices for Airflow and ETLs","pathname":"/data-engineering/apache-airflow/best-practices-for-airflow-and-etls","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"-Lx9TMZl-agva1hNRTt1","title":"Airflow in Docker Compose","pathname":"/data-engineering/apache-airflow/airflow-in-docker-compose","siteSpaceId":"sitesp_cEBNT","description":"Setup Airflow in Docker Compose","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"-M6cnQ1mjEDXRtGWf9k7","title":"Useful SQL queries for Apache Airflow","pathname":"/data-engineering/apache-airflow/useful-sql-queries-for-apache-airflow","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Apache Airflow","emoji":"1f504"}]},{"id":"-M_ZnfWqazepPlH0XakS","title":"Docker","pathname":"/data-engineering/docker","siteSpaceId":"sitesp_cEBNT","emoji":"1f433","description":"","breadcrumbs":[{"label":"Data Engineering"}]},{"id":"-M_ZyRdTW3dCU0GSzn-P","title":"\"Distroless\" Docker Images","pathname":"/data-engineering/docker/distroless-docker-images","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Docker","emoji":"1f433"}]},{"id":"-LxKpfuiGONOPhGabYHS","title":"Docker cleanup","pathname":"/data-engineering/docker/docker-cleanup","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Docker","emoji":"1f433"}]},{"id":"-M_Zo0flEnupQQyDHDWM","title":"Optimize the Docker Image Size","pathname":"/data-engineering/docker/optimize-the-docker-image-size","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Docker","emoji":"1f433"}]},{"id":"-M_Zp8u__a_Thyu2NB2G","title":"The best Docker base image for Python","pathname":"/data-engineering/docker/the-best-docker-base-image-for-python","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Data Engineering"},{"label":"Docker","emoji":"1f433"}]},{"id":"-MamMRZ5hMfgx-P2SDH7","title":"Google BigQuery","pathname":"/db/google-bigquery","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"}]},{"id":"VUsvxavJBBxEdBYka6bg","title":"BigQuery Cancel Running Query","pathname":"/db/google-bigquery/bigquery-cancel-running-query","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"Google BigQuery"}]},{"id":"-MaMZgD6meGVWaJjQYjv","title":"BigQuery - Split string and get the first part","pathname":"/db/google-bigquery/bigquery-split-string-and-get-the-first-part","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"Google BigQuery"}]},{"id":"-MLRhJwoZ2NNoVSzWt0V","title":"BigQuery - UNNEST in SELECT","pathname":"/db/google-bigquery/bigquery-unnest-in-select","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"Google BigQuery"}]},{"id":"-MLIIfFsTMFhD1tYATfN","title":"Bigquery - Sample queries for audiences based","pathname":"/db/google-bigquery/bigquery-sample-queries-for-audiences-based","siteSpaceId":"sitesp_cEBNT","description":"These queries return the number of users in the audience. If you'd like to get the list of user IDs in the audience instead, then remove the outermost COUNT() function, e.g., COUNT(DISTINCT user_id) -","breadcrumbs":[{"label":"Database"},{"label":"Google BigQuery"}]},{"id":"Mi9cSgIs3U5EiHF5gA2R","title":"BigQuery cookbook for Google Analytics Exported Data","pathname":"/db/google-bigquery/bigquery-cookbook-for-google-analytics-exported-data","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"Google BigQuery"}]},{"id":"-MamMNoZ0buhP99U18x5","title":"Apache Hive","pathname":"/db/apache-hive","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"}]},{"id":"-LxvbHke580eKZNjTvgu","title":"Hive - SHOW schemas/tables/create","pathname":"/db/apache-hive/hive-show-schemas-tables-create","siteSpaceId":"sitesp_cEBNT","description":"These commands will help to show list schemas, list tables and create query of tables.","breadcrumbs":[{"label":"Database"},{"label":"Apache Hive"}]},{"id":"-MamMBq-wI9YtCFSNr-C","title":"AWS Redshift / Postgres","pathname":"/db/aws-redshift-postgres","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"}]},{"id":"wemuQQpfXk7gRLnkjD2M","title":"Amazon Redshift Utilities","pathname":"/db/aws-redshift-postgres/amazon-redshift-utilities","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"AWS Redshift / Postgres"}]},{"id":"-MK395qhdq3iNMor0bFN","title":"Postgres - Index Summary","pathname":"/db/aws-redshift-postgres/postgres-index-summary","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"AWS Redshift / Postgres"}]},{"id":"-LxFJ3HNhfZbIoCBC2Co","title":"Postgres - List tables","pathname":"/db/aws-redshift-postgres/postgres-list-tables","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"AWS Redshift / Postgres"}]},{"id":"-Lx1tnZWX2EZEERzOvV2","title":"Redshift - GRANT","pathname":"/db/aws-redshift-postgres/redshift-grant","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"AWS Redshift / Postgres"}]},{"id":"-M3EkZYNSFCIVdbfbCoj","title":"Redshift - tables and their owners","pathname":"/db/aws-redshift-postgres/redshift-tables-and-their-owners","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"AWS Redshift / Postgres"}]},{"id":"-Lxz6QTPsJ6W7yfxQJuz","title":"Redshift - Check the table size","pathname":"/db/aws-redshift-postgres/redshift-check-the-table-size","siteSpaceId":"sitesp_cEBNT","description":"Redshift or Postgres is ok","breadcrumbs":[{"label":"Database"},{"label":"AWS Redshift / Postgres"}]},{"id":"-MamM3Y_t7lfIJ6NEu5n","title":"Presto","pathname":"/db/presto","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"}]},{"id":"-MamKVgNiuI7qiSF4PB1","title":"Aliyun Data Lake Analytics (Presto) - Add partition on non-existing location","pathname":"/db/presto/aliyun-data-lake-analytics-presto-add-partition-on-non-existing-location","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"Presto"}]},{"id":"-LxCViRcsBc34jCTe1OP","title":"AWS Athena - Add Partition","pathname":"/db/presto/athena-add-partition","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Database"},{"label":"Presto"}]},{"id":"EMKX1kakfURu74AMct63","title":"Rust","pathname":"/programming/rust","siteSpaceId":"sitesp_cEBNT","emoji":"1f36a","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"5kivj9HQSMCHSDQMDQ0R","title":"cheats.rs","pathname":"/programming/rust/cheats.rs","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Rust","emoji":"1f36a"}]},{"id":"di1TDAFIaBuggelCnNyh","title":"Imperative vs Declarative","pathname":"/programming/rust/imperative-vs-declarative","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Rust","emoji":"1f36a"}]},{"id":"VSFpUa74v9OcqmfLnZCm","title":"Generate Struct from JSON","pathname":"/programming/rust/generate-struct-from-json","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Rust","emoji":"1f36a"}]},{"id":"ogmWMGqr2UA0qz7U54jI","title":"Python","pathname":"/programming/python","siteSpaceId":"sitesp_cEBNT","emoji":"1f40d","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-MF-YOe8WpiNiHeQfFsl","title":"YAML config file with environment variables","pathname":"/programming/python/yaml-config-file-with-environment-variables","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Python","emoji":"1f40d"}]},{"id":"-Lx1s2H3dyxugWA_3gdp","title":"date_range_generator","pathname":"/programming/python/date_range_generator","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Python","emoji":"1f40d"}]},{"id":"-Lx1t1S7HlPvBqPKo4zb","title":"get_all_s3_keys","pathname":"/programming/python/get_all_s3_keys","siteSpaceId":"sitesp_cEBNT","description":"Get all S3 Keys by Prefix by Boto3","breadcrumbs":[{"label":"Programming"},{"label":"Python","emoji":"1f40d"}]},{"id":"-M4-hFZpU7Hfhvw9e62B","title":"Pipenv","pathname":"/programming/python/pipenv","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Python","emoji":"1f40d"}]},{"id":"3b63KemYSeNMJe56UlRv","title":"Golang","pathname":"/programming/golang","siteSpaceId":"sitesp_cEBNT","emoji":"1f47b","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-MCRAE5njA04iasJsw-m","title":"Functions and Methods in Go?","pathname":"/programming/golang/functions-and-methods-in-go","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Golang","emoji":"1f47b"}]},{"id":"-MdVjjz96VGNJXsVVpCg","title":"Convert JSON to Go struct","pathname":"/programming/golang/convert-json-to-go-struct","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Golang","emoji":"1f47b"}]},{"id":"pfA2takwIX5Kzhb4Gmty","title":"Javascript / Typescript","pathname":"/programming/javascript-typescript","siteSpaceId":"sitesp_cEBNT","emoji":"1f48e","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-Men4lcHue9DcY3-33yI","title":"Intl.ListFormat","pathname":"/programming/javascript-typescript/intl.listformat","siteSpaceId":"sitesp_cEBNT","description":"Convert arrays to human-readable lists","breadcrumbs":[{"label":"Programming"},{"label":"Javascript / Typescript","emoji":"1f48e"}]},{"id":"hNl9txL5fmW05oA3P6HO","title":"FE / React","pathname":"/programming/fe-react","siteSpaceId":"sitesp_cEBNT","emoji":"2728","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"itcbYW05jwBkgT8fZiRq","title":"Beautiful icons, images, ..","pathname":"/programming/fe-react/beautiful-icons-images-..","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"FE / React","emoji":"2728"}]},{"id":"-McUsXa_hThgs8iZZ0uu","title":"Flexbox","pathname":"/programming/fe-react/flexbox","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"FE / React","emoji":"2728"}]},{"id":"-MhgimIyeuNtNff3dRnL","title":"Create hook to inject JS script","pathname":"/programming/fe-react/create-hook-to-inject-js-script","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Programming"},{"label":"FE / React","emoji":"2728"}]},{"id":"-Lx6rT2I_Yk9wWQs4_wt","title":"Git - Pretty git branch graphs","pathname":"/unix/git-pretty-git-branch-graphs","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Unix"}]},{"id":"-MSraE5lOOB_fznY5jgr","title":"Checking files in Docker build context","pathname":"/unix/checking-files-in-docker-build-context","siteSpaceId":"sitesp_cEBNT","description":"Sometimes we need to check files in Docker build context, or just to check .dockerignore is work or not","breadcrumbs":[{"label":"Unix"}]},{"id":"-MY93mthbKKVOuBMJSUA","title":"Bash get the directory of the current script","pathname":"/unix/bash-get-the-directory-of-the-current-script","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Unix"}]},{"id":"-M_jrwjB2BwAoUHdFsw1","title":"Vim","pathname":"/unix/vim","siteSpaceId":"sitesp_cEBNT","description":"I switched to use Vim!","breadcrumbs":[{"label":"Unix"}]},{"id":"-MhP0r2sjVGJ-6NAU85W","title":"Find and replace","pathname":"/unix/find-and-replace","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Unix"}]},{"id":"-M60e1aqR8BWhVkf97Yd","title":"[Fig] Single machine and distributed system structure","pathname":"/miscellaneous/fig-single-machine-and-distributed-system-structure","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Miscellaneous"}]},{"id":"-M60eQulWCQ0uTBtr9m5","title":"Deploying Machine Learning Models at Scale","pathname":"/miscellaneous/deploying-machine-learning-models-at-scale","siteSpaceId":"sitesp_cEBNT","description":"https://algorithmia.com/blog/deploying-machine-learning-at-scale","breadcrumbs":[{"label":"Miscellaneous"}]},{"id":"-MZYKX3fpgQMAjQRTv3T","title":"Bypass a Chrome certificate/HSTS error","pathname":"/miscellaneous/bypass-a-chrome-certificate-hsts-error","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Miscellaneous"}]},{"id":"-LzqcAqmlL8a5r18Mdtq","title":"Articles","pathname":"/miscellaneous/articles","siteSpaceId":"sitesp_cEBNT","description":"","breadcrumbs":[{"label":"Miscellaneous"}]}]}