スキップしてメイン コンテンツに移動

第57回CLR/H勉強会に参加してきた

2011/4/16はCLR/Hの第57回勉強会が開催されたので参加してきた。今回はOracleデイ

Windows Phone 7はじめました

  • App Hubへの登録→Webサイトは日本語に対応している
  • Windows Phone Developer Tools(WPDT)
  • SilverlightかXNAで開発
  • デバッグはVSからエミュレータ上のアプリをリモートデバッグ
  • 日本語VSにテンプレートがインストールされない
    →テンプレートフォルダのフォルダを日本語用にリネームすることで対応
    1033:英語テンプレート 1041:日本語テンプレート
  • アプリケーションバーのアイコンはデザイン時に表示されない(実行してはじめて表示)
  • Reactive Extensionsで非同期処理
  • XAMLにコントロールのイベントハンドルを書くのがよい
    →C#でHandle句がないことによるデザイン時の問題が解決

Reactive Extensionsについては全くチェックしていなかった。

プログラマのためのOracle DBA入門

  • DBAとはデータベース管理者

Oracleの仕組み

  • インスタンス:データベースを管理する一連のメモリ構造
  • SGA(System Global Area):インスタンスに対する制御情報やキャッシュなどの共有メモリ
  • 記憶領域:制御ファイル・Redoログファイル・データファイルなど
  • PGA(Plogram Global Area)
  • リスナー:クライアントからの接続を最初に受け付けるプロセス

インストール

  • 「ガッツ石松でもインストールできる」
  • Windowsでは基本的に「次へ」をクリックするだけでとりあえずはインストール可能

データベースを作ってみる

  • Database Configuration Assistant(DBCA)
  • スクリプトを出力することもできる
  • 作成されるスクリプトは「バッチファイル+SQLファイル」
  • このスクリプトを弄っていくのが、Oracleを学習するのにおすすめ
  • ブロックサイズは作成時にしか指定できない。実際には慎重に決定する

データベースの設計

  • ASM(Oracle独自のファイルシステム)
  • 初期化パラメータ(PFILEとSPFILE)基本的にはSPFILEを使う
  • データとインデックスは表領域をわけるとよい(バックアップを効率よく行う為)

パフォーマンスチューニング

  • チューニングは「より速く」することではない、ボトルネックを解消することである
  • ベースライン(普段のパフォーマンス)を知ることが重要

バックアップ・リカバリ

  • リカバリのできないバックアップは意味が無い
  • 必ず復旧試験をする
  • 許容可能なダウンタイムを設定する

Oracleのサポート

  • パッチのダウンロード
  • KROWNの専用情報にアクセス

表領域を考慮したデータベースの作成は一度してみたい。そこまで求められる仕事に就いたことはないんだけど。

Oracleで行ってみよう!

  • 現在の最新は11g Release 2
  • 開発用途ならOTNから入手して無料利用OK(機能制限・有効期限なし)
  • ODAC 11.2.0.1.2 with ODT for VS
  • CBO(コストベースオプティマイザ)チューニング
  • ヒント句チューニング前提はもう古い
  • 統計情報は最初から自動取得
  • 正規化がより重要に
  • 最近はTNSNAME.oraを用意する必要は無い→配布がより楽に
  • OracleへのアクセスはWebサーバにして、Webサービスで各クライアントと通信
    →今後のスマートフォン対応も可能
  • Silverlightの勉強としてもWindows Phone7を弄るのもよい

開発用途では無料というのは本当にありがたい。

コメント

このブログの人気の投稿

VirtualBoxのUbuntu 18.04でNAT + ホストオンリーアダプター

