EC Suite Joins The E-Commerce Calculator
December 21, 2007   link

I got an email this week from E-Commerce Suite (EC Suite) introducing themselves and asking for a spot on the E-Commerce Calculator. After a quick look at their site I was glad to oblige!

While not the cheapest option for a mISV they definitely have the most features - and all at the same low price. You can host your web site with a shopping cart, sell your products with your credit card of choice, include DRM and license keys and they'll even pay you weekly!

Here's what I wrote on the calculator page about them:

The newest addition to the calculator list is EC Suite. I must say that although they aren't the least expensive of the group they are competitive if all you need is a payment processor, but when you need more than that they simply blow the competition away. So many perks and bonus features are included in the same low rate that they are a true one-stop-shop for a micro ISV. I think you'll be amazed at all they offer.

If my list weren't alphabetical I'd put them at the top.

If you're looking for, well... everything in one package then check them out!


December 18, 2007   link

A lot of testing and feature requests have gone into this release and I think everyone will be happy with the results. There are a few bug fixes and a couple of new features that will probably make my non-English customers happy too. Yes - PopBox has been localized for your language!

Okay - so it was only two text fields, but it needed to be done.

If you use the pbSrcNL attribute then I would definitely get this upgrade as it fixes a major bug that somehow went unnoticed for months. If you use the roll-over feature you also want to get this upgrade. If you use landscape pictures you want to get this release. If you use PopBox at all you want to get this upgrade.

You'll like it. It's better than Cats. You'll want to use it again and again.

  1. Added the capability to pop images in a landscape format where the image is automatically scaled to the height of the browser but will extend beyond the width if necessary to support wide images (ditto for tall images).
    For most customers this is 100% backward compatible, but if you are using the PopEx method instead of the Pop method you should take a look at the parameters as they now have extra functionality. See the function definition for details.
  2. Fixed a bug that occurred when the pnSrcNL property was set to a relative path url. If you use the pbSrcNL instead of pbSrc then you need to get this upgrade.
  3. Added a work-around for a browser bug where the image would sometimes not revert on roll-overs when the mouse left the image. This fix requires a few more resources but is only enabled for the page when you use the onmouseover feature. There is a global variable, popBoxMouseMoveRevert, that you can set to false to use the old method instead if you prefer.
  4. Fixed a bug where the size of the image is incorrectly rendered during a revert if the command to revert the image is initiated prior to the image popping completely. This most often showed up on mouseover effects.
  5. Set the minimum value for the top left corner of the popped image to 0,0 if the image is dynamically positioned (you pass in null for the left and top). Most browsers tested had difficulty scrolling to the left and this will solve that problem.
  6. The "more" and "less" textual links in the caption are now contained in global variables to support other languages. Now you can set popBoxCaptionMoreText and popBoxCaptionLessText to "mehr" and "kleiner" or to whatever you desire - just keep it short or the length calculations will be off.

As always you can get the latest version from the product page and I've updated the documentation page accordingly too. In the following weeks I'll try to get it to print out correctly for those who don't like to view docs on screen.

I'm also touched by the number of you who have written in wanting to know how to send me money. Thanks, really. I've placed my official position on that subject in the FAQ page.

I have a good five days over the Christmas holiday to work on my next project so I hope to complete enough about it to blog about it here. Stay tuned...


PopBox Supports Links And Scripts In The Caption
November 06, 2007   link

Did you know you can place textual links in the pbCaption? This allows you to support things like "Buy Now!" links and "Add To Cart" links directly in the caption of the image.

It's a bit tricky but works wonderfully. I've written up a sample and added it to the FAQ.


E-Commerce Fee Calculator Update
November 05, 2007   link

I thought it was about time for an E-Commerce Calculator update since the last check was July 25. Only a few things have changed in the last 3 months.

We saw the demise of two vendors: Digital Candle and Virtually Free. I'm not sure if they just went out of business or were swallowed up by the Digital River juggernaut, but either way they're not around anymore.

I don't think anyone will miss Digital Candle, as they didn't really stand out as good or bad and there are plenty of others to choose, and I'm practically positive that no one will miss Virtually Free as they were easily the most expensive of the group. Sayonara.

Other than that I did notice this sentence on the Plimus fees page:

If you can find an advertised rate better than ours we will match it or beat it!

I've heard good things about their service, so you might want to call them up and see if they'll match Google's advertised rates (free). Tell them I sent you and I promise to publish the hate mail.

Frankly, I'd even be impressed if they'll match Google's advertised rates for 2008.


October 27, 2007   link

