Posts

Showing posts from September, 2007

Bill Of Rights for Internet Users?

I just have to laugh at this one. OpenSocialWeb.org has a " Bill of Rights for Users of the Social Web ". Wait a minute, guys -- didn't we skip over something here? Forget about the "Social Web" Horse Manure! I got more important stuff to worry about -- How about an INTERNET USER'S BILL OF RIGHTS? I guess my needs are just a lot less "Social" than yours, pals. Now this is a step in the correct direction , IMHO. But there is more, much more: How about including rights to control your own computer? Shouldn't the practices of installing spyware and other software that cannot be controlled by the owner/user be legally considered trespass or assault of some kind? What gives anyone the right to take control of my computer without my consent? How about offensive advertising on web sites that I cannot 'opt out" of? What about SPAM emails that I get? What about Cellular providers that censor text messaging? How about people who get shut off by

Convert a Visual Studio 2003 Class Library Project to VS 2005 Web Application Project

This one came about because an asp.net forums user was having difficulty understanding how the Web Site project model works vis-a-vis the Web Application Project model works. Under almost all scenarios, I recommend the Web Application Project model - especially if you intend to deploy the resultant build into production and it is not just a "demo". The OP wanted to have a single assembly - something your Web Site Project simply is not geared to do. I explained that you can put all your class library and control *cs or *vb files into a WAP, and they all get compiled into a single dll. After the OP got my explanatory answer post, another user posted an elegant set of instructions as well, which I reproduce here: How to convert VS2003 Class Library project to VS2005 Web Application project 1) Open 2003 Solution in VS2005 2) Run Conversion Wizard 3) Close VS2005 4) Open Class Library project in Notepad 5) Replace line: <ProjectType>Local</ProjectType> with <

Story of a Successful Web Site

It was about June of 2000. Robbe Morris and I were working together at an outfit in Maitland, FL called Sprint TeleCenters. We did most of our programming in VB 6.0, or VBscript. (Uggh!) I distinctly remember that I was probably a bit more into Web programming at the time than Robbe was -- I was on the SOAP distribution list, avidly reading all the rants of the likes of Dave Winer and Don Box. They were excited about what they were doing with SOAP, and I was excited. When I'd talk to other people about XML, often I'd get comments like "Why on earth would people want to mess with all that glop!" and so on. One day, I said to Robbe, "Let's start a developer website with articles". Now this is a guy that, at the time, I don't think had written a line of HTML in his life. But, he liked the idea. His Significant Other came up with a crazy name: "eggheadcafe". I thought it was great (and of course, so did he) so we decided to run with it. Within

Incompatibilities between Framework 2.0 and 3.0 versions on Vista vs XP

The human mind treats a new idea the same way the body treats a strange protein; it rejects it. - PB Medawar Hans Passant, an MVP and moderator of one of the MSDN Forums, found some interesting items: The .NET 3.0 version of the framework as installed on Vista is not the same as the one installed on XP SP2. On Vista, the setup utility overwrites all the V2.0 assemblies and upgrades them from version 2.0.50727.42 to 2.0.50727.312. There are some differences between the 42 and the 312 revisions of mscorlib.dll and System.dll. There are indeed a few places where 312 explicitly checks for Vista . There are several places where a SecurityPermission attribute is changed from InheritanceDemand to LinkDemand. And what looks like bug fixes in PerformanceCounter, FileWebRequest, RuntimeMethodInfo and UdpClient. Hans says that WaitHandle is the most visible class with new exceptions being thrown. There's also a potentially breaking change in HttpServerUtility that was discovered by Juan Llibr

KB929729 Windows Update Failure - An Easy FIX

Image
OK, it's Microsoft Windows Update "Fun Time" again! KB929729 Security Update for .NET 1.1 shows up in Windows Update and guess what? It never goes away. It's like it's going to be there wanting to get reinstalled like FOREVER. The 1.1 service pack was an optional update that many users did not install, so the latest security update is doomed to fail. The security update did not search for the right version prior to installation so either you got a installation failure message or it "updated sucessfully" only to reappear as a needed update a few minutes later. If you are unfortunate enough to have .Net Framework version 2 or 3 without updating your service pack for version 1 your headaches just got worse, because the official "FIX" for this involves uninstalling ALL versions of .NET Framework and is quite painful. Fortunately for many the shorter "Fix" I detail here should work. NOTE: This is for Windows VISTA ONLY. 1) Instead of using

How can I Install Membership, Roles and Profile on my Hosted Site?

