Paint.NET begets dotPDN LLC

I recently created an LLC for Paint.NET. I named it “dotPDN”, which is what you get if you say out loud the file extension for Paint.NET’s native file format, “.PDN”. After some quick iterating with a friend and some people on the forum, I even have a nice logo made completely in Paint.NET:

The “corporate website” (if you can call it that J) is at http://www.dotpdn.com. The text on the site, “our current projects include…” may seem to imply that I have other projects in the works. This isn’t the case, although I may resuscitate ListXP in order to have more than 1 project in that list J Which might be painful seeing as how the code sort of fell apart the last time I tried to compile it in Visual Studio 2005 … dang, I could really use that utility again in x64 land. Right click, List!

Some people might see this “dotPDN LLC” addition and think, “Oh my gosh! Did Paint.NET get bought out!? What’s going to happen?! Is it going to cost money now! Onoz!” Well, Paint.NET was not “bought out”, and I did not “sell out” to anyone. dotPDN LLC is my own Limited Liability Company and there will be no changes to how Paint.NET is distributed or developed. I’m still the one doing the coding, and I’m still the one calling the shots. The purpose of the LLC is mostly to serve as a legal shield for me: if someone wants to “sue Paint.NET” then they have to target the LLC and they can’t go after my personal assets (like my liquor!). I think it also has some tax benefits, but I’m going to let QuickBooks help me figure that part out.

Next up I need to set up various e-mail accounts, get a PO Box, and a new code signing certificate. Hopefully the next Paint.NET update you install will say that it’s digitally signed by “dotPDN LLC” instead of “Eric Brewster” J Total cost to set up the LLC was less than $1,000 USD, which includes going to http://www.mycorporation.com and checking the boxes to have them basically do all of the grunt work for filing and paperwork. I also had to buy a bunch of domain names for “dotpdn” and “dotpdnllc”.

Making Money With Freeware, Tip #2: Put Help Content Online

With Paint.NET v3.07, there was a subtle change in the release notes:

  • Changed: The help file / documentation is now hosted online. This has reduced the download size by more than 3 MB, and will also allow us to provide translations without ballooning the size of the download (each language would have added between 2 and 4MB).

This was firstly possible because the Paint.NET help content is just a collection of HTML pages that load in your browser. So I guess my first recommendation is to do the same: write your help content with a copy of your favorite web page editor. I use FrontPage 2003. Yeah, I know, I’m lame J But heck, I also use CVS, which means I’m “stupid and ugly” according to Linus Torvalds! (I’m not defending CVS. I just happen to use it.)

This change was made for many reasons, not all of which were necessarily listed in the change log, but all of which I see as advantageous:

  • Smaller Download Size. It dropped from 4.5 MB down to 1.5 MB. That’s an enormous savings.
  • Easy to Correct. If there is a typo or error, I can fix it and just upload the new version of the page.
  • Easy to Amend. If I want to add a new topic, I can now just write it up and click “upload”.
  • Localization. This ties in to the three previous ones, and I’ll discuss it below.
  • Statistics. I can now get usage data on the help content itself.
  • Search. Since it’s just a web site, it’s now easy to add a little search box on there.
  • Advertising. Now I can place Google AdSense or other things on the pages.

There is only one negative that I could think of:

  • Offline Access. It isn’t easy to access the help content anymore if you aren’t connected to the Internet. But you can mitigate this by offering an optional download for the small number of people who care about this. And also for anyone volunteering to do localization.

Almost all of these can affect your ability to make money from your freeware project.

Smaller Download Size

I’m going to publish a completely separate article on this because what I was typing got really long and I want to keep this post focused. Stay tuned!

Easy to Correct, Easy to Amend

Sometimes I get an e-mail from someone telling me about a typo on the website or in the help content. It used to be I’d have to file a bug in my Bugzilla database to make sure it got fixed before release. Now I just fix it, upload it, and I’m done. Sometimes I also get the itch to update or freshen pages (like I did with the Features page on the main website recently). This has less to do with making money and is more about simply being agile with your product.

Localization

Before, if I had wanted to publish the help file in all of the other 7 languages that Paint.NET is released in, it would have ballooned the download size to about 22 MB (at an estimated 2.5 MB per additional language). Most of this increase comes from screenshots which have text and must be done separately for each language. Most users only care about 1 of those languages so this ends up being an incredible waste of bandwidth. And on that note, most users don’t use the help content at all and so even downloading 1 language’s worth of it is a waste for them.

