HNHacker News
TopNewBestAskShowJobs

kdeldycke

700 karma · joined November 5, 2010

submissionscomments
kdeldycke··on Launch HN: Lago (YC S21) – Open-source usage-based billing
> "cloud points" per month so that the invoice remains constant

So true. At one point Google Ads had a BillingCap enum in their APIs, used to set up "capped actuals", a scheme also known as "monthly with rollover". Something that I understood as selling monthly quotas of a consumable, or as you put it, "cloud points".

My notes points to: https://developers.google.com/ad-manager/api/reference/v2019... . But this URL is broken and I can't find any trace of "capped actuals" anywhere in Google's documentation. I guess it was probably rebranded/refactored into budgets/monthly spending limit/monthly invoicing/whatever.

At the end I think "points" is a better way to sell this feature. If this is generic enough, it can be an answer to airlines' miles and similar loyalty programs the retail industry is fond of.

kdeldycke··on All 1,400 Google Chrome CLI flags
Agreed. Tried to reconcile this for some of my projects a while back and spent much more time I anticipated. This is an unexpected rabbit hole, between type casting, scoping of flags to subcommands and flags > configuration file > environment variables > default values precedence. And TOML / YAML / JSON / XML / INI multi-format support.

I made my hacks open-source, so if you have a Click-based Python CLI, try click-extra, contribute back, and help me solves this problem once and for all: https://kdeldycke.github.io/click-extra/config.html

kdeldycke··on Recent Apple updates leading to WiFi issues?
Not a full OS-diff, but there is a way to dump all the packages installed on a machine:

    $ mpm --output-format json installed > installed.json
Source: https://github.com/kdeldycke/meta-package-manager/

With regular snapshots you can at least eliminate new installed software as the root cause of an issue. Doesn't solve the issue with preferences though.

kdeldycke··on Kill Bill – Open-Source Subscription Billing and Payments Platform
This is spot on.

There is no open RSS/XML/API feed you can subscribe to from each country to get an update of their accounting rules. You have to constantly monitor all news from all over the world. This is labor intensive. The only solution is a network of local tax specialists. Like the big-4 accounting firms have.

At least I tried to compile the VAT rates: https://github.com/kdeldycke/vat-rates

kdeldycke··on Generating PDF invoices using Lago
Sounds like he had some sort of business discipline. Or worse, couldn't delegate and had to double-check everything by hand. Paper was his medium of choice in which he felt productive for this particular task.

In my case I'm pretty sure the owners didn't care about the printed documents and never checked them. It was just required to have a proof because... process.

That's when I understood ERPs were not about software but workflow. Not a solution either, but a symptom. Some requirements are bullshit, because nobody has the time (or mandate) to question the sacred Process.

I quit doing ERPs not long after that.

kdeldycke··on Generating PDF invoices using Lago
I have PTSD from 20 years ago trying to convert OpenOffice documents to PDF with ReportLab. It was janky because all elements had to be positioned in absolute coordinates to the virtual page.

Nowadays I'll go straight to https://weasyprint.org to produce PDFs in Python. That's what I used for https://scaleway.com invoices.

kdeldycke··on Generating PDF invoices using Lago
The information required on a EU invoice is detailed by Article 226, Section 4 (Content of invoices) of Council Directive 2006/112/EC on the common system of VAT: https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=OJ:...
kdeldycke··on Generating PDF invoices using Lago
> had to be printed AND available as PDF.

You just reminded me of a customer I was working for as a junior ERP consultant. They required us to have the proof a document was printed by a user.

I went far down the rabbit hole trying to come up with an end-to-end solution involving cryptographically signed messages sent to the printer, a physical QR code on the document to be scanned back for validation, and others convoluted half-backed contraptions. But I couldn't find an unhackable way to reconcile the state in the machine with the reality of the physical world.

A senior consultant solved it in 10 minutes. Showed them. They were ecstatic and we were paid.

What has he done? Just updated a "printed" column in the database to "True" when the user clicked the HTML "print" button.

kdeldycke··on Generating PDF invoices using Lago
Subscription plans? Sure, you solve it with a single static template. The problem is reduced to producing PDFs (at scale).