This one (or variations of it) has come up frequently in the last week or so on ASP.NET newsgroup and forum posts, so I thought it would be appropriate to take another stab at providing some help. The first thing we want to do is to enable our database for the providers. There are actually three separate ways you can do this: 1) Run ASPNET_REGSQL and follow the prompts. Of course, this requires that you have command-prompt access to the machine on which your site will be deployed. For hosted solutions this is obviously not available to us. "Where is 'ASPNET_REGSQL.EXE'", you say? You know the old Chinese proverb about "teach a man to fish?" BTW, when you do find it, you'll of course know that as with most command - line utilities, you can type /? after the name of the executable at a command prompt and see a help listing of commands. 2) Run ASP.NET_REGSQL.EXE on your own sample database locally, and EXPORT all the sql script necessary to create the tabl

We Have Met the Enemy and ...

"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." -- Sun Tzu I have no issue with people who want Microsoft (and others) to make full disclosure about "Stuff" they do (or don't do) with your PC when you subscribe to Windows Update and similar services. That's just good citizenship to me. But it's possible to go overboard on this vigilante stuff. Here is an example: Microsoft updates Windows without users' consent This guy is basically making a big hullaballoo about Microsoft wanting to update Windows Update itself, in order to make it better and fix any bugs, but he's making it sound like it is some sort of "Stealth Install" that violates your privacy rights. Then at the end, he tells you not to roll back any of the updated files. Umm, who's kidding whom, pal? Oh, and here's another on eWeek from another Linux fanboy who's simply parroting the first guy and th

SpamBot Killers on the Rampage

"Am I afraid of high notes? Of course I am afraid! What sane man is not?” -- Pavarotti If you run a blog or website and you are carefully watching your hits, more often than not you should be able to identify bots attempting to do all kinds of nasty, evil things at your site. Many of these absolutely will not obey the Robots.txt file (although they may request it just so they can see if there is any material for nastiness there). They perpetrate all kinds of schemes, trying out SQL Injection attacks, attempting to post blog spam and trackbacks, and the like. Some of the stuff they try (and I have real-time database logging, so it's easy to amuse myself) is either hilarious or pitiful - depending on your frame of reference! Fortunately, it is relatively easy to head these nasties off at the pass -- almost all this junk traffic emanates from IP addresses that don't change. So what I do is I have a BADIP list that's easy for me to edit, and in Global, in Application_PreR

The specified string is not in the form required for a subject

At one of my "Playground" sites, BlogMetaFinder.com , I get an approval email every time somebody submits a blog or website to the directory. ( If you have any kind of  blog or website related to blogging I encourage you to submit it there).  All submissions go into the database, but they are marked as "Active=0" until such time as i review the submission via a link to a special "Admin" page that I get in the email. It only takes me a second to inspect a site that represents a  legitimate submission (e.g., not porn, not drugs, no redirects, no funny business script kiddie bullshit, etc.) and put the form into edit mode, mark the "Active" checkbox, and update the record which makes it activated into the directory immediately. However, you always get the occasional bot or bullshit artist that wants to try and see if they can pull a fast one, and they submit junk in the hopes that my directory isn't smart enough to stop them. Invariably, the su

Session_End, where is my Request?

This is one of the most common misunderstandings about ASP.NET -- so common that I even blundered it myself in a newsgroup post, even though I know better. A typical question might go like this: "I have code in my session_start to create a temp directory for the session. On session_end it is supposed to delete the directory but doesn't seem to be firing. I've enclosed the code below. Can anybody give me any suggestions as to why Session_End seems to not be being fired?" <sample code from the OP> Session_End only fires for InProc Session mode, and it fires on the server. It is completely independent of any "Request" -- in fact that's the reason it fires - because there *IS* no Request and there hasn't been one for some time! So -- the concept of getting anything out of a Request when Session_End fires is a moot issue.

Like a little Assembly with your GAC?

Q: Is it posssible to get an assembly out of the GAC to another folder? Let's say you GAC-ed an assembly but you deleted the source by accident? A: The assembly would be stored in this folder <windowsdir>\assembly\GAC\<Assembly Name>\Version_PublicKeyToken. You can get that using the copy command from the command prompt and using "CD dirname". From Windows Explorer, you cannot do it as Explorer has a custom view of the windows\assembly folder that hides the actual files and subfolders. That's for 1.1 Assemblies. 2.0 Assemblies would be in <windowsdir>\assembly\GAC_MSIL\<Assembly Name>\Version_PublicKeyToken. Q: GAC_32, GAC_MSIL, GAC_64 - What gives? Specifically why is there is a GAC_32 and a GAC_MSIL folder? Is it because some assemblies are compiled to x86 machine code (GAC_32) and some assemblies are compiled to MSIL? What dictates where your assembly ends up? A: The GAC_MSIL cache contains assemblies that can be run in either 32-bit or