[解決]xampp 1.7.0 でSQL実行時にApacheが落ちる
2010.10 07

状況 ローカルの開発環境ではxampplite1.7.0を利用しています。バンドルされているPHPのバージョンは5.2.8。Symfonyからdoctrineを使用してSQL(SELECT)を発行すると、Apacheが強 […]

状況

ローカルの開発環境ではxampplite1.7.0を利用しています。バンドルされているPHPのバージョンは5.2.8。Symfonyからdoctrineを使用してSQL(SELECT)を発行すると、Apacheが強制終了するという現象が発生していました。save()は問題なく実行できていたので、コード側の問題かと思っていましたが、どうやらlibmysql.dllの不具合のようです。

解決策

libmysql.dllをlibmysql_5.0.51a.dllで置き換えるとApacheが落ちなくなりました。同じような現象で悩んでいる方が多いようですが、どれも具体的な原因を突き止められていない様子。DLLそのものの問題のようなので、修正版で置き換えがてっとり早いようです。

libmysql.dllが置かれているのは以下の場所です。

  • /path/to/xampplite/php/libmysql.dll
  • /path/to/xampplite/apache/bin/libmysql.dll

それぞれ同じ場所にlibmysql_5.0.51a.dllがあるので、置き換えてしまいましょう。

この記事へのコメント

[WordPress]サブカテゴリと単一記事のパーマリンクを混在させる設定
2010.09 27

パーマリンクの設定でポピュラーな設定は/%category%/%postname%/ですが、この場合、サブカテゴリが存在すると投稿スラッグがサブカテゴリを表すのか、投稿名を表すのか区別がつかないので、とあるカテゴリの単一 […]

パーマリンクの設定でポピュラーな設定は/%category%/%postname%/ですが、この場合、サブカテゴリが存在すると投稿スラッグがサブカテゴリを表すのか、投稿名を表すのか区別がつかないので、とあるカテゴリの単一記事を表示しようとすると、404となってしまいます。

かといって、/%category%/だけを指定すると、アーカイブページでタイトルにパーマリンクを反映させると、単一記事の表示ができなくなります。そこで、以下の方法としました。

/%category%/%post_id%/

記事の運用方法にもよりますが、投稿スラッグを使用しない運用であれば上記の設定でサブカテゴリと単一記事のパーマリンクが混在させられます。もっと良い方法があれば、どなたかご教授いただきたく・・・。短縮URL使えば、見てる側は気にならないことですが、WordPressのテーマカスタマイズをしてる側は重要な問題となります。

この記事へのコメント

[WordPress]抜粋(excerpt)を使わずにエントリの途中まで表示する
2010.09 10

通常のsubstr()を使用するとバイト指定になるため、マルチバイト対応のmb_substr()を使うことになります。 [sourcecode language=”php”] <p>& […]

通常のsubstr()を使用するとバイト指定になるため、マルチバイト対応のmb_substr()を使うことになります。
[sourcecode language=”php”]
<p><a href="<?php the_permalink(); ?>"><?php echo mb_substr(get_the_content(), 0, 56); ?>…more</a></p>
[/sourcecode]
上記サンプルの場合は、先頭から56文字を抽出して表示し、その文章にリンクさせています。指定した文字数より短い文章の場合は、文章の最後まで表示されることになります。文字数をカウントする場合は、マルチバイト対応のmb_strlen()を使用することになります。

この記事へのコメント

[WordPress]ページスラッグを取得する
2010.09 02

