« Surprise, surprise, surprise | Main | Do we need a new thread? »

March 06, 2021

Comments

put themselves into a user's place.

bingo.

the missing part of technical education, again and as always IMO, is teaching engineers how to engage with users and other stakeholders in productive ways.

people want systems to be built to solve problems. they may or may not understand what the solution should look like, or even what possible solutions are available. they have a problem. if they already had a solution, they wouldn't need you.

the primary job of whoever is building the system is understanding the problem, and then applying technology to provide a solution. A solution that works well, in the context in which it has to operate.

acquiring that understanding requires a *lot* of engagement with users and other stakeholders. one reason, among several others, that code is not a good context for doing that exploration is that people who aren't coders don't understand it.

I'm reminded of Microsoft's invention of disappearing scrollbars

this is truly the dumbest trend i've seen in UI in a long time. i mean, borderless windows are pretty dumb. UI that reveal its purpose until you click on it is dumb. but fundamental UI that doesn't exist until you find it by accident! that's dumb.

the iTunes store is full of them. here's a list of five things, if you think there might be more than five, it's up to you to hunt around* for the invisible scrollbar! happy shopping!

* Note: scrollbar will only appear if you hover over the thumb part, not the track part. and the thumb part changes size based on the length of the list (which we're also not telling you about), so be sure to hover near the start-side of the list if you want to see if there's more stuff on the other side of the list. flap around until you find it! or maybe there's nothing more to the list at all and we just kicked you out of the browsing-with-possibility-of-buying mindset and into the much less profitable "WTF is this UI up to?" mindset! aren't we stylish and fun!?

@cleek -- That made me laugh. (Then cry. ;-)

Some programmers I knew, especially as people got more specialized and the coders rarely actualy talked to the ultimate users, were just unimaginative. But at least one, a guy I worked with for a long time, was explicit in his unwillingness to give a shit whether users found his stuff clumsy to use or not. He was going to use the controls he thought were cool from a technical point of view, users be damned. My favorite was when he decided to adopt a set of controls where a red "X" was for deleting things, instead of for closing things. That one actually didn't last. Nor was he promoted beyond a certain level.

My point of view on this is probably not that common, but I'm not a big fan of using code as a medium for thinking about what the code is supposed to be doing.

Sure. And in most product-oriented environments that is going to be very true. Same with a lot of science and technical writing.

I'm mostly thinking about writing (or coding) where what you are attempting to do is something for which the language was not designed - especially for attempting things that go against the grain of the built-in assumptions of the language. Paradigm changes.

You do a lot of work around the edges of the things that don't work well within the paradigm, trying to get the whole mess to function minimally, and as you do, other parts get connected and you end up with a buggy, legacy mess. Then someone comes up with a new approach that leans into the new paradigm to make it easier and the messes hopefully get cleaned up (budgets, time and otherwise, allowing).

Rinse and repeat.

But yeah, not a recommended way of doing what can and has been done before.

I always figure that code that looks like a mess probably is a mess.

I find similarly in text. If the writing is a mess, probably the thought process behind it (if any) is, too. Occasionally someone will have a great idea, and just not be able to wrap words around it. But far more often, garbage text is a reflection of garbage thought.

When writing text of any length (i.e. longer than a blog post ;-) I usually will create an outline first. And then fill in the text second. Similarly with programming: explain what is happening with comments first, and then write the code that will do what is explained. It's not exactly structured programming™, but it works.

I find similarly in text. If the writing is a mess, probably the thought process behind it (if any) is, too. Occasionally someone will have a great idea, and just not be able to wrap words around it. But far more often, garbage text is a reflection of garbage thought.

The hard part with natural language is knowing which is the case. 90% of my job as a writing teacher is finding the potentially productive moments in garbage writing and then asking critical questions about intentions or context or audience that lets the writer get a handle on their own thought processes - usually with some associated epiphany when a conscious connection slides into place.

But then there is a lot of writing that gets identified as garbage text that is actually just misunderstood text where the reader doesn't have access to the mental resources that would make it comprehensible, or doesn't understand the context for which it was meant.

And then there are the language poets, who fuck everyone up.

My technical career was blessed by the fact that when I was writing code, it was almost always because someone needed some sort of one-off widget. Sometimes me because I needed the widget to accomplish something bigger, sometimes because an individual or small group needed the widget. I didn't ever write for what most developers mean when they say "production," although some of the widgets had surprisingly long lives. Sometimes there was a real concrete spec. Sometimes there was just a bunch of arm-waving.

But to go back to the formatting and commenting remarks, doing those things was a habit I developed early on. Code that I hadn't looked at for three years, that someone decided needed to be revived and extended, was code written by someone else. Maybe there are people who never change the way they think about problems; I'm not one of them. "What was I thinking?" was a common remark to myself. You have to leave at least clues.

It's still a habit when I'm writing code here in my retirement. I can't sit and code continuously. When I'm letting a problem cook in the back of my head, I'll take a few minutes to write comments (particularly for the tricky bits), tidy things up, rearrange. (Rewriting is something else that requires pulling out all of the test cases again.)

And then there are the language poets, who fuck everyone up.

Forgive me if "language poets" is a term of art that I'm just not familiar with.

My sense is that actual poets are quite coherent. And structured. It's just that a lot of really bad writing is justified by claiming that it is poetry. Which, apparently, is supposed to excuse all its flaws.

/* If a function is worth writing, it's worth writing some text first to say what it's going to do. */

Also, God intends curly braces to be used like this, so it's easy to see which ones match:


{
code
more code
that's enough code
}

But every modern code editor is ungodly, so I've given up on that. At least the editor will find matching braces for you.

not sure what God wants, but in Go, you have to do them like this:

if this_is_go {
   code
   goes
   here
}

it is a syntax error to put that starting bracket on its own line!

[also, no parens for ifs. and no semicolons. ]

And in most product-oriented environments that is going to be very true.

when I was writing code, it was almost always because someone needed some sort of one-off widget.

All good.

Most of my experience with this stuff is building systems that are somewhat large and complex - quarter million to maybe 1.5 million lines of code? On teams of somewhere between 6 and 20 people. And always either product oriented, or bespoke systems for large organizations like the DoD or similar. Development timescales measured in months to a year or two. Thousands to hundreds of thousands of users.

So, not a good context for winging it. :)

