Saturday, July 31, 2010

Why You Shouldn't Care What People Say About You On Reddit

Vulture Magazine:
Do you get many strangers in the street asking you what you whispered to Scarlett Johansson?

Bill Murray:
Mmm hmmm, pretty much every day.

Vulture Magazine:
Really? Do you have a stock answer?

Bill Murray:
Now I just laugh. I used to tell them all kinds of things. Once I told someone the real thing and they didn’t believe it, so I was like, there goes that.

stream of consciousness re steampunk



steampunk is interesting because it mythologizes an era where electricity had been harnessed and was changing the world, but had only yet begun, and was not yet widely adopted; it resonates with us because with the internet, we are in the same position.



it also fits the general trend, of course, that the post-modern is the baroque; every re-make, remix, and re-purposing of existing content constitutes a filigree of additional flourish.



the other thing smart about it is the gadgets.



we do in fact live in a world where a select few can afford $2000+ keyboards (Art Lebedev), yet most of our objects are designed with assumptions of mass production - indeed, the term we use for the design of objects is industrial design, which makes the assumption of mass production so pervasive as to be buried under a layer of language. steampunk reflects the reality of elites who prize craftsmanship over ubiquity, and addresses the aesthetic opportunities that craftsmanship implies.


this car ships with rotary dials, leather interior, and teak decking; is it steampunk? almost



steampunk annoyed me until I realized I could buy it, and it bored me until I realized that buying it would cost me a lot of money. custom-made steampunk keyboards cost around $1500.



there's a reason, living in Los Angeles, that it's easier for me to name five steampunk bars than it is for me to name one steampunk novel. the biggest myth about steampunk, perpetuated by Wikipedia and (to a lesser extent BoingBoing), is that it's a literary genre, specifically a subgenre of science fiction. it's not. it's a fashion subgenre, specifically a subgenre of cosplay and of consumer electronics. like many strains of fashion, one of the only reasons it exists is to showcase how expensive it is.



consider these two women:





both are dressing up in silly costumes to have fun. one of them has a costume which is way more expensive than the other's, and which is only comprehensible to an exclusive few. the other has a costume which is way cheaper than the other's, and which is immediately understandable to anyone. these are fashion decisions.





clay shirky's new book (cognitive surplus) explains this. I'm hesitant to link it here, because his first book (here comes everybody) was a mind-bending, best-of-class, best-of-decade masterwork, and his new book, to put it simply, is not. at all. but if you can get over the disappointment, it does a good job of explaining the groundswell dynamics of leaderless aesthetic trends like steampunk (although, come to think of it, so does here comes everybody). one reason Wikipedia refers to steampunk as a literary genre is that there were in fact some steampunk novels, although nobody has ever read them, and it was a novelist who coined the term; but the other reason is that the intellectual class has no framework with which to acknowledge the existence or success of world creation as fashion or folk art; they understand it exclusively as a literary phenomenon, and when they see it happening, they find some books to attach to it, like any cargo cult programmer who copies a useless variable into otherwise sensible code because that's how he's always seen it done.

Tuesday, July 27, 2010

How To Annoy Co-Workers With Extremely Lazy AI

I have annoyed many co-workers in many different ways over a long and varied career. I once annoyed a co-worker by obstructing his path with a Furby, a lightsaber, and a small crowd of people who had gathered to see me strike the Furby with the lightsaber. I only annoyed this co-worker slightly; on other occasions, I annoyed other co-workers more.

One way I've annoyed a co-worker in the past: I failed to open source a particular piece of code. We had a client which, for various reasons, needed to find coherent, grammatical, and positive comments on YouTube videos. This was an epic needle-in-a-haystack problem - and we had to solve it before the first-ever working sarcasm detector.



When I say "we had to solve it," what I really mean is "I had to solve it." Here's how I did it. First, I ran a comment downloader. YouTube rate-limits API calls; to get around this, the comment downloader would sleep for a brief period between each API call, and continue downloading comments until no more were available. This often resulted in large corpuses of thousands of comments. I used Python for the comment downloader, because of the easy availability of Google API client libraries, and switched to Ruby to process the corpus. (If you know anything about AI, you know that's crazy, but hey, I did it, and it worked.)

