PAD : Java Glossary

The CurrCon Java Applet displays prices on this web page converted with today’s exchange rates into your local international currency, e.g. Euros, US dollars, Canadian dollars, British Pounds, Indian Rupees… CurrCon requires an up-to-date browser and Java version 1.7 or later, preferably 1.8.0_11. If you can’t see the prices in your local currency, Troubleshoot. Use Chrome for best results.

Introduction Redirecting From Your Old 3.11 PAD To Your New 4.0 PAD
PAD 3.11 The Chicken and Egg Problem
PAD 4.0 Sample Rant
PAD 4.0 Fields False Advertising
Internationalisation Futures
PAD Tips X.25
Certification Links


PAD (Portable Application Description) They contain contact information about the author, details about a program for sale and its price, possibly free, in a standard XML (extensible Markup Language) format. Android use something similar, but much less elaborate called a AndroidManifest.xml.

PAD 3.11

In the previous PAD 3.11 spec, you typically created your pad files using desktop utility call PADGen.exe and tweaked them with a ordinary editor, or with custom programs. You then submitted them to various PADSites. You could do this manually, or with the assist of utility like the Mini Pad Submitter or submission services.

The format allowed for nonstandard extensions. For example, PADTube and PADMaps allowed you to submit just one of your PADs (Portable Application Descriptions) to a PADsite and it would automatically submit your whole stable. RoboSoft provided information to help the RoboSoft automated submitter. NewsFeed gave information about your RSS feeds.

PAD 4.0 Sample

PAD 4.0 Fields

The fields have changed slightly since 3.11. The PADTube and PADMaps extensions are gone. PAD signing is gone, replaced by certification and hosting verified PADs at ASP (Association of Shareware Professionals). https: links are now acceptable. The main difference is the way you create your PADs, (using the ASP web editor). You no longer post you PADs or submit them to PADsites. ASP handles this for you for a fee.

Most of the fields are self explanatory:

Tricky PAD Fields
Field Notes
Company_UIN Unique company ID. Automatically assigned by ASP .
Product_UIN Unique program ID. Automatically assigned by ASP .
Search_Engine_Search_String ASP sets this field to blank. You cannot edit it.
Search_String ASP automatically sets this field to the program name. You cannot edit it.
Search_String_Unique ASP automatically sets this field to the program name. You cannot edit it.
Backlink ASP automatically sets this to blank. You cannot edit it. URL (Uniform Resource Locator) of page where you pander to PADSites, putting backlinks to them on it. Here is mine
PublisherID Another unique company ID. Automatically assigned by ASP.
BrandID Yet another unique company ID. Automatically assigned by ASP.
AppID Another unique program ID. Automatically assigned by ASP
Program_Name Human name of the program. Do not embed the version number. This is the long name, usually several words. The exact wording must also appear on the order page and on screenshots.

Program version number, usually containing a decimal point. I suggest you wrap the version number in comments like this to make it easier for the AppVisor validator to find the version.

<!-- PAD Program_Version for Canadian Tax Calculator -->4.4<!-- /PAD -->

The Appvisor people do this check manually now, which results in long lags to get PADs approved. I have suggested to them such a tag would let it be automated. You can get a jump on it.

Program_Cost_Dollars In US dollars. No $. No USD.
Program_Install_Support See Installer for utilities to provide install/uninstall services for your program.
Limitations You must insert the text No limitations if you have no crippling, trial timeouts etc.
File_Size_Bytes You cannot edit this field. Not the precise size of the entire distributable zip in bytes! ASP automatically calculates it as File_Size_K * 1024. Automatically generated by ASP.
File_Size_K Size of the entire distributable zip in K, i.e. kilobytes = distributable size in bytes / 1024. Truncated, not rounded. If it is not bang on, you just get a warning. I have made four attempts so far to convince ASP to maintain this field automatically since it may change every time you do a build requiring manual PAD adjustment, revalidation, resubmission and reacceptance.
File_Size_MB You cannot edit this field. Not the integer size of the entire distributable zip in megabytes! ASP automatically calculates it as File_Size_K / 1024 rounded to two decimal places.
Program_OS_Support Which OS (Operating System) es will the program run under.
Don’t forget to add Windows 8. The definitive list is posted as part of the PAD Specifications. Here is the list in a somewhat more readable form that it appears in the XML-based PAD specification. Some sites still expect the old PAD spec list. I email such sites to prod them to update to the current spec.


Even though this field is deprecated in the spec, the AppVisor editor includes it. Despite its name, this is the broad category for the program. The definitive list is posted as part of the PAD Specifications. Here is the list in a somewhat more readable form that it appears in the XML-based PAD specification.

