I'm looking for sample code that sets the "website-redirect-location" property of an S3 object using the AWS toolkit for node.js.

Here's the code I wrote that does not succeed in setting the property on the object.

s3.putObject ({Bucket: "scripting.com", Key: "hello.html", WebsiteRedirectLocation: "http://amazon.com/"});

I've stared at the code, tried all kinds of permutations, but there really isn't that much I can change.

If anyone has working code for this please let me know. I have a really cool feature waiting for this to work.

01/31/14; 11:07:05 AM

This thread began in a Facebook post by Mike Godwin, who is the Godwin in Godwin's Law. I know Mike. He's a regular East Bay liberal lawyer type. Not rich, as far as I know, intellectual, opinionated, left-leaning, and a longtime netizen, which is why he's so famous for creating the law, which came out of various flamewars on the pre-web Internet. He's a good guy to converse with, he's smart, edgy, opinionated, challenging -- all good things when it comes to learning and having fun in conversation.

He was commenting on a Krugman post entitled Godwin Help Us, a line he stole from Jonathan Chait, referring to the Tom Perkins mess. I commented, which brought my friend Chuck Shotton into the thread, with a link to a Scott Adams post that takes a contrarian view to conventional wisdom about the Perkins mess. He says Perkins is a smart guy, and has seen many trends before others, that's why he got so rich (good point) and that while his choice of Nazi metaphor is distracting, it's not totally impossible that the rich will be demonized as the source of all our pain, as Jews were in the Holocaust.

As a Jew myself, whose family fled the Nazis, I have always had mixed feelings about Godwin's Law, even though I like Mike. It's been used to shut down discussion of fascism and repression, and even a resurgence of Nazism, and it's contrary to my grandfather's admonition, a man who fought to save his family from the Nazis, that we never forget.

Anyway, that's all preamble.

Tom Perkins does have a point, but that's not what I think of first. I think of what wealth does to people over time. Wealth buys distance. I learned this when I participated in a Kleiner-Perkins IPO in the late 80s, and became rich myself. I did what lots of newly rich tech people do, I bought a big house on a lot of land in Woodside. Pool, hot tub, lots of room for big parties, which I had fairly regularly. It wasn't a terrible lifestyle, but I saw where it was going, and I didn't like it. So when I had a chance to change things, I sold the house and downscaled my lifestyle dramatically. I now live in a Manhattan apartment. A nice one, for sure, but it's just two rooms, a small kitchen and bath. I ride the subway. I don't like possessions. I don't enjoy being distant from humanity.

Richness, over time, warps your perspective. You tend to only associate with other rich people, the non-rich people you meet are often employees or service people. The rich reinforce each others' belief that they're the smartest people around, otherwise they wouldn't be so rich, right?

Thinking gets inbred, fragile, cloistered. I've seen it happen to people of my own generation. You have to work at staying in the flow of humanity. Poor people do the opposite, dream of being separated from all that humanity. The trick, imho, is to strike a balance, if you can. And being well-off financially gives you the option. You don't have to choose to be cut off from humanity. I find I'm much happier if I'm more immersed in it, less separated. I think this is because it's reality. No matter how much money you have you still have just one body, and it ages at the same rate as all other bodies, and it does all the same things. Bill Gates used to say when he flew coach instead of first class, that he gets there at the same time. I admire that. Why? Because it's true!

When I lived on the estate, I dreamed of having a house on an ordinary street with people coming and going, and stopping on the street to talk with neighbors. It's so funny how people are that way, the grass is always greener, even if you have the largest, greenest, fullest lawn around. I think the super-rich have an inkling deep inside that they'd do better as people if they got out of the limo and helicopter and had a drink or threw a football with a few ordinary people, not just for PR but for real. I think we're built that way, a social species, and for most, to be super-rich is to be cut off from that.

Sometimes ordinary people, not rich, act like they're inbred rich people. I think that's what the Fox News phenomenon is all about, and why people vote Republican. But I don't think being rich equates to being smart. Over time, the more you live rich, I think it actually makes you less intelligent.

01/31/14; 09:05:34 AM

How to...

  1. Create an account, enter a username and password.

  2. Go to my GitHub project, click on Settings, click on Service Hooks.

  3. Click on the name of your platform, enter your credentials from step 1, and click a checkbox to activate.

  4. Go back to the platform to see my app running.

To update the app, update the GitHub project. "Continuous deploy."

This is as simple as it can be, and if you do it, I will use your service, and more important, if it's reliable and affordable (say $10 per month), I'll recommend it to my readers and users of my software and of course I will use it myself.

Of course it has to be reliable and perform reasonably. Scaling -- not such a big issue. The idea is to have people running their own apps in the cloud, for them, and their friends, or a workgroup in a corporate setting.

01/30/14; 05:36:33 PM

A great thread on Facebook started by my friend Elisa Camahort Page.

She pointed to a Slate piece by Farhad Manjoo (another friend!) that says you should never put two spaces after a period that ends a sentence. I certainly agree, and while I was taught by my typing teacher in 7th grade, Mr Corwin, to type two spaces, I learned later in life this was a mistake.

Anyway, I pointed out that the web agrees. You can type as many spaces after periods as you like, the browser will only show one.

I demo'd this with a comment, and added four spaces after each period. The browser only showed one space, even though Facebook dutifully sent four.

I love it when technology gets something right.

I suggested giving Tim Berners-Lee a big hug next time you see him. Or it might have been Marc Andreessen who made this call.

01/30/14; 01:29:36 PM

This came up in a comment on yesterday's post.

I used to have a Cobalt Qube, many years ago. I even hosted scripting.com on it, as a static site. It ran Linux and Apache, but I never accessed it through the command line. It had a very nice selection of server software pre-installed, and a web-based admin app, that was also very nice. Easy to use. And way ahead of its time, I think.

It was a great start, but it was never finished, as far as I know. That was 15 years ago. By now we should have a fantastic web-based admin app for Linux. It's a very important, imho, missing piece.

I would love to participate in a community effort to catch up to where we were with the Qube, and then go way past where it was.

01/30/14; 12:42:32 PM

A little over a year ago I switched my primary development platform to browser-based JavaScript. Fargo came out of that, and soon there will be Fargo 2.

But we needed a solid back-end, and we didn't have one as of the end of the summer. It was obvious that it had to run in Node.js. I made a bunch of approaches, but it didn't come together until my longtime friend Brent Simmons gave me a Hello World server app in Node. That was what I needed.

Now I've been immersed in Node on Unix for the last few weeks. Last time I seriously used Unix was in the late 70s when I was a computer science grad student at UW-Madison. Unix is still the same, but the tools have developed, deepened. It's a little like time travel for me, having missed about 34 intervening years.

The Unix docs rarely put it together for you. I need to do X. Fumble around, and read a bunch of Stack Overflow pages, but I'm still not getting it. Or maybe I'm more acclimated to the client side, and I just have to develop stronger sea legs on server JS. I'll let you know.

Dan MacTough, also a longtime friend, helped guide me through the Unix/Node setup. I started by reading the code he released on GitHub, and eventually we Skyped so I could ask a series of questions. Every answer saved me days.

Now I have a server on an Amazon EC2 Ubuntu micro instance. It's running my fargoPublisher prototype. I have a pretty smooth deploy method with a folder shared between my desktop and the server, and the Macintosh Terminal program. I can upload a changed version of the software and reload the app in a few commands, a few seconds.

I miss the easy setup I had in Frontier. I could have a table of scripts that all ran concurrently. They could attach themselves to a port and off we go. Servers were easy to write and deploy. I want that same smoothness on Unix.

Ideally I'd like a browser-based Node app that let me manage a list of concurrently running Node apps. A checkbox next to each enables or disables (load or unload as necessary). Stats about each app, how long it's been running, how many hits its taken, etc. I want it to "just work" of course, which is most definitely not the Unix way.

I'm also considering various hosted setups. But I like having my own server. I'm trying to do it without a GUI interface, all through web interfaces and the command line.

01/29/14; 05:00:19 PM

For decades the future of tech was far more exciting than the present. The potential was overwhelming to people who got a glimpse of it.

But a lot of that potential has now been realized. It has been incorporated into the structure of society. You know -- digital natives, for example. Kids who learn to use iPads before they can walk. Today, we all use the devices only visionaries dared to dream of just a short while ago.

And that if you project out into the future, where tech is going is fairly depressing. You can thank Facebook and Google and the NSA for that.

Why are protesters invading the privacy of tech people? Just by asking the question that way, it's kind of obvious, no?

The Washington Post is right, it's time for tech to come down to earth. We've heard all the hype, we were part of the dream that made you so rich. Now, we have to deal with the aftermath, not just us, but you too.

A picture named hypeVsReality.gif

BTW, I emailed myself a copy of the image via GMail. Google doesn't offer a way for me to download it, I can only share it via Google Plus. I'll figure out some way to get it on my website not yours, but in the meantime, oy.

01/27/14; 05:43:27 PM

Should reporters apologize for running stories that people find offensive? Hell no.

When GrantLand apologized they set a bad precedent, and they weakened journalism for everyone. GrantLand got hit by a pressure group that didn't like the story. There's nothing special about "The Internet." Is it common procedure for reporters to apologize when they offend a pressure group? I didn't think so.

Here's how I see it. They took a risk, the subject of their piece committed suicide, and we don't know why. It could be the shame of being outed publicly, as some people say. Or it could have been the shame of having lied, committed fraud, and possibly going to jail. There are all kinds of theories, but the truth is that we don't know.

It's okay for you to be hurt by reporting, to be enraged by it, to want to do something about it, but that can happen when a reporter is just doing their job. They don't have to apologize or retract, or make you feel good.

