HN user

rmgraham

243 karma

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 ]

Posts5
Comments104
View on HN

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.

I think the observation being made was that this is at the scary intersection of consumer IoT non-security and major infrastructure.

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.

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 :-/

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.

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?

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.

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).

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.

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?

Remote Only 8 years ago

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.

Remote Only 8 years ago

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.

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.

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.