Hatena::ブログ(Diary)

いろいろつまみ食い このページをアンテナに追加

2012-05-18

facebook php sdk api でログアウトする方法 12:02 facebook php sdk api でログアウトする方法を含むブックマーク facebook php sdk api でログアウトする方法のブックマークコメント


destroySession()をすればOKでした。

	$logoutUrl = $facebook->getLogoutUrl();
	$facebook->destroySession();

	header("Location: ".$logoutUrl);

いろんなBlog

「ログアウトはgetLogoutUrl()で生成したURLに飛べばいい」

って言ってるが出来ない。

たぶんだれもログアウトを試してないと思われる。

トラックバック - http://d.hatena.ne.jp/imaiworks/20120518

2011-09-08

eclipse(mac)の再インストール 16:44 eclipse(mac)の再インストールを含むブックマーク eclipse(mac)の再インストールのブックマークコメント

事の発端は

「更新アップデートをかけたら起動しなくなった・・」

ってこと。

よくわからないのでアプリケーションからeclipseを削除して

再度入れ直したんだが、どうにも不安定。

AndroidSDKもインストールしてるが、ADVマネージャーの画面がからっぽになったり

レイアウトエディタも動かないし・・で

何度もやり直したんだがうまくいかず。。

で、結論ですが/Usersの自身のホームディレクトリ

.eclipse

.android

というディレクトリがあるので、これらを削除(実際にはリネームしたんですが)して

再度入れ直したら、すっきりしたようでうまく動き出しましたとさ

めでたしめでたし

トラックバック - http://d.hatena.ne.jp/imaiworks/20110908

2011-08-04

Youtubeで、ページスクロールしてブラウザに現れたときに再生を始めるJavascript 19:35 Youtubeで、ページスクロールしてブラウザに現れたときに再生を始めるJavascriptを含むブックマーク Youtubeで、ページスクロールしてブラウザに現れたときに再生を始めるJavascriptのブックマークコメント


ちょっと頼まれたので作ったコードです。

jQueryにはLazyLoadなる画像の後読みのプラグインがありますが

あれは画像の表示されたら画像を読みにいくっていうことで

無駄な読み込みを減らす事ができたりするってことでしたが

(結局のところ読みこんじゃうらしいですね)

Youtubeの動画をページに埋め込んで、スクロールして

表示されたときに、再生してくれたらいいなってことで

jQueryのLazyLoadをコードを眺めていたら

どうもスクロール位置が云々している様子。

だったら、スクロールイベントで、動画を貼付けた位置になったら

再生させればいいんじゃね?ってことで

じゃあ、再生コントロールはどうしたかっていうと、

YouTube JavaScript Player APIってのがあるので、これを利用。


設定的には動画の表示が画面の2/3を超えたら再生を始めるようにしました。

また、リロードで動画の表示位置からいきなり始まったときは

スクロールをちょっとすると反応するようです。


ってことで、プラグインではないけど作ったコードをさらしておきます。

何かの参考にしてみてくださいw


<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>

<!-- 設定 -->
<script type="text/javascript">
	var youtube_video_id="nCCbRsXB6ng";
	var youtube_video_width= "320"
	var youtube_video_height= "330"
	var youtube_video_volume= 10;
</script>

<script type="text/javascript">

function onYouTubePlayerReady(playerId) {
	ytplayer1 = document.getElementById("myytplayer");
}

