The appGenerator is an all-in-one web/database software development and information management system. You can rapidly create web-based event registration systems, calendars, project & task management systems, web surveys, Authorize.net payment forms, intranet applications and more.

If you need to collect and/or manage information from your customers, or partners, and/or publish information via the Internet, the appGenerator can help save time by creating the forms, database tables, permissions, security, input validation, queries and everything in between.

You don't have to be a programmer or web-expert to use the appGenerator, but if you are, you can tweak the code that it generates and customize it to fit your needs. You can install the system on your own server, or we can host it for you. You can also integrate your designs and branding into the system and the applications it creates.

Our unique evaluation model allows you to create an application at no cost, but once it contains more than ten records, the system disables the application until you decide to pay for it or remove some of the data. This enables you to create demos and prototypes at no risk, and only pay for the app if you decide to use it.

Please take two minutes to watch this video to see how easy it is to create a contacts database/application. The FDL, or Form Definition Language, code used in the video is listed below.
first_name | text | First Name | yes | 15 | 255 | show 
last_name | text | Last Name | yes | 15 | 255 | show 
email_address | email | Email Address | no | 15 | 255 | hide 
street_address | text | Street Address | no | 15 | 255 | hide 
mailing_address | text | Mailing Address | no | 15 | 255 | hide 
city | text | City | no | 15 | 200 | hide 
state | select | State | no | List: US and Canada | 1 | show 
postal code | text | Postal Code | no | 9 | 9 | show 
home_phone | text | Home Telephone | no | 15 | 15 | hide 
mobile_phone | text | Mobile Telephone | no | 15 | 15 | hide 
work_phone | text | Work Telephone | no | 15 | 15 | hide 
birth_date | date | Birth Date | no | hide
notes | textarea | Notes | no | hide 
relationship_type | checkbox | Type of Relationship | no | Business,, Personal,, Family | vertical | show
Username
Password
Need help?

The Problem:
Collecting, publishing and managing information can be challenging.
Many people turn to spreadsheets or word-processor documents to create lists and store information because they are so easy to create. But just like 'fast food', the benefits of being able to set up a spreadsheet quickly (to store data) are eventually outweighed by the problems that arise over time. Common problems include:
  1. distribution - how do you get the document to all of the people who need it?
  2. concurrency - spreadsheets can't be used by more than one person at a time
  3. version control - if you try to share a spreadsheet via email, then you have to worry about who has the most recent copy, and does it contain all changes from all users?
  4. audit trail - there is no record of who did what
  5. access control - there is no way to control who views, edits or deletes a specific row or column
  6. redundancy - it is very difficult (or impossible) to re-use lists in different spreadsheets, which results in multiple (and therefore inaccurate) versions of the data
  7. control - once you release a spreadsheet, you have lost control over it (and can't retract it). For instance, see this story: Verizon Wireless accidentally released customer data through a spreadsheet. If they had been using appGenerator to manage that information, they could protect the data with a variety of security measures, and also disable the query (the view of the data) at any time. They would also have a record of who viewed the data and when.
Web applications (databases combined with web interfaces) solve these problems, however, they have historically been very expensive and difficult to create.


The Solution:
The appGenerator™ makes it easy to build web applications, and predict how much they will cost before they are created. The appGenerator automates the process of writing the application interfaces and data structures, freeing up an experienced programmer to focus on more difficult tasks. It also makes it possible for a novice to build a working prototype in just minutes; no programming required.

And on top of all that, you can actually build an application and have 10 records (entries) without having to pay for it. It's our way of letting you evaluate your custom software with zero risk.

Current Features:
Application Generator (build complex apps in minutes)
Advanced Security:
  unrecognized network/ISP authorizations or warnings
  input validation (reduces form-spam and prevents SQL Injection attacks)
  multi-user permissions: control who sees what
  all transactions are logged for auditing / review
Filtering (quickly find what you're looking for)
Export to Quickbooks, spreadsheet (tabbed-delimited file) or XML
Record Paging (splits data into pages)
Add and modify forms
Internal Messaging System
Summary modes to quickly view your data
Multi-Application Integration Wizard
Import data from Spreadsheet
Statistical Analyis Tools
Authorize.net credit card processing / payment integration
Email Tools - send form-letter emails from the system
generated code is PHP, SQL and JavaScript
Input Validation (improves data quality and blocks spammers)
record_id and nsrid (non-sequential record_id) for tracking and control

Coming Soon:
Auto-Save (as you tab to the next field)
Growable Forms (add new fields dynamically)
Ajax Search (search as you type) and Filters
Enhanced Query Builder
Email2App (converts incoming emails into records in a web app)
Windows compatibility
Desktop Client/Version
Enhanced Toggle functionality (dynamic show/hide)

Field Types:
timestamp
text
credit_card
email
date
textarea
hidden
radio
select lists
checkbox
matrix
integer
decimal
math
percent
file upload
autoid
blank (labels)
subform (forms within forms)
guid
query (embed a query into an app)
image
image2 (automatic thumbnail creation)
text2 (search as you type, using Ajax)
jsarray (client side arrays)

We consider security to be one of the most important aspects of the appGenerator. Speed, convenience, reliability are all very important, but without security, they mean nothing. While we cannot say that appGenerator is unbreakable, we can say that every facet of appGenerator is periodically reviewed and braced for potential security threats.

Much of web application security has nothing to do with the web application, but with how the server is configured. An improperly configured server can weaken even the srongest web application.

In addition to staying on top of current security news and the OWASP Top 10 here are some of the books that our developers have read while creating the appGenerator:
- Practical UNIX and Internet Security, Third Edition
- Web Hacking: Attacks and Defense
- Web Applications (Hacking Exposed)
- Hacking Linux Exposed, Second Edition

Unlike competing technologies, appGenerator provides a comprehensive array of security features, from multi-user logins, application and system-level safeguards and warning systems. appGenerator's audit-trail keeps track of all important database transactions, giving you the ability to know who viewed, deleted, modified, or added a record, and when. The system also has an optional feature which protects against unauthorized access by requiring approval when a user attempts to login from an unrecognized network location (ISP) - a potential sign of unauthorized access.

How does appGenerator compare to the alternatives in terms of security?
appGenerator spreadsheets documents email
1) ability to track/log user access
2) application-level access controls
3) record-level controls
4) ability to retract user access
5) allow/restrict access from specific networks