VirtualBoxのVMにインストールしたUbuntu Server 18.04で、ネットワーク割当を「NAT」+「ホストオンリーアダプター」にする場合の設定についてメモ。 VMを作るとき、ゲストOSからインターネットに繋がって、かつホスト-ゲスト間でもつながる環境にしたいとき、VMのネットワーク割当は手っ取り早いのは「ブリッジアダプター」なんだけど、会社のネットワークでは都合がわるかったりするので「NAT」+「ホストオンリーアダプター」にしている。 アダプター1は「NAT」を選択 アダプター2は「ホストオンリーアダプター」を選択 ゲストOSであるUbuntuのネットワーク設定は、NATに該当するNICはDHPCで、ホストオンリーアダプターに該当するNICは固定IPとする。 Ubuntu 18.04ではネットワーク設定はNetplanで行う(Ubuntu 17.10から変わったようだ)。編集する設定ファイルは「/etc/netplan/50-cloud-init.yaml」 network: ethernets: {NATのNIC}: addresses: [] dhcp4: true optional: true {ホストオンリーアダプターのNIC}: addresses: [{固定IPアドレス}] dhcp4: no version: 2 ポイントは、ホストオンリーアダプターに該当するNICの固定アドレスを設定するときに、 ゲートウェイを設定しない こと。 以前に QiitaのVirtualBoxでNAT + Host-Only Network環境を構築する を参考にしていたのに、今回18.04で設定する際にすっかり忘れてはまってしまった。 IPアドレスは「192.168.0.2/24」のようにサブネットマスクも指定する。 NICに指定するデバイス名は以下コマンドで表示されるlogical nameが該当する。 > lshw -class network たいていは「enp0s3」「enp0s8」となるようだ。 設定ファイルを保存したら...

画像を切り取って保存する

画像処理において、画像の一部を切り出すことをトリミングというらしい。画像編集ソフトなんかにも大抵「トリミング」機能が実装されているだろう。 そんな画像を切り取る処理を.NETでやってみる。 .NETでは画像を扱う際にはBitmapクラスを使用する。BitmapクラスのCloneメソッドでサイズを指定すれば、そのサイズのBitmapオブジェクトができるので、それを保存すればよい。Cloneメソッドの引数はRectangle構造体とPixelFormat列挙体。 Rectangle構造体とは四角形の位置とサイズを表したもの。元画像の左上を(0, 0)として(X座標, Y座標, 幅, 高さ)の値でRectangle構造体を作成して渡す。PixelFormat列挙体はヘルプを見てもよくわからなかった。とりあえずは元画像の値をそのまま渡す。 例えば photo by tsukacyi のようなユッケの画像をトリミングするプログラムは以下のように書ける '元画像 Dim source As Bitmap source = New Bitmap("source.jpg") '切り取るサイズ Dim rect As Rectangle rect = New Rectangle(30, 80, 400, 320) '切り取り後の画像 Dim trimed As Bitmap trimed = source.Clone(rect, source.PixelFormat) '保存 trimed.Save("trimed.jpg") source.Dispose() trimed.Dispose() トリミング後の画像は以下の通り。

Microsoft.VisualBasic.dllを参照しない(その1)

VB.NETには、VB6に実装されていたCIntなどの型変換関数やLeft、Rightなどの文字列関数が使用できる。これらはMicrosoft.VisualBasic名前空間で定義されている。 個人的にはこれらはVB6との互換性の為に用意されたものと考えていて、あまり使用しないようにしている。名前付けのガイドラインにも沿っていないため、他の.NETなメソッドと並ぶと違和感があるというのもある。 注意:このエントリはVisual Basic 2005 Express Editionと.NET Framework2.0 SDK環境を元に書いています。 そんなわけでチーム開発の場合に、これら関数を使用しないよう、Microdoft.VisualBasic.dllを参照しないプロジェクトを作成しようと考えた。 Visual Studioのプロジェクトのプロパティから「参照」タブを開いてみると、すでに参照しているdllにMicrosoft.VisualBasic.dllが含まれていない。  下の一覧にImportされる名前空間が表示されているが、そこには含まれている。 Importされる名前空間からチェックをはずし以下のソースを書いてみる Public Class VisualBasicTest Public Shared Sub Main() Dim i As Integer = CInt("1991") System.Console.WriteLine(i) End Sub End Class だが、ビルドは通って実行もできてしまう。 逆アセンブリしてみる。 スタートメニューから「Microsoft .NET Framework SDK v2.0」→「Tools」→「MSIL 逆アセンブラ」を起動して、ビルドでできているexeを開く。すると、MANIFESTの部分を見てみると下記記述が見つかる。参照しているようだ。 .assembly extern Microsoft.VisualBasic { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) .ver 8:0:0:0 } きっとVisual Studioが...