An exciting time for Books

2 comments:

I think this is an exciting time for books - to be a reader, an author, a publisher, or a retailer. There is a new focus on learning, which means reading. Brick and mortar retailers have wisely made the bookstore a "destination" rather than a place to convert greenbacks into stacks of bound paper: bookstores are way more comfortable and fun than in my childhood. Online retailers have made any book accessible, and has given new life to the used-book market.

And it turns out that books, and the people who love them, are a grand opportunity to network with books. It's like the days of Usenet rec.arts.sf.written, but much better. In particular, I get a great tool that helps me describe what I read, and what I thought, and based on that description can connect me to others. Usenet never did that.

And internet retailing didn't stop with Amazon. People with great heart, skill, and determination are giving Amazon's book business a run for it's money.

Spreading out, focusing in

No comments:

It seems that the internet has recently exploded with new services. Some of them are very compelling. Using them seems simple enough: sign up, start using it. Goodreads is my new favorite tool of this sort.

However if you repeat this often enough, a few serious weaknesses arise. Most glaring is the need to remember usernames and passwords for each service. These are a hassle to remember. Each service has it's own interface, which is a double-edged sword - on one hand different data requires a different interface, but on the other it's a lot to learn. Also, each service has it's own data - your own content, and social graph data. This doesn't become an issue until you want to switch services or, ironically worst case, using two services side-by-side.

Data-duplication in a Web 2.0 world is a nightmare.

That's why Web 3.0 is going to be about focusing in. Aggregation is the first step. And indeed, perhaps that's the way to go - aggregate and integrate until your happy.

Idea: Movie age disparity finder

No comments:
It's weird how the movies pair really old guys with super young girls. I want to do a survey to see if the gap is trending up or down (I think it's trending up, big time). Inspired by Liam Neeson and Famke Jenson in Taken (12 years difference).

Some of the information is out there: character name, actor name is on imdb. Actor birth date is also on IMDB, wikipedia, or other sources. What's harder is to know who is romantically linked to whom. I might have to ask the world for input on that one.

To make it more fun, you can tell the site which characters you wished would have hooked up (but who didn't). It's a nice, fun, drag and drop exercise. A quick poll of teens at the coffee shop seemed to like the idea.

The rise of internet bartering

No comments:
That was odd. I wanted to install Stuffit 9 Premium (which has some nice features like segmentation) which is ordinarily $50 (but which somehow comes with the Mac?) and Smithmicro said it was free. But I had to accept an offer. This offer was brokered by a company called Trialpay - and I could select anything from a credit card sign up, a subscription to the Economist magazine, or a trial of "Blockbuster Total Access".

Actually, I think this was extremely well done. Early attempts at this sort of thing were incredibly crude and offputting, often forcing the user to go through many pages of worthless offers. In this case they only had 6 pretty good offers.

The rise of great expository videos

No comments:
I've been seing more and more really great exposition on the internet, especially through videos. Speed drawing is perhaps my favorite (and it's a very interesting and informative exercise to consider what it would take to create a "Speed coding" video!), but I've seen some very effective teaching videos (this one about recycling, the enviroment, and ecology from Japan).


History of the Internet from PICOL on Vimeo.

Now here is an interesting video. I really like this style of exposition - iconic, abstract, always in motion, with cool spacey music in the background. And of course a nice British accent doesn't hurt. The subject is rather interesting, too - the very early technical development of the Internet. But what is most interesting is the attempt to standardize the iconography with "PICOL icons". What's not clear is if this is just the author, Milah Bilgil, to "standardize" something, or if this attempt is real. Of course, standardizing the iconography isn't enough - would be authors also need good, inexpensive tools to play around with this stuff. It's not clear to me if Flash is overkill for this sort of thing, or if its "just right".

A really neat thing

No comments:
Sometimes it is hard to transform non-linear thoughts into linear text. This is one of those times. I've been struggling with the concept of "smoother" transitions from concept to implementation in software, such that information is not lost in the transition. Take, for example, the use of unusual typefaces in a web page. If you create a raster, you've lost information - the original text.

The other day I ran across SIFR, which does in-place rasterization of type. This is consistent with smooth software development along ever decreasing entropy. Interestingly one of my favorite sites, hulu, uses it.


Drag and drop of page elements - the ubiquitous use of absolute positioning!
http://www.roxer.com/
http://javajosh.roxer.com/ocjug (with domain support!)