This screenshot shows the "Favorites" tab, and the selected favorite input form.
appgenerator-favorites-march2008


The following screenshot shows the "Applications" tab, which lists all available apps by folder.
apps-tab-march2008


Creating a new application is very simple, and can be done in just a few minutes.

The first step is to define the name for the app:
build-step1


The second step defines security and configuration variables:
build-step2


The third step involves a few formatting decisions, and is where you define the structure of your application. One line of code per field is all it takes to create your system.
build-step3


After your app is built, it will appear in the list of applications, highlighted in yellow:
post-build-list


To view the input form, click the 'add' link:
input-form



You can reach us at (360) 631-6681 or

To get a list of remaining field credits, please enter your email address:

Short Version:
Any typical VPS (Virtual Private Server) or dedicated server where you have root access (Linux/Unix/BSD/OSX) should work.

We have read good things about SliceHost, and their pricing starts at $20/month


Long Version:
Technical requirements include:
· Linux, Unix, BSD or OSX (with libcurl)
· 2 MySQL databases (v.3.23, v.4 or v.5)
· Apache (v.1.x or v.2.x)
· PHP (v.4 or v.5)
· The "apache" user must be able to write/edit files in the main website folder (htdocs, www, web, etc...)
· The system requires rsync to copy files from the primary codebase.

Notes:
- Important: PHP safe-mode, register_globals and magic_quotes must be turned off
- Apache 2.0 may require the following .htaccess modification ("AcceptPathInfo On") to enable the AcceptPathInfo directive.
- The appGenerator will not run on any version of Microsoft Windows at this time.
Clients

Here are how some of our clients are using the appGenerator:

Fox Web Company has been using appGenerator to create database apps on the web longer than any other client. They use the system to create task/project management systems, inventory tracking systems, accounting and financial management apps, sports tracking systems, and much more. They also provide appGenerator consulting, so if you're looking for someone to help you build a custom application, contact Andy Chapman, located in Bay St. Louis, Mississippi.


Reformed Theological Seminary - Orlando (RTS) used the appGenerator to develop a web-based financial aid form which has eliminated the redundancies, inefficiencies, and expense of the previous system. They also use the appGenerator to develop web-based surveys used to gain insights into student perspectives.


Lagniappe Church uses the appGenerator to schedule hundreds of volunteers per week in the restoration of the Gulf Coast in the wake of Hurricane Katrina.


The Town of Darrington and Puget Sound Clean Air Agency use the appGenerator as an intranet system to manage the Wood Stove Changeout Program.


DarringtonWa.org
www.darringtonwa.org is a great example of how the appGenerator can be used to receive, publish and manage information.

It has an Event Calendar, Organization Directory, Announcements, Picture Gallery, Trail/Hiking Database, and has been used to conduct community-wide surveys in the past. The appGenerator was used to create the forms to collect the information, then the query-builder was used to create the self-updating calendar, random directory listing and photo on the homepage, and the list of the announcements. The trail database allows you to filter and sort the results to find the types of trails that are best suited for your interests.





