ばったログ

3回に1回くらいはやったことをアウトプットしていく

[勉強会メモ]Python関連勉強会参加メモ2つ

まずはこちら
PythonBeginner沖縄 (1年ぶり復活!「機械学習ビギナー向けコース」) - connpass
当初は7月開催予定だったが8月に延期
当日も台風14号(ヤギ)が接近中だったが、無事開催された。

勉強会用資料

勉強会の内容

機械学習ビギナー向けコースと銘打ちつつも
「参加者の皆にはまだまだ早い(講師・談)」ということで、今回は入門準備編。

  • 前半
    Jupyter notebookの使い方やNumPy,Pandasの使い方をささっと
    この辺はざっくりだったので、jupyter notebookは使い方覚えておいてよかった。

  • 後半
    5人くらいのチームに別れて、横浜市の公開データを利用してのデータ解析実習。
    Pandasもちょっと予習してきたのだが、分析用コードが全然書けなかった(無念)。
    チーム内にコードをかける方がいたので、そちらはお任せしてアイディアの取りまとめとか資料作成の方で頑張ることに。
    公開データを活用したビジネスの提案と分析用データを準備し、発表を無事終えることができた。

感想

Pythonの文法やツールやライブラリの使い方を事前に予習していたが
いざ演習となると全然コードが書けなかった。
まだまだ機械学習の入り口にも辿りつけていない感じなので、
次回はもっと予習してから参加したい。


もう一つがこちら
PyData.Okinawa Meetup #36 OpenCVでとことん画像処理 - connpass

勉強会用資料

勉強会の内容

機械学習に限らず、画像を取り扱う際によく使われるOpenCVの使い方について。
ピクセルがどう値を持っているのかの説明から、領域分割までをコードを動かしながらの実習

感想

jupyter notebook 形式のファイルがそのまま講義資料になっていたので
コードと結果がすぐに見られるし、ちょっと数直や引数いじるだけで
色々試せるのがよかった。
ちなみに、上記の資料リンク内の資料のnotebookを順番に動かすだけでも勉強になります。

終わりに

Pythonは独学でやってるので、今後も勉強会等に参加していきたい。

VB6のコードリーディングのためにやったあれこれ(2018年版)

VB6で書かれたコードを読む必要があったので頑張ってみた記録

前提

サクラエディタ

シンタックスハイライトが効いているのでなんとか読めるが
コメントアウトされたコードの残骸が多く辛い。

関数にぴょんぴょん飛びたいのでctagでタグジャンプを試したがうまく行かなかった。
最終的にはgrepのちから技で解決。

Visual Studio Code

もうちょっと現代風な感じでコードを見てみたかったので試した。

やはりと言うかなんというか、先駆者を発見したので全力で乗っかる
VSCodeのシンタックスハイライトと拡張子の関連付け - 頭ん中

プロジェクトフォルダごと取り込んで
串刺し検索するとそこそこいい感じにはなった。

Visual Studio + (拡張)

VisualStudio でソースコード変換系(VB6→VB.NET)の記事が多く引っかかるが
おもしろい拡張が見つかったのでご紹介

Visual Studio のMarketplace から以下の拡張を入れることで
VB6のプロジェクトのまま Visual Studio で開くことができる

この拡張を入れることによってできることは意訳すると
だいたいこんな感じ

できる/使える

できない/使えない

  • 定義へジャンプ
  • フォーム デザイナ 画面
  • Visual Studio 単体でのコンパイル
    (ただし、VB6開発環境がインストールされている場合はPath指定してコンパイルできる様子、未検証)

定義へジャンプができないのがおしい
でも、コードがめちゃくちゃ長いと関数単位で閉じる機能だけでも便利かもしれない。

おまけ

これのサクラエディタ版か Mery版あたりのやつがあれば便利かもしれない
VB6のソースを Javaっぽく変換する秀丸マクロ

ブロッキングチェーンを勉強しています。

仮想通貨とか分散型台帳技術の方が検索で引っかかるけど
それとはちょっと違う話。

What is "ブロッキングチェーン"?

SQLServer でちょいちょい起こるロック待ちの連鎖のこと。
SQLServer の ロック思想上、ロック待ちは必ず発生するのでそれ自体は問題ない。 が、長いこと リソースをロックされているといろいろ困る、というかすごい困ってる。

すべてはロック思想の違いによる

このあたりの挙動は同じく商用DBである Oracle と比べると理解しやすい。

以下、いろいろ参考記事
* DBMSのロック・分離戦略と同時実行制御 - マイクロソフト系技術情報 Wiki
多バージョン法とロック法の項目を参照

READ COMMITTED   ・・・   COMMIT 済みのデータだけを読み取る
SQL Server および Oracle のデフォルト設定

トランザクション分離レベルが"Read Commited"の場合 例えば、あるテーブルに対してデータ更新中のときにデータ参照を行うと

SQLServer の場合 データ更新中?てことはコミットが済んだらそいつが最新データか。よっしゃちょっと待っとくわー
Oracleの場合 データ更新中?まぁでも既にコミット済みのあるじゃん、もらってくよー

といった感じの動きになる。

まとめ

snapshot オプションを ONにするとOracleぽい挙動になるとか 最近のSQLServer だとインメモリでよろしくできるらしい。
でも、ほいほいオプション変えたりバージョン上げたりは難しいので
更新系のトランザクションを短くするとか
ロックタイムアウト値を設定するなどでがんばるしかない。頑張る。