Tuesday, September 27, 2016

Meetings are the worst



If I had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'.- Dave Barry

There are different kinds of meetings. Some are to make other people aware of what has happened, some are for making a decision together, some are for getting things done, some are for brainstorming, some are highly structured, some are for meeting people you haven't met before.


Sometimes you can just show up at a meeting and wing it if called on. Sometimes you have to be prepared for a meeting. Either way, for some time before the meeting, whatever you're doing, you're thinking in the back of your head 'argh, a meeting, what will I say about progress on widgets?'.

Who likes meetings? The ones who call them. Organizing and leading a meeting makes you feel important. It's like a club, an exclusive club that other people aren't in. "Why wasn't I invited to that meeting? That affects me! I would have liked to say something!"

I find that the proliferation of meetings themselves comes out of a more modern desire to be considerate, transparent, and to be inclusive. You don't want to annoy non-key players. 

But it seems like there are always too many meetings. "My schedule is full, never time to actually do anything."

Some people are primarily managers and some primarily doers. A manager's job _is_ communication so their job _should_ be meeting with people. A doer is doing something (engineering the deployment, tweaking the spreadsheet, reminding clients about payments, making the training video). See this blog post:http://www.paulgraham.com/makersschedule.html. And they should be spending most of their time doing. Communication is necessary, but it cuts into time doing things.

Also, we're all a mix of these two. You may be a CEO and need to talk to the other execs, and clients, and investors, and give presentations. But you also need to prepare that ppt and practice your speech. And even if you're the assembly-line widget-53-orientation-setter-class-3, you still have to spend time discussing issues with your neighbors off-line.

Consider these tactics to make meetings shorter/unnecessary:

- have a clearly stated agenda (even as a document) with clear goals or if it is intended to be a discussion have boundaries and stick to them. An amorphous or non-existent agenda just means people will talk for an hour with little outcome.

- don't be shackled by hours and weeks. modify the schedule to once every two weeks, or just 1/2 hour (or both, or less).