However there are times when we should give reporters hell -- when they lie, either overtly, or by not outing a lie. That's the one cardinal sin of reporting, and it happens all the time, and we let them get away with it.

When a source lies in front of you and you don't challenge it, when you give it credence, when you accept its premise, this is a reporter committing malpractice. And the consequences can be devastating. I don't use that word lightly.

For example, in the run-up to the war in Iraq, reporters knew that it was a trumped-up war, that there was no actual connection between the terrorism of 9/11 and Iraq. This was Bush being opportunistic. He wanted to attack Iraq, for whatever reason, and used 9/11 as an excuse. Anyone who was paying attention knew this. Yet supposedly credible journalists, ones who still insist on our respect (including Bill Keller, btw, the subject of another recent Internet controversy), went along with the lies, and never acknowledged or apologized for all the death they caused. Those deaths are largely faceless and nameless. We don't know about their struggles. We don't empathize with them or their families. They were caught in our hypocrisy.

Of course every death is tragic and sad and deserves our sympathy. But a reporter's job is not to avoid tragedy, quite the opposite -- their job is to out it, to make it visible, to tell us what's happening, so we can act on it.

When we make reporting an evil, we're asking to be lied to. We're asking reporters to ignore their responsibility for fear of offending us. That's not reporting. And that's a choice you may want to make, but it's not my choice.

Previously: Suicide and reporting.

01/25/14; 01:09:39 PM

There was a recent controversy on the net about a GrantLand reporter, a golf putter, an inventor, and a suicide. A lot was said about it, but what have we learned? If the subject of your piece says they'll commit suicide if you don't stop, what do you do? I've been there -- had a subject say he would kill himself if I didn't stop, and I decided to stop. Here was my thought process.

  1. Is the guy bluffing? Probably. My judgement call.

  2. What if he's not bluffing, I run the story, and he kills himself?

  3. It would ruin my life. I'd never get over it.

  4. Don't run the piece.

How do I feel about it now? I don't even remember what it was about. But I never forgot the moment reading the email that threatened suicide. Too heavy for me. I'm out of here.

Now, I'm not a real reporter, I'm a blogger. I can do my job, developing software, without having to deal with this issue. But reporters write stories every day that may indirectly or even directly lead to deaths, and we don't call them out for it. It's one of the costs of doing business for reporters. I can think of lots of examples -- reporting on terrorism or war, drug research, or even traffic safety. What about the early stories about AIDS? The lead up to war in Iraq? See an earlier piece from today about the extinction of species. If your writing covers an environmental calamity as it's happening you might be involved in the death of millions of people.

Should we stop reporting? Obviously not. This is a complicated issue. It can't be simplified, it's really hard for me to see it in black and white, evil and good, savvy or clueless. Sometimes you get away with it, and other times the shit hits the fan.

One of the common beliefs of entrepreneurship is that if you never take a risk you can never be great. This is true of everything -- also reporting. If a story has a terrible outcome, does that mean you shouldn't run it? Wow, that's actually impossible to say.

01/24/14; 03:05:04 PM

I learned something today.

  1. Never put GitHub-managed folders in Dropbox folders because Git creates temporary and/or invisible files in folders, and Dropbox may do things that trigger unintended actions or side-effects in Git, causing random havoc which is not what you want.

  2. If you get in trouble because you put a GitHub-managed folder in Dropbox, and you're using the Mac client, you can unhook from the repo by clicking on the word Repositories in the main window, right-click on the repo you are having trouble with, remove it. Then re-add it by going to the GitHub website, and click on the Clone in Desktop button to load it into the Mac desktop client.

I am putting this in a blog post so I can find it next time I get into this situation and forget how to get out of it. And in the meantime I'm moving my folders out of Dropbox hoping to never get here again!

A picture of a slice of cheese cake.

01/24/14; 02:53:33 PM

Yesterday on a walk through frigid Central Park, I listened to a New Yorker podcast interview with Elizabeth Kolbert about how things are going on Planet Earth re extinction of species. The short answer: "Not so good." We seem to be in the middle of the Sixth Extinction, which is also the title of her book.

Until recently, it was thought that Great Extinctions didn't happen, that evolution was a slow methodical process, but it was proven by a Berkeley scientist, Walter Alvarez, that the Cretaceous era came to an end because of a meteor hitting the planet. We know this because meteors have lots of iridium and our planet does not. And there's a layer of iridium in the fossil record right around the time of the extinction of the dinosaurs.

The podcast had a couple of ideas that shook the foundation of my thinking. I like it when that happens, even if I don't like the message these revelations carry.

First, there's nothing special about humanity. We've only been here about 200,000 years. Long enough to destroy everything, but in the grand scheme of things, when the destruction is finished, the planet will probably evolve new species, a different cast of characters, that do what we do, more or less. It may take tens or hundreds of millions of years to clean up after us. But this is not a problem for the planet. It has the time.

