Archive for the ‘我想故我書’ category

Twitter用自動フォロー返しスクリプト PHP

9月 2nd, 2010

Twitter用の自動フォロー返しスクリプトです。
Oauth版で、http://github.com/abraham/twitteroauth/downloads で公開されているtwitteroauth.php と Oauth.php が必要です。過去にフォローしたことのあるアカウントのリストをwasFriendというファイルで保持し、これらのアカウントからフォローされてもフォローし返さないようになっています。BOTやスパムへの自動フォローをしないようにするため、このようになっています。

<?php
define("USER" , "YOUR ACCOUNT");
define("DIR" , dirname(__FILE__) );
define("CONSUMER_KEY" , "KEY from Twitter");
define("CONSUMER_SECRET" , "KEY from Twitter");
define("ACCESS_TOKEN", "KEY from Twitter");
define("ACCESS_TOKEN_SECRET" , "KEY from Twitter");

require_once("twitteroauth.php");
// get friends
function getFriends() {
  $ch = curl_init("http://api.twitter.com/1/friends/ids.json?screen_name=".USER);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $res = curl_exec($ch);
  curl_close($ch);
  $ret = array();
  if (!$res) {
    fputs(STDERR , "Failed to get response\n");
    return $ret;
  }
  $res = str_replace("[", "", $res);
  $res = str_replace("]", "", $res);
  $ret = explode(",",$res);
  $wasFriends=fopen(DIR."/wasFriends", "r");
  while(!feof($wasFriends)){
    $t = trim(fgetss($wasFriends));
    if (!in_array($t , $ret)) {
      array_push($ret,$t);
    }
  }
  fclose($wasFriends);
  $wasFriends=fopen(DIR."/wasFriends", "w");
  flock($wasFriends, LOCK_EX);
  foreach ($ret as $t) {
    fputs($wasFriends,$t."\n");
  }
  flock($wasFriends, LOCK_UN);
  fclose($wasFriends);
  return $ret;
}
// get followers
function getfollowers() {
  $to = new TwitterOAuth(CONSUMER_KEY , CONSUMER_SECRET , ACCESS_TOKEN , ACCESS_TOKEN_SECRET);
  $res = $to->OauthRequest("http://twitter.com/followers/ids.json?user_name=".USER,"GET",array());

  $ret = array();
  if (!$res) {
    fputs(STDERR , "Failed to get response\n");
    return $ret;
  }
  $res = str_replace("[", "", $res);
  $res = str_replace("]", "", $res);
  $ret = explode(",",$res);
  $followerCount=fopen(DIR."/followerCount", "a");
  flock($followerCount, LOCK_EX);
  fputs($followerCount,date("Y/m/d H:i:s")." ".count($ret)."\n");
  flock($followerCount, LOCK_UN);
  fclose($followerCount);
  return $ret;
}
// follow user
function follow($id) {
  $to = new TwitterOAuth(CONSUMER_KEY , CONSUMER_SECRET , ACCESS_TOKEN , ACCESS_TOKEN_SECRET);
  $res = $to->OauthRequest("http://twitter.com/friendships/create/".$id.".json","POST",array());

  if (!$res) {
    fputs(STDERR , "Failed to get response\n");
    return >false;
  }
  $json = json_decode($res);
  if (!$json) {
    fputs(STDERR , "Failed to get json\n");
    return >false;
  }
  if (isset($json->following)) {
    fputs(STDOUT , "Successed to follow " . $id . "\n");
    $wasFriends=fopen(DIR."/wasFriends", "a");
    flock($wasFriends, LOCK_EX);
    fputs($wasFriends,$id."\n");
    flock($wasFriends, LOCK_UN);
    fclose($wasFriends);
    return >true;
  } else {
    fputs(STDERR , "Failed to follow " . $id . "\n" . var_export($json , true) . "\n");
    return >false;
  }
}
// get friends
$friends = getFriends();
 fputs(STDERR , "Friends List Aquired " );
 fputs(STDERR , count($friends) ."friends are listed \n" );
// search
$result = getfollowers();
 fputs(STDERR , "follower List Aquired" );
 fputs(STDERR , count($result) ."followers are listed \n" );
// follow
>foreach ($result as $r) {
  if (!in_array($r , $friends)) {
     fputs(STDERR , "Tring to follow " . $r ."\n" );

    follow($r);
    sleep(5);
  }
}
?>

勤め先のWEBページ、リニューアル

7月 21st, 2010

デザインも含めて、新しくなりました。

株式会社ブレインウェアジャパン

でも、まだまだ。、意味は通じるとしても文章が生硬すぎて読みやすくないし、レイアウト/スタイルも非常に欧州的だ。

じゃあとっとと更新しろよって話なんだけど、ターゲットオーディエンスのプロファイリングと導線、訴求内容とWEBでのアクションターゲットからリード生成っていう流れがまだ、よく見えてないのでもう少しこのバージョンで残します。

今やってるマーケティングリサーチがまとまったら、もっとフォーカスの効いたものがお届けできるでしょう。

