Sandbox

Version 4 (Hiroya Kubo, 2010-01-19 08:30)

1 1 Hiroya Kubo
h1. Sandbox
2 1 Hiroya Kubo
3 2 Hiroya Kubo
4 2 Hiroya Kubo
> Hi, there is another open source OMR software, which is named “Shared Questionnaire System(SQS)”, runs on multi-platform environment. It is very easy to install and use it with JavaWebStart.
5 2 Hiroya Kubo
> SQS’s OMR form data is written in XHTML, XForms and SVG, styled with customizable XSLT scripts, and rendered into PDF. SQS has Swing GUIs to edit OMR forms, and Ajax GUIs to browse its results. 
6 2 Hiroya Kubo
> 
7 2 Hiroya Kubo
> I am the developer of SQS project. I have been developing SQS for over 6 years. If you are interested in SQS, I would be very happy.
8 2 Hiroya Kubo
> 
9 2 Hiroya Kubo
> Please check: http://dev.sqs2.net/projects/show/sqs .
10 2 Hiroya Kubo
> Some screenshots of SQS are available at http://dev.sqs2.net/wiki/sqs/Quick_Tour .
11 2 Hiroya Kubo
> 
12 2 Hiroya Kubo
> Thanks.
13 2 Hiroya Kubo
14 4 Hiroya Kubo
  
15 4 Hiroya Kubo
* In Wikipedia, an obvious advertisement is prohibited upon the Wikipedia's policy. http://bit.ly/5PPF1i
16 4 Hiroya Kubo
17 4 Hiroya Kubo
18 3 Hiroya Kubo
> ScanSnapS300は、それまでのScanSnapとはLED光源やセンサ方式が異なるので、他の従来のスキャナよりも明るめ・コントラスト低めにスキャンされるのかもしれませんね。
19 3 Hiroya Kubo
>
20 3 Hiroya Kubo
> ところで、MarkReaderのウィンドウ上部には「設定」というメニューがあります。
21 3 Hiroya Kubo
> ここから、「マーク認識の設定」の画面内で、スライダー式のGUIで、『「塗られているマーク欄(黒)」と「塗られていないマーク欄(白)」を区別するマーク濃度』の値を調整できるようになっているのですが、この機能についてはご存じでしょうか。
22 3 Hiroya Kubo
> 本エントリは、この値を調整してもダメだったので、スキャンの後処理でコントラストを強めることにした、という趣旨なのでしょうか。
23 3 Hiroya Kubo
> 
24 3 Hiroya Kubo
> ちなみに、学校現場の多くでは、保護者に配る資料などにも、白色率の低い(再生紙混合率の高い)用紙を使っています。極端な例では、SQSでのアンケート用紙の印刷に、「わら半紙」を常用している人たちまでいます。そうした状況を踏まえて、SQSでは、『「塗られているマーク欄(黒)」と「塗られていないマーク欄(白)」を区別するマーク濃度』の規定値を、かなり明るめの色に設定してあります。さもないと、全部のマークが「塗られている」と判断されてしまいますので。
25 3 Hiroya Kubo
26 2 Hiroya Kubo
27 1 Hiroya Kubo
<pre><code class="java">
28 1 Hiroya Kubo
29 1 Hiroya Kubo
/**
30 1 Hiroya Kubo
31 1 Hiroya Kubo
 Browser.java
32 1 Hiroya Kubo
33 1 Hiroya Kubo
 Copyright 2007 KUBO Hiroya (hiroya@cuc.ac.jp).
34 1 Hiroya Kubo
35 1 Hiroya Kubo
 Licensed under the Apache License, Version 2.0 (the "License");
36 1 Hiroya Kubo
 you may not use this file except in compliance with the License.
37 1 Hiroya Kubo
 You may obtain a copy of the License at
38 1 Hiroya Kubo
39 1 Hiroya Kubo
 http://www.apache.org/licenses/LICENSE-2.0
40 1 Hiroya Kubo
41 1 Hiroya Kubo
 Unless required by applicable law or agreed to in writing, software
42 1 Hiroya Kubo
 distributed under the License is distributed on an "AS IS" BASIS,
43 1 Hiroya Kubo
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
44 1 Hiroya Kubo
 See the License for the specific language governing permissions and
45 1 Hiroya Kubo
 limitations under the License.
46 1 Hiroya Kubo
 */
47 1 Hiroya Kubo
package net.sqs2.browser;
48 1 Hiroya Kubo
49 1 Hiroya Kubo
import java.awt.Desktop;
50 1 Hiroya Kubo
import java.io.File;
51 1 Hiroya Kubo
import java.io.IOException;
52 1 Hiroya Kubo
import java.net.URL;
53 1 Hiroya Kubo
54 1 Hiroya Kubo
import javax.jnlp.UnavailableServiceException;
55 1 Hiroya Kubo
56 1 Hiroya Kubo
public class Browser {
57 1 Hiroya Kubo
58 1 Hiroya Kubo
	public static void showDocument(File file, URL url) {
59 1 Hiroya Kubo
60 1 Hiroya Kubo
		if (file != null) {
61 1 Hiroya Kubo
			try {
62 1 Hiroya Kubo
				Desktop.getDesktop().open(file);
63 1 Hiroya Kubo
			} catch (IOException e) {
64 1 Hiroya Kubo
				e.printStackTrace();
65 1 Hiroya Kubo
			}
66 1 Hiroya Kubo
		} else {
67 1 Hiroya Kubo
			try {
68 1 Hiroya Kubo
				if ("file".equals(url.getProtocol()) && File.separatorChar == '\\') {
69 1 Hiroya Kubo
					new NativeBrowserLauncher().showDocument(url);
70 1 Hiroya Kubo
					return;
71 1 Hiroya Kubo
				}
72 1 Hiroya Kubo
73 1 Hiroya Kubo
				try {
74 1 Hiroya Kubo
					new Java6DesktopBrowserLauncher().showDocument(url);
75 1 Hiroya Kubo
					return;
76 1 Hiroya Kubo
				} catch (IOException ex1) {
77 1 Hiroya Kubo
				} catch (ClassCastException ex) {
78 1 Hiroya Kubo
				}
79 1 Hiroya Kubo
80 1 Hiroya Kubo
				try {
81 1 Hiroya Kubo
					new JNLPBrowserLauncher().showDocument(url);
82 1 Hiroya Kubo
					return;
83 1 Hiroya Kubo
				} catch (UnavailableServiceException ex2) {
84 1 Hiroya Kubo
				} catch (NullPointerException ex2) {
85 1 Hiroya Kubo
				}
86 1 Hiroya Kubo
87 1 Hiroya Kubo
				new NativeBrowserLauncher().showDocument(url);
88 1 Hiroya Kubo
89 1 Hiroya Kubo
			} catch (Exception ex) {
90 1 Hiroya Kubo
				ex.printStackTrace();
91 1 Hiroya Kubo
			}
92 1 Hiroya Kubo
		}
93 1 Hiroya Kubo
	}
94 1 Hiroya Kubo
95 1 Hiroya Kubo
}
96 1 Hiroya Kubo
</code></pre>