Program_Category_Class Category class and subclass specified as a single field with :: separating the two parts. The definitive list is posted as part of the PAD Specifications. However submission sites usually leave out some of the categories and add their own. Here is the list in a somewhat more readable form that
Keywords Make sure this field has no trailing punctuation. PADGen does not enforce this but some submission sites do. You can provide this list in various other languages.
Char_Desc_450 This field must contain no newline characters, (embedded, leading or trailing). Unfortunately you can’t see them in the PADGen editor. To get rid of them, I often resort to editing the *.pml file with SlickEdit. PADGen is just being futzy trying to protect you from relying on alignment that will be reflowed by a browser displaying the field. XML permits newlines wherever you would have a space. You can provide this text in various other languages.
Char_Desc_2000 This long description should be complete in itself and may contain newline characters. It must be at least 500 characters long. The end user will see only one of the descriptions. It is not a continuation of Char_Desc_250. There is no point is carefully aligning your description. This is XML . It may be reflowed. Avoid any high ASCII (American Standard Code for Information Interchange) characters or entities. You must use pure ASCII in the English because some PADsites are not UTF-8 compliant. You can’t count on those displaying the file rendering it properly. Avoid any { } & < > characters even if they are not being used as HTML (Hypertext Markup Language) or XML entities. Some sites reject PADs with URLs (Uniform Resource Locators) in this field, even ones not hyperlinked. You can provide this text in various other languages besides English.
Application_Info_URL The URL of where people can go to learn more about your product. Often it is the same as the Application_Order_URL.
Application_Order_URL The URL of where people can go to order your product or the equivalent for free products. This is perhaps the hardest field to get the Appvisor staff to approve. First triple check the PAD points to the precise URL for that product, not just an URL you can navigate to get to it. I think they check it by eye. So it safer to have one product per page or not too many other distracting products. They sometimes complain if this URL contains a #TARGET. They don’t seem to like single word program names, but that is not a hard and fast rule. What is important is that the progam name in your Program_Name field appear exactly as written somewhere on the order page and not part of a longer name. I suspect it is wisest to enclose the name in some sort of <span or <td tags so it is clearly single a phrase.
Application_Screenshot_URL *.png, *.jpg or *.gif, not *.bmp. Should be 200 × 200 to 800 × 600. The exact name of the program must appear on the screenshot, and the version number must match! So you have to update your screenshot every time you update the version, even if the screen looks identical except for the version number.
Application_Icon_URL *.png, *.jpg or *.gif, not *.ico. Should be 32 × 32. Some sites accept *.ico files, but that is not kosher. A few sites refuse *.png. A PADSite should make a copy of the icon, convert it to their preferred form and serve it locally. This prevents malicious substitution of icons with pornography or advertising.
Application_XML_File_URL full URL of where the master copy of your PAD *.xml file is posted. ASP automatically generated this to where your finished PAD is posted on the their website.
Primary_Download_URL full URL of where to download the program.
Secondary_Download_URL Another full URL of where to download the program in case the first in not-available. Having multiple download mirrors gives your program extra status. There are four download URLs in total: Primary_Download_URL, Secondary_Download_URL, Additional_Download_URL_1, Additional_Download_URL_2. Presumably you could also use them to distribute different versions of your program, e.g. with/without source, with/without installer, Windows/Linux, Jar/Jet… You could also use separate PADs.
Distribution_Permissions Free form text to describe licensing, restrictions and purchase options.
EULA Free form text to the end user license agreement, e.g. LGPL (Lesser General Public License), public domain, non-military use only. There is no formal encoding of the open source licence.
ASP_Member_Number Your ASP member number. If you ever import a PAD without this number embedded in it, AppVisor will remove your  ASP number from all your PADs posted at ASP. So insert it in all your old PADs .
NewsFeed Newsfeed that describes updates and relevant announcements about your software.
DynamicPad DynamicPAD is a complicated scheme where you write PHP (Pre-Hypertext Processor) scripts to customise PADs dynamically for each consumer of them.


In the PAD, you can include translations of the descriptions in dozens of languages, and prices in dozens of currencies. You could prepare translations with Google translate or hire a translation service. There are three problems with doing this:

  1. You are not able to maintain the translations yourself even when you make minor changes.
  2. When your non-English speaking users download your program, they will discover the documentation is available only in English. You pulled a bait and switch on them.
  3. If your users have questions, you will not be able to understand them.

PAD Tips


The ASP annual certification fee is $36.00 USD . It is free for the ASP members and customers who order the Pro/Ultimate promotional package. The fee covers all the changes you make to your PAD during the year. This is the cost per pad file. If you have 3+ pad files you are better off to sign up for the $100.00 USD annual ASP membership. They accept payment through PayPro Global Inc. which take credit/debit cards and Paypal. PayPal It is odd to charge per PAD since the verification work needs be done only once.

Do you have to submit an application’s PAD file to the download sites? Shouldn’t the download sites pick it up automatically once you publish it in the PAD Repository? They are allowed to. But, it doesn’t mean that they have to. You can pay to have ASP send it to them. I checked with ASP and discovered that you are permitted to submit them yourself, but you could muck up the master distribution if you are not careful. Basically you have to make sure you master PAD is on the AppVisor site and your PAD points there.

