Tips
このページにはいろいろなTipsを書きます。
[Python] 機械学習の環境構築 †
2020/12/11
[Ubuntu] Ubuntu 20.04 LTSをインストール †
2020/12/11
- 現時点で最新版のLTSである20.04のISOイメージをダウンロードした。
- 仮想マシンを起動すると最初にOSのインストールイメージを聞かれる。
- ホストの光学ドライブからしかインストールできないのかと思いISOイメージをDVDに焼いたが、ISOからインストールできた。
- デバイス⇒光学ドライブ⇒ディスクイメージを選択、の後に仮想マシンをリセットでOK。
- 設定
- ほぼデフォルトのまま「続ける」
- OSが見つからなかった表示されたら、ディスクを削除してUbuntuをインストールを選択。
- タイムゾーンはTokyo
- ユーザ情報
- 再起動
- Guest additional CDをインストールすると画面サイズを変更できる。
- 最初の状態ではVGA画面しかないので小さすぎる。
- デバイスメニューに含まれているので、特にダウンロードする必要はない。
- 最初から入れてもいい気がする。
- ディスクサイズの変更
- 最初、デフォルトの10GBで作ったら小さすぎた。
- ディスクの拡張は2段階で行う。
- 第1段階:VirtualBox側
- 仮想マシンのディスクサイズを広げる。
- Oracle VM VirtualBoxマネージャのファイル⇒仮想メディアマネージャ⇒プロパティでサイズを変更する。
- 第2段階:Ubuntu側
- ディスクユーティリティを起動
- 上の拡張パーティションを選んで設定ギアボタンを押してサイズ変更を選んで拡張する。
- 下のファイルシステムパーティションを選んで設定ギアボタンを押してサイズ変更を選んで拡張する。
- それほど時間はかからなかった。
- 実験的にもう1個作った
- KISAマシン2
- ユーザ情報
- ID: fuchida
- PW: taXXXXkeYYY
- VMの名前を変えてみた。
- KSIAマシン2からふちだVMへ。
- VMの名前を変えるとホストのファイルのフォルダ名は変わった。
- .vdiファイルの名前は前のまま。
- これを変えたらファイルが見つからないという事態になった。
[VirtualBox] VirtualBoxのインストール †
2020/12/11
- Window10にVirtualBoxをインストールした。
- 単にOracleのページからダウンロードしてインストーラーを実行しただけ。
- この時点での最新版6.1
- VirtualBoxに仮想マシンをインストールした。
- 設定
- 基本的にはデフォルトの通り。
- C:ドライブがいっぱいなので、D:に変更した。
- 名前:KISAマシン
- マシンフォルダ:D:\VirtualBox VMs
- タイプ:Linux
- バージョン:Ubuntu(64-bit)
- メモリサイズ:8192MB
- ハードディスク:仮想ハードディスクを作成する
- ハードディスクのファイルタイプ:VDI(VirtualBox Disk Image)
- 物理ハードディスクにあるストレージ:可変サイズ
- ファイルの場所とサイズ:D:\VirtualBox VMs\KISAマシン\KISAマシン.vdi
- サイズ:10.00GB
[HTML5] テーブルのwidth=100%がはみ出る件 †
- 外側のdivにpadding:8px;などを設定していると、その内部のtableがwidth:100%;ではみ出る。
- これは、widthの効果が実際のcontentsだけでなくpaddingにも及ぶことが原因であり、tableがはみ出ているわけではなく、その外側のdivがはみ出ているのである。
- これを避けるには、外側のdivにbox-sizing:border-box;を指定する。
- これにより、widthがpaddingまで含むようになる。
[HTML5] Js Test DriverをNetBeansから使う †
Js Test DriverはGoogleが提供しているJavaScript用のテスト環境である。
単体でサーバになって、ブラウザ上でのテストを可能にする。
さらに、NetBeans Connectorを使えれば、デバッグでもできるらしい。
詳しい設定方法等はここにある。
ここでは、具体的な手順を中心に説明する。
Js Test Driverの準備 †
- 上記のサイトからJsTestDriver-X.X.X.jarをダウンロードする。
- 適当な場所(たとえばProgram Files\javaなど)に置く。
展開する必要はない。
NetBeans側での準備 †
HTML5プロジェクト"Test1"を、なにもオプションを指定せずに作成した場合について述べる。
JsTestDriverの準備 †
- 「プロジェクト」タブの右にある「サービス」タブから「JSテストドライバ」を右クリックし「構成」を選ぶ。
- JARファイルの場所に、上でコピーしたJsTestDriver-X.X.X.jarの場所を書く。
- サーバURLはそのまま。
- テストに使用するブラウザは適当に選ぶ。(複数を選ぶとそれぞれにテストしてくれる)
- OKを押す。
- もう一度「JSテストドライバ」を右クリックし「実行」を選ぶ。これで、ブラウザが起動し、JsTestDriverと書かれたウィンドウが(複数)開く。
設定ファイルの準備 †
- プロジェクトTest1を右クリックし、「jsTestDriver構成ファイル」を選ぶ。
- 「js-test-driver用のJasmineをダウンロードして構成」にチェックが入っていることを確認し、終了する。
- これでプロジェクトツリーに「単体テスト」というフォルダが作られ、その中にlibとunitという2つのフォルダが作られる。(実際のフォルダ名は"test"である)
- libの中にはJasmineというJavaScriptのテスト用フレームワークの一種に必要なファイルが格納される。
- unitにはテスト用コードを格納する。
- 「ファイル」タブに切り替えると、"test"というフォルダと"jsTestDriver.conf"というファイルが出来ていることがわかる。
- このファイルがテスト用の設定ファイル。
- これは後で修正する。
テストの準備 †
- プロジェクト名を右クリックし「プロパティ」を選ぶ。
- カテゴリの「JavsScriptテスト」で、テスト・プロバイダを「JSテストドライバ」にする。
- 構成の右端の「検索」ボタンを押すと、"jsTestDriver.conf"を自動的に見つけて設定してくれる。(もし見つからない場合は自分で設定する)
ソースコードの準備 †
- プロジェクトツリーの「サイトルート」に"js"というフォルダを作り、その中に"my.js"という以下のJavaScriptファイルを作成する。
var TestClass=function(){
this.add=function(a,b){
return a+b;
};
};
- プロジェクトルートの「単体テスト」の中の"unit"の中に"test.js"という以下のJavaScriptファイルを作成する。
TestCase('Test1',{
setUp:function(){
this.test_class=new TestClass();
},
'test Test1-1':function(){
assertEquals(this.test_class.add(2,3),5);
},
'test Test1-2':function(){
assertEquals(this.test_class.add(1,2),5);
}
});
- さらに、「ファイル」タブに切り替え、"jsTestDriver.conf"を以下のように修正する。
server: http://localhost:42442
load:
- test/lib/jasmine/jasmine.js
- test/lib/jasmine-jstd-adapter/JasmineAdapter.js
- public_html/js/my.js
- test/unit/*.js
exclude:
テストの実行 †
- プロジェクト名を右クリックして「テスト」を選ぶ。
- 自動的に"test.js"が実行され、結果が下側の「テスト結果」に表示される。
[HTML5] 画面全体の大きさの設定 †
ブラウザ画面全体に広がっているアプリを作ろうとすると、ベースとして全画面のdivタグがほしい。
が、以下のCSSでhtmlとbodyを全画面に広げると、なぜか横にスクロールバーが登場する。
- "AllScreen.css"
html,body{
width:100%;
height:100%;
}
div#all_area{
width:100%;
height:100%;
background-color:yellow;
}
- "AllScreen.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>All Screen</title>
<link rel="stylesheet" href="AllScreen.css"></link>
</head>
<body>
<div id="all_area">
this is all_area.
</div>
</body>
</html>
上記のコードを実行すると、div領域の周りに白い枠が出て、スクロールバーも表示される。
これは、bodyにmarginとして8が設定されていることが原因である。(ChromeとIE11では8だった)
したがって、CSSを下記のように修正すれば、ブラウザ全体のdiv領域を得ることができる。
これでブラウザ画面全体が黄色のdiv領域となり、スクロールバーは表示されなくなる。
[Servlet] Tomcat7とTomcat8の違いではまったこと †
Javaセミナー2014ではTomcat7を使っているが、最新のTomcat8を入れたら、挙動がだいぶ違う。
ServletRequest.getRealPath()の違い †
- Tomcat7
- getRealPath("reservation.data")で、".../K07/reservation.dat"へのパスが得られた。
- "reservation.dat"が存在しない場合では、そのパスが返る。
- Tomcat8
- 存在しないファイルを指定するとnullが戻るようだ。
- getRealPath("/")とすると、現在のフォルダへのパス".../K07"が帰ってくるので、それにつなげて、getRealPath("/")+"/reservation.dat" とすると、正しいバスを得ることができる。
文字コードの変換 †
- Tomcat7
- tmp=getParameter()でパラメータの値が得られるが、これはブラウザ側の文字コードなので、new String(tmp.getBytes("8859_1"),"JISAutoDetect")で文字コードを適切に変換できる。
- Tomcat8
- Tomcat側で勝手にパラメータの文字コードを変更するもよう。
- したがって、getParaemter()ではすでに何らかの変換された文字列が返される。(おそらくは"Latin-XX"系)
- これがすでに文字化けしているので、new String(...)で変換しようとしてもダメ。
- postメソッドで送る場合、事前に
request.setCharacterEncoding("UTF-8");
- でOKで、この場合、その後の変換処理は不要。
- getメソッドの場合、上記の設定は無視される。ので、コネクタに
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true" />
</Service>
</Server>
- という設定を加える必要があるようだ。(http://www.mclnet.co.jp/tech/java/tomcat-howto.html#connector_get_japanese)
渕田のセミナー