But intricate pricing is unavoidable in some industries. Often to materialize physical or logistical constraints. Take cloud computing. There is elasticity, but some order of magnitudes are only reachable if you pay the price. Or you might get volume discounts. All of this requires segmented pricing.

How would you lay out an n-dimensions matrix on a 2D piece of paper? This is data design all over again.

With an invoice targeting the right audience, you can let your customer figure these complex schemes by themselves (and have them not feel cheated). It will make your support team happy to not have to answer the "where my money goes?" question ad nauseam.

And at the end we can't just send a JSON dump to the bookkeepers. The law still requires that document we call an invoice. So yes, I think invoice UX is a thing and is here to stay.

kdeldycke··on Show HN: Meta Package Manager, a CLI that solves Xkcd #1654
I started working on this 6 years ago in the form of a hackish script to have all outdated packages listed in my macOS task bar. You can replicate this with an xBar/SwiftBar plugin: https://kdeldycke.github.io/meta-package-manager/bar-plugin....

Now the CLI supports Linux, macOS and Windows. And implements list, outdated, search, install, upgrade, remove, sync and cleanup operations.

Supported package managers are: apm, apt, apt-mint, brew, cargo, cask, chocolatey, composer, dnf, emerge, flatpak, gem, mas, npm, opkg, pacman, paru, pip, pipx, snap, steamcmd, vscode, yarn, yay, yum and zypper.

Some other use-cases are documented here: https://kdeldycke.github.io/meta-package-manager/usecase.htm...

The worst thing with this project is trying to run some sorts of integration tests over the whole matrix of OS/distribution/package managaer/versions. That's time consuming, tedious and implies lots of trials and errors. So I am just aiming at doing a good-enough work on that front.

It's not perfect but the CLI is useable everyday judging by feedback I gathered so far. Now I need ever more feedback and help to manage all that menagerie! :)

Note: this Show HN was suggested some month ago by other users at https://news.ycombinator.com/item?id=30290079

kdeldycke··on Ask HN: Can I see your cheatsheet?
All my CLI: https://kevin.deldycke.com/2006/12/all-my-command-lines/

The one I'm probably the most proud of is that one-liner to produce GIFs:

  $ ffmpeg -i ./source.mp4 -ss 00:24:52.4 -to 00:24:57.0 -filter_complex "[0:v] fps=12,scale=width=480:height=-1:flags=lanczos,subtitles=source.mp4:si=0:force_style='FontName=Arial Black,Bold=-1,FontSize=26',split [a][b];[a] palettegen=64 [p];[b][p] paletteuse" ./meme.gif
Source: https://kevin.deldycke.com/2006/11/video-commands/
kdeldycke··on Billing systems are a nightmare for engineers
Still, someone tried in the "Algebraic Models for Accounting Systems" book: https://www.amazon.com/Algebraic-Accounting-Systems-Salvador...

Source: https://github.com/kdeldycke/awesome-billing#finance

kdeldycke··on Billing systems are a nightmare for engineers
This.

Usage-based billing is incomplete without its suite of reporting, consolidation and visualization tools. No wonders there is a cottage industry of cloud computing consultants and SaaS solutions focused on helping you to make sense of your AWS/GCP/Azure invoices.

kdeldycke··on Billing systems are a nightmare for engineers
The only worthwhile re-invention of late might have been triple-accounting.
kdeldycke··on Billing systems are a nightmare for engineers
The essence of MVP I guess.

Now, back to the article's topic, the real question is: is there an off-the-shelf billing product available out there?

kdeldycke··on A curated list of falsehoods programmers believe
Got this covered at: https://kevin.deldycke.com/2016/12/falsehoods-programmers-be...
kdeldycke··on Show HN: Updatecli – What if Dependabot and Ansible had a child?
I wrote something similar but to keep a local system up-to-date: https://github.com/kdeldycke/meta-package-manager#readme