You might imagine that Bayesian networks would be the next place to take this large corpus. You would be imagining wrong. We tried that and it was an epic timesink. Instead, I first ran the comments against a blacklist filled with slurs, zomgs, and <3s. Grading for positiveness also used regexes. Next I ran it through linkparser, my fork of Ruby-LinkParser, which differs from the original only in the addition of some install documentation and a few changes to the C code which make installation possible (and which I really just guess-worked my way through). Ruby-LinkParser describes itself thus:

A high-level interface to the CMU Link Grammar.

This binding wraps the link-grammar shared library provided by the AbiWord project for their grammar-checker.


Using this wrapper, it's trivial to generates counts of grammatical linkages for arbitrary sentences. The AbiWord docs provide links to the original white papers; here, I'll just summarize. In a sentence like "I farted and my brain exploded," "and" is a grammatical link. It links the two sub-sentences, or, more accurately, the two sentence-like sub-structures. There aren't a lot of grammatical links there, because it's a simple sentence. Many many more grammatical links lurk in a sentence like "I farted, which I did to expel gas (which relieved cramping in my stomach and anus), and my brain, which I use mainly to remember or imagine what various women look like with no clothes on, exploded, which inconvenienced me considerably, and incurred substantial medical costs, because, despite the trivial and/or foolish uses to which my brain is usually put, it remains a finely tuned machine which is difficult to replace and expensive to repair."

I'm no linguist, and it's been a while since I read the papers, but I'll highlight here what I believe the grammatical linkages in that sentence are:

I farted, which I did to expel gas (which relieved cramping in my stomach and anus), and my brain, which I use mainly to remember or imagine what various women look like with no clothes on, exploded, which inconvenienced me considerably, and incurred substantial medical costs, because, despite the trivial and/or foolish uses to which my brain is usually put, it remains a finely tuned machine which is difficult to replace and expensive to repair.

I'm actually over-simplifying here - linkages can be grammatical constructs as well as words - but you get the idea. As you can see, this longer sentence has many more grammatical linkages. (It would also have failed to qualify on positivity grounds, due to the presence of the word "fart," but it's just an example.) What I found, after isolating a ton of good comments and bad comments from our corpus to use as examples, was that the only comments that ever had significant numbers of grammatical linkages also happened to be coherent. There were a very few coherent sentences with low grammatical linkages, but the vast majority had high link counts, and it was very, very easy to isolate a threshold value for link counts, above which no incoherent sentence ever passed the filter.

So that's what I did. And my co-workers were like, hey, you should open source that, and I was like, well, it's a bit too dumb. Which was kind of obnoxious of me, because at the same time, my boss was like, holy shit, it's magic. This was a while ago, and I don't think I have the code any more, but I can at least give the world an explanation of how it worked, so that's what I just did. The magic happens with one line, that looks roughly like this:

parse(sentence).links.size > 30

I think I also had a begin/rescue block in there, because "zomg lol" has zero grammatical linkages, and will in fact make the link-parser crap its pants. One further caveat, the process needed occasional restarts, as the link-parser was an academic research project, not designed for production use, and seemed to experience a memory leak or two every now and then.

By the way, I apologize for the fairly blatant bait-and-switch in my title; I didn't use the extremely lazy AI to directly annoy my co-workers. However, if you want to see how I used extremely lazy AI to directly annoy my former roommate, by making fun of her, you should check out TiffyDialogBot, a Python experiment from 2005.



Update:



...and if you want to see actual code, you should check out SkippyTalkBot.

Monday, July 26, 2010

Dammit

I'm really annoyed with myself about something. A few years ago I got the idea (like so many others) that free mp3s meant the money in music would lie in performance. I theorized (but did not blog) that this would also extrapolate to TV and film, and that TV shows and movies would drive live performances. Since that time, Conan O'Brien and the cast of Glee have both done live tours based off their TV work.

Should have blogged it when I thought of it, but better late than never.

Lego NXT Robot Drum Machine



more info at create digital music

Saturday, July 24, 2010

Friday, July 23, 2010

Web App Ideas: Bumbleebees, Not 747s

Constraints drive innovation and force focus. Instead of trying to remove them, use them to your advantage...Constraints are often advantages in disguise.

