Hacker News new | past | comments | ask | show | jobs | submit | Cadwhisker's comments login

For testing, there's the Adobe DNG SDK: https://helpx.adobe.com/camera-raw/digital-negative.html

You'll find the whole spec there, too. I think the source is also available somewhere.


'.dng's share the same file format structure as '.tiff's, but they have some extra fields.

For stills photography, Adobe's '.dng' format does fairly well, from 8-bit to 16-bit. It copes with any of the 4 possible standard RGGB Bayer phases and and has some level of colour look-up table in the metadata. Sometime this is not enough for a camera's special features and The Verge's article covers those reasons quite well.

For video, things get much more complicated. You start to hit bandwidth limits of the storage media (SD cards at the low end). '.dng' files were not meant to be compressed but Blackmagic Design figured out how to do it (lightly) and still remain compatible with standard '.dng' decoding software. Other, better compressed formats were also needed to get around the limits of '.dng' compression.

Red cameras used a version of JPEG 2000 on each Bayer phase individually (4 of them), but they wrapped it in patents and litigated hard against anyone who dared to make a RAW format for any video recording over 4k. Beautifully torn apart in this video: https://www.youtube.com/watch?v=IJ_uo-x7Dc0

So, for quite a few years, video camera companies tip-toed around this aggressive patent with their own proprietary formats, and this is another reason why there's so many (not mentioned by The Verge).

There's also the headache of copying a folder of 1,000+ '.dng' stills that make up a movie clip; it takes forever, compared to a single concatenated file. So, there's another group of RAW video file formats that solve this by recording into a single file which is a huge improvement.


It's great when you read further down the comments and come across a gem like this. I had no idea this was possible; thanks.


I wanted to look at one of the links in that page about memory training in adults.

It's ironic that the page didn't exist and I had to go to a backup from 2014 in archive.org to find it.

https://sharpbrains.com/blog/2008/04/22/working-memory-train...

https://web.archive.org/web/20140713110043/http://sharpbrain...


There's a benchmark tool here: https://chevrotain.io/performance/

Ohm appears to be much slower.


I'm particularly impressed with the visual PEG debugger tool, here: https://ohmjs.org/editor

PEGs are extremely difficult to debug when things go wrong because you get a MASSIVE trace (if you're lucky) to sift through. This tool has rewind/playback controls to dig into what the PEG rules are doing.

Previously, the best I'd seen was cpp-peglib's online parser, here: https://yhirose.github.io/cpp-peglib/

Edit: and now having read through comments here, Chevrotain's PEG tool looks really impressive, although it doesn't use a simple PEG syntax for the input: https://chevrotain.io/playground/


Thanks for the kind words :)

I also wrote a blog post about some of the decisions that went into the visualizer: https://dubroy.com/blog/visualizing-packrat-parsing/


I spent some time looking at debugging with Chevrotain and your solution is so much easier to use. That's a great blog post; thanks again.


I had a friend that also lost the domain name for their small business when Godaddy sold it from under them.

The process was:

* They missed the expiration warning (their fault)

* On the date of expiry, Godaddy immediately "sold" the domain name to a subsidiary called Afternic

* Once there, it was auctioned off to a company that forwards traffic to an Indonesian gambling site

No amount of phone calls, emails or any customer support could get their domain back. They suggested the domain could be re-claimed by going through a Godaddy broker, but the cost was extortionate and even though they were willing to pay, it still didn't go through (I don't have those details).

A customer-friendly approach to a domain expiry with no email response would be to deactivate the DNS records for a week before taking further action. Any active domains would notice the mistake pretty quickly and remedy it. The immediate on-sale of the domain is a pure cash-grab with no care given to customers.

Someone has described a similar experience here: https://drawne.com/godaddy-afternic-scam/

In this case, the solution is to always make sure your DNS contact email address is operating, but these people were not IT professionals and their configuration mistake cost them a huge part of their business.


Debugging a complex PEG is a nightmarish task. I use various tools, but I couldn't find anything out there that will let you set a breakpoint in a file that's being parsed and let you explore the parsing state.

The most useful tools I found were adjacent to the cpp-peglib library: https://github.com/yhirose/cpp-peglib

This comes with a PEG playground: https://yhirose.github.io/cpp-peglib/

I really liked pegdebug: https://mqnc.github.io/pegdebug/

With sample output here: https://mqnc.github.io/pegdebug/example/output.html

pegdebug is nice for small sets of data, but it rapidly gets swamped by anything over about 50 lines.

If anyone has other suggestions for debugging PEGs, please reply and let me know,.


I swear as I played it, I actually felt something.


I released a free watch face for the FitBit Versa (pre-Google) which emulated a Casio-style LCD. I can't remember the name, but you can get paid ones which look decent:

https://play.google.com/store/apps/details?id=com.azya.fitbi...


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: