Hacker Newsnew | past | comments | ask | show | jobs | submit | marlin's commentslogin

^ Insightful!

I too have been working in this space for a while. Then I found out about kaitai stuct, lost some steam but regrouped. I do have some novel ideas and my dsl is less verbose than theirs :)

I have a DSL in go with cli tooling at https://github.com/martinlindhe/feng/


Could you mention at least one of these open source projects like wine that under-delivered according to you?


In order to encode the ; as a character, when ; is being used as a separator.


I am also working on a project in this space. It is a template format for binary data, and accompanying commandline tooling. It is usable today for tasks such as:

- generating structured binary diffs

- creating universal extractors, several custom game formats are covered already

It is in a early stage but would love some feedback!

https://github.com/martinlindhe/feng


Is there allowance for file formats whose contents are dynamic, based on the values present in other parts of the file?

For instance "if value at offset X is 123, then treat this other block of data as format ABC, otherwise treat it as as DEF". Obviously can get complex. The Adobe PSD format does horrible things like this all over the place (:


Yes, see the "if statements" section in the (very terse) documentation https://github.com/martinlindhe/feng/blob/main/TEMPLATE.md#i...

You can see it in use in the PNG format template, here: https://github.com/martinlindhe/feng/blob/main/templates/ima...


Not wanting to derail your work but you could take a look at the pattern language here for inspiration. Seems as if it has the same goal https://docs.werwolv.net/pattern-language/


That's a cool project. I use ImHex myself but wasn't even aware of this.

Over the years there has been a silly amount of projects in this space, it is very hard to keep track of them all.

I did try to summarize the ones I know about in the feng project, see here, under "SIMILAR WORK":

https://github.com/martinlindhe/feng/blob/main/RESOURCES.md

Was there anything in particular you wanted to bring to my attention about the ImHex pattern language?

From a quick glance it looks similar indeed, with the same basic building blocks as feng (data types and structs), while they use a rust inspired format, and I use yaml format (however I also use the rust-inspired data type naming u8, u16, s16 and so on).

A major difference is that feng strives to be usable with minimal/no programming (a custom dsl was developed around this idea), while the ImHex pattern language does look rather classic programming focused data processing (like 010 templates but more pretty syntax)


> This entire genre of tools has been a long time point of interest for me.

Same for me! It turned into a long journey and I am working on a solution that I am very happy about.

Somewhere mid-journey I learned about kaitai struct and lost a bit of steam seeing it was similar. But I think my offering is superior in a more simple template format with less programming required and a nice cli app.

I am yet to announce it publicly, but i been meaning to for so long already.

If you would like to check it out I would be happy!

You can use it to map / view content from a format there is a template for. Alot of common formats is already included and you can extend it using your own templates.

https://github.com/martinlindhe/feng


As someone who had a great time with Kaitai, may I suggest that you write an interface so that fq can be used with any format that Kaitai understands (and any that people add in future)


> About a central database of binary parsers, I've been wanting this for ages too. The closest I ever found was augeas, but that's for configuration files.

I'm working on something, that is a open template format for binary file formats. It is usable today as a universal file extractor, with some bugs and limitations.

Check it out at https://github.com/martinlindhe/feng


I'm working on something, that is a open template format for binary file formats. It is usable today as a universal file extractor, with some bugs and limitations.

Check it out at https://github.com/martinlindhe/feng


EDIT: i realized i answered about btsync while question was about syncthing, sorry.

Regarding detecting file modifications: my friend had issues with his synology diskstation eating 100% cpu with btsync with around 50k files. With less files it was down to 20%. We never debugged it properly but it may be polling issues, but it could also have been out of ram-swapping issues (512MB ram was not enough).

Others have reported issues with many files:

https://forum.bittorrent.com/topic/23802-syncing-600gb-10-mi...


Is Synology ARM? syncthing seems to have a couple of different versions if he wants to try that: https://github.com/calmh/syncthing/releases


Dropbox actually have a "Sync over LAN" checkbox. It just never seem to been implemented/enabled.

I actually just dropped Dropbox for btsync the other week and are very happy, it's iOS app even serves other clients with files over LAN.

Btsync however uses quite crappy crypto and is closed source etc etc.

Syncthing mentions they use TLS encryption, hopefully i can roll my own 8k keys.

I tried Sparkleshare last year aswell, but my experience was mixed. Also it relies on quite a different architecture (git) than a "versioning bittorrent protocol".

Looking forward to evaluating syncthing when time permits.


Isn't it always enabled by default?!

The last few times I've set up a new machine locally I've used Dropbox to pull over stuff. It usually moves at 40-50 MB/s (megabytes) which is certainly using my gigabit LAN.


According to [1], "LAN sync" only works when file has already been uploaded to the dropbox servers.

If this is accurate, then I guess this is the issue i have noticed.

1: https://superuser.com/questions/663600/set-dropbox-to-only-u...

UPDATE:

Confirmed by [2], that Dropbox LAN sync indeed only works once the file reached their servers.

"Well, when you add a file to your computer's Dropbox, the file is then synced with Dropbox servers. Dropbox will then initiate the syncing process as soon as it determines a change has been made to the file. All linked computers and shared folders will then download any new version of the file. With LAN syncing, Dropbox will look for the new file on your Local Area Network first, bypassing the need to download the file from Dropbox servers, thus speeding up the syncing process considerably."

2: https://www.dropbox.com/help/137/en


For anyone wondering, Dropbox changed this a while back. The requirement to sync to Dropbox first was added at that point.


That's good to know. Basically LAN sync is a misnomer, because it only works in the download direction.


Dropbox actually have a "Sync over LAN" checkbox. It just never seem to been implemented/enabled.

It is enabled by default and works beautifully.


I can confirm it's probably enabled by default, every network I see these days is spammed by Dropbox broadcast messages.


How come?

I have seen it working.


Thats curious. I never got it working between Windows, Linux and Mac clients. Sorry for drawing conclusions.


Curiously, it translates to "It's a child in a candy" on my google translate session.


The presence or absence of period is enough for Google Translate to create entirely different translations!

My link above doesn't have a period at the end. HackerNews cuts off the period from the end of the URL it seems.

So clicking on this link,

https://translate.google.com/#la/en/Duis%20gravida%20orci%20...

gives It's a child in a candy, but if you then manually add a period to the end of the sentence, you'll get, Designers in the film which, unlike in the United States.


omg, that's hilarious!


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

Search: