HN user

batterylow

436 karma

contact(at)polyra(dot)com Founder at https://PlotAPI.com and https://DataCrayon.com

Posts26
Comments93
View on HN
learnfrets.com 2y ago

Show HN: I made an app to help memorize music notation and the guitar fretboard

batterylow
8pts3
plotpanel.com 4y ago

Show HN: PlotPanel – Beautiful and Interactive Visualizations Without Any Code

batterylow
2pts0
polyra.com 4y ago

I created my first data visualisation SaaS with D3js, FastAPI, & WooCommerce

batterylow
1pts0
plotpanel.com 4y ago

Show HN: I created PlotPanel, an app for creating interactive visualisations

batterylow
5pts1
datacrayon.com 5y ago

Visualising Pokémon Types and Type Combinations a Chord Diagram

batterylow
1pts0
datacrayon.com 5y ago

Show HN: My self-pub book on Evolutionary Algorithms with Python (inc. sample)

batterylow
13pts5
inspiration.cricut.com 5y ago

Cricut back-pedal: A letter to the Cricut community from Cricut CEO

batterylow
2pts0
www.engadget.com 5y ago

Google will face lawsuit over Incognito mode tracking

batterylow
2pts1
news.ycombinator.com 5y ago

Ask HN: Can you uninstall Rosetta 2 on an M1 Mac?

batterylow
3pts2
shahinrostami.com 5y ago

Interactive Data Visualisation with Rust

batterylow
81pts12
forums.macrumors.com 5y ago

M1 Air with Thermal Pad Mod

batterylow
86pts41
datacrayon.com 5y ago

Multidimensional Arrays and Operations with NDArray and Rust

batterylow
4pts0
forums.macrumors.com 5y ago

M1 MacBook Air with Thermal Pad Mod Improves Performance

batterylow
2pts0
github.com 5y ago

Dolphin Emulator Gets Apple M1 Support for macOS

batterylow
2pts0
www.jetbrains.com 5y ago

Jupyter Notebook Support in PyCharm

batterylow
4pts0
github.com 5y ago

Unshaky: An attempt to address the “double press” on Apple's butterfly keyboard

batterylow
2pts1
traefik.io 5y ago

Traefik Proxy 2.4 Adds Advanced MTLS, Kubernetes Service APIs, and More

batterylow
2pts0
shahinrostami.com 5y ago

Visualisation of Co-Occurring Types with Rust

batterylow
4pts0
github.com 5y ago

Automatic time series feature extraction based on scalable hypothesis tests

batterylow
3pts0
docs.rs 5y ago

Rust ndarray introduction for NumPy users

batterylow
3pts0
effectiviology.com 5y ago

Gish Gallop: When People Try to Win Debates by Using Overwhelming Nonsense

batterylow
2pts0
github.com 5y ago

A Purple Theme for Jupyter Lab

batterylow
4pts0
github.com 5y ago

PyO3: Rust Bindings for the Python Interpreter

batterylow
305pts77
datacrayon.com 5y ago

Setup Anaconda, Jupyter, and Rust

batterylow
71pts22
www.arewelearningyet.com 5y ago

Rust: Are We Learning Yet?

batterylow
7pts0
github.com 5y ago

Evcxr: A Rust REPL and Jupyter Kernel

batterylow
170pts27

My daughter wanted an app like this that would help her with sheet music, so that was enough motivation!

I was tinkering with Unity at the time, so I thought I’d use it to make future releases on other platforms a little easier.

I’ve tested it on a few iPhones, iPads, and a MacBook Air (running the iPad app). It’s worked nicely on those. I don’t recommend using the AirPod microphone as I noticed some poor recognition on the lower notes!

I used to write long and technical blog posts. I think it's unlikely someone will go out there way to give you negative feedback, i.e. not constructive.

My motivation came from my younger days where everyone (including myself) had their own little corner of the Internet, made with things like AngelFire and GeoCities. I missed that.

