HNHacker News
TopNewBestAskShowJobs

pixelbeat__

567 karma · joined February 1, 2017

https://twitter.com/pixelbeat_
submissionscomments
pixelbeat__··on How do Unix pipes work?
Agreed. Correct handling of SIGPIPE is quite subtle and often done incorrectly. I've some notes on SIGPIPE considerations at:

http://www.pixelbeat.org/programming/sigpipe_handling.html

pixelbeat__··on The growth of command-line options, 1979-Present
GNU coreutils has been very careful when adding new options. We're also careful to provide constructive feedback on why it might be best _not_ to add an option, and have summarized many of these discussions

https://www.gnu.org/software/coreutils/rejected_requests.htm...

pixelbeat__··on Wc in D: 712 Characters Without a Single Branch
A couple of points with comparing coreutils,

* recompiling with -march=native can give significant wins over more generic binaries provided by linux distros.

* parallel processing helps with bigger files, and it's easy enough to leverage the existing wc binary to process in parallel.

Both points are discussed at: https://www.pixelbeat.org/docs/unix-parallel-tools.html

pixelbeat__··on The BLAKE3 cryptographic hash function
Some notes re coreutils and ssh

sha256sum uses 128KiB blocks when reading, which may be more optimized than the openssl program.

sha256sum supports using openssl libs as they are generally faster. This is enabled on Red Hat flavored distros and arch, but not debian flavored as yet

The upcoming release of sha256sum (8.32) will auto enable use of openssl for >= v 3, as openssl's licence has changed to apache in that version

pixelbeat__··on Killing a process and all of its descendants
The GNU coreutils timeout command encapsulates a lot of these issues. It's surprisingly difficult to handle all the edge cases and races.

https://www.maizure.org/projects/decoded-gnu-coreutils/timeo...

pixelbeat__··on Why GNU grep is fast (2010)
It takes a lot of focused work to keep them cohesive and performant

https://www.gnu.org/software/coreutils/rejected_requests.htm...

pixelbeat__··on I Don't Like Debuggers (2000)
Some tend to use debuggers for development details which I agree isn't great, as one tends to focus on details rather than overall structure.

But for actual debugging, especially for code you're not familiar with, they can save huge amounts of time. Some more notes on this at:

http://www.pixelbeat.org/programming/debugger/

pixelbeat__··on Problem solving with Unix commands
https://www.pixelbeat.org/cmdline.html#sets
pixelbeat__··on Problem solving with Unix commands
Set operations are very useful. Here's a summary:

http://https://www.pixelbeat.org/cmdline.html#sets

pixelbeat__··on Apple to contribute to U.S. teen's education for spotting FaceTime bug
iKid
pixelbeat__··on Accelerated “Ray Tracing in One Weekend” in CUDA
same in firefox nightly
pixelbeat__··on How the GNU coreutils are tested (2017)
Any practical program has the potential for bugs.

Note one can build the coreutils like busybox with the --enable-single-binary configure option. In this mode all 100 or so utils are combined to a single 1MB binary. I would not consider this bloated given the functionality provided.

pixelbeat__··on A Possible Proof of the Riemann Hypothesis from Sir Michael Atiyah
Apparently Sir Michael Atiyah is presenting a proof of the Riemann hypothesis on Monday using "a radically new approach based on the work of von Neumann, Dirac, and Hirzebruch"
pixelbeat__··on Life in the Spanish city that banned cars
It's interesting how people's expectations and attitudes develop. I remember landing at San Diego airport and asking how I could walk the relatively short distance into the city center. I just got looks of derision and directions to the taxi rank. I did attempt to find a walkable route myself to no avail.

It's an interesting contrast to banning cars and essentially banning walking

pixelbeat__··on I've mostly given up on making Ubuntu bug reports
Canonical has about 500 employees, Red Hat about 12,000.

It takes a certain scale to herd all the open source cats

pixelbeat__··on Beej's Quick Guide to GDB (2009)
Very nice guide, debugging a practical example

My own debugging with gdb summary: http://www.pixelbeat.org/programming/debugger/

pixelbeat__··on Catching integer overflows in C
I've found int overflow one of the most pernicious issues in C programming, and have been maintaining notes (which reference this article) at:

http://www.pixelbeat.org/programming/gcc/integer_overflow.ht...

pixelbeat__··on Unix Wildcards Gone Wild (2014)
This is one of the reasons GNU ls now quotes names with unsafe characters by default, so the common case of copy and pasting output from ls to commands will be safe, or if typing the argument, there is a visual indication of a potential issue.

If one want the older unsafe defaults you can add -N to your ls alias

pixelbeat__··on Shell Magic: Set Operations with uniq
I've a summary of the operations at:

http://www.pixelbeat.org/cmdline.html#sets

Note comm output is a bit awkward to parse, so I use another coreutils `join` command to process already sorted data

pixelbeat__··on Strftime's alpha-sorted man page vs. well-meaning people
Right. Even the UTC+7 forms are confusing. Best to use location based zones for input at least

http://www.pixelbeat.org/docs/linux_timezones/

pixelbeat__··on Mounting partitions from a dd image
libguestfs > losetup > fdisk

I.E. libguestfs is safer when dealing with images of unknown origin, and losetup has inbuilt support now for partition scanning.

Here's an old fdisk/parted wrapper I used to use:

http://www.pixelbeat.org/scripts/lomount.sh

pixelbeat__··on Patch runs ed, and ed can run anything
aflfast is mentioned in my second link and was the most used fuzzing implementation to find bugs in coreutils.

We've had a quick look at using oss-fuzz, which will need a bit of work since it's more suited to libraries rather than standalone utils.

pixelbeat__··on Patch runs ed, and ed can run anything
I'm the GNU coreutils maintainer and have fuzzed them extensively. For example a recent bad bug in TZ handling was found using AFL and fixed by: http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=94...

We put a lot of effort into the test suite which makes it easy for others to test various experimental security checkers. This has been detailed in the "third party testing" section at: http://www.pixelbeat.org/docs/coreutils-testing.html

pixelbeat__··on Rust 1.24
You can use strchr() for ascii, or strstr() otherwise. See utf8, searching section in http://www.pixelbeat.org/docs/utf8_programming.html
pixelbeat__··on What Thunderbird Learned at FOSDEM
It's been getting slower over time with noticeable stalls. Performance is a feature
pixelbeat__··on Thunderbird Starts Working on Improving Its Interface
It's great to see continued maintenance of this important project, and it'll be interesting to see the results of a visual refresh.

thunderbird has over 20 years lineage, and I've screenshots of the major stages at:

http://www.pixelbeat.org/docs/netscape_email/

pixelbeat__··on Why we never thank open source maintainers
Some thanks would definitely be appreciated at least to balance out the negative minority.

As a maintainer of a project¹ that many use, I've had private messages encouraging me to commit suicide etc. Not ideal.

¹ https://www.gnu.org/s/coreutils

pixelbeat__··on Firefox 57.0 Released
I don't see how to disable yhe existing horizontal tab bar though? Now I have both that and tree style :/
pixelbeat__··on Goodbye Uncanny Valley [video]
That's the point. The opening scene is the uncanny valley and supposed to be not quite realistic
pixelbeat__··on How to Quickly and Correctly Generate a Git Log in HTML
Also consider https://www.pixelbeat.org/scripts/ansi2html.sh for the general case of (colored) output to html conversion
← PreviousPage 3 of 4Next →