The "just give me a spec" thing that Janie talks about is also something that makes me nuts. Maybe it's appropriate for really junior engineers, but once you have a couple of years under your belt, you should really be able to engage with users and help them articulate what they need from the system. It really does seem to be a missing piece in technical education.

What problem are we trying to solve?
Why is it good to solve that problem?
How will we know when the problem is solved?

You can probably get 90% of the way there by asking "why" several times. A lot of this stuff is not rocket science, people are just not used to thinking about it.

It saves a hell of a lot of time.

I have about another 2 years of this, and then it's be-bop, 24/7.

:)

One programming shop I was in had a PL1 compiler. It was supposed to be a replacement for both COBOL and FORTRAN. And allowed inline assembly code. Talk about a Tower of Babel.

The Poetry Foundation's entry about language poetry - https://www.poetryfoundation.org/learn/glossary-terms/language-poetry

Works by Lyn Hejenian, Charles Bernstein, Ron Silliman, etc.

--------

As If the Trees By Their Very Roots Had Hold of Us
BY CHARLES BERNSTEIN

Strange to remember a visit, really not so
Long ago, which now seems, finally, past. Always, it’s a
Kind of obvious thing I guess, amazed by that
Cycle: that first you anticipate a thing & it seems
Far off, the distance has a weight you can feel
Hanging on you, & then it’s there – that
Point – whatever – which, now, while
It’s happening seems to be constantly slipping away,
“Like the sand through your fingers in an old movie,” until
You can only look back on it, & yet you’re still there, staring
At your thoughts in the window of the fire you find yourself before.
We’ve gone over this a thousand times: & here again, combing that
Same section of beach or inseam for that – I’m no
Longer sure when or exactly where – “& yet” the peering,
Unrewarding as it is, in terms of tangible results,
Seems so necessary.