We may be insignificant, but what we are doing re destruction of the planet's ecology is unprecedented. It's never before happened here. We don't know about other planets elsewhere in our galaxy or the universe. But we're in the process of recreating climates that haven't existed on earth for 50 million years. That's something. Not something to be proud of, of course.

Second, the mundane things we do every day, the example she provided was driving to get groceries, are actually totally extraordinary. When we get in the car to run errands we're burning the bodies of animals that lived millions of years ago. We're moving the carbon from their bodies from deep below the earth, into the atmosphere and the oceans, transforming them. Destroying old habitats, and creating new ones. This is not something that "natural" processes do. You need a supposedly intelligent species to do this.

Her book is coming out next month. Asked if she was suggesting things we might do to solve the problem, in the book, she says she is deliberately not doing that. My guess is the reason for that is the next epiphany that hit me after digesting a bit of the podcast.

Third, there is nothing we can do. We might as well enjoy consuming the last resources of the planet, and perhaps should turn our attention to leaving an adequate record of our civilization for the next one to come along, millions of years from now, in the hope of helping them avoid the catastrophe that ended us.

BTW, in case you're feeling guilty -- don't. This process was not caused by anything we consciously did. Certainly not anything you or I did. Just the existence of a species capable of doing such big things was probably enough to destroy life on the planet. You can listen to the podcast and let me know if you hear anything different. It seems this story is full of revelations about our reality.

01/24/14; 01:54:17 PM

January 24, 1984. It was a wonderful day, the culmination of a couple of years work by my startup company, Living Videotext. Our big public announcement would come on the same day the Mac rolled out. 30 years ago today.

I had hired my brother and future sister-in-law to help with the development. We had a Macintosh in our office. It was a huge secret at the time, but we showed it to our best friends anyway, swearing them to secrecy (now it can be told). I remember my first look at a Macintosh, I knew I was going in to see it, but nothing could prepare me for the surprise, the feeling you get when you look at a baby or a puppy or kitten -- this thing is cute and gorgeous and new and filled with potential. Most important it spoke directly to me and said "I am the perfect place to put your software."

Up till then, I had been working on Unix systems, and then the Apple II and IBM PC. I loved the little computers, because they were all mine to use as I wished. On the earlier, bigger machines, you had to share them with other users and programmers. The machine felt far away, but with the Apple II, it was right there.

The Mac had that feeling too, but it was also elegant and simple and brilliant. The type of people who would love this machine would also love what I was making, an idea processor.

ThinkTank, which I had been developing until then on the Apple II and IBM PC, was a tool for organizing your thoughts on a computer screen. You could create an outline, then indent, move an item up a list, or out a level. Flesh out the details, and quickly record a top-level idea you had overlooked.

Our tool was designed to add what would eventually be called "agility" to your thought process. The ability to quickly revise as you learned more about the problem. Outlines on paper were rigid, but outlines on a computer screen -- they could fly!

The problem was, you weren't inside the outline on an Apple II or an IBM PC, you were above it. You couldn't move an item with your hands, you had to trick a "cursor" into doing what you wanted. The big feature the Mac had that was new then was the mouse. You could directly manipulate your ideas that way.

It's no coincidence that the earliest experimenter in the area we were commercializing, Doug Engelbart, was also the inventor of the mouse. We had been hearing about mice, I had even used one in a demo at Xerox PARC, but now, with the Mac -- I had one on my desk. I loved the Mac at first sight, but the foundation of our long-term relationship was the mouse (30 years later, I'm writing this story in my outliner, on a Mac, with a mouse).

The rollout on January 24th was like a college graduation ceremony. There were the fratboys, the insiders, the football players, and developers played a role too. We praised their product, their achievement, and they showed off our work. Apple took a serious stake in the success of software on their platform. They also had strong opinions about how our software should work, which in hindsight were almost all good ideas. The idea of user interface standards were at the time controversial. Today, you'll get no argument from me. It's better to have one way to do things, than have two or more, no matter how much better the new ones are.

That day, I was on a panel of developers, talking to the press about the new machine. We were all gushing, all excited to be there. I still get goosebumps thinking about it today.

My startup, when the Mac came out, made most of its money off IBM PC software. By 1986, with the help of Bill Campbell at Apple, we got Macs for every employee at our growing company, and our board of directors, and the die was cast -- we became a Mac software company. The Mac was berry berry good to me (a dated reference to a fictional character from the 80s on SNL).

But the Mac, while it was a brilliant vision, and it's gestalt so lovely, was in its first incarnation, a flawed product. It didn't have enough memory for a machine with so much graphic potential. The screen was tiny, as were the floppy disks. The product came at a time when personal computers were getting hard drives, but the Mac had no ability to expand. The mouse was wonderful, but sometimes you need cursor keys. The first Mac didn't have them. The Mac was a statement, that's for sure -- but it wasn't a very usable statement, at least in its first incarnation.

