
Broken Windows
Check out some pop economics and learn about broken window theory. Then check out Michael Bates’ comments on immigration in Tulsa. Then maybe pop over to the pragmatic programmers comments on software entropy. Then get right back, ya here?I have lost sleep at night deciding between a future of law versus software. While they might sound totally different, I think of them both as building rule systems to encourage progress. Software is all about automating processes, easing interaction, and protecting resources. Sound a bit like law to you?But if we have to use automation that encumbers us more that disuse, chafing will ensue. If such easy interaction makes us more distracted and less able to affect our audience, or hear constructive criticism, we might as well cover our ears and shout, “LALALALALALALALA.” And if you waste resources protecting the stuff of others, you might prefer anarchy. The system has to be valuable or it is worthless.Even if this system is worthwhile but you think it is not, people will spend time, money, and words just to get rid of it.I appreciate our cops following the letter of the law, and the spirit likewise, but if the spirit and the letter suck, please just cut out that part of the system.
NVarchar Oddness
I was wondering what the difference between varchar and nvarchar sql types, when I ran across a brief by guyS. I was slightly confused by such wierdness, so I did investigate.For future reference, you should be aware: SQL Server nvarchar data is UCS-2. That is Unicode but not UTF-8, the sort that acts just like eight bit ASCII when the high bit is 0. Otherwise it may map to any plane in unicode by gaining extra bytes to store itself. It’s also not UTF-16, the sort that automatically takes sixteen bits to store the lowest plane of unicode, and scales similarly to handle all the rest. This is similar but different.UCS-2 is the home planet of UTF-16, where everthing is two bytes. Instead of allowing sixteen planes for data, you get plane 0. That is all. Everything is two bytes or not supported.
Selenium Testing
If you have ever had to do QA on your product, you can relate to the nagging sense of dread whenever a manager walks past your door those weeks. Or you hear the customer, who speaks loud enough the office can all hear, explaining their latest error on speakerphone.
And unless you are brilliant, you’ve even had a problem in the second round of testing that worked in the first place.
Or perhaps, you are a test driven developer, but every so often the browser just does not want to care that your unit tests all pass.
If this is you, investigate selenium. Or hang around a while for a proper series of mini tutorials
Embrace your identity
If anyone knows you by a web address, than you’ve got a web identity. And all around today’s web we can find interesting distributed services. So you need a way to tie your web identity to the services you need and use. That is what Yadis does.
Posted by me in February 02006.
The service you need is authentication. Really. Because you need amazon to authenticate you to show your wish list. Your bank needs to authenticate you to let you transfer funds. Hotmail needs to authenticate you to show you targeted ads. Or whatever.
Yadis is what makes OpenId 2 nifty. With it, your new web identity can authenticate with OpenId, or Lid, or Dix. In theory, you could extend your identity to support SAML, or some other authentication protocol you happen to like. I hear that Microsoft is even working on CardSpace integration. No, I don’t know more than a google would provide.
Why do you want authentication? Because it means that you don’t have to remember a username and password for any OpenID suporting sites. Instead of typing in a username and password for jyte, you simply enter your OpenID and it redirects you to your identity provider. Then you type in a password, or in the case of vidoop, select the images of the categories you’ve chosen. When your identity provider is confident you are who you say you are, it redirects you back to jyte. And jyte recognizes you are http://josephholsten.com (or whoever you are today).
Embrace your avatar
I registered for a web app last week. It imported most of my profile from OpenID simple registration. But I want an avatar. If you’ve used myspace, then you get the idea of a profile picture. If you’ve posted on a site supporting gravatars, you know how nifty it is to get that little picture next to your post. I want this nifty feature as a yadis (nee xrds-simple) service with my OpenId. That means we have to invent something.
Here goes:
http://josephholsten.com/avatar/1.0
http://en.gravatar.com/userimage/529392/71f60655008051cefc0474c09dac3289
What is it? A yadis document specifying my avatar URI. Along with it might lie LID, OAuth, or OpenID service descriptions. The type element is just an example right now, I’ll be needing a real service descriptor URI before this is a standard. But the URI element is interesting. That’s my gravatar! Or rather, it’s a URL for a real live image somewhere on the internet. For the geeks out there, we should assume that the URL responds with the appropriate mime type. Even better, it should convert into the appropriate mime type that is requested of it, REST style. But if places like jyte like this, you won’t have to upload images to every OpenID supporting site out there, it’ll just figure it out.
I have considered that simple registration extensions might provide this role. The problem lies with updating information. I change my avatar often enough to reflect my current appearence. Simple Registration really should apply just to the one time act of registering at an OpenID relying party. This is not a one time sort of use case. Thus the new service type.
Some problems are unresolved. Gravatar, the gold standard for globally recognized avatars, supports multiple image sizes and filtering by appropriateness. This could be solved by having multiple services in your XRDS, with each service providing an optional size and appropriatness rating. Alternatively, the service URI could support HTTP GET parameters to specify those attributes. While both reasonable for Every Use Case, I feel that Usually, it is best left as the Relying Party’s problem. Or rather, You Aren’t Going To Need It.
Every Day, You Say?
I promise that for the next month, I will not have an unusual number of rhyming titles. But titles there will be!
I stated this blog back when google first took a liking of it. Life has changed a bit since then. I intend to occasionally note the interesting changes, but more often mention interesting problems.
I am glad that you are so foolish as to read my archives.
furl you man!
oh hey, i forgot to mention that i have stopped using furl. there is nothing wrong with furl, but i found a complete replacement which has additional features. this replacement is absolutely del.icio.us.
there are really very few features. obviously it can save a url, with a title and description. instead of folders for organization, it has tags like gmail. user collections are openly available, mine is at del.icio.us/pantosys. user collections filtered by tag are available, for instance del.icio.us/pantosys/comic. a collection of all links with the same tag are available like this del.icio.us/tag/comic. the most popular links are available at del.icio.us/popular. finally, everything is available in both rss and html representations. not quite as respresentational state transfer would have it, but hey it is a start. and for firefox users, that is a hell of a lot of live boookmarks.
it is late and early.
emotions
the hot chocolate recipe is forthcoming, as chocolate is a far more complex ingredient than cocoa, much more than i anticipated. in the mean time, i have a theory about emotions which i would like to share, and have critiqued.
when i refer to emotions in this discussion, i mean to focus on emotional resoponse to present and past, which is seperate from emotional anticipation to the future. the scales i refer to exist in two modes. polar scales, like magnetic poles, consist of inverse states, between which is a grey region and a null point. these scales could be represented with positive one to negative one values. cardinal scales, derived from the cardinality of vectors in math (i am looking for a better term), consist of the presence and lack of a state. these scales may be represented in one of two forms. first are scales from one to zero, which could describe states like hot, cold, or light. second are scales from infinity to zero, like size, distance, and other measurable states.
first i would like to propose a polar scale of positive to negative. this is best simply exemplified by good and bad. an action either went well, in which it was at least partially a success, or went poorly, in which is was at least partially a failure. the important element is whether the way we desired. this is the primary scale by which we measure the past and present.
directly related to this scale is the scale of importance. this basically is the angular measure of the primary polar scale to any other scale. this is a strange scale to deal with, as the number of possible dimentions in which the scales of meaning exist could be infinite. it might be interesting to figure out how many dimentions of meaning exist, but that is completely beyond the scope of this discussion. basically there are scales which corelate to primary polarity, and there are those that do not.
a second cardinal scale is that of intent. certain times things go as we would like them, other times they askew. this is not parallel to the scale of primary polarity, as although things do not go exactly as we plan, yet may be just as good. this is not to suggest that the scale is entirely perpendicular. excluding the truly masochistic, when things go the way we intend, they can not fully be argued to be bad. when analyzing philosophies with value systems like tao or karma, the intent scale actually has an interesting orientation to primary polarity, in which the poles of primary polarity corespond to the negative pole of intent, and vise versa.
a third polar scale is that of causation. i propose that this be the scale which legal desicions base their punishments upon. this scale has no corellation to the primary polar scale. strangely enough, we rarely make a distinction on this scale when things occur as we intend, but make a broad distinction when things do not go as we intend. the breadth of this distinction seems to be based on the intent scale importance. thus there are sixteen variations of emotional response.
good [(un)important (un)intended (un)caused] – happy
bad [(un)important unintended] caused – sadness and guilt
bad [(un)important unintended] uncaused – anger
it is intersting to not that the spectum of emotional illness is determined by which responces occur where they sould not. depression is any form of misplaced sadness. aggressiveness is the level of importance which creates anger. masochism is misplaced happiness. selfdestructiveness is the existance of intended bad behavior, often asscociated with happiness.
i am not happy because what i have written is not important.
Hot Cocoa
this is my present recipe for hot cocoa
4 teaspoons cocoa powder
1 teaspoon brown sugar
0.24 liters milk
stir the dry ingredients and about a tablespoon of milk into a thick syrup at room temperature. place on 140˚ fahrenheit and stir in the rest of the milk.
this recipe actually is not comparable to hot chocolate, but it is simple and pretty tasty for a cheap alternative. i am going to get some unsweetened chocolate this afternoon and whip up a recipe then.