1,149 karma · joined August 21, 2007
http://github.com/staticshock
https://www.linkedin.com/in/backer
[ my public key: https://keybase.io/staticshock; my proof: https://keybase.io/staticshock/sigs/RmmrDvMdW0vtp1Y3DMef9vq4Q7hWg8iWHLtEo8E8xOY ]
I find it easier to think about the utility of semicolons from the perspective of individual sentences to be combined. And therefore, if a properly used semicolon were to be replaced with a period, the two resulting sentences should still make sense in isolation, they'd just feel ever so slightly too far apart.
"Semicolons bring the drama. That's why I love them." Does it work? Yes. Is there a clear through-line from one sentence to the next? Yes. Does the pause between the sentences feel a bit too abrupt, though? Maybe!
("Establish clear through-line" can be another nice reason to combine sentences with a semicolon.)
Just like how human beings choose different ways of presenting themselves to the world (e.g. masculine/feminine, gay/straight, goth/punk/preppy) as a form of social signaling, today's LLMs emit a certain "I'm AI" signal that humans pick up on, and human writers will likely have to continue evolving the counter-position(s) to that signal.
If the results of relatively simple, unsophisticated prompts get better at passing for human-written articles/blog posts/forum comments/etc, that'll increase the fraction of human writing that falls into this uncanny valley, and exacerbate the need for stronger counter-positioning over time.
> Be kind. Don't be snarky. Converse curiously; don't cross-examine. Edit out swipes.
The ability to create dependencies between targets is the cherry on top, but the main value is just the ability to create a cheat sheet of shell snippets accessible via `make <target>` from the root of the repo.
Such a makefile is always (1) version controlled as a secret github gist (though, as personal rule, i never hardcode secrets into it), (2) committed & pushed on `make` (3) git ignored via `.git/info/exclude`. This has worked quite well for me.
One downside with this approach is that the best syntax for passing parameters down to the target from the shell is to use environment variables, which is a little awkward. `NAME=value make target` is less pleasant than `make target --name=value` would have been.
Linkedin, of course, has some strains of its own (e.g. workism), but, surprisingly, I find it to be by far the healthiest social network out there.
That's probably owing more to self censorship than to moderation or algorithmic curation: your "professional" persona is more on display here than anywhere else.
So, yeah, sure, seems reasonable to suggest that linkedin has an anti-link bias, and the incentives for that bias are fairly intuitive. That being said, is it actually a bad thing, or does it also function as another tenet of their quiet but, in my mind, reasonably effective moderation approach?
This is a key insight; it's something I've struggled to communicate in a software engineering setting, or in entrepreneurial settings.
It's easy to get stuck in the "data driven" mindset, as if data was the be-all and end-all, and not just a stepping stone towards an ever more refined mental model. I think of "data" akin to the second phase in TFA (the "rigor" phase). It is necessary to think in a grounded, empirical way, but it is also a shame to be straight-jacketed by unsafe extrapolations from the data.
"Built-in commands" showcases [ ] vs [[ ]]. This is not an efficiency win, but a matter of using older POSIX syntax vs more modern and richer bash syntax. The utility of the bash syntax is that it supports nicer operators, such as < > in addition to stuff like -gt / -lt.
"Efficient File Operations" showcases IFS=, which is not used for the sake of efficiency, but to change how the line is tokenized. (And what good is an efficiency claim that's not backed up by any data?)
I did not look too closely, but I suspect the rest of this list is equally eyebrow-raising.
The internet has revealed us to be very picky shoppers. We do a lot of comparison shopping, looking for the "best" deal on the silliest item. That same skepticism applies to policies, even effective ones. I want to fund the best ideas, and the best ideas should be backed by compelling models and, ideally, empirical evidence.
There's something to be said for the VC mindset here: funding many things, each of which has a low probability of succeeding, and using unicorns to subsidize numerous losses. Tax payers don't like losses, but an example of something kind of similar that the government already does today is science funding.
In an expression such as (foo, ba|r, baz), where | is the cursor, it does the following:
via - (foo, |bar|, baz)
vaa - (foo|, bar|, baz)
vaA - (foo, |bar, |baz)
The overall experience was quite terrible, but I wouldn't be surprised if it's the norm.
> 111398, г. Москва, ул. Перовская, 20
> But just because it will be inconvenient for some users doesn’t mean that Apple won’t do it. In fact, you can almost hear the stage patter when the feature is unveiled: Most connectivity is wireless these days, we’ve made a great $49 accessory that adds all the ports you’d want, and the included power adapter—the most innovative power adapter ever—features a breakaway magnetic coupler and is itself a USB and Thunderbolt hub. I’m making the details up, but you’ve got to think there would be more to the story than, “Yeah, your power plug is also your USB plug, get used to it.”
Most options may be changed while less is running, via the "-" command.
So, just start `journalctl -l` as you would, then type in `-S` and scroll the screen in any direction to force it to re-draw.
Discussing it any further is bikeshedding, and distracts from the much more interesting segfault discussion.
In classical shells, a pipe basically connects binary stdout -> binary stdin. A pipe between PowerShell cmdlets, on the other hand, can produce .NET objects directly without having to serialize them, so the pipe can connect .NET object producer -> .NET object consumer. If the consumer can't handle objects, the pipe degrades to binary stdout -> binary stdin.
For instance, the pipe in `ls | grep` is drastically different from `ls | fl`, because the latter is an in-process transfer of a .NET object collection, while the former transfers lines of text from one process to another, (in this case, to GNU Grep.)
Upside: the consumer doesn't have to "parse" stdin to get reasonable data on which it can operate.
Downside: if you want to write a consumer, you're stuck in .NET land. (Oh, how I wish I could write a consumer written in python that could advertise that it supports a specific object-oriented serialization on stdin! Then we could write a PowerShell stdin/stdout compatibility layer into python as a module... Alas, I'm guessing this task is reasonably hard.)
Oddly, I couldn't find a great readable intro to the topic, but this comes close: http://www.darkoperator.com/blog/2013/1/28/powershell-basics...
It's a fully contained Makefile that gives my dotfiles repo `make && make install` semantics. `make` initializes whatever needs to initialize locally on that system, and `make install` creates all the necessary symlinks in the $HOME directory.
The shell script approach violates the DRY principle--it's probably super similar to some 50 other init scripts on the same system. systemd, in principle, removes the boilerplate so that the bug would only have to be fixed once.