With Meta Package Manager you can aggregate the results of all package managers available on your machine:

    $ mpm outdated
    ╭──────────────┬─────────────┬─────────┬───────────────────┬────────────────╮
    │ Package name │ ID          │ Manager │ Installed version │ Latest version │
    ├──────────────┼─────────────┼─────────┼───────────────────┼────────────────┤
    │ curl         │ curl        │ brew    │ 7.79.1            │ 7.79.1_1       │
    │ git          │ git         │ brew    │ 2.33.0            │ 2.33.0_1       │
    │ openssl@1.1  │ openssl@1.1 │ brew    │ 1.1.1l            │ 1.1.1l_1       │
    │ rake         │ rake        │ gem     │ 13.0.3            │ 13.0.6         │
    │ Telegram     │ 747648890   │ mas     │ 8.1               │ 8.1.3          │
    │ npm          │ npm@8.0.0   │ npm     │ 7.24.0            │ 8.0.0          │
    │ pip          │ pip         │ pip     │ 21.2.4            │ 21.3           │
    │ regex        │ regex       │ pip     │ 2021.9.30         │ 2021.10.8      │
    ╰──────────────┴─────────────┴─────────┴───────────────────┴────────────────╯
    8 packages total (brew: 3, pip: 2, gem: 1, mas: 1, npm: 1, apm: 0, cask: 0, composer: 0).
Bonus point: it solves XKCD #1654 (Universal Install Script).

(edit: formatting)

kdeldycke··on Generate Unicode Calendars for Markdown
TIL about unicode rounded corners.

Thanks @mixmastamyk, you just inspired me to add support for them into the python-tabulate project: https://github.com/astanin/python-tabulate/pull/151

kdeldycke··on Prefer the British Style of Quotation Mark Punctuation over the American
I tried to implement some linting rules for quotation mark and punctuation once. Took me way too much time and effort. It's mostly trial and error but good enough I guess to highlight the most blatant abuses.

Anyway, here is the code: https://github.com/sindresorhus/awesome-lint/pull/101/files

kdeldycke··on API Tokens: A Tedious Survey
That's for the exact same reason (obvious identification and easy scanning) that I proposed to prefix all Scaleway's access keys with `SCW`.

See: https://blog.scaleway.com/strengthening-scaleway-token-secur...

kdeldycke··on Show HN: Caskmas – get your app updates from Homebrew/Mac App Store
I developed a multi package manager CLI which does exactly that and more: https://github.com/kdeldycke/meta-package-manager
kdeldycke··on Three things to never build yourself: auth, notifications, payments
I did all three with a team of 12 engineers.

But this was in the context of a cloud/infrastructure provider, for which IAM, billing and payments are the 3 pillars of the ecosystem. You just can't outsource these business foundations to a third party.

kdeldycke··on FFmpeg 4.4
Indeed! Here is my collection of FFmpeg CLIs: https://github.com/kdeldycke/kevin-deldycke-blog/blob/main/c...
kdeldycke··on AdGuard publishes a list of 6K+ trackers abusing the CNAME cloaking technique
I just proposed to this merged to NextDNS.io (a kind of Pi-Hole in the cloud) reference blocklists: https://github.com/nextdns/metadata/issues/601
kdeldycke··on Resources for chief technology officers, with the emphasis on startups
Same here for Engineering Managers: https://github.com/kdeldycke/awesome-engineering-team-manage...

With an emphasis on how to transition from developer to a management position.

kdeldycke··on Arrow v1.0: After 8 years, even better dates and times for Python
Arrow is the only Python library with date-aware ceiling and flooring methods.

I wouldn't have been able to design and implement Scaleway’s billing pipeline in 2013 without those.

More details at: https://kevin.deldycke.com/2020/10/billing-pipeline-critical...

kdeldycke··on Predicting Hard Drive Failure with Machine Learning
Which attributes IDs are you referring to?

Current_Pending_Sector + Reallocated_Sector_Ct + Offline_Uncorrectable + ???

kdeldycke··on Falsehoods programmers believe about Biometrics
Just added that article to the collection: https://github.com/kdeldycke/awesome-falsehood/commit/eadea6...
kdeldycke··on CSS in GitHub Readmes
SVG seems like a under-utilized method! ;)
kdeldycke··on Koyeb Serverless Engine: Docker Containers, Continuous Deployment of Functions
This might come handy to resize all the images for my static website, which was hammered by HN this week as it reached the front page. This lack of optimisation increased my AWS invoice 3 times (because of CloudFront outgoing bandwidth).
← PreviousPage 2 of 5Next →