IT資産管理のサンプルサイトを立ち上げました

6月 30th, 2010

Columbus シリーズの、Asset+、License+、Contract+を体験してもらえるサンプルサイトを立ち上げました。

データは適当ですが「資産と契約の管理」をどうやっているかを体験してもらえます。

これがメイン画面。

誰が何を使っているか、を管理するファンクションユニット画面

新規契約作成画面。一時的な作業員の契約も登録しておける。

契約画面。これは携帯電話の契約。

契約画面。ソフトウェアライセンス契約。

レポート一覧画面。全部表示しきれないので、抜粋。

  • 毎朝5時にシステムをオールリセットします。
  • いろんな人が使うので、個人情報は入力しないでください。

URLは、こちら。 ↓

http://210.136.54.220/columbuslcm/

IDとパスワードはこブログのコメント欄からか、会社のサイトの情報請求ページから要求してください。

備忘録

6月 21st, 2010

SugarCRMで顧客担当者をVCARDでエクスポートしようとすると、できないレコードがあった。
include/vcar.phpでsaveVcard()のheader吐いているところをファイル名だけにしてやったら、出せるようになった。

勤め先のWEBページ

4月 19th, 2010

株式会社ブレインウェアジャパン

これ、なんとかしないとなぁ。意味不明だもん。

内容が翻訳そのままである、っていうのは”グローバルなメッセージ性”を維持したいときには有効だけど、地元には地元の商売の作法ってものがあるのでそのままでいいわけがない。支援としてのブローシャ、ホワイトペーパーなんかを投入してメッセージのみでも機能するようにするか、あるいはローカルの商売に向けてきちんとローカライズする必要が、ある。

脊髄反射的には後者の方法論だけれど、業務リソースの多くをスイス本社に拠っている現状では前者のほうが内部での合理性は高い。というわけで、今の路線で、かつ日本語をブラッシュ+SEOかけてアクセスを上げていきつつ、キーワード分析でローカライズの方法を探る…んだろうな。

リニューアル中

11月 6th, 2009

とりあえず、プラットフォームを移行しました。今後色々といじって行きます。

京都旅行

10月 31st, 2009

先週、休みをとって京都旅行に行ってきました。

我が夫婦としては2003年に行った小樽以来の2回目の国内旅行で、なかなかめずらしいのだ。

旅行はとても楽しく、素敵だった。京都はまだ紅葉には少し早かったのだけれど、その分人が少なくて二人でのんびりと回ることが出来たし、「御朱印あつめ」という新しい楽しみを始めることが出来た。

様子の詳細は、こちらのスライドショーでどうぞ。

http://picasaweb.google.com/Tsuyoshi1212/Kyoto2009#slideshow/5398408358180179666

去年のタイ/ベトナム旅行に比べ、まったくサバイバル色がなかったのも素晴らしい。しつこい客引きをするタクシーも、たどたどしかった英語がいつの間にかすさまじく流暢になる「観光ガイド」や「親切な地元の人」もいないのだ。モノを尋ねれば何の見返りもなくても教えてくれるし、モノの値段はきちんと決まっている。何てラクなんだ!!

しかし、わざわざ発展途上の国と比べなくても京都の街や人は、とってもおしゃれだ。

例えば祇園の街や八坂神社のあたりはとても道がキレイで、夕方に歩くととてもロマンチックだ。只の路地なのだけれど、看板の出し方、明かりの付け方が本当にそつがない。原色の光は一切なくて木と石の路地にふんわりと黄白色の光が例えば和紙の灯篭から透けて店名を告げてくれる。洋食の店であっても、その流儀はきちんと踏襲されている。かと言って画一感があるわけではなく、それぞれのお店はきちんと、その流儀を客に伝えている。例えば格子戸が開け放ちであったり、閉めきっていたり、目隠しがあったり、メニューが出ていたり、いなかったり。
そんな一つ一つの店のしつらえを見ているだけでも、とても楽しい。

そんな「わかってる感」は青蓮院や銀閣寺の庭でも味わうことが出来る。何を見ている人に与えるかがものすごく考え抜かれていて、技法や金や地道な作業の繰り返しがぎっしりと詰め込まれているにもかかわらず、泥臭さや汗の匂いは全くない。かといって取り澄ましたような冷たさはもちろんない。ただ、すっきりと優雅なのだ。

もちろん人間そんな素敵なモノだけでは生きていけない。バイタリティーやアクティブな人間像は四条のデパート街や錦市場、先斗町の賑わいが、京都が博物館ではなく人が生きる街であることを改めて教えてくれる。洗練と歴史が日常ときちんと折り合いを付けている様子は、日々「人間の業」が街を増殖させている東京の住人からみると一つの奇跡の様に思えてくる。

