Fork me on GitHub
#off-topic
<
2020-08-19
>
dpsutton15:08:34

when pronouncing tuple do you ay tUPle or tOOple

p-himik15:08:12

/tjuːp(ə)l/

aaron-santos15:08:36

tOOple when it is a 2-uple and tUPle everywhere else that n is unspecified.

💯 4
😂 2
dpsutton16:08:26

ah interesting!

Mno16:08:51

Two-ply is the good toilet paper

Mno16:08:08

So Two-ple it is.

😁 1
Sam Ritchie19:08:06

whoa, threeple? fourple?

Sam Ritchie19:08:29

My dad used to call out "fork" vs "threek" when we had three-tine utensils mixed in

1
aaron-santos20:08:14

I have been caught using threeple and fourple on occasion. It usually lightens the mood 🙂

Lennart Buit20:08:53

Haha in similar vain, are you rOOter people, or rAUWter people? And do you say ES-CUE-EL, or Sequel?

Lennart Buit20:08:26

The first time someone was talking about a rOOter, I got pretty confused

noisesmith20:08:54

I hear rowt and root for roads also, depending on region

noisesmith20:08:19

I have moved around enough that I seem to use any of these seemingly at random believe it or not

seancorfield20:08:11

As an ex-pat Brit who has lived in California for two decades, my pronunciation tends to be all over the map for some words -- I certainly say both rooter and rowter 🙂

Lennart Buit20:08:42

> In a study of American dialects (link below), Stephanie Nicole Hedges finds that the probability to pronounce “route” as rhyming with “out” is 0.5 in New England, New York, and the Mid-Atlantic States, while it is 0.8 elsewhere in the USA.

seancorfield20:08:03

Mostly it's just the emphasis on the wrong syllable between British and American English. Or, as (American) wife and I joke: the emPHASis on the wrong sylLAble 🙂

ryan echternacht20:08:16

Isn't the SQL one also a bit weird because certain dialects actually have "official" pronunciations.

seancorfield20:08:39

My Sequel but Postgres Q L?

noisesmith20:08:42

my parents and grandparents were so culturally different from one another (totally different rules about topics of conversation, etiquette, tone and volume of voice...) I basically picked up their accents as two different languages as I picked up their contradictory cultures

ryan echternacht20:08:53

I thought I heard the microsoft variant is officaly "Sequel"

seancorfield20:08:02

@U051SS2EU Even after twenty years of marriage, my wife and I still sometimes just stare at each other and go "What?" at times -- we still seem to be able to come up with phrases that the other has no idea about...

😆 1
noisesmith20:08:18

haha idioms!

seancorfield20:08:34

