uso

雑記いろいろ
★書いてある内容に保証は一切ありません。
 ご自身で判断をしてください。

[psql]とかPstgreSqlについて

2018-07-22 17:17:27 | work

時々触るのでコマンドメモ

■圧縮したBKテーブルの作成(そのあとにテーブルコメントを入れる)
CREATE TABLE WITH (appendonly=true, compresstype=quicklz) AS select * from ;
COMMENT ON TABLE IS 'コメント';

■psqlコマンド(copy)

https://www.postgresql.jp/document/9.3/html/app-psql.html#APP-PSQL-META-COMMANDS-COPY
psql
www.postgresql.jp
-a--echo-all. 読み込んだ全ての行を標準出力に表示します。 これは対話式モードよりもスクリプト処理の際に有用です。

コマンド例(powershellでやった)
①pgAdminのインストールフォルダに移動
 C:\Program Files (x86)\pgAdmin III\1.16 ※環境により違う。psql.exeがある場所
②コピー元DBにログインしコピー
(CSVアウトプットのパス指定をしないとPCのユーザー設定によってはPermission deniedが出る)
 .\psql --host=<hostname> --dbname=<dbname> --username=<username> --password
 \copy (select * from ) to 'c:\hoge\hoge.csv' with csv;
③コピー先DBにログインしCSVを復元
 .\psql --host=<hostname> --dbname=<dbname> --username=<username> --password
 \copy (col1,col2,・・・) from 'c:\hoge\hoge.csv' with csv


※カラム指定は省略可能→ (col1,col2,・・・)

■psqlコマンドその2(SQLファイル実行)

# psql -d {データベース名} -U {ユーザ名} -f {ファイル名}
psql -d command_test -U commander -f test.sql

\copyコマンドではSQLファイルの指定はできない。
間違えやすいので注意。
コメント

SVN

2018-01-17 13:39:12 | work
仕事で使ってみた。
ローカルの容量が小さくなったので、覚えてサクサク使えたらいいのだが。。

【SVNコマンドで検索する】http://ambiesoft.fam.cx/blog/archives/2546

svnレポジトリの中から全部を検索する。サーバーはserver、検索語句はaaa
$ svn list -R svn://server | awk '!/\/$/{print}' | sed 's;^;svn://server/;' | xargs -d \\n -n 1 --verbose svn cat |grep aaa
⇒一気にやると大変

移動
$cd c:\work\svn_command
不要ファイルは消す
$rm all*
リポジトリ内のファイル一覧を取り出す
$ svn list -R http(svn)://svnserver/dir > c:\work\svn_command\all
allファイルにはディレクトリが含まれているのでこれを削除する。ディレクトリは最後が/で終わっているのでこれを削除する。
$ awk "!/\/$/{print}" all > all2
all2の各行にsvn://svnserver.example.comを加える
$ sed "s;^;http(svn)://svnserver/dir/;" all2 > all3
★対象のSQL探す
$grep ".*TESTFILENAME.*" all3

★最新リビジョンを取得
all3に「svn log -l 1 」を足す
$ sed "s:^:svn log -l 1 :" all3 | sed "s:$::" > all4

コマンドを抜き取ってコピー
grep ".*TESTFILENAME.*" all4 | CLIP

※コマンドプロンプトでコピー&ペースト
alt + space + e + p

--以降はGREPのためのコマンド生成
all3はsvnのフルパスになった。つぎにsvn catを足す。
$ sed "s:^:svn cat ':" all3 | sed "s:$:':" > all4
grep を足す。ここでは”abc”を検索する。
$ sed "s:$:| grep -i abc:" all4 > all5
コメント

[vim]今更ながらやってみた

2018-01-09 00:22:18 | work
メモ


DLサイト
https://www.kaoriya.net/software/vim/

配置場所
D:\App\vim80-kaoriya-XXX
※フォルダ名にスペースあると動かないプラグインがあるらしい

パスを通した
> setx PATH "%PATH%";D:\App\vim80-kaoriya-XXX

gvim.exeとvim.exeがあるが違いは不明

とりあえずチュートリアル起動
コマンドプロンプト→vim→:Tutorial

30分くらいで終わるって書いてあったけど、終わらなかった。。
コメント

[UTIL]Windows7のSSDダイエット

2017-03-04 21:02:30 | util

■PCの再インストールをした時のメモ