I can now also publish extra languages on a schedule independent of the main Paint.NET release, which relieves a lot of potential scheduling hassle. This is also directly related to having a smaller download size which, again, I will talk about later. And if you put advertising on your help pages then a user is more likely to see an ad in their preferred languages and thus much more likely to click on it.

Statistics

I now know how many people are reading the help file. I know which pages are popular. I know how many pages are read during each visit. Having good statistics is never a bad thing. Just sign up for Google Analytics and put the code at the bottom of your pages, although make sure it is tracked separately from your main website. Right now the Paint.NET help content is getting about 1,700 visitors per day, which is something I didn’t know before!

Search

There are a few ways to add search to your help content if it’s offline. One way is to use the CHM format, but the tools and utilities I had for managing this were excruciatingly difficult and painful to use. I absolutely hated it, so for version 2.5 I switched to normal HTML. Also, for cross-platform enthusiasts/purists, CHM either restricts you to Windows or forces you to find a different solution for your other target platforms. It just adds to the amount of time you have to spend managing your help content, and reduces time available for other things like drinking beer. Bleh to that.

Another way to get search is to write your own help system complete with original UI, indexing, and searching code (and that’s in addition to writing the content itself!). It’s definitely a challenging and fun direction to go in and you’ll learn a lot, but it’s also a liability in traditional software development terms. More code means more churn means more bugs, and which means less time to focus on the core of your project. Are you in the business of developing indexing and search algorithms? I doubt it. I prefer to let the
big
guns handle that stuff, and focus on what I do and enjoy best.

It’s easy to use something like Google Custom Search to add a search box if your help content is just a collection of HTML files that are hosted online. I only recently added this to the Paint.NET help file and now I really wish I had done it sooner. It isn’t a big earner in absolute numbers, but it’s always good to have another passive income stream – and those nickels and dimes really add up. (Small tip: Don’t look at your daily revenue numbers for inspiration. Multiply them by 365 and consider how they have affected your yearly income! J)

Advertising

Since putting the help content online, I have placed Google AdSense on the pages. I’m also considering using something like Kontera for in-text advertising links. You might think that the added advertising makes the help file ugly or less attractive, and you’d be right. But you need to ask yourself what the best release model is for yourself and your users:

  • Freeware. In this choice you give the software away for free. No ifs, ands, or buts. This is how Paint.NET was for its first 2 years. You won’t make any money at all doing it this way. I sure didn’t. All hosting costs come out of your pocket.
  • Bundling / Spyware / Adware. There’s also a lot of money in bundling stuff that isn’t related to your program. Irfanview, an otherwise highly rated program, optionally installs the Google Toolbar. Lots of other free programs try to install toolbars or set your browser’s homepage. I personally feel that is a dishonest way for the “bundlers” to get their software on people’s machines. This is actually a lot I could talk about on this subject in the areas of business, morals, ethics, etc. and I am planning on dedicating a blog post to it.
  • Shareware. Publishing your software this way is good and legitimate business, and might even be the right thing for your software project (it works for Patrick’s
    Bingo Card Software). You can make a lot of money with this strategy if your download and conversion numbers are high enough. But, of course people have to pay for the software which means you’ll have fewer users. Going in this direction also means you have to manage a business. You’ll have to worry about things like customer service (“I want a refund!”), buying advertising with AdWords or AdCenter, maybe hiring employees, etc. You also lose some potential for ubuiqity, which is important for some types of software (web browsers and image editors, for sure). I currently estimate that Paint.NET has 1 million active users. I regularly have people that work down the hall from me say things like, “Oh, you wrote Paint.NET? I had no idea, cool!” Do you think it would have such ubiquity if it were paid software? Not with my budget (time or money), that’s for sure.
  • Freeware, but with advertising outside of the program (website, online help file). NOW we’re talking! I personally believe that this is the absolute best user experience possible. Users get software for free and you get money so you can afford to manage its continued development. You don’t have to manage a business. If you want, you can take a vacation from the project but still be making money on it. People are used to seeing ads on the Internet. You won’t get any hate mail — I sure haven’t. You should also include a few smartly placed “Please Donate” buttons in the software itself.

