Google
www ResExcellence

Application Makeovers
Desktop Snapshots
iTunes Skins
Mighty Mouse Cursors
Uploads
Boot Images
Dock Poofs
Links List
Photoshop Goodies
Users Forum
Boot Panels
Download Stats
Log-In Panels
REALbasic
Clocks
GUI Software
Mac OS X Mods
Safari Stuff
Desktop Pictures
Icons
Mac OS X Themes
Splash Screens
Homepage
Download a free demo of REALbasic!
Download a free demo of REALbasic!
Recent Articles...
3D
3D Photo Gallery (Part 2)
3D Photo Gallery (Part 1)

Audio
iPod Tricks (Part 3)
iPod Tricks (Part 2)
iPod Tricks (Part 1)
Laugh Track Machine
Audio Player with Reverb
Shepard Melody
RB Phone Home
Build a Drum Machine

Custom Controls
Custom Buttons
Custom Buttons Part II
iTunes-style Listboxes
Custom Controls

General RB
Wiggle Window
JPEG in PDF
Hey! You got your Checkbox in my Listbox!
Background Applications
Listbox Auto-Find
Virtual Volumes
Time Tracker
Software Distribution (Part 4)
Software Distribution (Part 3)
Software Distribution (Part 2)
Software Distribution (Part 1)
Exceptions
Living on the Edge
Tips and Tricks
Review of REALbasic 3.0
Text Clippings Made Easy

Graphics
Image Spinner
Cropping Graphics (Part 4)
Cropping Graphics (Part 3)
Cropping Graphics (Part 2)
Cropping Graphics (Part 1)
Shimmer Graphics
Lissajous Figures
Simple Screen Capture
Vector Graphics
Kaleidoscope Images
Stegonography
Spirals!
Image Table
RB Magnifying Lens
Screen Capture
Color Picker Tutorial

Hacks
Ghost Grab
Speedy Mouse Extension
iTunes Plugins
iTunes Skinner

Internet
Display Web Image In Canvas
HTML IMG Tags
Version Tracking
Even Smarter Instant Messaging
Web Tiler
JavaScript and REALbasic
Stock Ticker (Part 2)
Stock Ticker (Part I)
AIM Mate

Mac OS X
Using Sheets in REALbasic
Build a Bundle (Part 2)
Build a Bundle (Part 1)
Dock Your Passwords
Mac OS X Debugging
REALbasic Mac OS X Icon Tutorial
Animate Your Dock
RB and the Command Line

Novelty
Guessing Game
Calendar Trivia
Tile Mixer
Zip Code Finder
Happy Valentine's Day
Merlin Simulator (Part 3)
Merlin Simulator (Part 2)
Merlin Simulator (Part 1)
Buzzword Machine
AppleSoft BASIC

Printing
Print to PDF

Registration
Registration Code Validation

Resources
Picture Extractor (Part 2)
Picture Extractor (Part 1)

Serial
Caller ID (Part 3)
Caller ID (Part 2)
Caller ID (Part 1)

Speech
Speech Recognition

Video
Big Brother Video Capture

Newest Dev Tools!

Book Alert !
REALbasic for Dummies
by Erick Tejkowski
$19.99 @ Amazon

Made with REALbasic!

Problems?
Downloads are in StuffIt 5 format (free download).
Tell me about a bad link (Thanks!).
Submission Policy

4-4-02

Software Distribution by Erick Tejkowsi

So you've built the perfect utility, game, or widget using REALbasic and you want to unleash it on some victims. What do you do next? Today we begin a short multi-week series about the process of releasing software. We will discuss the different kinds of "wares", open source, how to protect your software, and some other goodies. The goal behind this tutorial series is to look at the various avenues you can follow to share your REALbasic creations with the world.

Introduction

After spending hours crafting a REALbasic masterpiece, you might find yourself wanting to share your work with other people. Entrepreneurs as well as philanthropists will enjoy the many facets of software distribution.

Kinds of Software

How and why you will distribute your REALbasic masterpiece are the first questions you should answer when you decide it's time to release some software. Most Mac users have a hard drive loaded with software that falls into one of these categories:

  • Freeware - Free-to-use application
  • Shareware - Free to pass around, but requires a (usually small) payment to "register" the software
  • "Gimme something"-ware - Programmers are goofy. Sometimes they accept postcards, bumper stickers, coffee mugs, or even beer for payment to use their software.
  • Open source - Some programmers like to share... not just their applications, but even the source code.
  • Commercial - Some applications are sold by businesses.
Keep in mind that this list isn't comprehensive. It's simply meant to illustrate that software distribution comes in many formats.

Some questions you might consider before making a decision about software distribution:

  • Are you going at this alone or with a small group of friends? If so, you might prefer one of the first four groups in the above list.
  • Is your application unique, complex, or perform a useful task? If so, maybe you can make some money from it. Commerical applications typically cost much more than shareware, but often provide more professional quality. Shareware applications, on the other hand, can often be of very high quality, cost much less, and outperform commercial applications.
  • Hobbyists might prefer the lower cost of establishing a "business" by selling software the shareware way.
  • Maybe your project is a nice example of source code and you want to share it with other developers. There are numerous types of source code licenses that you can use when releasing source code.
The fun part about this proces is that you decide. It's your software, afterall! Do with it as you see fit.

How to Distribute Software