Cドライブ(SSD)が圧迫されて不快(動作に問題ないレベル)だったので。
Cを使わず、できるだけDにデータを入れたい。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
いろいろ書いてますが、すべてにおいて、問題が起こる可能性があります。
やる方は自己責任のもと行ってください。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

やってみた結果、Cはとりあえず前ほど太らない。経過観察。
ただ、HDDががりがり云うようになったのと、ブラウザがちょっと遅い・・・

【手順】

1)データバックアップ→外付けHDDが壊れた→復旧

データバックアップでデスクトップのデータを放り込んだ瞬間壊れた。一瞬で挫折。
仕方ないのでOS再インストールの前に、外付けHDDの復旧。

アクセスすると「パラメーターが間違ってます」ええー
http://3adata.jp/blog/symptom-11

TestDiscとかやってみたけどだめ。
https://pctrouble.net/software/testdisk.html

あきらめて、データサルベージュを調査。
日本語表示のフリーというだけで以下を選択。
Recuva:http://freesoft-100.com/review/recuva.php
8時間かかったけど、なんとなく記憶にあるデータは復旧できた。けっこう優秀。


2)OS再インストール
CD入れてPC起動、Enter・・・→CとD両方クイックフォーマット。

ここからこのサイトどおりにしていく。Cをできるだけ使わないようにカスタマイズ。
http://edgenight.blog86.fc2.com/blog-entry-36.html

1:Windows7の通常インストール
 アカウント作成手前で「Shift+F10」→コマンドプロンプト

2:C⇒Dへファイルコピー
 robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ
 robocopy "C:\ProgramData" "D:\ProgramData" /E /COPYALL /XJ

3:Cドライブのフォルダの消去、Dドライブへのジャンクション設定のコマンドを実行
※ProgramDataに対するコマンドは失敗するが気にせず進む
 rmdir "C:\Users" /S /Q
 mklink /J "C:\Users" "D:\users"

 rmdir "C:\ProgramData" /S /Q
 mklink /J "C:\ProgramData "D:\ProgramData"

4:レジストリ編集
 regedit.exe
 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
 の以下のキーの値を%SystemDrive%からD:に変更します
 (既定)       REG_SZ       値の設定無し
 Default       REG_EXPAND_SZ    D:\Users\Default
 ProfilesDirectory  REG_EXPAND_SZ    D:\Users
 ProgramData     REG_EXPAND_SZ    D:\ProgramData
 Public       REG_EXPAND_SZ    D:\Users\Public

5:Windowsのインストール続行

6:ProgramDataフォルダの消去
 コマンドプロンプト(管理者)
 rmdir "C:\ProgramData" /S /Q
 mklink /J "C:\ProgramData "D:\ProgramData"

3)環境変数のTEMP・TMPをRamDiskに変更
http://magumataishi.cocolog-nifty.com/blog/2011/10/windows-7system.html

[コントロールパネル]→[システムとセキュリティ]→[システム]をクリック。
左にある[システムの詳細設定]をクリックしてシステムのプロパティを開く。[詳細設定]タブの[環境変数]をクリック

TEMP、TMP を選択して[編集]をクリックし変更。
%SystemRoot%TEMP⇒D:\任意の場所\TEMP

4)仮想ディスク(ページファイル)の設定
http://magumataishi.cocolog-nifty.com/blog/2011/10/windows-7system.html

[コントロールパネル]→[システムとセキュリティ]→[システム]の左にある[システムの評細設定]をクリックし
[詳細設定]のタブで、パフォーマンスの[設定]をクリック。[詳細設定]タブの仮想メモリ[変更]をクリック

Cドライブ:システム管理⇒ページングファイルなし
Dドライブ:なし⇒システム管理(カスタムサイズにはしない)

5)インデックスの作成を無効にする
http://magumataishi.cocolog-nifty.com/blog/2011/10/windows-7system.html

コンピュータ⇒ドライブのプロパティ⇒「このドライブ上のファイルに対し~インデックスを付ける」のチェックを外す
警告とかエラーがいろいろでるが、すべて無視して進み、最後にファイルの削除処理が終わるまで待つ。

6)エラー情報やログファイルを作成しない(ネットとメールするだけのPCにそこまで調査しないし)
http://magumataishi.cocolog-nifty.com/blog/2011/10/windows-7system.html

[コントロールパネル]→[システムとセキュリティ]→[システム]の
左にある[システムの評細設定]をクリックし[詳細設定]のタブで、起動と回復の[設定]をクリック

