Surface Pro の解像度に3:2(1368:912)を追加する

Surface Pro 6 を購入したのだけれどもアスペクト比3:2で、解像度は2736×1824という特殊なディスプレイでちょっと不便だった。

具体的にはリモートデスクトップで無駄に広いせいで通信が重くなったり、特定のソフトで文字がやたら小さくなったりすごく不便。

でもディスプレイの設定に何故か1368×912が存在していない。

存在していないなら追加するしかないということで追加した。

CRU (Custom Resolution Utility)っていうツールで解像度を追加できます。

ダウンロード先

のcru-1.4.1をダウンロード

もしDLできないならcru-1.4.1(SHA256:74E661D0D30203B123EF0BF9E25746F8434C1627F4E63E2338BFAFF39238B783)で

ダウンロードをしたらCRUを起動

のAddをクリックして

に以下の好きなやつを入力してOK

Device Name オリジナルの解像度  100% の解像度
Surface Pro 3 2160 x 1440 (150%) 1440 x 960 (100%)
Surface Pro 4 2736 x 1824 (200%) 1368 x 912 (100%)
Surface Pro (2017) 2736 x 1824 (200%) 1368 x 912 (100%)
Surface Book 3000 x 2000 (200%) 1500 x 1000 (100%)

再起動したら無事Surfaceに解像度が増えてるはず!

OEMロック解除(ブートローダーアンロック)をしてGoogle Playストア の端末の認証が 認証されていませんになった場合の戻し方

今流行りのPayPayではなくてGoogle payの利用をしようとしたときにOEMロック解除(ブートローダーアンロック)を一度した端末だとGoogleペイにroot化された、または改造された形跡がありますので利用できないとか怒られて利用できなくなる。

その場合は一度OEMロック解除を開発者オプションから無効化して、それでGoogle Playストアのキャッシュとストレージを削除→端末の再起動で認証された端末に戻せる。

Google Playストアの設定の一番下で認証された端末になってたらOK!

今の所なので今後はどうなるかはわかりません。

 

Chromeの右クリックでリンクをMPCで開くする項目を追加する

PT3とかで録画したやつを自宅のサーバーに置いたりしたときにMPC(MediaPlayerClassic)で開きたい場合とか

ChromeのアドオンSend to Media Player Classic™ (MPC-HC) 0.1.6

でできます。

インストールするだけ!

個人的な設定でAdvancedのHideWindowedControlsをTrueにして

Keysの

Jump Forward(small)をX2 Down

Jump Backward(small)をX1 Down

タスクバーのViewのVideo FrameをTouch Windows from outside

にした。

Blenderでmaya式(Maya Presets)を使うときのショートカット一覧

なんか3Dモデリングをする機会があったので初心者ながら挑戦してみた。
どうもBlenderだとpythonコードを直接いじれるとのことで、3Dモデルの自動生成に興味があるからこれを採用。
業界的にはMayaと3ds Maxがよく使われてるとのことで、Mayaに関してはMelというプログラミング?みたいなのがあったけど初心者には敷居が高いので見送り。

学習は
https://www.youtube.com/watch?v=JYj6e-72RDs
を見ながらやった。

それで、操作は今後もしかしたらMaya使うことがあるかもしれない、業界のディフェクトスタンダードに合わせたいとのことでBlenderの操作方法をMayaを使ったことないのにMaya式に変更した。

意外に情報がないからここにまとめようと思います。

先人の方→リンク に追加していきます。

ハマったのが編集のときとかGの移動を押してもMaya式だと空中に浮く感じでクリックで決定とかは根本的にできなさそう(チュートリアルだとGを押して、マウスで移動さして左クリックで決定みたいな感じだったから、そんなふうに出来るかと思ったら根本的に無理っぽい?)

Maya式だとキーを押しながらマウスを左クリックして、離したら決定のよう

選択

Blender 操作内容 Maya式Blender
Tab オブジェクトモード/編集モードの切替 Tab
右クリック 選択 左クリック
Ctrl+Tab メッシュ選択モードの切替 右クリック
A 全選択/解除 Ctrl+A
B > 左ドラッグ 範囲選択 左ドラッグ
Ctrl+左ドラッグ 投げ縄選択 中ドラッグ
W Special Menu Ctrl+RMB
Ctrl+J オブジェクトの結合 Ctrl+J

編集