Hope, which is, after all, no more than a splint of thought
Projected outwards, “looking to catch” somewhere –
What can I say here? – that the ease or
Difficulty of such memories doesn’t preclude
“That harsher necessity” of going on always in
A new place, under different circumstances:
& yet we don’t seem to have changed, it’s
As if these years that have gone by are
All a matter of record, “but if the real
Facts were known” we were still reeling from
What seems to have just happened, but which,
“By the accountant’s keeping” occurred years.
Ago. Years ago. It hardly seems possible,
So little, really, has happened.

We shore ourselves hour by hour
In anticipation that soon there will be
Nothing to do. “Pack a sandwich
& let’s eat later.” And of course,
The anticipation is quite appropriate, accounting,
For the most part, for whatever activity
We do manage. Eternally buzzing over the time,
Unable to live in it…

“Maybe if we go upaways we can get a better
View.” But, of course, in that sense, views don’t
Improve. “In the present moment” (if we could only see
It, which is to say, to begin with, stop looking with
Such anticipation) what is enfolding before us puts to
Rest any necessity for “progression”.

So, more of these tracings, as if by some magic
Of the phonetic properties of these squiggles… Or
Does that only mystify the “power” of “presence" which
Is, as well, a sort of postponement.

be-bop, 24/7

LOL. Must be nice to have clear goals!

And allowed inline assembly code. Talk about a Tower of Babel.

most C/C++ implementations out there allow it, too.

or, even better, they wrap the individual assembly instructions in pseudo-functions ('intrinsics') and you call them directly.

One programming shop I was in had a PL1 compiler.

One of the infamous IBM 97-pass compilers?

At one time I had a letter from IBM -- long since disappeared in office cleanings and relocations -- thanking me. I had found a reproducible bug in one of their PL/I compilers.

And allowed inline assembly code. Talk about a Tower of Babel.

I mean the whole language was a Tower of Babel. It had so many bells and whistles that it was difficult for one person to know the whole language. Some programmers wrote COBOLish code. Some wrote FORTRANish code. Some wrote something from a different universe. A real PITA for maintenance programmers.

All I ask of fate is to allow me to get through the rest of my tech career without having to do any C++ template meta-programming.

I summon a curse upon the head of Andrei Alexandreiscu!!

Here's a fantasy series on the intersection of programming and magic with some humor and inside jokes thrown in. The series ended when the author had a heart attack. After recovery, he was unable/unmotivated to continue writing.

Wizardry Series: by Rick Cook

Don't know whether it would be called meta-programming. But I've written FORTRAN FORMAT statements that generated character strings that were used in FORMAT statements to format data.

The intersection of poetry and programming: code poetry (a different kind of language poet).

http://code-poetry.com/home

You guys are giving me a headache. I haven’t written a line of code since 1990 ... in college ... in C.

Speaking of college, my son was accepted to the best school he applied to. I only found out today when I got an email from the other campus in the same system telling me he was accepted, texting him about that acceptance, and getting his reply mentioning he was also accepted at the main campus, with a “Didn’t you know?” NO! I didn’t know!

Me: “Does Mom know?”
Son: “I don’t know.”
Me: “Did you tell her? How would she know?”

If we knew, wouldn’t we have mentioned it - that he got into his #1 school, which also happens to be my alma mater? Good lord...

hsh, you obviously haven't taken your helicopter parenting lessons seriously enough.

Teenagers!

PS -- congrats to your son!

Then again, I suppose I shouldn't make assumptions. Is that his 1st choice? Or don't you know that either? ;-)

I waited until the last second to make my decision, so I can relate to not knowing, actually.

nous: v interesting poem @ 04.19. Thanks!

We’re still not sure what he’s going to do without having the full dollar figures in front of us. He could commute to two of the other schools he got into, possibly getting a free ride for at least two years at one under a state program he’s likely to qualify for given his grades and test scores - perhaps transferring to his #1 school at some point.

Don't know whether it would be called meta-programming. But I've written FORTRAN FORMAT statements that generated character strings that were used in FORMAT statements to format data.