Now that was all fixed, in relatively short order. By 1986 the Mac had arrow keys, a bigger screen, more memory, and most important an expansion capability. Then it was supremely usable, and kicked butt in the market.

But what about the long-term historical perspective of the Mac. There, the verdict is not so good. Most of the hype about the 30th Anniversary has left out this part. True, all personal computers to follow were basically copies of the Mac, some good, some not so good. The ideas were very valid, and have stood the test of time. But it's the missed opportunities caused by the Mac's insistence on being right about everything, even when the Mac was wrong, that caused the fractures in the marketplace that are still visible today in the UI of software, and in the confusion of non-expert users.

Try this out sometime with a friend who is a casual computer user who has a WordPress blog. Ask them to choose a command from a menu, and see which one they choose. There are three menu systems on the screen at the same time! One for the operating system, one for the browser, and one for the web app. This is not simple and not easy to use, and is the result of Apple's proprietary networking, way back in the 80s, that forced the innovation in networking, that was the manifest destiny of personal computers, to route around the closed-off networking protocols of the Macintosh. Had Apple, instead of keeping the right to create networking software for itself almost exclusively, because their APIs were so confusing, taken the opposite approach -- that their APIs were not proprietary and could be cloned by other manufacturers freely, and built on by software developers, again, freely, the networks we use today would work in vastly different and imho, much better ways. We'd also be much further along. In many ways, the networking user interfaces we use today are inferior to the ones we used on the Mac in the 80s.

There were a handful of companies that had mastered the Apple networking stack at the time. Reese Jones' Farallon, Andrew Singer's Think Technologies. A pair of developers who made an email app the was bought by Microsoft and became their mail product (the founder of that company, Steve Ullman, was a real visionary). And Don Brown at CE Software with QuickMail. I tried to work with all of them, but it wasn't enough of a critical mass to make a market. I deperately wanted networking for MORE, my outliner. I felt it wasn't complete without it. Had Apple been less restrictive, my career would have been much more interesting. We have the networking today that I wanted then. But it was a long time coming.