Blender 操作内容 Maya式Blender
Shift+A 新規オブジェクト Shift+A
G 移動 W
R 回転 E
S スケール R(Shift+Sでも?)
E 押し出し(extruding) Alt+X
F 辺/面作成 Alt+F
K 辺分割(ナイフツール)※1 K+左クリック
I Insert faces Ctrl+RMB→Insert faces
Alt+M 結合 Alt+M
Del/X 削除 Del
N プロパティを表示、非表示 N
T Object Tools panel を表示、非表示 T
F6 編集のオプション表示 F6
Alt+H Show Hidden Shift+Ctrl+H
H Hide selected Ctrl+H
Shift+H Hide Unselected Alt+H
O Proportional Editing O
Alt-RMB Edge Loop Ctrl+Alt
Shift+Alt-RMB 複数選択可能なEdge Loop Shift+Alt
Alt-RMB Edge Loop Ctrl+Alt
GG(連続) エッジスライド(点/線を線/面に沿って移動 なし?
Alt+M Merge(点同士をくっつける) Alt+M
Shift+R 前回操作の繰り返し G
Ctrl+V 点メニュー Ctrl+V
Ctrl+E 線メニュー Ctrl+E
Ctrl+F 面メニュー Ctrl+F
Ctrl+B ベベル(間取り) Ctrl+RMBでbevel
Ctrl+R ループカット Ctrl+R
Ctrl+L リンク作成 Ctrl+L
Shift+D 選択オブジェクトの複製 Ctrl+D
Shift 追加して選択する Shift
Ctrl 選択しているのを解除 Ctrl
C Circle Select Shift+Q
マウス中ホイールクリック Circle Selectで選択したのを解除 マウス中ホイールクリック
Ctrl+T triangulate faces(tri) なし
Alt+J triangulate faces(quad) なし
Shift+E Edge Crease なし?
Ctrl+(1~5) Add ModifierでSubdivisions SurfaceのsubdivisionsのViewの数(1~5)を追加 Ctrl+(1~5)

視点

Blender 操作内容 Maya式Blender
中ドラッグ 回転移動 Alt+左ドラッグ
Shift+中ドラッグ 並行移動 Alt+中ドラッグ
Ctrl+中ドラッグ/ホイール ズーム移動 Alt+右ドラッグ/ホイール
Ctrl+Alt+Q 通常画面/4分割画面の切替(Toggle quad view) Space
Ctrl+Up Arrow 通常画面/拡大画面の切替(Toggle maximize area) Shift+Space
. 選択にフォーカス F
Home 全体にフォーカス A
Num0 カメラ視点 Ctrl+0
Num1 Front Ortho面を表示 Ctrl+1
Back Ortho面を表示 Ctrl+2
Left Ortho面を表示 Ctrl+3
Right Ortho面を表示 Ctrl+4
Top Ortho面を表示 Ctrl+5
Bottom Ortho面を表示 Ctrl+6
Persp Orthoの切り替え Ctrl+7
M レイヤーを選択 M
Z WireFrame選択 4
Solid選択 5
Alt+Z Texture選択 6
F11 RenderViewの表示、非表示 F11
F12 Renderする F12
Alt+A アニメーションプレビュー(Escで解除) メディアの再生ボタン

※ちなみにわからないキーがある場合はCtrl+Shiftで検索できて(BlenderのShiftのみと同じ)するとキーショートカット見れる

※1 [K]のナイフで選択状態で[C] を押すとアングルを固定に出来る

間違ってるところはいっぱいあると思うので、指摘していただけると助かります。

さらにモデリングのメモ

点どうしをくっつける場合→merge(Alt+M)

カクカクの円をきれいにする→Insert Face([I]【blender】 [Ctrl+RMB→Insert faces]【maya式】)

作ったFaceのSubdivisionがおかしいときに再計算→プロパティのshading/UVsのNormalsのrecalculate

球とかをスムーズにするとき→プロパティのshading/UVsのNormalsのsmooth

球を真ん中を伸ばすというかカプセル状にしたい場合は真ん中でedge Loopで選択してSelectのSide of Activeで半球?を一括選択してX軸とかに押出[extruding]([E]【blender】 [Alt+X]【maya式】)

Pycharmでtensorflow-gpuをWindows 10 pro 1803に新規インストール

tensorflowのGPU版をWindows 10 pro 1803に入れたのでメモ

Cuda9を公式からダウンロードして入れる

インストールおわったら

cudnn-9.0-windows10-x64-v7.1っていうCuDNNをインストールしたCudaに追加
場所は

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

です

Anaconda3-5.2.0-Windows-x86_64を新規インストール

Pycharmも最新版をインストール

Pycharmを起動したら新規プロジェクトに
Project interpreter:New Virtualenv environment
を開いて
New environment using に Virtualenvを選択して
Base interpreterにさっきインストールした Anaconda3を選択

pycharmのterminalで

pip3 install –upgrade tensorflow-gpu

を実行

これで出来るはず

多量リクエスト(insert)時に10.1.21-MariaDBでmysql-connector-java-5.1.42-bin.jarでJDBCしたときに全然insertが追いつかない(更新されない)問題

なんかMariaDBでmysql-connector-java-5.1.42-bin.jarでJDBCするときにコネクションを貼りまくって、executeUpdateでいっぱい更新しようとしたとき、なんかMariaDBがもういいっぱいだよ~(dirty page だよ~)みたいな感じでぜんぜんSQLのInsertができなくなった

最初はMariaDBの問題かと思って色々チューニングしたりしたけど、解決せず

原因はJDBCのexecuteUpdateでした

これ1秒に100リクエストとかめっちゃ送るときにいちいちコネクション貼り直したりする感じで効率が悪いっぽい

めっちゃいっぱい更新したいときは

executeBatch

を使いましょう

そうしたら恐ろしいほどクエリが改善した。

ついでにいうとBulk insertにするとより早いとおもう!

 

public void doSQL(String sql) {
start();
try {
stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

 

から

 

}
public void doSQLBig(String sql) {
start();
try {
//conn.setAutoCommit(false);
stmt.addBatch(sql);
int result[]=stmt.executeBatch();

for(int i=0;i<result.length;i++){
System.out.println(“result”+i+”: “+result[i]);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

に変更した

出てたエラー↓

at com.mysql.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1552)
at com.mysql.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2607)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1480)
at com.coin.java.web.SQL.doSQL(SQL.java:198)
at com.coin.java.web.CommonApi.insertBalanceSQL(CommonApi.java:3256)
at com.coin.java.web.RateCallback.getBalance(RateCallback.java:479)
… 1 more
Caused by: java.net.SocketException: Unrecognized Windows Sockets error: 0: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:101)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:144)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:174)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3008)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3469)
… 12 more
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.GeneratedConstructorAccessor61.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1187)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1182)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2377)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2361)
at com.coin.java.web.SQL.start(SQL.java:81)
at com.coin.java.web.SQL.doSQL(SQL.java:196)
at com.coin.java.web.CommonApi.insertBalanceSQL(CommonApi.java:3256)
at com.coin.java.web.RateCallback.getBalance(RateCallback.java:482)
at com.coin.java.web.RateCallback$4.run(RateCallback.java:166)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 22,566 milliseconds ago. The last packet sent successfully to the server was 22,566 milliseconds ago.
at sun.reflect.GeneratedConstructorAccessor60.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3559)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3459)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3900)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
at com.mysql.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1552)
at com.mysql.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2607)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1480)
at com.coin.java.web.SQL.doSQL(SQL.java:198)
at com.coin.java.web.CommonApi.insertBalanceSQL(CommonApi.java:3256)
at com.coin.java.web.RateCallback.getBalance(RateCallback.java:479)
… 1 more

 

 

 

FirefoxのseleniumでnameとIDのelementを取得

答えから
//タグ名=”form”を検索
driver.findElement(By.cssSelector(“form”)).click();
//クラス名=”login”を検索
driver.findElement(By.cssSelector(“.login”)).click();
//id名=”form”を検索
driver.findElement(By.cssSelector(“#testForm”)).click();
//タグ名=”input”、クラス名=”login”を検索
driver.findElement(By.cssSelector(“input.login”)).click();
//タグ名=”form”、id名=”testForm”を検索
driver.findElement(By.cssSelector(“form#testForm”)).click();

 

終わり!
 

java.lang.OutOfMemoryErrorの対処法

java.lang.OutOfMemoryErrorは出ないけど、GCが頻発しまくるのでメモリの調整をしてみた

Tomcat の起動パラメータ設定
Eclipse のTomcat プラグイン設定
ウインドウ > 設定 > Tomcat > JVM 設定 > JVM パラメータへ追加

以下のパラメータを設定する。

-XX:MaxPermSize=256m
-Xmx1024m
-Xms256m
RAMの容量を考慮して、適宜メモリを割り当てる。

追記:また足りなくなった
-XX:MaxPermSize=512m
-Xmx2048m
-Xms512m

なんか根本的に解決探さないといけないかな