On rare occasions I've written self-modifying code in interpreted languages. (Contemporary operating systems tend to not let you do that in compiled languages, code and data spaces are kept separate for security purposes.) Usually to replace some massive recursive decision tree that was going to be applied many times with code that directly eliminated most of the tree for a particular problem. Once, that collected usage data and periodically rewrote the main program loop. I've talked to a few people that were doing that in Lisp, to the point of "We don't understand what code is running, and we no longer know what the rules are that are used to modify the code." Given sufficient time, they could have deciphered it. To one of CharlesWT's comments about neural networks: "We know what the million coefficient values (currently) are, but we don't know what any of the individual coefficients mean."

Congratulations and best of luck to the new adult and his forays into higher ed.

Somewhat related to coding, have any of you used a text editor that has regular expressions? I've been using one for about 25 years. It has been a tremendous help in reducing the impossible to the possible and the long, tedious task to a few seconds.

Never studied or done any proper coding, but perhaps some of you pros might get a chuckle (or a groan) from my one personal pet project. In 1994 I was marginally employed/mostly idle, for a few months a buddy had farmed out some text editing from a gig of his that I did on my monochrome monitor Mac Classic that I had gotten the previous fall, my first computer. When that dried up I had plenty of time to futz around, so I decided to see if I could set up a sheet in Microsoft Excel that would generate an output that would create a virtual deck of cards.

Elegant it was not, but I succeeded. Once I had that I thought "what can I do with this?" My buddy gave me an Excel 4 guide book, and after quite some time working on it I developed a functional 5 Card Draw poker game using sheets and macros, one human player against 5 automated players (or all 6 automated, let it run and generate results). Reading some of those multi-nested IF() functions would have made Rube Goldberg blush. Among the many problems was that I had no clue what I was doing when I started, and was just trying to see if I could do X, and then Y, so there was a path dependence that required some kludgey brute force stuff that wouldn't have been necessary if I had known at the start what I learned by the end of it.

I did get some useful poker knowledge out of it, but Excel was not exactly the optimal tool for the job. I would tell people it's like buttering toast with an ax, not your first choice, but if it's all you have. . .

People have done some weird stuff with Excel. One of the weirder ones I've seen is an animation of an internal combustion engine.

Sounds like you gave yourself a cool challenge, and met it, Priest.

As to games: I had been programming for a living for two or three years when I acquired an Apple-II from a friend who had moved on to bigger things. I decided I was going to teach myself about it by programming a Stratego game. I lived with someone who had never lost at Stratego after his first time playing it, and I thought I could pick his brain for the logic. But I started on the graphics first, and got some pieces created, then chickened out and let more pressing (and paid) projects take priority.

I'm pleased to say that my son has been offered a place at the local university, where his parents met. This being the land of the unfree, I don't have to think about the cost.

My children are much more diligent students than their father ever was. My daughter may even be more diligent than their mother, if such a thing is possible.

Somewhat related to coding, have any of you used a text editor that has regular expressions? I've been using one for about 25 years. It has been a tremendous help in reducing the impossible to the possible and the long, tedious task to a few seconds.

For on the order of 40 years, "1,$s/regex/some-expression/g" is something my fingers just knew. They consult my brain if regex is complicated. I'm old enough to remember when Henry Spencer changed the world.

TextPad is a text editor with regular expressions. Over the years, it has made life much easier for me and me more valuable to my employers.

I don't remember what it was called and I don't know why the shop I worked for in the 80s even had it. But they had parser software that was sophisticated enough that, for grins, I used it to write a Pascal syntax parser. With a little more effort I probably could have turned it into a Pascal pretty printer.

I'm certainly glad Henry Spencer developed the concept. It's one of those things that does heavy lifting far beyond its apparent size.

hsh and Pro Bono: congrats to the offspring, and the proud parents!

The first text editor I used was ZED, in the 1980s on a mainframe. ZED is one of several line editors which used regular expressions even before Henry Spencer's implementation.

I'm feeling ancient.

The first software I used for editing text was in the mid-70s, using TSO to edit a PDS while at work. And I wrote an entire training manual on it . . . for something totally unrelated to work or software.