- always try to end a meeting early (don't feel like the time has to be filled out). No one ever leaves a meeting early thinking they wished it could have gone on longer. If the end of the agenda has been finished, don't stretch it out, it's done. If there are any further questions. 

Some people spend all their energy trying to figure out when is the last moment to jump in with an idea or question and it may come at the end.

- assign a non-key participant to be a facilitator (this is difficult to get, to perform, and loses that person's time)

- stick mostly to guidelines but be lenient. If a talk veers off the agenda (a problem is being solved but the meeting is about discussion), then schedule a meeting for the problem solving -or- be open about modifying the agenda (just stating an agenda item is often enough and details haven't changed).

- someone, not a key-player, should take notes (could be facilitator)

- record action items discovered.

These last few tend to increase the energy spent on a meeting. They're intended to increase the worth of the meeting. If a meeting's importance doesn't call for this prep, then maybe it doesn't have to be that long or have that many people.

"Probabilistic programming languages" aren't

I'm looking for truth in advertising: "Probabilistic Programming Languages" or PPL is a recent term to describe a very useful new paradigm in statistical modeling computing... but it's not a set of new languages. It is much more restricted to very particular kind of statistical modeling as opposed to the broad sense of probability.

As someone who likes a little consistency in language use, for words to have meanings you can mostly rely on, I am bothered by this usage (just as I'm bothered by the similarly mystically enticing marketing term Deep Learning). Here is a  very representative description of PPLs:

Probabilistic Programming (PP)
There’s a revolution in Computer Science called Probabilistic programming (PP) where programming languages are now built to compute with uncertainity in addition to computing with logic. This means that existing programming languages can now support random variables, constraints on variables and inference packages. Using a PP language, you can now describe a model of your problem in a compact form with a few lines of code. Then an inference engine is called to automatically generate inference routines (and even source code) to solve that problem. Some notable examples of PP languages include Infer.NetStan, BUGS, church, Figarro and PyMC. In this blog post, we will access Stan algorithms through the R interface.
from a blog article on PPL (which also tries to introduce new but uninformative terminology, MPML).

I expect words to mean things, and despite liking metaphorical usage in literature and expository writing, not calling a technical thing what it is sounds too much like slimy obscurantist marketing practice. If it is misleading in any way, it is suspect. Suspect maybe not in venal terms, but more likely suspect in intellectual depth.

For the record, the difficulties in the passage above are:

  • There's no revolution, not in computer science, not in programming languages, not in AI. Maybe there's some recognition that there is some progress in usage, but it is incremental.
  • No new programming languages are being built. No programming languages are being modified to accommodate new probabilistic data types. This is the biggest clunker. There's no new programming language thing at all. What is new is packages or libraries or functions, in the existing programming languages. PyMC is a library written in Python, and used in Python as native Python. Stan is written in C++ but it is not a syntax/semantics, just a library that is accessible from existing languages (R, Python, Matlab, Julia, etc).
  • The idea of operating on distributions as a type is not actually new. Mathematica and Maple have had object oriented implementations of distributions, allowing operating on those distributions functionally. What these PPL packages add is approximation algorithms to compute values for Bayesian inference using Markov-Chain Monte-Carlo (MCMC) , which is fancy talk for calculating a number approximately. Pretty much very analogous to computing a p-value.
  • All these PPLs are just library add-ons to existing languages. So in that sense don't worry that you have to learn a new syntax. You surely will have to learn how to use the library.
  • It's not about probability in the large. Most all languages have probabilities already (restrict floats to the range 0:1). Some people are creating packages that make it more easy to use probability distributions (which some languages already had libraries for), and to manipulate those distributions (and make statistical inferences from them. But, no, it's not a revolutionary new alternative to languages with logic using probability. It might be a revolutionary library of functions that will make manipulating and computing with distributions and models easier, nut it's not a new language.

A programming language is a syntax and semantics and a compiler. A library is a set of functions written in a programming language usable by programs written in that programming language. One language can use functions written in another programming language as long as there is an interface.

To call a programming language probabilistic (or extension to an existing language that would render in my eyes the extension to be probabilistic), there would have to be a basic data type, like integer or boolean, that corresponds to a probability distribution (for the purposes of efficiency in compilation).

This is certainly a diatribe about naming. I have no qualms about the use of these PPL libraries. It's just the name. Distributional Modeling Libraries may be more accurate and doesn't have the same punch but is not actually incorrect like PPL. But if you're advertising faster-than-light speed, those words come with a lot of meaning, and should actually provide that without a lot of qualifications.

Friday, September 16, 2016

Words that are almost identical in spelling and meaning but are not

Some words have a huge semantic overlap that there's hardly any distinguishing them. Bucket or pail? Is there any instance where one of these is right and the other obviously wrong? (probably, but rare).

Some some pairs of words are really hard to differentiate but they have distinct meanings, if only you study the dictionary. They have considerable vague overlap, but a verifiable situations where one or the other just don't apply technically.

First in a series:

tragedy and travesty:

That poor dog dying. Was it a tragedy or a travesty? It could easily be both. A tragedy is a particularly bad outcome. Most everybody dead at the end of Hamlet (sorry, spoiler!); that's a tragedy. A travesty is a horribly distorted copy of something. The elementary school play of the Cherry Orchard had no sense of anomie; that's a travesty but not really tragic. A travesty is often tragic; a travesty of justice ended up sending the falsely accused to jail resulting in the tragic demise of his entire family. There are tragedies that aren't a travesty. Most people dying are tragic, but really that's sort of the order of things eventually. There are travesties that aren't tragic; that elementary school play. Tragedy: Hamlet. Travesty: School play

Irish Words in English

Irish is obviously overshadowed by English culturally. So there are lots of vocabulary items in Irish that came from English. But it goes the other way too. There are a handful of terms that were borrowed into English from Irish: the Saxon overlords ('Sasanna' = England in Irish) picked up a few things from the Celtic underlings (pronounced 'keltic' with the Irish 'C').

Yes, in the following even though there is a link, some liberties are taken. So maybe it doesn't come directly from Irish but via another language that eventually borrowed from Irish. Or maybe. Or maybe it was just sort of maybe made up to sound Irishish. But most of this holds up.

banshee  From Irish for 'screaming spirit'. Haha, no that's what it is in English. In Irish, it is 'bean sidhe', meaning fairy woman.
britches  From Irish for pants. Well, not exactly, but it is the Irish word for pants so that's good enough for me for it to be Irish origin. 

brogue  An Irish accent, usually in the phrase 'an Irish brogue'. 'brog' means shoe in Irish, so they must be especially noticeable kinds of shoes to have turned into a symbol of Irishness.

clan  From Irish 'chlann' children, clan

clock  From Irish 'clog' clock. A tortuus path through other languages with Irish involved.

galore  From Irish 'go leor' enough, a lot. Often paired with whiskey. But works for anything in English.

hooligan  yob, rowdy young man, From ... well it's probably made up from Englisher's mispronouncing the surname 'Houlihan'. Like all Irish have the last name Houlihan. 

phony From Irish 'fainne' for 'ring (for your finger)'. Presumably costume jewelery.

pet  From Scots Gaelic 'peata' for tamed animal.

shanty Official sources say it's from French 'chantier' for cabin, but there are claims for Irish 'sean tig' for old house (which is not good Irish grammar). Fine, but it has that Irish sounding '-y'.

shenanigans  From ... probably also made up to sound Irish. But I count it!

slew From Irish 'sluagh' a big number of people
slogan From Irish 'sluagh-ghairm' for war cry (by a big number of people) 

smithereens  From Irish 'smidirin' small fragments    

spree - From Ir 'spraoi' for spree.



trousers From Scots Gaelic treu for pants. Scots counts.

whiskey  From Ir 'uisce' water. In Irish, whiskey is 'uisce beann' or water of life.


You'd think there'd be more!

What's most important for success in X?

On a very particular Q&A site, I saw the question "To what do you attribute your success?". A very broad question, intended for a very narrow audience, but any answer should apply generally. Many answers say something like 'tenacity' or 'embrace change' or 'have clear goals'. Which are all good. But here is my answer:

- good idea - addresses a real existing need in a way no one else ever thought of in just that way

- hard work - you can't just sit back and let people recognize your brilliant idea. Hard work can be either doing more (of the same stuff) or doing different (thinking harder)

- strategic details - getting the nuances just right can make the difference, that one tiny little thing, the subtle finishing touch whose lack

- good team - well prepared, good skill coverage, good connections

- luck - there are some many things that you don't know and can't know, historical accident, the whims of people, unexpectedly meeting an old friend

Any one of these can ruin things, but also any one can put you over the top into success. Sometimes you -can- sit back and let it run if you get real lucky (this is -very- rare, you're not -that- lucky). Often trying harder can compensate for bad luck.

The usual question is which single one is the most important, a good idea or a good team, or personality vs substance. The answer is always yes, but one can often compensate for the other.

Which one is the most important? The point of question like this is to determine which single one can you put your efforts into. Obviously you shouldn't neglect any but some are difficult to change like luck, but that's why you need to be well-prepared for when the opportunity arrives (or the disaster occurs).