僕等が今回泊まったホテルフジタからはとても手軽にあちこちを見て回ることが出来た。10数キロの距離がある大原三千院へも、電車とタクシーを使って1時間弱で行ける。街の反対側にある嵐山へも、30分ほどで行けてしまったりする。錦市場や先斗町へは徒歩で15分。青蓮院、八坂神社は歩いて30分。二条城は電車で10分だ。有名どころでなくても、路地の奥に店を構えているカフェは京都の町家を改造したものだったり、街角に何となくある飴屋が150年の歴史をもっていたり、何の看板も出ていない書道用品店が東京の専門店以上の品揃えがあったり、画材屋さんでは見ているだけでクラクラするきらびやかな和絵の具が壁いっぱいに積まれていたりする。
泊まった場所がよかったのかもしれないけれど、実感としては京都の街はそんなに大きくなくて、そんなコンパクトな街にいろんなモノがギュッとつまっている様子がまた、宝石箱の様なのだ。

とても楽しかった。また、行こう。

交渉

9月 8th, 2009

昨夜、Twitterで弓屋さんのつぶやきに反応(面識も無いのにすいません)してから、表題の件が引っかかっているので、少し書き出してみる。
Wikipediaで「交渉」を引くと、ほぼゲーム理論的なことが書いてある。ゼロサムとか、非ゼロサムとかね。交渉そのものがゲーム/価値の争奪・分配であるという理解だ。

ただ、ちょっと見方をひねると – 交渉はより大きな枠組みのゲームのための手法であるとすることも、できる。

より大きな枠組みのゲーム(例えば太平洋地域でのシェア40%獲得)があった時に、個別の交渉ではゼロサムどころか”価値が測定できないこと”が許されるケース(当該地域でキーマンの信頼を得るため、会話の継続が保証されること、とか。)もある。いやいや、それが得るべき”価値”なんだよ、という反論も勿論あるんだけれど「より大きな枠組み」を運用していく上で指標にしようとしている数値には反映されない/されにくいものだろう。(「で、シェアはいつ上がるの?」みたいなね。)

交渉を単一のゲームではなく、「ゴールに至るプロセスのひとつで、ステークホルダーが責任と利得を調整していく作業」と定義してみたときには”恣意的な価値判断/双方の合意が必ずしも見られないが、プロジェクトの運営には問題が無い結論”があり得る。

また、付与価値(報復か報償のどっちかで、ね。)の有無で、ゼロサム交渉が非ゼロサム交渉になったりするケースもある。「核開発止めなかったら爆撃だけど、どう??」とか「今回の発注もらえたら、ビジネススキーム入れ替えて受託開発から常駐サービスにします。」とかね。これも「交渉本体とは別の枠組みからの価値体系のインサーション」だ。

交渉それ自体を個別のゲームとして理解するのは勿論、順当に機能するし有益だ。だけど、単一の主題を扱っているわけではない/プレイヤーが複数/価値基準が複数/交渉手法が複数といった”複合要素”を気にしなきゃいけないときには”ゲームとオペレーションの集合における調整作業”という理解が必要だ、と思う。

目標、組織、人

8月 23rd, 2009

司馬遼太郎の「殉死」を読了した。作家は日露戦争の英雄、乃木希典が大嫌いらしくこき下ろしつづけているのだが、読みながらいくつか思うことがあったので記録しておく。

ドラッカー先生曰く、組織は目標に従う。なにを獲得するのかによって、どのような組織であるかが決定されるべきであるという。ただ、何かしらの目標があって、それを獲得するために適当な人材をあてていれば良いけれど、そうはできなかったり、あるいは後から”間違っちゃった”ことに気がついちゃったら…どうすりゃいいんだろう。

日露戦争のときに旅順攻略をまかされて「無能」を証明しちゃった乃木将軍がいい例だけれど、結局だれも彼を更迭出来なかった。彼自身も、自分自身を無能だとは思っていなかったらしい。後付けの理由はあろうけれども、結局それを許容する余裕を社会と組織が持っていたって言うことなんだと思う。”余裕”が社会の慣習とか、関与する人員の教育・啓蒙の不足によるものであろうとも、だ。そういう場合には、「こいつは無能だ」と言ってまわりの大半がそれに同意したとしても、そいつを舞台から降ろす決定打にはならない。逆に、「極論を述べる、現状を打破する工夫のない奴」と返り討ちをもらったりする。

そのような組織で、自浄作用はもちろんない。この様な組織では、目標に指向してではなく職能に指向して編成され、従って部分最適な「作業」が繰り返され、組織体全体の生き残りは関与する全員が問題意識として持っているものの明らかな目標はついに示されない…ことが多い気がする。

僕の知っている範囲では、リーダーの交代以外にこういったマイナスループを解除する方法はない。
別のフレーズに言い換えるならば、そのような気配が見えたならばリーダーは目標を確認し、組織全体のベクトルがそちらを向いていることを確認し、そうでなければ編成を替えなければならない。出来なければ、交代するか、組織全体でダメになりつづけるかだ。

構成員としては、その組織に見切りをつけなきゃいけないが…さて僕にはどれほどの自由度が残っているものか。

R.I.P Michael

7月 8th, 2009

追悼式典の時に、いつ棺を破って出てきてスリラー歌い始めるかとドキドキしてたのに。
盛りを過ぎたポップスターにはその程度の奇跡も起こせないのだ。