I asked tonight on Twitter for web app ideas and got a bunch, some of them very interesting. But, if you told me your idea and I seemed skeptical, it's because I have a set of rules I'm operating against. I don't define them as The Right Way; they're the operating boundaries of the current experiment, and the experiment began in December or January (and will run about a year). If ideas don't fit within the operating boundaries of the current experiment, I automatically discard them without regard to merit.

Boundaries include: quick to build; cash-flow positive within a month, preferably much sooner; low maintenance; low overhead (e.g., nothing which requires forming a corporation). There are probably others; these are the ones I'm aware of. I haven't asked for app ideas before so I haven't needed to name my experimental constraints explicitly. I'm articulating something I haven't articulated before, and it's a little like transcribing the melody of background music that you've only just noticed a moment ago.

Of the constraints I've listed, the requirement to become cash-flow positive almost immediately is probably the killer. If you had no requirement to become cash-flow positive ever, you could easily come up with many useful web apps which required low maintenance and low overhead, and were quick to build. I set a goal to create one of these every month in 2009, and every year, the Rails Rumble churns out a bunch of apps like this in a single weekend. Giving yourself six months to cash-flow positive would expand the range of options considerably; that's even true for just three months.

However, the fundamental assumption behind this experiment is that venture capital operates on severely mistaken assumptions of cost and time to market, based on the economics of a previous era in technology; and that open source software and commodity hardware have made modern web development so agile, lightweight, and inherently cheap that new, robust, and ultra-tiny categories of business will result. Startups can work with "runway" periods of a year, or three, or five; but what if startups don't need any runway at all any more? People say that to launch a jumbo jet requires a long runway, but that's not true for a Harrier jet or a helicopter.


Or a freakin alien mothership

It's not true for a bumblebee either, and there's tiresome hubris in the jumbo jet analogy. Jets are very reliable, but they're not at all fault-tolerant - their failures are few, but utterly catastrophic - while swarms of insects form some of the most fault-tolerant systems in the universe. Open source software comes from a place of sharing in abundance, of combined collaboration and competition - what you could call "collabpetition" - and this is fundamentally different from the economic thinking of venture capital, which revolves around leveraging gigantor investments into even-more-gigantor wealth. I'm not opposed to gigantor wealth at all - my desktop background is a picture of a Murcielago - but the world's seen some very serious catastrophic failures of giant systems for turning huge wealth into huger wealth recently, so I'm very interested to discover what the bumblebee end of the spectrum is going to look like, exactly.


vroooooooooom! btw, I stole the "collabpetition" thing from Matt Knox

This is part of what's fueled my interest in internet marketing; IM businesses are tiny. It's usually one person, one product, and one web page written in HTML. A sophisticated IM web app adds a blog, a few more static pages, login functionality, automated e-mail list management (usually via Aweber), ad management with Google AdWords and Analytics, and/or a few other bits and bobs. Even though there are many parts, none of them are very groundbreaking to code; you won't need support vector machines, and your code may not contain the word lambda anywhere. But that simplicity comes from success. Lots of people have made lots of money with these business models, and already, this dumb beast, having proven itself a survivor in its niche, is wandering into adjacent ecosystems.

All the same, it's still early days. What evolution holds for these businesses is still unknown, and the future shape of the bumblebee may transform.

Tôi Kratistôi (And Good Riddance)


Retired emperor Bill Gates

1: Microsoft sank at least a quarter of a billion dollars into the Kin, its recently canceled cellphone. This is on top of its $500m acquisition of Danger, absorbed in order to develop it. Notwithstanding Kin's shortcomings as a product, the most entertaining aspect of the cock-up is that it appears to be the result of ego battles in Redmond: rumor has it that Kin was throttled in its billion-dollar crib by an executive who saw it as a threat to Windows Mobile. According to the Daily Beast, in-fighting among the brass now threatens CEO Steve Ballmer himself.

2: Division of the Empire


Deceased emperor Alexander the Great

