SRSS Troubleshooting

Data fields won’t refresh or error.

Try to refresh the data by right clicking on the data sources and click refresh data. If it still doesn’t work, delete the data cache file in your solution for the file.

Error about a field not existing

You’re probably using the field in an expression somewhere

Takes forever to view the design tab, without even setting any input parameters

It’s trying to be smart with the variables and design different executions. Assign middle-man variables at the very beginning to use.

@RealParameter = @sprocInputParameter

Copyright and You

This article only covers the US copyright law and should not be used as a replacement for a lawyer.

What’s Copyright?

A copyright is the process in place to prevent “stealing” of work.

What does Copyright cover?

Copyrights can only cover tangible things, such as music, a video, an article, but not and idea. Nor can they cover a mere “list” of things, such as a the ingredients to a recipe, but if the recipe is more substantial and includes directions, then it can be copyrighted.

Copyright covers: derivatives produced of your work, distribution, display, and reproduction.

When does copyright begin?

Copyright takes effect at the very beginning – when you develop the material. You do not have to have the Copyright notice up for a copyright to be in place.

How do I place a copyright?

A copyright statement is pretty strict and must follow a certain format. A statement such as “Everything on this website is MINE!” is not a proper copyright statement and holds no legal water. Instead, you need to place a statement like this somewhere on your website, it does not need to be very large:

Copyright © 2011 John Smith

The copyright symbol can be created in HTML with:  

The word ‘Copyright’ is optional, but the copyright symbol is not. The year should list all years that you wish your work to be copyrighted. The year obviously can’t start before the work was created and cannot extend past the current year. There are a few deviations that can be made to this format, however, this is the most standard one.

Where to put the copyright notice?

The best place to put it is on the top-level of the website, for example, the home page. You don’t need to put it on every page, though you can if you like.

Someone stole my stuff!

There are a few ways to go about this. The first way is to kindly contact the person and request they take the work down (I strongly recommend also including a deadline). The second is to go to their webhost and complain, giving concrete evidence of the items in question and the person’s refusal to take it down. Most webhosts take copyright infringement very seriously. The third option is to find a lawyer.

What about contractors?

This becomes very tricky. Ownership of the work should be outlined in the contract that you signed. If it’s not, then it is safe to assume that the contractor is the creator of the work and retains rights to it.

11 Programming Mistakes You Don’t Even Realize You’re Making

Disposing Objects Properly

The ‘using’ syntax doesn’t get nearly the kind of exposure it should, and it’s all to easy to not understand which objects need to be disposed of properly, and for which it doesn’t matter. For example, I bet you realize that SQLConnections should always be closed, and disposed of, but what about StringWriter? It too needs proper attention.

using (StringWriter myStringWriter = new StringWriter())
{
	// . . .
}
using (SqlConnection con = new SqlConnection(myConnectionString))
{
	using (SqlCommand cmd = new SqlCommand(stringSQL, con))
	{
		// . . .
	}
}

Filling Your Database With Bad Data

User input. We love it, we hate it, and most of the time, it defies our expectations in one way or another. Here are some ways you probably aren’t properly taking care of your data:

  • proper capitalization of names
  • trimming leading and trailing spaces or zeros
  • verification of birth-dates : leap years, and improbable ages (a user registering who says they are 110 years old? Or, that they are only 2 years old?)
  • data encoding and decoding, especially for HIPA requirements
  • along the lines of multi-line or rich-textboxes, cleaning up HTML where there shouldn’t be any or removing MS Office meta-data from naive users’ copy-paste operations
  • length restrictions both in your code and on your database – so your FirstName field doesn’t take up VARCHAR(MAX) disk space

Shooting Yourself In The Foot With Lack of Documentation (Or Comments)

Simply put, the proper amount of documentation is near impossible to achieve. While we shouldn’t be writing novels in our code, they should quickly jar our memory when we need to revisit them a few years later. Whether it’s specification documents, contracts, or comments, it’s all to easy to fall short.

Slowing Your Own Server Down With Debug Mode

Debugging is great for us developers, but in production servers, it takes up extra processing power.

<compilation debug="true">

Unnecessary Post Back Operations

While intermediate developers are probably aware of the IsPostBack feature, new ones may not be, causing unnecessary operations – which usually involve database calls

Unusual Circumstances Bypassing Your Data Validation

Did you know that sometimes your submit button’s onclick or onclientclick method can be called even though your validators have errors? It is true! Checking Page.IsValid will save heartache and mysterious bad data.

if (! Page.IsValid)
{
// return to the page - the validators will now show their error messages
return;
}

Sluggish Server Responses Via UpdatePanel