Certified PADs have a few extra fields like this:

The certificate document referred to says nothing but the company and author. There is no trace of a digital signature. There is no attestation of being virus or malware free. There is no attestation of any kind other than the pad is certified, leaving certified stubbornly undefined. I have asked ASP twice what it attests to. They have not replied. I gather all they are certifying is that they checked that the PAD was indeed composed by the company and author claimed (which is roughly all code signing certifies).

Signing pads yourself with your own code-signing certificate has been discontinued. If all PADs are downloaded directly from ASP , there is no opportunity for them to be tampered with. The advantage of the new scheme is it does not require small authors to buy an expensive code-signing certificate each year.

You don’t apply for certification until after your PAD has been approved for publication.

Redirecting From Your Old 3.11 PAD To Your New 4.0 PAD

After ASP accepts and posts your PAD, it will reside at an URL something like this:
Your new 4.0 pad has this URL automatically embedded in it as the <Application_XML_File_URL> field. You are not supposed to replace the 3.11 PAD posted on your own website with this new 4.0 pad. It is impossible to set up the redirect to the new pad in the usual way with:
<meta http-equiv="refresh" content="10; URL=">
because the PAD 3.11 file is a *.xml and only *.ext files can have <meta headers. If you have control of the configuration of your HTTP (Hypertext Transfer Protocol) server, or if you ISP (Internet Service Provider) is unusually friendly, you can arrange the redirects in the configuration tables of your web server. I have asked ASP to consider three alternatives:

Another possibility is to compose a complete list of redirects in the format your HTTP server likes them, and email them from time to time to your ISP to include to reduce his work to a minimum. See HTTP redirects for what that list would look like if you use an Apache server.

ASP has not yet got back to me on what they want us to do. So I put new PAD 4.0 files where the PAD 3.11 files used to be, and composed a set of Apache HTTP Redirects and sent them off to my ISP. He has not responded either. I adjusted my ANT (A Neat Tool) build system to track whether each project is using 3.11 or 4.00 PADs and do some consistency checks.

The Chicken and Egg Problem

In the olden days of PAD 3.11, you would simultaneously publish your updated PAD and your updated distributables on the net. Today you must post your updated distributables first. Then go to the AppVisor website and manually update your PAD and then publish it. A few days later an ASP employee will OK the changes and post the new PAD on the AppVisor website.

In the meantime, PADsites (and possibly even AppVisor itself) will complain that your distributable cannot be found, has the wrong name, the wrong size, the version does not match etc. and may delist you. This makes the case for not building a version number into you distributable names. If the name never changes, it can’t very well get out of sync. Howvever, removing version numbers from distibutables is more confusing for your users since they can’t tell by looking at a distributable what version it is. It also makes it more likely you will accidentally post the wrong version.

You cannot do it in the other order or the AppVisor validation process will balk.


ASP has done a number of stupid things with PADs . PADsites are rapidly disappearing. What did they do wrong?

False Advertising

ASP is offering Rudenko’s software claiming to submit to 1000 sites. This is untrue. There are fewer than 200 sites that welcome automated submissions. I know because I wrote the mini PAD Submitter. Most put up roadblocks such as Captchas. Even the official ASP list is mostly deadwood. I challenged ASP on this point and they said their software also submits to sites that do not accept PADS. They reformat the data in the site’s proprietary format. That is how they get the number so high. I used the Rudenko submitter and discovered most of the sites it submitted to were dead. He is deliberately keeping deadwood on his lists to pad the count.


The list of program categories needs to be expanded, perhaps with a third layer of detail. The problem now is the categories are not fine enough for a significant number of PADSites. Those PADSites resort to proprietary categories that you enter on a web form rather than conveniently embedding in the PAD file. This defeats the entire point of the PAD file as a self-contained complete, universal descriptor and interferes with efficient automated submission. We will see how the new <Program_Categories> field works out. You can make up your own categories, and ASP may include them in their official set. You can also email them sets of new categories.


PAD (Packet Assembler/Disassembler) has another completely different meaning. One of its jobs is to reassemble arriving packets in the proper order. It is a small computer owned by the local packet net company (Datapac in Canada). You can access it using your modem with a local phone call. The PAD will then route your call via digital satellite, fibre optic and microwave links almost anywhere on earth. Though static on the line between your computer and the PAD can cause errors, once it reaches the PAD , special error detection and correction methods guarantee your data gets to its final destination with no further errors added. This method is much cheaper than phoning long distance. Packet nets use long distance circuits about 250 times more efficiently than 2400 BPS (Bits Per Second) modems phoning direct. Many modems cannot call directly more than a few hundred miles because of the static and other distortions. Any modem using the packet nets can easily reach the four corners of the earth. Now, the pioneering packet nets are made obsolete by the Internet.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.
Your face IP:[]
You are visitor number