Alexander had no obvious or legitimate heir, his son Alexander IV by Roxane being born after Alexander's death. This left the huge question as to who would rule the newly conquered and barely pacified Empire. According to Diodorus, Alexander's companions asked him when he was on his deathbed to whom he bequeathed his kingdom; his laconic reply was "tôi kratistôi"—"to the strongest". Given that Arrian and Plutarch have Alexander speechless by this point, it is possible that this is an apocryphal story. Diodorus, Curtius and Justin also have the more plausible story of Alexander passing his signet ring to Perdiccas, one of his bodyguard and leader of the companion cavalry, in front of witnesses, thereby possibly nominating Perdiccas as his successor.

In any event, Perdiccas initially avoided explicitly claiming power, instead suggesting that Roxane's baby would be king, if male; with himself, Craterus, Leonnatus and Antipater as guardians. However, the infantry, under the command of Meleager, rejected this arrangement since they had been excluded from the discussion. Instead, they supported Alexander's half-brother Philip Arrhidaeus. Eventually, the two sides reconciled, and after the birth of Alexander IV, he and Philip III were appointed joint kings of the Empire—albeit in name only.

It was not long, however, before dissension and rivalry began to afflict the Macedonians. The satrapies handed out by Perdiccas at the Partition of Babylon became power bases each general could use to launch his own bid for power. After the assassination of Perdiccas in 321 BC, all semblance of Macedonian unity collapsed, and 40 years of war between "The Successors" (Diadochi) ensued before the Hellenistic world settled into four stable power blocks: the Ptolemaic kingdom of Egypt, the Seleucid Empire in the east, the Kingdom of Pergamon in Asia Minor, and Macedon. In the process, both Alexander IV and Philip III were murdered.

Tuesday, July 20, 2010

BP Seems To Be Taking The Possibility Of Criminal Charges Seriously

Foreign oil giant BP is on a spending spree, buying Gulf Coast scientists for its private contractor army...

Scientists from Louisiana State University, Mississippi State University and Texas A&M have “signed contracts with BP to work on their behalf in the Natural Resources Damage Assessment (NRDA) process” that determines how much ecological damage the Gulf of Mexico region is suffering from BP’s toxic black tide. The contract, the Mobile Press-Register has learned, “prohibits the scientists from publishing their research, sharing it with other scientists or speaking about the data that they collect for at least the next three years.”

Bob Shipp, head of marine sciences at the University of South Alabama — whose entire department BP wished to hire — refused to sign over their integrity to the corporate criminal:

"We told them there was no way we would agree to any kind of restrictions on the data we collect. It was pretty clear we wouldn’t be hearing from them again after that. We didn’t like the perception of the university representing BP in any fashion."

The lucrative $250-an-hour deal “buys silence,” said Robert Wiygul, an Ocean Springs environmental lawyer who analyzed the contract. “It makes me feel like they were more interested in making sure we couldn’t testify against them than in having us testify for them,” said George Crozier, head of the Dauphin Island Sea Lab, who was approached by BP.


(via boingboing)

Saturday, July 17, 2010

SHARKTOPUS!



(via deadline hollywood)

Friday, July 16, 2010

Two Profound Transformations In 2009

A lot of people know that in 2009, after having heart surgery, I became a vegan, lost 75+ pounds, and saw massive improvements in my cholesterol and blood pressure, and that I've continued eating only healthy food since then.

What a lot of people don't realize is that was only one of two transformations I experienced last year.

The other: I became organized. I know plenty of people who would be astonished to see me selling a video on time management, but those same people would be astonished to see me, period, because I don't look like I used to. A month or two ago I hit my low of 173 pounds, where last year I had weighed 255; that's less than I weighed in high school. I've lost the weight of a pre-teen child, or a very petite woman, or a Backstreet Boy.

Anyway, this is what makes my time management video awesome. Most such materials show organized people how to be more organized. But in 2009, I was disorganized, and I had been all my life. My home was a mess, with papers piled everywhere. My life was filled with incomplete projects and half-finished ideas. I'm not perfect, but the difference is night and day. I do my laundry every week now, for instance; in 2009 I didn't do my laundry every month. I was more likely to buy new clothes than I was to do my laundry.

Most people who think of themselves as disorganized imagine that they're doomed to be that way their whole lives. I thought so; I thought I was doomed to be fat my whole life, too. I thought it was in my genes. To my knowledge, this is the only time management system extracted from the real-life experience of a person who went from completely disorganized to highly organized in the space of a year.

Here are the free videos:

Secrets Of Superstar Programmer Productivity: Flow

Secrets Of Superstar Programmer Productivity: Metrics

Secrets Of Superstar Programmer Productivity: Habit

And you really owe it to yourself to buy my new video Time Management For Alpha Geeks. It's $97.



How much would you pay to make all your time more valuable? How much more money could you make? How much more would you accomplish? How much less busywork would you waste your time on, if you could raise your productivity?

Thursday, July 15, 2010

One Of My Stranger Skills

In order to make a point about discipline in my new time management video, I shot a couple clips of me balancing a dish of water on my hand while doing fake tai chi moves. (Actually, they're real moves, massively paraphrased, because I haven't done real tai chi in a while.)

In the second video, some water spills at the end.

Enjoy!





If you give this a whirl yourself, do what I did: start with empty plastic dishes, then scale up to plastic dishes filled with water, and finally ceramic dishes filled with water.

Tuesday, July 13, 2010

Time Management For Alpha Geeks: Coming Soon

Update: Sorry, sold out!

Update: Now on sale!

Buy Now


It's kind of hard to miss, but I've been releasing free 20-minute videos on productivity and time management. Later tonight I'll be selling a video on time management which is freaking awesome. The free videos operate as the first three lessons in a mini-course; the video for sale wraps them up, answers the questions they raise, and provides a lot more awesomeness. But each free video contains awesome, useful content too; gotten lots of good feedback on them.

The video for sale will only be available for a few days, until Friday, so you might want to grab it the moment it becomes available. I did this with my internet marketing video, and when I eventually brought it back on the market, it came back at twice the price.

Stay tuned!

Secrets Of Superstar Programmer Productivity: Habit



This is video #3 in my Secrets Of Superstar Programmer Productivity series. References How To Make Wealth by Paul Graham.

Monday, July 12, 2010

Secrets Of Superstar Programmer Productivity: Metrics



This is video #2 in my Secrets Of Superstar Programmer Productivity series. Video #3 is coming soon.

Referenced in the video:

who we hire by Chris Wanstrath

Breakfast picture via flickr user arvindgrover

A note about the origins of the "measure/manage" saying:



And tweets in response to the first video:







Sunday, July 11, 2010

Secrets Of Superstar Programmer Productivity: Flow



Referenced in the video:

Great Hackers by Paul Graham

Hitting The High Notes by Joel Spolsky

Some notes on productivity from futurepundit.com

Update



Conventional wisdom advocates checking your e-mail every five minutes - or worse yet, setting your mail client to check automatically for you and alert you the moment a new message arrives. Conventional wisdom also held that nobody would buy the iPad, that the iPod needed more features, that Ruby on Rails could never compete with a "real" framework like J2EE, and (if you go far back enough) that the earth was flat and the whole universe revolved around it.

If you have Growl on your Mac, you should uninstall it immediately.

How I Feel About FlowPlayer



I recommend JW Player instead. Three hours of wrestling with FlowPlayer failed; five minutes of cut-and-paste with JW Player succeeded. Easy choice.

Wednesday, July 7, 2010

Review: Create Your Own Freaking Awesome Programming Language

A while ago I blogged this ebook, as some highly relevant advertizing - it's got affiliate links - but I didn't have the time to actually sit down and read it. That's been at the back of my mind for ages, so last night I finally got around to it. I also watched the bonus screencast.



The book gives you open source Ruby code to play with as the foundation for a language, with the caveat that it's toy code, presented as teaching examples. It goes deep enough to explain the concepts in detail, and the book includes "Do It Yourself" challenges/exercises in extending the code, with answers at the back. Jeremy Ashkenas created CoffeeScript on this foundation, but soon replaced it with a more robust system once he'd gotten the language going; in a sense, he used the teaching examples code like a Rails newbie might use scaffolding. The video shows you how to use the other code package included, a more serious/realistic example in Java.

