Tag Archives: computers-development

Invalid character in Base-64 string error with ViewState

Well, for some reason, I decided to test an obscure case today… I was happily greeted by an error page saying that my viewstate was fucked.  What?  I thought to myself… “This is awesome! Leave it to MS and their skilled button monkey to test viewstate issues, right?”  Sorry it’s been a little while since I ranted about MS… I have plenty of crap that’s been building up inside me (mostly related to the stinky pile they call Visual Studio 2005), and maybe I can unleash it all to the world some day in the near future.

Anyway… This issue has to do with asp.net 1.1 and I’m about 96% sure that this has to do with some recent security “improvements” that I made to my web.config.  I decided to use authorization elements in my main web.config to control who has access to various files/directories in the system. 

My web.config looked something like:

<configuration>
    <system.web>
        <authorization>
            <deny users=”?” />
        </authorization>
    </system.web>
    <location path=”Default.aspx”>
        <system.web>
            <authorization>
                <allow users=”*” />
            </authorization>
        </system.web>
    </location>
    <location path=”login.aspx”>
        <system.web>
            <authorization>
                <allow users=”*” />
            </authorization>
        </system.web>
    </location>
    <location path=”Themes”>
        <system.web>
            <authorization>
                <allow users=”*” />
            </authorization>
        </system.web>
    </location>
    <location path=”js”>
        <system.web>
            <authorization>
                <allow users=”*” />
            </authorization>
        </system.web>
    </location>
</configuration>

What this basically says is that everyone can access default.aspx, login.aspx, the Themes directory, and the js directory.  Everything else is limited to logged in users.

Now, for some reason, I decided to add the control I use to log in on to my default.aspx page as well as the login.aspx page.  When I tried logging in via default.aspx, I got the lovely viewstate error (Invalid character in Base-64 string). 

Allowing access to all files fixes the error… but as an alternative, I just removed “everyone” access to the default.aspx page for now.  In the future, I’ll remove the login control from that page, but it doesn’t really matter right now.  You have to be logged in to see anything useful right now.

Finding any information related to this was a bitch.  Actually, to be completely truthful, I didn’t find anything just worked it out on my own.  Thanks MS.  If there is a plus side to any of this, I guess it would be that I got to enjoy rebooting my box.

MSI property formatting options

We have to write an install for our product, so I’m rediscovering the spotty MSI documentation again.  I just wanted to link to this page for formatting options for properties.

For example, if you want to get the directory that the component “web_core” got installed to, you can use [$web_core].