Nowadays, I prefer to make short posts, e.g. [1, 2, 3]. Of course, before I started, I had to write my own static-site generator... It's been years since I've ran my Patreon and I don't post on YouTube like I used to, so there's little to no engagement - which is OK with me.

[1] https://shahinrostami.com/articles/different-adjustments-for...

[2] https://shahinrostami.com/articles/my-pen-plotter-setup/

[3] https://shahinrostami.com/articles/colours-and-patterns-whil...

Could you elaborate on why you switched away from it?

I started using KaTeX sometime after 2015 because it promised to be fast (the fastest! [1]). I had to change the representation of a bunch of expressions because KaTeX didn't support some environments, whilst MathJax did. It was a trade-off I was willing to accept at the time.

Many years later, I started writing a personal static-site generator. I wanted comparatively lightweight pages, so rendering server-side was an option. I re-evaluated MathJax vs KaTeX again and this time I leaned towards MathJax, as speed was no longer an issue for me. It looks like KaTeX has broader support now [2].

[1] https://katex.org

[2] https://katex.org/docs/support_table.html

Jupyter Notebook 7 3 years ago

The major change is building the Jupyter Notebook 7 interface with JupyterLab components so that the two applications share a common codebase and extension system.

This is interesting! Looking forward to testing the purple theme I use [1]. I wonder if extension developers will need to maintain three sets of instructions now? JupyterLab, Jupyter Notebook >= 7, and Jupyter Notebook < 7

[1] https://github.com/shahinrostami/theme-purple-please

Evcxr is great, and I used it to write Data Analysis with Rust Notebooks [1]! There's also this video on getting up and running with it [2], although it's 2 years old.

Ultimately, the ecosystem isn't yet as convenient as something like Python. I used to keep an eye on "Are we learning yet?" [3] - although it's been a while now!

[1] https://datacrayon.com/shop/product/data-analysis-with-rust-...

[2] https://www.youtube.com/watch?v=SZKEzNL9als

[3] https://www.arewelearningyet.com

A couple of years ago when checking out Rust for scientific work I started looking for familiar ground, e.g. Jupyter notebook support. I was happy to find google/evcxr's Jupyter kernel [1] and started writing an early access book on Rust for data analysis [2].

I still check _Are we learning yet_ [3] to see their recommendation on the state of the ML stack (including data processing and structures) in Rust. It still lists "the ecosystem isn't very complete yet.", which is how I felt at the time!

[1] https://github.com/google/evcxr/tree/main/evcxr_jupyter

[2] https://datacrayon.com/shop/product/data-analysis-with-rust-...

[3] https://www.arewelearningyet.com

It started as a solution for myself, i.e. a tool of convenience.

I made it available for free as an endpoint, and then it gained enough popularity to frequently hug my server into submission. After speaking with a few users, it turns out they were happy to pay for it. So I made it a SaaS!

I've enjoyed growing it over time, and seeing how others use it.

For the last few years with PlotAPI [1], it's been mostly about communicating early and managing expectations. The emails hit my phone, so I always reply within a reasonable time to confirm I've seen their email, thank them for their business, and some timeframe of when I can get around to addressing the issue.

Besides that, I've kept things simple and built my own tools around deployment - so making quick changes/fixes are easy for me as a team of one.

I'm refreshing the docs site [2] right now, which I hope will reduce the number of emails I get and make it easier for customers to get the answers they need (even to questions they didn't know they had) themselves.

[1] https://PlotAPI.com

[2] https://PlotAPI.com/docs

I built https://PlotAPI.com with Django, htmx, Alpine.js, and Tailwind CSS. I was new to all 4 of those technologies and learnt whilst on the project, it was a great experience.

It was my first time using the Stripe API too, which has the nicest documentation I've ever seen!

I've recently started remaking parts of it in a static site generator I've written focussed on Jupyter notebooks. The first part I've replaced is the Docs (https://PlotAPI.com/docs) - it's a WIP!