2017年2月21日火曜日

c# 別フォームのコントロール取得

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1251572732
が参考になりました。
Form1で Form2のインスタンスを作成したら 親フォーム情報を子フォームに
通知するところがミソのようです。
あとは、子フォームで、親フォームを宣言しておけば、親フォームを扱うことが
できるようです。

Form1(親)側
     Form2 f = new Form2();
            f.form1obj = this;
            f.Show();

Form2(子)側
 public Form1 form1obj;
textBox1.Text= form1obj.listView1.Items[comboBox1.SelectedIndex].SubItems[0].Text;


あと、当然Form1側のコントロールのModifiersはpublicにしておきます。

2017年1月29日日曜日

Ubuntuをアップデートしたら、400エラーが出るようになる

 結論から言うと、原因はJSPの中のjavascriptで、HTMLリクエストパラメータを全角文字などもそのまま送信していたのが原因でした。
 これまで、全角文字もそのまま送信していて問題はおきなかったのは、ブラウザ側あるいはtomcat?でうまく処理していてくれたためと思う。

 tomcatあるいはjavaあたりをアップデートした影響で、URLエンコードしてない影響がIE11にだけ現れたようだ。このへんの関係を発見するまで時間がかかった。

 400エラーが出るのは、IE11だけである。chromeやEdgeでは特に問題は起こってない。

 encodeURIにより、URLエンコードするだけで問題が解決した。デコードはとくにしなくても、だいじょうぶなようだ。ネットで検索しても、こういった症状が出てこなかったのは、基本的ミスだったからともいえる。

***************解決までの流れ
①Ubuntuサーバで、突然、IE11を使ったとき、全角のファイル名のときだけ、ダウンロードできなくなる。400エラーが出る。
②Vmware内の古いUbuntuサーバについては問題ない。試しにapt-get update
 すると、同じ症状が出る。原因はtomcatかjavaの影響?IE11との相性?いずれか、と考えた。
 ネットでは、IE11のUserAgentの文字がTridentに変わったことが、出ていたので対応させてみた。
 でも、これとは無関係だった。しばらく解決策がみつからない。
③他のリクエストパラメータを使うGETのところで、同じ症状(400エラー)が出ることを発見。
④③よりひょっとして、URLエンコードしていないのが原因でないかと疑う。試しにエンコードするように修正したら解決した。

※原因を見つけるには、試行錯誤しながら、考えるしかないようだ。

2017年1月24日火曜日

ポップアップ アラームを職場で

職場でPCにソフトをインストールするのはいろいろ制限もあるので
インストール無しで ポップアップアラームを使う方法を調べてみた。

VBSスクリプトを使う方法があり、参考になりました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11134557286

タスクスケジューラで、起動するようにしておけばOkです。
ただ、他のソフトを使用中でも、最前面にポップアップ画面を出したいので
MsgBox "○○の時間です",vbSystemModal,"タスクスケジューラ"
のようにするといいようです。
あとは、タスクスケジューラの時刻設定の手間は若干ありますが、許容範囲かと。
いくつか、よくつかうvbsスクリプトを登録しておいて、時刻だけ書き換えて使いまわせばOkでしょう。

2017年1月21日土曜日

netcommons3

netcommons3を入れてみた。

phpの設定では
C:\xampp\htdocs\NetCommons3\app\Console\cake.batの中では
C:\xampp\php\php.exe -q "%lib%cake.php" -working "%CD% " %*
とする必要がある。

すでに入れてあるmsyql5.6を使おうとするが、なかなかうまくいかない。

sql_modeがSTRICT_TRANS_TABLESだと正常に動作しないということらしい。
一時的にset sql_mode="";コマンドで、空白にしてみる。

Mysqlのパスが、xamppとは違うので
C:\xampp\apache\conf\extra¥httpd-xampp.confの中で
 SetEnv MYSQL_HOME "\\Program Files\\MySQL\\MySQL Server 5.6\\bin"
としてみたが、これでもだめ。