投稿、ページ作成時にURIを指定して、それを利用してCSS切り替えやclass指定、画像表示の制御をしたい時に使うのでメモ。 1: <?php if(have_posts()): while(have_posts( […]

投稿、ページ作成時にURIを指定して、それを利用してCSS切り替えやclass指定、画像表示の制御をしたい時に使うのでメモ。

   1:  <?php if(have_posts()): while(have_posts()): the_post(); ?>
   2:  <?php $slug = get_page_uri(get_the_ID()); ?>
   3:  ...
   4:  <?php endwhile; endif; ?>

固定ページのスラッグを取得したい場合は、以下の方法でも可能。

   1:  <?php $page = get_page(get_the_ID()); ?>
   2:  <?php $slug = $page->post_name;?>

階層ページの場合、1つ目の方法だと「親のページ名/このページ名」みたく取得されるので、配列化して任意の要素だけを取り出すという方法も考えられるが、今表示しているページのスラッグを取得したい場合は、2つ目の方法で十分だと思われる。

この記事へのコメント

jFeedMixer – 複数RSSフィードを統合してウェブサイトに表示するjQueryプラグイン
2010.08 30

このエントリはjFeedMixer専用ページへ移行しました。今後は、そちらを御覧ください。 複数ブログで管理しているRSSフィードを統合して、ウェブサイト上に表示させることができるjQueryプラグイン、jFeedMix […]

このエントリはjFeedMixer専用ページへ移行しました。今後は、そちらを御覧ください。

複数ブログで管理しているRSSフィードを統合して、ウェブサイト上に表示させることができるjQueryプラグイン、jFeedMixer 0.2.0 をリリースします。このプラグインはGoogle AJAX Feed API を使用しているので、ご利用の場合は、AJAX API Keyを事前に取得する必要があります。

jFeedMixer 0.2.0 – github

jFeedMixerを使うシチュエーション

複数ブログを管理していて、メインサイトのトップページに各ブログのRSSフィードを時系列順で表示したい。

デモ

デモページへ

jFeedMixerの使い方

scriptタグで各ライブラリを読み込み、任意のdivを指定してjFeedMixerを呼び出します。





表示オプション

feeds: ["feed URL", "…"]  必須
複数のフィードURLを指定できます。RSS、Atomなどが表示されるURLを指定してください。
countPerFeed: 数値 オプション(デフォルト: 5)
1フィードURLあたり取得するフィード数です。例えば、「5」と指定して、feedsに2つのURLを指定した場合は10件のフィードが表示されることになります。
countLimit: 数値 オプション(デフォルト: 10)
表示フィードの最大件数を指定します。countPerFeedと併用でき、feedsに2つのURLを指定し、countPerFeedを10と指定した場合、全体の件数は20件ですが、このオプションを指定すると、上位10件が表示されます。
feedFormat: "http://your.site.com/js/feed.jfm.html" オプション

デフォルト:

			%title【%blogTitle】(%date)[%category]
		
フィード表示のフォーマットを指定できます。「.jfm.html」を含むファイル名を指定した場合、ファイル中で指定したテンプレートを利用して結果を出力します。サンプルファイルのテンプレートは以下のようになっています。

			
%title %blogTitle
%date %category
使用可能なパラメータは以下のとおりです。

  • %link: フィードへのリンク(URL)
  • %title: フィードのタイトル
  • %date: フィードの投稿日
  • %blogTitle: フィードを管理するブログのタイトル
  • %blogURL: フィードを管理するブログのURL
  • %category: フィードのカテゴリ
beforeFeeds: "<dl>" オプション(デフォルト: "<ul>")
feedFormatオプションで指定した出力結果全体の「前」に付加される文字列を指定できます。
afterFeeds: "</dl>" オプション(デフォルト: "</ul>")
feedFormatオプションで指定した出力結果全体の「後」に付加される文字列を指定できます。
dateFormat: "日付フォーマット" オプション(デフォルト: "yyyy.mm.dd")
フィードの投稿日を表示する際のフォーマットを指定できます。

  • yyyy: 西暦
  • mm: 月(1桁の場合はゼロパディング)
  • dd: 日(1桁の場合はゼロパディング)
  • H: 時(1桁の場合はゼロパディング)
  • i: 分(1桁の場合はゼロパディング)
  • s: 秒(1桁の場合はゼロパディング)
feedFormatオプションで指定した出力結果全体の「後」に付加される文字列を指定できます。
カテゴリが複数の場合、指定の区切り文字を挿入して表示します。

補足

  • 表示されるフィードはdiv > ul > li > フィード の形式で表示されます。
  • 表示結果などの詳しい説明は README_ja を御覧ください。
  • 要望、質問などは info@calmtech.netまで。

ライセンス

jFeedMixerはGPL、MITライセンスのもと作成されています。

リリースノート

  • 2010.08.30 jFeedMixerを公開
  • 2010.08.31 カテゴリ表示、表示の最大件数オプションを追加
  • 2010.09.07 テンプレート指定、前後に任意テキスト表示のオプションを追加

この記事へのコメント

EclipseからGitができるEGit
2010.08 29

私のメインIDEはEclipseで、SVNを使用しているのですが、githubにちょっと公開したいソースができたので、gitもEclipseからできないものかとプラグインを探してみたら、ありました。EGit。 前に調べた […]

私のメインIDEはEclipseで、SVNを使用しているのですが、githubにちょっと公開したいソースができたので、gitもEclipseからできないものかとプラグインを探してみたら、ありました。EGit。 前に調べたときはmsysgitでやるしかなく、Eclipseプラグインもgit向けが出たばっかりでろくに動かなかったので見送っていました。コマンドで暮らしてれば別に問題ないのでしょうが、GUIメインですし、メインの開発環境から出ずに済むならその方がいいです。

インストール

アップデートサイトがあるので、http://download.eclipse.org/egit/updatesからEclipseユーザならいつものパターンでインストールできます。新規ソフトウェアのインストールからウィザードに従ってインストールします。EGitはgitクライアントのJavaによる実装、JGitをベースにしています。

リポジトリを作る

まずは普段どおり、githubにリポジトリを作ります。ここからが普段と異なるところで、通常、リポジトリを作った後、ローカルブランチ(master)からoriginに向けて一度、pushをすることでリポジトリの作成は完了するチュートリアルが提供されていますが、pushの操作をEclipseから行ないます。ssh公開鍵の登録が必要ですが、その操作については割愛します。

Eclipseにリポジトリをインポート

[ウィンドウ]->[Viewの表示]->[その他]をクリックし、[Git]->[Git Repositries]を選択します。パースペクティブ上にGitビューが表示されるので、そこで右クリックし、[Git リポジトリーのインポート]を選択します。ロケーションのURIにgithubのリポジトリページで表示されている、「git@github.com…」をコピーして、URIに貼りつけます。必要な情報は補完入力されるので、ssh公開鍵のパスフレーズを入力して、次へ進んでいきます。初めてのsshアクセスだとknown_hostsの登録を確認されるので、そのまま従ってください。

リポジトリからプロジェクトを作る

Gitビューに表示されたリポジトリから右クリックし、[Import Projects]を選択します。[Use the New Projects wizard]を選択し、完了するとプロジェクト作成ウィザードが起動するので、任意のプロジェクトを作成します。

コミットする

作成されたプロジェクトでREADMEなど、何らかのファイルを作成した後、右クリックから[チーム]->[コミット]を行います。

originにプッシュする

プロジェクトを右クリックし、[チーム]->[push]を選択します。宛先のリポジトリを選択するのですが、必ずCustom URIを利用してください。2010/08/29の時点では、登録済みリポジトリを利用するConfigured remote repositoryからはリモートリポジトリの接続に失敗するバグがあります。Custom URIの[URI]にgithubリポジトリのURIを入力し、ssh公開鍵のパスフレーズを入力して次へ進みます。Source Refのプルダウンからmasterを選択し、[Add spec]を選択し継へ進みます。今回更新する内容が表示されるので、問題なければ完了を選択します。これでoriginに編集結果が反映されました。

バグがあるのと、ややUI的に発展途上な部分もありますが、メイン開発環境からいつもどおりに作業できるのは嬉しいですね。

この記事へのコメント

WordPressで認証ページを作成する
2010.08 24

特定のページのみ(この場合は固定ページ)に認証を設ける方法についてです。 ここでの例はページテンプレートを作成し、このページテンプレートしたページへアクセスした場合、ログイン済みならそのまま表示、未ログインであればWor […]

特定のページのみ(この場合は固定ページ)に認証を設ける方法についてです。 ここでの例はページテンプレートを作成し、このページテンプレートしたページへアクセスした場合、ログイン済みならそのまま表示、未ログインであればWordPressのログインページへリダイレクトします。なお、ログイン後はアクセスしたページへリダイレクトされます。

   1:  <?php
   2:  /**
   3:   * Template Name: 認証つきページ
   4:   */
   5:  if(!is_user_logged_in()) auth_redirect();
   6:  get_header();
   7:  
   8:  ?>

ポイントをあげるとすれば、wp_header()の前に認証処理を記述することです。

この記事へのコメント

Zen-Coding + Eclipse を導入する
2010.02 18

昨夜、「Ustreamで生Zen-Codingやってみましょうか」という内容がTwitter上で賑わっていました。 Zen-Codingってなに? HTMLとCSSを効率良く記述するためのスニペット生成マクロです。効果の […]

昨夜、「Ustreamで生Zen-Codingやってみましょうか」という内容がTwitter上で賑わっていました。

Zen-Codingってなに?

HTMLとCSSを効率良く記述するためのスニペット生成マクロです。効果の程については、まずこの動画を見てもらえればわかると思います。

Zen Coding v0.5 from Sergey Chikuyonok on Vimeo.

こういう手法はEmacs使いの人には馴染み深い物と思います。過去にはRuby on RailsのデモがTextMateを使って、上記のようなコーディング動画を配信されていました。私もその当時、TextMateいいな!と思って導入しましたが、日本語対応がうまくできず、EclipseベースのIDEに戻りコード補完をガシガシ使ってコーディングしてきました。

Zen-Codingはどうやって使うの?

現在ですと、Aptana, NetBeans, Coda, Espresso, TextMate, VisualStudio, Dreamweaver CS4とクロスプラットフォームで使用できます。これは素晴らしいことですね。私は現在、Eclipse + PDT + Aptanaという開発環境で諸々の言語を使用していますので、今回はEclipseで使うための方法について補足したいと思います。

前提として、EclipseMonkeyというプラグインが必要になります。これはEclipse上で動かせるマクロを作成するためのプラグインです。マクロは標準ではJavaScriptで記述することになっており、Rubyで書いたりもできるようです。Zen-CodingはJavaScriptで記述されています。

Zen-Codingを導入する前の準備

公式サイトにてインストール方法が紹介されています。まずは、Installingの手順に従ってAptanaのインストールとEclipseの再起動までを行いましょう。インストール時に依存関係を追って、一通りのツールがインストールされます。

その後、Zen Coding for Aptana v0.6 をダウンロードし、中のファイルすべてを以下の画像のように配置します。

image

新規プロジェクトで一般のプロジェクトを作成した後、scripts/libというディレクトリを作成しています。すると、メニューのスクリプトに「Zen Coding」という項目が現れます。早速、デモのように適当なHTMLファイルを作って試しましょう!Expand Abbreviation という項目がスニペット展開を行ってくれます。快適です。

Zen-Codingのショートカットキーをカスタマイズ

image

ショートカットキーをカスタマイズするには、まず該当するマクロのファイルを開きます。5行目にKeyという内容があるので、そこを編集します。M3って何だ?と思うかと思いますが、以下のような対応になっています。

  • M1->コマンド(Mac)
  • M2->Ctrl
  • M3->Alt or Option(Mac)
  • M4->Ctrl(Mac) 上記画像の設定だと Alt + E で Expand Abbreviation が実行されるということになります。

    ショートカットキーが動かない?

    Eclipseデフォルトのショートカットキーと競合している可能性があります。ウィンドウ->設定->一般->キーで競合しているショートカットキーを探し、別なショートカットキーを割り当てるか、コマンドのアンバインドで削除します。ちなみにフィルターのところで Ctrl+Shift などと入力するとCtrl+Shiftから始まるショートカットキーを探すことができて便利です。

ここまでできれば、快適なコーディングライフの歩みを一歩進めることができるでしょう。逆にZen-Codingの内容を参考にして、よく使うスニペットマクロを作成して行くと、楽しみが広がってくると思います。

この記事へのコメント

[Rhaco]時間がない人のためのアプリケーション日本語化メモ
2009.12 21

Rhacoは国際化機能も持っています。 setup画面のi18nメニューから自分で用意したテンプレートを利用することも可能なようです。 とはいえ、Viewsを拡張して作った部分をとりあえず日本語化したい人(というか自分) […]

Rhacoは国際化機能も持っています。
setup画面のi18nメニューから自分で用意したテンプレートを利用することも可能なようです。

とはいえ、Viewsを拡張して作った部分をとりあえず日本語化したい人(というか自分)へのメモ。
これでvalidate後のメッセージなども日本語化されます。
以下の手順はRhaco本体をローカルに取得済みとします。

・Rhaco本体のresources/setup/po/message-ja.potをアプリケーション側のsetup/poに配置
・Rhaco本体のresources/locale/messages/message-ja.phpをアプリケーション側の同ディレクトリに配置
・アプリケーション側のindex.phpで以下の2行を追加

Rhaco::import("resources.Message");
Message::loadMessages("ja");

試しにconfirmedCreateで作成したフォームや一覧などで英語表記だった部分が日本語になっていればOKです。本当にとりあえずなので、エラーメッセージのカスタマイズ時の手順は、

POTファイル編集->setupのi18nからPHPファイル生成

となります。あまりにあっけなく終わりましたが、こういうのが嬉しかったりします。

この記事へのコメント

[OSX]NetBeansからsvn+sshでリポジトリにアクセス
2009.11 18

ここに手順はありますが、解りづらいので自分でググって辿っていきました。 まずコマンドベースでsvn+sshできるところまで さくらインターネットの場合、SSHログインの際に$PATHに読み込まれるパスにユーザ制限がかけら […]

ここに手順はありますが、解りづらいので自分でググって辿っていきました。

まずコマンドベースでsvn+sshできるところまで

さくらインターネットの場合、SSHログインの際に$PATHに読み込まれるパスにユーザ制限がかけられるそうです。
よって、任意に配置したプログラムについては、 $HOME/bin へシンボリックリンクを貼っておく事で
問題を解決できます。
私の場合は、svn関連のコマンドは $HOME/local/bin に配置されていますので、以下の手順になりました。


% ln -s $HOME/local/bin $HOME/bin

続いて、リポジトリの初期化を行います。Berkeley DBは使用していないので、ファイルシステムにFSFSを
利用することとします。


% mkdir -p $HOME/svn/repos
% svnadmin create $HOME/svn/repos --fs-type fsfs

クライアント側で鍵認証のための手続きを行っていきます。
公開鍵を作成し、サーバ側に配置。その後、パスフレーズのスキップまでをついでに行います。
初期ディレクトリは /Users/ とします。


$ ssh-keygen -t rsa #パスフレーズを聞かれるので、入力しておきます。
$ scp .ssh/id_rsa.pub  @.sakura.ne.jp:.ssh/id_rsa.pub

#続いて、サーバにSSHログイン
% cd .ssh
% cat id_rsa.pub >> authorized_keys
% chmod 600 authorized_keys
% rm id_rsa.pub

#ここからクライアント側
$ ssh-agent bash
$ ssh-add
$ ssh -l username username.sakura.ne.jp

これでパスフレーズの入力なしでログインできたらOKです。

NetBeansからsvn+sshでリポジトリにアクセスする

NetBeansのバージョンは6.7です。まずはローカルのsvnクライアントについて設定を加えます。
/Users//.subversion/config を編集。
[tunnels]の項目で

ssh = ssh -l username

を追加。
NetBeansからのインポート、コミット時などのメッセージで日本語があるとエラーが表示されるので、
/Applications/NetBeans/NetBeans 6.7.1.app/Contents/Resources/NetBeans/etc/netbeans.conf
を編集し、netbeans_default_optionsの最後尾に以下を追加。

-J-Dfile.encoding=UTF-8

次に、
/Users//.subversion/config を編集。
[miscellany]の項目で

log-encoding = utf-8

と編集。

その後、NetBeansを再起動。
[チーム] -> [Subversion] -> [リポジトリにインポート]

リポジトリURLの項目に

svn+ssh://username.sakura.ne.jp/home/username/svn/repos
トンネルコマンドの項目に

ssh -l username

これでリポジトリにプロジェクトがインポートされます。
他に注意するのは、日本語のファイル名を持つファイルです。
ファイル名自体がUTF-8となっていないと、コミット時にエラーとなります。

私はDreamweaverを使ってないのですが、これでDreamweaverからもリポジトリにアクセス
できるはずなので、協業の際には役立ちそうです。
#Dreamweaver CS4からsvnクライアントの機能があり、svn+sshにも対応しています。

参考

  • [ssh] さくらサーバでsvn+sshを利用する方法(Linux/Mac)

この記事へのコメント

« Newer PostsOlder Posts »

作者について

青森県内でソフトウェア・システム開発を行うフリーランスのプログラマー。元々は集中監視システム開発に従事。現在はウェブサイト製作・オンラインシステムの開発案件を中心に、プログラミングのスキルトレーニングや講演も行う。

TEL 0172-55-7030  FAX 0172-55-7031
10:00 - 18:00 土日祝休

恐れ入りますが、お急ぎの場合を除いて、メールにてお問い合わせください。