This being the land of the unfree, I don't have to think about the cost.

Your oppression is so complete that you don’t know you’re oppressed.

Setting up a Stratego board was an interesting challenge in my youth, I hadn’t subsequently thought about a rigorous analysis of optimal design. I wonder if it is “solvable” in a way that algorithms would crush human players. I was not a good chess player even when I spent some time playing against my roommates chess machine (also early 90s, youth and unemployment provide time for recreation).

I am not up to date on that but the last I heard (years ago)is that there is no commercial Stratego program that goes beyond beginners' level. The few I tried were indeed crap, and I am not a very good player by any means (although less hopeless than in chess).
If it is still true, I put it more on disinterest than inherent difficulty (there is more fame to get in Chess and now also Go programs)

Most of the game-playing AI research has been done on perfect-information games. Stratego is an imperfect-information game in that a player doesn't know the value of his opponent's pieces.

my name is in the credits of a PC version of Stratego that Hasbro did in the early 2000s. they used some code i posted online that makes JPEG reading easier.

i learned about it when i got a copy of the program in the mail one day with a note that said "Thanks!"

I’m relieved to know others here suck at chess. Why I can concentrate obsessively on a physics problem but can’t make space for chess (or poker) in my mind is a mystery. I find those sorts of games to be tedious. Maybe I just don’t care enough.

Somewhat related to coding, have any of you used a text editor that has regular expressions?

i use UltraEdit. it's not free, but it's one of the few editors that can handle realllly long text files without performance issues.

it does Perl, general 'unix', and it's own flavor of RegEx. it also has a powerful scripting language.

@hsh -- Chess -- I'm terrible at it. The summer before my son left for college we played a lot. He's by no means all that experienced, but I only won two games. I tried to watch myself to figure out what my problem was, and I think there were several. But the top one was concentration. I'd be going along holding my own, then suddenly my queen was at risk in some stupid way. Like you, I have no problem concentrating on some things, I guess I just don't care enough about games. (Stratego: I was never good at that, either.)

I also hit brick walls with certain kinds of complex logical problems, but I'll leave that alone for now.

For games -- not that I'm great at card games either, but if I'm going to socialize via games, I'd rather play cards than board games.

I don't suck at strategy games per se (if given enough time to contemplate) but primary at those where the elements interlock too much visually and in too small a space. Also I am no good at strategy where a single small tactical error instantly makes the game unwinnable for me instead of just lowering the score in rough proportion to the size of the error.

It's great to see there are other smart people who suck at chess!

I've never been able to internalize the game sufficiently, and I know the problem is I can't think ahead more than two or three moves. The trouble I have with that is that each theoretical move has to account for all the possible moves my opponent can make, and I can only hold so many "If; then" loops in my head at one time.

(I also had trouble remembering what each piece could do, but that would have improved had I kept at it.)

It's become part of my imposter syndrome dialog: "If you're so damn smart, how come you could never learn to play chess? Huh?"

I used to love Stratego, especially the illustrations on the playing pieces, lol - needless to say I wasn't very good.

I'm reasonably good at chess, but only when I can exploit the mistakes of my opponent, which I'm pretty good at spotting and ruthless at taking advantage of. I have not much of an idea what else to do as a strategy, though.

I think the best game ever was Go - so simple and so complex, but I haven't played it in ages.

I rarely had someone to play Stratego with and my mother strongly disapproved of it (as if chess was not itself a wargame too).

There's a number of white papers on applying AI to Stratego. So far it doesn't appear that anyone has developed anything stronger than a moderate advanced human player.

Stratego programming

I wondered how the game would play, if the ranking system was circular, i.e., each piece could beat a fixed number of other pieces 'below' and get beaten by the same 'above' (with the natural exception of the bombs). If there were 11 ranks e.g. rank 8 would beat 3-7 but get beaten by 9-11 and 1-2.
Or what would happen, if the rank would change after each encounter depending on the distance in rank (beating an almost equal would gain a promotion, beating one far below a demotion or the other way around because it is exhausting to beat a near-equal).

This is interesting:

