Making IE6 Behave With Cookies: P3P How To

If you've found this page then you've come up against IE6's privacy features. Namely that cookies are getting blocked and you need them not to be. Perhaps you need frames in your site, perhaps you're into affiliate marketing, but either way the cookies need to make it to your valuable surfer's computer!

At first Google search I was not impressed. If you want to pay around US$100 you can get software to do it for you. There was no way I was going to pay. For starters, I believe almost everything on the web should be for free, and secondly I knew in the back of my mind that I could get my head around an XML schema for less than $100.

So what do we want? A minimal P3P file that just works! When do we want it? Now! Let's face it - we just want our damn cookies to be written to a machine running IE6. I'm not saying privacy isn't important but the firefox/mozilla implementation works just fine for the majority.

So after a bit more searching around I found p3pbook. It's the accompanying website to what looks to be the definitive book on this stuff. They've got lots of examples and this is the most straight forward site I've found on the matter.

If you don't want to wade through the W3C Spec, this example document from the P3PBook shows you all the items of the schema. If you're serious about writing your privacy policy in perfect detail then you will have to check the offical W3C spec to understand the definition of each schema option.

Useful links
http://www.oreillynet.com/pub/a/javascript/2002/10/04/p3p.html

If you've found your post-XPSP2 net performance to have degraded...

Have a look here.

I strongly recommend getting Avast, Ad-Aware SE Personal, and SpywareBlaster to ensure that your "4226" events are actually caused by a legit programme. This tip is particularly useful to BitTorrent users who find that their client is a bit too greedy with the bandwidth.

.NET posts

From now on, all .NET related posts can be found on my new devlicio.us blog, which can be found here.

Head over and read the main feed - there are some great articles up already.

Filtering RSS feeds

The other day I had the idea that being able to filter high-volume RSS feeds would be very useful. I started developing a solution, but tonight I realised I hadn't checked if anyone else had the same idea. Googled and, yes, many others had. Most of them provided simple keyword filters (inclusive) which is, frankly, crap when you put that function in context. Take, for example, MSDN Blogs which generates at least 100 posts per day (less on the weekend). This is the conglomerated feed of all MS tech blogs. To apply a keyword filter to this is useless, since the whole reason I read it is to keep up to date with the Microsoft world. Filtering by such a precise method will cause many interesting topics to go unseen. Same with something like slashdot. In other words, keyword filtering won't cut it with blog browsing.

Filters like date range, author, and tag work well these types of feeds because they are broad. And that's why I chose Feed Rinse because they provide the above, a nice interface, and tiered membership so if you're really serious about feed filtering you can pay for the privilege. Shame I didn't think of it first but at least I now have decent filtered feeds available and I barely had to lift a finger!

.NET 2.0 get properties vs method calls

When an object is required to provide some simple true/false information about itself one may use a method or a property to return a boolean value.

The question is which is preferable to use? Or does it even matter. I'm sure there are solid design reasons for going either way.

e.g. bool-returning method - IsBlah() - Vs a [possibly readonly] property - IsBlah.

Each will provide its return value depending on the internal state of the object. The syntax will differ, as well as the accessibility (properties can have mutators). What else is different?

One major difference is that in C# a property with both get and set accessors can be inadvertently assigned to via a small typo:

if (obj.State = serverState)...
when you mean,
if (obj.State == serverState)

Obviously this can be avoided by only providing a get accessor, however this can't always be done because some properties need mutators too. Another fix would be to enforce a coding style where the comparison value always appears on the LHS of the comparison - not stable though, as it depends on the developer.

Bill Wagner at SRT Solutions suggests that there are no hard-and-fast rules, but that some simple guidelines may be followed in order to make the decision. This checklist can be found here. Some good points he makes in favour of properties is that they can be serialised, which is definitely becoming more and more important as web services gain popularity. In the context of .NET this also affects objects sent over a Remoting boundary.

Personaly, I prefer to use properties whenever possible as they fit well with the concept that they are exposing an attribute of the object. I definitely agree with Bill in that they should be simple, settable in any order, and should not call outside the object to determine their value. I think it is wise to use private methods to calculate properties based on external data, and then cache that result for when it is required via the property. This can be done when the object is created.

As always, it depends on the particular requirements for the object. If the attribute in question can be safely calculated from internal state at any time in the object's lifetime, then a property is the way to go. If the attribute can only be calculated after the constructor has finished, or if the attribute depends on external data, a calculation method and caching solution, or a re-design/refactoring would be preferable.

References

Properties vs. Methods @ SRT Solutions

Tags