PopBox was recently mentioned in a few blogs that have a higher readership than mine, and from there it got stumbled, dugg, reddited and delicioused. Is that a word?

The point is that suddenly in the course of 24 hours PopBox went from 10-20 downloads a day to over 300 downloads a day. While I fully expect this to decrease again it has presented me with a much larger user base which means more support and more feature requests.

It also means more testing on more diverse systems under more unusual usage patterns. Thus the release of version 2.4 that includes one new feature and one bug fix:

  1. Added events that fire before the image is Popped or Reverted. Now if you have UI elements on the page (such as <select> drop-downs) that always render on top you can hide them prior to the image Popping and then make them visible again when the image Reverts.
  2. Fixed a sizing bug that occurred when multiple identical thumbnail images (with the same src value) each Popped to different large images.

If neither of these items affect your installation you don't need to update, but 2.4 is 100% backward compatible with 2.3.

I've also spent a little more time enhancing the Quick Start and FAQ page to better explain some of the features and how to accomplish common tasks. One of the biggest complaints that I read about on one of the blogs was that they wanted to use the "title" attribute instead of the "pbCaption" for the caption of the image.

Actually the fallback to title if pbCaption doesn't exist was built into the caption capability from it's initial release in version 2.1, but they're obviously having difficulty finding where it says that so I added it to the FAQ page. Check it out!

More fun stuff to come soon!


MS SQL Server Variables in Stored Procedures Have No Scope
October 24, 2007   link

I know what you're thinking - yes they do. But really they don't.

"GLOBAL" and "LOCAL" don't complete the picture. A globally scoped variable is accessible from a stored procedure that is called by the first, and a locally scoped variable is only accessible from within the same stored procedure. But that's really pretty inadequate.

Can you tell me what the final result of this script will be?

declare @str1 varchar(50)
set @str1 = 'This is a '
declare @strResults varchar(50)

while @str1 <> null begin
declare @str2 varchar(50)

if @str2 <> null
set @str1 = null

if @str2 = null
set @str2 = 'test.'

set @strResults = @str1 + @str2
end

select @strResults as [Results]

If you said 'This is a test.' then you didn't look very hard.

If you said there would be no result because it would never leave the while loop then you correctly understand scoping of variables as used in most modern languages today. But you'd still be wrong.

The correct answer is null.

If you're shaking your head you had the same reaction I did when debugging a production procedure a couple of weeks ago. The declare @str2 varchar(50) only runs the first time through the loop. The second time it already exists and retains its value of 'test.' so it sets @str1 to null which ends the loop.

Of course when you add null and 'test.' you get null.

Next time when you think about scoping variables in TSQL remember to declare your variables outside the loop or explicitly initialize them to the value you want instead of relying on them to be null. You'll be much happier with the results.


September 20, 2007   link

This is just a small release to fix a bug in the PopBar where it wouldn't display if the image id attribute wasn't set. If you set your id attribute on your images then you wouldn't have experienced this.

I did discover something interesting though that you may want to know about if you do dynamic image creation in javascript: the variable returned from document.body.getElementsByTagName("img"); is a true pointer and not a copy of the array.

Why does that matter? When I create the PopBars I'm iterating though this array and checking each image for the PopBar attributes and creating the PopBar magnifying images as an overlay on the original image. When those overlays are created where do you think they go? Right into the document.body.getElementsByTagName("img"); array!

So for every image that has a PopBar image another image gets added to the array. That's another image my loop is querying for PopBar attributes that don't exist. This is just inefficient so I've instead copied the original array and am now operating on just the copied pointers. As a result the PopBars get created faster and I'm happier - and so are your visitors.

I really am working on other stuff too - I promise! I've got an article coming out in the next couple of days with more to come shortly thereafter.


PopBox FAQ is Now Online
August 30, 2007   link

I finally got over multiple colds and being really swamped at my day job so I could write up the Frequently Asked Questions page for PopBox. It's got quite a few answers to questions I've received about the product.

If you don't see your answer there please feel free to email me and I'll do my best to respond in a timely manner.


E-Commerce Fee Calculator is Now Dynamic
July 25, 2007   link

Over the past month I've received email from Avangate and Plimus requesting that I make changes to the E-Commerce Fee Calculator to make it more dynamic.

Many vendors do indeed have different pricing structures and since the calculator is cross-linked now I've been getting a lot of traffic to it, so it seems only fair that I make it more accurate. So as of today you can get true accurate pricing from the calculator without having to go to the vendor web site to make sure the percentages fit for your product.

As an aside it's nice to know that those two vendors have their fingers on the pulse of the mISV community enough to find my meager web site. That alone makes them worth a look.


July 20, 2007   link