She has learned a lot of Cockney rhyming slang, living with me (I didn't even realize I used it much!).

Lennart Buit20:08:54

I sometimes wonder how Dutch my English actually is. I talk English all the time, right, but mostly to fellow dutchies with some remote workers mixed in

seancorfield20:08:39

@U0104TYTJUS I've been saying My S Q L wrong all this time 😞

noisesmith20:08:28

the teachers who introduced me to programming also introduced me to this theory that the idioms people use act as constraints or guides - this is a bit "hippy" for normal language, but a perfect intro to programming communities like clojure

seancorfield20:08:47

@UDF11HLKC When I lived in England, my company used to send all its marketing material to the Dutch office for proofreading because their English was much better than our marketing team's English!

seancorfield20:08:32

@U051SS2EU Language absolutely shapes thinking, so I don't find that "hippy" at all...

Lennart Buit20:08:41

Haha we (generalisation, obviously) are pretty good at English yeah, to the point that foreigners get frustrated because everyone switches to English automatically while they want to learn Dutch

noisesmith21:08:08

@U04V70XH6 you might like this analogy then: they likened an idiom or pervasive metaphor to a feedback mechanism for a machine - it doesn't determine an outcome, but makes certain behaviors more or less likely (like affordances in UI)

1
seancorfield21:08:51

The Swedes too -- I was giving a presentation to Ericsson in Germany and the audience was from all over the company, and two Germans in the front rows started talking to each other in German, and a Swede behind them interrupted and said "English please -- it is our company language!"

noisesmith21:08:05

they also claimed that an analogy was a "defensible metaphor" which means you can break the system down to the same or greater number of components, the same or greater number of states, and identical connections

noisesmith21:08:32

a bit "culty" but I got a great intro to engineering and had more fun than most engineering students

seancorfield21:08:40

Yeah, I think a lot of people just don't appreciate how much idioms can affect how we approach problems and how they can sometimes prevent us from seeing novel solutions.

Lennart Buit21:08:42

Its great how much impact good teachers can have

noisesmith21:08:07

the "toolbox" metaphor for idioms / metaphors / analogies / models is super reusable

noisesmith21:08:26

even if some of the other stuff they said was nonsense, that is like a superpower

noisesmith21:08:40

the risk: an unfamiliar but superficially appealing bad / misapplied idea can tank a project (I think we've all seen this as clojure programmers)

noisesmith21:08:09

the governor over that risk is to use the most familiar tools for the highest stakes tasks

noisesmith21:08:48

anyway now I'm just rambling through memories 😄

Lennart Buit21:08:59

@U04V70XH6 not sure whether thats what you mean, but I always try to encourage people to learn multiple languages, especially in different paradigms just so they can apply that knowledge in their main language. Learning Haskell helped me as a Java programmer, learning Python helped me as a Clojure programmer, and so forth. My fear is that by staying with one language for too long, I’ll end up stuck in this box with a very narrow view of programming (and/or software engineering) as a whole.

noisesmith21:08:15

@UDF11HLKC hard agree, but also I've been learning arm 64 bit assembly and sometimes that's like gazing into the abyss and seeing a CPU architecture gazing back up into me

noisesmith21:08:45

a big enough paradigm change can be disorienting

Lennart Buit21:08:22

I have a soft spot for OpenGL (and friends), I just can’t seem to get my head around it. Although thats more of a library than a language, you get what I mean: Its a different way of thinking of programs, as they suddenly partially run on a GPU that does everything in parallel.

noisesmith21:08:23

knowing all the worthwhile patterns from clojure, and trying to apply them as applicable in assembly: walking along a 6" street curb without falling (easy) vs. walking on a bridge of the same width with no railing and a 1000 foot drop

noisesmith21:08:29

as tasks they are identical

noisesmith21:08:36

the hazards change my behavior immensely

noisesmith21:08:46

where falling to my death is spending hours on bugs that are hard to find, that implement trivial behavior

noisesmith21:08:29

@UDF11HLKC agreed, OpenGL is as close to a DSL as you get in C, it's a language of its own

Lennart Buit21:08:28

But the inverse also applies, on this comfortable bridge with a railing, the railing is just there. You don’t know who put it there, and you don’t know how it works, but you just hope that it won’t fail as you are unaware of how to fix railings from your high level ivory tower 😉

Lennart Buit21:08:40

As someone who has a notable lack of low level experience: if the railings start breaking down, I don’t even know where to start looking

noisesmith21:08:44

yeah, knowing what's underneath is amazing, and then learning the hard way why the stuff in between was there (and recognizing / thinking I recognize various familiar patterns, then learning a hidden assumption as the assembly version blows up in my face)

noisesmith21:08:14

I would probably have an easier time learning it if I didn't keep filling it with self destructive violent metaphors hahah

noisesmith21:08:43

I see it a lot in tech conversations: "black magic" "dangerous code" "that will bite you"

noisesmith21:08:59

"bad smell" is like the buffered / weak version haha

noisesmith21:08:23

using the reasoning model of a chimp to guide designs

Lennart Buit21:08:20

Haha yeah, it’s either fine, or it will ruin your life, that’s the average scale ‘we’ value designs on

seancorfield21:08:58

Re: languages -- yes, I meant it in both natural language and programming language -- and I try to follow the Pragmatic Programmer's advice of learning a new (programming) language every year... well, every year-or-two. I've used probably a dozen languages in production and learned about a dozen more for fun (and I came out of university able to write non-trivial programs in about a dozen languages, almost none of which I used in production 🙂 )

seancorfield21:08:37

We used Prime computers at university, and they had four different assembly languages for some bizarre reason (two were pretty similar but that still made three very different ones). So I learned all four, just for fun. And FORTRAN, PL/1, pl/p, Pascal, BASIC, Prolog, Algol-68 (I'd already learned Algol-60 at school), Lisp, APL, Pilot... Then ML, Miranda, SASL as a post-grad. Perhaps not surprising that I got into compiler design (and language design)...

Lennart Buit21:08:04

I heard about that, that was the functional language taught before they switched to Haskell. Not even too long ago, like it was still taught in 2010 or so

seancorfield21:08:06

My PhD work was on functional programming language and design -- it was the mid-'80s so lots of European universities were doing that sort of thing.

seancorfield21:08:01

When Haskell appeared, as the culmination of all the FP work we'd all been doing, I honestly believed it would take over the programming world and revolutionize how we all worked! 😐

noisesmith21:08:09

I remember deciding to try a strongly typed functional language, being turned off by Clean's proprietary closed source distro / all in one box dev environment

noisesmith21:08:39

I think Clean and Miranda were two of the languages that the research community decided to "merge" to work on haskell and avoid duplicating work

noisesmith21:08:55

I liked standard ML, and OCaml was even better

Lennart Buit21:08:08

There is a history of Haskell talk by Simon Peyton Jones

Lennart Buit21:08:29

(One of my programming heroes for sure)

seancorfield21:08:29

SASL was a forerunner to Miranda. Prof Turner was going to be my external examiner for my thesis... but I got a job, writing compilers, and never finished writing it up 🙂

noisesmith21:08:52

I should refresh myself on that history, also I should try to really learn haskell and make a full project with it

seancorfield21:08:28

HOPE was another precursor to Haskell somewhere in the mix. My effort was SURE (Surrey University Recursive Evaluator) and the uni used it to teach FP for several years after I left.

Lennart Buit21:08:47

(Heres the Haskell talk, if you are interested: https://www.youtube.com/watch?v=re96UgMk6GQ )

seancorfield21:08:10

My best friend's final year project as an undergrad was to develop a robust Lisp system with full O/S integration (on Prime computers) and it was also used for teaching for years after. That was really how I got into Lisp -- and why, along with all that FP background, I was so pleased to encounter Clojure a decade ago!

seancorfield21:08:31

Thanks @UDF11HLKC -- I'll put that on my watch list for this afternoon.

seancorfield22:08:21

Watching SPJ's talk -- I remember reading the SKIM paper and playing with the S, K, I combinator stuff... and it's interesting to be reminded of the timeline of some events (the first FPCA gathering, out of which the Haskell committee arose, happened one year after I'd stopped working on my thesis... and it's entertaining to hear him talk about the "eager" languages being "establishment" 🙂 )...

walterl22:08:23

I was just yesterday thinking about how I should probably just give in and start saying "sequel" 😢, even though (as pointed out above) we have "S Q L" the language, "My S Q L", "Postgres Q L", but also "MS Sequel". Pragmatically it seems like "sequel" won, since just about everyone (that I hear these days) speaks like that.

noisesmith22:08:20

I met someone once who called it squirrel

noisesmith22:08:56

he taught it to himself, got a lucky consulting gig and a hell of a licensing deal, and retired early, never really became a programmer per se

noisesmith22:08:17

I might have been the first actual programmer he'd ever talked to in person haha

😆 1
andy.fingerhut03:08:38

Some people should try to throw others off by pronouncing PostgreSQL as: POST-gruh-SE-quel

Mno06:08:02

As a joke some of my friends and I started calling it POGS (POstGreSql) and it kinda stuck. (as a reference to pogchamp twitch emoji)

noisesmith09:08:16

pogs were the stupidest fad of. the '90s, it was like they were trying to reverse engineer / recreate the financial market for baseball cards / comics

Lennart Buit09:08:44

I usually end up calling it Postgres and avoid all SQL confusion

🎉 1
noisesmith09:08:06

what bugs me is the microsoft habit of naming their programs as generically as possible, so that if you don't qualify which one you mean people will assume ms if it's contextually relevant "sql server"

telekid22:08:10

Shower thought: If all clojure values (inc. numbers & keywords) supported metadata, then one could theoretically build a system where the history of values themselves is in some sense reified, e.g. you could do something like:

(def animal (strangest-animal-in-country :america))

animal
;;-> :cat

(def m (sound-of-animal animal))

m
;; -> "meow"

(history m)
;; ->
'{:call (sound-of-animal {:call (strangest-animal-in-country :america)
                          ::evaluation true
                          :time 0})
  ::evaluation true
  :time 1}
(This is a new idea, its legs are pretty shaky.) This would be pretty amazing for, say, inspecting values that result in :ret or :fn violations during property testing.

telekid22:08:19

I'd love to know about any prior art for this concept, I can't imagine it's new.

telekid22:08:23

(maybe this is useless, since it's usually easy to recreate calling conditions.)

noisesmith22:08:02

you end up with something related to a call graph, right?

noisesmith22:08:10

but instead of a call graph, it's a calculation graph

telekid22:08:57

calculation graph is a good term for it

noisesmith22:08:36

I would be surprised if old lisp AI systems didn't have something like this, and a name for it, a keyword that might help is "symbolic reasoning"

alexmiller22:08:53

similar technique is used in security input checking too "taint checking"

alexmiller22:08:17

or generally in information management there's a lot of work on data provenance

telekid22:08:17

oooooh interesting, I've heard that term before

alexmiller22:08:42

that said, Clojure does not support metadata on all values, and won't

telekid22:08:52

that was my next question for you 😆

telekid22:08:59

good to know

alexmiller22:08:50

in particular, one of the perf constraints with Clojure's design is as much as possible is to use existing direct Java objects, without wrappers

alexmiller22:08:11

since we can't modify those objects, and don't want to wrap, that puts metadata out of reach for most primitive values

telekid22:08:44

yeah that makes sense

alexmiller22:08:05

and on a different dimension, keywords don't have metadata because they are interned and reused

alexmiller22:08:20

mainly, it's just collections and symbols and vars

telekid23:08:11

great context

telekid23:08:00

yeah with that all in mind I can see why "it won't happen" is a good answer, even though it does also scuttle the idea haha

telekid23:08:05

This is going in my “things to eventually try in a toy lisp” notebook (next to “no positional arguments” and “ast-aware versioning for API stability assurance”)

noisesmith01:08:38

@UABU2MMNW is "ast aware versioning" similar to the idea the erlang guy had for an append only database of definitioins?

noisesmith01:08:55

I forget the jargon he used but I have a friend who's obsessed with it

alexmiller03:08:23

I would be very surprised if this has not been explored in the Racket community somewhere

Daniel Tan06:08:51

probably can use a function that generates a value instead

mloughlin08:08:02

This talk might be relevant to "ast aware versioning" https://www.youtube.com/watch?v=Kgw9fblSOx4 and the related github repo https://github.com/tgetgood/xyzzy

noisesmith10:08:05

this is the "database of definitions" idea I was referencing, via Phil Hagelberg who brings it up often https://erlang.org/pipermail/erlang-questions/2011-May/058768.html

telekid19:08:04

Sweet - I'll take a look! It does seem in the same vein as what I'm considering