windows (10) microsoft (9) .net (6) google chrome (5) windows 7 (5) asp.net (4) google (4) google browser (4) development (3) javascript (3) mssql (3) rss (3) sql server (3) wordpress (3) automation (2) blogging (2) css (2) database (2) firefox (2) get all wordpress images (2) gmail (2) google docs (2) intel (2) internet explorer (2) linux (2) linux commands (2) microsoft word (2) mysql (2) netsh (2) network issue (2) proxy (2) seo tips (2) shell (2) sun (2) tfs (2) videos (2) wget (2) windows networking (2) windows vista (2) winhttp (2) .net 3.5 (1) .net 4.5 (1) .net async ctp3 (1) .net framework 4.0 (1) 404 (1) JungleDisk (1) access (1) active directory (1) addons (1) adobe acrobat (1) adobe dlm (1) adobe reader (1) adp (1) adsense (1) adtoll (1) adwords (1) amazon (1) antivirus (1) asp.net 4.0 (1) authentication (1) back links (1) backlinks (1) bacula (1) bash (1) batch files (1) blogger (1) box (1) browser exploits (1) category rss (1) cell phone (1) cell phone comparison (1) charting (1) cheap cell phones (1) cheap laptop upgrades (1) checkout (1) chrome (1) chrome.manifest (1) cloud (1) cloud hosting (1) cloud vps (1) code (1) color chart (1) colour chart (1) conditional formatting (1) config (1) configuration (1) context menu (1) copy (1) corrupt (1) credentials (1) cross-reference (1) database scripts (1) dba scripts (1) debian (1) decrypt (1) delete file windows vista (1) delete files (1) dell (1) dell laptop (1) dell studio (1) dell studio 1537 (1) dhcp (1) directory size (1) div (1) dns (1) document properties (1) dotnet (1) download (1) dreamhost (1) dreamhost coupon (1) dreamhost promo (1) dreamhost promo code (1) drive letter (1) drivers (1) duplicate content (1) editpad pro (1) encrypt (1) encryption (1) error (1) error code (1) excel (1) exception (1) external hard drive (1) facebook (1) faviconize (1) feeds (1) firefox 3 rc1 (1) firefox 3.1 (1) firefox addons (1) firefox tabs (1) firewall (1) firewall script (1) fix (1) fix .net framework (1) foreign keys (1) gmail 2.0 (1) gmail error (1) google chrome 2.0 (1) google chrome dev (1) google chrome exploit (1) google reader (1) google reader tags (1) gtdinbox (1) hard drive (1) hex color (1) hex colour (1) htaccess (1) html (1) html 5 (1) iis6 (1) installation (1) ipod touch (1) ipod touch 2g (1) ipod touch freeze (1) ipod touch magnet case (1) ipod touch magnet case problem (1) ipod touch problem (1) iterator pattern (1) itunes (1) java (1) joomla (1) jquery (1) laptop (1) laptop upgrade (1) laptops (1) latex (1) leeching (1) like button (1) link checker (1) linkbacks (1) linq (1) linqdatasource (1) lost password (1) making money online (1) map drive (1) mega cheap phones (1) microsoft excel (1) microsoft signature (1) microsoft store (1) microsoft web deploy (1) microsoft windows (1) microsoft word 2007 (1) minimize firefox tabs (1) mozy (1) ms word (1) msdeploy (1) msdtc (1) nant (1) netstumbler (1) network path not found (1) network path was not found (1) network problem (1) networking (1) new movies (1) nintendo (1) nirsoft (1) nocheckbrowser (1) number (1) odf (1) odt (1) online backups (1) open source browser (1) openoffice (1) oracle (1) oracle client (1) photoshop (1) phpmyadmin (1) podcast (1) powershell (1) pr checker (1) productivity (1) proxy server (1) proxycfg (1) putty (1) recover (1) registry (1) reinstall windows 7 (1) remote desktop (1) remove (1) repair (1) reset joomla admin password (1) rewrite (1) rsa (1) sandy bridge laptop (1) seagate momentus xt (1) seo tools (1) sequence (1) server monitoring (1) sftp (1) social networks (1) softlayer (1) soulseek (1) spreadsheet (1) spreadsheet formula (1) sql (1) sql scripts (1) sql server management studio (1) sqlclient (1) ssh (1) ssis (1) ssl (1) ssms (1) subst (1) tabmixplus (1) telstra (1) text editor (1) trust (1) unlock cell phone (1) unlock mobile phone (1) upgrade laptop hard drive (1) user management (1) vb.net (1) video download (1) virtual server (1) visual studio (1) vodafone (1) vodafone australia (1) vps (1) vps.net (1) wd external drive (1) web deploy (1) web dev (1) web development (1) web hosting (1) web security (1) webdev (1) webmail (1) webmaster tips (1) western digital (1) wifi networks (1) wii (1) win7 (1) windows 7 backup (1) windows 7 gadgets (1) windows 8 (1) windows 8 antivirus (1) windows error (1) windows live (1) windows live essentials (1) windows live toolbar (1) windows tips (1) windows web development (1) windows xp (1) winxp (1) wireless networks (1) word tips (1) wordpress 2.7 (1) wordpress plugin (1) wp super cache (1) yield (1) youtube download (1) youtube playlist download (1)