Bleep it!

Here’s what I’m curious about. Why is bleeping words considered acceptable, or even useful? They very clearly just beeped the “hi” from “shit”. It didn’t obfuscate the word at ALL. What was the point? Everyone who knows, knows, and everyone who doesn’t figures it out.

Here’s an idea. Ratings. We have perfectly good technology. Although I find arbitrary ratings systems just as objectionable as bleeping! It’s my choice what I find objectionable, what words I find offensive. Don’t push your morals on me, don’t choose what I get to see.

How about all shows are read through a voice recognition app and creates a transcript for your show. Then you can create your own list of words you find offensive. If an show contains certain words (or too many offensive words) it will just warn you!

Never let anyone think for you. Do it yourself.

On natural laws…

There are several undeniable natural laws at work here.. Newton’s third law would seem the most relevant (Every action has an equal and opposite reaction) and “natural”, but I think the “Law of Unintended Consequences” is what I’m going to make an argument for.

In short, I bought a new brand of deodorant, and now I must learn how to clean deodorant stains out of a dark shirt.

There’s a reason I fear change. Unintended Consequences indeed.

Why no observer patterns? (Pt. 2)

Immediately after posting the last article I started thinking about how this could work. Let’s assume a RESTful Rails based project.

Things we want to observe: Resources.
Done! That was easy!

So: http://daedalusdreams.com/observers/ would show you a list of things you could “subscribe” to, and indicate which of them you were already subscribed to. This would require you to be logged-in (openID) and have your own site’s URL tied to your login. (Thought: OpenID metadata?) Then you could simply say “I am interested in blogposts, microblog posts, and any new images you post.”

Then I, as daedalusdreams.com, would have an option when I went to submit a blogpost: “Notify Observers?”. (Maybe it would only appear if this resource had people actually observing it?)

I should speak briefly on the core principle of this system and the reason I started thinking about it. People often think I am against “social networking”. In reality, what I am really against is personality fragmentation. I refuse to have a twitter AND a myspace AND a facebook AND a linkedin AND a flickr AND a del.icio.us AND twitpic AND youtube AND…. I AM daedalusdreams.com, and everything about me should be in this single place. (Subject to needing additional hosting/bandwidth, but that can still all be linked to daedalusdreams.com and found here.)

I’ve just discovered something called WebHooks.? I think I’ll go read about that for a while. Looks interesting.

Why no observer patterns?

The observer pattern is really quite handy:
“Hey, you, the dude responsible for managing Josh’s twitter posts! Let me know when he posts something new! My address is…”

That’s basically it. It works in Cocoa, it works in SproutCore (Javascript), it works in Rails.. Why has it never been taken to a wider scale?? I understand that pushing to users is difficult due to the “statelessness” of HTTP, but “push”ing between servers with static IP/Hostnames should be decently trivial.

REST, JSON, SSL, toss out any number of acronyms you want. It’s doable in a number of different ways. So why isn’t it common? Why can’t I subscribe to your blog and have it notify me when you make a new post? Forcing me to poll your RSS feed periodically to see if you’ve made a new post is, shall we say, fucking backwards and wrong!!

So what are the real challenges here?

  1. Callback address. What if a registered observer changes their callback URL? How do we address them?
  2. How do we authorize changes? Must research OpenID/OAuth and see if there are systems that might work for this.
  3. Sufficiently extensible and user-definable. No locking the user profile into ONLY having fields like “favorite pet” and “smoker y/n”. No limiting the language used.

What might this look like?? If I (joshproehl.com) want to obsevre events at daedalusdreams.com I could send this:


http://daedalusdreams.com/observer/create
POST
{
model:blogpost
callback:http://joshproehl.com/listener/
}

And then when daedalusdreams.com makes a change to the blogposts it would know to send this:


http://joshproehl.com/listener/
POST
{
source:http://daedalusdreams.com/
model:blogpost;
sourceURL:http://daedadalusdreams.com/blog/5
}

I’m having trouble visualizing both exactly how this would work, and why it might not. I think it may be time to start diagramming some things out.

Continue reading in Part 2

Recording the dream I had before I awoke

Start

