2009年10月27日

第13回北海道開発オフに参加してきた

2009/10/24に第13回北海道開発オフが開催されたので参加してきた。二日酔いの為遅刻してしまった。
今回は前回の時に作成した強制シャットダウンにカウントダウン機能を追加する。カウントダウンするということはそれを表示するものが必要。使い慣れているWindowsFormで実装する事にする。Visual StudioのインストールはできないPCの為、テキストエディタでちまちまとがんばった。

メインフォームクラス

画面構成は単純に、小さい画面の中央にラベルを配置した。最大化・最小化ボタンは非表示、サイズ変更も不可とする。
Imports System.Windows.Forms
Imports System.Drawing

Public Class MainForm
    Inherits Form

    Public Sub New()
        InitializeForm()
    End Sub

    Private Sub InitializeForm()
        _lblMessage = New Label
        _lblMessage.Location = New Point(10, 30)
        _lblMessage.Size = New Size(220, 32)
        Me.Controls.Add(_lblMessage)
        
        Me.MaximizeBox = False
        Me.MinimizeBox = False
        Me.FormBorderStyle = FormBorderStyle.FixedSingle
        Me.StartPosition = FormStartPosition.CenterScreen
        Me.Size = New Size(240, 120)
    End Sub

    Private _lblMessage As Label

End Class
これに残りの秒数を受け取るメソッドが必要だろう(本当は開発オフ中にそのメソッドも実装したが、失敗しているようなのでここには載せない)。ここで気がついたが、右上の「×」ボタンも無効にしないとならないかもしれない。

カウントダウンクラス

次はカウントダウンするクラス。Timerクラスを使用して一定間隔で。実はTimerクラスは以下3つが存在する。
  • System.Windows.Forms.Timerクラス
  • System.Threading.Timerクラス
  • System.Timers.Timerクラス
WindowsFormを使うのであれば通常はSystem.Windows.Forms.Timerクラスを使用するらしい。TimerクラスなのにForms名前空間にあるのが、なんとなく気に入らないので使わない。System.Threading.Timerクラスを使う。
Imports System.Threading

Public Class CountDown
    
    Private ReadOnly period As Integer
    Private _remaind As Integer

    Public Sub New(ByVal period As Integer)
        Me.period = period
    End Sub

    Public Sub Start(ByVal remaind As Integer)
        _remaind = remaind
        Dim callback As New TimerCallback(AddressOf DoCountDown)
        Dim timer As Timer = New Timer(callback, Nothing, 0, period)
    End Sub

    Private Sub DoCountDown(ByVal state As Object)
        _remaind -= Me.period
  OnTick(New TickEventArgs(_remaind))
    End Sub

    Protected Sub OnTick(e As TickEventArgs)
        RaiseEvent Tick(Me, e)
    End Sub

    Public Event Tick(ByVal sender As Object, e As TickEventArgs)

End Class

Public Class TickEventArgs
    Inherits System.EventArgs

    Private _remaind As Integer

    Public Sub New(ByVal remaind As Integer)
        _remaind = remaind
    End Sub

    Public ReadOnly Property Remaind As Integer
        Get
            Return _remaind
        End Get
    End Property
End Class
指定の一定間隔(ミリ秒)でTickイベントが発生する。このイベントをハンドルして画面に残り秒数を渡せばよいだろう。
今回はここで時間切れ。後半はテキストエディタでの開発に疲れてきた。やはりGUIアプリケーションをテキストエディタのみで行うのは厳しい。もうそろそろ開発可能なノートPCが欲しいところ。あ、最近新しいOSが発売されたなー。
ランチはまんでがん製麺所につれて頂いた。麺がしっかりしていてとても美味しい。今度このBlogに載せるためにまた行かねば。

2009年10月21日

お散歩写真オフに参加してきた

カメラ持って札幌を写真撮りながら散歩しようみたいな話があったらしく、2009/10/17に開催決定とのことで参加してきた。
僕はカメラ持ってないけど、今の携帯電話にはカメラが搭載されているって知ってた?すごいね。というわけで携帯で参加。
紅葉もすごく綺麗で、天気も良くとても気持ちよく散歩できた。
最初は北海道神宮


旭山記念公園


水道記念館

最後は藻岩山。ロープウェイ乗って山頂へ。


その他を含めた今回のアルバムは以下に。 
http://picasaweb.google.co.jp/fel97048/200910
藻岩山山頂は寒くて寒くて。皆凍えながらシャッターを切っていた。最初はビールが飲みたくてたまらなかったが、このときは皆、熱燗が飲みたいと声を揃えて言っていた。そんなわけで、藻岩山から降りてすすきのへ。
他の方々は一眼レフで本格的に撮っている。敵わない。
駄文ろぐ » お散歩写真同好会的なにか
[-*煙猴*-]: 第1回 お散歩写真オフに参加してきた
[日記]道民部お散歩写真オフ | コマネタ帳

せきゅぽろナイトセミナーに参加してきた

2009/10/13の夜。せきゅぽろナイトセミナーが開催されたので参加してきた。

情報システムとセキュリティを考える~悩めるシステムエンジニアリングの現場~

  • 事業継続のはなし
  • ネットワークの冗長化:STPやVRRP・HSRPなどがあるが、平常時は使われないなどの問題がある
  • そこでプロトコルレスの冗長化が各ベンダーから出ている(シスコのVirtual Switching Systemなど)
  • これらは平常時にもすべてのリソースが使用されるため無駄が無い
  • セキュリティポリシー適用のはなし
  • パスワード要件のチェックによってインストールできないシステムが発生する、といった事例があった
  • ポリシーに沿うことができない例外も発生する場合がある。その際は文書化などが重要に。

USBメモリを介したコンピュータウィルスの脅威

  • 昨年(2008年)からUSBメモリによるウィルス感染が急増
  • PCに感染→USBを挿入するとUSBに感染→他のPCに挿入して感染→の繰り返しで拡大
  • USB Autorun Checkerを作った
  • USBを利用したウィルスを擬似的に再現したツール
  • アイコンの偽装など、実際のウィルスが使用しているテクニックを再現。
システム開発する側は、そのシステムが構築されるネットワークのパスワード要件などはあまり意識しないで開発してしまうのがほとんどだろう。懇親会では「セキュリティ」について、ハード・インフラ・開発などと同列に位置して進めようとするのではなく、皆意識をあわせて取り組む必要がある、といった話をした(たぶん)。

2009年10月14日

スープカレー HOT SPICE

札幌の中心からは離れたところにある、スープカレー HOT SPICE 北野店

「スープ」の名の通り、本当にスープ。普段はとろっとしたものばかり食べているからすごく新鮮。でてきたもの素のままではあまり辛くは無い。この店ではテーブルに「旨辛の壷」なるものが置かれていて、それを自分で加えて自分にあった辛さにしてく、というものらしい。ただこれを入れてもあまり辛くはならなかった。HPを見るとハバネロを使用した「悶絶激辛ソース」とやらがあるらしい。