Oh, and here's one that uses sifr, called doodlekit. (really great site design, but requires a native plugin to work, which I am loathe to install. See the techcrunch review that puts it side-by-side with some other tools, including Google Pages). What's shocking is that they charge so much for their service. $14/mo is really too much for a one-time use of a tool, and occasional other uses. The free version sucks because it plops ads on your page. I basically think this is not a viable thing).

But I love the idea of drag-n-drop through-the-web design.


How to design this code?

No comments:
I want to write a JavaScript function that effectively "widgetizes" a section of the DOM that contains other widgets. For the most part these widgets represent some sort of input from the user. In particular, text boxes, selects, and other Widgets. I've kind of done it, but there are a few niggles, some of which are rather philosophical. In the spirit of the interwebs, I'd like some input.

Here is the code so far. Still needs onchange support, and...
  1. How should the application programmer select the composite node? Passing an ID as a string is easy, but not very flexible. I'd rather accept an arbitrary DOM elt. A jQuery programmer is going to want a plugin, which means using an arbitrary selector. [Update: Resig recently posted a bit of code that had to deal with this exact issue. He accepts both. It remains to be seen what this means to make this into a plugin.]
  2. How should I determine if focus is trapped "inside" the composite? Currently I'm tagging all descendant elts with a unique tagging class, but I find this modification of the DOM distasteful. Am I being too picky - does it really matter if elements have an extra class? Is there a way, with jQuery or with basic JavaScript, to ask if a particular elt is an ancestor of another elt? One interesting possibility is to use the "offsetParent" property - apparently divs become offsetParent by default, although this approach might fail under certain layout circumstances.
Thanks.

The truth behind medical paperwork

No comments:
Someone I know asked me to join her at her therapy session today, primarily to discuss communication styles. I agreed. The councilor greeted me kindly, said how much good stuff she had heard, and then handed me a (rather thick) sheaf of papers to fill out. Needless to say, I was nonplussed. I smiled and asked her why it was necessary for me to fill out this paperwork, explaining that I have an aversion to such things, and after all this was a one time thing. She said it was for her "integrity" because this paperwork is required by her various associations. She also said that her lawyer said she must have it filled out. She questioned me about past experiences with paperwork - playing the 'why' game with me. At one point I asked her what she would do with the paperwork when I filled it out, and she said "Oh, I'll file it away for 8 years and then throw it away."

So she wants me to do work that she'll then throw away. How respectful of my time and efforts!

The truth is that paperwork serves only two purposes: to get the service provider paid, and to limit their liability. And because the payment often comes from a 3rd party (the insurance company), an inordinate amount of paperwork is required. Another, more egregious purpose behind paperwork is to limit the service providers liability. It is more egregious because lawyers have to guess how lawsuites might play out, and because they can go in many different directions, there's a lot of paperwork generated. Actually the more general way to put it is that paperwork should limit the eventual harm suffered by either party (although in some cases it increases harm, such as imposing punitive late fees).

Repetative, unnecessary paperwork one of the worst symptoms of our medical system.

One should justify paperwork, rather than justify not having paperwork. It's not easy to fill out a complicated form, especially if it's packed with technical jargon. The requested information is often not at hand, and even if it is, one has to painstakingly write it neatly in the boxes. Also, the action is asymmetrical, meaning that the service provider doesn't have to fill anything out for you, but you have to fill stuff out for them. It is demeaning because, as in my case, you are asked to do work that will eventually be thrown away. Paperwork is the worst kind of work - it's just rehashing known information into new blocks, and agreements that can't be fully understood.

In this case there are privacy concerns which are substantial - what if I apply for medical insurance and the councelers billing department submitted my "claim" for pscyhological treatement such that my premiums got adjusted?  Or what if the billing department decides to bill me for the visit by accident?

It makes me very sad that otherwise rational people let bearucratic habits trump their common sense. The fact is that I should have been able to sit in with my friend that one time without filling out any paperwork whatsoever, because the only potential harm was to my privacy, and I felt sufficiently covered by confidentiality priviledge.

Why it isn't so surprising that "furniture" is the keynote speech at the Java Symposium

No comments:
At first when I saw it on the schedule I thought it was a joke. Sure, the Java Symposium isn't exactly the biggest or best conference, but keynote speech about furniture? Really? But after thinking about it for a while, I realize that the issue is actually important enough for a keynote, even though I disagree with Neal's thesis. So why is furniture is the subject of Neal Ford's keynote at this year's Java Symposium? He will talk about "the frustrations of modern knowledge workers in their quest to actually
get some work done, and solutions for how to guard yourself against all
those distractions." He's going to rant against cubicles, save the everyday Joe Programmer from his frustrations, and I think that's great.

