HNHacker News
TopNewBestAskShowJobs

gaul

858 karma · joined July 1, 2010

Chief simulacrum officer, chronicler of hipster museums, and Potemkin geek. https://gaul.org/

[ my public key: https://keybase.io/gaul; my proof: https://keybase.io/gaul/sigs/DtswoGs6HGcXb01P9qsR9TH65rJFSUZ0SuqiSV7ZXKY ]

submissionscomments
gaul··on Goodbye, Feedly
https://tt-rss.org/ is a free software, self-hosted alternative and https://ttrss.info/ is a paid hosted offering.
gaul··on Toxiproxy is a framework for simulating network conditions
Vaurien can do this:

https://github.com/community-libs/vaurien

gaul··on size_t-to-int vulnerability in Linux’s filesystem layer
clang's -Wshorten-64-to-32 can catch this:

https://clang.llvm.org/docs/DiagnosticsReference.html#wshort...

The more general-purpose -Wconversion has many false positives, often around int to char conversion. Some functions like int toupper(int) have an unexpected int return type to deal with special out-of-bound values like EOF.

gaul··on Branch predictor: How many “if”s are too many?
This is not a NOP; it explicitly clears the upper 32 bits of EDI since the compiler does not know that they are zero in this situation. If you change cc from an int to size_t (long on x86-64) the compiler will generate:

        mov     eax, OFFSET FLAT:.LC0
        cmp     rdi, 258
        ja      .L1
        mov     rax, QWORD PTR CSWTCH.1[0+rdi*8]
Note that in some cases the compiler can do this automatically via lifetime analysis but not in this freestanding example.
gaul··on Dropping Hashes (2020)
Robert O'Callahan hashed some thoughts about Firefox that he revealed many years later:

https://robert.ocallahan.org/2018/01/ancient-browser-wars-hi...

gaul··on The Evolution of the QEMU Translator
HP Dynamo is similar to what you suggest:

https://www.hpl.hp.com/techreports/1999/HPL-1999-78.html

Note that CPUs and compiler optimization have improved over the last 20 years and these results may not still hold.

gaul··on The future of 32-bit Linux
The article mentions 32-bit Raspbian which is moving to 64-bit to better support the Raspberry Pi 4 with 8 GB of RAM. Both the RPi 3 and 4 have 64-bit support but earlier models, including the popular and still-on-sale Zero, do not support 64-bit. This platform will likely stick around for a long time; we need to continue to fix issues like this size_t/off_t one in s3fs:

https://github.com/s3fs-fuse/s3fs-fuse/pull/1039

gaul··on S3 Strong Consistency
Thanks for testing! You may improve performance via increasing -o parallel_count (default="5"). Newer versions of s3fs have improved performance but please report any cliffs at https://github.com/s3fs-fuse/s3fs-fuse/issues .
gaul··on S3 Strong Consistency
This is great news for application developers! And probably hard work for the AWS implementors. I will try to update this over the weekend: https://github.com/gaul/are-we-consistent-yet
gaul··on S3 Strong Consistency
Could you expand on this comment? s3fs uses multiple threads for uploading and populating readdir metadata via S3fsMultiCurl::MultiPerform. Earlier versions used curl_multi_perform which may have hidden some of the parallelism from you.
gaul··on S3 Strong Consistency
This is not expected behavior. An older version had pessimized locking which preventing concurrently adding a file to a directory and listing the directory simultaneously which is the most similar symptom. I recommend upgrading to the latest version, running with debug flags `-f -d -o curldbg`, and observing what's happening. Please open an issue at https://github.com/s3fs-fuse/s3fs-fuse/issues if your symptoms persist.
gaul··on Would you be willing to fund a Linux port to Apple Silicon?
I maintain mbpfan and have contributed to a few other Linux on Mac tools.

Linux on Mac is not worth the effort. I ran Ubuntu on a 2011 MacBook Air and now run Fedora on a 2014 MacBook Air. There were several papercuts even with these relatively open models where it took a while to get suspend, trackpad, fan, webcam, wifi, etc. working properly. You will need to use binary drivers for the latter two features and some strange EFI bootloader. It seems that newer MacBook compatibility is worse:

https://github.com/Dunedan/mbp-2016-linux

I use Debian on ThinkPad at work and plan to buy this or a Dell XPS for my next laptop.

gaul··on Apple Silicon M1 chip in MacBook Air outperforms high-end 16-inch MacBook Pro
Note that this laptop uses Kaby Lake based on the older Skylake design. Newer laptops use Sunny Cove based on Ice Lake and have improved single-core performance.
gaul··on Apple Silicon M1 chip in MacBook Air outperforms high-end 16-inch MacBook Pro
MacBook Air with M1 vs. XPS 13 with Tiger Lake i7-1165G7:

https://browser.geekbench.com/v5/cpu/compare/4306696?baselin...

Single core similar and multicore 50% better for MacBook.

gaul··on A better way to do remote presentations
Every talk should include a link to the slides at the beginning and end of the deck, preferably with a shortened URL. This allows live viewers random access but also improves recorded talks. I often want to evaluate the content of a talk to see if I should invest 30-60 minutes watching. This would also help users with accessibility needs.
gaul··on Backblaze B2 Cloud Storage Now Has S3 Compatible APIs
This changed in 1.86 and I updated the README as follows:

> random writes or appends to files require rewriting the entire object, optimized with multi-part upload copy

Now changing one bit means re-uploading 5 MB, the minimum S3 part size.

gaul··on Awesome-ld-preload: List of resources related to LD_PRELOAD
Fixed; thanks for the feedback.
gaul··on Java's URL.equals() Performs DNS Resolution
URL's behavior is unfortunate and users should prefer URI introduced in Java 1.4 in 2002. error-prone warns about dangerous uses of URL:

https://errorprone.info/bugpattern/URLEqualsHashCode

gaul··on You don’t have to be “pro-nuclear” or “anti-nuclear.”
I was surprised to learn that America makes 805.3 TWh[1] but France only 519.4 TWh[2] of nuclear energy.

[1] https://en.wikipedia.org/wiki/Nuclear_power_in_the_United_St... [2] https://en.wikipedia.org/wiki/Nuclear_power_in_France

gaul··on Show HN: B2blaze – A Backblaze B2 library for Python
Object stores unfortunately innovate on their APIs instead of their implementations. I wrote S3Proxy to bridge the gap between S3 applications and a variety of object stores including B2:

https://github.com/gaul/s3proxy

gaul··on Operation Elop: The final years of Nokia’s mobile phones
Only the 3rd generation Fire TV Stick runs Fire OS 6, based on Android 7.1. The latest Fire tablet runs Fire OS 5.6, based on Android 5.1:

https://en.wikipedia.org/wiki/Fire_OS#List_of_Fire_OS_versio...

gaul··on Extensions in Firefox 59
Relevant issues:

https://bugzilla.mozilla.org/show_bug.cgi?id=52821 https://bugzilla.mozilla.org/show_bug.cgi?id=1325692

gaul··on Show HN: Add S3 Capabilities to Azure Blob Storage Using Minio
Java hate is unnecessary. S3Proxy has low memory usage and a similar image size.
gaul··on Show HN: Add S3 Capabilities to Azure Blob Storage Using Minio
Azure shared access signatures provide the same functionality as S3 pre-signed URLs with a few extra features:

https://docs.microsoft.com/en-us/azure/storage/common/storag...

gaul··on Show HN: Add S3 Capabilities to Azure Blob Storage Using Minio
S3Proxy gateways to Azure as well as Backblaze, Google Cloud, and Swift:

https://github.com/gaul/s3proxy

gaul··on Wasabi – Simple storage solution
> They claim 100% S3 compatibility but it fails a large number of API calls using Ceph’s s3-test. I didn’t dig into this too far but they do claim “No need to change your S3-compatible application” so changing my endpoint + credentials should have worked. To their credit - PUT, GET and DELETE did work but that is only 3 of 100’s of API’s.

Validating claims of S3 compatibility is important. The S3 API has corner cases like and misfeatures like BitTorrent hosting but sometimes vendors omit key features like multi-part upload and v4 signatures. s3-tests[1] is the best way we have to evaluate implementations yet only Ceph and S3Proxy seem to contribute to it. Users should hold vendors' feet to the fire about these these claims.

[1] https://github.com/ceph/s3-tests

gaul··on Ask HN: Is S3 down?
S3 applications can use any object store if they use S3Proxy:

https://github.com/andrewgaul/s3proxy

gaul··on Show HN: Amazon S3, Microsoft Azure, Rackspace, Backblaze via a Single API
S3Proxy uses Apache jclouds underneath which has broad compatibility with object stores including S3 clones. However no two S3 implementations are alike so you will need to test.
gaul··on Show HN: Amazon S3, Microsoft Azure, Rackspace, Backblaze via a Single API
Fair point, I will update the AWS us-standard results and include Backblaze as well.
gaul··on Show HN: Amazon S3, Microsoft Azure, Rackspace, Backblaze via a Single API
You can compare these guarantees and results from testing:

https://github.com/andrewgaul/are-we-consistent-yet

Page 1 of 2Next →