マルチブートの設定が無いなら、起動システムの「オペレーティングシステムの一覧を~」のチェックをを外す
システムエラーからログを解析する事は無いので、「システムログにイベントを書きこむ」のチェックを外す
自動的に再起動した時にカーネルダンプを残しても解析する事は無いので、これも[なし]に変更して[OK]


7)WindowsUpdateのダウンロード先変更

ここのとおり。
http://cojocco.blog113.fc2.com/blog-entry-162.html

1:Windows Update サービスの停止
 コマンドプロンプト⇒net stop wuauserv

2:フォルダの移動
 C:\Windows\SoftwareDistribution ⇒切り取り⇒D:\Windows・・・に移動

3:シンボリック リンクの作成
 コマンドプロンプト⇒ mklink /J "C:\Windows¥SoftwareDistribution" "D:\Windows¥SoftwareDistribution"

4:Windows Update サービスの再開
 コマンドプロンプト⇒net start wuauserv

これであとは延々とWindowsUpdateをする。


8)ブラウザを入れる
 ChromeをDL、インストール・・・あれ?インストール先選択できず、Cに入ってしまった。。
 Googleいわく、ひとつのPCに複数アカウントを考慮して云々らしい。
 迷惑なので、方法がないか探すと、
 
 ここを参照。
 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12114271507
 
1:DLサイト
 http://portableapps.com/apps/internet/google_chrome_portable
2:このサイトの緑色ボタン [Download Now] からGoogleChromePortable_29.0.1547.76_online.paf.exe を落とす。
3:衝突を避けるため、PC上の Chrome はアンインスト
4:GoogleChromePortable_29.0.1547.76_online.paf.exe を実行
 * 日本語を選ぶ、[次へ]、[同意する] の順にクリック
 * [参照] でインストール先を指定 (例) D:
 * [インストール] (ネット接続必要)
 * Google からのネットワーク・インストールが始まる
 * [完了]
 * インストール先の(例) D:\GoogleChromePortable\App\Chrome-bin\chrome.exe のデスクトップ・ショートカットを自分で作る
 * Chrome を起動し、必要に応じて、各種設定


【問題】
キーボードのNumLockが常にON。
ノートPCでテンキーもないのに不便。

ここを参照。
http://www.rem-system.com/post-819/

レジストリ編集: regedit.exe
HKEY_USER\.DEFAULT\Control Panel\keyboard
InitialKeyboardIndicatorsの値を確認すると、
「2147483648」

0ならOFFで、2ならONらしいが、これは?
https://pctrouble.net/running/c_drive_freespace.html

どうもDWORDが原因らしい。そういえば入ってたけど即効で消した。。

コメント

[java]JSPについて

2016-12-11 23:31:11 | work
■JavaとWebシステム
サーバサイドJava。それまではアプレットでクライアントから起動させるのが一般的だった。
1997年あたりにJavaがWebに登場
CGI(Common Gateway Interface)は,Webサーバーが他のプログラムを呼び出すためのインタフェース。
一般にCGIに準拠して作成したプログラムをCGIまたはCGIプログラムと呼ぶことが多い。

■サーブレットとは
Java Servlet(ジャバ サーブレット)とは、サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、
Javaで作成されたプログラム及びその仕様である。Java EEの一機能という位置づけになっている。
2014年1月現在の最新版は、Java EE 7 に含まれる Servlet 3.1 (JSR-340) である。

CGIがクライアントのリクエストのたびに新しいプロセスを起動するのに対して、サーブレットはメモリに常駐して、リクエストのたびにプロセスより軽量なスレッドを起動するので、効率がよい。
また、サーブレットはJavaで書かれているのでさまざまなプラットフォームで使うことができる。

必ずインポートする必要があるパッケージ
 java.ioパッケージ
 javax.servletパッケージ
 javax.http.servletパッケージ

■JSPとは
JavaServer Pages (JSP) は、HTML内にJavaのコードを埋め込んでおき、Webサーバで動的にWebページを生成してクライアントに返す技術のこと。
テンプレートエンジン。
サーブレットの技術の延長としてJSPがあるが、JSPはサーブレットを自動生成して動作している。
厳密に言えばサーブレットとJSPは違う技術だが、これらは組み合わせて使うのが一般的なため、JSPもサーブレットの一部として扱われることが多い。