mysqlで
再度,
set session sql_mode="";
set global sql_mode="";
としてみたら、うまくインストールできた。(set session ~だけではだめで、set global ~でやっとうまくいく)
このへんは、ネットで見てもよくわからない。なぜか、my.iniの設定が反映されなかったため
このような試行錯誤状態になってしまった。CMSのインストールも、ちょっとしたバージョンのずれで、大変なようだ。



xampp

https://www.apachefriends.org/jp/index.html
から入手しインストールしてみた。
必要なものだけ選べるようだ。php,apacheだけ入れてみた

2016年11月18日金曜日

LPICの学習

 LPICの資格というのがある。ただ、検定料が高く、101から順に受けないといけないらしい。LPICのテキストはLinuxを使うためにはとても役に立つ。試験は受けないけれど、テキストで学習するだけで、十分役立つかなと思っている。
 早速、インストールのためのスクリプト作成で、役に立った。

(1)プロキシーの設定スクリプトをこんなふうに考えてみた
rm /etc/apt/apt.conf
echo -n "0:No proxy 1:proxy(NoAuth) 2:proxy(Auth):"
read yn
if [ $yn = "0" ]; then
 :
else
  cp apt_skt.conf /etc/apt/apt.conf
  echo -n "input ip-address & port for proxy(e.g.  172.*.*.*:port):"
  read iport
  sed -i -e "s/userpass@ipport/$iport/g" /etc/apt/apt.conf
    if [ $yn = "2" ]; then
          echo -n "input userID & password for proxy(e.g. user:pass):"
          read pwd
          sed -i -e "s/$iport/$pwd@$iport/g" /etc/apt/apt.conf
    fi
fi


(2)インストール失敗したら、再インストールするためのスクリプトを考えてみた
apt-get install samba mysql-server tomcat7
をUbuntu12.04でスクリプトで実行しようとしたけれど、どうもうまくいかない。14.04ではうまくいくようだけど、依存ライブラリが古いためいろいろひっかかるのかもしれない。数回繰り返すとなんとかなるようなので、
apt-get update --fix-missing
#*************reInstall*********
spath='/etc/samba'
tpath='/var/lib/tomcat7'
mpath='/etc/mysql'

while :
do
    if [ ! -d $spath ]; then
     apt-get install -y --fix-missing samba
    else
            break
    fi
done


while :
do
    if [ ! -d $tpath ]; then
     apt-get install -y --fix-missing tomcat7           
    else
         break
    fi
done

while :
do
    if [ ! -d $mpath ]; then
      apt-get install -y --fix-missing mysql-server
     else
      break
    fi
done

************
これでうまくいくと思ったが、なぜか、sambaがうまくインストールできない。
ディレクトリの有無でインストールのチェックというのはだめなようなので、プロセスをチェックするようにしてみた。
これで試してみようと思う。
while :
do
   sc=$(ps -e | grep 'samba' | wc -l)
    if [ $sc = "0" ]; then
     apt-get install -y --fix-missing samba
    else
            break
    fi
done

結果。。。なぜか、うまくいきませんでした。
原因を考えていますが、今のところ不明
こんなやり方は 邪道なのだろうか。。
スクリプトって、同期的に動いているのか 非同期なのか、そのへんも
関係しているんだろうか

素直に ひとつひとつ apt-get installするしかないようだ




2016年10月25日火曜日

指定したフォルダ以下のJPG画像データを一括して圧縮し、上書きするツール

共有フォルダに、必要以上に大きいサイズのJPGファイルが増えて、困っているとき、JPGを指定したサイズに圧縮できると便利です。

画像の一括圧縮は、以前は、Vixというツールで手動でやっていた作業です。
http://myutaro.blogspot.jp/2016/04/blog-post_20.html

これだと、その都度、設定が必要で、毎日、自動で行うことは難しいので、自作ツールを作ってみました。
毎日、タイムスケジューラで、起動して、少しずつ処理をすすめるソフトを作ってみました。

https://drive.google.com/file/d/0B4pVdxZ3b8JAX2Z6MGZGVHFoUk0/view?usp=sharing

Imagemagickのmogrify.exeというコマンドツール(GPL)を、ツールの中で利用させてもらっています。

一度に、いくつのフォルダを処理するか、横幅サイズの指定、どのフォルダ以下に指定するか
などを設定として保存できるようにしています。