Home > プログラム Archive

プログラム Archive

PHP 5.2.0 リリース

PHP 5.2.0がリリース,「200件を超えるバグを修正,早急にアップグレードを」 (ITpro)

早速ダウンロードしたしてApacheモジュールを見たのですが、なんか…、モジュール系と思われる同梱物が増えてる…。

php5apache2_filter.dllphp5apache2_2_filter.dllって何に使うんですか?Apache関係のフィルターに使うのは分かるんですが、何をファイルターするんだろう…。後で唸りながら英語ドキュメントでも読んでみますか…(死)。

いずれにしろ、ノートパソコンではNightly buildから持ってきたPHPのphp5apache2_2.dllのせいであろうと思われる、PHPからMySQLへの動作不良が起こしているので、ノートパソコンでは早急にアップデートする必要があるかと。(参照Heartless -Sena-: 金曜5限 プログラミング応用 Apacheのアップデート)その結果次第ではメインマシンのApache2.0から2.2へのアップデートも考えている。これでまだ動作不良を起こしたら、逆に原因を突き止めるのが面倒だなぁ…。

書籍購入

日曜に図書館で返した本で注文した本が届きました。

日曜に返却し、月曜夜にAmazonで注文、そして今日、再配達で金曜昼には届きました。早。

本当は昨日、一度自宅に届けられていたのですが、丁度シャワー中で出られず、不在通知を確認しないまま大学に行き、大学で配送状況を確認したら自宅近くの配達店になっており、実はシャワー中の配達物は自分宛だと気付いたのです。家に帰ってから不在通知を確認し、配達店に連絡したのですが、閉店前という事で次の日に再配達になってしまいました。てっきり家族宛の荷物だと思い込んでいて放置してしまいましたよ…orz

今回届いた本は以下です。

この本は最初から私の苦手なメソッドの動きや引数について、メモリ状態の遷移を解説しているので気に入っていました。プログラムを順序よく解説するのではなく、たまたまですが私の苦手な分野を最初から、しかも詳しく解説しているので、私にはとても打て付けだと思いました。少し古いけど、メソッドやクラスについてはあまり古さは関係ないと思っています。

苦手なところの克服とまではいかなくても、少しでも理解していければと思います。

# というか、私が下手に知識がある分、手順を組んだ解説書より分かり易いわw

Movable Type カレンダーの今日の日付に装飾 改善

前回、Movable Type リアルタイムカレンダー カレンダーの今日の日付に装飾にてカレンダーで今日の場合に装飾をする設定をしましたが、レイアウト的にまだまだ問題点があるので、その改善を行いました。

*現在の状態、問題点

  • エントリーが有る日(背景色を変え、フォントをボールド、日付アーカイブにリンク)
  • エントリーが無く、且つ今日の日付(エントリー有りとは別の背景色)
  • エントリーが有り、且つ今日の日付(エントリー有りとは別の背景色、日付アーカイブにリンク)
  • エントリーが無い日(装飾無し)

つまり、現状では今日の日付で装飾がある場合、見た目では今日のエントリーが存在するかどうか分からない。日付アーカイブにリンクはしているので、マウスオーバーしてみないとリンクしているかどうかも分からない状態となっています。

*改善後

  • エントリーが有り、今日である
  • エントリーが無く、今日である
  • エントリーが有り、今日ではない
  • エントリーが無く、今日でもない

この4つを1つ1つスタイルシートのスタイルで定義するように改善しようかと思います。

*現在のソース

省略(前回参照)
<?php
  function mt_today($y, $m, $d) {
    $day = date("j");
    $year = date("Y");
    $month = date("m");
    if($year == $y && $month == $m && $day == $d) {
      print " class=\"today\"";
    }
  }
?>
<MTCalendar month="this"><MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td<MTCalendarIfEntries><?php mt_today("<$MTCalendarDate format='%Y'$>", "<$MTCalendarDate format='%m'$>", "<$MTCalendarDay$>"); ?><MTEntries lastn="1"> class="calent"><a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries><MTCalendarIfNoEntries><?php mt_today("<$MTCalendarDate format='%Y'$>", "<$MTCalendarDate format='%m'$>", "<$MTCalendarDay$>"); ?>><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank>>&nbsp;</MTCalendarIfBlank></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>

*今回の改善

エントリーが有る状態のタグか、無い状態のタグかを判断するためにフラグを付け、引数としてmt_todayに引き渡しています。

mt_todayの中ではエントリーが有るある状態と無い状態と本日の3つを判断しています。引数の数値を増やし、同時に条件式も増やせば、ほぼ無制限で複数のスタイルを設定できます。

