5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

タグ: オープンソース

  • UbuntuでEclipseが起動できないときの対処の話し

    UbuntuのパッケージからEclipseをインストールしたときに、次のようなメッセージを出力して起動できない。

    Error opening zip file or JAR manifest missing : /usr/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

    つまり、pleiades.jarが見つからない。実際にファイルがない。

    pleiades.jarをインストールしても、状況が変わらないので、/usr/share/eclipse/eclipse.iniにある

    -javaagent:/usr/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

    を削除した。これでとりあえず起動する。

    著:大竹 龍史, 著:山本 道子
    ¥2,950 (2025/04/01 13:05時点 | Amazon調べ)
    著:Piro, 編集:日経Linux
    ¥2,178 (2025/03/28 21:08時点 | Amazon調べ)
    著:三宅 英明, 著:大角 祐介
    ¥2,970 (2025/04/01 13:05時点 | Amazon調べ)
  • MongoDBをCakePHP2で使う話し

    MongoDBのようなNonSQLに向いたサイトを作成を検討中。現在CakePHPは2に移行しつつあるので、CakePHP2からMongoDBに接続できるかのテストから始める。結果は、笑ってしまうくらい簡単に接続できた。MongoDBに対応したCakePHPのデータソース(仮にCake Mongoと呼んでおく)の開発者に感謝する。

    CakePHPとMongoDBがインストールされたものとする。

    PHPとMongoDBと接続するドライバーが必要である。WindowsのXAMPP上のテストなので、PeclからのインストールではなくMonboDBのサイトからWindows用のドライバのバイナリファイルを持ってくる。Apacheのバージョンに合わせてダウンロードする。php.iniの設定をして、phpinfo()で確認する。

    https://www.php.net/manual/ja/mongo.installation.php#mongo.installation.windows

    以上は、検索すると出てくるので、詳細は各ページを参照する。

    以下は、Cake Mongo開発者のプレゼン資料からの抜粋である。

    データソースをGitから取得する。WindowsなのでGit Bashを使う。以下のコマンドを実行する。

    > cd app/Plugin
    > git clone git://github.com/ichikaway/cakephp-mongodb.git Mongodb
    > cd Mongodb
    > git checkout -b cake2.0 origin/cake2.0

    これで、CakePHP2用の CakeMongoがダウンロードできる。

    CakePHPのファイルの修正は以下の通り。まずはデータベースの接続の設定

    /app/Config/database.php

    class DATABASE_CONFIG {
      public $default= array(
        'datasource'=>'Mongodb.MongodbSource',
        'host' => 'localhost',
        'database'=> 'blog',
        'port'=>27017,
      )
    }

    次に/app/Config/bootstrap.phpでCakeMongoのプラグインを読み込ませる。

    CakePlugin::load('Mongodb');

    後は、CakeMongoに付いてくるサンプルを動かしてみる。

    データベースの設定をしなくていいので、簡単に動くことが確認できた。あっさり動くことに、逆に驚き。

  • LibreOffice Impressで動作停止する話し

    久しぶりにLibreOfficeのImpressで資料を作成しました。随分使い方を忘れている。慣れてきたと思ったら、問題発生。

    スライドマスターで上部のルーラーで、レベル2のインデントを変更すると、動作停止となります。バージョンは3.4です。

    一つ前の3.3だと正常です。Googleさんに聞いてみると同じような障害の報告がありました。

    http://nabble.documentfoundation.org/Libre-Office-Impress-3-4-4-td3647338.html

    この中には開発版の3.5だと直っていると言っていますが、私のPCでは3.5では同じ現象です。さらに情報を取得する必要がありそうです。

    Embedded Link

    Users – Libre Office Impress 3.4.4 がアボートする
    Libre Office Impress 3.4.4 がアボートする. いろいろ試してみたのですが、どうやっても必ず落ちます。 アウトラインを使っているデータにおいて、以下の操作をやると必ず落ちます。 1) マスターを編集 を開く 2) 2レベル目のアウトライン にカーソルを移動 3) 右クリックしてメニューを出し、スタイルの編集を開く 4) 箇条書きと番号付け を開く 5)…

    Google+: View post on Google+

  • CakePHP2での開発が一段落した話し

    試しにCakePHP2で開発してきましたが、とりあえず一段落しました。

    いろいろな命名が1.3から変わっていますので注意が必要です。HTMLヘルパーは必ず$this->Htmlにしなければいけないとか、Appの下のディレクトリが頭が大文字になっているとか、細かい変更がありますが、だんだんと慣れていくことでしょう。

    一番変わったのは、Authコンポーネントです。こちらは参考となるサイトはありませんでした。やはりCakePHPの本家サイトのCookBookが一番まとまっています。というよりも、ここしか参考となる資料は今のところありません。ここで何回も言いましたが、CakePHP2の情報を知りたければ、絶対にCookBookを読む必要があります。

    こいうことで、今年の営業はこれでおしまいにしていいかしら。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • Cakephp2でTextHelper::truncate()がおかしいので対応した話し

    Cakephp2でTextHelper::truncate()を動かすと、1回目の処理が文字化けしてしまいました。どういう訳か2回目以降は正常に切り取ってくれます。

    /lib/Cake/View/Helper/TextHelper.phpのソースを追ってみると、mb_strlen()が正しい文字列の長さを返していません。strlen()と同じ値を返してくれます。それで後のmb_substr()で正しく切り取ってくれていませんので文字化けしているようです。

    strlen()になっているということは、予想通りmb_strlen()の第4パラメータにエンコードを指定しておけばOKでした。ということは、php.iniのmbstringの項目を正しく設定していないのが原因です。そこで、

    [mbstring]
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.http_output = UTF-8

    なんて設定してApacheを再起動すると、ソースに手を入れずにエンコードなしで文字化けしないで表示します。/app以外のソースはいじらないのが基本。

    つまり、日本語のサイトを作成するときは、mbstringをサボらずに設定しましょうというという基本を忘れるなということでした。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • テストから始めてみます、という話し

    最近はまじめにプログラムを書いています。あるサイトを再構築しているのですが、これまた大昔に作ったものでフレームを使っています。

    試しにCakePHPで作成してみます。しかも、最新のCakePHP2です。

    CakePHP2になるとUnitTestがSimpleTESTからPHPUnitiに変わりました。いろいろとカンファレンスに話しを聞いていると、アジャイルとか自分は感化されやすいので、まずはUnitTestでのテスト駆動開発を導入してみます。バージョン管理は前に導入していましたが、徐々に試してみます。

    こうでも新しいことをしていないと、だんだんを開発のモチベーションが上がらないので。何でも試すことができるのは、一人で動いているせいでしょうか。

    CakePHP2で使うPHPUnitの情報は、Googleさんに聞いてもほとんどありません。日本語での情報はありません。一番詳しいのは、CakePHP2のCook Bookです。ますはこちらを読むことを薦めます。結局、本家CakePHPにたどり着きました。英語ですけど、何とか読めます。

    PHPUnitも開発元のサイトが一番詳しいということになりました。こちらは日本語に翻訳されています。

    Fixruresのファイルは、CakePHPのBakeで作成するのが簡単のようです。DBから直接Fixturesにインポートすると、ちょっと大きなテーブルだとメモリが一杯になります。ソースを追ってみたところ、メモリにテーブルデータをすべて展開しているようです。最初は、何かバグでもあるのかと思っていました。Bakeで途中で聞いてきますが、一部を切り出した方がよさそうです。

    テスト駆動開発は最初にテストコードを書いてからソースコードを書くのですが、まだまだテストコードを書くのを忘れて、直接コードを書いてしまいます。こちらは癖を付けなければいけません。

    恩恵としては、リファクタリングするときはやはり効果があります。あとはエラーの赤を消して、緑にするという目標があって、プログラミングは楽しくなりそうです。

    しかし、まだまだ、どうやってテストを書くのがいいのか迷います。我慢してしばらく続けようと思います。

    Google+: View post on Google+

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • PoeditをWindows7 64bitで使うときの注意と回避方法の話し

    CakePHPを使っていると、翻訳を処理するgettextのmoファイルを出力しなければいけません。そのためにpoファイルをPoeditで編集します。このPoeditは、WordPerssでも使われます。

    しかし、PoeditをWindows7の64bit版で使うと、検索のダイアログが表示できないという障害あるため、Poeditは使いにくいものでした。しかし、調べてみると、Poeditのサイトでその障害の回避方法が載っていました。既出の障害らしいです。

    その回避方法通りにすると、正常に検索ダイアログが表示されて検索できます。

    回避方法は下記のリンク先に書かれていますが、regeditで、

      HKEY_CURRENT_USERSoftwareVaclav SlavikPoedit

    にあるfind_pos_x と find_pos_yの2つのキーを削除するだけです。

    これでWindows7の64bit版でPoeditが使えるようになりました。

     

    Embedded Link

    #437 (Search Window not visible in Windows 7)
    – Poedit

    Description. I am using POEDIT 1.4.6 on Windows 7 64 bit and have used the search option several times but now all of a sudden I can’t access the search screen anymore. I see it is there in the ta…

    Google+: View post on Google+

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • CakePHPでタイムゾーンを明示しないとUTCでcreatedに格納されてしまう話し

    CakePHPで発生した障害の対応のメモ。

    config/core.phpに

    date_default_timezone_set('Asia/Tokyo');

    とタイムゾーンを明示してあげないと、モデルからテーブルにレコードを追加したとき、UTCの世界標準時でcreatedに現在時間が格納されてしまいます。

    PHP5.3からのようです。

  • CakePHP2.0リリース

    注目すべきことがいろいろあって、2.0を触っていかなければいけないな。1.xのソースがそのまま動くかな? 新しいサイトは2.0で試してみていこう。

    Embedded Link

    CakePHP 2.0 のリリース(訳) – 24時間CakePHP
    訳 CakePHPコアチームはメジャーなバージョン番号のジャンプをアナウンスすることに興奮を覚えています。 C..

    Google+: View post on Google+

    Post imported by Google+Blog. Created By Daniel Treadwell.

    CakePHP 1.3によるWebアプリケーション開発 オープンソース徹底活用

    CakePHP辞典 Pocket詳解

  • PHPカンファレンス2011に参加してきた。

    PHPカンファレンス2011に参加しました。10年近くPHPで仕事をしてきたのに、今回が初めての参加です。

    さて、何かとセキュリティが低いと言われているPHPですが、だんだんと開発者が減ってきたのでしょうか? 私は違うような気がします。Webプログラミングでは簡単に入っていけますし、Windowsではないサーバーはとりあえずデフォルトで使えますし、レンタルサーバーを借りた際にはPHPは動かせます。WebプログラマーはPHPで開発できて損はないじゃないかと思います。

    さてPHPカンファレンスですが、考えていたよりは盛況でした。あるセッションでは部屋に入りきれずに、別室でUStreamで見ているという、現地に行った意味ないじゃん、と行ったことがありました。こちらは運営の方には改善を願いたいものです。

    セッションに感化されてTDDの本を帰りに買ってしまいました。今回はとても刺激になってよかったです。たまにこんなセミナーに参加して、モチベーションを上げていきたいものです。

    普段使っているCakePHPは、もう盛り上がっていないのかな・・・。

    CakePHP 1.3によるWebアプリケーション開発 オープンソース徹底活用

    CakePHP辞典 Pocket詳解