News for hackers. Stuff that matters.

cshum

vipsgen is a Go binding generator for libvips - a fast and efficient image processing library.

Existing Go libvips bindings rely on manually written code that is often incomplete, error-prone, and difficult to maintain as libvips evolves. vipsgen aims to solve this problem by generating type-safe, robust, and fully documented Go bindings using GObject introspection.

If all you need is to generate thumbnail from the first frame of local video file, then ffmpeg cli with a bunch of shell scripts already does the job.

I use this for web video thumbnail manipulation. Having on-the-fly control right from the URL gives more versatility e.g. seeking by percentage, skipping the black frames etc. And this is more well suited with cloud storages.

Show HN: Imagor v1 – fast image processing server in Go and libvips

https://github.com/cshum/imagor/releases/tag/v1.0.0

Imagor is a fast, Docker-ready image processing server written in Go, with libvips. The v1 milestone has got more advancements to its internals.At the moment, all existing popular Go + libvips image applications (imgproxy, imaginary, bimg etc.) bridge libvips through buffer. While these are all good with normal web images, the latency and memory overhead can be noticeable when working through...

( Read More... | no comments | 2 points | on HN )
Re:The Dark Side of Smart Contracts on Monday February 07, 2022 @04:02AM (#30242107)
Such contract can proxy call another (upgraded) contract by changing references. This is defined on the contract source code and, by signing it, you agree its implications of "upgradable".

The proxy contract and the actual contract is immutable. The references and variables are not, as it is meant to be programmable.

Author here. Apologize for the late response, as I only realized it was on HN a few days after. Thanks for posting it!

A bit of our background: we have been a long time user of Thumbor, with millions of images serving under it and applications built around the Thumbor syntax. However Thumbor is not quite in active development anymore. Support is getting stale, and its stable version is still using Python 2.

So we started to look to alternatives. We wanted to keep the Thumbor syntax as it is a pretty good one, and we want no disruption to our existing image urls being created, and applications that built around it. So we wanted a drop-in replacement. We studied closely with Imaginary and Imgproxy which both are made with Go and libvips. Imgproxy is a pretty solid one, but we are not happy it is charging for premium, even for common features like Chained pipelines (a.k.a filters). Imaginary is very popular, but the feature parity gap is pretty large between Imaginary and Thumbor, with ongoing memory issues and the author seems not interested in maintaining it recently. And most importantly, neither of both sides are interested in adopting Thumbor's URL syntax. And building a proxy around them would be a half baked solution, as their high level APIs are unlikely meet the Thumbor's feature parity. And so we decided to do the hard work and here it is.

We have already implemented all features we need and it is working great for us in production. The S3 Loader/Storage is battle tested, but the file store is not though. We do acknowledge it has a long way to go to meet the Thumbor's feature parity. But this is just our first step and of course we wanna keep pushing it.

JavaScript is weird and stupid to begin with. Until it becomes the most widely used, fastest dynamically typed language.
Re:Technical = Coder. Non-Technical = Non-Coder. on Sunday April 22, 2012 @03:51PM (#3875862)
What I think: technical = can build stuff i.e. software <=> coder, hardware <=> electrical engineer, physical product <=> mechanical engineer and so on...
Re:Banned from Kickstarter for Being a Stalking Victim on Saturday April 14, 2012 @07:12AM (#3840550)
"someone has made a claim without anything to back it up" that's true, but neither do any posts in HN. Shouldn't we try to get some attention from Kickstarter and see how it goes?

Older »