2017年11月07日

M/M/sの窓口理論とsimpy

うん、難しい数学の話はよくわからんので、無し。(´・ω・`)
工学屋としてはいいから結果と道具を寄越せ、理屈は任せるスタンスで。
(ある程度は理解しないとあかんけどねぇ・・。)

んで、何かというと WebSphereのコネクションプールとか、スレッドプールとかの
キューイングネットワークの設定するときによく使われる窓口理論なんだけど式がややこしいあれ。
なんとか過程とか分布とかいわれても統計学やってないとさっぱりだと思う。
ならばシミュレーションしてみよう。
理屈はよくわからんが、どのぐらい必要かわかればよいのだ(ぉ

(1)pythonを用意しよう
(2)pip install simpy

あとはsimpyのチュートリアルとにらめっこして、youtubeのチュートリアルを見て
コネコネしてみる。

・コネコネしていてわかったこと

  シミュレーション単位はミリ秒でやったほうがよい。少数秒でやるとpythonの処理の遅延でうまくシミュレートできない。
  
  random.expovariate(1.0/transactionTime) の意味は 収束させたい数(transactionTime)の逆数を引数に入れる。
  間隔が指数分布になっていると到着率がポアソン分布になるので、結果がマルコフ過程に\(^o^)/ウボア

  リソースの獲得待ちはwithで
          with self.res.request() as req:
               yield req

  時間を消費するのを待つところ
    yield env.timeout(generate_timimg)

  このgenerate_timimgの扱いがよくわかってない(´・ω・`)
  これも指数分布にしていいのか、なんでもいいのか、固定値なのか、で結果変わります。

  15分分シミュレーションするなら、以下のように(ミリ秒単位)
  env.run(until=1000*60*15)  # 15分シミュレーション(unit=msec)
  
珍しく備忘録だな、こりゃ。(゚Д゚)


posted by koteitan at 11:30| Comment(0) | python | このブログの読者になる | 更新情報をチェックする

2017年11月02日

Windowsのみでファイル行数をカウント

セキュリティ目的とはいえなんのスクリプトもツールも無しで
手足を奪ってから効率効率って、いうね(´・ω・`)

無いなら無いでなんとかするけど、プチっとイラっとするね。
いちいちエディタで開いて行を確認して、エクセルにコピペとかやってんですかね?

こちらを参考にコマンドプロンプトでどうにかしました。
%%iはバッチファイルに書くときの書き方なので、コマンドプロンプトに直接入力する場合は、
%を一つ減らして、%iと書いてね。




コマンドプロンプトでファイルの行数を数える方法

for /F %%i in ( filelist.txt ) do type "%%i" | find /c /v "" >> num.txt
posted by koteitan at 14:05| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年09月22日

拡張行サイズ

これで4Kだ8Kだ16Kだのページ制限から開放されて、クッソ大量のカラムをもつリレーショナルなんて糞食らえな
テーブルが作成できるぜ!ィヤッホゥ!☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ

んなわけあるか。ヽ(`Д´)ノウワァァァン!! やめてくれ。
こんな機能はマイグレーション時やシステム移行時の一時的な救済措置にだけ使え。
はみ出たデータは内部的にはblobやclobだ、Reorg時にもペナルティ食らうぞ。
金貰ってるんだからちゃんと設計しろ!

(;´Д`)ハァハァ よし、愚痴言い切った!

詳しくはここ

今北産業用
  • 拡張可能なものはvarchar/vargraphic (またはそれに準ずるもの)だけ(要は可変長だけ)
  • 一定サイズ以下の場合は拡張されずに行内に保存(varcharは24 vargraphicは12)
  • 拡張が適用されてもメタ情報が埋め込まれるので、そのカラムのバイトは1でも0でもない、24だ

行サイズはこのへんを見ながらちまちま計算するよろし。
posted by koteitan at 10:16| Comment(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2017年09月19日

IBMJREでの7.0と7R1(いわゆる7.1)の区別について

なんでこんなめんどくさい表記なのかわからないけど、普通にjava -version ってやっても7.1とはでてくれない。
7.0か7.1かを判別するにはJ9のバージョンを確認する。

7.0であればbuild 2.6
7.1であればbuild 2.7

(´・ω・`)こんなん役に立つかどうかわからんけど、
fix適用時とかにバージョンワカンネってなったときはどうぞ。


他のバージョンはちゃんと1.5とか1.8とか出るので、気にしなくていいんですが。

posted by koteitan at 14:39| Comment(0) | Java | このブログの読者になる | 更新情報をチェックする

2017年09月08日

cloc がコードメトリクスツールとして便利

windows版もあるしperl版もあるみたい。