https://www.scientificamerican.com/article/how-the-computer-beat-the-go-master/

From the Scientific American article:

"It is likely that Hassabis’s DeepMind team is contemplating designing more powerful programs, such as versions that can teach themselves go from scratch, without having to rely on the corpus of human games as examples, versions that learn chess, programs that simultaneously play checkers, chess and go at the world-class level or ones that can tackle no-limit Texas hold 'em poker or similar games of chance."

This is what they did with AlphaZero. They give it nothing besides a game's legal moves and what constitutes winning. Then it plays against itself until nobody and nothing can bet it including AlphaGo.

"The inspiration from ReBeL comes from DeepMind’s AlphaZero. After setting up new records in the Go game with the development of AlphaGo, DeepMind expanded its efforts to other perfect-information games such as Chess, or Shogi. The result was AlphaZero, a reinforcement agent that was able to master all these games from scratch. Of course, recreating the magic of AlphaZero in imperfect-information games like poker entails a different level of complexity."
Facebook Open Sources ReBeL, a New Reinforcement Learning Agent that Excels at Poker and Other Imperfect-Information Games: The new model tries to recreate the reinforcement learning and search methods used by AlphaZero in imperfect information scenarios.

Too many of the supposedly machine intelligence systems for games like go or chess are basically brute force efforts which merely project possible alternatives out some number of moves. Sure, they're impressive. But it would be far more impressive if they incorporated something that resembles an understanding of the game. Or of strategy. Or something like real intelligence. (Unless you want to argue that human intelligence is a similar kind of brute force evaluation of alternatives.)

When I was young and played chess somewhat seriously, I would have described what I was doing as a very heavily pruned tree search. Pruning was done by some sort of trained pattern recognition: this is a good thing, that's a bad one.

At least in chess-playing software straight brute force died out long ago. Research moved on into how to structure the search: measurement of good vs bad moves, where on the board to focus, etc. Look deeper in fewer places.

My (very limited probably wrong) understanding of AlphaZero is that the NN learns from experience how to measure goodness and pick the areas to search, then applies a relatively limited tree search to that. Being an NN means, unfortunately, that a particular set of values for a million coefficients represents an excellent strategy for pruning. There's just no way to translate that back into human terms.

My favorite quotes from the human masters that watch AlphaZero play are the ones of the form, "Sometimes it's like watching an alien play." The software has developed search pruning methods that no one has seen before, and does things that look strange but win.

Traditional chess engines work by tree search using alpha-beta pruning. AlphaZero follows a different approach: it uses a self-trained neural-network move evaluator which returns a probability of each legal move being the best, and uses this vector of probabilities to weight a monte-carlo exploration of the game tree.

Traditional chess engines play a distinctive style, showing little strategical understanding but a superhuman ability to exploit tactical imperfections. AlphaZero's style is quite different: it plays like a human grandmaster who knows and sees much more than any wetware player.

(I was a strong chess player as a junior. Some time ago.)

The various comments about chess and AI kind of come together here

https://www.wired.com/story/bird-feed-seller-beat-chess-master-online-harassment/

Changing direction completely
It's a truism that criminals are srupid. Which is part of why they get caught. (At least, the amazingly stupid ones get caught.) Apparently this applies even when the criminals are also police officers.
https://www.washingtonpost.com/nation/2021/03/13/louisiana-police-black-man-text/

How dumb do you have to be, in this day and age, to text about how you broke the law? Just like the morons who invaded the Capitol on 6 January, and posted videos of themselves doing so.

I recall spirited and beer besotted games of Risk back in my college days, but not very well.

Avid Texas Hold'em player since the 1970's.

The snow event forecast for Fort Collins, CO took forever to get cranked up, but is in fine form this morning. While looking up information to prep for the storm, I learned that 99% of the city's electrical distribution lines are underground.

How dumb do you have to be, in this day and age, to text about how you broke the law?

no doubt some folks are dumb as a box of rocks, but I generally ascribe stuff like this to an egregious sense of entitlement.

it doesn't occur to some folks that they will ever be held accountable for the stuff they do. that may be evidence of stupidity, but it may also point to never having been held accountable for the stuff they do.