But I'm not sure if I agree that a shared workspace is causing Joe Programmer's troubles. Sometimes I like being in a shared space. Sure, if I am hot on the trail of a great idea, and thick in the implementation, then yes, by all means, I want an office and a closed door. But alas, the opportunities for such development are relatively sporadic. The reason is that, once the code is done, working, and checked in, you get to describe it, support it, test it, explain it, defend it, tweak it, deploy it, demo it, profile it, document it, and discuss it. These other activities require communication and an office actually gets in the way of those tasks.

Communication is the core benefit of being in a shared workspace. But sharing energy is another. The energy of the place can keep you going in the middle of the day when you might be sagging and loosing focus. It's kind of like working out in a room of people vs doing it yourself. Working in an office means you get some good peer pressure to at least pretend to work when you're sitting at your desk. This is why I, and many people I know, enjoy working in a coffee shop. In fact, I'll even dub this "The Coffee Shop Effect".  (Of course, it works the other way around, too: if everyone is depressed about something, like a bad quarter, it's easy to get pulled down with everyone else. Luckily in a coffee shop people are usually jacked up on caffiene, and there is no shared earnings report, so that's nice.).

I also want to point out that being in an office doesn't necessarily reduce distractions: IM and email have a way of ignoring physical barriers. I've yet to meet a product or project manager that shied away from opening the door at any time. Of course, it's possible to close the digital doors too, and coworkers no matter their title need to respect one's space, but an office alone doesn't solve these issues. E.g. it takes more than changing around furniture to cultivate a nice atmosphere.

So basically I think that companies should provide both types of environments. There's a huge economic pressure to keep expensive programmers focused and productive for more hours in the day, but there is a certain maximum (for myself it's only possible to be in "the zone" for a max of 4 hours per day - when I go past that and look at my work, I have to admit it's not great). And for semi-focused work, a shared space is actually better and more fun.

The rise of expository videos

No comments:
I've been seing more and more really great exposition on the internet, especially through videos. Speed drawing is perhaps my favorite (and it's a very interesting and informative exercise to consider what it would take to create a "Speed coding" video!), but I've seen some very effective teaching videos (this one about recycling, the enviroment, and ecology from Japan).


History of the Internet from PICOL on Vimeo.

Now here is an interesting video. I really like this style of exposition - iconic, abstract, always in motion, with cool spacey music in the background. And of course a nice British accent doesn't hurt. The subject is rather interesting, too - the very early technical development of the Internet. But what is most interesting is the attempt to standardize the iconography with "PICOL icons". What's not clear is if this is just the author, Milah Bilgil, to "standardize" something, or if this attempt is real. Of course, standardizing the iconography isn't enough - would be authors also need good, inexpensive tools to play around with this stuff. It's not clear to me if Flash is overkill for this sort of thing, or if its "just right".

Just go see Wicked

No comments:
http://www.wickedthemusical.com/img/wicked_splash.jpg

(We had front row, center tickets at the Pantages with the original cast! The principles are great singers AND great actors - sitting that close you can see the real tears on Elphabas face. The story is really nothing like the book, but it's amazing all the same.)

The true cost of evaluating EC2

No comments:
Back in July I was evaluating Amazon's cloud computing platform, EC2. I figured, why not? It's only $.10/CPU hour. Starting an instance, connecting with a browser, SSHing in would cost me less than a cup of coffee, and would be good practice. The experiment went along, I deemed EC2 too difficult to provision and use for my purposes, and forgot about it.

Today I got an email from Amazon saying I owed them about $7 for web services. I vaguely remembered seeing this before. I always thought that it was saying that I owed $7 for that one time I tried the service out: way too much, of course, and something I kept meaning to call amazon and find out about. Today I read it more carefully: turns out I've been billed about $7.50/month since I tried the service out. (Finding this out was much harder than it should have been: AWS billing and usage interface is truly awful. I ended up just doing a search in gmail for "amazon web services billing statement" and summing the amounts.)

Concerned, I used Amazon's contact form (they don't have an actual email address). I received a form letter back explaining how to cancel EC2 and S3. This was odd for a couple of reasons - first, I didn't ask how to cancel anything, I asked to understand why I had been charged for the last 6 months. I also asked for instructions on how to figure out how much they have actually charged me for. Not having my questions answered, my first instinct was to reply to the email. Turned out that the "from" address doesn't accept email. Then I read carefully and clicked on a buried link within the email itself that "no, this did not answer my question", and clicked on link that asked them to call me. Much to my delight (and surprise), I was talking to a service rep within 2 minutes (via a neat 'click to call' service called estara from atg). An apologetic, very nice women (Tessa) was completely unable to address me issue, she told me she'd have to forward my request to the web services team, as she wasn't able to help me.