JSPのライフサイクル
 ブラウザ→JSP起動(要求)→Webコンテナ→JSP出力(応答)→ブラウザ
 JSPページ→JSPコンパイラ→Servletプログラム→Javaコンパイラ→Servletクラス

メリット
・プログラムとデザインの棲み分けができる
・独自のタグでコードを埋め込むことができる

デメリット
・最初はコンパイルの時間がかかる
 ※2回目以降は必要なくなるため、結果としてアクセス速度が早くなる
・煩雑な処理を書くと、結局ごちゃごちゃする

--JavaServletで書いた場合
HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException {
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out=response.getWriter();
out.println("<html><head>");
out.println("<title>Hello, World!!</title>");
out.println("</head><body>");
out.println("

Hello,World!!

");
out.println("</body></html>");
}
}

--JSPで書いた場合
HelloWorld.jsp
<html>
<head>
<title>Hello, World!!</title>
</head>
<body>
<% out.println("

Hello,World!!

"); %>
</body>
</html>

■暗黙オブジェクト
宣言がなくても使えるオブジェクト
out javax.servlet.jsp.JspWriterクラスのオブジェクト変数
request javax.servlet.http.HttpServletRequestクラスのオブジェクト変数
response javax.servlet.http.HttpServletResponseクラスのオブジェクト変数
pageContext javax.servlet.jsp.PageContextクラスのオブジェクト変数
session javax.servlet.http.HttpSessionクラスのオブジェクト変数
application javax.servlet.ServletContextクラスのオブジェクト変数
config javax.servlet.ServletConfigクラスのオブジェクト変数
page javax.servlet.jsp.HttpJspPageクラスのオブジェクト変数
exception java.lang.Throwableクラスのオブジェクト変数

request:クライアントから送信されたリクエスト情報を処理する
response:クライアントに送信するレスポンス情報を処理する
session:セッションスコープ内で共有する情報を管理する
out: クライアントに情報を出力する

■JSPのタグ
Javaのコードは、<%と%>記号で囲まれた部分に書かれる。
スクリプトレット(<%~%>で囲まれたコード部分)。

ディレクティブ※1 <%@ ディレクティブ %> このJSPファイルの処理時の属性をWebコンテナに伝える
宣言 <%! 宣言 %> JSPで使用する変数やメソッドを宣言する
スクリプトレット <% Javaコード %> タグ内にJavaのコードを自由に記述する→スクリプトコードの断片(let)
式(Expression) <%= 式 %> 式の評価結果をHTMLの中に出力する
アクション※2 <jsp:アクション名> JSPでよく行う処理をタグで簡潔に記述する
コメント <%-- コメント --%> JSPとしてのコメントを記述する

※1ディレクティブ
ディレクティブ(指令)とは、その名のとおり、JSP/サーブレットコンテナに対する指示を行うものです。
<%@ ディレクティブ名 属性名1="属性値1" 属性名2="属性値2" ... %>

@page 現在のページの処理方法を指定
@include 外部ファイルをインクルード(「アクションタグ」参照)
@taglib タグライブラリを定義(後続の記事で紹介)

※2アクション
<jsp:include> 指定されたページをインクルード
<jsp:forward> 指定されたページにリダイレクト
<jsp:getProperty> JavaBeansのプロパティを取得
<jsp:setProperty> JavaBeansのプロパティに指定値(あるいはフォームの値)を設定
<jsp:useBean> JavaBeansの使用を定義

■JSPのコメント
<%--~--%>:静的なコンテンツ部分に記述、コンテナによる解析時に切り捨てられ、クライアント側には送信されない
/*~*/  :スクリプトレット、宣言部内で使用することができる、Javaの一般的なコメント構文。静的なHTMLコード内では使用することができない。
//    :「/*~*/」同様、スクリプトレット、宣言部内で使用することができる、Javaの一般的なコメント構文
 <%
  out.print("複数行コメントの例です。");
  /* コメント
    コメント */
  // コメント
 %>
:HTMLの一般的なコメント構文。静的なHTMLコードの中に記述することができます。クライアント側で処理されるため「ソースの表示」で見られる。



■MVCの考え方
Model  =JavaBeans
Control =Servlet
view   =JSP

JavaBeansとは「再利用性を高めるために、ある一定の構文規則にのっとって記述された」という以外には、まったく普通のクラスと同じ。
・引数のないコンストラクタが定義されていること
・プロパティを参照・設定するためのアクセサメソッドが定義されていること


https://ja.wikipedia.org/wiki/JavaServer_Pages
コメント