glad to see this particular crew is getting some education along those lines.

an egregious sense of entitlement.

That, too. Although by now one would think that they would have noticed that their view is less than universal.

Still, as sense of entitlement can run an amazingly long way before it implodes. Cf. Trump, Donald J

And then there are the ones who aren't so dumb, and are actively trying to thwart citizens having a chance to hold them accountable.

(Maybe I even got that link here, don't recall.)

I recall spirited and beer besotted games of Risk back in my college days, but not very well.

Our college fallback for Risk in the 80s was a variant that had a "nuke" rule. If someone rolled three sixes on an attack, all armies in the country were removed and taken out of the victory count, and the armies in the adjacent countries were reduced to one each.

And if the other player in the exchange rolled all sixes as well, then all territories worldwide were reduced to a single army.

love the nuke rule.

my uncle and i would play double-board Monopoly. if you landed on Go, you would switch over to the other board, which was called Las Vegas - where all the rents were doubled and you could build hotels any time. once around LV and you went back to the regular board.

you know, because Monopoly games are too short.

oh, happy Pi day, nerds.

"Pi is the most studied number in mathematics and for good reason. The number pi is integral to our understanding of geometry. Pi has uses in physics, astronomy, and mathematics. Pi is used in architecture and construction as well, and has been a vital part of everything from arches and bridges to the Pyramids of Giza."
Top 25 Most Interesting Pi Facts

"But how was this irrational number discovered, and after thousands of years of being studied, does this number still have any secrets? From the number's ancient origins to its murky future, here are some of the most surprising facts about pi."
10 Surprising Facts About Pi

oh, happy Pi day, nerds.

Well, maybe if the year was 1593....

Some of us still know enough digits to recognize the joke without looking...

Look at all y'all eating pie on 3.14, but how many of you ate a cheese log on 2.7?

only if it's organic
ln(ᵪᵪ)

Some of us still know enough digits to recognize the joke without looking...

Yes. That joke is right at my limit, with rounding. I've never bothered to keep anything past the first "6" in my head for a significant amount of time.

And, of course, I had to look to make sure my "with rounding" qualification was clear. I don't round what I keep in my head. If I did, the "6" would become a "7." But the "6" does allow me to round the "2" to a "3" without worrying about whether or not I rounded that last remembered digit.

I'm sure you'll all be able to carry on with your daily affairs clear-mindedly now that you don't have to worry about whether I round the last digit of Pi that I'm able to remember.

An irrational Pi is one of the burdens we must bear, for choosing to live in (almost completely) locally-flat spacetime, amirite?

The *rational* choice involves jumping into a Black Hole.

Somehow, 8 significant digits seems more than adequate for any day to day needs. On the rare occasions where you might need more, there's almost certainly time to look it up.

The difficult part is remembering that you guys write your dates back to front.

Three is close enough.

I've never bothered to keep anything past the first "6" in my head for a significant amount of time.

I was taking a numerical analysis class back in the 1970s and seemed to need to type in pi every day. For a week I walked around muttering "3.141592654" to myself. To my dismay -- now -- it stuck. What's really surprising about it is that I'm miserable at remembering strings of digits. I know exactly two ten-digit numbers: my cell phone and ten digits of pi. (If I need to call my wife, I have to look it up.)

My version of the McCoy line: "Damn it, Jim, I'm a mathematician not an accountant!"

The difficult part is remembering that you guys write your dates back to front.

Which is why Pi-approximation Day isn't as big in the States. Few people know what 22/7 is supposed to mean as a date.

A friend from France was lucky enough to move to the US shortly before turning 21. His ID made it look as though his birthday was several months earlier when assuming the first number was the month rather than the day. I don't remember his birthday, but assume it was December 1st. Bouncers would read it as January 12th.

Somehow, 8 significant digits seems more than adequate for any day to day needs.

i doubt i have ever needed more than one digit of pi in a situation where i didn't have a calculator or computer handy.

Now I'm inclined to add the "5" after the "6" to my memory just so what I can recall is the same whether rounded or truncated.

I have goals, you know! I'm trying to be my best me.

Counting collisions between sliding blocks can generate the decimal digits of pi.
Here's how: https://www.youtube.com/watch?v=HEfHFsfGXjs
Here's why: https://www.youtube.com/watch?v=jsYwFizhncE
I may have posted these links before, but really: it's one of the coolest things ever.

Here's one use for the unending stream of digits that is the decimal expansion of pi: you can probe what people mean by "probability" by asking them "What is the probability that that 100,001st digit of pi is 6?"

--TP

What is the probability that that 100,001st digit of pi is 6?

I'll look it up, after which I'll tell you if it's zero or one.

That reminds me of the misapplication of probability to a series of repeated events like coin tosses, such that some people think that if you get three heads in a row, the probability of getting heads on the fourth is somehow lower than it otherwise would be. The physics behind that would be interesting.

I've won a bet or two by betting that at least two people in a small group of people have the same birthday. I don't remember how to calculate the probability but the odds or better than most people would think they are.

The odds go above 50/50 at 23 people. It's not a complicated calculation, but it's simpler to calculate the probability that N people all have different birthdays and subtract that from one.

It's lower than most people think, or at least ISTM, because they don't really consider the fact that it can be any two (or more) people in the group, and it can be any birthday that they can share.

I've won a bet or two by betting that at least two people in a small group of people have the same birthday.

One of my favorite bar bets in college! "Tell you what, for the next round we'll ask 30 people their birthday, month and day. If there are two people with the same birthday, you buy." At 30 people, the odds are about 2:1 in my favor. Break-even is at 22 or 23, I think.

Also, if you phrase the question properly, at least one member of the opposite sex will stop to talk later.

I'd say the more often a coin gets the same result the MORE likely it is to stay that way since there must be something wrong with the coin. ;-)

I think I have the formula right:

1 - 365!/[(365-N!)*365^^N]

You might say, "What about leap days?" I don't know how to do an exact calculation that takes leap days into account, but you still hit the 50/50 mark at N = 23 whether you use 365 or 366. Even if every year had a February 29th, reducing the chances of a shared birthday to lower than what it is with leap years not quite every 4 years, you'd make the bet at the same number of people.

You know what happens after college bar bets? Inebriation.

But....assessing future coin flip outcomes may not be as easy as you think.

Titanic Thompson had a great one...after a round of golf he would be munching from a bag of peanuts and casually offer to bet he could throw one of them over the clubhouse. The marks were naturally unaware that he had a lead filled peanut shell in the bag.

I have two standard, ordinary, currently-circulating US coins. Together, they make 30 cents. One of them is NOT a nickel. Explain.

--TP

@hsh, now explain the answer to the Monty Hall problem...

The one which is a quarter is not a nickel.

"Things which are not equal to the same thing are not equal to each other." Or perhaps not....

I didn't recall the Monty Hall problem, but it's the same as the one about the shell game a friend of mine proposed when we were both home from our respective colleges, I think, all those many years ago. It appears Wikipedia does a nice job of explaining it.

I was skeptical that switching was the way to go until I had thought on it for long enough. And there are the conditions mentioned in the Wiki entry, such as the person running the game having to make the offer to switch to anyone playing, not just to the ones who chose right the first time.

hsh: I'll look it up, after which I'll tell you if it's zero or one.

That's the point of course. Now, if you had to bet before looking it up, it's reasonable to guess 10%, but for two slightly different reasons:
1) There are 10 possibilities; in the absence of any other information, a 6 is equally likely as any other digit.
2) It has already been established, somehow, that the digits of pi are actually distributed uniformly.
So here's a question: what would it take to establish that a particular 2-sided coin is "actually" fair? There must be a formula.

wj: The one which is a quarter is not a nickel.

I have been surprised by the number and variety of people in "real life" who had trouble with that one.

--TP

I suspect it's not so much a math/logic problem for them as an English language problem.

I have been surprised by the number and variety of people in "real life" who had trouble with that one.

Yeah, sure. But define "two".

The comments to this entry are closed.

Blog powered by Typepad