14,908 karma · joined May 29, 2012
"Soon we'll be sliding down the razor blade of life" is a lyric from "Bright College Days", rather than a song of its own. I'm not sure that you intended to imply it was a song, but it was unclear.
> BTW, search for “Tom Lehrer” on YouTube Music - they have a lot of his stuff.
(And/)or check out his website, with all of his music (which he's placed in the public domain): https://tomlehrersongs.com/
I grant that this makes the project significantly larger if you're going to remove that constraint.
> Seven Republican senators joined all Democratic and independent senators in voting to convict Trump, the largest bipartisan vote for an impeachment conviction of a U.S. president or former U.S. president. After the vote on the acquittal, Mitch McConnell said, "There's no question that President Trump is practically and morally responsible for provoking the events of the day." but he voted against conviction due to his interpretation of the United States Constitution.
It's worth noting that the Supreme Court ruling here probably disagrees with McConnell's interpretation of the Constitution in a way that should have changed his vote.
A one-time pad generated correctly and used correctly will remain highly secure, provided you have a highly secure means of sharing the key material. There's a lot rolled into those assumptions.
I have a utility (dklocs) that'll turn git-formatted diffs into location-prefixed changed lines. It lets me do things like `git diff master | grep thatThing | vim - -c cbuffer!`. I built it for me (and probably use it multiple times a day) but threw it on github (along with another tool for intersecting a diff with code coverage that I don't think I've used since the motivating use case - where it did prove helpful).
I don't know if it quite counts as "creating software" but I've got some scripts and configuration to maintain separate context in named screen/tmux sessions, setting shell variables and aliases, adjusting the prompt, starting in some particular directory. Most useful there is segregating history by context, so ctrl-r when I'm coding doesn't step through system administration stuff.
I have a general project to decompose applications into utilities, and a pattern for dealing with the long-running bits that's been somewhat successful. I once wrapped up libpurple in a client that worked that way, and (in a separate project) it's how I get errors from `cargo watch` into vim.
It is also a republic. It could be a republic even if it was a pure direct democracy somehow without "issues" - in fact I struggle to see how a direct democracy without issues could be something other than a republic.
I think academia is typically what's meant as an imaginary world, along with play that may be in reference to no world at all.
One way of viewing Haskell is that you are lazily constructing the single composite "effect on the world" called main.
helloWorld :: IO ()
then is a value representing an effect, but it only actually happens when it becomes a part of main.Threads complicate this but don't completely destroy the model.
Worth noting that that can be reactive, too. If an type checking error message is confusing or insufficiently localized, pinning down a few things around it can clarify.
As tome says, though, that can be a thing in Haskell too. There exist situations in Haskell where the compiler cannot figure out the types for you, but they're not most code.
I've taken to calling that activity (removing syntactic redundancy that is only coincidental) "Huffman coding".
I think that logic is sufficiently sound, provided we know we are not being precise. I don't know enough about the case to say whether it actually applies here.
IIUC, Weird Al probably doesn't need permission for his parodies, legally speaking. He does get it anyway.
If you can do X in the first place, I don't think there's any general rule that you can't condition X on someone not signing a contract.
Not that it fully defangs the issue, but there are two other options that come to mind.
1) suppress the exception (maybe with a log)
2) capture the fact (and maybe content) of the exception and expose it through the API in some other way
Probably neither of these is going to be appropriate for most cases, but seem worth surfacing because 1 is often chosen even when it's inappropriate and 2 is often overlooked as an option.