5 ms·
Hi, I'm the author. Thanks for all the kind words! I'm very actively developing Hex Fiend, which is nearing a new release. Some major new features are bookmar
by ridiculous_fish 16y ago
Hi, I'm the author. Thanks for all the kind words!
I'm very actively developing Hex Fiend, which is nearing a new release. Some major new features are bookmarks, support for text encodings (including multibyte, though sadly not variable width), support for opening files only readable by root, including device files (after authentication, naturally), and a visual binary diff (a true LCS diff). There's many other miscellaneous improvements and bug fixes, including the longstanding request of preserving the Undo stack after Save, when doing so would not require too much memory.
For those unfamiliar with Hex Fiend, the features that set it apart from other hex editors are:
- Very deep support for large files. Many other hex editors have some support for large files, but it's easy to get into a situation where they consume all your memory, or do some O(n) blocking operation that hangs the UI. Hex Fiend never does either.
- Natural Mac-like editing, including insertion and deletion, smooth scrolling, multiple discontiguous selection, anchored selection, coalesced undo, key bindings, lots more.
- It's provided as a framework which is easy to embed in other apps.
- It's open source with a permissive BSD style license.
Some have asked how Hex Fiend compares to 0xED. Not to pick on anyone, but I'll give some examples that illustrate Hex Fiend's strengths relative to 0xED (and most other hex editors):
1. Open a large file (say 5 GB), overwrite some bytes in the middle, add some bytes to the end, then hit Save. Hex Fiend will appear to save instantly because it makes the changes in-place, while 0xED will require time proportional to the file size as it writes the entire file to disk.
2. Search for some text. 0xED will block the UI until the text is found or the file is exhausted, while Hex Fiend performs the search in the background, including a progress indicator and cancel button.
3. Select everything in the file and choose Edit->Copy. Hex Fiend will do this instantly, while 0xED will require time and space proportional to the file size, as it attempts to read the entire file into memory. Now select all and hit the delete key. Hex Fiend again does this instantly, while 0xED will again try to read the file into memory (to service its Undo stack).
Let me know if you have any questions and I'll be happy to answer them in this thread!
- yan 16y agoJust wanted to say, thanks so much for HF! Reading source of HF1 (and more recently HF2) taught me more about AppKit than anything else and not to mention a pleasure to use. (I emailed you about writing a data analysis plugin a few years ago to which you replied a very thorough and informative write up. It's still on back burner heh) Also, your blog rocks.
- kschua 16y agoThanks! I was looking for something like this
- neutronicus 16y agoFirst of all, I love your app. It has been _invaluable_ to me in my work. I do however, have a few UI niggles you might be interested in hearing. When I jump to an offset, I have the hardest time spotting the cursor. There's that nice brief yellow line flash so I can see what line the cursor is on, which is already a lifesaver, but I just can't spot the little blinking line, the grey on white just doesn't stand out enough I guess. I have to click on the line and basically binary search down to the right offset. Some sort of call out for the quad of bytes containing the cursor as well as the line would be _awesome_. Also, since I'm mostly looking at scientific data I'm trying to parse, it is _awesome_ to hear that you've added signed floats and integers. Let me just reiterate, thanks for this app. (Also, apologies if I'm referring to an old version - I don't know offhand which one I have)
- ridiculous_fish 16y agoThat's a good suggestion. Please feel free to add any requested features or bugs you find to the wiki page at http://ridiculousfish.com/hexfiend/docs/wiki/Bugs/Bugs http://ridiculousfish.com/hexfiend/docs/wiki/Bugs/Bugs . Thanks!
- shrikant 16y agoYou would like this thread: http://news.ycombinator.com/item?id=1540621 http://news.ycombinator.com/item?id=1540621 :-)
- wooster 16y agoHah :-)
- copumpkin 16y agoTwo questions: 1) Will it be available on the Mac Appstore? :) 2) You mention that adding some bytes on the end is instant, and so is modifying bytes in the middle. It seems that for most filesystems (and definitely HFS+), it should be possible to insert data in the middle of a file (not really that common in most of my hex editing habits, but maybe for some people?) without incurring much of a cost either. If the inserted data is between extents, then you simply stick a new extent between them, and if it's within an existing extent, you can split it in constant time and do the same thing. Do you know of any Mac OS APIs provide low-enough-level access to do this? Or does it not seem feasible for some other reason?