$(document).ready(function(){

	var use_youtube_video_width;
	var use_youtube_video_height;
	var use_youtube_video_volume;

	if( typeof youtube_video_width != "undefined" )
		use_youtube_video_width =youtube_video_width
	else
		use_youtube_video_width = "400"

	if( typeof youtube_video_height != "undefined" )
		use_youtube_video_height =youtube_video_height
	else
		use_youtube_video_height = "330"

	if( typeof youtube_video_volume != "undefined" )
		use_youtube_video_volume =youtube_video_volume
	else
		use_youtube_video_volume = "0"

	var params = { allowScriptAccess: "always" };
	var atts = { id: "myytplayer" };
	swfobject.embedSWF("http://www.youtube.com/v/"+youtube_video_id+"?enablejsapi=1&playerapiid=ytplayer","ytapiplayer",use_youtube_video_width, use_youtube_video_height, "8", null, null, params, atts);
	var youtube_hello_flg=false;

	$(window).scroll(function () {
		if(youtube_hello_flg==false){
			var scroll_y = document.documentElement.scrollTop || document.body.scrollTop;
			var off = $('#youtube_moviestart_trigger_tag').offset();
			var win_height = $(window).height()
			if(off.top<=(scroll_y + win_height/3*2)  && youtube_hello_flg==false){
				if( typeof ytplayer1 != "undefined" ){
					youtube_hello_flg=true;
					ytplayer1.playVideo();     //再生開始(自動再生)
					ytplayer1.setVolume(use_youtube_video_volume);  //音量を20に設定
				}
			}
		}
	});

});

</script>


3<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
2<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
1<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
0


<!-- youtube動画 -->
<div id='youtube_moviestart_trigger_tag' align='left' style='margin: 5px 20px 0;float:left;'>
<div id='ytapiplayer'> You need Flash player 8+ and JavaScript enabled to view this video.</div>
</div>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>end



トラックバック - http://d.hatena.ne.jp/imaiworks/20110804

2011-08-03

Mac上のVirtualBoxに作成したGuestOS(CentsOSLinux)からホストのフォルダをマウントする 18:38 Mac上のVirtualBoxに作成したGuestOS(CentsOSLinux)からホストのフォルダをマウントするを含むブックマーク Mac上のVirtualBoxに作成したGuestOS(CentsOSLinux)からホストのフォルダをマウントするのブックマークコメント

(べつにVirtualBoxじゃなくてもVMware fusionでもパラレルでもいけるでしょう)


たぶん普通なら、ゲストOSでexportしたディレクトリMacでマウントすればいいんだけど

四六時中ゲストOSを立ち上げっぱなしではないので

ゲストOS上のファイルをオープンしっぱなしにできない訳で。。。

じゃあ、ホストのディレクトリをゲスト側でマウントしちゃえばいいじゃん

と思いついた次第w


で、ググってみるとsshfsでやるのがいいらしいってことで

以下は手順


ゲストOSにsshfsをインストール

yumで一発かと思ったけどそうでもないので

まあ、そういうときはマケマケインストールでw

   wget 'http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.8.5/fuse-2.8.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ffuse%2Ffiles%2Ffuse-2.X%2F&ts=1312361792&use_mirror=cdnetworks-kr-1'
   tar xzvf fuse-2.8.5.tar.gz 
   cd fuse-2.8.5
   ./configure 
   make
   make install

   wget "http://downloads.sourceforge.net/project/fuse/sshfs-fuse/2.3/sshfs-fuse-2.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ffuse%2Ffiles%2Fsshfs-fuse%2F2.3%2F&ts=1312361617&use_mirror=cdnetworks-kr-1"
   tar xzvf sshfs-fuse-2.3.tar.gz 
   cd sshfs-fuse-2.3
   ./configure 
   make

(wgetするファイルは適宜最新バージョンを確認してください)

でも、このままsshfsを実行すると

sshfs: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory

てなエラーが出る可能性があるので

/etc/ld.so.conf

