WEB/システム/IT技術ブログ

Macではデフォルトでルートユーザが有効になっていません。あまりMacを使わないので、毎度この件につまづいて「あれ?root権限でコマンド実行できな!?」となってしまいます。。。

私は、過去にLinuxユーザだったので、Macの設定などを変える場合は、GUIを利用するよりもターミナルを使ってコマンドを打ち込みます。

例えば、ローカル環境でWebサーバなどを立ち上げている場合に、hostsを編集したいことがよくあります。

vi /private/etc/hosts

しかし、システム環境をターミナルから変更する場合には「root」権限が必要になります。
Mac OSをインストールしたことがないので、詳細は知りませんが、PCの管理者権限とは別のようです。一緒にすればいいのに。

以前にSWFObject 2.2の利用例を紹介しました。
Flash設置の決定版「swfobject」
上の利用例はswfobjectの公式ドキュメントに掲載されているスタンダードな方法です。一方で、objectタグなどを使用しない、少しスマートな記述方法もあるようです。
swfobject – Project Hosting on Google Code

まず、swfobjectを読み込んで、以下のようにしてswfobjectを実行します。

<script type="text/javascript" src="/js/swfobject.js"></script>
<script type="text/javascript">
	swfobject.embedSWF("/swf/index.swf", "FlashContent", 
		"400", "400", "10", "/swf/expressInstall.swf");
</script>

Progressionでは便利なエフェクトコンポーネントがデフォルトで用意されています。
エフェクトコンポーネントのデモは以下のサイトで紹介されています。
Progression(4.0.12) エフェクトコンポーネントをクラスで使用 – MotuLog

こちらのサイトでも説明されていますが、クラスからエフェクトコンポーネントを利用する方法でなかなかうまくいかなかったので、とりあえずメモです。

まず、エフェクトコンポーネントクラス「BlindsEffect」を継承した以下のようなクラスを用意します。

public class MyEffect extends BlindsEffect {
	
	public function MyEffect( initObject:Object = null ) {
		super( initObject );
		
		duration = 1;
		dimension = 1;
		easing = Circular.easeInOut;
	}
}

例えば、ムービークリップ「McPhoto」に上のエフェクトを適応する場合に、クラス「MyEffect」を継承します。以下、その手順です。

新はてなブックマークボタンが公開されていたので、このブログのボタンを張り替えることにしました。
使いやすくなりました! はてなブックマークボタン
キャンペーンが去年末に終了しているのをみると、そう新しい事でもないですね。

さて、上記のページより、このブログのトップページのブックマークボタンを作成します。結果は以下のとおりです。このコードをブログに貼り付けるだけです。簡単ですね。

<a href="http://b.hatena.ne.jp/entry/http://helog.jp" 
 class="hatena-bookmark-button" 
 data-hatena-bookmark-title="helog – Webに悩む人のネタ帳" 
 data-hatena-bookmark-layout="standard" 
 title="このエントリーをはてなブックマークに追加">
<img src="http://b.st-hatena.com/images/entry-button/button-only.gif" 
 alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" />
</a>
<script type="text/javascript" 
 src="http://b.st-hatena.com/js/bookmark_button.js" 
 charset="utf-8" async="async">
</script>

ここで前回と同様にWordPressに対応させます。すると以下のようになります。

<a href="http://b.hatena.ne.jp/entry/<?php the_permalink(); ?>" 
 class="hatena-bookmark-button" 
 data-hatena-bookmark-title="<?php the_title(); ?>" 
 data-hatena-bookmark-layout="standard" 
 title="このエントリーをはてなブックマークに追加">
<img src="http://b.st-hatena.com/images/entry-button/button-only.gif" 
 alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" />
</a>
<script type="text/javascript" 
 src="http://b.st-hatena.com/js/bookmark_button.js" 
 charset="utf-8" async="async">
</script>

ちなみに、以下がこれまでに埋め込んでいた旧はてなブックマークのコードです。設定部分が少ない分、比較的シンプルになったのかな。

<a href="http://b.hatena.ne.jp/entry/<?php the_permalink(); ?>">
<img src="/images/append.gif" 
 width="16" height="12" 
 style="border: none;" 
 alt="このエントリーをはてなブックマークに追加" 
 title="このエントリーをはてなブックマークに追加" />
<img src="http://b.hatena.ne.jp/entry/image/<?php the_permalink(); ?>" 
 alt="はてなブックマーク - <?php the_title(); ?>" 
 title="はてなブックマーク - <?php the_title(); ?>">
</a>

押してみてもらえると分かるとおり、機能面でいうとだいぶ改善され、使いやすくなったように思います。

プログラミングをしているときに、その変数自体が存在しているかどうかを知りたい場合があります。
例えばPHPの場合では

if(isset($a)){
	echo "変数$aは存在する";
}else{
	echo "変数$aは存在しない";
}

if($a){
	echo "変数$aは存在する";
}else{
	echo "変数$aは存在しない";
}

といった判定が可能です。
また、配列かどうかを確認したい場合は、