I had been worried, because I ran an ad about this on Reddit a few months ago, and a really rabid hater got into a furious flame war about how awful this book was and how much better SICP was, and blah blah blah. My intuition at the time was that the guy just had some anger issues; the book totally bears this out. His main point of contention was that the dummy code uses regular expressions in its lexer, and the book makes it abundantly clear that this is only for teaching purposes, giving plenty of pointers to deeper examples on how real lexers work. The author, Marc-André Cournoyer, built the languages Min and tinyrb before writing the book (as well as the Thin web server, which is less relevant but still pretty cool), and he provides a nice, comprehensive overview with plenty of informed links to deeper detail about related projects. This makes the book a great starting point if you're new to language design. No disrespect to SICP or the other classics, but this is a really nice, fun starting point.

I learned quite a bit, and I'm a pretty experienced programmer. Pretty much the only thing I knew about language design before this came from reading the source for Potion and Rubinius, making a tiny patch in Rubinius with a lot of help from Wilson Bilkovich, and building a ridiculous but fun Rails plugin with TreeTop, the Ruby parsing expression grammar. Although I don't have time to get into this today, I'm hoping to do a followup post where I explain a little bit about that; since that flamewar guy on Reddit made so defensive about the fact that How To Create Your Own Freaking Awesome Programming Language uses regular expressions in its lexer, I want to show how you'd step beyond that to something more sophisticated, and TreeTop makes an extremely logical next step. Maybe I'll even create my own ebook as a complement to this one. Being a so-called "rock star programmer" can make you a little insecure.

For now, though, I'm just going to say, I totally recommend this ebook, I enjoyed it, and it probably even made me a little better as a programmer. Definitely recommend you buy it. I don't want to jinx this project idea, but I've been hoping, ever since I first played with TreeTop, to use TreeTop to revamp my Rubotz project, which allows you to program Lego Mindstorms in Ruby. I guess that counts as language design experience also, but only as one hell of a stretch. It's mostly just a DSL plus ERb. If you install the gem (gem install rubotz) and look at the code or the documentation, you'll see how incredibly primitive it is.

I did get it to the point where it could program this robot to do what it's doing in the video:



But that's about it. What I've been hoping to do with TreeTop is actually implement it like a Logo for Mindstorms in Ruby, maybe renaming it Rogo in the process; Cournoyer's book makes it a lot easier to see that idea becoming reality. So yeah, once again, I'm going to say it rocks and you should buy it.

Tuesday, July 6, 2010

There Is No Excuse For Not Bowing To And Obeying This Book's Every Whim Like It Was Queen Cleopatra

No excuse. You think I'm kidding, but I'm not.



Essential for anyone doing anything.

1 + 2 = 3

1:



2:



3:

Internet Marketing Meets TV Meets The Web

The TV show Top Chef uses an internet marketing business model - a membership site with training - to generate additional revenue. It was only a matter of time.

There's Mischief Afoot

Update: Freakonomics calls shenanigans.

Right now I'm stuck between two competing ideas. The ideas are superficially opposite, which bothers me a great deal, because I think they both contain some truth.

Derek Sivers:

Tests done since 1933 show that people who talk about their intentions are less likely to make them happen.

(Anecdotally supported by my Grandpa Harold, who spent months learning Italian in secret and then surprised his whole family, while on vacation in Italy, by speaking the language fluently.)

Dallas Travers:

If you sheepishly talk about your acting career only in safe environments after much poking and prodding, expect your goals to be reached just some of the time and only in safe environments.

For now I'm settling on a compromise: I'm working on some things. A range of interesting ideas beyond what I've done before. (But related.) I won't go into detail now, but I might later, if I decide in favor of that approach.

Sunday, July 4, 2010

RSAnimate: Financial Crisis

A little Marxism for your Fourth of July.

Thursday, July 1, 2010

Hypnosis Is Just Like Programming

I studied hypnosis seriously for a few years, and considered giving up programming entirely to become a hypnotherapist. Along the way I frequently had conversations with people who said things like "I don't believe in hypnosis." Hypnosis is like evolution or gravity; whether you believe in it or not has absolutely no effect on anything else, except perhaps the opinions of other, equally ignorant people. However, the attitude of not believing in hypnosis is nonetheless understandable, because plenty of people who call themselves hypnotists aren't, and plenty of people who say they can perform hypnosis can't.