include ld.so.conf.d/*.conf
/usr/local/lib

として

ldconfig

を実行しておく

マウントする

アップルアイコンから

「システム環境設定」-「共有」

を選び、

リモートログインを「入」にする。

このとき、

このコンピュータにリモートからログインするには
"ssh xxxxxxx@192.xxx.xx.xx"と入力してください。

とでてるけど、IPのところはゲストとホストの関係でのIPにしてください。

(たぶんゲストOSとはNATやらホストオンリーアダプタなどでネットワークを組んでいると思うので

ゲストからホストに接続できるIPに読み替えてください。




で、ゲストOS側でマウントポイントを作成(普通にmkdirでディレクトリ作成)をつくって

mkdir /mac

sshfsでマウント

sshfs xxxxxxxx@192.168.56.1:/Users/xxxxxxxxx /mac

IPとユーザ名とマウントしたいmac側のディレクトリは読み替えてね

 192.168.56.1はホストオンリーアダプターでのホスト側の自環境でのIPアドレスです)

これで

[root@localhost ~]# ll /mac
合計 448
drwxr-xr-x 1 xxxxx xxxxx   170  6月  1 11:29 Applications
drwx------ 1 xxxxx xxxxx  2312  8月  1 20:05 Desktop
drwx------ 1 xxxxx xxxxx   374  6月 15 19:05 Documents
drwx------ 1 xxxxx xxxxx 10676  8月  3 17:56 Downloads
drwx------ 1 xxxxx xxxxx  1598  7月 26 17:24 Library
drwx------ 1 xxxxx xxxxx   102 12月 13  2010 Movies
drwx------ 1 xxxxx xxxxx   136 12月 13  2010 Music
drwx------ 1 xxxxx xxxxx   238  4月 25 15:39 Pictures
drwxrwxrwx 1 xxxxx xxxxx   238 12月 14  2010 Public
drwxr-xr-x 1 xxxxx xxxxx   170 12月 13  2010 Sites

ってな感じになってるんじゃないですかねー

トラックバック - http://d.hatena.ne.jp/imaiworks/20110803

2011-04-19

iTunes Connectの 「Release This Version」ボタン 14:32 iTunes Connectの 「Release This Version」ボタンを含むブックマーク iTunes Connectの 「Release This Version」ボタンのブックマークコメント

アプリ再申請をする際、承認後のリリースについて「Version Release Control」にて

Automatically release アプリ名 バージョン番号 once it has been approved 
I will release アプリ名 バージョン番号 after it has been approved 

という項目があり、

I will release アプリ バージョン番号 after it has been approved」 の開発者側で行うを選択をすると、

申請が承認されても公開にはならずに、

「Pending Developer Release」というステータスになります。

このとき、iTunes Connectには 「Release This Version」ボタンが表示されますが

f:id:imaiworks:20110419211032p:image

ここについて言及がほとんどないので、どういう動きをするかが不安でしたが、


このボタン、押すと確認が求められずに即座にリリース処理が走り出し、

Processing for App Store」というステータスに変わり、

しばらく(おおよそ5分程度)すると「Ready for Sale」になります。

が、

実際にダウンロードできるようになるにはもうしばらくかかるようです。

(1時間〜2時間程度かかるような気がしますし、検索するたびに変化するので

落ち着くにはもう数時間かかりそう。。)


ので、バージョンアップリリース日が決まっているならばその日までボタンを押すのはひかえて

リリースする2、3時間前にボタンを押すのがいいんじゃないかな?と思います〜


(以上、2011年4月19日現在の情報です)

トラックバック - http://d.hatena.ne.jp/imaiworks/20110419

2011-04-08

KeyRemap4MacBookでF10,F11,F12にHome,End,Delを割り当てる 12:20 KeyRemap4MacBookでF10,F11,F12にHome,End,Delを割り当てるを含むブックマーク KeyRemap4MacBookでF10,F11,F12にHome,End,Delを割り当てるのブックマークコメント

ウインドウズな人にはMacBookキーボードのキーって足りないんすよ

いや、しってるよ。Fnとかcommandを使えばできることを。。

でも、その器用さは俺にはなくてさw

で、行き着いたのはKeRemap4MacBookなのですが

標準設定にはF12にDel(FORWARD_DELETE)を割り当てるのはあるんだけど

俺好みの女にはできそうにないので

設定を追加することにして、俺好みに仕立てちゃる!


private.xml(ぐぐってね)に以下の設定を追加して

<?xml version="1.0"?>
<root>
	<item>
		<name>F10をHOME、F11をEND、F12をDELに変更</name>
		<appendix>Change F10 to Home,F11 to END,F12 to DEL</appendix>
		<identifier>private.standard</identifier>

		<autogen>--KeyToKey-- KeyCode::F10 , KeyCode::CURSOR_LEFT,  ModifierFlag::COMMAND_L</autogen>
		<autogen>--KeyToKey-- KeyCode::F11 , KeyCode::CURSOR_RIGHT,  ModifierFlag::COMMAND_L</autogen>
		<autogen>--KeyToKey-- KeyCode::F12 , KeyCode::FORWARD_DELETE</autogen>

	</item>
</root>

ReloadXMLし、

検索窓で「F11」とか入れれば

出てくると思うので、チェックすれば完了。

これで

F10 → HOME

F11 → END

F12 → DEL(FORWARD_DELETE)

になります。

あとはキートップ上にシールでも張っておけばいいと思いますw


根からのまっかーな人には耐えられないだろうなぁwwwwwwww

Exposé?なにそれ?

トラックバック - http://d.hatena.ne.jp/imaiworks/20110408

2011-03-29

APNSで突然エラーが出るようになった!? 15:08 APNSで突然エラーが出るようになった!?を含むブックマーク APNSで突然エラーが出るようになった!?のブックマークコメント

iPhoneアプリApple iPhone Notification Services(APNS)で開発しているとき

自分はphpで送信してるんですが(方法はググってね)

前までうまく行ってたのに、

なぜか動かなくなって以下のようなエラーを吐くようになりました。。

ポートが閉じられたのかな、、なんておもっていろいろ調べていたけど

どうも、ただ単にAPNS開発用の証明書の期限が切れてただけでした。

ので、Provisioning PortalのAPP IDsで同じように作成しなおしてください。

(一回作っているので作り方はわかりますよね? 自分は完璧にあたふたしましたw)


PHP Warning:  stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094415:SSL routines:func(148):reason(1045) in /xxxxx/apns_send.php on line xx

Warning: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094415:SSL routines:func(148):reason(1045) in /xxxxx/apns_send.php on line xx
PHP Warning:  stream_socket_client(): Failed to enable crypto in /xxxxx/apns_send.php on line xx

Warning: stream_socket_client(): Failed to enable crypto in /xxxxx/apns_send.php on line xx
PHP Warning:  stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /xxxxx/apns_send.php on line xx

Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /xxxxx/apns_send.php on line xx
Failed to connect 0 


(ググっても出てこなかったので、同じような境遇にあった人のために残していきます)



APNSでとても参考にさせていただいたサイト

http://www.fedorax.info/tag/apns

トラックバック - http://d.hatena.ne.jp/imaiworks/20110329

2011-02-15

MacにEclipsePDPをいれて日本語化 14:05 MacにEclipsePDPをいれて日本語化を含むブックマーク MacにEclipsePDPをいれて日本語化のブックマークコメント

まだ入れたばかりなのでこれで合ってるかはわかりませんが

備忘録として・・・

前提として、Eclipse PDT 2.2.0 Mac OSX 64-bit版で試しています。

http://www.eclipse.org/pdt/downloads/

  Eclipse PDT 2.2.0 All In Ones / Eclipse PHP Package

   All-In-One Bundle including Eclipse and required dependencies All-In-One Mac OSX Cocoa 64-bit

 をダウンロード

http://mergedoc.sourceforge.jp/

 から

  Eclipse 3.6.1 Helios Pleiades All in One

   Standard All in One (JRE なし)PHP

 をダウンロード

・個々を解凍する。

Eclipse 3.6.1 Helios Pleiades内のeclipseフォルダの「dropins」フォルダを

 Eclipse PDTeclipseフォルダにコピーする

Eclipse PDTeclipseフォルダのEclipe(またはEclipse.app)を

 「パッケージの内容を表示」をし、

 Contents/MacOS とたどり、

 eclipse.ini をテキストエディット等で開き、

 最後に

 -javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

 を追加して保存。

・Eclipe(またはEclipse.app)をダブルクリックで日本語化されたEclipseが立ち上がります。

 そのときのタイトルがこんな感じなはずです。

f:id:imaiworks:20110215140414p:image

うまく立ち上がったら、Eclipse PDTeclipseフォルダをアプリケーションフォルダに入れてしまいましょう。

以上です

Let's Develop!


立ち上がらない、エラーになるなどの場合はeclipse.iniに追加した設定が間違ってるのかも・・

トラックバック - http://d.hatena.ne.jp/imaiworks/20110215

2010-12-23 PEAR::Services_ShortURL で & が入るURLは & を %26 にする このエントリーを含むブックマーク このエントリーのブックマークコメント

題名どおり、

&が付いているURL

どうもAPIを経由する際、

&は引数になってどこかに行ってしまうのかどうかわからないけど

& を %26 にして渡さないと行けない様子w

単純にstr_replaceして対応した次第。


	$url="http://d.hatena.ne.jp/imaiworks/?a=b&c=test"

	Services_ShortURL::setServiceOptions('Bitly', array(
		'login'  => 'xxxxxx',
		'apiKey' => 'R_xxxxxxxxxxxxxxxxxxxxx'
		));
	$api = Services_ShortURL::factory('Bitly');
	
	$url = str_replace("&","%26",$url);
	
	$short_url= $api->shorten($entry); 

トラックバック - http://d.hatena.ne.jp/imaiworks/20101223

2010-10-21

たぶんこれであってる、objective-cメソッドの作り方 13:00 たぶんこれであってる、objective-cのメソッドの作り方を含むブックマーク たぶんこれであってる、objective-cのメソッドの作り方のブックマークコメント


objective-cメソッドの複雑さがさっぱり理解できずに

引数わたしもままならない状態でアプリを奇跡的につくっていたんだが

最近やっとこ理解できてきたので、この時点でわかっているであろうことをつらつらと・・


よく値を設定する際に

[scrollView setZoomScale:1.3 animated:NO];

という感じで、値をセットすることがあるが

普通の感覚だと

scrollview.zoomScale = 1.3;

とやるのが当たり前だと思っていて、この二つの差がよくわからなかったが

たぶん、おおよそどちらも一緒。

で、この時のsetZoomScaleは多分、UIScrollViewのメソッド

zoomScaleに値をセットするためだけに存在する。(ウソかもしれないのは話半分でw)

で、その後のanimatedは何かという話になるが

animatedの仕組みは別にして、animatedという引数にNOをセットしてる。

素直にみれば、そういうこと。終了w

いやいや、、

まあ、既存のクラスやメソッドはそれでいいんだわ。

決められたようにセットしておけば動くんだからね。


で、本題。

独自でメソッドを作るにはどうする?っていう話。

先のsetZoomScaleがメソッド名でanimatedは引数名・・・

これに気がつけばだいぶ話は早いんだが、ググってもそういう話が全く出てこず

もしくは、この話に行き着く調べ方がまったくわからんんすよ・・

たとえば、メソッドに3つの値を渡したいとします。

phpなら

function aaa(bbb,ccc,ddd)
{
}

aaa(1,2,3);

超簡単。(こういうのが基本的になってる脳なのでw)

で、objective-cだと、

.hの@interface{}の後にプロトタイプ宣言(ってobjective-cでもいうのかな?、、調べないとw)


-(id) aaa:(NSInteger *) bbb
	  set_ccc:(NSInteger *) ccc
	  set_ddd:(NSInteger *) ddd ;

.mにメソッドを追加して


-(id) aaa:(NSInteger *) bbb
	  set_ccc:(NSInteger *) ccc
	  set_ddd:(NSInteger *) ddd
{
    NSLog(@"%d %d %d",bbb,ccc,ddd);
}

どこかでよびだす。


	  [self aaa:1 set_ccc:2 set_ddd:3 ];

以上、メソッドの作り方、使い方。

これでいいはず。自分のところでは動いてるw

(要するにこれ以上解説できる能力が今は(当分?)無いw)

わざとメソッド名と引数名や引数に違い出してみたが、わかりやすく見えただろうか?


メソッドに値を渡すときの違いが微妙なイメージがあるから

本当にわかりにくく、悩みまくってたが、徐々に理解ができてきた・・・

こんだけのことだがわからなかったのは、頭が固いのかなぁ?とかw

トラックバック - http://d.hatena.ne.jp/imaiworks/20101021