diff --git a/content/algorithms/oc b/content/algorithms/oc new file mode 100644 index 00000000..2708776c --- /dev/null +++ b/content/algorithms/oc @@ -0,0 +1 @@ +# OCR diff --git a/content/algorithms/ocr.md b/content/algorithms/ocr.md deleted file mode 100644 index cafb4675..00000000 --- a/content/algorithms/ocr.md +++ /dev/null @@ -1,47 +0,0 @@ -# OCR -_aka optical character recognition_ - -## The past -Older OCR algorithms were very fussy. They required oriented, grayscale images and were very contextual. Images required preprocessing - object localisation (EG, YOLO), character segmentation, etc etc. No bueno. - -## The present -Modern algorithms are built on top of deep learning tools. EG, KerasOCR on top of Keras. They don't usually require as much/any preprocessing and score much better results - -Examples: -- KerasOCR -- PaddleOCR - -## PaddleOCR - -Required packages for mac: -``` -brew install mupdf swig freetype -``` - -Install paddlepaddle (cute name) - -For CPU: -``` -python -m pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -If you're rich and have a GPU: - -``` -python -m pip install paddlepaddle-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -If it freaks out and says some shit about it not being found (below), then you're probably using the wrong version of Python. I was using 3.11, and 3.9 worked. - -``` -❯ python -m pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple -Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple -ERROR: Could not find a version that satisfies the requirement paddlepaddle (from versions: none) -ERROR: No matching distribution found for paddlepaddle -``` - -Then just install the wheel - -``` -pip install "paddleocr>=2.0.1" -``` \ No newline at end of file diff --git a/content/assets/img/tiered_prom.svg b/content/assets/img/tiered_prom.svg deleted file mode 100644 index 79ebb489..00000000 --- a/content/assets/img/tiered_prom.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - P1P2Root promP3Grafana \ No newline at end of file diff --git a/content/infra/Victoria Metrics.md b/content/infra/Victoria Metrics.md deleted file mode 100644 index 79fc73f6..00000000 --- a/content/infra/Victoria Metrics.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -permalink: infra/victoria-metrics ---- -# VictoriaMetrics - -VictoriaMetrics (VM) is a replacement for Prometheus. Oftentimes when scaling, you will run into limitations with Prometheus, occurring when - -- Queries require too much memory and prometheus OOMs (large time series) -- Lots of engineers querying just one prometheus instance -- Too many targets to scrape within a reasonable timeframe -- HA issues relying on one instance - -Vertical scaling will only take us so far - eventually, we need to scale horizontally. This is totally doable with prometheus! You will need to essentially tier your setup, aka [federation](https://prometheus.io/docs/prometheus/latest/federation/). -![[tiered_prom.svg]] - -The issue with this is that scaling and maintenance start to become truly challenging. Your tiers will need adjusting as workloads grow, and you will always need a root prometheus to "aggregate" queries. There are a number of alternatives to this, such as [Thanos](https://thanos.io/), [Mimir](https://grafana.com/oss/mimir/), etc. Each have differing levels of complexity. - -VictoriaMetrics [originally built on top](https://faun.pub/victoriametrics-creating-the-best-remote-storage-for-prometheus-5d92d66787ac) of [Clickhouse](/infra/clickhouse), which seems to be making lots of analytics/timeseries fast and efficient these days. - -It's deployable in [single node](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html), or [cluster mode](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html) and tends to perform fantastically. The query language is a drop in replacement for PromQL, and adds a few features too (so is technically a superset). I've dropped it into a deployment and had all queries work completely fine with no changes, so it does seem to be a full implementation. \ No newline at end of file diff --git a/content/posts/I just want to get shit done.md b/content/posts/I just want to get shit done.md index 66593986..451d50d3 100644 --- a/content/posts/I just want to get shit done.md +++ b/content/posts/I just want to get shit done.md @@ -1,6 +1,7 @@ --- date: 2019-11-19 permalink: posts/i-just-want-to-get-shit-done +title: I just want to get shit done --- Once upon a time, I would tinker with everything. diff --git a/content/posts/Lessons learned with Swift and iOS development.md b/content/posts/Lessons learned with Swift and iOS development.md index fe1ff91d..0e0820d1 100644 --- a/content/posts/Lessons learned with Swift and iOS development.md +++ b/content/posts/Lessons learned with Swift and iOS development.md @@ -3,6 +3,7 @@ date: 2020-01-29 permalink: posts/lessons-learned-with-swift-ios-development tags: - swift +title: Lessons learned with Swift and iOS development --- I'd like to start this off by saying that I am _in no means an expert_. While I have been programming for a long time, I'm new to the world of Swift and iOS, and have never built a mobile app :) This is everything I've stumbled upon and learned while building the first iOS version of [Pillion](https://pillion.bike/?ref=ellie.wtf)! diff --git a/content/posts/My backup script.md b/content/posts/My backup script.md index adbfcf7a..cdb0c7cd 100644 --- a/content/posts/My backup script.md +++ b/content/posts/My backup script.md @@ -1,6 +1,7 @@ --- date: 2020-01-08 permalink: posts/my-backup-script +title: My backup script --- I recently bought a 1TiB Samsung T5 SSD - pretty damn surprised I can get something of such capacity in something about the same size as a credit card! The last SSD I bought cost about the same but was 120GiB 😂 diff --git a/content/posts/Rest APIs and SwiftUI.md b/content/posts/Rest APIs and SwiftUI.md index 856f247f..ab64bd06 100644 --- a/content/posts/Rest APIs and SwiftUI.md +++ b/content/posts/Rest APIs and SwiftUI.md @@ -3,6 +3,7 @@ date: 2020-02-23 permalink: posts/rest-apis-and-swiftui tags: - swift +title: Rest APIs and SwiftUI --- I recently had someone ask me how I handled fetching and rendering data from a REST API in a SwiftUI view. diff --git a/content/posts/Don't forget the human.md b/content/posts/dont forget the human.md similarity index 99% rename from content/posts/Don't forget the human.md rename to content/posts/dont forget the human.md index c151f17a..8ee3e2c4 100644 --- a/content/posts/Don't forget the human.md +++ b/content/posts/dont forget the human.md @@ -1,6 +1,7 @@ --- permalink: posts/dont-forget-the-human date: 2020-07-27 +title: Don't forget the human --- Computers are cold and heartless. They don't lie, and they don't care if you scream and swear at them. You can abuse them all day long, and they'll still efficiently flip bits and push pixels. diff --git a/content/programming/exporting prometheus metrics with axum.md b/content/programming/exporting prometheus metrics with axum.md index bfe33e4c..fc33ad09 100644 --- a/content/programming/exporting prometheus metrics with axum.md +++ b/content/programming/exporting prometheus metrics with axum.md @@ -3,6 +3,7 @@ permalink: programming/exporting-prometheus-metrics-with-axum draft: false tags: - rust + - til date: 2023-09-13 title: Exporting Prometheus metrics with Axum --- diff --git a/content/programming/geospatial queries with mongodb.md b/content/programming/geospatial queries with mongodb.md index b54dba2b..7acf105d 100644 --- a/content/programming/geospatial queries with mongodb.md +++ b/content/programming/geospatial queries with mongodb.md @@ -4,6 +4,7 @@ date: 2019-07-25 permalink: programming/geospatial-queries-with-mongodb tags: - python + - til --- I'm currently playing with MongoDB and its [geospatial queries](https://docs.mongodb.com/manual/geospatial-queries/?ref=ellie.wtf). It’s pretty interesting so far, so I just thought I'd write something up to show how I'm using it with PyMongo! diff --git a/content/programming/index.md b/content/programming/index.md new file mode 100644 index 00000000..41cdee11 --- /dev/null +++ b/content/programming/index.md @@ -0,0 +1 @@ +A collection of programming notes. Some are regular-updated snippets (labeled evergreen), while others are more of a one-off (labeled til) \ No newline at end of file diff --git a/content/programming/python snippets.md b/content/programming/python snippets.md index a242e538..7d229e7c 100644 --- a/content/programming/python snippets.md +++ b/content/programming/python snippets.md @@ -2,6 +2,7 @@ permalink: programming/python-snippets tags: - python + - evergreen title: Python snippets --- I don't spend as much time building actual large projects in Python any more (though I was paid to write Python for a few years in my early career). These days it's mostly just for random glue scripts on a variety of systems.