Although it seems like magic, ASP.NET AJAX’s UpdatePanel has some necessary flaws, and it’s important to know them. When UpdatePanel updates asynchronously, it performs a postback by sending the data of everything inside it via HTTP. Now, if you have a lot of data inside your UpdatePanel, this update is going to be very slow.

Crashing Your Own Server With Session Data

If you’re storing a lot of stuff in your Session variables, be warned, this can act like a DOS attack on your server (OWASP, more info). Basically, SessionData takes up memory, and with enough users, it begins to act like a memory leak.

Query Variable Injection

Query variables can be useful, but also terrible, as it exposes data to the user for all-too-easy manipulation any dabbler can play with. SQL injection is also something to watch out for, however the fix for this can be as simple as using ASP.NET’s built-in parametrized queries.

Leaving Document, HTML Files Insecure

By default, IIS only applies your security settings (usually in your web.config file) to ASP and ASPX files, leaving any images, HTML, or other document files open for anyone who has the URL. To fix the problem, special settings can be applied to IIS.

Tying Your Database’s Hands Behind Its Back With Lack Of Keys and Indexes

MS SQL Server, and other servers, have out-of-the-box optimizations that make your queries run surprisingly fast. However, they all depend on the query analyzer being able to pick up on ways to speed up the query. Basically, when you don’t use keys or indexes, the query analyzer doesn’t know what to do with your data, and thus can’t really make any optimizations. As a result, it defaults to the most reliable way of doing things, which is consequentially, the slowest.

What To Do When Your Favorite Website Dies?

When The Website Is Abandoned?

There is very little you can do here, although sometimes encouraging the author/owner can revive the stagnation. Just knowing that one has a caring reader is often enough to spur on new efforts.

When The Website Is Down?

Before you send a nasty email to the owner about how important your fix is, perhaps you should make sure it’s not just you.

Is It Just You?

First and foremost, figure out if it’s just you with Down For Everyone Or Just Me?. If it’s just you, make sure your internet is working, refresh the page, restart your browser, try clearing cookies and caches. You can also do some tinkering like pinging, tracert, proxies, etc.

The Website Is Down!

Your options become limited. The most obvious is to contact the owner. The less obvious thing to do is figure out why. Check whois records to determine if the domain expired. Check network/site activity charts from third parties to determine how long the outage has lasted. If it’s an outage, chances are that the site will restore itself over time (the webhost is probably at fault here and they work behind the scenes to clear the problem).

There’s An Error That Makes The Website Useless

Your only option here is to try to find a workaround to accomplish what you are trying to do and tell the owner about it.

The Domain Expired

Most webhosts and domain registrars have policies in place never to share account details with anyone except the account holder – this also means that you cannot donate your own money directly to the hosting/domain company.

You can try to gather up any needed materials with The Internet Archive or even Google cached search results pages (click the ‘cached’ to view the cached page instead of visiting the dead website). If you can gather up enough old webpages, you may want to consider mirroring the dead site (creating a new website with the old website’s materials). For example, this is how Bonsai Kittens meme survives on the web, thanks to a generous fan.

What If There Was No Google?

Seriously. What if there was no Google? What would you do? Would you loose all faith in humanity and resign your existence?

For all practical, non-extremist purposes, the answer is No.

I believe that we humans are fickle creatures and no matter how much we once loved something, the moment it becomes more of a hassle than our patience allows, we flutter off to something else. This is basically the foundation of capitalism. When we don’t like or don’t have something, we move on.

What if there was no google

A Meme...

Google Did Well

I think it’s important to analyze what it was exactly that Google did do. From the get-go, Google aimed to be a service for people, not a service for wallets. They had a clean and clutter-free interface which has always been a major attractor of surfers used to cluttered, ad-stuffed pages that crawled along slowly in the loading bar because of it all. Getting away from the standard “corporate” views have really made Google shine. Consider that Google does not buy expensive behemoth servers, it buys in the tiny, cheap, and abundant to create their server farms. Consider that Google doesn’t release their products half-tested with plenty of bugs intentionally as some other software giants do. Consider that Google is free. Consider the last time you saw a Google commercial?

When Google matured as a search engine, it started creating more applications. Google mail, analytics, shopping, chat, sketch-up, you name it. The selling points on these apps were branding: Google – simple, easy, clean, and seamlessly integrated. Very, very rarely was the selling point that the service didn’t exist elsewhere.

Google didn’t do anything unique

We live in a world of knock-offs. Everything we have has been made over and over on different platforms, mediums, and all with varying degrees of quality and price. While there may be a “best” or “standard”, such as Adobe Photoshop in the world of photo editing, it is never the only option. GIMP, Sumo Paint, Aviary Pheonix, Paint.Net, for example, are only a few titles among the hundreds of choices for the software genre.

And so to, the principle applies to Google and all of it’s products. There are alternatives to everything Google has – mail, chat, docs, even YouTube all have competitors. And, many of these competitors look to Google for design, functionality, and integration decisions.