Camp-Agape.org
Camp Agape is a summer camp for kids with cancer (and their families). The camp is free for the campers and families, and after ten years of camp, they have quite a library of photographs and memories. To catalog, organize and display that information, we used the appGenerator to build a photo database management system, and other systems to manage the site. One of the joys of working with the appGenerator is that we can now build sites like this in just a few hours, whereas this would have taken weeks by hand.




appGenerator development started in 2002 as the flagship product of Cascade Data Systems (based in Darrington, Washington - near Seattle). You can reach us at 360-631-6681 or .
You can reach support via 360-631-6681 or .
Item
Category
Date Added

I just learned something neat from this article; from the command line, issue the following command:

ps -Aeww

and it will show every process and command on the system.

General Interest 2008-06-07 21:12:18

07 June 2008 - David Bass

I'm testing out Scalr.net, and wanted to login via SSH into my Amazon EC2 server.
I encountered a bit of trouble using my MacBook Pro, so I thought I would post the workaround in case it helps someone else.

Step 1: find the IP address of the server you're trying to login to.  You could also login via the domain name, but mine hasn't propagated yet.
In Scalr, I went to: Farms > View (http://www.scalr.net/farms_view.php)

Step 2: Instances > View
and this shows you the IP address.
(I have replaced parts of my IP address with x's)

Step 3:  download the Private Key from Scalr (Go to the list of farms and click on Private key -> Download).

Step 4: login via SSH:
    macbookpro:Desktop davidbass$ ssh root@67.xxx.xxx.x4 -i mywebsiteaddresscom.pk
    
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0644 for 'mywebsiteaddresscom.pk' are too open.
    It is recommended that your private key files are NOT accessible by others.
    This private key will be ignored.
    bad permissions: ignore key: mywebsiteaddresscom.pk
    Permission denied (publickey).

Ok, so that's where I got stuck.
Here is how I fixed it:
    macbookpro:Desktop davidbass$ chmod 0600 mywebsiteaddresscom.pk

Then I ran the SSH command again:
    macbookpro:Desktop davidbass$ ssh root@67.xxx.xxx.x4 -i mywebsiteaddresscom.pk

and it worked.

    Linux ubuntu 2.6.16-xenU #1 SMP Mon May 28 03:41:49 SAST 2007 i686
    www (2008-05-30-0913)
    root@ec2-67-xxx-xxx-x4:~#


Hope this helps.
:)

General Interest 2008-06-07 00:39:57

How to populate (fill) a table with thousands of numbers - May 2008

I needed to create a numbers table (or integers table) and populate it with integers from 0 to 2000 (at least).  I was trying to find a simple way of doing this without writing a stored procedure or using PHP code, and found an elegant way of doing it on http://datacharmer.blogspot.com/2006/06/filling-test-tables-quickly.html.

I have an older version of MySQL (4.1), so I couldn't create a procedure as the author describes in his blog, but he does mention an alternate way of populating the table with numbers.

Here is what I did:

mysql> create table numbers ( id int not null primary key);

mysql> insert into numbers values (0);

and then I repeated the following command 12 times or so, which generated 2,048 numbers.

mysql> insert into numbers (id) select id + (select count(*) from numbers) from numbers; select count(*) from numbers;

Thank you Giuseppe Maxia for making my life a bit easier!

:)

General Interest 2008-05-31 00:40:06

How to Secure a Windows computer (osnews.com)

General Interest 2008-05-01 22:15:43
MIT reinvents the Post-It note...

 

 

General Interest 2008-05-01 22:06:18
Crayon Physics Deluxe:

http://www.youtube.com/watch?v=QsTqspnvAaI

General Interest 2008-04-30 00:30:28

AWS - EC2 - OSX - Configuration Issues

After having a bit of trouble getting started with AWS/EC2, I thought others might find this bit of information useful.

I had to modify the commands/configuration settings described on http://docs.amazonwebservices.com/AWSEC2/2008-02-01/GettingStartedGuide

by removing the word "/bin" from the tail end of each command.

 

So this:

export EC2_HOME=/Applications/ec2-api-tools-1.2-13740/bin
export PATH=$PATH:$EC2_HOME/bin
export JAVA_HOME=/usr/bin

 

became this:

export EC2_HOME=/Applications/ec2-api-tools-1.2-13740
export PATH=$PATH:$EC2_HOME
export JAVA_HOME=/usr

 

and that solved my problem.

 

General Interest 2008-04-25 12:13:17

Prism - a site-specific browser based on FireFox.