<?php
  function mt_today($y, $m, $d, $flag) {
    $day = date("j");
    $year = date("Y");
    $month = date("m");
    if ($year == $y && $month == $m && $day == $d) {
      if ($flag == 0) {
        print " class=\"today\"";
      } elseif ($flag == 1) {
        print " class=\"today-entry\"";
      }
    } elseif ($flag == 1) {
      print " class=\"calendar-entry\"";
    }
  }
?>
<MTCalendar month="this"><MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td<MTCalendarIfEntries><?php mt_today("<$MTCalendarDate format='%Y'$>", "<$MTCalendarDate format='%m'$>", "<$MTCalendarDay$>", 1); ?><MTEntries lastn="1">><a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries><MTCalendarIfNoEntries><?php mt_today("<$MTCalendarDate format='%Y'$>", "<$MTCalendarDate format='%m'$>", "<$MTCalendarDay$>", 0); ?>><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank>>&nbsp;</MTCalendarIfBlank></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>

*スタイルシートの設定

設定した分だけのスタイルシートに記述を追加します。

.calendar .today {
  background-color: #eeeeee;
}
.calendar .today-entry {
  background-color: #eeeeee;
  font-weight: bold;
}
.calendar .calendar-entry {
  background-color: #99ffcc;
  font-weight: bold;
}

*結果

これで以下のようになりました。

  • エントリーが有る日(背景色を変え、フォントをボールド、日付アーカイブにリンク)
  • エントリーが無く、且つ今日の日付(エントリー有りとは別の背景色)
  • エントリーが有り、且つ今日の日付(エントリー有りとは別の背景色、フォントをボールド、日付アーカイブにリンク)
  • エントリーが無い日(装飾無し)

エントリーがある時は今日で有る無し関係なしにフォントがボールドとなっています。

これは、スタイルシートの設定次第でエントリーが有る時は背景色無しのボールド、今日の時は背景色のみ、今日且つエントリーが有る時は背景色とボールドというデザインにする事もできます。カレンダー全体にボーダーを設定していなければ、今日の場合で日付回りにボーダーを付ける事も可能です。

*その他の設定の参考

エントリーがある時は背景色無しのボールド、本日は背景色のみ、今日且つエントリーがある時は背景色とボールド

.calendar .today {
  background-color: #eeeeee;
}
.calendar .today-entry {
  background-color: #eeeeee;
  font-weight: bold;
}
.calendar .calendar-entry {
  font-weight: bold;
}

カレンダー全体にボーダーを設定していない場合で、今日の日付回りにボーダーを付ける場合。

.calendar .today {
  border: 1px solid #009900;
}
.calendar .today-entry {
  background-color: #99ffcc;
  border: 1px solid #009900;
  font-weight: bold;
}
.calendar .calendar-entry {
  background-color: #99ffcc;
  font-weight: bold;
}

他にも設定のしようはありますが、今回は割愛という事で...。

携帯Java勉強会 Eclipseでiアプリ作成設定メモ

この携帯Java勉強会は部の活動の一部として始めようとしましたが、顧問の意向により、部の関係者以外も参加できるようにと、本来なら部の中で班の扱いをするところを、勉強会と称して始めました。

今日で3回目の活動ですが、私は体調を悪くしたり、都合が悪かったので、今回からの参加となりました。しかもいつもは土曜の2限帯に行われるところを顧問が大学の行事関係で都合が悪いとの事で、6限帯に時間変更となりました。

今回初めて参加するはいいが、まだ環境が整ってないため、集中講義の時間帯に急いで環境を整えました。本当は以前、NTT DoCoMo主催の学生iアプリコンテストに参加した時に一度環境を整えたのですが、リカバリを行ったので、今まで入れたソフトウェアが全て消えてしまい、まだ講義に必要なソフトウェアのインストールさえも終わってない状態です。

勉強会で私は先生にプリントアウトしてもらった前回までのソースを打ち込みながら同時の今回のソースも打ち込むという並行作業をしていました。最終的には追いつきましたが、一箇所だけスペルミスで実行エラーが出てしまい、最後の最後でなかなか進める事ができませんでした。英語は苦手じゃー!

以下はiアプリの作成のためのメモです。またリカバリした時や、デスクトップのメインマシンで環境を整える時のために。

  • Eclipseのダウンロード(日本語化ファイルも)
  • Eclipseのインストール
  • Eclipseの日本語化
  • DoJaのダウンロード
  • DoJaのインストール
  • Eclipseの立ち上げ - ワークスペースの選択
  • プロジェクトの新規作成
  • EclipseでのDoJaの設定
  • クラスの作成
  • EclipseからDoJaの実行

*Eclipseのダウンロード(日本語化ファイルも)

Eclipse Wikiよりインストールページのダウンロードから最新版「eclipse-SDK-3.1.1-win32.zip」(ver3.1.1@2006/01/14現在)を本家サイトからダウンロードする。