if(is_array($a)){
	echo "変数$aは配列です";
}else{
	echo "変数$aは配列ではありません";
}

このように判断が可能です。

eclipseでShift-JISで書かれたファイルを編集後に上書き保存できないことがあります。
保存できない旨のエラーメッセージは以下です。

「保管を完了できませんでした。
理由:
一部の文字は”shift-jis”文字エンコードを使用してマップすることはできません。
エンコードを変更するか、”shift-jis”文字エンコードによってサポートされていない文字を除去してください。」

どうやら、eclipseの設定で文字コードを「shift-jis」に設定している場合に、Shift-JISで扱えない文字を保存しようとするとこのエラーが発生するようです。
どの文字なのか突き止めようとしても、エラーの詳細は以下のみでよく分かりません。

Input length = 1

恐らく対象の文字は1つではないと思いますが、私の場合、たいてい「から」を変換した「~」が原因です。文字コードを「shift-jis」や「sjis」とした場合に発生します。

例えば、CDショップのサイトをCakePHPで構築するとして、ロック音楽のパスを「/cd/rock/」、ポップ音楽のパスを「/cd/pop/」としたと仮定します。

CakePHPのコントローラの基本的なルールでは、「/cd/rock/」にアクセスがあった場合に、コントローラ「CdController」のメソッド「rock」で処理が行われ、ビュー「/app/views/cd/rock.ctp」で表示されます。
同じくして、「/cd/pop/」にアクセスがあった場合に、コントローラ「CdController」のメソッド「pop」で処理が行われ、ビュー「/app/views/cd/pop.ctp」で表示されます。

ここでコントローラの処理についていうと、ジャンルは違えど処理はほとんど同じのはずです。処理を共通化したい場合には、コンポーネントを活用すればよいことは以前書きました。
CakePHPでコンポーネントを作成する

hetemlレンタルサーバにはSubversionサーバが用意されており、リポジトリを作成して利用することができます。
今回は実際にリポジトリを作成し、クライアントからsvn+sshで接続する方法のメモです。

hetemlでssh接続を有効にする

hetemlでSSHを有効にする方法は、公式サイトで公開されています。
レンタルサーバー「heteml」 – SSH のご利用方法
実際にWinSCPやPuTTYに接続できれば成功です。

hetemlにリポジトリを作成する

PuTTYでhetemlサーバに接続し、例えば以下のようにしてホームディレクトリにリポジトリ「test_repos」を作成します。

cd $HOME
mkdir -p ./test_repos
svnadmin create ./test_repos

Product Advertising APIを利用するために、PEARの「Services_Amazon」を使ってみます。

今回、構築したのはPHP5.3.0上です。
コマンドラインが実行できないレンタルサーバなどの環境下では、パッケージを手動でPEARのサイトからダウンロードします。「Services_Amazon」を動作させるためには、以下のPEARパッケージが必要となります。それらを以下にまとめます。

Services_Amazon 0.8.0 http://pear.php.net/package/Services_Amazon
HTTP_Request 1.4.4 http://pear.php.net/package/HTTP_Request/
Net_URL 1.0.15 http://pear.php.net/package/Net_URL/
Net_Socket 1.0.10 http://pear.php.net/package/Net_Socket/
XML_Serializer 0.20.2 http://pear.php.net/package/XML_Serializer/
XML_Parser 1.3.4 http://pear.php.net/package/XML_Parser/

コマンドラインが実行できる環境であれば、以下を実行するだけでインストールは完了します。

pear install Services_Amazon-0.8.0

手間な場合はローカルでコマンドを実行した後、インストール済みのPEARパッケージをまるごとレンタルサーバにアップロードする方法もあります。

これまで携帯電話用のWebサイトについては、その規格が収束に向かいそうにないので、捨てていました。Docomoとauで見栄えが異なる、同じSoftbankでも機種により見栄えが異なるなど、それぞれWebサイトについての規格はばらばらで、技術者泣かせのところがありました。そんな不安定な分野なんて、そのうち消えてなくなると考えていました。

最近、iPhoneを初めAndroidなどのモバイル端末の爆発的な広がりをみると、目を見張るものがあります。これまでの携帯電話専用サイトとは異なる、スマートフォン専用サイトの需要が高まるのは確実でしょう。

特にAndroidについてはPCサイトと変らない技術でホームページ構築が可能です。HTML、XHTMLのタグは普通に使用できますし、CSS、JavaScriptも動作します。最新のAndroidではフルFlashの表示も可能です。
繰り返しになりますが、これまで携帯電話専用サイトの規格が定まらなかったのは、キャリア間、メーカー間の仕様の問題でした。しかし、Androidについて、最近ではdocomo、au、softbankから多くの端末がリリースされています。メーカーでいうと、SHARPやTOSHIBAなどは独自のOSからAndroid OS採用への切り替えが積極的のようです。時代の流れの速さについてゆくために、独自技術で精度を求めるより、オープンですぐれたプラットフォームを活用するほうがコストが少ないんでしょうね。

Monthly Archives