サーバーの設定ができたら開発オフのテーマにしてもいいかも。(いつになるか?!)
北海道開発オフに参加してきました。
もう12回ですか!早いですねぇ。
今日は今までで一番たくさん参加した方がいたのではないでしょうか。
昨日サーバーにSSHの設定をしたのですが、
その設定内容をきちんと噛み砕いて、理解してブログの記事にすること
を第一課題としていました。
午前中に終わるかと思っていたのですが・・
ネットワークの設定を調べたり
コマンドを調べたり
自分が行った設定の意味を調べたり・・・・
で終わってしまいましたorz
書いた記事はこちらです。
» 自宅サーバーのネットワークIPアドレスを固定IPにする 寺子屋未満: プログラミング:トライアンドエラーの結果をコツコツ&しっかり記録
» 自宅サーバー設定?SSHの設定(1) 寺子屋未満: プログラミング:トライアンドエラーの結果をコツコツ&しっかり記録
» 自宅サーバー設定?SSHの設定(2)RSA鍵を生成する 寺子屋未満: プログラミング:トライアンドエラーの結果をコツコツ&しっかり記録
ものすごく基本的なところなのですけどね・・・。
今まで「当たり前に設定されていたもの」の中身をちょっとは理解できたかな。
突っ込み歓迎です。
よろしくお願いします。
何このsally縛り!
和風あっさりスープカレーだったのですが。
今まで食べたことのない味でした。
ラーメンスープにたっぷりのスパイスを入れた感じ。
あっさりなのにダシがしっかりしていて、とってもおいしかった。
次回はもう少し辛さをアップして、
体調も万全にして食べに行きたいなー
なんとも楽しい充実した一日でした。
皆様お疲れ様でした&ありがとうございました!
本日はじめて参加された皆様どうだったでしょうか。
面白い、と感じていただければぜひ次回も参加していただきたいです。
人数がたくさんでわいわいやるのは、それだけで楽しいですね。
先日雪が降るなんぞして、
なかなか北海道の「春」を感じられない今日この頃ですが、
北海道といえば、やっぱりお花見ですからね。
野外でのお花見、あの開放感はたまらないですね。
自然に囲まれて、みんなでお花見。笑顔になります。
ヒント:「お花見」を「ジンギスカン」に変換
他の地方ではすっかり桜が終わっていますが、
これから道産子の花を咲かせましょうw
★みなさま、いろいろなアドバイスありがとうございます。★
32札幌にいなかったらごめんw 奥様と調整中。
webbingstudio私、持参できる道具とかないなー。コストコからも遠いし。
ぼんやりするの得意だから、場所取りしましょうか
maraigue途中からなら行くかもしれません。
smokeymonkeyオムさんの壮行会と聞いて。車で運搬できるなら、コンロとか七輪とかイスとかその他もろもろ一式持込しますよ。もしかしたら子供も持ち込むかも知れないけどww
webbingstudio>smokeymonkey こwどwwもwwwww
you1円山公園のコンロ貸し出し、予約できるようです。
予約できたとしたら食材と酒の搬入だけで済むのでいいかも。
webbingstudio上のリストにないものを持ってきたらいいですね。
では、私は紙コップ+割りばし+場所取りということでどうでしょう。
コンロの予約、便利そうですが雨の場合の延期ができなくなっちゃいますよね。
iyoupapa子連れ参加します。
小さいいすなら持ち込めるかな。車出した方がいいですかね?
tsukacyiコンロは一つ借りた方が良いのかな?とか思ってます。
なんとなく二つくらいあった方が良い気がするので。
iyoupapa車はFitなので、荷物積んだら人が乗れませんw。申し訳ない。
# 32さんのような大きな車だといいんですけどね。
すもさんの家で荷物積んで、買い出し隊と合流して、かな。
あと、嫁がサラダとか作ってくれるらしい。
32まだいけるか決まってないw
車は知り合いのマンションにとめようかと。
そしてその人も飲みに参加させます。
あと何人かよぼうか?
irasallyコンロは一つ借りて、もう一つはすもさん(パパさんに運んでもらう)としましょうか。
iyoupapa様:
充分です。すもさんの荷物が多そうなので、そこだけお願いします><
32様::
了解であります。お友達もぜひぜひ。
smokeymonkey荷物リストを作った。
http://twitter.g.hatena.ne.jp/smokeymonkey/20090430/1241097262
大半のものは僕んちにあるので、車で運搬してもいいですよ。
あ、子供は妻に拉致られたので僕一人ですw
you1とりあえずコンロ(小一つ)借りられそうかどうか、明日電話して聞いてみる。だいじょうぶなら一つ確保しときます。場所取りしたあとの待ち時間に暖をとりたいし。
そんなわけで、小さなヤカンと食後のコーヒーなぞ持って行きます。
tsukacyiすもけさんのところにコンロが無いとなるとレンタルとは別に調達する必要がありますかね。
mio-spr私もぜひ参加させてくださーい
野菜のホイル焼きとかします?味噌とかバターとか
washitaおっといかん、はてなとTwitterでID違うんだった。。。
@nagahito です。
前のコメント消してコメントしなおしました。
irasallymio-spr様:
参加ありがとうございます!
野菜もあったらよいですよね!
washita様もといnagahito様:
参加ありがとうございます。
是非初ジンパを楽しんでください!
tsukacyiレンタルのコンロがすでに埋まっているのと、すもけさんは七輪のみなので、コンロは一つ用意する必要がありますね。
@iyoupapaさんが預かっていただけるとのことなので、最悪一つ購入しましょうか。
そして購入した場合はガンガン利用せねばいけませんwww
あと、@32さんもまだ参加が確定していないので、買い出しも別途考える必要があるかなと。
円山で買えるところがあると@you1さんが言ってた気がするのでそんなに心配しなくてもいいかな?
後は場所取りを何時からやるのかというのくらいかな?
一応場所取りにも参加する予定。
smokeymonkey消費物(炭、焚き付け、紙皿、紙コップ不足分、割り箸不足分)は買いましょう。
新聞紙、火箸、はさみ・トング、軍手、クーラーボックスは僕持ってます。
レジャー椅子はかさばるので、代替でブルーシート持ってきます。
一応レジャー椅子5脚くらいあるので、持ち込んでも良いけど。
調味料は各自持ち込みで。つかでっかい塩コショウ一つ買ってもいいと思うけど。
机は無くても良いかな。
あとサッカーボールはあります!w
tsukacyi買い出しは徒歩になるのかな?
であれば、食料は円山クラス1階のダイエーが最も近いと思われ。(地下鉄直結)
ブルーシートは場所取り部隊の唯一にして最重要装備なのであらかじめおいらが用意します。
あとは場所をどのあたりにするか位かな?
tsukacyiコンロはすもけさんの家に小さいのがあったということなので、そのコンロ+七輪で良いか、千円ちょっとのコンロ一台買っちゃうかを決めましょう。
ブルーシート、焚き付け、紙皿、ボックスティッシュはおいらが用意します。
irasally>買い出しは徒歩になるのかな?
たぶん徒歩ですね。
ホーマックがあるので、そこの付近で全部済ませた方がいいのかなと思ってたのですが・・・
(買い出し人数的に)
>食料は円山クラス1階のダイエーが最も近いと思われ。(地下鉄直結
そこがあるなら、そっちの方がいいですね!
バーベキュー道具と食料は別々に買いだしかな。
irasally>そのコンロ+七輪で良いか、千円ちょっとのコンロ一台買っちゃうかを決めましょう。
時期的に「安いものが売り切れ」の可能性もあるので、当日ホーマックへ行って決めましょうか。
今日実家近辺で買い物するのでいいものないか見てみます(・∀・)
>ブルーシート、焚き付け、紙皿、ボックスティッシュはおいらが用意します。
ありがとうございます!
tsukacyi円山公園偵察結果 http://tinyurl.com/cxn7ol
今更だけど、円山公園花見注意事項 http://www.sapporo-park.or.jp/maruyama/sakura.html
smokeymonkey調味料のうち塩と胡椒と醤油は持参する。
割り箸も30膳くらいはあるから買わなくて良いです。
炭壷、机(小)も確保した。
レジャー椅子、あるだけ全部持ってきます。
irasally@kobun様
ありがとうございます!!
リンク追加しておきました。
@smokeymonkey様
>調味料のうち塩と胡椒と醤油は持参する
了解です。
じゃあ、焼き肉のたれはテケトーにもっていきます。
>炭壷、机(小)も確保した。
>レジャー椅子、あるだけ全部持ってきます。
あぁぁぁぁぁりがとうございます><
webbingstudioこれだけの人数になると、食べ残しが出そうです。
電子レンジにかけられる使い捨てのパックを何個か用意しました。
家族のいる人とか、持って帰ってもいいんじゃないかと思います。
washita私も朝から場所取り(か買出し)に参加したいです
you1ホーマックは山の手通り沿いにもあります。
向かいはラルズマート、隣は北雄ラッキー山の手店とまとめて買いものできる距離。
http://www.homac.co.jp/map/hokkaido/sapporo_23.html
どっちが近いですかね。
酒はホーマックへ向かう途中にえびすやというディスカウントショップがありますよ。
(ラッキーの中にもあります)
こっち方面に買い出しに行くなら道案内はまかせて!
irasally@washita様
了解です!では9時30分頃に集合場所でお願いします!
@you1様
心強い!ありがとうございます。
32さん(旅行中かな?)のお返事を待ちつつ、
何を買うかは当日に決めるとしましょう。
(コスト子OKだったら食糧は別部隊など)
irasally@webbingstudio様
容器!ありがとうございます。
たれつきの肉とか使った時もあると便利ですね。
持ち物にビニール袋とキッチン鋏を追加しておきます。
32いくます。
とりあえずピックアップして買い出しいきたいので
詳しい人募集。これからネットつないでるのでDかなんかくださいな。
うちは、おれと中の人と 元同僚1人つれてけたらー (計3人かなー
wakame (wakametter) on Twitter
女子なら誰でも経験があると思うんですよ。
トイレのあと、スカートちょっとめくれちゃってた・・・(´・ω・`)みたいの。
いわゆる「ワカメちゃん」状態ですね。
そんなワカメちゃん状態を回避できるように、やさしく声をかけてくれるbotを作りましたよ。
・・・オバカなbotですが、やってみたかったことは網羅できたんだ。
define('ID',"TwitterID");
define('PASS',"TwitterPassword");
require_once "../api_common/TwitterAPI.class.php";
// 文字コードセット
mb_regex_encoding("UTF-8");
// UserTL取得
$tap = new TwitterAPI();
$target_id = "irasally";
$since = new DateTime();
$since->modify("-2 minutes");
if( !$result = $tap->get_friends_timeline( ID , PASS , $target_id , $since ) ){
echo"get_friends_timelineAPI取得エラー";
return;
} else {
if($result->getResponseCode()!=200){
echo"API結果エラー";
echo $result->getResponseCode();
return;
}
$result_xml=simplexml_load_string($result->getResponseBody());
if(!isset($result_xml)){
echo"取得結果がありませんでした。";
return;
}
foreach( $result_xml->status as $status ){
$post = $status->text;
if( $status->user->screen_name!="wakametter" && mb_ereg( "(トイレ|といれ|もれそう|もれる|moreru)" , $post) ) {
$post_str .="たーいへーん!!.@".$status->user->screen_name."ちゃんがトイレにいきたがっているよ!";
if( !$result = $tap->update( $post_str , ID , PASS ) ){
echo"APIエラー";
} else {
echo "\n\r";
echo $result ." ";
echo $post_str;
}
$post_str="";
$post_str .="@".$status->user->screen_name." ワカメっちゃわないようにきをつけてね!";
if( !$result = $tap->update( $post_str , ID , PASS ) ){
echo"APIエラー";
} else {
echo "\n\r";
echo $result ." ";
echo $post_str;
}
$post_str="";
}
}
}
// replies取得
if( !$result = $tap->get_replies( ID , PASS , $since ) ){
echo"get_repliesAPI取得エラー";
return;
} else {
if($result->getResponseCode()!=200){
echo"API結果エラー";
echo $result->getResponseCode();
return;
}
$result_xml=simplexml_load_string($result->getResponseBody());
if(!isset($result_xml)){
echo"取得結果がありませんでした。";
return;
}
foreach( $result_xml->status as $status ){
$post = $status->text;
if($status->user->screen_name!="wakametter"){
if( mb_ereg( ".*(大丈夫|だいじょぶ|だいじょうぶ|ダイジョウブ|OK|ok|間に合った|確認した).*" , $post) ) {
$post_str .="@".$status->user->screen_name." よかった~。あんしん、あんしん。";
}else if( mb_ereg( ".*(だめ|ダメ|NG|ng|失敗|しっぱい).*" , $post) ) {
$post_str .="@".$status->user->screen_name." あ~(´・ω・`)・・・つぎはきをつけようね!";
}else{
$post_str .="@".$status->user->screen_name." どうしたの?だいじょうぶ?";
}
if( !$result = $tap->update( $post_str , ID , PASS ) ){
echo"APIエラー";
} else {
echo "\n\r";
echo $result ." ";
echo $post_str;
}
$post_str="";
}
}
}
大きな流れは次の2つ。
botのfolloerのTLを取得。
cronを2分おきに流す設定なので、teitterAPIに指定するsinceパラメーターは「現在時刻の2分前」としました。
発言の中に、トイレに関する文字列を含んでいる場合、
親切にもみんなにトイレに行きたいことを周知し、
こっそり、ワカメっちゃわないようにね、とアドバイスしてくれます。
botのrepliesを取得。
こちらもteitterAPIに指定するsinceパラメーターは「現在時刻の2分前」としています。
返信内容を判断して、色々なコメントをかけてくれます。
でも、waklametterは基本的にうっかりさんなので、
「大丈夫じゃなかったよ」
とか発言しても、
「よかった~。あんしん、あんしん。」
とか言っちゃいます(´・ω・`)
class TwitterAPI {
// twitterに投稿する -- 既存
public function update( $status , $id , $pass ) {
require_once "HTTP/Request.php";
$api_url = "http://twitter.com/statuses/update.xml";
$req = new HTTP_Request($api_url);
// Proxy
//$req->setProxy("", xxxx);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->setBasicAuth($id, $pass);
$req->addPostData("status" , $status );
if(!PEAR::isError( $req->sendRequest())){
return $req->getResponseCode();
} else {
return false;
}
}
// $target_idのTLを取得する
public function get_user_timeline( $id , $pass , $target_id , $since , $since_id ) {
require_once "HTTP/Request.php";
$api_url = "http://twitter.com/statuses/user_timeline/".$target_id.".xml";
if( isset($since) ) {
$since->setTimezone( new DateTimeZone('UTC'));
$api_url .= "?since=".urlencode($since->format(DATE_RFC822));
} else if( strlen($since_id) ) {
$api_url .= "?since_id=".$since_id;
}
// Request送信
$req = new HTTP_Request($api_url);
// Proxy
//$req->setProxy("", xxxx);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->setBasicAuth($id, $pass);
if(!PEAR::isError( $req->sendRequest())){
return $req;
} else {
return false;
}
}
// FolloerのTLを取得する:option-$target_idを指定すると、そのユーザーのFollowerのTLを取得する
public function get_friends_timeline( $id , $pass , $target_id , $since ) {
require_once "HTTP/Request.php";
$api_url = "http://twitter.com/statuses/friends_timeline";
if( strlen($target_id) ) $api_url .= "/".$target_id;
$api_url .= ".xml";
if( isset($since) ) {
$since->setTimezone( new DateTimeZone('UTC'));
$api_url .= "?since=".urlencode($since->format(DATE_RFC822));
}
$req = new HTTP_Request($api_url);
// Proxy
//$req->setProxy("", xxxx);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->setBasicAuth($id, $pass);
if(!PEAR::isError( $req->sendRequest())){
return $req;
} else {
return false;
}
}
// repliesを取得する
public function get_replies( $id , $pass , $since ) {
require_once "HTTP/Request.php";
$api_url = "http://twitter.com/statuses/replies.xml";
if( isset($since) ) {
$since->setTimezone( new DateTimeZone('UTC'));
$api_url .= "?since=".urlencode($since->format(DATE_RFC822));
}
$req = new HTTP_Request($api_url);
// Proxy
//$req->setProxy("", xxxx);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->setBasicAuth($id, $pass);
if(!PEAR::isError( $req->sendRequest())){
return $req;
} else {
return false;
}
}
}
updateメソッド以外を作成しました。
とはいっても、ほぼ形式は同じなのでこぴp(ry
指定ユーザーのTLを取得します。
パラメーターとしては$since(前回取得日時)、$since_id(前回取得STATUS_ID)どちらも受け付けます。
前回取得日時を優先して設定するようにしています。
「Proxy」としてコメントアウトしている箇所は、プロキシ設定が必要な環境で
セットが必要になります。
HTTP STATUS CODEも判断して、安全な実装をするため、
このAPIからはRequestオブジェクトを直接返しています。
まぁ、実は今回は使用していないのですが・・・。
FollowerのTLを取得します。
$target_idを指定すれば、指定ユーザーのFollowerTLを取得します。
自分のrepliesを取得します。
wakame (wakametter) on Twitter
画像とか、ひどいことになっていてごめんなさい。
この勢いには後悔しないようにします。
先日12月27日(土)に開催された道民部、大忘年会。
とっても楽しい夜となりました。
すぐに帰省したりなんだりで、思い返す余裕がなかったのですが・・・
やはり年越し前に!!!
(箇条書きですが)忘年会レポします。
こうやって書いてみると、15人って多いですね。うわー。
覚えやすいように@smokeymonkeyさんが、名前リストを作ってくれました。ありがとうございます。
チーズフォンデュがメインのオサレなお店でした。ナイス幹事です。
半個室、掘りごたつ、飲み放題!13名!
(無事に会計はぴったりあいました!皆さん大丈夫でしたか??)
5名4名参加
帰り道、タクシーから降りたあと横断歩道で滑って転びましたが(!)
無事に帰宅しました。
翌日はすっきり快調!とはいかないまでも、そこそこに活動可能でした。
間違いなく「酒豪伝説」のおかげです。
10人を超えるオフ会って初めてだったのですが
なかなかみなさん全員と話すのはむずかしいですね><
また機会がありましたらよろしくお願いします!!!
今年は、人生初オフ会で始まり、
最大人数の忘年会で締まりました。
来年も楽しみであります。
フォローさせていただきます!twitterでもよろしくです!