Downloads available from the "Get Prism" section of this page:

http://labs.mozilla.com/featured-projects/

General Interest 2008-04-09 23:33:54
iAlertU - anti-theft software for MacBook Pro
http://www.youtube.com/watch?v=KkAtRfA1UXc

www.iAlertU.com

General Interest 2008-03-21 10:56:30
To pair an Apple remote control with a Macbook,
aim your remote at the infrared port on the front of your MacBook. Next, press and hold the Play/Pause button and the MENU button at the same time until the paired graphic appears on your screen. To unpair your remote launch System Preference select the Security icon and press the Unpair button.
General Interest 2008-03-21 10:50:31
I just discovered a neat way to get the full path from a Finder window:
drag the folder icon from the title bar of Finder into Terminal.app to get the full path without having to type it.

General Interest 2008-02-04 18:59:27
>How to show full path in Finder, in OSX 10.5/Leopard

General Interest 2008-02-04 18:50:52
If you need to write an event calendar query in MySQL where past events do not appear, use the "CURDATE()" variable to represent today's date.

Here is an example:

SELECT record_id, event_title, start_date, start_time FROM admin_events WHERE (start_date >= CURDATE())

General Interest 2008-01-30 22:47:44

http://www.montastic.com/ - Free uptime monitor

 

 

General Interest 2007-12-14 13:00:29

Gallery2 is a great photo system, but while trying to create thumbnails, the program would stop at 300 of 593 photos.

My error_log indicated a lack of ram/memory, but the limit mentioned in the error message did not match the limit I set in my /etc/php.ini file.  So, upon further investigation, I found the answer in the last post on http://forum.powweb.com/archive/index.php/t-73588.html.

I increased the memory limit by adding this line to /gallery/main.php,

ini_set("memory_limit","200M");

and that solved the problem. 

General Interest 2007-12-06 23:52:49
How to delete Safari cookies on exit

http://forums.macnn.com/82/applications/353042/delete-cookies-quit-safari-3-leopard/


General Interest 2007-12-06 18:40:45

Show Full Path in Dreamweaver 

If you use Dreamweaver, you may already know how frustrating it is that it does not show the full path of the file you are editing in the title bar, which becomes a problem if you have several files open that have the same filename.

Fortunately, there is an extension that solves this problem:

http://www.communitymx.com/abstract.cfm?cid=A01CEAEA3CA40B36 

General Interest 2007-12-03 01:11:47

FDL Assist

Check out the new FDL Assistant tool, currently in development: 

http://appgenerator.com/appgenerator/fdl_assist/
 

It is designed to help newbies learn how to write FDL code, or for anyone to learn how the appGenerator works. 

Only a few field types are available thus far, but the others are coming soon.

Please let us know if you have any feedback or suggestions!

appGenerator specific 2007-11-30 15:17:23

Here is a new app we're using internally to manage projects/tasks.

The neat thing about this is that the text2 field type allows you to have as-you-type lookups (via AJAX), and the shifted block of code means that this section of the app can 'grow' dynamically, allowing one-to-many relationships within an app, without having to use subforms.  This requires v2.5.1 or greater.

project | text | Project | yes | 25 | 255 | show
project_description | textarea | Description | no | show
project_category | text2 | Category | yes | 25 | 255 | show | | | | data_source: self | input: project_category | output: project_category | target: project_category | like
owner | text2 | Project Owner | no | 25 | 255 | show  | | | | data_source: self | input: owner | output: owner | target: owner | like
priority | select | Priority | yes | High,, Medium,, Low | 1 | show
status | select | Status | yes | Not Started,, In Progress,, Finished,, On Hold | 1 | show
    Task | group_label
    task_title | textarea | Task | no | show
    assigned_to | text2 | Assigned To | no | 25 | 255 | show  | | | | data_source: self | input: assigned_to | output: assigned_to | target: assigned_to | like
    task_priority | select | Priority | no | High,, Medium,, Low | 1 | show
    task_status | select | Status | no | Not Started,, In Progress,, Finished,, On Hold | 1 | show
    time_spent | text | Time Spent | no | 10 | 30 | show
Date Added | timestamp | Date added | new | show
Last Modified | timestamp | Last update | update | hide
attachment | upload | Attachment | no | 1200 | 1200 | 1200

 

 

appGenerator specific 2007-11-30 15:10:54

IE for OSX

I discovered a great tool yesterday that allows you to run Internet Explorer (IE) from OSX, without Windows, Parallels or VMWare.

The site seems to be down at the moment, but I'm guessing it will be back soon. 

www.kronenberg.org/ies4osx/

 

General Interest 2007-11-30 14:59:37