If Google Didn’t Exist

We’d still function. Perhaps not as efficiently but certainly with the majority of functionality and capabilities as we did before. I don’t know of any website that offers everything collectively that Google does, but I know that there are thousands of separate websites and companies that each compete with pieces of what Google does. We may have more logins and bookmarks at the end of the day, but we’d still survive.

The Web 3.0 is Social

Twitter, StumbleUpon, CNN, and Google+ all have one thing in common: they are social – and they are our future.

Once upon a time, the internet revolved around gray webpages with Times New Roman text, and if you were lucky, bold, italic, underline, Heading1, and Heading2’s applied appropriately to differentiate the wall-o-text into something readable. Back then, the internet was a world of information, digitized encyclopedias with the primary advantage of paper-cut free reading and CTRL-F. Only the uberest of geeks had their own webpages. But the internet got bigger and artsy people got involved and we now have much prettier websites, digital eye candy, and blogs for each us, our pets, and our alter-egos.

The internet’s not done changing, and just as technology evolves so does our information staging platform. While the internet will always retain information as it’s backbone, it’s now becoming more and more about you. And your neighbor. And your sister’s half-aunt’s third-cousin-removed’s daughter who loves cats a little too much.

The Internet : Social

The Internet : Social

Fantasize your news appearing and dissapearing on your homepages with the same standards, interweavings, and intricacies of high school gossip. Imagine your congressman not appearing on the first page of google results because the world has decided it is now vegetarian and your congressman is not. Fathom not being able to find information on diet and excercise easily because liposuction is far cheaper and more popular. What if you now choose which how-to article you will read based on how many thumbs up or down you see from each of your friends.

The internet is becoming personal. And that personalization will affect everything you now do or see. With the release of Google+, the social activity on their Face-Book-Alike will influence the search rankings and results of your queries. We don’t know how much it will influence Google’s proprietary black-box algorithm, but we do know that it’s just the beginning. This isn’t an inkling of elaboration on a failed product like Google Buzz. It’s the general direction of the internet.

The internet as a social game of arbitrary kudos

CNN launched it’s user-generated content back in 2006. Just as it’s increasingly difficult to tell if the article you’re reading is by joe-blow or an accredited journalist, so too is it difficult to pull ourselves out of our medium of communication and look at it from an uninvolved third person point of view.

Everyone likes to read the news in the morning, but we’re starting to like reading only the news we care about more.  Twitter caters to exactly that, news and updates from only the places you want to see it, with the competitive ‘game’ intertwined on being popular. The better things you tweet, the more followers you get (usually), thus encouraging better user-generated content.

The UI for the internet 3.0 is a social mask and rating system with ingrained ‘kudos’ for the competitive and feel-good sensation, whether it be a follower numbers, slave count, an abitrary number representing cookies and cakes,  helpfulness, zombie computers owned, or popularity. And just as eHarmony love-Nazi’s filter out what you can and cannot see, there’s nothing to stop your friends from becoming your ear-muffs and filters on the world around you.

The internet 3.0 is social.

Hotmail Finally Listens To Customers – Sort Of

Throughout the years, Hotmail was known as the recipient address for billions of spam emails, and for the frustration of thousands of customers. Supposedly, Hotmail ‘considers’ emails reported as spam, however, to most email users, such a black box is completely worthless.

Hotmail/Microsoft Live always replied with the same old answer to sobbing customers who couldn’t comprehend what was going on – just change your password. (Sometimes accompanies with advice to delete everyone on your contacts list). Unfortunately, the damage done was done and to expect Hotmail to ‘unsend’ the spam was an absurd thought to customer reps. Besides generic instructions dotted all over the web (if one gets in contact with customer service at all), Hotmail doesn’t act further on the matter, frustrating customers who expected an instant fix and a unique human voice to soothe their troubles in the modern day world of ‘right here right now’ that fosters our fast food chains.

Hey, My Friend's Been Hacked!

Hey, My Friend's Been Hacked!

Four days ago, Hotmail pushed out a crowd-sourced fix, called ‘Hey! My Friend’s Been Hacked!“, appearing as a menu option when a message is selected. The notification goes to the server for evaluation and puts a hold on that email account, guiding the human owner through the recovery process when they return. The approach is unique, and even works on other email providers, sending their servers the notification. Could this become a big dent in the war on spam prevention? Will other email providers pick up the pace and tend to these notifications, and better yet, implement a hacked account notification as well?

With this option, Hotmail also rolled out a huge groan – password enforcement. Users now need to choose a password that’s dictionary-attack safe.  Unfortunately, Hotmail is one of hundreds of credentials that just don’t fit on the sticky note hidden under my keyboard. I hope they beefed up their password recovery servers.