If you would like to get the path to a specific file, you would use something like [#fileid].

There are more formatting options available, but I tend to use these the most.

The Deck – A nice marketing strategy

A List Apart, 37signals, Daring Fireball,
and Coudal Partners are implementing a very interesting ad campaign.  They are selling ad space on all of the sites and calling the service the Deck.  There is limited space for ads (6 ads per month) and each ad gets rotated across all of the sites.  Now the way I see this, is that it is a benefit to all involved.  The Deck provides specific advertising of products/services that the owners of the 4 sites pre-screen and deem useful.  This will maintain a high quality for the ads.  The ads will be very targeted to the people who are visiting the sites.  This opposes Google’s ad method that targets each specific page differently across a website, rather than targeting the type of people who visit that site.

Now, along with giving the four sites an immediate monetary bonus, an ad campaign like this should also draw more visitors to each site.  I know it that it worked for me.  I hadn’t heard of Daring Fireball or Coudal Partners, but because I respect both A List Apart and 37signals, I will probably start visiting the other two sites.  Actually, I’ll subscribe to their feeds and determine if they’re worth reading after a trial period.

Another interesting note about this method is that it does not guarantee the number of clicks per ad.  In fact, their method is to not charge by how many clicks you’ll get.  Rather, they’re basing the success of the ad program off of the number of page views that the four sites bring in.  From the statistics that they claim alone, you can be sure that your ad will be seen by the people that crowd that you want.

Anyway, this seems like a great example of taking advertising into your own hands.  I’m sure this will be much more successful for each company, than revenue from a mass advertisement system like Google ads.  Plus people are more likely to respect ads put on a site like this.  I’m curious how long it will take them to integrate some sort of ads to the feeds…

Linux… the big question

I consider myself to be fairly knowledgeable about computers… I can
only imagine how people feel about Linux, who know less than I
do.  I want to use Linux, but this is why I currently do
not…  Mainly, it confuses me and I’m uneducated about it…

    * There are so many distros that I’m not really sure
which one fits me.  I don’t know which one would fit the uses I
plan for Linux.
    * There are two main GUI wrappers (KDE and
Gnome).  I don’t know the differences and it seems like I have to
target one or the other for any GUI apps that I develop.
    * I like that I can go to Windows update and get all of my updates at once, in one [sort of] clean process.
    * Installing software on a linux box is a
pain.  (this comes from my previous toying with linux a couple
years ago).
    * Recompiling the kernel… yeah, I tried this one a
couple years ago and it didn’t work out so well for me.  As a
daily user, I shouldn’t have to recompile the kernel.  If I were
writing device drivers, it may be different.
    * File sharing… maybe this has changed, but I
remember that sharing files between windows and linux (using SAMBA) was
not trivial.  This is a must have…

So what am I looking for specifically?  I want:

    * A flavor of Linux for development.  My
current setup is Windows XP/2003 with Visual Studio .Net 2003.  I
currently develop web apps, primarily with the occasional gui/console
tool.  It is generally written with asp.net/c#.  I have to
admit that I like what Mono is doing, but I’m not sure what web server
easily works with asp.net apps.
    * A flavor of Linux for a webserver.  I host my
own website(s) and wouldn’t mind using Linux if it was a transparent
switch.
    * A flavor of Linux for casual web browsing, mp3
playing, and office apps.  I often have to setup/reformat older
boxes for people.  If I could install linux for them, I would…
this is tough, since those people know even less about computers than I
do.
    * Automatic updates.  I’m not a fulltime
security geek… I want my applications/OS to tell me when updates are
needed…better yet, the apps/OS could auto download and install
updates on a schedule.  I have no problem downloading updates and
clicking a button to install them.  I just don’t see myself
keeping up with patches/updates without this feature.  This should
include kernel updates with a once click (or similar) method to update
to the new version.

That’s all for now.  So if anyone reading this knows a lot about
linux, or if someone you know would, I’d like a couple of these
questions answered.  You could convert a fulltime windows user to
a part time windows user, if things were more clear.  A feature
comparison chart for distros would be nice.  Also, feel free to
debunk any myths that I might have raised in these bullet points.

Drawbacks from registry / file polling…

Ever watch that little network icon in the systray?  Wonder how it
knows when to blink when there is network activity?  I didn’t
either, but then I came across an entry from Mark that describes how it
determines when to blink.  The program, represented by the network icon, polls a couple registry keys about twice per second, to determine if there is activity.  As he
outlines in this post, polling ultimately hurts system performance,
since it takes cycles away from useful applications and can cause
memory page faults.

So what does Mark recommend a windows developer to do as an alternative to polling? For the registry, use the RegNotifyChangeKeyValue function. For the file system, use ReadDirectoryChangesW and/or FindFirstChangeNotification functions…

Buying a new computer….

I have decided that I will upgrade my home machine. It is currently a 1ghz PIII w/ 512mb ram. I find this lagging. I am looking for a fairly new processor around the 3ghz range. I would like to have 1.5- 2gb of ram. I would also like support for a SATA drive.

My current dilemma is whether I should go AMD 64 or Intel… Intel is a little cheaper, but AMD 64 would allow me to experiment w/ 64bit development. If I could get a board that supports dual processors, then all the better…

My ideal price range for all of this would be around $500 or so… I don’t know if I can do that w/ the RAM requirement, but that is the price range I’m shooting for.

Does anyone have any recommendations about this?

A shift towards language oriented programming?

If you’re curious about how the act of programming might change, go read Wesner’s post on coding graphically rather than texturally.  He has some good links to backup his claims.  I personally think that this would be a welcomed change to the programming world, but I do believe that text editing will not go away anytime soon.  Personally, I don’t use the designer view because it doesn’t give me enough flexibility and control.  Perhaps this will change with Whidbey or other IDEs…


btw, I had to challenge myself to post this and the previous post, today.  I”m not quite sure why, but I have been sort of at a loss lately for posting.  I guess a day passes without posting, and all of a sudden half a month passes.  After two people commented on my lack of posting, though, I decided I’d throw this down.


Btw, the company I work for is looking for a software tester with automated testing experience.  If you or anyone you know would be interested, drop me a line and I’ll make sure it gets funneled to the correct people.