This release of PopBox is just a bug fix release that makes it far more stable on most browsers, especially FireFox/Mozilla. There were a couple of nasty bugs that I didn't catch because my pages were loading too quickly on my development box and I didn't have time to see the problems of random clicking prior to completely loading the page.

The biggest bug found was pointed out to me by Richie Hindle of Entrian Solutions where the image would display if clicked prior to the page completely loading, but then wouldn't if clicked again after the page finished loading. Now I'd call that a bug!

At least that only affected the 3-4 people out there using FireFox. <duck>Just kidding!</duck>

Big thanks to Richie for going so far as to even create a Flash video of the bug so I could really see what he was seeing. It made tracking the problem much easier. If he puts that same level of detail into his other work then I'd say his products and services are certainly worth a look.

Another FireFox/Mozilla bug was found and fixed where the wait image wouldn't display if the image was clicked prior to completely loading. I detailed this in yesterday's blog.

And in more wait image wierdness it wouldn't disappear if you tried to pop the image multiple times prior to it completely loading. That's fixed too.

You can always see the full revision history on the documentation page.

Thanks to all for the support and comments. I have gotten a question or two on my software experiment starting next week, but I'm not telling anything yet. You'll have to wait. :)


Existence is More Than Just True/False
July 19, 2007   link

I learned a valuable lesson this week while hunting down a tricky bug in PopBox, and I feel silly to have not known it already.

In script it's a common task to check an object to see if a property exists on it prior to trying to use that property. If you do any cross-browser work you know exactly what I'm talking about, but for those that might not I'll give you an example by showing you the line I used to check if an image was fully downloaded for display:

var isReady = (objToPop.readyState) ?
   (objToPop.readyState == "complete") :
   ((objToPop.complete) ? (objToPop.complete == true) : true);

For Internet Explorer an image tag has the "readyState" attribute that is set to "complete" when the image is fully downloaded, but Mozilla browsers, and other W3C standard-bearers, use the "complete" attribute.

Testing for existence is fairly simple between the browsers - you just see if the property exists with a simple check like
if (objToPop.readyState) { do something }

This is actually a shorthand way of writing
if (objToPop.readyState != 'undefined') { do something }

But there's a big problem with using the shorthand syntax in this instance on Mozilla browsers. While IE's "readyState" is a string, Mozilla's "complete" is a boolean. In the sample above Mozilla browsers would always return true.

The correct way of checking the image state (in longhand for clarity) would then become this:

var isReady = (typeof objToPop.readyState != 'undefined') ?
   (objToPop.readyState == "complete") :
   ((typeof objToPop.complete != 'undefined') ?
   (objToPop.complete == true) : true);

As you may have guessed I will be releasing another version of PopBox tomorrow with this bug fix included, so all you FireFox fans will finally get to see what the spinner wait icon looks like.

Sad to say, but there was an even larger bug in v2.1 that caused some really bizarre behavior with Mozilla browsers. But that one got fixed too and you should have a much more stable version tomorrow.

Thanks everyone for your feedback! I'm getting a lot of email and I appreciate your kind words. There have been a number of questions regarding functionality choices and tech support, so I will be putting up a FAQ page in the next couple of days also that should go a long way to answering your questions about PopBox.

I'm excited about starting my market/software experiment next week. Stay tuned...


July 16, 2007   link

I'm releasing PopBox 2.1 today. I've put in pretty much every requested feature plus a few I thought of myself and I can't think of what to do with it next. I suppose someone in the user community will come up with something.

It will be nice to get back to writing some articles and not-free software also. PopBox has been a fun project and a good learning experience, but I have a few other software projects that I want to release this year and they're all in a half-finished state. It will be nice to finish them too. Even so - if you have PopBox suggestions I am still open to hearing them.

Here's the list of new features in PopBox 2.1:

  • Added the ability to display a caption for your images. If it's too large to fit on one line it automatically renders with an expanding capability.
  • Added a "pbSrcNL" attribute to the <img> tag that allows for a different image to be used for the Popped image that is NOT preloaded. So if you'd rather the large image download when the user clicks this is the attribute to use.
  • Fixed the stylesheet to display custom cursors in FireFox also.

It may not look like much, but it took some thought to get the caption to work correctly and I didn't have much time during the week to work on it. A couple of bugs were fixed also - one of them fairly significant. You can see the full revision history on the documentation page.

Remember to send me the url where you're using PopBox! When I get enough of them I'll create a page with the list. That's free advertising for you and a nice customer testimonial for me. Win-win baby. Win-win.


Previous   Latest   All   Archive   
Computers Blogs - Blog Top Sites