I’ll even tell you how successful AdSense has been on the help file, even though I earlier said I wouldn’t publish any comprehensive data. Since Paint.NET v3.07 was released, I’ve made over $1,000 just from the help file. It’s been almost three months since I made this move, and I trust that you can do the math on that.

Conclusion

Putting the help content for your freeware project has almost no negatives. It’s a no brainer. Your download size will decrease, your download counts will go up, and you’ll have extra money in your pocket. Almost every software project is going to be different, so please don’t take this information as canon. This is what works for me, taking into account the direction I want to take Paint.NET and the way I want to spend both my personal and professional time.

Oh, and to keep the bandwidth use in check for your online help content, I recommend using PNGOUT. I’ve seen PNG’s drop anywhere from 5% to 50% in size using this thing! You can purchase a good front-end for it, PNGOUTWin, from Ardfry Imaging (they own PNGOUT). I personally use PNGGauntlet because it’s free, but it doesn’t run jobs in parallel so it runs a lot slower on my Core 2 Quad. Alternately you can use JPEG, but then all your screenshots look like crap.

Paint.NET is now reachable from www.paint.net

Ever since before the Paint.NET software project began in early 2004, the paint.net domain was redirecting to http://www.warrenpaint.com. This is the website for Warren Paint & Color Co., a paint manufacturer in Tennessee. That’s a pretty good domain to own for that type of business, eh? It’d be like owning “bikes.com” for a bicycle shop or something.

Fast forward to yesterday, and a lot of people are still typing in “paint.net” into their address bar in hopes of finding the Paint.NET software. Unfortunately for them, they have always been getting redirected to the Warren Paint & Color Co. website. This has brought some extra traffic to the Warrant Paint & Color Co. website, but the problem is that they’re also getting daily e-mails from people either asking where the Paint.NET software is, or saying mean things and accusing them of cybersquatting or search hijacking. It’s been a bit frustrating for them.

Next, fast forward to today. In order to reduce confusion around the domain and to cut the guys at Warren Paint & Color Co. a break from answering e-mails that should be sent to me, we’ve worked together to set up a simple redirect page. If you go to http://www.paint.net/ right now, you’ll see this in place now. It basically just presents the logos for both websites and says, “Why don’t you just tell me where you want me to go!” *

So from now on, when people ask you where to get Paint.NET, just tell them to type it into their browsers! No matter which box they type into (URL, search), they’ll find it.

Thanks to Jeff for setting up the redirect over to the disambiguation page. Also, thanks to Graham Laing for facilitating the matter.

* Seinfield reference.

Paint.NET Help / Documentation – Now Searchable!

I finally found/made some time and added a search box to the Paint.NET Help. It was pretty simple to do in all honesty, it’s just something that I’d been procrastinating for a very long time.