Ubuntuなら、apt-get install clocでおk。
コマンドラインで各種メトリクスや差分、更新量がわかるので
プロジェクト管理とかにもいいかもですなぁ。
テキストやCSV,XMLで出せるので管理資料とも相性がよいかもですぞ。
VHDLにまで対応してたりしてすげぇなと思う。もうこれだけでいいんじゃないかってレベル。



posted by koteitan at 14:40| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年09月07日

V9でjythonが一気に2.7に!

今更遅いよ、って感はあるよね。(´・ω・`)
2.1から2.7まで一気に上げたみたいなので、
既存のscript、いろいろ問題でるでしょう。
予約語だって変わってるし。

マニュアル

リリース情報


ここから 備忘録 

pythonで予約語列挙するには

つ __import__('keyword').kwlist

pythonのバージョンを出力するには

つ sys.version

posted by koteitan at 18:24| Comment(0) | WebSphere | このブログの読者になる | 更新情報をチェックする

2017年08月22日

system uptime の取得方法(JVMのuptimeではない)

/proc/uptime を読むとか、PurocessBuilderでuptime叩くとかではなく、
nanotimeの計算式を逆手にとった方法があるみたい。
当然OSに依存すると思うので、テストしてから使用を推奨。

System.out.println("System.nanoTime " + System.nanoTime() / 1e9);

どういう状況で必要になるかはわからんけど。(´・ω・`)

How to get UNIX uptime in Java?
posted by koteitan at 14:34| Comment(0) | Java | このブログの読者になる | 更新情報をチェックする

2017年08月15日

lsattr

AIXだとデバイスの情報表示、
linuxだとファイルの拡張情報表示、
windowsで拡張情報表示はlsattrではなくて、attrib。

ややこいw


うまいぼうぶろぐ linuxとhttpdとperlのメモ
extファイルシステムの拡張属性

RHELのバニラでインストールだとxfsでも使えたな。
対応したのかも。
posted by koteitan at 16:37| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年08月06日

システムディスクの回復に使用できるディスクが見つかりません (0x80042414)の原因

一日悩んだので、同じ症状にハマった人用にメモを残しておきます。

事象でgoogle先生を検索すると、大抵は元のHDDよりSSDのが小さいからだ、
パーテンションを小さくしてからバックアップを取り直すとよい。 っていうのにあたると思います。
これは事実で同じエラーが出ます。
しかし私の場合は、元が120GBから360GBへの換装だったので、該当しません。
ドライブのエラーもありませんし原因は別でした。

原因

リストア先のディスクがシステムディスクとして認識されておらず
別のバスに接続されているデータドライブをシステムディスクだと認識されていたために
リストア対象から除外されているので当該のメッセージに至っていた。


何を言っているのか順番に説明します。
まず私のPCにはSSD(システム)、SSD(BF4用)、HDD(データドライブ)、USB-HDD(バックアップ用)と
4機接続されています。今回はSSD(システム)の換装なので、リストア時にSSD(BF4用)、データHDDは
リストア対象から除外するように選択しました。(USB-HDDはバックアップ格納場所なので自動除外)
そしてリストア実行すると、表題のメッセージがでます。
理由はSSD(BF4用)にリストアをしようとしているが、除外されている、という状態に陥っていました。
事象の確認のために一旦リストアをキャンセルし、コマンドプロンプトを開きます。
(システム回復メニューから、コマンドプロンプト)

(1)diskpart を実行します。
(2)list disk と入力します。

搭載されているディスク一覧が出力されます。換装しようとしているSSDがディスク何番と認識されているか
確認してください。

(3)select disk=system と入力します。

windows がシステムディスクだと認識している番号が表示されます。
換装しようとしているSSDのディスク番号以外が表示された場合は、同じ事象です。

対応方法

換装しようとしているディスクの起動順序を上げて、システムディスクと認識させましょう
マザーボードによって操作は異なるので、お使いのマザーのマニュアルを参照して変更します。
(BOOTメニューのHARDDRIVE BBS Priority のようなところです)

BIOSを変更し、再起動後、再びdiskpartからシステムディスクを確認し
換装対象のSSDがシステムディスクと認識されていればOKです。
あとは通常のリストア操作で大丈夫です。

市販のPCの場合はディスクは1機のことが多いので、こういうレア事象には至らないのかもですね。

こちらのyoutubeに大変助けられました。

posted by koteitan at 13:39| Comment(3) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年08月04日

シェルスクリプトのデバッグ

めちゃくちゃいい情報をみつけた。
これは素晴らしい。

超ウィザード級ハッカーのたのしみ
異常時にちゃんと止まるシェルスクリプト

kshでも使えそうです。\(^o^)/


posted by koteitan at 17:00| Comment(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。