IE Mysteriously not allowing cookies

So,

All of a sudden an application I had written started being buggy in that if you were using IE, you wouldn’t stay logged in after the initial login.

A bit of investigation showed that the session cookie wasn’t being set, odd.. it had been working. A quick workaround in IIS was to set the session management to be url based, but this caused horrors to happen to the url (it prepending all links with a session key hash).

The answer at the end of the day, was that ie will reject cookies from domains that have an underscore ‘_’ in them, and indeed in this case mine did (some_sub_domain.mydomain.com) .

So changing that fixed the problem, caveat emptor! you may be able to set any crazy subdomain you want, but be careful. It would seem that _ is not valid as far as the official RFC is concerned (can’t find that myself) , and so some apps care, some don’t.

Another interesting discovery here was the IIS Session State Management control panel, where you can set it to be cookie, url, autodetect, a session server (that’s interesting) or custom (guess you’d roll your own) . This explains part of how to do web app load balancing and such with shared sessions.

Click this image to see the menu in context
Small iis

Yahoo Pipes, what an odd beast.

I’m an RSS proponent , I think it’s great. It truly has revolutionized how I use the Internet, while be it a pretty low- key revolution, the ones that stick often are.

I have about 50 rss feeds I use, but most of them are duplications of one another, meta-news is the new news. We report about someone reporting about someone reporting.

A lot of this is caused I think by a 50/50 mix of politeness and fear. Politeness plays in when we want to give credit to someone, so that were not plagiarizing, which makes us somehow more ‘reliable’ ? Fear in that if we don’t give that credit , we’ll get a nasty letter from someone with initials after their name. So you get an article on site A, verbatim from site B with a link to site B, and on site B the article is actually just a paraphrasing of an article on site C, with link, etc….

The need for RSS mangement is becoming clear (to those who use RSS) and tool for this start to pop up all over the place, enter Yahoo Pipes

There has been a rush of articles about pipes as of late, so I won’t belabor the point, other than to give a simple clear example of how one of my pipes that I find usefull.

Pipes allows you to perform logical operations on rss data, by this I mean simple programmatic functions (if,else,foreach, etc…) , and at first it’s hard to think of exactly how this is usefull, but with a bit of thought it becomes evident.

I like my gadgets, as much or more than the next guy, but gadget sites are in a strange and twisted love affair with cell phones that I do not share. So , amalgamate my gadget feeds , and remove cell phones!

Here you can see my pipe built up, engadget and gizmodo feeds added, then I use the union tool to combine them, and lastly the filter tool to filter out any articles that have the words “phone” or “mobile” in them. Very simple, but very useful.

Pipes

This also suits me fine for just amalgamating, in all honesty I’m not bothered which of these sites points me to a neat toy, I’m intertested in the toy, not who linked to it.

As a point of review, the pipes interface is very advanced DHTML, the connecting lines operate arguably nicer than the ones in Visio, in that they highlight possible points of attachment. As well as that is a debug window at the bottom, allowing you to see the output of any particular node in your pipe.

I think Yahoo has done a really neat thing here.

Just Relax - the problem with Permissions.

I’ve been thinking about writing about this for a while, and a post at 37signals has encouraged me to do so .

Having been involved in designing a number of CMS systems, user content systems, and general business process/management systems, without fail, every one of these has run into huge problems around the issues of permissions.

To illustrate, lets look at a hypothetical situation:

Company A has a content management system , which allows them to update the content on their customer support site.

Now, the basic problem here is simple, allow them to post common questions, and answers to those questions, provide a method for customers to ask new questions, and maybe a small system to display the ‘most popular answers’ type of thing.
Here we’ve described a 2 week project (not including designer time).

Enter ‘the problem’ .
Who gets to answer the questions
Who gets to edit the questions
Who gets to edit the introduction/content on the various pages
Who gets to edit that content.

Very , VERY quickly, this turns into a blooming tree of permissions. Permissions on objects, that inherit from permissions on object types, that inherit from areas of focus, differences in contributor vs. editor vs. publisher roles, roles per area of focus, etc…

What I see happening here, time and time again, is you end up building a permissions system, not a system to manage the support site. And the question I have to ask is

Is this the business your in?

Are you in the business of creating permissions based editing systems? I’m willing to bet the answer is no. You’re in the business of delivering your product, and all you need here is people to help answer the questions. Whether you’re building this internally, or paying an outside company/contractor, ultimately it is still your company doing the project, your time and money.

Remove all the permissions, except for maybe admin/not-admin , log who creates/edits content, and move on. Allow it to be a 2 week project; not a 2 month project that will never satisfy the increasingly byzantine permissions needs.

There is a cliché in film, which is that if a crane is rented, every shot is a crane shot. In short, just because you CAN create these permissions structures, doesn’t make them beneficial to your business.

It’s important to realize that traditional business process, and communication, are still the forces that make business successful, simply talk to people, and have them be responsible for the content they edit/submit, they are the people who run the business!

In the same way that people are responsible for locking the door when they leave, they are responsible for following basic business rules for this kind of exercise. You trust your staff to operate a part of your company, why wouldn’t you trust them with this? If you don’t , then perhaps your company has larger problems.

Concentrate on the core deliverables of these ancillary projects, and be very skeptical of anything outside that, the ‘bare minimum’ gets a bad wrap. With the definitioin of bare minimum to mean “the least that can be done to adequately satisfy the goals of a project” , then 9/10 times (especially in areas that are not core), bare minimum is exactly what you should be striving for.

Keep focus on “what is our business” , because if what your doing isn’t your business, then what are you doing?

Colibri Screencast (launcher / system tool)

Merlin Mann is always on about his beloved Quicksilver, and to be honest I am a bit jealous..

With Quicksilver,you can just type the name of the application you want to launch, you get a nice little interface to tell you if your on the right track (like T9 for applications)

Basically what we have here is a movement towards leveraging a text interface in a gui environment , which I support.. It’s true you could run a dos window and launch things from there.. but there’s autocomplete issues.. are you going to put every app you have in your path.. etc.. It’s just not practical.

Enter Colibri , it doesn’t currently have all the functionality of Quicksilver (neither will it likely). but it does have some very nice features.

I like to use the windows calculator, for example; now, I know the name of it ‘calculator’ . Why should i have to get my mouse, possibly go through 2 - 6 levels of menu (depending on how committed you are to it) , to click on the tiny little icon, not to mention the popping closed start menu flyouts that seem to fight you all the time. With Colibri I can just type the name ‘calculator’ , and in fact i can get it in just ‘ca’ , that’s a lot easier.

Click on the screenshot below to see a screencast I made of Colibri in action. Colibri is launched via hotkey (ctrl-space in my case) , in this screencast, none of the commands (other than closing some apps) is done with the mouse, just ctrl-space, then start typeing, maybe arrow  up/down and enter.

colibri screen shot

There are some shortcomings, for example I dont know how to add something that isn’t in my start folder to its list.. maybe it’s possible I don’t know..