HNHacker News
TopNewBestAskShowJobs

rmgraham

243 karma · joined July 15, 2009

Professional software developer. Programming language, open source, and technology enthusiast.

[ my public key: https://keybase.io/rmg; my proof: https://keybase.io/rmg/sigs/pWw62UMFkJ8JZWzVJt9Sy8UAmLFxrg0YfbjfVCiJxLA ]

submissionscomments
rmgraham··on Small File Archives in MinIO
Tar doesn't use any sort of index like zip does, so to extract the specified file the server side would need to parse through possibly the entire file just to see if the requested file is there, and then start streaming it. Requests for files that aren't in the tar archive would be prohibitively expensive.

There are definitely ways to do it without those problems, though. They just wouldn't be quite as simple as the approach done for supporting zip.

rmgraham··on Tesla PowerWall 2 Hack
I think the observation being made was that this is at the scary intersection of consumer IoT non-security and major infrastructure.
rmgraham··on Electron apps cannot be submitted to the Apple store
Or only run Linux? *

* (any source available OS)

rmgraham··on Build Your Own X
This is a great resource. There were also some other useful links in the comments last time: https://news.ycombinator.com/item?id=17054419
rmgraham··on Mercurial RFC of a new extension to directly operate on Git repositories
I haven't used hg enough to have an opinion on it, despite several attempts... Problem is I learn bottom up, and I just haven't been able to "think in mercurial" the way I can "think in git".

I find it interesting that what git calls a commit is actually a revision (or checkpoint, snapshot, point-in-time) and what mercurial calls a revision is actually a commit (or patch, delta, changeset).

I think a lot of people think in terms of patches/changesets and I suspect (still haven't gotten far enough to confirm) hg is a toolbox for managing them in a similar way to how git is a toolbox for manipulating its snapshot based DAG.

rmgraham··on Whales Keep Carbon out of the Atmosphere (2017)
Alternatively... how large would the whale population need to be to counter the carbon footprint of such tourism?
rmgraham··on 99% of the Git commands you'll need at work, demonstrated in a single script
If you're using rebase there's the `--committer-date-is-author-date` and `--ignore-date` flags. One uses the author date for both and the other uses the commit date for both.

Without using either flag rebase should update the commit date and preserve the author date.

If by rebase you meant GitHub's rebase merge option I think you're out of luck :-/

rmgraham··on Async-std: an async port of the Rust standard library
Thank you for humoring me. I had to sleep on it, but I can see it now. Seems like it would require a really bad design or more likely bad actors (remotes leaving dead sockets open), but it would definitely be possible.

The same scenarios would lead to resource exhaustion if the thread pool wasn't bounded.

rmgraham··on Async-std: an async port of the Rust standard library
Are those really the only options? I'm trying to wrap my head around how using a fixed size thread pool for I/O automatically implies deadlocks but I just can't. Unless the threads block on completion until their results are consumed instead of just notifying and then taking the next task..

I can definitely imagine blocking happening while waiting for a worker to be available, though. Did you mean simply blocking instead of deadlock?

rmgraham··on The relativistic discriminator: a key element missing from standard GAN
GAN, Generative Adversarial Network: https://en.wikipedia.org/wiki/Generative_adversarial_network
rmgraham··on The Japanese Calendar’s Y2K Moment
I suspect "Western-style dates" was meant to refer to the Gregorian calendar rather than the format used to represent a date on that calendar.

ISO-8601 only really applies to the Gregorian calendar.

rmgraham··on Query Parquet files in SQLite
I really liked that 2/3 of the post is a walk through the solutions using existing tools before getting to the project.

I also like how it combines a "big data" format (parquet) with the main "your data isn't actually big data" tool of choice (sqlite).

rmgraham··on The Strange History of the "King-Pine"
It's about pineapples.
rmgraham··on Eight hours a night isn’t enough, according to a leading sleep scientist
Seconded. The only person I know who sleeps like this is also the highest functioning person I know.
rmgraham··on Show HN: T2b – A wicked-powerful text macro language for building binary files
I really wanted something like this when embedding serial numbers and keys in ROMs. At the time I was mostly working in C and PHP, so I was imagining something closer to a template language, but something like this would have given me a good intermediate step where I could have used PHP to render this text format and then ran that to produce the necessary bits on disk.

A decade late for me, but still looks cool.

rmgraham··on How to become a dramatically better programmer
More like encouraging the creators of IKEA furniture assembly instructions to read lots of other instructions so that they can get better at writing instructions.

An analogy for improving one's ability to assemble IKEA furniture, using this pattern, would be to watch others assemble all types of furniture in order to improve your own abilities. Wouldn't it?

rmgraham··on Remote Only
One of the benefits listed in the manifesto (and often touted elsewhere) is that you are not limited to a specific region when hiring.

Unfortunately, what this means for candidates is they may have to compete with a LOT more people.

Another challenge you're likely facing is that a lot of companies are only willing to hire senior developers to work remotely because hesitant upper management thinks they will be more trustworthy (completely ignoring the level of trust inherent in having someone write code for them when they themselves can't even verify it).

That negativity aside, here's some advice: As much as there is some backlash around the idea of a GitHub profile being mandatory, one VERY practical use of an open source portfolio of some kind is that almost all open source project work is done remotely using the very same skills required for successful remote employment. This applies even more so to non-programming contributions, in my opinion, which means you don't even need to contribute code to demonstrate these skills.

rmgraham··on Remote Only
I've been full-time remote for just shy of 5 years and timezones is definitely an issue. Up to 4 hour difference is sustainable indefinitely, 8 hours can be with the right people (doing split days is great for this), but beyond 8 hours and the amount of effort required for synchronous communication (video calls) causes it to not happen and the team loses cohesion.

You need the synchronous communication to have non-work conversations, and you need those non-work conversations to develop and maintain the relationships required (trust, rapport, etc.) for remote work.

> if your organization ever becomes big enough to warrant a physical office

...then you probably don't have enough buy-in to be a fully remote company and that is far harder to work around than timezones.

rmgraham··on Google Duplex: An AI System for Accomplishing Real World Tasks Over the Phone
But compared to the rate of change in technology, it's practically written in stone!
rmgraham··on A Unix shell script implementing ACME client protocol
I asked someone when I saw them doing similar things. They adopted the style after reading Google's style guide for shell scripts. Not sure if that's where this author got it from, but it's one possible source.
rmgraham··on The Makefile I use with JavaScript projects
You can use forward slashes for paths on Windows in your Makefile. They are actually required if you want to use wildcards.
rmgraham··on RxNDA.com: Painless Commercial NDAs Online
There's something about the verbose text-only UI that just screams "written by a lawyer". The copy is not even objectively that wordy, it just feels like it started as legalese and was pared down to this instead of starting with a blank page and adding all the popular SaaS-landing-page tropes.

I like it.

rmgraham··on DeepFlight – High Performance Personal Submarines
I like the idea behind the Super Falcon model: fixed positive buoyancy with an inverted wing design.

Like a plane, but with gravity replaced by buoyancy and the Y axis inverted so the wings "lift" you down.

rmgraham··on Apache Foundation disallows use of the Facebook “BSD+Patent” license
IANAL, but...

People should be aware that Atom (the editor) uses React internally, so it's possible you face similar legal exposure without even shipping anything just because you agreed to the terms by installing an editor.

rmgraham··on IBM says remote working is great after forcing employees to work from office
As a full-time remote person (at IBM, ironically), I personally hate using the phone - however, video/voice call via Slack or similar is totally fine. As far as I'm concerned, a decent headset is the #2 requirement after a good internet connection when it comes to working remotely effectively.
rmgraham··on Abandon Your DVCS and Return to Sanity (2015)
I find that knowing how it works is the only way the commands and flags make any sense. I am constantly seeing people around me fumble through git trying to get by on a handful of commands they've memorized and just live with the fact that they need to re-clone their repo every now and then.

These people scare me. How can they be comfortable not even knowing what they are telling git to do?

I taught myself how the DAG worked, then the low level commands to manipulate it. Now when I read the docs I get nice surprises like pre-built commands for doing the series of operations I plotted out in my head (most recently 'git merge --no-commit' instead of read-tree, update-index, write-tree)...

Oh god, I've become that guy in college who refuses to use a CRC library until he understands the proof.

But seriously, I'm genuinely amazed people can use git at all without understanding it completely. The mnemonics make zero sense without background, and the operations are completely arbitrary looking.

rmgraham··on The rise and fall of the dungeon master on software projects
I was going to say hubris, but Wednesday also works.
rmgraham··on Mktmpio: Temporary databases that start instantly
Good idea, thanks!
rmgraham··on Mktmpio: Temporary databases that start instantly
Creator of mktmpio here. If anyone has any feedback I'd love to hear it!
rmgraham··on Node v4.2.0 (Stable)
There are a couple regressions in v4.2.0, but v4.2.1 should be out right away with fixes.
Page 1 of 4Next →