Lessons: I've already "cancelled" EC2 and S3 although since I had nothing provisioned I'm not sure what that means. Hopefully it will stop new charges, at least. I realize now how dangerous it is to allow Amazon to have my credit card number, and I've removed all banking and CC information from Amazon. If I had seen a growing amount due over the last few months I would have realized sooner something was wrong. But because they just pay themselves with my CC, it didn't register that I was getting a receipt, not a bill, all this time. Second, I'm concerned that someone may have my Amazon information. Third, I have to check my bank and cc statements more carefully. Finally, if I play with EC2 again it's going to be on a different Amazon account.

It's still a mystery exactly what Amazon was billing me for: $7.50 is enough for 75 hours of a small instance, a wierd number. When I find out I'll update this post.

Update: 6 Jan 2009 I finally received a response from "Luke":

Greetings from Amazon Web Services.

I have been notified of your recent inquiry regarding your AWS charges. I have taken a look at your AWS account. These charge is due to a non-attached Elastic IP address associated with your account. Elastic IP addresses that are allocated to your account but are not associated with an EC2 instance will accrue a $0.01 charge per hour. You can view your Elastic IP addresses with this command:

> ec2-describe-addresses

Any elastic IP addresses that you associate with your account remain associated with your account until you explicitly release them. To ensure our customers are efficiently using elastic IP addresses, we impose a small hourly charge when these IP addresses are not mapped to an instance. When these IP addresses are mapped to an instance, they are free of charge. You can use the EC2 API command line tools to release the Elastic IP address with this command:

> ec2-release-address <ip-address>

I also see that you have closed your AWS account. These usage charges have ceased as of your account cancellation. Please note that any applicable charges for January 1 and 2 will be collected at the end of the month.

Regards,

Luke



Wow! What awful customer service on so many levels! First, their emails look like invoices, not charges. Second, they don't explain anywhere what the charges are for. Third, when a customer goes to great lengths to find out what's going on, they don't offer to reverse the charges that obviously should never have been charged. Fourth, they never did answer one of my basic questions: how can I find out for myself what I'm being charged for? Fifth, they don't apologize or take note of the horrible messaging that started this whole mess. The icing on the cake is the last sentence, assuring me that I'll still be billed for the two days in January I didn't use the IP - gee, thanks, Amazon.

I've responded with another email asking for a refund and complaining about their messaging and customer service. For God's sake, do NOT evaluate EC2 unless you really know what you're doing!

Month, Amount
7 $1.32
8 $6.51
9$7.42
10 $6.53
11 $7.45
12 $7.42
Total: $36.65

[Update: they refunded my $36.65. But I found a better bookstore, Better World Books.]

Buddha, women and the neutrality of meditation.

No comments:

Got into a conversation today with my girl about Buddhism and women. It's disturbing lore, because Buddhist nuns are treated as second-class citizens in the Sangha.

And that's not ok with me.

The real irony is that gender simply doesn't enter into the Buddhist description of suffering - there is no male suffering or female suffering. Indeed the solution, the eight-fold noble path, is often described as "universal". This inconsistency strikes me as incredibly unfair, not to mention inconsistent with the rest of the Buddhist teachings as I understand them. Even saying that he was "a man of his time", as the article linked to above does, doesn't excuse this inconsistency - although one could claim that he was taking a big enough risk by ignoring caste, and to take on sexism would stress his nascent movement beyond breaking. But that is being incredibly generous.

According to this story, the Buddha exhibited the supernatural gift of seeing into the future. His judgment was based on this supernatural 'knowledge', which turned out to be false. This brings his conclusion into question. It is time that we separate the brilliant, accomplished experimental psychological insights from the cultural instincts far removed from modern reality. Meditation cultivates non-reaction, dispassion, and ego-lessness. It is genderless. I find it interesting that the Buddha's mistake was tied up with a supernatural power.

There is some hope for those whom dogma matters: the five hundred years have more than elapsed, it is time for a new policy for women who would take vows.