Plus, it took a bit to find the right program on Google’s page because the default “search stuff” in AdSense only lets you specify a domain and not a directory (I could not specify http://www.getpaint.net/doc/en and would have had to set up an alias such as http://help.getpaint.net). I had to find the “custom search engine” stuff that would let me also add in a block of Javascript to the website. I got there from google.com, clicking on “Business Solutions”, then “Web Search and Site Search”, then finally “Custom Search.” Then I had to go through some workflow to configure everything and link it to my AdSense account. Why wasn’t it just built in to the AdSense control panel to begin with!?

So, note to Google: please consolidate the search engine stuff in to one place in a way that makes sense to publishers!

Please excuse the awesome layout of the help file, I am definitely not a web developer …

Paint.NET Tutorial Spotlight: Make Realistic Eyes, by Ash

“Ash,” a member of the Paint.NET forums since December, has been impressing everyone with what he’s been capable of doing with Paint.NET. For starters, his avatar picture is this image:

And yes, it was made completely in Paint.NET! You can find the full size version, along with several other of his “100% Paint.NET” creations, at his website here: http://ashpdn.googlepages.com/

In any event, Ash has posted a tutorial on the forums titled: “Easiest way to make realistic eyes“. He makes use of the Shape3D plugin I mentioned before in order to produce the following:

Yes, this was created with Paint.NET! There aren’t very many steps required in order to make the eye, and you don’t even have to be very artistically inclined. The Shape3D plug helped a lot with the difficulty level, of course, but it’s very interesting to see plugins having such an enormous contribution to the utility of the program.

Here are some of the other noteworthy tutorials that Ash has published:

Paint.NET v3.10 BETA is now available!

You can get it at the website, http://www.getpaint.net/ , or from within Paint.NET by going to Help -> Check for Updates. Make sure that the checkbox, “Also check for pre-release (beta) versions” is enabled (Help -> Check for Updates, then click the Options button).

This release adds two new effects originally written by David Issel (“BoltBait”), support for the DDS filetype originally written by Dean Ashton, as well as many small bug fixes and some visual fit and finish.

  • Note: For the beta, the new features are only presented in English. The final release will have complete translations for the other supported languages.
  • New: Soften Portrait effect, by David Issel
  • New: Ink Sketch effect, by David Issel
  • New: DirectDraw Surface (DDS) file format support, by Dean Ashton. Improved from the original source code by optimizing the DXT compression library (“Squish”) to take advantage of multiple cores or processors.
  • Improved: Visual fit-and-finish for the Layers window.
  • Improved: Visual fit-and-finish for the close / ‘X’ button on image thumbnails.
  • Changed: The keyboard shortcut key for the Color Picker is now ‘k’. This makes it so that the toolbar option, “After click: Switch to previous tool”, is not useless for those using the keyboard shortcuts.
  • Fixed: Pressing Ctrl+[ no longer cancels out of drawing a line/curve, but instead decreases the brush size by 5 as expected.
  • Fixed: Ctrl+clicking on the brush size +/- buttons now changes the brush size in increments of 5
  • Fixed: Save Configuration dialog would “creep downward” from its last position every time it was opened again
  • Fixed: TGA codec now saves the # of alpha bits to the image descriptor byte. This was causing some other applications to load TGA files saved with Paint.NET as solid black images.
  • Fixed: Clicking the ‘X’ to close the Layer Properties dialog was not reverting changes made to the layer while the dialog was open.
  • Fixed: Installation will not proceed unless Paint.NET is closed, and will also not allow Paint.NET to be opened until installation is completed. This helps to ensure a fully coherent and complete installation or update.
  • Fixed: In Vista, it was possible to crash the Save As dialog by typing a filename that was too long.
  • Fixed: In Vista, it was possible to crash the updater if you let the UAC prompt time-out.
  • Fixed: It was possible to crash Paint.NET on some systems by clicking on a tool in the Tools window while the “Save As” dialog was open.

Enjoy!

Paint.NET v3.10 Visual Tweaks

I’ve always been a stickler for good looking UI. To that end, I actually have very positive things to say about a lot of the work Apple has done in this space – a few people at work have even jokingly called me a traitor because of my iPhone J

With the original release of Paint.NET v1.0, one mantra I applied to any UI was, “If it isn’t good enough to look like it could be in Windows or Office, then it isn’t finished.”

Oh man, you should have seen our horrible and ugly File->New dialog before I laid down the law on that! J Chris Trevino was a bit fed up with me the day I forced him to do fit-and-finish on that dialog. In the end he agreed it was very much worth it though. (This was over 3 years ago.)

The point is, I made darn sure that the dialogs in v1.0 had good looking and consistent spacing, alignment, ordering, etc. Over the years I’ve continually made changes to Paint.NET to improve its aesthetics in ways that either didn’t hamper, or that even improved, functionality. For 3.0 I spent a lot of time just playing with the color scheme in the toolbar in order to find something that looked great in Windows Vista. I settled on solid white – go figure! A UI that is pleasing to the eye is much more satisfying to use than another UI that is otherwise functionally identical but that is an eyesore. Every once in awhile I’ll see some other application where it’s obvious nobody spent anytime worrying about this stuff, and it’s painful. I’d write more but it’s Friday and I really need to go drink a beer.

Anyway, I could go on and on about this, and hey maybe I will another time (who wants to hear my thoughts on UI and UX* design? Anyone?). The real meat of this post is that I just wanted to show two quick changes to the UI in Paint.NET v3.10 that don’t change its functionality at all, but that do enhance the user experience by way of just being better looking. In UX, I consider these changes to be two “inches” worth of progress. They aren’t changes that would necessitate a release by themselves, but it was fun to throw them in for this upcoming v3.10 release.

The Layers Window – Finally, Some Fit ‘n Finish

The Old:


The New:

    

The differences are subtle, but it fixes something that’s nagged me for awhile (namely that the Layers window looked like it was from 1995). First, you’ll notice there is no static-sized border around each layer’s preview area. The black 1-pixel border is now fit to the size of the layer, and the standard drop shadow is also added. This is something I have really disliked for awhile because the old borders “clumped up” on the vertical edges so we ended up with a 2 pixel vertical border, but a 1 pixel border on the horizontal edges.

Second, the blue selection highlight extends the full width of the layer row. The checkbox area in particular now looks more correct.

The Image List – Okay, I made the ‘X’ look better

The Old:

The New:

So I’ve had a few (two or three) complaints about the rendering or aesthetics of the close/’X’ in the image list. I didn’t really notice or care much myself, but I was in a good mood about a week ago and figured, “Why not?” So I adapted the ‘X’ image that’s used for Edit->Cut and that I also saw used in some of the stock Vista Sidebar Gadgets for their “close” buttons. I think it looks a little more stylish, although it might not be noticed by most people. That’s ok. For future releases I’ve also got my eye on the image list dropdown icon (the white-with-black-outline down arrow in the “new” screenshot right above), and the “this image has unsaved changes” orange asterisk.

Like I said, these are minor changes that do nothing to affect Paint.NET’s functionality or ease of use. Hopefully they will add one or two points worth of “warm fuzzies”. And hey, those warm fuzzies add up!

Stay tuned. I’m hoping for a beta release of 3.10 this weekend!

* “UX” stands for User eXperience. It’s a term that includes the user interface and the experience of using it as a complete unit. For example, you might refer to the workflow of pasting an image as “a UX”. You could say that you “improved the UX” while in fact you may have removed some UI.

Quad Core is finally affordable

I just noticed that the price has fallen to $299 for the Intel Core 2 Quad Q6600 (2.4 GHz) processor at newegg. If you’re looking for the best system to run Paint.NET on right now, this is a great place to start! I’ve personally been using the Intel Core 2 Extreme QX6700 for my development system since December, and it’s awesome for those of us who are writing and optimizing multithreaded code. If you’re a developer then I highly recommend getting one.

P.S. I just finished up the integration of the DDS plugin for Paint.NET v3.10. And then I used OpenMP to optimize it for multiple threads: it is much faster on a dual- or quad-core system now! I’m still shooting to have a beta out by the end of the month.

Disclaimer: This is not a paid endorsement or advertisement or anything. I’m not receiving any money from newegg, Intel, or anyone for that matter, for this post.

Paint.NET v3.10 Preview

I’ve been working slowly* on what I’m currently calling version 3.20, but in the meantime I decided to put out a small feature-based release. It will be called Paint.NET v3.10, and will include a few new effects, support for a new file type, and of course a few bug fixes. This is the first time that a Paint.NET update will be incorporating code from the community, and I’ve got high hopes for this release. Here’s what’s planned so far:

Megan Fox and Mandy Moore guest star in this blog post. Here are the original images for the modified ones that are shown below:


Soften Portrait – This is based on the “Portrait” effect originally written by BoltBait (aka David Issel). Its implementation is inspired by the Orton Effect that has been popular in photography for quite some time.


Ink Sketch – Again, another effect by BoltBait. I haven’t finalized the icon for this one yet. I’d really like a good quality “ink pen” graphic but haven’t really been able to find one yet!


DDS file type support – This is basically a straight bundling of the DDS File Type Plugin by Dean Ashton. DDS is short for “Direct Draw Surface” and is a file format used by many games and also by the XNA SDK for the XBOX 360. It will install as a few separate DLL’s in the FileTypes directory. This way Dean still has the ability to issue his own updates independent of Paint.NET’s updating schedule.

I have also made some performance tweaks to some of the other effects, with about a 5-15% increase for Oil Painting, Frosted Glass, and Gaussian Blur.

Paint.NET v3.10 should be in beta soon, with the final release by mid-August.

* Hey even I have to take things easy once in awhile J

Making Money With Freeware, Tip #1: Have a Donate Button

I don’t really have an outline for this series so I’m really hoping that the “#1” up there in the topic doesn’t stand by itself for too long. Anyway, like I said earlier when I decided against disclosing revenue figures for now (either because I’m humble or because I’m a chicken, take your pick!), I will instead offer up bits of information that I believe have helped Paint.NET to become strongly profitable.

The first tip is simple, and is a play on statistics that is very easy to understand:

Have a Donate Button.

Studies have confirmed* that a website with a PayPal button on it makes as much or more as the same site that does not have the PayPal button.

But really, think about it. If you don’t have a way for your audience to send you money then they probably won’t send you any. You will make $0. However, if you give them an easy way to send you money then you will make $0 … or you will make more than $0. I know, I know, it’s a silly logic pun from a nerdy Computer Science graduate, but it’s also strongly motivational. Hidden in that little phrase is a corollary: “the worst that could happen is that you make money.”

John Chow made $219 last month just by having a silly link at the end of every blog post that says, “buy me a beer!” If he didn’t have that link there then I promise you he would have $219 less in his pocket right now. It would not be made up for from any of his other income streams.

While I was in college I wrote a little freeware app called ListXP and it had a donate link in it too. I maybe made a grand total of $200 or $300 over the course of 2 years. But guess what? Without that PayPal button I would have made a grand total of zero dollars. Yup, that’s right: $0.

I look at these things from a purely statistical standpoint, which is really how (many?) businesses operate. Just like free-trial-to-paid conversion rates, freeware with a PayPal button can have a quantifiable download-to-donation conversion rate. I will say that the conversion rate for Paint.NET is at least an order of magnitude lower than what Patrick has for his Bingo card software (his is about 2.5%) (Edit 2:11pm PST: Sorry, had the wrong URL for that link!). But guess what? My audience is many, many orders of magnitude larger. I don’t any advertising, and I don’t have to ship CD’s or worry about refunds, so my profit margin is also higher.

Patrick’s software was downloaded about 1,000 times last month, which is pretty phenomenal for niche software. By my best estimates, Paint.NET was downloaded about 400,000 times last month. And every time I push out an update, the user is reminded about their ability to donate: in the installer, for about 30 seconds while it does the little “Optimizing for your system” dance, it shows a little banner that invites them to donate. I get a big spike in donations for the 2 weeks following an update … coincidence? So here’s the second part of my tip:

Remind your audience about donating.

Just don’t be in their face about it or be annoying. Because, well, that’s just annoying. Paint.NET has Donate buttons on the website, in the Help menu, in the installer, and in the Save Configuration dialog down in the bottom left corner. These are the areas that I believe bring the least amount of annoyance balanced by the highest amount of conversion. I’m not sure if I’m right yet though because I have yet to do a thorough analysis and comparison of how many clicks they are all getting (each one goes to a different redirect page, which I can then track with standard web stats).

Anyway, it’s important to remind people about donating to your freeware because donations are something that don’t come immediately, unlike a purchase of shareware. A person probably won’t donate unless they’ve already exercised good value from what you’ve given them (as opposed to buying a candy bar where I pay for something I’m about to get value from). In the case of Paint.NET, the donation reminder during upgrade serves as a good place to politely prod the user towards thinking, “Hmm yes, I have received good value from this free software. I like it. I think I’ll go ahead and donate!”

And back to the statistics angle, with regard to conversion rates. Patrick and I both intuitively know that if our download numbers go up that our conversion rate will stay about the same. This means that all we have to do to earn more money from this is to find ways to ramp up the download count, and our revenue will increase linearly. Patrick has experimented with various advertising and fulfillment channels, and is getting a grasp on what works for his product and audience. For Paint.NET, I need to make sure that I quickly say “yes” whenever someone e-mails me asking permission to include Paint.NET on a magazine CD. I also experiment with the website content to see what brings in the most search engine traffic. Et cetera. Lather, rinse, repeat.

I’ve used this basic strategy in a few other places, and it works great. It’s also fun. One time when I was still in college I was getting coffee and I asked the barista girl if I could have it for free. She said “Sure.” So I saved $4 or something. Yesterday the guy who is 4 ranks above me in management (he’s my manager’s manager’s manager’s manager?) gave me a $4 “coffee-or-snack” cafeteria coupon because I said, “You know what you could do with that? You could give it to me.” I was half joking and mostly just in a good/confident mood, but he shrugged his shoulders and said, “Ok.” And then I thanked him, because that’s what you do when people give you things for free.

You won’t get something for free if you don’t ask for it, and the worst that can happen is that you won’t get it. When you buy a car, make sure that you don’t pay the sticker price without a fight. And when you put up a website, the absolute worst thing you can do is to not monetize it.

* Not really. I just made that up.