Fork me on GitHub

when pronouncing tuple do you ay tUPle or tOOple



Kelsey Sorrels15:08:36

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

💯 12
😂 6

ah interesting!


Two-ply is the good toilet paper


So Two-ple it is.

😁 3
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

Kelsey Sorrels20: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


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


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


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.


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.


My Sequel but Postgres Q L?


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"


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

😆 3

haha idioms!


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


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


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


@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!


@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


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


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!"


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


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


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


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


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


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


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


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.


@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


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.


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


as tasks they are identical


the hazards change my behavior immensely


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


@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


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)


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


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


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


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


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


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


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.


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! 😐


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


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


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)


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 🙂


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


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


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!


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


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


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.


I met someone once who called it squirrel


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


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

😆 3

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


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)


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

🎉 3

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"


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

;;-> :cat

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

;; -> "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.


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


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


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


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


calculation graph is a good term for it


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"

Alex Miller (Clojure team)22:08:53

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

Alex Miller (Clojure team)22:08:17

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


oooooh interesting, I've heard that term before

Alex Miller (Clojure team)22:08:42

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


that was my next question for you 😆


good to know

Alex Miller (Clojure team)22: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

Alex Miller (Clojure team)22: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


yeah that makes sense

Alex Miller (Clojure team)22:08:05

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

Alex Miller (Clojure team)22:08:20

mainly, it's just collections and symbols and vars


great context


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


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


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


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

Alex Miller (Clojure team)03: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


This talk might be relevant to "ast aware versioning" and the related github repo


this is the "database of definitions" idea I was referencing, via Phil Hagelberg who brings it up often


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