Once you've decided what kind of software or code you will distribute, you need to figure out how to distibute it. These days, software distribution is centered around the internet. It allows you to offer easy accessibility, current updates, and low distribution costs. In fact, your distribution costs can range anywhere from FREE to hundreds or even thousands of dollars. If you're interested in free, you can post software on your iDisk or one of countless other free web servers. Don't try this, though, if you plan to make money. Many free sites have rules regarding moneymaking ventures. If you want to start selling shareware or commercial software, a suitable web site can be had for under 100 dollars per year. Again, the choice is your's. Your costs will vary depending on a few factors: amount of traffic, size of your web server, number of email accounts, programming features. The internet gives you a wide selection to choose from, so you can be as choosy as you wish.

If you decide to release your software as a commercial or shreware venture, you have another factor to consider. How will you collect your loot? Like web services, there are many solutions available for selling your product. There are services who will help you establish a web store, accept payments for you, and even send registration codes to your customers. Shareware developers on the Mac are fond of Kagi. Many commercial vendors are also available. These businesses typically collect your payments and send you a monthly check minus a service fee.

Conclusion

That's it for this week. As you can see, releasing software is loaded with possibilities. There are many options from which to choose, but only you can decide which is right for you. Next time we'll look at some source code examples you can use to "protect" your software. See you then!


4-02-02

REALbasic News by Erick Tejkowsi

MacAppProcess Plugin MacAppProcess Plugin v.1.0.1

  • App.MacRunningUnderClassic property tells you if your app is running under Classic.
  • App.MacRunningUnderMacOSX property tells you if your app is running under Mac OS X.
  • Vestigial Windows support.
MacAppProcess Plugin v.1.0.1 is available here.

MovieWires 1.0d1 and MovieWorks 1.0b6 Alfred Van Hoek has some interesting QuickTime-related plugins available on his site. Check them out!

QuickTime Soundtrack Extractor Seth Willits has posted a new plugin of great use to RB programmers. This small plugin has only one function, and that is to extract soundtracks from movies. The plugin is PPC and Carbon compatible and supports the following formats:

  • AIFF
  • Wave
  • System 7 Sound
  • MuLaw
  • AVI
  • Sound DesignerII
  • Audio CD Track

Carbon Events plugin In the past week, Will Cosgrove has released two updates to his popular Carbon Events plugin. It has the following (numerous) features and fixes:

  • Added full application Service support. This includes providing and using Services from the service menu*
  • Added GetAvailableScreenSize & GetScreenSize which get the screen dimensions for respecting the Dock.
  • Added GetThemeIdentifier to get the current theme identifier.
  • Added Standard Alert dialog support.
  • Added CountDockMenuItems to return the number of menu items in the Dock menu.
  • Added GetDockMenuItemText which returns the caption of a Dock menu item.
  • Added constants to the example project for easier reading.
  • Added IsSheetOpen property to the control portion of the plugin.
  • Fixed various bugs.
  • Access to a toolbar button
  • Scroll wheel support
  • live window resizing
  • Access to the application Dock tile menu
  • Standard Alert Sheet support
  • Ask Save Changes & Discard Save Changes sheet support
  • Put file dialog sheet support
  • Quit Event notification
  • Complete proxy icon support with icon dragging and window's path menu
  • The ability to get any folder by type & domain
  • The ability to set and get long file names

Database Tip While working on a recent project, I ran across a little REALbasic database tip that might save you some time. My project involved building a REALdatabase consisting of various filenames, paths, and other file related information. When you query a database in REALbasic (and most every other SQL-compatible database), you perform the search like this:

select * from files where path='an absolutepath goes here'

This query searches for all records in the files table with the path that appears within the single quote marks.

When used in REALbasic, you perform this action by sending the database a SQLSelect message and REALbasic returns a database cursor. The database cursor (dbc) holds all the records returned by the query. In pseudo-REALbasic code, it looks like this:

dbc = db.sqlselect("select * from files where path='" + file.absolutepath + "'")

So, what was the problem? I'm glad you asked! Imagine a situation where one of your file names, and consequently its path, contains a single quote character. This has the side effect of prematurely ending the query statement that is normally enclosed within single quotation marks. What's a RB'er to do? Look for the suspect character in your file path and if you find one, replace it with two single quotes. This has the effect of "escaping" the character, which means that it will allow this previously "illegal" character to be part of the query. If the character is not present, just query the database as usual. The result looks something like this:

if instr(file.absolutepath,"'")>0 then
   s = replaceall(file.absolutepath,"'","''")
   s = "select * from files where path='" + s +"'"
   dbc = db.sqlselect(s)
else
   dbc = db.sqlselect("select * from files where path='" + file.absolutepath + "'")
end if


Application Makeovers
Desktop Snapshots
iTunes Skins
Mighty Mouse Cursors
Uploads
Boot Images
Dock Poofs
Links List
Photoshop Goodies
Users Forum
Boot Panels
Download Stats
Log-In Panels
REALbasic
Clocks
GUI Software
Mac OS X Mods
Safari Stuff
Desktop Pictures
Icons
Mac OS X Themes
Splash Screens
Homepage

Maintained by the Staff of ResExcellence. This entire site ©1997-2003 ResExcellence
Privacy Statement? Sure we gotta Privacy Statement.

[an error occurred while processing this directive]on the ResEx LinuxPPC Server