We were in the country (probably still northwest, since there were lots of trees and cleared land mixed together), but very few roads. I and two others were living together or at least were hanging out a lot together for the time being, and there were three(?) little kids with us. Annie the dog was there, along with a rabbit like Scarlet. They were the smallest of the animals (the rest were all dogs) so I took it upon myself to really make sure they were okay and always checked on where they were. I told one of the little kids to watch over them. The point was that there was a killer elephant on the loose and could actually move at a great clip, and we needed to get to a safe area. But we don’t know where it is at any one moment so it’s quite scary moving ourselves out to the car, especially with SO many animals. We eventually decide to go for it, me holding Annie and the rabbit and the other two women herding the other animals. I’m the last one to the car and I’m frantically picking up the animals and shoving them into the backseat of the car because at this point we need to just GET MOVING and it really doesn’t matter if they’re a little squished. One of the larger wiry dogs is being a pain trying to get back out of the car, so I have to shut the door and try to get back into the back seat only after someone else in the car has restrained them (a hard task). Finally I open the back right door and shove myself in, only barely able to close it. Dogs are piled on the laps of my comrades all the way up to my head. We speed away and head into town(?). On the way we’re on a 4-lane grassy-median-separated highway with fields on the left, and a stand of trees/forest on the right. Between the forest line and the road is some more grass (all of the grass in this dream is tan like it is in the summer), and on that grass is a makeshift dirt road just a result of people driving on it often. Going the opposite direction from us is what looks just like a military vehicle with a big reservoir on the back (similar to those milk trucks, only this is dark green/black). Chasing it is a giant elephant bigger than the truck. There are three men in the truck, and as we drive by we see the elephant catch up to it and smash its trunk into the passenger side. Screams emit from the men inside and the truck crashes. By then we’ve gone out of sight, speeding off into town. At this point I remember seeing an arial view of the town. Buildings were normal, but the center square had a circular road that ran the perimeter which our car was now on, going towards the right and around. I don’t know why I not only had a sudden arial image of the square, let alone why it was a real-time image that included the speck that was our car. Surrounding the very center of the square were four enormous statues, each one person-shaped but each still very different. From the arial view still we curve around at the top of the square and turn to drive into the center. Suddenly we’re in the waiting room of what seems to have been a former veterinary office-turned elephant attack shelter. The waiting room is one long rectangular room going East/West, and along the north and east sides there were hospital/bare looking chairs. We plunk down ourselves and all of our animals in that corner, and I put Annie and the rabbit on the corner coffee table and instruct one of the kids to look after them. Myself and another woman with us wander over to the center of the north wall, because that’s where the open double-size no-door doorway is into the rest of the complex. We meet a woman in a lab coat and explain our situation; she looks harried. We have to beg a bit for whatever reason but she finally relents and we go back to get our animals and the kids. We grab them all and start following her into the back of the complex wondering what the hell we’re going to do about this terrorizing elephant that has the ability to kill anyone it sees.

End

My kind of “fantasy”…

I make no secret of the fact that I consider fantasy to generally be “fluffy”. Fluffy can be fun, but generally I like a story that has something to tell you, or something interesting to say. That said, I listen to both Escape Pod (for all my deep-thought sci-fi needs) and Podcastle (sometimes you just want to heard about dragons).?

The latest episode of Podcastle certainly fulfilled both “fun” and “thoughtful” though! Episode 49, “Return of the Warrior” is quite enjoyable, and I highly recommend that you go and listen to it! It’s only 25 minutes, which isn’t a huge time investment, so no excuses!?
This story is written very much in the “short story” form, designed to get it’s point across in the minimum of words. It manages to add enough humor to make you grin, but include enough depth to make you go “ah hah!”. And that’s all I really want to say about it. Just go listen. 🙂

Predictability in UI design

So today I had the dubious pleasure of working all afternoon on UI design in Cocoa, and then UI design in Rails/CSS/HTML.?
Going from one to the other really highlights some of the problems in doing web-based design!

My big issue with writing in HTML/CSS is? predictability. I do not? enjoy wondering if something is going to render properly, or if a particular CSS attribute is going to work the way it ought to.

Maybe I’m doing it wrong. Maybe CSS doesn’t suck as bad as I seem to think. But until I can say “you, the content box! Size yourself to fit around the content inside you and then position yourself in the center of the screen” just that easily…