The field of NLP, while brilliant and full of truly staggering innovations over pre-NLP hypnosis, has made this problem much, much worse, by filling the world with people who are certain they can hypnotize you just by poking you at unexpected moments. I'm not exaggerating; the NLPers trivialized a genuine hypnotic phenomenon called anchoring, whereby people respond to unusual sensations by triggering memories, and turned it into this idea that all you need to do to hypnotize somebody is give them an instruction, poke them, and later when you poke them the second time they'll remember the instruction. Consequently you can go to a so-called NLP practitioner looking to solve a problem, and they can charge you money for poking you at annoying times for no good reason. That is not a good deal.

The funny thing about "not believing in hypnosis" and hypnosis's bizarre status as something which rests on research and unchanging truths of human psychology, like a science, yet depends entirely on how well the hypnotist does it, like an art, is that programmers are basically the only people in the world who are totally prepared to understand what hypnosis is, in that sense. Hypnosis is somewhere between an art and a science in exactly the same way programming is; the best innovations in programming may have in fact occurred in the late 60s and early 70s, when Lisp was invented and then disregarded in favor of C++, and the best hypnotist who ever lived is very probably the late, great Milton Erickson, whose techniques have been carefully documented, thoroughly explained, and widely not emulated. It's easy to become a great programmer if you work at it, but nobody does. The same is true of hypnosis; excellent schools exist, excellent books exist, and all you have to do to get good is go to the schools, read the books, and practice, yet very few people do. In the same way that most "programmers" just copy and paste code they found on the Internet somewhere and then hope it works without bothering to figure out what it does, most hypnotists cargo-cult hypnosis scripts and run through them without any analysis or consideration, assuming they'll get the same result as the person who created the script, never realizing that what drove the result was not the words the person chose but the understanding that drove their choices. In both these fields, the number of people who do it well is much, much smaller than the number of people who do it; the number of people who know the history of the field and work with the best techniques available is much, much smaller than the number of people with degrees or certifications; and people can debate whether the field is an art or a science, because it rests on firm logical foundations, yet the results vary wildly based almost entirely on who is doing it, and how.

We don't really have a word for this type of thing, which both hypnosis and programming are; or rather, we do have a word - craft - but it's loaded with all kinds of distracting associations which prevent people from using it in this context, and implies an approach to work, and to status in the workplace, which fits better the Rennaissance concept of masters and apprentices than it does the modern idea of man-hours and so-called "scientific management", where workers are taken to be interchangeable cogs in a giant machine, and where programmers are, for some insane goddamn reason, considered to be workers in the first place, as opposed to skilled professionals or knowledgeable experts.

Another similarity is that regulating hypnosis is very difficult for the same reason regulating programming is; most lawmakers have no idea how to distinguish bad hypnosis from good, any more than they can distinguish bad programming from good. (Consider how the Supreme Court asked lawyers what the difference was between an e-mail and a pager.) The laws on hypnosis are as crazy as the laws on technology which keep the EFF so busy and Reddit so amused. Advertizing medical benefits of hypnosis is illegal, for instance, and since I am considering launching some hypnosis products, I probably shouldn't tell you that I've experienced medical benefits of hypnosis, but since I have not actually made the leap yet, I'll go ahead and tell you: I have. I banished my allergies for about two years with hypnosis, and this is a common result which cannot be legally advertized in many US states. Likewise, I've seen pictures of a woman who received painful dental work with no anaesthetic other than a hypnotist hypnotizing her to not feel pain until the work was complete, and I knew the hypnotist in the picture personally.

Long story short, hypnosis is a craft incomprehensible to outsiders, in the same way programming is. It faces the same legislative issues and has some of the same advertizing problems; which means of course that it is also amenable to many of the same advertizing solutions. The best way to get a great rate as a programmer is to make a name for yourself, meet the right people, and charge them prices which would seem insane on the open market; the same is probably true for hypnotists. Consequently, if I do go into hypnosis, I probably will make products available but won't be available for one-on-one hypnosis for less than $500 or $1000 per hour.

However, I'm thinking out loud here. I mostly wrote this because I bought a fairly good hypnosis product which has deeply annoyed me by advertizing a specific technique but then doing it wrong. I spent all this money to get this technique and I'd have been better off just writing my own script and recording it myself. This is also (again) very probably a familiar experience to any programmer who has ever hired another programmer to do a specific task but been disappointed by the way in which they performed the task. Hypnosis may need a Fizzbuzz.