..."
9 | exit 1
10 | end
11 | pause = ARGV.shift.to_i
12 |
13 | idx = 0
14 | while true
15 | idx += 1
16 | puts "#{now} === STARTING PROCESS ##{idx}: #{ARGV.join(' ')}"
17 | system(*ARGV)
18 | puts "#{now} === PROCESS ##{idx} TERMINATED: #{ARGV.join(' ')}"
19 | puts
20 | sleep pause
21 | end
22 |
--------------------------------------------------------------------------------
/packages/rails_sql_views-0.7.0.gem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/packages/rails_sql_views-0.7.0.gem
--------------------------------------------------------------------------------
/rc:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Setup environment variables used in MLcomp.
4 | # Important: always source this file from this current directory as follows:
5 | # . ./rc
6 |
7 | export RAILS_ENV=production
8 | export MLCOMP_SOURCE_PATH=$PWD
9 | export MLCOMP_BASE_PATH=$PWD/var
10 | export TMP_PATH=$MLCOMP_BASE_PATH/tmp
11 | export DOMAINS_PATH=$PWD/domains
12 |
13 | alias r=$MLCOMP_SOURCE_PATH'/site/script/mlcomp/resource'
14 |
15 | [ -e 'local.rc' ] && . local.rc
16 |
--------------------------------------------------------------------------------
/run-command-server:
--------------------------------------------------------------------------------
1 | ./loop 5 site/script/mlcomp/resource commandServer "$@"
2 |
--------------------------------------------------------------------------------
/run-ec2-manager:
--------------------------------------------------------------------------------
1 | site/script/mlcomp/resource ec2manager "$@"
2 |
--------------------------------------------------------------------------------
/run-master:
--------------------------------------------------------------------------------
1 | ./loop 5 site/script/mlcomp/resource master "$@"
2 |
--------------------------------------------------------------------------------
/run-stats:
--------------------------------------------------------------------------------
1 | #./loop $((5*60*60)) script/mlcomp/resource periodicUpdate "$@"
2 | ./loop $((5*60*60)) site/script/mlcomp/resource rateAll "$@"
3 |
--------------------------------------------------------------------------------
/run-web-server:
--------------------------------------------------------------------------------
1 | cd site && script/mlcomp/run-server "$@"
2 |
--------------------------------------------------------------------------------
/run-web-server-static:
--------------------------------------------------------------------------------
1 | #!/usr/bin/ruby
2 |
3 | require 'webrick'
4 | web_server = WEBrick::HTTPServer.new(:Port => 3000, :DocumentRoot => Dir.pwd + '/site/app/views/static')
5 | trap('INT') { web_server.shutdown }
6 | web_server.start
7 |
--------------------------------------------------------------------------------
/seed-db:
--------------------------------------------------------------------------------
1 | #!/usr/bin/ruby
2 |
3 | def add(s)
4 | cmd = "site/script/mlcomp/resource #{ARGV.join(' ')} -add #{s}"
5 | puts cmd
6 | exit 1 unless system("bash", "-c", cmd)
7 | end
8 |
9 | # Recursively add everything
10 | add('domains/core')
11 | add('domains/flat')
12 | add('domains/*/utils')
13 | add('domains/*/sample')
14 |
15 | #add('domains') # Only do this after all sample datasets have been processed
16 |
--------------------------------------------------------------------------------
/show-log:
--------------------------------------------------------------------------------
1 | tail -f site/log/mlcomp.log | grep SENDING
2 |
--------------------------------------------------------------------------------
/site/Rakefile:
--------------------------------------------------------------------------------
1 | # Add your own tasks in files placed in lib/tasks ending in .rake,
2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3 |
4 | require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5 |
6 | require 'rake'
7 | require 'rake/testtask'
8 | require 'rake/rdoctask'
9 |
10 | require 'tasks/rails'
11 |
--------------------------------------------------------------------------------
/site/app/controllers/my_stuff_controller.rb:
--------------------------------------------------------------------------------
1 | # MLcomp: website for automatic and standarized execution of algorithms on datasets.
2 | # Copyright (C) 2010 by Percy Liang and Jake Abernethy
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU Affero General Public License as
6 | # published by the Free Software Foundation, either version 3 of the
7 | # License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU Affero General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU Affero General Public License
15 | # along with this program. If not, see .
16 |
17 | class MyStuffController < ApplicationController
18 |
19 | before_filter :require_login
20 |
21 | def index
22 | @pagetitle << " - My Stuff"
23 | end
24 |
25 | end
26 |
--------------------------------------------------------------------------------
/site/app/helpers/faq_helper.rb:
--------------------------------------------------------------------------------
1 | module FaqHelper
2 | end
3 |
--------------------------------------------------------------------------------
/site/app/helpers/my_stuff_helper.rb:
--------------------------------------------------------------------------------
1 | module MyStuffHelper
2 | end
3 |
--------------------------------------------------------------------------------
/site/app/helpers/users_helper.rb:
--------------------------------------------------------------------------------
1 | module UsersHelper
2 | end
3 |
--------------------------------------------------------------------------------
/site/app/models/announcement.rb:
--------------------------------------------------------------------------------
1 | class Announcement < ActiveRecord::Base
2 |
3 | belongs_to :user
4 |
5 | def self.create_ann(user,type,tmail_obj)
6 | msg = Announcement.new
7 | msg.message_type = type
8 | msg.user = user
9 | msg.serialized_message = tmail_obj.to_s
10 | msg.processed = false
11 | msg.success = false
12 | msg.save
13 | end
14 |
15 | def send_msg(ignore_processed = false)
16 | raise "already processed" if self.processed and (not ignore_processed)
17 | self.processed = true
18 | self.save
19 | tmail_msg = TMail::Mail.parse(self.serialized_message)
20 | self.success = true if AnnouncementEmailer.deliver(tmail_msg)
21 | self.save
22 | end
23 |
24 | end
--------------------------------------------------------------------------------
/site/app/models/run_dataset.rb:
--------------------------------------------------------------------------------
1 | class RunDataset < ActiveRecord::Base
2 | belongs_to :run
3 | belongs_to :dataset
4 | end
5 |
--------------------------------------------------------------------------------
/site/app/models/run_program.rb:
--------------------------------------------------------------------------------
1 | class RunProgram < ActiveRecord::Base
2 | belongs_to :run
3 | belongs_to :program
4 | end
5 |
--------------------------------------------------------------------------------
/site/app/models/run_result.rb:
--------------------------------------------------------------------------------
1 | class RunResult < ActiveRecord::Base
2 | belongs_to :run
3 | end
4 |
--------------------------------------------------------------------------------
/site/app/models/run_status.rb:
--------------------------------------------------------------------------------
1 | class RunStatus < ActiveRecord::Base
2 | belongs_to :run
3 | end
4 |
--------------------------------------------------------------------------------
/site/app/views/announcement_emailer/mass_announcement.html.erb:
--------------------------------------------------------------------------------
1 | Hello <%= @user.fullname %>,
2 |
3 | <%= @main_text %>
4 |
5 | _______________________________________________
6 |
7 | If you would like to stop receiving emails from us then please visit <%= @url %>.
8 |
9 | Questions and comments should be sent to mlcomp.support@gmail.com.
--------------------------------------------------------------------------------
/site/app/views/datasets/create_bundle.rjs:
--------------------------------------------------------------------------------
1 | page[:dataset_download_box].replace_html(@dataset_bundle_url ? link_to("[download zip]", @dataset_bundle_url) : "Creating zip failed: #{@dataset_bundle_error}")
2 |
--------------------------------------------------------------------------------
/site/app/views/datasets/index.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :sidebar do %>
2 |
5 |
6 | <%= make_list "ul", [datasetNewButton] %>
7 |
8 | <% end %>
9 |
10 | A dataset is the input into a machine learning program.
11 |
12 | <%
13 | if sessionDatasetFormats[0] != '(all)' then
14 | domain = Domain.get(sessionDatasetFormats[0]) %>
15 |
16 |
<%= sessionDatasetFormats[0] %>:
17 | <%= domain.datasetDescription %>
18 |
Click here to see a <%= link_to 'sample dataset', :controller => 'datasets', :action => 'show', :id => domain.sampleDataset %>.
19 |
20 | <% end %>
21 |
22 |
23 | The table below shows everyone's datasets that have been processed successfully in <%= sessionDatasetFormatStr %>.
24 | To see only your datasets, go to <%= link_to 'my stuff', :controller => 'my_stuff' %>.
25 |
26 |
27 | To create a run, first click on a dataset .
28 |
29 | <%= render :partial => 'table/many_table_show', :locals => { :tparams => @tparams } %>
30 |
--------------------------------------------------------------------------------
/site/app/views/datasets/replace.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :sidebar do %>
2 |
5 |
6 | <%= make_list "ul", [datasetShowButton, datasetEditButton, datasetDeleteButton, datasetNewButton, datasetShowAllButton] %>
7 |
8 | <% end %>
9 |
10 | Re-uploading dataset <%= @dataset.name %>:
11 | <% form_tag({:action => 'replace'}, {:multipart => true}) do |f| %>
12 |
13 | Warning: Replacing this dataset will delete all of its <%= @dataset.runs.size %> run(s)!
14 |
15 |
16 |
Enter either a single data file or a zip file containing multiple files, including a file called metadata :
17 |
18 | <%= submit_tag "Upload", :confirm => datasetDeleteConfirm %>
19 |
20 |
21 | <% end %>
22 |
--------------------------------------------------------------------------------
/site/app/views/emailer/general_email.html.erb:
--------------------------------------------------------------------------------
1 | <%= @body %>
2 |
--------------------------------------------------------------------------------
/site/app/views/emailer/reset_notification.html.erb:
--------------------------------------------------------------------------------
1 | Request to reset password received for <%= @user.username %>
2 | Visit this url to choose a new password:
3 | <%= @url %>
4 |
5 | (Your password will remain the same if no action is taken)
6 |
--------------------------------------------------------------------------------
/site/app/views/emailer/user_comment.html.erb:
--------------------------------------------------------------------------------
1 | User <%= @username + " (#{@fullname}, email #{@email})"%> visited URL <%= @url %> and left the following comment:
2 |
3 | <%= @message %>
4 |
--------------------------------------------------------------------------------
/site/app/views/faq/_faq_edit_question.html.erb:
--------------------------------------------------------------------------------
1 | <% q ||= {} %>
2 | <% %>
3 | <% qid = rand 1000000 %>
4 |
5 | <% unless local_assigns[:visible] %>
6 |
7 | <%= render :partial => 'question', :object => q %>
8 | <%= link_to_function "edit", "$('edit_#{qid}').show(); $('view_#{qid}').hide();" %>
9 |
10 | <% end -%>
11 |
12 | id="edit_<%= qid %>" style="display:none" <% end -%>>
13 |
14 |
15 | <%= link_to "Move", "#", :class => "move_button" %>
16 | <%= link_to "Delete", "#", :class => "delete_button" %>
17 |
18 |
19 |
20 | <%= text_field_tag nil, q['question'] || "Question title", :size => 50, :class => 'question_field' %>
21 | <%= text_field_tag nil, q['tags'] ? q['tags'].join(", ") : 'section_general', :size => 70, :class => 'tags_field' %>
22 | <%= text_area_tag nil, q['answer'] || "Answer text", :rows => 4, :cols => 50, :class => 'answer_field' %>
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/site/app/views/faq/_question.html.erb:
--------------------------------------------------------------------------------
1 | <% liid = rand 1000000 %>
2 |
3 | <%= link_to_function(question['question'],
4 | "new Effect.toggle('#{liid}','blind', {duration:0.1})") %>
5 |
6 |
7 | <%= question['answer'] %>
8 |
--------------------------------------------------------------------------------
/site/app/views/faq/_question_list.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <% questions.each_with_index do |question,ind| %>
3 |
4 | <%= render :partial => 'faq/question', :object => question %>
5 |
6 | <% end -%>
7 |
--------------------------------------------------------------------------------
/site/app/views/general_display/_dataset_format_selector.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <% form_tag "format_filter_form" do %>
3 |
4 | <%= select_tag "format_filter_selection",
5 | options_for_select(["(all)"] + Domain.names,
6 | session[:format_filter] || "(all)"), :style => 'margin: 5px; padding:2px 10px; font-size: 1.1em;' %>
7 | <% end -%>
8 | <%= observe_field "format_filter_selection",
9 | :url => {:controller => 'general_display', :action => 'update_format_filter'},
10 | :with => "Form.Element.serialize('format_filter_selection')",
11 | :on => "selected"
12 | %>
13 |
14 |
--------------------------------------------------------------------------------
/site/app/views/general_display/help.html.erb:
--------------------------------------------------------------------------------
1 | <%= @help_file %>
2 |
--------------------------------------------------------------------------------
/site/app/views/layouts/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <% inside_layout 'main_with_sidebar_new' do %>
3 | <%= yield %>
4 | <% end %>
5 |
--------------------------------------------------------------------------------
/site/app/views/layouts/main_with_sidebar_new.html.erb:
--------------------------------------------------------------------------------
1 | <% inside_layout 'base_layout_new' do %>
2 |
3 |
4 | <%= yield %>
5 |
6 |
7 |
16 |
17 |
18 |
19 | <% end %>
20 |
--------------------------------------------------------------------------------
/site/app/views/layouts/single_column_layout.html.erb:
--------------------------------------------------------------------------------
1 | <% inside_layout 'base_layout_new' do %>
2 |
3 |
4 | <%= yield %>
5 |
6 |
7 |
8 | <% end %>
9 |
--------------------------------------------------------------------------------
/site/app/views/layouts/three_column.html.erb:
--------------------------------------------------------------------------------
1 | <% inside_layout 'base_layout_new' do %>
2 |
3 |
4 | <%= yield :left_column %>
5 |
6 |
7 |
8 | <%= yield %>
9 |
10 |
11 |
12 | <%= render :partial => 'general_display/dataset_format_selector' %>
13 | <%= render(:partial => 'shared/default_sidebar') %>
14 | <%# (sidebar = yield :sidebar) ? sidebar : render(:partial => 'shared/default_sidebar') %>
15 | <%= yield :sidebar %>
16 | <%= image_tag 'ajax-loader.gif', :id => 'spinner', :style => 'display:none' %>
17 |
18 |
19 |
20 |
24 |
25 | <% end %>
26 |
--------------------------------------------------------------------------------
/site/app/views/programs/create_bundle.rjs:
--------------------------------------------------------------------------------
1 | page[:program_download_box].replace_html (@program_bundle_url ? (link_to "[download zip]", @program_bundle_url) : "Creating zip failed: #{@program_bundle_error}")
2 |
--------------------------------------------------------------------------------
/site/app/views/programs/index.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :sidebar do %>
2 |
5 |
6 | <%= make_list "ul", [programNewButton] %>
7 |
8 | <% end %>
9 |
10 | A program performs a machine learning task (e.g., regression, binary classification),
11 | taking a dataset as input.
12 |
13 | <% if sessionTaskTypes[0] != '(all)' then %>
14 |
15 | <%= sessionTaskTypes[0] %>:
16 | <%= Domain.get(sessionTaskTypes[0]).taskDescription %>
17 |
18 | <% end %>
19 |
20 |
21 | The table below shows everyone's programs that have been checked successfully in <%= sessionTaskTypeStr %>.
22 | To see only your programs, go to <%= link_to 'my stuff', :controller => 'my_stuff' %>.
23 |
24 |
25 | To create a run, first click on a program .
26 |
27 | <%= render :partial => 'table/many_table_show', :locals => { :tparams => @tparams } %>
28 |
--------------------------------------------------------------------------------
/site/app/views/programs/new.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :sidebar do %>
2 |
5 |
6 | <%= make_list "ul", [programShowAllButton] %>
7 |
8 | <% end %>
9 |
10 | <%= error_messages_for :program %>
11 |
12 | Upload Program
13 |
14 |
15 | <% form_for(@program, :html => {:multipart => true}) do |f| %>
16 |
17 | Your program must contain an executable which conforms to a standard program interface .
18 | For an example of how this interface is implemented, download any existing <%= link_to 'program', :controller => 'programs' %>.
19 |
20 |
21 | You can upload one of the following:
22 |
23 | A single executable script run .
24 | A zip file containing a file called run and other files.
25 | This zip file can optionally contain a metadata .
26 |
27 |
28 |
29 |
30 | <%= f.submit "Upload" %>
31 |
32 |
33 | <% end %>
34 |
--------------------------------------------------------------------------------
/site/app/views/programs/view_file.html.erb:
--------------------------------------------------------------------------------
1 |
12 | Displaying File <%= @filename %>
13 | <%= @file %>
14 |
17 |
--------------------------------------------------------------------------------
/site/app/views/runs/_create_run_success.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%= link_to_function("See run progress", "window.opener.window.location.href = '" + url_for(:controller => 'runs', :action => 'show', :id => @run.id) + "'; window.close();") %>
5 | This window will close in 5 seconds.
6 |
7 |
--------------------------------------------------------------------------------
/site/app/views/runs/_dset_choose.html.erb:
--------------------------------------------------------------------------------
1 | <% default_tparams = {
2 | :columns => [:dset_add_to_list, :dset_name_nolink, :dset_user_nolink],
3 | :name => "datasets",
4 | :model => 'Dataset',
5 | :limit => 10,
6 | :width => '100%',
7 | :show_footer => true,
8 | :paginate => true,
9 | :pagination_page => 0,
10 | :include => 'user',
11 | } %>
12 | <% all_tparams = [
13 | ['(all compat.)', {
14 | :filters => [['format', @dset_format]]
15 | }
16 | ],
17 | [
18 | '(mine)',
19 | {:filters => [['format', @dset_format],
20 | ['user_id', session[:user].id]]
21 | }
22 | ]].map do |name,hash|
23 | [name, default_tparams.merge(hash)]
24 | end %>
25 | <%= render :partial => 'table/many_table_show', :locals => { :tparams => all_tparams } %>
--------------------------------------------------------------------------------
/site/app/views/runs/_prg_choose.html.erb:
--------------------------------------------------------------------------------
1 | <% default_tparams = {
2 | :name => "programs",
3 | :model => 'Program',
4 | :columns => [:prg_add_to_list, :prg_name_nolink, :prg_user_nolink],
5 | :limit => 10,
6 | :width => '100%',
7 | :show_footer => true,
8 | :paginate => true,
9 | :pagination_page => 0,
10 | :include => 'user'
11 | } %>
12 | <% all_tparams = [
13 | ['(compatible)', {
14 | :filters => [['task_type', RunInfo.compatibleTaskTypes(@dset_format), 'in']]
15 | }
16 | ],
17 | [
18 | '(mine)',
19 | {:filters => [['task_type', RunInfo.compatibleTaskTypes(@dset_format), 'in'],
20 | ['user_id', session[:user].id]]
21 | }
22 | ]].map do |name,hash|
23 | [name, default_tparams.merge(hash)]
24 | end %>
25 | <%= render :partial => 'table/many_table_show',
26 | :locals => {
27 | :tparams => all_tparams #Program.create_tparams(:taskTypes => RunInfo.compatibleTaskTypes(@dset_format))
28 | } %>
29 |
--------------------------------------------------------------------------------
/site/app/views/runs/_run_spec.html.erb:
--------------------------------------------------------------------------------
1 | Detailed specification:
2 | <%= getRunSpecTree(:program => @program, :dataset => @dataset, :tune => @tune) %>
3 |
--------------------------------------------------------------------------------
/site/app/views/runs/_runs_comparison.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <% @datasets.each do |dset| %>
5 | <%= dset.name %>
6 | <% end -%>
7 |
8 | <% @matrix.each_with_index do |prglst,pind| %>
9 |
10 | <%= @programs[pind].name %>
11 | <% prglst.each_with_index do |runs,dind| %>
12 | <%= if runs.empty? then
13 | "none - " + link_to_function("create?",
14 | "prgid_torun = #{@programs[pind].id};
15 | dsetid_torun = #{@datasets[dind].id};
16 | startRun();")
17 | else
18 | display_runs_list runs
19 | end %>
20 | <% end -%>
21 |
22 | <% end -%>
23 |
--------------------------------------------------------------------------------
/site/app/views/runs/_runs_table.html.erb:
--------------------------------------------------------------------------------
1 | <% shortened = (defined? shorten) && shorten %>
2 | <% columns = shortened ? [0,1,8] : (0..8).to_a %>
3 | <% title = local_assigns[:title] %>
4 | <% headers = %w(RunID Program Dataset Status LearnTime TrainTime TestTime TrainError TestError) %>
5 |
6 | <% headers = columns.map { |ind| headers[ind] } %>
7 |
8 | <% body = [] %>
9 |
10 | <% if runs
11 | for run in runs
12 | if run.info.class == SupervisedLearningRunInfo then
13 | row_data = []
14 | row_data << (link_to run.id, run_path(run))
15 | row_data << (run.info.learner ? program_link(run.info.learner) : "(deleted)")
16 | row_data << (run.info.dataset ? dataset_link(run.info.dataset) : "(deleted)")
17 | row_data << (run.status && run.status.status)
18 | row_data << Format.time(run.info.learnTime)
19 | row_data << Format.time(run.info.predictTrainTime)
20 | row_data << Format.time(run.info.predictTestTime)
21 | row_data << Format.double(run.info.predictTrainError)
22 | row_data << Format.double(run.info.predictTestError)
23 | body << (columns.map {|ind| row_data[ind]})
24 | end
25 | end
26 | end
27 | %>
28 |
29 | <%= make_nice_table headers, body, title %>
30 |
--------------------------------------------------------------------------------
/site/app/views/runs/create_bundle.rjs:
--------------------------------------------------------------------------------
1 | page[:run_download_box].replace_html (@run_bundle_url ? (link_to "[download zip]", @run_bundle_url) : "Creating zip failed: #{@run_bundle_error}")
2 |
--------------------------------------------------------------------------------
/site/app/views/runs/create_several_runs.html.erb:
--------------------------------------------------------------------------------
1 | <% header = %w{DatasetName DatasetID ProgramName ProgramID ModelSelection?} %>
2 | <% rows = [] %>
3 | <% count = 0 %>
4 | <% @programs.each do |prg|
5 | @datasets.each do |dset|
6 | count = count + 1
7 | hidden_tags = (hidden_field_tag ("runs[#{count}][dataset_id]", dset.id)) + "\n"
8 | hidden_tags << (hidden_field_tag ("runs[#{count}][program_id]", prg.id)) + "\n"
9 | row = [dset.name, dset.id.to_s, prg.name, prg.id,
10 | hidden_tags + (check_box_tag "runs[#{count}][modelselect]", "yes", false)]
11 | rows << row
12 | end
13 | end %>
14 |
15 | <% form_remote_tag :html => {
16 | :action => {:action => 'create_several_runs', :controller => 'runs'},
17 | :id => 'multiple_runs_form'
18 | },
19 | :after => "$('multiple_runs_form').disable(); $('creation_result').show()",
20 | :url => {:action => 'create_several_runs', :controller => 'runs'} do %>
21 | <%= make_nice_table header, rows, "Initiating the Following Runs" %>
22 | <%= submit_tag "confirm" %>
23 | <% end %>
24 |
25 |
26 |
Attempting to generate runs:
27 |
28 |
--------------------------------------------------------------------------------
/site/app/views/runs/creation_outcomes.rjs:
--------------------------------------------------------------------------------
1 | outcome = ""
2 | @errors.each do |error|
3 | outcome << "Error: " + (h error.inspect.to_s) + " \n"
4 | end
5 | @successes.each do |success|
6 | outcome << ("Success: " +
7 | success[:dataset] + " - " + success[:program] + " \n")
8 | end
9 | outcome = "\n" + outcome + " \n"
10 | page.insert_html (:bottom, :creation_result, outcome)
11 | # page.insert_html :bottom, :creation_result, "You may try again
"
12 | # page['multiple_runs_form'].enable
13 | page[:creation_result].highlight
14 | page.delay(3) do
15 | page.call "window.close()"
16 | # page.redirect_to :action => 'index'
17 | end
18 |
--------------------------------------------------------------------------------
/site/app/views/runs/edit.html.erb:
--------------------------------------------------------------------------------
1 | Editing run
2 |
3 | <%= error_messages_for :run %>
4 |
5 | <% form_for(@run) do |f| %>
6 |
7 | <%= collection_select("run", "program_id" , Program.find(:all), "id", "name") %>
8 | <%= f.submit "Update" %>
9 |
10 | <% end %>
11 |
12 | <%= link_to 'Show', @run %> |
13 | <%= link_to 'Back', runs_path %>
14 |
--------------------------------------------------------------------------------
/site/app/views/runs/index.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :sidebar do %>
2 |
5 |
6 |
7 |
8 | <% end %>
9 |
10 | A run is the execution and evaluation of a program on a dataset.
11 |
12 | To create a run, first choose a <%= link_to 'program', programs_path %> or a <%= link_to 'dataset', datasets_path %>.
13 |
14 | Summary: <%= Run.countByStatus('ready') %> queued,
15 | <%= Run.countByStatus('running') %> running,
16 | <%= Run.countByStatus('done') %> successful,
17 | <%= Run.countByStatus('failed') %> failed
18 |
19 | <%= render :partial => 'table/many_table_show', :locals => { :tparams => @tparams } %>
20 |
--------------------------------------------------------------------------------
/site/app/views/runs/list_by_dataset.html.erb:
--------------------------------------------------------------------------------
1 | Listing runs for <%= link_to(@dataset.name, @dataset) %>
2 |
3 | <%= render :partial => "runs_table" %>
4 |
5 |
6 |
7 | <%= link_to 'New run', new_run_path %>
8 |
--------------------------------------------------------------------------------
/site/app/views/runs/new.html.erb:
--------------------------------------------------------------------------------
1 | DEPRECATED
2 | New run
3 |
4 | <%= error_messages_for :run %>
5 |
6 | <% form_for(@run) do |f| %>
7 |
8 | Program: <%= collection_select(:slrun, :learner_id, Program.find(:all,
9 | :conditions => ['task_type = ? OR task_type = ? OR task_type = ? OR task_type = ?',
10 | 'BinaryClassification', 'MulticlassClassification',
11 | 'Regression', 'SequenceTagging']).delete_if { |p| p.hasConstructor? }, "id", "name") %>
12 |
13 |
14 | Dataset: <%= collection_select(:slrun, :dataset_id, Dataset.find(:all,
15 | :conditions => 'processed = 1'), "id", "name") %>
16 |
17 |
18 | <%= f.submit "Create" %>
19 |
20 | <% end %>
21 |
22 | <%= link_to 'Back', runs_path %>
23 |
--------------------------------------------------------------------------------
/site/app/views/shared/_comment.html.erb:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/site/app/views/shared/_default_sidebar.html.erb:
--------------------------------------------------------------------------------
1 | <% if not loggedin? %>
2 | <%= render :partial => 'general_display/login' %>
3 | <% end %>
4 |
5 | <%= render :partial => 'general_display/comment_form' %>
6 |
7 | <%= render :partial => 'shared/faq_mini_box' %>
8 |
--------------------------------------------------------------------------------
/site/app/views/shared/_faq_mini_box.html.erb:
--------------------------------------------------------------------------------
1 | <% view_name = controller.controller_name + "/" + controller.action_name %>
2 | <% questions = @questions.select{|q| q['tags'].index(view_name)} %>
3 | <% unless questions.empty? %>
4 |
5 |
6 | <%= render :partial => 'faq/question_list', :locals => {
7 | :questions => questions
8 | } %>
9 |
10 |
11 | <% end -%>
12 |
--------------------------------------------------------------------------------
/site/app/views/shared/_twitter_news.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
33 |
--------------------------------------------------------------------------------
/site/app/views/static/help/simple-dataset/metadata:
--------------------------------------------------------------------------------
1 | name: simple-dataset
2 | description: A simple dataset for testing out the mlcomp infrastructure.
3 | format: MulticlassClassification
4 |
--------------------------------------------------------------------------------
/site/app/views/static/help/simple-dataset/raw:
--------------------------------------------------------------------------------
1 | 1 2:1 3:1
2 | 2 1:1 3:1
3 | 3 1:1 2:1
4 | 1 2:1 3:1
5 | 2 1:1 3:1
6 | 2 1:1
7 |
--------------------------------------------------------------------------------
/site/app/views/static/help/simple-naive-bayes/metadata:
--------------------------------------------------------------------------------
1 | name: simple-naive-bayes
2 | description: A Simple Naive Bayes implementation in Ruby.
3 | task: MulticlassClassification
4 |
--------------------------------------------------------------------------------
/site/app/views/static/index.html:
--------------------------------------------------------------------------------
1 |
2 | MLcomp is currently unavailable due to maintainence.
3 | We apologize for the inconvenience.
4 |
5 |
--------------------------------------------------------------------------------
/site/app/views/table/_many_table_show.html.erb:
--------------------------------------------------------------------------------
1 | <% if tparams.size > 0 %>
2 |
3 | <%
4 | table_name = tparams.first[1][:name]
5 | select_field_name = 'format_' + table_name
6 | dropdown_options = []
7 | tparams.each do |key,tp|
8 | dropdown_options << [key, tp.to_json]
9 | end
10 | %>
11 |
12 |
13 | <% if tparams.size > 1 %>
14 | <% dropdown = select_tag(select_field_name, options_for_select(dropdown_options)) %>
15 | <% else %>
16 | <% dropdown = select_tag(select_field_name, options_for_select(dropdown_options), :style => "display:none") %>
17 | <% end %>
18 | <%= render :partial => 'table/table_container',
19 | :locals => { :table_params => tparams.first[1], :dropdown => dropdown } %>
20 |
21 |
22 | <%= observe_field select_field_name,
23 | :on => "selected" ,
24 | :before => "Element.show('spinner')",
25 | :success => "Element.hide('spinner')",
26 | :function => "setTableData('#{table_name}', value);
27 | updateTable('#{table_name}');"
28 | %>
29 |
30 | <% end %>
31 |
--------------------------------------------------------------------------------
/site/app/views/table/new_table_play.html.erb:
--------------------------------------------------------------------------------
1 | <% @table_params = default_table_params %>
2 | <% @table_params.merge!({:name => 'mytable', :paginate => true, :pagination_page => 0, :limit => 10}) %>
3 |
4 | <%= render :partial => 'table_container', :locals => {:table_params => @table_params} %>
5 |
--------------------------------------------------------------------------------
/site/app/views/table/query.rjs:
--------------------------------------------------------------------------------
1 | tname = @table_params[:name]
2 | pagname = @table_params[:name].to_s + "_pagination"
3 | page[tname].replace_html :partial => 'table_data'
4 | page[pagname].replace_html pagination_line(@table_params, @items.length, @total)
--------------------------------------------------------------------------------
/site/app/views/users/_new_user_form.html.erb:
--------------------------------------------------------------------------------
1 | <%= error_messages_for :user, :header_message => nil %>
2 |
3 | <% form_for :user, :url => {:action => action, :id => id} do |f| %>
4 |
5 | <% if true %>
6 |
7 | Username <%= @errors && @errors.on(:username) %>
8 | <%= f.text_field :username %>
9 |
10 |
11 |
12 | Password <%= @errors && @errors.on(:password) %>
13 | <%= f.password_field :password %>
14 |
15 |
16 | Confirm password
17 | <%= f.password_field :password_confirmation %>
18 |
19 |
20 |
21 | <% end %>
22 |
23 |
24 | Full name <%= @errors && @errors.on(:fullname) %>
25 | <%= f.text_field :fullname %>
26 |
27 |
28 |
29 | Email (we will not spam you) <%= @errors && @errors.on(:email) %>
30 | <%= f.text_field :email %>
31 |
32 |
33 |
34 | Affiliation (e.g., school, company, etc.)
35 | <%= f.text_field :affiliation %>
36 |
37 |
38 |
39 | <%= f.submit submitText %>
40 |
41 |
42 | <% end %>
43 |
--------------------------------------------------------------------------------
/site/app/views/users/announcements.html.erb:
--------------------------------------------------------------------------------
1 | Create new announcement
2 |
3 | <% form_tag(:action => "announcements") do %>
4 | Subject:
5 | <%= text_field_tag 'email_subject', '', :size => 60 %>
6 | Body:
7 | <%= text_area_tag 'email_body', '', :rows => 20, :cols => 60 %>
8 | <%= submit_tag "Send" %>
9 | <% end -%>
10 |
11 | Announcements to process: <%= Announcement.count(:conditions => 'processed = false') %> out of <%= Announcement.count() %>
--------------------------------------------------------------------------------
/site/app/views/users/edit.html.erb:
--------------------------------------------------------------------------------
1 | Editing profile
2 |
3 | <%= render :partial => 'users/new_user_form', :locals => { :action => :update, :id => @user.id, :submitText => "Update" } %>
4 |
--------------------------------------------------------------------------------
/site/app/views/users/forgot.html.erb:
--------------------------------------------------------------------------------
1 | <%= error_messages_for :user %>
2 | <% form_for :user do |f| -%>
3 |
4 |
5 |
6 | Request link to reset password
7 |
8 |
9 |
10 |
11 | Email:
12 | <%= f.text_field :email %>
13 |
14 |
15 |
16 | <%= submit_tag 'Submit' %>
17 |
18 |
19 |
20 | <% end -%>
--------------------------------------------------------------------------------
/site/app/views/users/index.html.erb:
--------------------------------------------------------------------------------
1 | Users
2 |
3 |
4 |
5 | Username
6 | Full Name
7 | Email
8 | Created
9 | # Datasets
10 | # Programs
11 | # Runs
12 |
13 |
14 |
15 |
16 |
17 | <% for user in @users %>
18 |
19 | <%=h user.username %>
20 | <%=h user.fullname %>
21 | <%=h user.email %>
22 | <%=h user.created_at.to_s %>
23 | <%=h user.datasets.length.to_s %>
24 | <%=h user.programs.length.to_s %>
25 | <%=h user.runs.length.to_s %>
26 | <%= link_to 'Edit', :action => :edit, :id => user.id %>
27 | <%= link_to 'LoginAs', :action => :loginas, :id => user.id %>
28 | <%= link_to 'Destroy', :action => :destroy, :id => user.id, :confirm => 'Are you sure?' %>
29 |
30 | <% end %>
31 |
32 |
33 |
34 |
35 | <%= link_to 'New user', :action => :new %>
36 |
--------------------------------------------------------------------------------
/site/app/views/users/new.html.erb:
--------------------------------------------------------------------------------
1 | Creating an account
2 |
3 | <%= render :partial => 'users/new_user_form', :locals => { :action => :create, :submitText => "Create" } %>
4 |
--------------------------------------------------------------------------------
/site/app/views/users/reset.html.erb:
--------------------------------------------------------------------------------
1 | <%= error_messages_for :user %>
2 | <% form_for @user do |f| -%>
3 |
4 |
5 |
6 | Pick a new password for <%= @user.email %>
7 |
8 |
9 |
10 |
11 | Password:
12 | <%= f.password_field :password %>
13 |
14 |
15 | Confirm Password:
16 | <%= f.password_field :password_confirmation %>
17 |
18 |
19 |
20 |
21 | <%= submit_tag 'Reset' %>
22 |
23 |
24 |
25 | <% end -%>
--------------------------------------------------------------------------------
/site/app/views/users/unsubscribe.html.erb:
--------------------------------------------------------------------------------
1 | <% if @user.receive_emails %>
2 | Please confirm that you want to unsubscribe
3 | User: <%= @user.username %>
4 | Name: <%= @user.fullname %>
5 | User: <%= @user.email %>
6 | <%= link_to 'Confirm', :controller => 'users', :action => 'unsubscribe', :id => @user.id, :confirm => true, :code => @code %>
7 | <% else %>
8 | Our records indicate that you are not subscribed to mlcomp's emails list
9 |
10 | The email address <%= @user.email %> is not subscribed to our list. If this is in error, please contact mlcomp.support@gmail.com for more information.
11 | <% end -%>
--------------------------------------------------------------------------------
/site/app/views/users/unsubscribe_success.html.erb:
--------------------------------------------------------------------------------
1 | Success
2 | You have successfully unsubscribed <%= @user.email %> from our email list
--------------------------------------------------------------------------------
/site/app/views/workers/index.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :sidebar do %>
2 |
5 |
6 | <% btn_list = [] %>
7 | <% n = Worker.countInactive %>
8 | <% btn_list << nice_button("Remove #{n} inactive workers", :action => :prune, :id => :none) if n > 0 %>
9 | <%= make_list "ul", btn_list %>
10 |
11 | <% end %>
12 |
13 | A worker performs a run.
14 |
15 | <%= render :partial => 'table/many_table_show', :locals => { :tparams => @tparams } %>
16 |
--------------------------------------------------------------------------------
/site/config/environments/development.rb:
--------------------------------------------------------------------------------
1 | # Settings specified here will take precedence over those in config/environment.rb
2 |
3 | # In the development environment your application's code is reloaded on
4 | # every request. This slows down response time but is perfect for development
5 | # since you don't have to restart the webserver when you make code changes.
6 | config.cache_classes = false
7 |
8 | # Log error messages when you accidentally call methods on nil.
9 | config.whiny_nils = true
10 |
11 | # Show full error reports and disable caching
12 | config.action_controller.consider_all_requests_local = true
13 | config.action_view.debug_rjs = true
14 | config.action_controller.perform_caching = false
15 | config.action_view.cache_template_extensions = false
16 |
17 | # Don't care if the mailer can't send
18 | config.action_mailer.raise_delivery_errors = false
19 |
--------------------------------------------------------------------------------
/site/config/environments/production.rb:
--------------------------------------------------------------------------------
1 | # Settings specified here will take precedence over those in config/environment.rb
2 |
3 | # The production environment is meant for finished, "live" apps.
4 | # Code is not reloaded between requests
5 | config.cache_classes = true
6 |
7 | # Use a different logger for distributed setups
8 | # config.logger = SyslogLogger.new
9 |
10 | # Full error reports are disabled and caching is turned on
11 | config.action_controller.consider_all_requests_local = false
12 | config.action_controller.perform_caching = true
13 | config.action_view.cache_template_loading = true
14 |
15 | # Enable serving of images, stylesheets, and javascripts from an asset server
16 | # config.action_controller.asset_host = "http://assets.example.com"
17 |
18 | # Disable delivery errors, bad email addresses will be ignored
19 | # config.action_mailer.raise_delivery_errors = false
20 |
--------------------------------------------------------------------------------
/site/config/environments/test.rb:
--------------------------------------------------------------------------------
1 | # Settings specified here will take precedence over those in config/environment.rb
2 |
3 | # The test environment is used exclusively to run your application's
4 | # test suite. You never need to work with it otherwise. Remember that
5 | # your test database is "scratch space" for the test suite and is wiped
6 | # and recreated between test runs. Don't rely on the data there!
7 | config.cache_classes = true
8 |
9 | # Log error messages when you accidentally call methods on nil.
10 | config.whiny_nils = true
11 |
12 | # Show full error reports and disable caching
13 | config.action_controller.consider_all_requests_local = true
14 | config.action_controller.perform_caching = false
15 |
16 | # Disable request forgery protection in test environment
17 | config.action_controller.allow_forgery_protection = false
18 |
19 | # Tell ActionMailer not to deliver emails to the real world.
20 | # The :test delivery method accumulates sent emails in the
21 | # ActionMailer::Base.deliveries array.
22 | config.action_mailer.delivery_method = :test
23 |
--------------------------------------------------------------------------------
/site/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format
4 | # (all these examples are active by default):
5 | # Inflector.inflections do |inflect|
6 | # inflect.plural /^(ox)$/i, '\1en'
7 | # inflect.singular /^(ox)en/i, '\1'
8 | # inflect.irregular 'person', 'people'
9 | # inflect.uncountable %w( fish sheep )
10 | # end
11 |
--------------------------------------------------------------------------------
/site/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 | # Mime::Type.register_alias "text/html", :iphone
6 |
--------------------------------------------------------------------------------
/site/config/mlcomp_site_params.yml.example:
--------------------------------------------------------------------------------
1 | ---
2 | :email_configured: true # Set this if you want to enable email.
3 | :email_config_params: # Information used to send out all emails.
4 | :port: 587
5 | :authentication: :plain
6 | :user_name: USERNAME@gmail.com
7 | :password: PASSWORD
8 | :address: smtp.gmail.com
9 | :notify_recipients: # When user comments or events happen on the server, these email addresses get notified.
10 | - @gmail.com
11 | - @gmail.com
12 |
--------------------------------------------------------------------------------
/site/db/migrate/001_create_users.rb:
--------------------------------------------------------------------------------
1 | class CreateUsers < ActiveRecord::Migration
2 | def self.up
3 | create_table :users do |t|
4 | t.string :username, :limit => 30, :null => false
5 | t.string :password_hash, :limit => 30, :null => false
6 | t.timestamps
7 | end
8 | end
9 |
10 | def self.down
11 | drop_table :users
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/site/db/migrate/002_create_datasets.rb:
--------------------------------------------------------------------------------
1 | class CreateDatasets < ActiveRecord::Migration
2 | def self.up
3 | create_table :datasets do |t|
4 | t.string :name, :limit => 60
5 | t.text :description
6 | t.text :source
7 | t.string :task_type
8 | t.string :location #local path at which dataset stored
9 | t.timestamps
10 | end
11 |
12 | create_table :datasets_users do |t|
13 | t.integer :dataset_id, :user_id
14 | end
15 | end
16 |
17 | def self.down
18 | drop_table :datasets
19 | drop_table :datasets_users
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/site/db/migrate/003_remove_location_from_dataset.rb:
--------------------------------------------------------------------------------
1 | class RemoveLocationFromDataset < ActiveRecord::Migration
2 | def self.up
3 | remove_column :datasets, :location
4 | end
5 |
6 | def self.down
7 | add_column :datasets, :location, :string
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/004_create_programs.rb:
--------------------------------------------------------------------------------
1 | class CreatePrograms < ActiveRecord::Migration
2 | def self.up
3 | create_table :programs do |t|
4 | t.string :name, :limit => 60
5 | t.text :description
6 | t.string :format #language of program; binary?
7 | t.timestamps
8 | end
9 |
10 | create_table(:programs_users, :id => false) do |t|
11 | t.integer :program_id, :user_id
12 | end
13 | end
14 |
15 | def self.down
16 | drop_table :programs
17 | drop_table :programs_users
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/site/db/migrate/005_create_runs.rb:
--------------------------------------------------------------------------------
1 | class CreateRuns < ActiveRecord::Migration
2 | def self.up
3 | create_table :runs do |t|
4 | t.belongs_to :user
5 | t.belongs_to :program, :null => false
6 | t.belongs_to :dataset, :null => false
7 | t.timestamps
8 | end
9 | end
10 |
11 | def self.down
12 | drop_table :runs
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/site/db/migrate/006_fix_references_datasets_programs.rb:
--------------------------------------------------------------------------------
1 | class FixReferencesDatasetsPrograms < ActiveRecord::Migration
2 | def self.up
3 | drop_table :datasets_users
4 | add_column :datasets, :user_id, :integer #datasets belong to users
5 |
6 | drop_table :programs_users
7 | add_column :programs, :user_id, :integer #programs belong to users
8 | end
9 |
10 | def self.down
11 | create_table(:datasets_users, :id=>false) do |t|
12 | t.integer :dataset_id, :user_id
13 | end
14 | remove_column :datasets, :user_id
15 |
16 | create_table(:programs_users, :id => false) do |t|
17 | t.integer :program_id, :user_id
18 | end
19 | remove_column :programs, :user_id
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/site/db/migrate/007_add_fullname_to_user.rb:
--------------------------------------------------------------------------------
1 | class AddFullnameToUser < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :fullname, :string
4 | end
5 |
6 | def self.down
7 | remove_column :users, :fullname
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/008_fix_password_length.rb:
--------------------------------------------------------------------------------
1 | class FixPasswordLength < ActiveRecord::Migration
2 | def self.up
3 | change_column :users, :password_hash, :string, :null => false
4 | end
5 |
6 | def self.down
7 | change_column :users, :password_hash, :string, :limit => 30, :null => false
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/009_add_admin_user.rb:
--------------------------------------------------------------------------------
1 | class AddAdminUser < ActiveRecord::Migration
2 | def self.up
3 | #unless User.find_by_username("admin")
4 | #adminparams = {:username => "admin", :password => "mlcomp", :fullname => "The Administrator"}
5 | #admin = User.create adminparams;
6 | #end
7 | end
8 |
9 | def self.down
10 | #user = User.find_by_username("admin")
11 | #unless user.nil?
12 | #user.destroy
13 | #end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/site/db/migrate/011_create_run_statuses.rb:
--------------------------------------------------------------------------------
1 | class CreateRunStatuses < ActiveRecord::Migration
2 | def self.up
3 | create_table :run_statuses do |t|
4 | t.belongs_to :run, :null => false
5 | t.integer :max_memory_usage # Over the course of the run (bytes)
6 | t.integer :memory_usage # The current (final if run is done) (bytes)
7 | t.integer :max_disk_usage # Over the course of the run (bytes)
8 | t.integer :disk_usage # The current (final if run is done) (bytes)
9 | t.integer :real_time # Actual time spent running (milliseconds)
10 | t.integer :user_time # Effective CPU time (milliseconds)
11 | t.string :status # One of {ready, inprogress, done}
12 | t.timestamps
13 | end
14 | end
15 |
16 | def self.down
17 | drop_table :run_statuses
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/site/db/migrate/012_create_run_results.rb:
--------------------------------------------------------------------------------
1 | class CreateRunResults < ActiveRecord::Migration
2 | def self.up
3 | create_table :run_results do |t|
4 | t.string :key
5 | t.string :value
6 | t.belongs_to :run
7 | t.timestamps
8 | end
9 | end
10 |
11 | def self.down
12 | drop_table :run_results
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/site/db/migrate/013_revamp_runs.rb:
--------------------------------------------------------------------------------
1 | class RevampRuns < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :specification, :text
4 | add_column :runs, :result, :text
5 | add_column :runs, :allowed_time, :integer
6 | add_column :runs, :allowed_memory, :integer
7 | add_column :runs, :allowed_disk, :integer
8 |
9 | create_table :run_programs do |t|
10 | t.belongs_to :run
11 | t.belongs_to :program
12 | t.timestamps
13 | end
14 |
15 | drop_table :run_construct_arg_programs
16 | drop_table :run_results
17 | end
18 |
19 | def self.down
20 | remove_column :runs, :specification
21 | remove_column :runs, :result
22 | remove_column :runs, :allowed_time
23 | remove_column :runs, :allowed_memory
24 | remove_column :runs, :allowed_disk
25 |
26 | drop_table :run_programs
27 |
28 | create_table :run_construct_arg_programs do |t|
29 | t.belongs_to :run
30 | t.belongs_to :program
31 | t.timestamps
32 | end
33 | create_table :run_results do |t|
34 | t.string :key
35 | t.string :value
36 | t.belongs_to :run
37 | t.timestamps
38 | end
39 | end
40 | end
41 |
--------------------------------------------------------------------------------
/site/db/migrate/014_remove_main_program_id.rb:
--------------------------------------------------------------------------------
1 | class RemoveMainProgramId < ActiveRecord::Migration
2 | def self.up
3 | remove_column :runs, :main_program_id
4 | end
5 |
6 | def self.down
7 | add_column :runs, :main_program_id, :integer
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/015_add_info_spec.rb:
--------------------------------------------------------------------------------
1 | class AddInfoSpec < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :info_spec, :string
4 | end
5 |
6 | def self.down
7 | remove_column :runs, :info_spec
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/016_remove_split_present.rb:
--------------------------------------------------------------------------------
1 | class RemoveSplitPresent < ActiveRecord::Migration
2 | def self.up
3 | remove_column :datasets, :user_split_present
4 | end
5 |
6 | def self.down
7 | add_column :datasets, :user_split_present, :boolean
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/017_add_size_and_dataset_status.rb:
--------------------------------------------------------------------------------
1 | class AddSizeAndDatasetStatus < ActiveRecord::Migration
2 | def self.up
3 | add_column :datasets, :disk_size, :integer
4 | add_column :programs, :disk_size, :integer
5 | add_column :datasets, :result, :string
6 | end
7 |
8 | def self.down
9 | remove_column :datasets, :disk_size
10 | remove_column :programs, :disk_size
11 | remove_column :datasets, :result
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/site/db/migrate/018_dataset_processor_feedback.rb:
--------------------------------------------------------------------------------
1 | class DatasetProcessorFeedback < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :processed_dataset_id, :integer
4 | add_column :datasets, :processed, :boolean
5 | end
6 |
7 | def self.down
8 | remove_column :runs, :processed_dataset_id
9 | remove_column :datasets, :processed
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/site/db/migrate/019_string_to_text.rb:
--------------------------------------------------------------------------------
1 | class StringToText < ActiveRecord::Migration
2 | def self.up
3 | change_column :datasets, :result, :text
4 | change_column :runs, :info_spec, :text
5 | end
6 |
7 | def self.down
8 | change_column :datasets, :result, :string
9 | change_column :runs, :info_spec, :string
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/site/db/migrate/020_types.rb:
--------------------------------------------------------------------------------
1 | class Types < ActiveRecord::Migration
2 | def self.up
3 | add_column :programs, :constructor_signature, :string
4 | end
5 | def self_down
6 | remove_column :programs, :constructor_signature
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/db/migrate/022_zero_sort_fields.rb:
--------------------------------------------------------------------------------
1 | class ZeroSortFields < ActiveRecord::Migration
2 | def self.up
3 | add_column :programs, :sort0, :double
4 | add_column :datasets, :sort0, :double
5 | add_column :runs, :sort0, :double
6 | end
7 | def self_down
8 | remove_column :programs, :sort0
9 | remove_column :datasets, :sort0
10 | remove_column :runs, :sort0
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/site/db/migrate/023_run_program_dataset_fields.rb:
--------------------------------------------------------------------------------
1 | class RunProgramDatasetFields < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :main_program, :integer
4 | add_column :runs, :main_dataset, :integer
5 | end
6 | def self_down
7 | remove_column :runs, :main_program
8 | remove_column :runs, :main_dataset
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/site/db/migrate/20090105033521_create_workers.rb:
--------------------------------------------------------------------------------
1 | class CreateWorkers < ActiveRecord::Migration
2 | def self.up
3 | create_table :workers do |t|
4 | t.string :handle
5 | t.string :host, :limit => 60
6 | t.integer :num_cpus
7 | t.integer :cpu_speed
8 | t.integer :max_memory
9 | t.integer :max_disk
10 | t.timestamps
11 | end
12 |
13 | create_table :workers_users do |t|
14 | t.integer :worker_id, :user_id
15 | end
16 | create_table :workers_runs do |t|
17 | t.integer :worker_id, :run_id
18 | end
19 | end
20 |
21 | def self.down
22 | drop_table :workers
23 | drop_table :workers_users
24 | drop_table :workers_runs
25 | end
26 | end
27 |
--------------------------------------------------------------------------------
/site/db/migrate/20090105070115_update_worker_fields.rb:
--------------------------------------------------------------------------------
1 | class UpdateWorkerFields < ActiveRecord::Migration
2 | def self.up
3 | drop_table :workers_users
4 | drop_table :workers_runs
5 | add_column :workers, :user_id, :integer
6 | add_column :workers, :current_run_id, :integer
7 | end
8 |
9 | def self.down
10 | create_table :workers_users do |t|
11 | t.integer :worker_id, :user_id
12 | end
13 | create_table :workers_runs do |t|
14 | t.integer :worker_id, :run_id
15 | end
16 | remove_column :workers, :user_id
17 | remove_column :workers, :current_run_id
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/site/db/migrate/20090105205109_run_worker.rb:
--------------------------------------------------------------------------------
1 | class RunWorker < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :worker_id, :integer
4 | end
5 |
6 | def self.down
7 | remove_column :runs, :worker_id
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090105210700_worker_commands.rb:
--------------------------------------------------------------------------------
1 | class WorkerCommands < ActiveRecord::Migration
2 | def self.up
3 | add_column :workers, :command, :string
4 | end
5 |
6 | def self.down
7 | remove_column :workers, :command
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090106190056_main_id.rb:
--------------------------------------------------------------------------------
1 | class MainId < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :core_program_id, :integer
4 | add_column :runs, :core_dataset_id, :integer
5 | remove_column :runs, :main_program
6 | remove_column :runs, :main_dataset
7 | end
8 |
9 | def self.down
10 | remove_column :runs, :core_program_id
11 | remove_column :runs, :core_dataset_id
12 | add_column :runs, :main_program, :integer
13 | add_column :runs, :main_dataset, :integer
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/site/db/migrate/20090820012133_add_more_fields_to_users.rb:
--------------------------------------------------------------------------------
1 | class AddMoreFieldsToUsers < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :email, :string
4 | add_column :users, :affiliation, :string
5 | end
6 |
7 | def self.down
8 | remove_column :users, :email
9 | remove_column :users, :affiliation
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/site/db/migrate/20090822055710_program_datasets_valid.rb:
--------------------------------------------------------------------------------
1 | class ProgramDatasetsValid < ActiveRecord::Migration
2 | def self.up
3 | add_column :datasets, :valid, :boolean
4 | add_column :programs, :valid, :boolean
5 | add_column :datasets, :restricted_access, :boolean
6 | add_column :programs, :restricted_access, :boolean
7 | end
8 |
9 | def self.down
10 | remove_column :datasets, :valid
11 | remove_column :programs, :valid
12 | remove_column :datasets, :restricted_access
13 | remove_column :programs, :restricted_access
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/site/db/migrate/20090822061510_program_datasets_proper.rb:
--------------------------------------------------------------------------------
1 | class ProgramDatasetsProper < ActiveRecord::Migration
2 | def self.up
3 | remove_column :datasets, :valid
4 | remove_column :programs, :valid
5 | add_column :datasets, :proper, :boolean
6 | add_column :programs, :proper, :boolean
7 | end
8 |
9 | def self.down
10 | add_column :datasets, :valid, :boolean
11 | add_column :programs, :valid, :boolean
12 | remove_column :datasets, :proper
13 | remove_column :programs, :proper
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/site/db/migrate/20090924022336_program_ishelper.rb:
--------------------------------------------------------------------------------
1 | class ProgramIshelper < ActiveRecord::Migration
2 | def self.up
3 | add_column :programs, :is_helper, :boolean
4 | end
5 |
6 | def self.down
7 | remove_column :programs, :is_helper
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090924053536_worker_version.rb:
--------------------------------------------------------------------------------
1 | class WorkerVersion < ActiveRecord::Migration
2 | def self.up
3 | add_column :workers, :version, :integer
4 | end
5 |
6 | def self.down
7 | remove_column :workers, :version
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090928173733_adminfield.rb:
--------------------------------------------------------------------------------
1 | class Adminfield < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :admin, :boolean
4 | end
5 |
6 | def self.down
7 | remove_column :users, :admin
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090928181459_program_processed.rb:
--------------------------------------------------------------------------------
1 | class ProgramProcessed < ActiveRecord::Migration
2 | def self.up
3 | add_column :programs, :processed, :boolean
4 | end
5 |
6 | def self.down
7 | remove_column :programs, :processed
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090928183336_rename_admin.rb:
--------------------------------------------------------------------------------
1 | class RenameAdmin < ActiveRecord::Migration
2 | def self.up
3 | remove_column :users, :admin
4 | add_column :users, :is_admin, :boolean
5 | end
6 |
7 | def self.down
8 | remove_column :users, :is_admin
9 | add_column :users, :admin, :boolean
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/site/db/migrate/20090930175026_run_performance.rb:
--------------------------------------------------------------------------------
1 | class RunPerformance < ActiveRecord::Migration
2 | def self.up
3 | add_column :runs, :performance, :double
4 | end
5 |
6 | def self.down
7 | remove_column :runs, :performance
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20090930181626_run_error.rb:
--------------------------------------------------------------------------------
1 | class RunError < ActiveRecord::Migration
2 | def self.up
3 | remove_column :runs, :performance
4 | add_column :runs, :error, :double
5 | end
6 |
7 | def self.down
8 | add_column :runs, :performance, :double
9 | remove_column :runs, :error
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/site/db/migrate/20091029042756_program_dataset_state.rb:
--------------------------------------------------------------------------------
1 | class ProgramDatasetState < ActiveRecord::Migration
2 | def self.up
3 | add_column :programs, :process_status, :string
4 | add_column :datasets, :process_status, :string
5 | # Possible states: none, inprogress, success, failed
6 | (Program.find(:all)+Dataset.find(:all)).each { |x|
7 | x.process_status = x.processed ? 'success' : 'none'
8 | }
9 | remove_column :programs, :processed
10 | remove_column :datasets, :processed
11 | add_column :runs, :processed_program_id, :integer
12 | end
13 |
14 | def self.down
15 | add_column :programs, :processed, :boolean
16 | add_column :datasets, :processed, :boolean
17 | (Program.find(:all)+Dataset.find(:all)).each { |x|
18 | x.processed = x.process_status != 'success'
19 | }
20 | remove_column :programs, :process_status
21 | remove_column :datasets, :process_status
22 | remove_column :runs, :processed_program_id
23 | end
24 | end
25 |
--------------------------------------------------------------------------------
/site/db/migrate/20091105013404_add_user_reset_password_field.rb:
--------------------------------------------------------------------------------
1 | class AddUserResetPasswordField < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :reset_code, :string
4 | end
5 |
6 | def self.down
7 | remove_column :users, :reset_code
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20091113002227_add_comment_system.rb:
--------------------------------------------------------------------------------
1 | class AddCommentSystem < ActiveRecord::Migration
2 | def self.up
3 | create_table :comments, :force => true do |t|
4 | t.column :title, :string, :limit => 50, :default => ""
5 | t.column :comment, :string, :default => ""
6 | t.column :created_at, :datetime, :null => false
7 | t.column :commentable_id, :integer, :default => 0, :null => false
8 | t.column :commentable_type, :string, :limit => 15,
9 | :default => "", :null => false
10 | t.column :user_id, :integer, :default => 0, :null => false
11 | end
12 |
13 | add_index :comments, ["user_id"], :name => "fk_comments_user"
14 | end
15 |
16 | def self.down
17 | drop_table :comments
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/site/db/migrate/20091118102208_worker_last_run_time.rb:
--------------------------------------------------------------------------------
1 | class WorkerLastRunTime < ActiveRecord::Migration
2 | def self.up
3 | add_column :workers, :last_run_time, :datetime
4 | end
5 |
6 | def self.down
7 | remove_column :workers, :last_run_time
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20091223171853_add_more_prg_dset_info.rb:
--------------------------------------------------------------------------------
1 | class AddMorePrgDsetInfo < ActiveRecord::Migration
2 | def self.up
3 | add_column :datasets, :url, :string
4 | add_column :datasets, :author, :string
5 | add_column :programs, :url, :string
6 | add_column :programs, :language, :string
7 | add_column :programs, :tuneable, :boolean
8 | end
9 |
10 | def self.down
11 | remove_column :datasets, :url
12 | remove_column :datasets, :author
13 | remove_column :programs, :url
14 | remove_column :programs, :language
15 | remove_column :programs, :tuneable
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/site/db/migrate/20100121065917_add_all_table_indexes.rb:
--------------------------------------------------------------------------------
1 | class AddAllTableIndexes < ActiveRecord::Migration
2 | def self.up
3 | add_index :runs, [:core_dataset_id, :error]
4 | add_index :runs, [:core_program_id, :error]
5 | add_index :runs, [:user_id]
6 | add_index :run_programs, [:run_id, :program_id]
7 | add_index :run_datasets, [:run_id, :dataset_id]
8 | add_index :datasets, [:user_id]
9 | add_index :programs, [:user_id]
10 | add_index :runs, [:processed_dataset_id]
11 | add_index :runs, [:processed_program_id]
12 | end
13 |
14 | def self.down
15 | remove_index :runs, [:core_dataset_id, :error]
16 | remove_index :runs, [:core_program_id, :error]
17 | remove_index :runs, [:user_id]
18 | remove_index :run_programs, [:run_id, :program_id]
19 | remove_index :run_datasets, [:run_id, :dataset_id]
20 | remove_index :datasets, [:user_id]
21 | remove_index :programs, [:user_id]
22 | remove_index :runs, :processed_dataset_id
23 | remove_index :runs, :processed_program_id
24 | end
25 | end
--------------------------------------------------------------------------------
/site/db/migrate/20100726194400_user_email_subscription.rb:
--------------------------------------------------------------------------------
1 | class UserEmailSubscription < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :receive_emails, :boolean, :default => true
4 | end
5 |
6 | def self.down
7 | remove_column :users, :receive_emails
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/db/migrate/20100726233641_create_announcements.rb:
--------------------------------------------------------------------------------
1 | class CreateAnnouncements < ActiveRecord::Migration
2 | def self.up
3 | create_table :announcements do |t|
4 | t.string :serialized_message, :limit => 2.megabytes
5 | t.string :message_type
6 | t.integer :user_id
7 | t.boolean :processed, :default => false
8 | t.boolean :success, :default => false
9 |
10 | t.timestamps
11 | end
12 | end
13 |
14 | def self.down
15 | drop_table :announcements
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/site/db/migrate/20101007183241_add_rating.rb:
--------------------------------------------------------------------------------
1 | class AddRating < ActiveRecord::Migration
2 | def self.up
3 | add_column :programs, :avg_percentile, :double
4 | add_column :datasets, :avg_stddev, :double
5 | end
6 |
7 | def self.down
8 | remove_column :programs, :avg_percentile
9 | remove_column :datasets, :avg_stddev
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/site/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
3 |
--------------------------------------------------------------------------------
/site/lib/mlcomp/Constants.rb:
--------------------------------------------------------------------------------
1 | # MLcomp: website for automatic and standarized execution of algorithms on datasets.
2 | # Copyright (C) 2010 by Percy Liang and Jake Abernethy
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU Affero General Public License as
6 | # published by the Free Software Foundation, either version 3 of the
7 | # License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU Affero General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU Affero General Public License
15 | # along with this program. If not, see .
16 |
17 | class Constants
18 | BASE_PATH = ENV['MLCOMP_BASE_PATH'] or raise "Missing environment variable MLCOMP_BASE_PATH"
19 | DATASETS_DEFAULT_BASE_PATH = "#{BASE_PATH}/datasets"
20 | PROGRAMS_DEFAULT_BASE_PATH = "#{BASE_PATH}/programs"
21 | RUNS_DEFAULT_BASE_PATH = "#{BASE_PATH}/runs"
22 | TMP_PATH = ENV['TMP_PATH'] or raise "Missing environment variable TMP_PATH"
23 | end
24 |
--------------------------------------------------------------------------------
/site/lib/mlcomp/GenericRunInfo.rb:
--------------------------------------------------------------------------------
1 | require 'mlcomp/RunInfo'
2 |
3 | # A RunInfo is used to create a RunSpecification, the tree that describes the constructor of the program to be executed.
4 | # Usually the RunInfo is parametrized by a few parameters (e.g., see SupervisedLearningRunInfo).
5 | # This RunInfo is parametrized by a RunSpecification directly.
6 | class GenericRunInfo < RunInfo
7 | attr_reader :runSpecTree
8 |
9 | def initialize(runSpecTree)
10 | super(nil)
11 | @runSpecTree = runSpecTree
12 | end
13 |
14 | def self.defaultRunInfoSpecObj(runSpecTree)
15 | Specification.new([self, runSpecTree])
16 | end
17 |
18 | def getRunSpecObj
19 | spec = RunSpecification.new(@runSpecTree)
20 | spec.verifyTypes(RunException)
21 | spec
22 | end
23 |
24 | def coreProgram; nil end
25 | def coreDataset; nil end
26 | end
27 |
--------------------------------------------------------------------------------
/site/lib/mlcomp/Logging.rb:
--------------------------------------------------------------------------------
1 | # MLcomp: website for automatic and standarized execution of algorithms on datasets.
2 | # Copyright (C) 2010 by Percy Liang and Jake Abernethy
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU Affero General Public License as
6 | # published by the Free Software Foundation, either version 3 of the
7 | # License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU Affero General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU Affero General Public License
15 | # along with this program. If not, see .
16 |
17 | def log(s="",verbose=0)
18 | $logger = open(ENV['MLCOMP_SOURCE_PATH']+'/site/log/mlcomp.log', "a") unless $logger
19 | s = "#{verbose} #{Format.datetime(Time.now.to_i)} | #{s}"
20 | puts s
21 | $logger.puts s
22 | $logger.flush
23 | end
24 |
--------------------------------------------------------------------------------
/site/public/404.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 | The page you were looking for doesn't exist (404)
9 |
21 |
22 |
23 |
24 |
25 |
26 |
The page you were looking for doesn't exist.
27 |
You may have mistyped the address or the page may have moved.
28 |
29 |
30 |
--------------------------------------------------------------------------------
/site/public/422.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 | The change you wanted was rejected (422)
9 |
21 |
22 |
23 |
24 |
25 |
26 |
The change you wanted was rejected.
27 |
Maybe you tried to change something you didn't have access to.
28 |
29 |
30 |
--------------------------------------------------------------------------------
/site/public/500.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 | We're sorry, but something went wrong (500)
9 |
21 |
22 |
23 |
24 |
25 |
26 |
We're sorry, but something went wrong.
27 |
We've been notified about this issue and we'll take a look at it shortly.
28 |
29 |
30 |
--------------------------------------------------------------------------------
/site/public/dispatch.cgi:
--------------------------------------------------------------------------------
1 | #!C:/Program Files/ruby/bin/ruby
2 |
3 | require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
4 |
5 | # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
6 | # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
7 | require "dispatcher"
8 |
9 | ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
10 | Dispatcher.dispatch
--------------------------------------------------------------------------------
/site/public/dispatch.fcgi:
--------------------------------------------------------------------------------
1 | #!C:/Program Files/ruby/bin/ruby
2 | #
3 | # You may specify the path to the FastCGI crash log (a log of unhandled
4 | # exceptions which forced the FastCGI instance to exit, great for debugging)
5 | # and the number of requests to process before running garbage collection.
6 | #
7 | # By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
8 | # and the GC period is nil (turned off). A reasonable number of requests
9 | # could range from 10-100 depending on the memory footprint of your app.
10 | #
11 | # Example:
12 | # # Default log path, normal GC behavior.
13 | # RailsFCGIHandler.process!
14 | #
15 | # # Default log path, 50 requests between GC.
16 | # RailsFCGIHandler.process! nil, 50
17 | #
18 | # # Custom log path, normal GC behavior.
19 | # RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
20 | #
21 | require File.dirname(__FILE__) + "/../config/environment"
22 | require 'fcgi_handler'
23 |
24 | RailsFCGIHandler.process!
25 |
--------------------------------------------------------------------------------
/site/public/dispatch.rb:
--------------------------------------------------------------------------------
1 | #!C:/Program Files/ruby/bin/ruby
2 |
3 | require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
4 |
5 | # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
6 | # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
7 | require "dispatcher"
8 |
9 | ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
10 | Dispatcher.dispatch
--------------------------------------------------------------------------------
/site/public/download:
--------------------------------------------------------------------------------
1 | ../../var/download
--------------------------------------------------------------------------------
/site/public/images/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/ajax-loader.gif
--------------------------------------------------------------------------------
/site/public/images/alex.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/alex.jpg
--------------------------------------------------------------------------------
/site/public/images/book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/book.png
--------------------------------------------------------------------------------
/site/public/images/cmd:
--------------------------------------------------------------------------------
1 | wget http://www.clipartpal.com/_thumbs/pd/education/large_open_book.png -O book.png
2 | wget http://www.clker.com/cliparts/4/b/8/d/1194983813750083554server_mimooh_.svg.med.png -O server.png
3 | wget http://www.clker.com/cliparts/b/1/6/b/1195431327409717356database_base_de_donn__01r.svg.med.png -O database.png
4 | convert oldbook.png -fuzz 10% -transparent white book.png
5 |
--------------------------------------------------------------------------------
/site/public/images/create_run_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/create_run_img.png
--------------------------------------------------------------------------------
/site/public/images/database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/database.png
--------------------------------------------------------------------------------
/site/public/images/dataset_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/dataset_img.png
--------------------------------------------------------------------------------
/site/public/images/dataset_img2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/dataset_img2.png
--------------------------------------------------------------------------------
/site/public/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/favicon.ico
--------------------------------------------------------------------------------
/site/public/images/icon_profile.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icon_profile.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_back.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_forward.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_forward.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_go.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_go.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_paste.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_paste.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_print.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_print.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_refresh.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_refresh.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_refresh_blue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_refresh_blue.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_save.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_save.gif
--------------------------------------------------------------------------------
/site/public/images/icons/action_stop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/action_stop.gif
--------------------------------------------------------------------------------
/site/public/images/icons/application_dreamweaver.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/application_dreamweaver.gif
--------------------------------------------------------------------------------
/site/public/images/icons/application_firefox.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/application_firefox.gif
--------------------------------------------------------------------------------
/site/public/images/icons/application_flash.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/application_flash.gif
--------------------------------------------------------------------------------
/site/public/images/icons/arrow_down.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/arrow_down.gif
--------------------------------------------------------------------------------
/site/public/images/icons/arrow_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/arrow_left.gif
--------------------------------------------------------------------------------
/site/public/images/icons/arrow_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/arrow_right.gif
--------------------------------------------------------------------------------
/site/public/images/icons/arrow_up.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/arrow_up.gif
--------------------------------------------------------------------------------
/site/public/images/icons/box.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/box.gif
--------------------------------------------------------------------------------
/site/public/images/icons/calendar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/calendar.gif
--------------------------------------------------------------------------------
/site/public/images/icons/comment.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/comment.gif
--------------------------------------------------------------------------------
/site/public/images/icons/comment_blue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/comment_blue.gif
--------------------------------------------------------------------------------
/site/public/images/icons/comment_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/comment_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/comment_new.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/comment_new.gif
--------------------------------------------------------------------------------
/site/public/images/icons/comment_yellow.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/comment_yellow.gif
--------------------------------------------------------------------------------
/site/public/images/icons/copy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/copy.gif
--------------------------------------------------------------------------------
/site/public/images/icons/cut.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/cut.gif
--------------------------------------------------------------------------------
/site/public/images/icons/date.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/date.gif
--------------------------------------------------------------------------------
/site/public/images/icons/date_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/date_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/date_new.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/date_new.gif
--------------------------------------------------------------------------------
/site/public/images/icons/file_acrobat.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/file_acrobat.gif
--------------------------------------------------------------------------------
/site/public/images/icons/file_font.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/file_font.gif
--------------------------------------------------------------------------------
/site/public/images/icons/file_font_truetype.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/file_font_truetype.gif
--------------------------------------------------------------------------------
/site/public/images/icons/flag_blue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/flag_blue.gif
--------------------------------------------------------------------------------
/site/public/images/icons/flag_green.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/flag_green.gif
--------------------------------------------------------------------------------
/site/public/images/icons/flag_orange.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/flag_orange.gif
--------------------------------------------------------------------------------
/site/public/images/icons/flag_red.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/flag_red.gif
--------------------------------------------------------------------------------
/site/public/images/icons/flag_white.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/flag_white.gif
--------------------------------------------------------------------------------
/site/public/images/icons/folder.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/folder.gif
--------------------------------------------------------------------------------
/site/public/images/icons/folder_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/folder_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/folder_images.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/folder_images.gif
--------------------------------------------------------------------------------
/site/public/images/icons/folder_lock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/folder_lock.gif
--------------------------------------------------------------------------------
/site/public/images/icons/folder_new.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/folder_new.gif
--------------------------------------------------------------------------------
/site/public/images/icons/folder_page.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/folder_page.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_accept.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_accept.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_airmail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_airmail.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_alert.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_alert.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_attachment.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_attachment.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_clock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_clock.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_component.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_component.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_download.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_download.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_email.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_email.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_extension.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_extension.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_favourites.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_favourites.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_get_world.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_get_world.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_history.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_history.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_home.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_home.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_info.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_info.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_key.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_key.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_link.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_link.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_mail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_mail.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_monitor_mac.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_monitor_mac.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_monitor_pc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_monitor_pc.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_network.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_network.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_package.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_package.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_package_get.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_package_get.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_package_open.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_package_open.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_padlock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_padlock.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_security.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_security.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_settings.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_settings.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_user.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_user.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_wand.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_wand.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_world.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_world.gif
--------------------------------------------------------------------------------
/site/public/images/icons/icon_world_dynamic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/icon_world_dynamic.gif
--------------------------------------------------------------------------------
/site/public/images/icons/image.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/image.gif
--------------------------------------------------------------------------------
/site/public/images/icons/image_new.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/image_new.gif
--------------------------------------------------------------------------------
/site/public/images/icons/interface_browser.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/interface_browser.gif
--------------------------------------------------------------------------------
/site/public/images/icons/interface_dialog.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/interface_dialog.gif
--------------------------------------------------------------------------------
/site/public/images/icons/interface_installer.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/interface_installer.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_comments.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_comments.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_components.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_components.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_errors.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_errors.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_extensions.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_extensions.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_images.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_images.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_keys.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_keys.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_links.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_links.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_packages.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_packages.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_security.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_security.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_settings.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_settings.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_users.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_users.gif
--------------------------------------------------------------------------------
/site/public/images/icons/list_world.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/list_world.gif
--------------------------------------------------------------------------------
/site/public/images/icons/note.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/note.gif
--------------------------------------------------------------------------------
/site/public/images/icons/note_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/note_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/note_new.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/note_new.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_alert.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_alert.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_attachment.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_attachment.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_bookmark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_bookmark.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_boy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_boy.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_code.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_code.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_colors.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_colors.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_component.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_component.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_cross.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_cross.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_deny.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_deny.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_down.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_down.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_dynamic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_dynamic.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_edit.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_edit.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_extension.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_extension.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_favourites.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_favourites.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_find.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_find.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_flash.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_flash.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_girl.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_girl.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_html.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_html.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_java.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_java.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_key.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_key.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_left.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_link.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_link.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_lock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_lock.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_new.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_new.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_next.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_next.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_package.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_package.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_php.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_php.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_prev.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_prev.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_refresh.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_refresh.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_right.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_script.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_script.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_security.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_security.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_settings.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_settings.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_sound.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_sound.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_tag_blue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_tag_blue.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_tag_red.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_tag_red.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_text.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_text.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_text_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_text_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_tick.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_tick.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_tree.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_tree.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_up.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_up.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_url.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_url.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_user.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_user.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_user_dark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_user_dark.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_user_light.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_user_light.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_video.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_video.gif
--------------------------------------------------------------------------------
/site/public/images/icons/page_wizard.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/page_wizard.gif
--------------------------------------------------------------------------------
/site/public/images/icons/readme.txt:
--------------------------------------------------------------------------------
1 | mini icons - famfamfam.com
2 | Contact: mjames@gmail.com
--------------------------------------------------------------------------------
/site/public/images/icons/table.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/table.gif
--------------------------------------------------------------------------------
/site/public/images/icons/table_delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/table_delete.gif
--------------------------------------------------------------------------------
/site/public/images/icons/tables.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/icons/tables.gif
--------------------------------------------------------------------------------
/site/public/images/jake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/jake.png
--------------------------------------------------------------------------------
/site/public/images/job_running.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/job_running.gif
--------------------------------------------------------------------------------
/site/public/images/job_running2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/job_running2.gif
--------------------------------------------------------------------------------
/site/public/images/percy.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/percy.jpeg
--------------------------------------------------------------------------------
/site/public/images/profilepic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/profilepic.png
--------------------------------------------------------------------------------
/site/public/images/program_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/program_img.png
--------------------------------------------------------------------------------
/site/public/images/program_img2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/program_img2.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/bottomleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/bottomleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/bottommiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/bottommiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/bottomright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/bottomright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/close.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/close_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/close_hover.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/leftbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/leftbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/leftmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/leftmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/lefttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/lefttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/loader.gif
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/rightbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/rightbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/rightmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/rightmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/righttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/righttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/topleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/topleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/topmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/topmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/creamy/topright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/creamy/topright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/bottomleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/bottomleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/bottommiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/bottommiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/bottomright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/bottomright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/close.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/close_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/close_hover.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/leftbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/leftbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/leftmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/leftmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/lefttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/lefttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/loader.gif
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/rightbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/rightbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/rightmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/rightmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/righttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/righttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/topleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/topleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/topmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/topmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/darkgrey/topright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/darkgrey/topright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/bottomleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/bottomleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/bottommiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/bottommiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/bottomright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/bottomright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/close.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/close_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/close_hover.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/leftbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/leftbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/leftmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/leftmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/lefttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/lefttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/loader.gif
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/rightbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/rightbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/rightmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/rightmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/righttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/righttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/topleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/topleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/topmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/topmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/default/topright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/default/topright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/bottomleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/bottomleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/bottommiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/bottommiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/bottomright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/bottomright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/close.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/close_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/close_hover.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/leftbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/leftbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/leftmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/leftmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/lefttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/lefttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/loader.gif
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/rightbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/rightbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/rightmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/rightmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/righttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/righttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/topleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/topleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/topmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/topmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protoblue/topright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protoblue/topright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/bottomleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/bottomleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/bottommiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/bottommiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/bottomright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/bottomright.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/close.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/close_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/close_hover.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/leftbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/leftbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/leftmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/leftmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/lefttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/lefttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/loader.gif
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/rightbottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/rightbottom.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/rightmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/rightmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/righttop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/righttop.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/topleft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/topleft.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/topmiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/topmiddle.png
--------------------------------------------------------------------------------
/site/public/images/prototip/styles/protogrey/topright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/prototip/styles/protogrey/topright.png
--------------------------------------------------------------------------------
/site/public/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/rails.png
--------------------------------------------------------------------------------
/site/public/images/result_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/result_img.png
--------------------------------------------------------------------------------
/site/public/images/server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/server.png
--------------------------------------------------------------------------------
/site/public/images/spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/spinner.gif
--------------------------------------------------------------------------------
/site/public/images/spinner2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/images/spinner2.gif
--------------------------------------------------------------------------------
/site/public/javascripts/add_to_list.js:
--------------------------------------------------------------------------------
1 | var item_list = [];
2 | function add_to_list (name, id, list_name) {
3 | if (item_list.indexOf(id) == -1) {
4 | item_list.push(id);
5 | var li_item = new Element('li', { id: 'item_' + id, item_id: id });
6 | var remlink = new Element('a', {href:'#'});
7 | remlink.appendChild(document.createTextNode("rem"));
8 | remlink.observe('click', function () {
9 | rm_from_list(id);
10 | });
11 | li_item.appendChild(document.createTextNode(name + " "));
12 | li_item.appendChild(remlink);
13 | $(list_name).insert({bottom: li_item});
14 | var input_name = list_name + "_input";
15 | var elements = $$('#' + list_name + ' li').map(
16 | function (elt) {
17 | return elt.readAttribute('item_id');
18 | }
19 | );
20 | $(input_name).writeAttribute('value', elements.toJSON());
21 | } else {
22 | alert("Already added " + name + " to list!");
23 | }
24 | };
25 |
26 | function rm_from_list (id) {
27 | item_list = item_list.without(id);
28 | $('item_' + id).remove();
29 | }
--------------------------------------------------------------------------------
/site/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-Agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/site/public/stylesheets/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/stylesheets/bg.png
--------------------------------------------------------------------------------
/site/public/stylesheets/dotted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/stylesheets/dotted.gif
--------------------------------------------------------------------------------
/site/public/stylesheets/dottedangle.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/percyliang/mlcomp/9669625c0a0a631c86fbaa86a428f26fb4ff10a2/site/public/stylesheets/dottedangle.gif
--------------------------------------------------------------------------------
/site/script/about:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/about'
4 |
--------------------------------------------------------------------------------
/site/script/console:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/console'
4 |
--------------------------------------------------------------------------------
/site/script/destroy:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/destroy'
4 |
--------------------------------------------------------------------------------
/site/script/generate:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/generate'
4 |
--------------------------------------------------------------------------------
/site/script/mlcomp/resource:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | # Command-line utility to add programs, datasets, manipulate the database
4 | exec(File.dirname($0)+'/../runner', 'require "lib_autoloader"; ResourceManager.main('+ARGV.map{|x|"'"+x+"'"}.join(',')+')')
5 |
--------------------------------------------------------------------------------
/site/script/mlcomp/run-server:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | # Restart the server every night at 4am.
4 | while true
5 | lastRestartTime = Time.now
6 | puts "=== STARTING SERVER"
7 | pid = fork { exec(File.dirname($0)+'/../server', *ARGV) }
8 | while not Process.wait(pid, Process::WNOHANG)
9 | #if Time.now.strftime("%S") == "04" && Time.now - lastRestartTime > 2
10 | # Restart around 4am and at least 20 hours after last restart
11 | if Time.now.strftime("%H") == "04" && Time.now - lastRestartTime > 20*60*60
12 | puts "=== KILLING SERVER"
13 | Process.kill('TERM', pid)
14 | end
15 | sleep 1
16 | end
17 | puts "=== SERVER TERMINATED"
18 | sleep 5
19 | end
20 |
--------------------------------------------------------------------------------
/site/script/mlcomp/send_announcements:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | system(File.dirname($0)+'/../runner', File.dirname($0)+"/announcement_script.rb")
--------------------------------------------------------------------------------
/site/script/performance/benchmarker:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/performance/benchmarker'
4 |
--------------------------------------------------------------------------------
/site/script/performance/profiler:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/performance/profiler'
4 |
--------------------------------------------------------------------------------
/site/script/performance/request:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/performance/request'
4 |
--------------------------------------------------------------------------------
/site/script/plugin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/plugin'
4 |
--------------------------------------------------------------------------------
/site/script/process/inspector:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/process/inspector'
4 |
--------------------------------------------------------------------------------
/site/script/process/reaper:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/process/reaper'
4 |
--------------------------------------------------------------------------------
/site/script/process/spawner:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/process/spawner'
4 |
--------------------------------------------------------------------------------
/site/script/runner:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/runner'
4 |
--------------------------------------------------------------------------------
/site/script/server:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/server'
4 |
--------------------------------------------------------------------------------
/site/test/fixtures/announcements.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | one:
4 | subject: MyString
5 | body: MyString
6 | created_at: 2010-07-26 16:36:41
7 |
8 | two:
9 | subject: MyString
10 | body: MyString
11 | created_at: 2010-07-26 16:36:41
12 |
--------------------------------------------------------------------------------
/site/test/fixtures/datasets.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | one:
4 | name: MyString
5 | description: MyText
6 | source: MyText
7 | task_type: MyString
8 |
9 | two:
10 | name: MyString
11 | description: MyText
12 | source: MyText
13 | task_type: MyString
14 |
--------------------------------------------------------------------------------
/site/test/fixtures/programs.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | one:
4 | name: MyString
5 | description: MyText
6 | format: MyString
7 |
8 | two:
9 | name: MyString
10 | description: MyText
11 | format: MyString
12 |
--------------------------------------------------------------------------------
/site/test/fixtures/run_construct_arg_programs.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | # one:
4 | # column: value
5 | #
6 | # two:
7 | # column: value
8 |
--------------------------------------------------------------------------------
/site/test/fixtures/run_datasets.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | # one:
4 | # column: value
5 | #
6 | # two:
7 | # column: value
8 |
--------------------------------------------------------------------------------
/site/test/fixtures/run_results.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | one:
4 | key: MyString
5 | value: MyString
6 |
7 | two:
8 | key: MyString
9 | value: MyString
10 |
--------------------------------------------------------------------------------
/site/test/fixtures/run_statuses.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | # one:
4 | # column: value
5 | #
6 | # two:
7 | # column: value
8 |
--------------------------------------------------------------------------------
/site/test/fixtures/runs.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | # one:
4 | # column: value
5 | #
6 | # two:
7 | # column: value
8 |
--------------------------------------------------------------------------------
/site/test/fixtures/users.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | one:
4 | username: MyString
5 | password_hash: MyString
6 |
7 | two:
8 | username: MyString
9 | password_hash: MyString
10 |
--------------------------------------------------------------------------------
/site/test/fixtures/workers.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2 |
3 | # one:
4 | # column: value
5 | #
6 | # two:
7 | # column: value
8 |
--------------------------------------------------------------------------------
/site/test/functional/about_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class AboutControllerTest < ActionController::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/functional/datasets_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class DatasetsControllerTest < ActionController::TestCase
4 | def test_should_get_index
5 | get :index
6 | assert_response :success
7 | assert_not_nil assigns(:datasets)
8 | end
9 |
10 | def test_should_get_new
11 | get :new
12 | assert_response :success
13 | end
14 |
15 | def test_should_create_dataset
16 | assert_difference('Dataset.count') do
17 | post :create, :dataset => { }
18 | end
19 |
20 | assert_redirected_to dataset_path(assigns(:dataset))
21 | end
22 |
23 | def test_should_show_dataset
24 | get :show, :id => datasets(:one).id
25 | assert_response :success
26 | end
27 |
28 | def test_should_get_edit
29 | get :edit, :id => datasets(:one).id
30 | assert_response :success
31 | end
32 |
33 | def test_should_update_dataset
34 | put :update, :id => datasets(:one).id, :dataset => { }
35 | assert_redirected_to dataset_path(assigns(:dataset))
36 | end
37 |
38 | def test_should_destroy_dataset
39 | assert_difference('Dataset.count', -1) do
40 | delete :destroy, :id => datasets(:one).id
41 | end
42 |
43 | assert_redirected_to datasets_path
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/site/test/functional/faq_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class FaqControllerTest < ActionController::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/functional/general_display_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class GeneralDisplayControllerTest < ActionController::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/functional/my_stuff_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class MyStuffControllerTest < ActionController::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/functional/programs_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class ProgramsControllerTest < ActionController::TestCase
4 | def test_should_get_index
5 | get :index
6 | assert_response :success
7 | assert_not_nil assigns(:programs)
8 | end
9 |
10 | def test_should_get_new
11 | get :new
12 | assert_response :success
13 | end
14 |
15 | def test_should_create_program
16 | assert_difference('Program.count') do
17 | post :create, :program => { }
18 | end
19 |
20 | assert_redirected_to program_path(assigns(:program))
21 | end
22 |
23 | def test_should_show_program
24 | get :show, :id => programs(:one).id
25 | assert_response :success
26 | end
27 |
28 | def test_should_get_edit
29 | get :edit, :id => programs(:one).id
30 | assert_response :success
31 | end
32 |
33 | def test_should_update_program
34 | put :update, :id => programs(:one).id, :program => { }
35 | assert_redirected_to program_path(assigns(:program))
36 | end
37 |
38 | def test_should_destroy_program
39 | assert_difference('Program.count', -1) do
40 | delete :destroy, :id => programs(:one).id
41 | end
42 |
43 | assert_redirected_to programs_path
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/site/test/functional/runs_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class RunsControllerTest < ActionController::TestCase
4 | def test_should_get_index
5 | get :index
6 | assert_response :success
7 | assert_not_nil assigns(:runs)
8 | end
9 |
10 | def test_should_get_new
11 | get :new
12 | assert_response :success
13 | end
14 |
15 | def test_should_create_run
16 | assert_difference('Run.count') do
17 | post :create, :run => { }
18 | end
19 |
20 | assert_redirected_to run_path(assigns(:run))
21 | end
22 |
23 | def test_should_show_run
24 | get :show, :id => runs(:one).id
25 | assert_response :success
26 | end
27 |
28 | def test_should_get_edit
29 | get :edit, :id => runs(:one).id
30 | assert_response :success
31 | end
32 |
33 | def test_should_update_run
34 | put :update, :id => runs(:one).id, :run => { }
35 | assert_redirected_to run_path(assigns(:run))
36 | end
37 |
38 | def test_should_destroy_run
39 | assert_difference('Run.count', -1) do
40 | delete :destroy, :id => runs(:one).id
41 | end
42 |
43 | assert_redirected_to runs_path
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/site/test/functional/table_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class TableControllerTest < ActionController::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/functional/users_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class UsersControllerTest < ActionController::TestCase
4 | def test_should_get_index
5 | get :index
6 | assert_response :success
7 | assert_not_nil assigns(:users)
8 | end
9 |
10 | def test_should_get_new
11 | get :new
12 | assert_response :success
13 | end
14 |
15 | def test_should_create_user
16 | assert_difference('User.count') do
17 | post :create, :user => { }
18 | end
19 |
20 | assert_redirected_to user_path(assigns(:user))
21 | end
22 |
23 | def test_should_show_user
24 | get :show, :id => users(:one).id
25 | assert_response :success
26 | end
27 |
28 | def test_should_get_edit
29 | get :edit, :id => users(:one).id
30 | assert_response :success
31 | end
32 |
33 | def test_should_update_user
34 | put :update, :id => users(:one).id, :user => { }
35 | assert_redirected_to user_path(assigns(:user))
36 | end
37 |
38 | def test_should_destroy_user
39 | assert_difference('User.count', -1) do
40 | delete :destroy, :id => users(:one).id
41 | end
42 |
43 | assert_redirected_to users_path
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/site/test/unit/announcement_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class AnnouncementTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/dataset_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class DatasetTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/emailer_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class EmailerTest < ActionMailer::TestCase
4 | tests Emailer
5 | # replace this with your real tests
6 | def test_truth
7 | assert true
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/site/test/unit/program_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class ProgramTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/run_construct_arg_program_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class RunConstructArgProgramTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/run_dataset_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class RunDatasetTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/run_result_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class RunResultTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/run_status_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class RunStatusTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/run_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class RunTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/user_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class UserTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/test/unit/worker_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class WorkerTest < ActiveSupport::TestCase
4 | # Replace this with your real tests.
5 | def test_truth
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/CHANGELOG:
--------------------------------------------------------------------------------
1 | * revision 8: Changed has_many :dependent => true to :dependent => :destroy for Rails 1.2.2
2 | + Thanks Josh Martin
3 | Added an order clause in the has_many relationship.
4 | Made comment column type to text from string in migration example in README
5 | + Thanks Patrick Crowley
6 | Added this CHANGELOG file.
7 |
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/MIT-LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2006 Cosmin Radoi
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/init.rb:
--------------------------------------------------------------------------------
1 | # Include hook code here
2 | require 'acts_as_commentable'
3 | ActiveRecord::Base.send(:include, Juixe::Acts::Commentable)
4 |
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/install.rb:
--------------------------------------------------------------------------------
1 | # Install hook code here
2 |
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/lib/comment.rb:
--------------------------------------------------------------------------------
1 | class Comment < ActiveRecord::Base
2 | belongs_to :commentable, :polymorphic => true
3 |
4 | # NOTE: install the acts_as_votable plugin if you
5 | # want user to vote on the quality of comments.
6 | #acts_as_voteable
7 |
8 | # NOTE: Comments belong to a user
9 | belongs_to :user
10 |
11 | # Helper class method to lookup all comments assigned
12 | # to all commentable types for a given user.
13 | def self.find_comments_by_user(user)
14 | find(:all,
15 | :conditions => ["user_id = ?", user.id],
16 | :order => "created_at DESC"
17 | )
18 | end
19 |
20 | # Helper class method to look up all comments for
21 | # commentable class name and commentable id.
22 | def self.find_comments_for_commentable(commentable_str, commentable_id)
23 | find(:all,
24 | :conditions => ["commentable_type = ? and commentable_id = ?", commentable_str, commentable_id],
25 | :order => "created_at DESC"
26 | )
27 | end
28 |
29 | # Helper class method to look up a commentable object
30 | # given the commentable class name and id
31 | def self.find_commentable(commentable_str, commentable_id)
32 | commentable_str.constantize.find(commentable_id)
33 | end
34 | end
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/tasks/acts_as_commentable_tasks.rake:
--------------------------------------------------------------------------------
1 | # desc "Explaining what the task does"
2 | # task :acts_as_commentable do
3 | # # Task goes here
4 | # end
--------------------------------------------------------------------------------
/site/vendor/plugins/acts_as_commentable/test/acts_as_commentable_test.rb:
--------------------------------------------------------------------------------
1 | require 'test/unit'
2 |
3 | class ActsAsCommentableTest < Test::Unit::TestCase
4 | # Replace this with your real tests.
5 | def test_this_plugin
6 | flunk
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/update-db:
--------------------------------------------------------------------------------
1 | # Updates the mysql database.
2 | # Run this script each time you check out from the repository.
3 | echo "Doing rails migration..."
4 | (cd site && $GEM_HOME/bin/rake db:migrate) || exit 1
5 | echo "Creating DB views..."
6 | cat create-views.sql | grep -v "^--" | mysql -u rails_user mlcomp_development
7 | echo "Finished creating views!"
8 |
--------------------------------------------------------------------------------
/worker/args.rb:
--------------------------------------------------------------------------------
1 | ../site/lib/utils/args.rb
--------------------------------------------------------------------------------
/worker/general.rb:
--------------------------------------------------------------------------------
1 | ../site/lib/utils/general.rb
--------------------------------------------------------------------------------
/worker/version:
--------------------------------------------------------------------------------
1 | 35
2 |
--------------------------------------------------------------------------------
7 | <%= comment.user.affiliation %>
8 | Posted at <%= comment.created_at.to_s %> 9 | <% if session[:user] && (session[:user].id == comment.user[:id]) %> 10 |
11 | 12 | <%= link_to_remote "Delete Comment", :url => { 13 | :controller => 'general_display', :action => "delete_comment", :id => comment.id }, 14 | :html => {:class => 'smallbutton'} 15 | # , :confirm => "Are you certain you want to delete this comment?" 16 | %> 17 | 18 | <% end %> 19 |