Skip to main content

AgilEntity framework: Open Code Challenge #1

In an effort to showcase the self management capabilities of the AgilEntity framework these open code challenges will periodically be run to highlight how AgilEntity enables a new secure, collaborative development paradigm. Here’s how they work, below 5 user accounts have been created with workflow participation and view permissions established to several jsp templates of the AgilEntity platform, these templates contain the actual code that runs on the associated pages that the user accounts will be able to execute by navigating to them on the UI once logged in. The view permissions on each template enables the logged in user to make changes to the code and then submit those changes for update on the actual run time template file. The Action Oriented Workflow system takes care of the rest, enabling the changes to be routed to an agent (me) for evaluation of the solution provided in the code.

Here’s how the contest will work.

1) First, use one of the user accounts below to login to the development node on the AE cluster I’ve installed here:

(you may get an ssl cert. warning, make an exception for it in your browser to proceed or get rid of the “s” in “https” and use the insecure link)






Password for all usernames: occoder09

2) View the available challenges (below); they come directly from the feedback page for the development site and are very easy. All the user accounts above will be given “view” permissions to all the necessary system templates to actually fix the problems posed.

3) After selecting a problem, view the associated suggested template(s) where the code changes are to be done and make your changes, since many of the changes are UI related that makes it easy.

4) You’ll have to test your changes in your own environment, simply eliminate any calls to AE API functions in your test environment and test away.

5) Integrate your changes into the templates making sure not to change any dynamic functionality, reasonably good separation between “view” code and “controller” code makes this easy. Use the javadoc for the Utilities class to find useful utilities in the AE API to minimize having to code new functions that already exist in the API, solutions that use the API methods will be judged over those that do not unless they are actually more efficient.

6) Write a Memo containing the following information:

· Name

· Email address

· Problem selected (indicate the problem title)

· Short summary of changes/additions.

7) Important! Make sure to press “save” in the template window to save your included change to the working object and then submit your change to the update workflow by pressing “update to workflow”. Each person is allowed one entry per challenge problem so if you have multiple solutions, pick the best one and submit it.

8) After the challenge period is over, the submitted entries will be evaluated and the winner selected per challenge.


1) Since there are only 5 coder accounts, show some courtesy when using them. You should only login 2 times, 4 time at most. First, to view/get the code for the templates associated with the challenge(s) you are solving and then later to upload your solution and submit to the update workflow. As such authentications that last more than 30 minutes will attract administrative attention, if the same ip logs in excessively (more than 6) or stays logged in for too long the ip will be silently disqualified from the challenge even if you subsequently submit code, so be courteous of others wanting to use the accounts to get and submit challenge code. All the accounts have full auditing as shown in this video so big brother is watching you, play fair!

2) Payment method to winners will be via paypal exclusively, so if you don’t have a paypal account and you want to get paid, set one up can still win but you won't get paid if you don't have an account.

3) It is possible for a user account to have a session extend beyond the challenge end date, the coder accounts will automatically deactivate at the end of this date, you must submit your code before the challenge end date even if you are logged in when the deadline passes.

Now, take a look at the feedback page:


The items included in this challenge will follow along with a little guidance on how to proceed with a solution:

Challenge problem 1:

Coloring the conference room

Templates to modify:

conf.jsp , econf.jsp

Templates to view:


$25 to paypal account.


For conference rooms currently the user must specify hexadecimal values for selecting their table and background color customizations. This is so 1999…update it to use a javascript color picker widget that enables selecting the color by eye that populates the respective form fields with the hex for update.

Challenge problem 2:

Export table files via zip archive

Templates to modify:

conf.jsp , econf.jsp, im.jsp

Templates to view:



$50 to paypal account.


Ideally a link (stating “make zip bundle”) should appear just below the table section (possibly in the square space just under the table column and adjacent to the message entry field) When clicked this link should compile the current table files into a zip archive that is then deposited into the room (if the table is full or not). The naming of the archive should be of the form “”. Methods exist in the Utilities class that already perform zip and unzip of files in a specified directory location, use the “fileZip” method to generate the required bundle file. Also, clicking the link should provide a download dialog to allow the generated bundle to be downloaded on click of the link.

Challenge problem 3:

Fix the smilies…

Templates to modify:

conf.jsp , econf.jsp, im.jsp, iml.jsp, gim.jsp

Templates to view:


$25 to paypal account.


Modify the current smiley box to enable click and insert behavior . Currently the desired icon key sequence must be selected in an awkward manner…turn this into a box that automatically generates and inserts the key sequence for the smiley into the message box using some javascript eliminating the need to actually select the key sequence.

The Challenge will start when the user accounts above are automatically activated by the system on:

Monday , December 7 at 7 am EDT

, the challenge will end when the user accounts all deactivate, 7 days later on

Monday December 14 at 7 pm EDT


Popular posts from this blog

Highly targeted Cpg vaccine immunotherapy for a range of cancer


This will surely go down as a seminal advance in cancer therapy. It reads like magic:

So this new approach looks for the specific proteins that are associated with a given tumors resistance to attack by the body's T cells, it then adjusts those T cells to be hyper sensitive to the specific oncogenic proteins targeted. These cells become essentially The Terminator​ T cells in the specific tumor AND have the multiplied effect of traveling along the immune pathway of spreading that the cancer many have metastasized. This is huge squared because it means you can essentially use targeting one tumor to identify and eliminate distal tumors that you many not even realize exist.

This allows the therapy for treating cancer to, for the first time; end the "wack a mole" problem that has frustrated traditional shot gun methods of treatment involving radiation and chemotherapy ...which by their nature unfortunately damage parts of the body that are not cancer laden but …

Engineers versus Programmers

I have found as more non formally trained people enter the coding space, the quality of code that results varies in an interesting way.

The formalities of learning to code in a structured course at University involve often strong focus on "correctness" and efficiency in the form of big O representations for the algorithms created.

Much less focus tends to be placed on what I'll call practical programming, which is the type of code that engineers (note I didn't use "programmers" on purpose) must learn to write.

Programmers are what Universities create, students that can take a defined development environment and within in write an algorithm for computing some sequence or traversing a tree or encoding and decoding a string. Efficiency and invariant rules are guiding development missions. Execution time for creating the solution is often a week or more depending on the professor and their style of teaching code and giving out problems. This type of coding is devo…

AgilEntity Architecture: Action Oriented Workflow

Permissions, fine grained versus management headache
The usual method for determining which users can perform a given function on a given object in a managed system, employs providing those Users with specific access rights via the use of permissions. Often these permissions are also able to be granted to collections called Groups, to which Users are added. The combination of Permissions and Groups provides the ability to provide as atomic a dissemination of rights across the User space as possible. However, this granularity comes at the price of reduced efficiency for managing the created permissions and more importantly the Groups that collect Users designated to perform sets of actions. Essentially the Groups serve as access control lists in many systems, which for the variable and often changing environment of business applications means a need to constantly update the ACL’s (groups) in order to add or remove individuals based on their ability to perform certain actions. Also, the…