Project

General

Profile

Developers guide » History » Version 53

Anchi Cheng, 04/04/2012 09:27 PM

1 1 Amber Herold
h1. Developers guide
2
3 34 Amber Herold
This guide is primarily intended to help noobs to both Appion and Programming in general get up and running in the development environment that we have created at AMI.
4
It is a good place to add notes, however basic, that may help someone else accomplish a task related to Appion software development.
5
Parts of this guide are specific to machines and the environment that we have at AMI. Our apologies.
6
7 24 Amber Herold
# *System Overview*
8 7 Amber Herold
## Leginon
9
### Scope
10
### Windows Machine
11
## Appion
12 1 Amber Herold
### Web Parts - web server
13
### Python Parts - processing server
14
### 3rd party apps
15
## Clusters
16 29 Amber Herold
## "Myami code module diagram":http://emg.nysbc.org/projects/appion/wiki/Myami_code_diagram 
17 20 Amber Herold
 
18 24 Amber Herold
# *Development Tools*
19 46 Amber Herold
## [[appion:AMI Redmine Quick Start Guide|Redmine quick start]] - issue reporting and adding documentation
20 47 Amber Herold
## [[AMI_Eclipse_Quick_Start_Guide|Eclipse quick start]] - setting up an integrated development environment
21 46 Amber Herold
## [[Subversion]] (SVN) - Tips for using our code repository
22 22 Amber Herold
 
23 46 Amber Herold
# *Language and Technology Resources*
24
## language specific tutorials, guides and tips
25
### [[HTML notes]] 
26
### [[CSS notes]] 
27
### [[PHP notes]]
28
### [[Python notes]] 
29
### [[Javascript notes]]
30 50 Amber Herold
## [[General Best Practices]]
31 46 Amber Herold
## [[Coding standards|AMI's best practices]] 
32 1 Amber Herold
## [[Object Oriented Programming]]
33 33 Amber Herold
## [[Useful shell commands]]
34
## [[MySQL_Notes|Getting started with MySQL]]
35 20 Amber Herold
 
36 24 Amber Herold
# *Installing Appion for development*
37
## Running the code from your sandbox
38 1 Amber Herold
 
39 24 Amber Herold
# *Adding a new program to the pipeline*
40 30 Amber Herold
## General Instructions
41 22 Amber Herold
### Processing parts (Python)
42
#### database access
43
### Web Parts (PHP)
44 1 Amber Herold
#### launch page
45 22 Amber Herold
#### reporting page
46 23 Amber Herold
##### [[Using basicReport.inc]] for very simple PHP report pages
47 22 Amber Herold
#### database accesss
48 4 Neil Voss
## Adding a refinement method (single and multi model)
49 26 Amber Herold
### [[Adding refine python parts|Python wrapper for 3rd party programs]] (Anchi)
50
### [[Adding refine runjob|Modifications to runJob.py]] (Christopher)
51 4 Neil Voss
### [[how to add a new refinement method|Uploading results to the databse]] (Dmitry)
52
### [[Refine_Refactor_documentation|Adding the user interface]] (Amber)
53 22 Amber Herold
 
54 24 Amber Herold
# *Testing*
55 38 Amber Herold
## [[Test datasets at AMI]]
56 42 Amber Herold
## [[Create Appion Session|Create Appion Session for testing purposes]]
57 41 Amber Herold
## [[Setup Local Databases | How to set up AMI databases on your local machine]]: Handy if you want to play with the databases without affecting anyone else.
58 23 Amber Herold
## [[Appion Testing|Automated testing]]
59 36 Amber Herold
## [[How to test upload images with your own sandbox]]
60 37 Amber Herold
## [[How to run manual picking and mask making]]
61 22 Amber Herold
 
62 39 Amber Herold
# *Error Handling*
63
## [[Error Handling|Error handling guide]]
64 22 Amber Herold
 
65 1 Amber Herold
# *Adding pop-up Help*
66 39 Amber Herold
## [[adding popup help]]
67 6 Amber Herold
 
68 49 Amber Herold
# *Making changes to database tables*
69
## [[Database change procedure]] 
70
 
71 39 Amber Herold
# *Other stuff*
72
## Where to find help
73 51 Amber Herold
## [[Appion tricks]]
74 39 Amber Herold
## [[Common variables used]]
75 43 Amber Herold
## Appion Developer's Workshops
76 44 Amber Herold
### [[2010 Appion Developer Workshop]]
77 45 Amber Herold
### "2011 Appion Developer Workshop":http://emg.nysbc.org/projects/appion-workshop/wiki
78 53 Anchi Cheng
# [[Job submission vs direct Appion Script running from terminal]]  What are the differences in database logging and resource usage.