The web should have happened on the Mac. We had the best software, the best developers, the best platform, no 640K limit (don't laugh, software on the PC was limited in how far it could grow). We had it all, but the Apple culture wouldn't let us use it.

I love the Mac. I love what it did for me, it gave me a lot of freedom I wouldn't have gotten any other way. However, it stopped short of where it could have gone, and in doing so, I hope serves as a lesson for future generations of technologists. When someone argues for reserving the best stuff for your employees, tell them to stop screwing with your success. As the famous Apple evangelist Guy Kawasaki said, Let a thousand flowers bloom. Love the developers and the random chaos the bring to you, and be ready for the love that will flow around your platform. It's the only way it works.

This article appeared as part of CNET's coverage of the 30th anniversary of the Mac.

01/24/14; 10:29:43 AM

I topped off my Node project today.

I'll be writing about it more tomorrow, in the meantime I wanted to note that I love programming in this mode. The tools are great, and it is a wonderful environment, made that way by programmers who share their work generously.

The quality of the work is very impressive. And the commitment to no breakage also refreshing in this day and age.

01/23/14; 10:32:24 PM

A few weeks ago I was trying to help a friend, over the phone, edit on a Mac. Choose this command from a menu, I said. Click on this window, bring the Finder to the front, choose an application, etc. It didn't work. I'm sure you've been through this many times, maybe on both ends.

I had a similar experience this week trying to set up a Node app on a hosting service. The page of instructions was filled with concepts that are strange to me. When I finally figured it out, I only needed to know a small fraction of what was on the instruction page to get it done. Same thing was happening. A bunch of worlds weren't fitting together. The complexity comes from the imperfections of the fit.

Here's a screen shot of the first scenario.

A picture named wordpress.gif

Count the different apps that are running, and in what platform. There's a web platform. There are WordPress docs that behave a lot like apps. It's a platform too. There's the Apple menu. If you click on the desktop that will bring the Finder to the front. And the file system. How many different worlds! And they're all so different. Yet they're all on the computer screen at the same time.

I was thinking about this while working on a piece that will run tomorrow on CNET, talking about the history of the Mac, and how a fateful decision by the platform vendor, to keep their networking protocols closed, caused at least one of these fractures. There were other events, where a platform didn't evolve in the way the world wanted to go, and voila, there's yet another paradigm a new user has to master.

So the question was, was the Mac a success or a failure? I guess it depends on what the goal was. I thought, at the time, the goal was utter simplicity, ease of use, and access. Jobs fought against the cursor keys to keep his vision pure. They were unneeded complexity, so they weren't there. The computer For the Rest of Us. Well if that was the goal, then a lot of the things Apple did, in later years, thwarted it.

I say this with love and admiration for the platform. Writing the piece reminded me of how magnificent the first Mac was, how many doors it blew open. All the minds that were reached, and imaginations. Computers were wonderful and lovely before the Mac. But the Mac made them accessible to people who didn't want to invest their lives in using them. That's what For the Rest of Us meant.

But thirty years out, we can now draw some conclusions. A lot of it is history. Its influence is in the past.

More tomorrow.

01/22/14; 11:14:20 PM

One of the things that came up in the discussion surrounding the Kellers' pieces and the story of Lisa Adams, was the concept of people battling a disease. I read more about this in a blog post by Peggy Orenstein. All these pieces raised the ire of people on the net, but in the midst of all the heat, there was some small enlightenment, something that I've experienced myself, an idea that isn't much talked about.

As longtime readers of this blog know, I was seriously ill in 2002. I had emergency heart surgery that saved my life, followed by a long recovery, and a decision to stop trying to be an entrepreneur. I gave up a lot of struggles in that period of my life, and it was a good thing. More important it was right for me.

But I didn't write about another struggle, during the recovery period, with myself, to find the will to go on living. For a lot of people who haven't been through something like this, it must seem very abstract, but it's quite real when it's you in the body that's having a basic integrity crisis -- that is -- do we have the will to hold it together for more years of life, or is this the end? I actually said the words to a doctor, and got an understanding response, to my surprise. I never talked about it with any of my friends or family members. They wouldn't have heard it, and sometimes when people don't want to hear things, it can get ugly quickly. So you learn, as the person whose life is in the balance, to say nothing.

I watched this process in 2009, when my father who was a cancer survivor, decided to stop non-palliative treatment. He made the decision in April of that year, and in October he was dead. We spent a lot of time together in that period, more than we ever have as adults. I never questioned his decision. For him, it was the right thing to do. Doctors told us that he could fight (there's that word again) for a few more years of life, but his life, in his own estimation, wasn't worth it. It's very hard for a young, healthy person to understand that you can get to this place. It's not "giving up" -- that's not what it feels like. It is actually much simpler -- you're making a decision.

It seems most people most of the time avoid making decisions about the direction of their lives. My father certainly did. I certainly did. But what makes these periods so full of growth is that the decisions are inescapable. You must choose. Left or right. And the further you go, the more information you have about each of the branches, but at the end of one of them is something we have no information about at all. That's why it's so fear-inducing. And why it's easier for the healthy and young to think that when they get to this point of their lives, all they have to do is "fight" to avoid having to decide. But it doesn't work like that.

It's good to have these concepts out in the public sphere. So some good, imho, came from the Keller pieces. I think it's always like that. When fear rises, it's a good time to step back and reflect and find the source of the fear. Because right there, at exactly that point is where you have the greatest opportunity to learn, and grow.

That's why it pays to listen to people who are in a decisive place in their lives. They are learning, and growing -- living! -- right up to the very last breath. They don't always want to teach and share. My father liked his morphine, and to tell stories about how much my mother meant to him. I saw this as his way to say he is lovable, look -- someone thought I was okay. I heard him, the best I could.

There's no good or bad outcome. In the end we all lose, imho it's better to discount that right now, and give up the struggle to win, and just accept the time you have left as yours to use as you see fit. You can take the treatment, or not. Neither should come with any judgement from others.

A picture of a slice of cheese cake.

01/21/14; 02:44:53 PM

A picture named banksyGlobalWarming.jpg

Posted by Banksy on Twitter.

01/21/14; 02:26:02 PM

The day I met her, about ten years ago, maybe a little less, I knew we'd be friends for life. We share so much. When I see her, which is not nearly often enough, it's as if we've never been apart. She cracks me up. And she falls for my pranks. We disagree about things, mostly judgements -- was this a great movie, or not so hot. She likes movies I don't. Maybe sometimes vice versa. (I actually can't think of a movie she didn't like, but once she answered, when I asked if she liked a movie, that L'il Salty liked it. He's 8 years old. A man of discerning tastes for sure, but still a boy.)

I call her Lisa Simpson, and joke with her about it, because even though she's very Santa Cruz hippie dippie, she likes messy violent movies (as Lisa likes Itchy and Scratchy). Inexplicable!

Most important we share a philosophy of life, although we express it in vastly different ways, which isn't surprising, because I have a very large body, and she has a very small one. But the spirit contained within that cute little package is as big as a million Grand Canyons. Probably bigger.

I wrote a blog post about NakedJen many years before I met her.

She also feels free to call herself a fairy. I had never met a self-professed fairy before. I made up a little poem for her about that when we rode on the Staten Island Ferry. I said she could be the First Fairy off the Ferry. Okay I guess you had to have been there.

She also loves NBA basketball, and the Knicks. How the hell did that happen!

It's funny, I knew she'd love the movie Her when I saw it, when I heard a bit of dialog between Samantha and Theodore, near the end. It was practically straight out of the NakedJen playbook. She says the heart is not like a box that fills up. It expands the more you love. I felt this idea perfectly sums up the philosophy of my very dear and lovely friend Ms Jen. Like all perfect truths it makes my heart swell and my eyes to tear.

A picture named nakedJen.jpg

I asked her yesterday if she was going to be open about being 50, and she said yes. I'm not surprised, but I had to ask. She said it's amazing that she made it this far. I know what she means. I too am amazed, and happy to know her, for she has filled my heart with love, which I feel right now as I write this, and many many times over the years. So...

Happy birthday Ms Jenny!

With much love, your best pal,


01/21/14; 01:03:43 AM

I've long-ago gotten over the shock of how you have to stack callbacks in JavaScript. I kind of like the puzzles now, but I sure didn't at the beginning, because I strive to make my code read like the pseudocode that would be used to describe it. And there's no way to do that with JS. So Node is off the hook, it's not its fault JS is that way.

I really like the way package.json works. I like the docs that are available for all the elements. As a metadata guy (I played a role in defining RSS and XML-RPC), I appreciate a good set of names that covers all the bases.

And Node is a network of code. I've never seen this so well-developed. We did stuff like this in the Frontier community, but this is better, and of course it should be -- it's 2014 not 1994.

I just put together a routine that makes an HTTP request taking a URL as a parameter. It came together nicely. I used a URL parser written by Steven Levithan and the example in the nodejs.org docs.

I still have to decide how I'm going to parse my XML, or if I will. What I need to do can be accomplished with string search, and maybe bringing in a whole XML engine is too much. I just need to get a value from the <head> section of an OPML document. Not a big deal. And I see Dan MacTough has already written a routine for parsing an OPML document. So I have footsteps to follow.

Nodejitsu is actually something I think we could write a Poets tutorial for that would be a lot simpler than setting up an EC2 instance, as we did with the earlier poets doc. You just have to tell GitHub your Nodejitsu username and password. Then the connection is made. Adding environment variables is no more difficult than editing the attributes of a headline in Fargo.

Where I'm trying to get to with this is a simple server app that acts as a storage backend for the next release of Fargo. I want something I can give to anyone who wants to run their own server. Mine will be in JS and run in Node. I'll probably provide a howto for Nodejitsu. I'm using the MIT license for this code. Nothing fancy here (by design). Just a way for a user's outliner to say "here's some static HTML, please make it accessible over the web."

Node will do this nicely.

01/20/14; 02:17:19 PM

I had an idea that I should be able to manage a public Node.js deployment entirely from within GitHub, without having to install a Unix virtual machine.

It turns out that Nodejitsu does exactly what I wanted-- but their documentation is a horror (at least for a newbie like me). It's actually just a few easy steps to connect the two.

You have to go to the Settings page on your GitHub project. Then click on the Service Hooks tab, then Nodejitsu.

Fill in your username and password, check Active, and click Update Settings.

If you switch over to Nodejitsu there will be a new app in your list of apps.

You can make a change in GitHub and it automatically appears in Nodejitsu.

Restart the app to make the changes appear.

Now I have to figure out how npm works over there, or if it does.

Update #1

  • I got stuck much earlier.

  • I tried to deploy my own repository, and entered my username and password, as above, but I keep getting a message saying that I am not me.

  • Here's an example.

  • I don't think this has anything to do with the username and password (esp because there's another error message for incorrect username and password). It's some kind of permissions thing, but I have no idea what needs configuring. About ready to look for another way to deploy. Oy.

Update #2

  • Never mind.

  • The script I deployed just did a console.log ("hello") and exited.

  • For some reason Nodejitsu sees that as an error and gives a mystifying error message. Par for the course for Unix software, imho.

  • On that theory, I deployed Brent's test server, the one that returns blue or green, and it works. For a little while at least this link will launch Brent's app.

Update #3

  • The next questions:

    • How do I do jQuery stuff in node? I want to use the same XML processing code on the server that I use in the client, if possible.

    • How do I do the equivalent of npm? I have to load the Amazon libraries. There must be a howto somewhere.

  • Notes

    • It looks like you specify the packages you need in the package.json file.

Update #4

  • The Nodejitsu app just wrote a file to an S3 bucket. (7:23PM, Niners up 3-0.)

  • I have it writing a new test file every time someone accesses the page. For some reason it writes two or three files for every hit. Maybe it's because my browser is looking for icon files or some other weird stuff. Probably.

  • Here's an example of one of the test files. (As with the other files it may disappear after a while.) And here's the source code of the server app that writes to S3.

  • Niners up 10-3.

01/19/14; 12:04:47 PM

Earlier this month I switched this site over to yet another new CMS. This one has a bunch of new templating and scripting features, and is written in JavaScript, and has unique scaling advantages. I will be writing about the new CMS, at much length, when the software is released.

I wanted to note that I have a new template that is patterned after the look of the Medium site. I really like the look of their posts, as do many other people. I especially like the way it uses the image at the top of the page. I've always loved using images in the right margin of my posts, now I can play with much larger ones at the top of the posts. It makes blogging a lot more fun, for me -- and I hope you like it too. (I know the subhead can be hard to read. Still thinking about what to do about that.)

There's a "drawer" in the left margin, which you can access by clicking on the little "hamburger" icon in the upper left corner. The menu items can be clicked to reveal previous articles, links to related sites, my rivers and GitHub repos. I'm still working on that part of the design. Actually I'm still working on it all.

I wanted to give credit for the design inspiration.

"Only steal from the best."

I do have a choice of templates for each post, and I imagine most posts will use the plain "outline" template, suitable for starting discussions (an example). I expect I'll use the new format for special occasions, like this one.

As always Scripting News is about scripting, and news -- and the intersection between the two. And play and pushing the leading edge, and keeping us all independent and hopefully for a little while still, free.

Let's have fun!

A picture of a slice of cheese cake.

01/19/14; 01:28:54 AM

Interesting discussion on Twitter with Matt Yglesias about whether Apple is disruptive. Here's what I learned.

Every product is both disruptive and constructive.

It disrupts someone's business model, and adds new art.

Apple's products disrupted the media industry. And they also add new art. Going back to the early Macintosh, when Apple included networking, built-in, not as an option -- I understood they would make investments to create markets, not just ride on others' investments.

So... I'd say on balance there's been more new art in Apple's efforts and less disruption. Actually when you think about it, successful companies are mostly constructive.

01/18/14; 03:05:56 PM

In the years after 9/11, it wasn't worth the effort to suggest that Iraq didn't have anything to do with the terrorism. The United States did some very bad things based on this big lie. Anyone who tried to raise the issue, while there was still time to do something about it, was shouted down or fired. If you raise the question now people shrug it off. Nothing you can do.

The Internet, which held such promise for opening the world to different ways of thinking, is getting smaller. This is as important as the fight over net neutrality, or NSA surveillance. Our tolerance of ideas that scare us will keep us from solving the problems we have, because that's the mechanism for progress -- listening and understanding new information and points of view.

01/17/14; 11:58:29 AM

The Internet is so good at organizing. But these days I see it being used to organize in a way that is stifling of free speech, by people who I thought stood for free speech. I wonder why they don't see the obvious contradiction. It never comes up in their pieces. They call people condescending and tone-deaf, not realizing those are relative concepts, saying as much about the listener as the speaker (that they are control-oriented and intolerant of other points of view).

No need to apply this to any specific incident, there have been so many.

And to be clear, people who are propositioned by others in unwelcome ways are totally entitled to be offended and angry, and to express that anger. People who are written off as almost dead should be outraged by that, and are entitled to our support. People who hear their race, gender or age group characterized in unfair ways should be allowed to object (and imho this includes, whites and men, btw).

It's the people who use these events to gain attention for themselves, who pile on and turn an incident into a trial-by-Internet, who try to get people fired and sometimes succeed, those people are wrong. Especially when they are academics, people who have devoted their lives to the free exchange of ideas and the scientific method.

The Internet is a great tool for good, but it is an equally good tool for bad.

I'd like to, someday, be part of a solution to this problem. I think it is solvable, but there has to be a will to do it.

Thanks for listening.

01/16/14; 10:50:27 AM

Dropbox went down on Friday night, just as I was making some changes to the Fargo code.

It came back for most users later that night, but the API and other parts of the system were out until this morning.

I'm about to leave town for a little vacation, but I was glad to see Dropbox is back up and so is Fargo. Whew!

01/12/14; 09:48:22 AM

I just watched the 17-minute opening of last night's Rachel Maddow show.

It's her job to stretch out a simple idea into 17 minutes, but it's painful to watch.

Let me save you some time...


  • The crazy shutdown of the GWB had nothing to do with the endorsement of the mayor of Fort Lee, New Jersey.

  • It was about the NJ State Supreme Court and the State Senate and Christie of course.

  • In 2010, Christie refused to re-appoint a judge.

  • The NY Times ran an editorial.

  • The NJ State Senate was livid.

  • They refused to approve of Christie's appointments to replace him.

  • He refuses to re-appoint a Republican member of the court, the wife of a member of his administration, not wanting to put her through the approval process by "animals."

  • The Democratic leader of the Senate represents (drumroll please) Fort Lee.

  • All this came to a head on August 12, the day before of the famous email saying it was time for Fort Lee to have "some traffic problems."


  • Fort Lee was a punchline in a standard SNL skit in the early years.

  • Roseanne Rosannadanna, played by Gilda Radner, would always respond to letters from "Richard Feder of Fort Lee, New Jersey."

  • I'm pretty sure this has nothing to do with the Christie scandal.

01/10/14; 10:15:16 AM

Last built: Fri, Mar 14, 2014 at 12:29 PM

By Dave Winer, Wednesday, January 1, 2014 at 5:09 PM.