同時に同サイトの日本語化ページよりLanguagePackページに飛び、LanguagePackをダウンロードする(NLpack1-eclipse-SDK-3.1.1a-win32.zip、NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip)

*Eclipseのインストール

「eclipse-SDK-3.1.1-win32.zip」を解凍し、「C:\Program Files\Softwares」以下に移動。(私のノートPCの場合)

*Eclipseの日本語化

NLpack1-eclipse-SDK-3.1.1a-win32.zip、NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zipを解凍し、「C:\Program Files\Softwares」以下にフォルダ毎上書き。

*DoJaのダウンロード

NTT DoCoMo作ろう iモードコンテンツより DoJa-4.1プロファイル向けiアプリ開発ツールのダウンロード(最新版)から必要なバージョンのDoJaと、それに対応したリファレンスなど各種必要な物をダウンロード。この場合、DoJa ver4.1だけでも良い。(ちなみに、勉強会で一斉にダウンロードした時はDoJa4.0であったらしい。)

*DoJaのインストール

ダウンロードした、「emufordoja4_1_111_p.zip」を解凍し、中の「setup.exe」を立ち上げる。インストール先ディレクトリを「C:\Program Files\iDKDoJa4.1\」とする(私のノートPCの場合)。セットアップタイプではカスタムを選択し、全部にチェックを付ける。「Sun ONE Studio」でエラーが出た場合はそのチェックを外す。「Eclipseのインストール先」を聞かれたら、「C:\Program Files\Softwares\Eclipse」を指定する(私のノートPCの場合)。インストールが完了したら、Eclipseを立ち上げる。

*Eclipseの立ち上げ - ワークスペースの選択

Eclipseの作業フォルダを指定する。「D:\SoftwareFiles\Eclipse」等(私のノートPCの場合)。

*プロジェクトの新規作成

何かを作り始める時、ツールバーの「ファイル」 - 「新規」 - 「プロジェクト」を選択する。ウィザードが出てくるので、「Java」 - 「DoJa-4.1 プロジェクト」を選択しする。プロジェクト名では、これから作成するプログラム名がベストらしい。プロジェクト名を入れたら、「完了」をクリックする。「次へ」をクリックしても良いが、設定するところ所がない。

*EclipseでのDoJaの設定

EclipseでのDoJaのインストール場所の設定を行う。ツールバーの「ウィンドウ」 - 「設定」から「DoJa-4.1 Environment」を選び、「iappli DevelopmentKit for DoJa-4.1 のインストール先」で「C:\Program Files\iDKDoJa4.1」を指定する(私のノートPCの場合)。

*クラスの作成

クラスを作成する場合は、「パッケージ・エクスプローラ」内のプロジェクト名を選択し、右クリックメニューから「新規」 - 「クラス」を選択。

*EclipseからDoJaの実行

Eclipseでプログラムを作成し、一番最初にコンパイルと同時にDoJaを実行する時は、ツールバーの「実行」 - 「構成および実行」を選択し、「DoJa-4.1 アプリケーション」を選択してから「新規」ボタンをクリックする。「名前」を付けるがプロジェクト名を推奨。この作業はプロジェクト毎に必要となる。一度この作業をすると、以降は実行ボタンのみで良い。

ガーベジコレクション

旦那からもらったJavaプログラミング能力検定のテキストを軽く解いていたら、知らない単語が出てきたので調べてみました。

http://e-words.jp/w/E382ACE383BCE38399E382B8E382B3E383ACE382AFE382B7E383A7E383B3.html

ガーベジコレクション 【garbage collection】

読み方 : ガーベジコレクション
別名 : GC

OSのメモリ管理機能の一つ。プログラムが使用しなくなったメモリ領域や、プログラム間の隙間のメモリ領域を集めて、連続した利用可能なメモリ領域を増やす技術。これが不完全なOSは次第に利用可能なメモリが減ってゆくため、一定期間ごとに再起動を強いられることになる。Java言語の実行環境(JVM)は自身がガーベジコレクション機能を持っており、Javaプログラマがメモリ管理に気を使わなくてもいいようにしている。

中盤の

> これが不完全なOSは~

はWindowsの事を指しているんだなと思うと、とても分かり易く、納得ができました(笑)。

PHP

PHPに複数の深刻な脆弱性、最新版へのアップグレードを

オープンソースのサーバサイドスクリプト言語「PHP」に、複数の脆弱性が発見された。中には任意のコードを実行される恐れのある深刻なものも。

うちのアップデートしないと...。Apacheってフッター部分にPHPのバージョンが表示されるんですよね...。こういう事があるとセキュリティ面ではよろしくないかと...。

Index of all entries

Home > プログラム Archive

Search
Feeds

Return to page top