Publishing Your Program
On ManufacturingHUB, software is published by its authors. Releasing your program, via binaries or tarballs, puts your program out of the reach of many potential users. In contrast, publishing your program on ManufacturingHUB delivers the current version of your program to any user with an internet connection and a web browser. Publishing on ManufacturingHUB also means that you build your program for just one target platform. Your published program can be open use, yet closed source, if you wish.
If your program pulls data from external sites (other web sites and databases), you must request permission to do so from us. All such connections are blocked by default to guard against malicious software. Once your program has been approved and white-listed, it will have controlled access to external sites.
Your program will run in a remote server environment with its own file system. The usual File > Open... operation will look for files on the server, not on the user's desktop. Users can upload files via sftp, WebDAV, and the Hub's own importfile command. If you modify your program so that File > Open... launches importfile, then your users can upload files from their desktop on demand.
Can your program take advantage of cluster computing or parallel execution? We have high-performance computing resources that you can tap into via the submit command. Write a wrapper program in your favorite language to prepare inputs and then submit your runs to these computing resources.
If your program has a graphical user interface built with Java, Qt, or most anything else that runs under Linux/X11, then most likely you can publish it as is on ManufacturingHUB in a matter of hours. However, if your program relies on a graphics card for acceleration, the graphics performance will be slow. Tools running within the virtual machines of this hub use software rendering for all graphics. Software rendering will probably work, but program performance may suffer.
If your program does not have a graphical user interface, you can create one quickly by using the Rappture Toolkit. Rappture builds GUIs for languages including C/C++, Fortran, Java, R, Python, Perl, Ruby, and Tcl/Tk programs. Watch these videos to get started:
Sorry, your options here are limited. All programs published on this hub must run in a Linux/X11 environment. In some cases, programs written for Microsoft Windows will run under Linux via Wine emulation. If that works in your case, then you can deploy your program after setting up the appropriate Wine configuration files. If not, then we will not be able to host your program.

-
1
-
Create a project area for your program
Watch this video to get a sense of the upload process, then register your project. This lets us know that you are on the path towards publishing your program. We will grant you access to our remote development environment, and create a project area with a Subversion source code repository where you can store your code.

-
2
-
Upload your code and build/test in the workspace
A workspace is a remote Linux desktop--a window into our remote development environment that you can access from any Web browser. Watch this video to learn how to use workspaces, then go to the workspace page and click Launch Tool. You can use
sftp, WebDAV, orimportfileto upload your code to the workspace. After that, you build and test your code as you would in any Linux environment. Once your program runs properly in the workspace, it is ready to publish.

-
3
-
Check in your code and tell us you're ready to publish
The project area that you created in Step 1 comes with a Subversion source code repository. After having tested your code in the workspace, commit it to the Subversion repository. If you've never used Subversion before, you should watch this tutorial. Once your code is checked in, you can click a link in your project that says My code is committed, as described in this video. We will install your code and get it ready for final testing. Click another link to say that you approve the tool, we will publish it on MaufacturingHUB for your users to access.

-
4
-
Keep an eye on your program
Every published program has its own page with the program name, the authors, and a brief description. This page also shows the number of people who have run the program, along reviews, questions, and suggestions for improvement. Keep an eye on this page and watch your program's user community grow. Help answer the questions, use the feedback to make improvements, and publish improved versions of your tool. The more you support your tool, the more your user base will grow.