アーカイブ

2008 年 12 月 のアーカイブ

ifsetorって結局実装されたの?

2008 年 12 月 9 日 コメントはありません

<?php
  $id = isset($_GET['id'])? $_GET['id']: null; 

こんな感じのisset地獄から抜け出す手出しをしてくれるifsetorという(ネーミングが微妙な)関数が実装されるされないとうわさが昔ありました。


<?php
  $id = ifsetor($_GET['id']);
  function ifsetor(&$val, $def = null)
  {
      return isset($val)? $val: $def;
  } 

引数を参照にすることにより存在しない場合でもNoticeがでないなかなかCoolで便利な関数の予定でしたが。。。


C:\php5.3-win32-200809110205>php -v
PHP 5.3.0alpha3-dev (cli) (built: Sep 11 2008 02:02:06)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2008 Zend Technologies

C:\php5.3-win32-200809110205>php -r "var_dump(function_exists('ifsetor'));"
bool(false)

PHP5.3なし


C:\php6.0-win32-200807280630>php -v
PHP 6.0.0-dev (cli) (built: Jul 28 2008 02:06:04)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies

C:\php6.0-win32-200807280630>php -r "var_dump(function_exists('ifsetor'));"
bool(false)

PHP6.0なし

ifsetorの実装はなし。。。
その代わり(結果として代わりじゃないけど)PHP5.3では「?:」演算子が追加。


<?php
$user_id = isset($_GET['user_id']) ?: "anonymous"; 

と書いても期待した動作にはならないので、結局従来の書き方をするしかない。

で、結果的に「?:」をこういう場面で使うことはないんじゃないかと思っています。
そろそろ「?:演算子」について一言言っておくか – Do You PHP はてな

そもそもissetをしてくれる演算子ってわけじゃないので仕方ないですけどね。

カテゴリー: 日記 タグ:

あるある

2008 年 12 月 9 日 コメントはありません

らき☆すたと間違えてLuck Stealer買ってきた。
かずはじめのマンガが読めるのはジャンプSQだけっ!

カテゴリー: 日記 タグ:

iモードIDの取得方法

2008 年 12 月 9 日 コメントはありません

URLに「guid=ON」というパラメータを付けると、拡張ヘッダにiモードIDが付く、という仕様です。
ke-tai.org > Blog Archive > ケータイの端末ID・ユーザIDの取得についてまとめてみました

iモードIDの取得方法として、さらっと書かれていますがはまり所。
リクエストメソッドがPOSTの場合もリクエストURIにguid=onが含まれていなきゃいけない。


<form action="/hoge.php?guid=on" method="post">
<input type="submit" />
</form> 

こんな感じに。

カテゴリー: 日記 タグ:

自分ドメインのメールをGoogle Appsで管理する

2008 年 12 月 9 日 コメントはありません

現状、cheki.net鯖でメールを管理してるんですが、GmailでIMAP使えるようになったり、Gmail同士のpop取得できるようになったりしたのでそちらへ完全移行することにしました。


 ┌──────┐ ┌──────┐
①|メインGmail |→|cheki.net鯖 |
 |      |←|      |
 └──────┘ └──────┘
   ↓↓↓
 ┌──────┐ ┌──────┐ ┌──────┐
②|メインGmail |→|Google Apps |→|cheki.net鯖 |
 |      |←|      |←|      |
 └──────┘ └──────┘ └──────┘
   ↓↓↓
 ┌──────┐ ┌──────┐
③|メインGmail |→|Google Apps |
 |      |←|      |
 └──────┘ └──────┘

1.Google Appsに必要なメールアカウントを作る
2.GoogleAppsからcheki.netへのpopメール取得設定を行う
3.cheki.netからGoogleAppsへMXレコードを変更する
4.メインGmailからGoogleAppsへのpopメール取得設定を行う
5.GoogleAppsからcheki.netへのpopメール取得設定を解除する

DNSの設定はどっかに乗ってた以下のように変更


        IN      MX  10  ASPMX.L.GOOGLE.COM.
        IN      MX  20  ALT1.ASPMX.L.GOOGLE.COM.
        IN      MX  20  ALT2.ASPMX.L.GOOGLE.COM.
        IN      MX  30  ASPMX2.GOOGLEMAIL.COM.
        IN      MX  30  ASPMX3.GOOGLEMAIL.COM.
        IN      MX  30  ASPMX4.GOOGLEMAIL.COM.
        IN      MX  30  ASPMX5.GOOGLEMAIL.COM.
カテゴリー: 日記 タグ:

2008年8月7日アレ

2008 年 12 月 9 日 コメントはありません

9:20 けーたいサイトでネックになるのは、1.対応端末、2.絵文字対応

9:26 ソースのバージョン管理を一元化したい→VSSでメールで1つずつやりとり こいつらどうにかしないと

11:43 バージョン管理メモ trunkは最新、branchesへ移行、branchesからtsgsへ切り出し branchesからtrunkへ随時マージ

12:00 パイシーが「スパイシー」でぐぐってでてこなかったのでついカッとなってシスプリキャラの調査登録した

12:04 可憐(AV女優)がいて可憐を登録できなくて絶望した

12:06 一文字の「衛」が登録できなくて特に絶望はしなかった

12:09 IdeaPad S10!だがLenovoブランドじゃなぁ

12:59 「テニプリってテニス呼称するなと訴えられたんでしょ?」あーそれネタですね http://tinyurl.com/56eqmt

13:34 非対応にすべきdocomo端末 NM705i NM850iG 非対応にすべきau端末 W61PT 非対応にすべきSoftBank端末 702NK 702NKII 702MO 702sMO 802SE 804SS

16:10 Firefox3ではi絵文字が利用できない http://tinyurl.com/57xg28

22:48 @ishidafuu ちなみにvarcharは文字数ですが、裏仕様として256Byteが存在するのでUTF8でマルチバイト文字を利用した場合は75文字しか入りません

カテゴリー: 日記 タグ:

PEAR::Text_Figlet

2008 年 12 月 9 日 コメントはありません

Zend Framework使ってない人もPEAR::Text_Figletにあるのでできるよ。しかもstableだ。
秋元@サイボウズラボ・プログラマー・ブログ: それPEAR::Text_Figletでもできるよ

ほう?


<?php
require_once 'PEAR/Config.php';
require_once 'Text/Figlet.php';

$figlet = new Text_Figlet();
$fontdir = PEAR_Config::singleton()->get('data_dir') . '/Text_Figlet/fonts/';
if (!$fonts = @scandir($fontdir)) {
    die('not found fonts');
}
foreach ($fonts as $font) {
    if (strpos($font, '.') === 0) {
        continue;
    }
    if (PEAR::isError($figlet->LoadFont($font))) {
        die($error->getMessage());
    }
    echo $font . "\n";
    echo $figlet->LineEcho('LOWTECH') . "\n";
}
?>

なんとなくLOWTECHを出力


3-d.flf
 **         *******   **       ** ********** ********   ******  **      **
/**        **/////** /**      /**/////**/// /**/////   **////**/**     /**
/**       **     //**/**   *  /**    /**    /**       **    // /**     /**
/**      /**      /**/**  *** /**    /**    /******* /**       /**********
/**      /**      /**/** **/**/**    /**    /**////  /**       /**//////**
/**      //**     ** /**** //****    /**    /**      //**    **/**     /**
/******** //*******  /**/   ///**    /**    /******** //****** /**     /**
////////   ///////   //       //     //     ////////   //////  //      //
alligator2.flf
:::        ::::::::  :::       ::: ::::::::::: :::::::::: ::::::::  :::    :::
:+:       :+:    :+: :+:       :+:     :+:     :+:       :+:    :+: :+:    :+:
+:+       +:+    +:+ +:+       +:+     +:+     +:+       +:+        +:+    +:+
+#+       +#+    +:+ +#+  +:+  +#+     +#+     +#++:++#  +#+        +#++:++#++
+#+       +#+    +#+ +#+ +#+#+ +#+     +#+     +#+       +#+        +#+    +#+
#+#       #+#    #+#  #+#+# #+#+#      #+#     #+#       #+#    #+# #+#    #+#
########## ########    ###   ###       ###     ########## ########  ###    ###
bell.flf
 .       ___   .       __  _______ .____    ___  __  __
 /     .'   `. /       |  '   /    /      .'   \ |   |
 |     |     | |       |      |    |__.   |      |___|
 |     |     | |  /\   /      |    |      |      |   |
 /---/  `.__.' |,'  \,'       /    /----/  `.__, /   /

block.flf

 _|          _|_|    _|          _|  _|_|_|_|_|  _|_|_|_|    _|_|_|  _|    _|
 _|        _|    _|  _|          _|      _|      _|        _|        _|    _|
 _|        _|    _|  _|    _|    _|      _|      _|_|_|    _|        _|_|_|_|
 _|        _|    _|    _|  _|  _|        _|      _|        _|        _|    _|
 _|_|_|_|    _|_|        _|  _|          _|      _|_|_|_|    _|_|_|  _|    _|

contessa.flf
.   .__..  ..___..___ __ .  .
|   |  ||  |  |  [__ /  `|__|
|___|__||/\|  |  [___\__.|  |

cybermedium.flf
_    ____ _ _ _ ___ ____ ____ _  _
|    |  | | | |  |  |___ |    |__|
|___ |__| |_|_|  |  |___ |___ |  |

isometric1.flf
      ___       ___           ___           ___           ___           ___          ___
     /\__\     /\  \         /\__\         /\  \         /\  \         /\  \        /\__\
    /:/  /    /::\  \       /:/ _/_        \:\  \       /::\  \       /::\  \      /:/  /
   /:/  /    /:/\:\  \     /:/ /\__\        \:\  \     /:/\:\  \     /:/\:\  \    /:/__/
  /:/  /    /:/  \:\  \   /:/ /:/ _/_       /::\  \   /::\~\:\  \   /:/  \:\  \  /::\  \ ___
 /:/__/    /:/__/ \:\__\ /:/_/:/ /\__\     /:/\:\__\ /:/\:\ \:\__\ /:/__/ \:\__\/:/\:\  /\__\
 \:\  \    \:\  \ /:/  / \:\/:/ /:/  /    /:/  \/__/ \:\~\:\ \/__/ \:\  \  \/__/\/__\:\/:/  /
  \:\  \    \:\  /:/  /   \::/_/:/  /    /:/  /       \:\ \:\__\    \:\  \           \::/  /
   \:\  \    \:\/:/  /     \:\/:/  /     \/__/         \:\ \/__/     \:\  \          /:/  /
    \:\__\    \::/  /       \::/  /                     \:\__\        \:\__\        /:/  /
     \/__/     \/__/         \/__/                       \/__/         \/__/        \/__/

larry3d.flf
 __      _____   __      __  ______  ____    ____    __  __
/\ \    /\  __`\/\ \  __/\ \/\__  _\/\  _`\ /\  _`\ /\ \/\ \
\ \ \   \ \ \/\ \ \ \/\ \ \ \/_/\ \/\ \ \L\_\ \ \/\_\ \ \_\ \
 \ \ \  __\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  _\L\ \ \/_/_\ \  _  \
  \ \ \L\ \ \ \_\ \ \ \_/ \_\ \ \ \ \ \ \ \L\ \ \ \L\ \ \ \ \ \
   \ \____/\ \_____\ `\___x___/  \ \_\ \ \____/\ \____/\ \_\ \_\
    \/___/  \/_____/'\/__//__/    \/_/  \/___/  \/___/  \/_/\/_/

script.flf
    _    __   _            _________  ___  ,
 \_|_)  /\_\/(_|   |   |_/(_) | / (_)/ (_)/|   |
   |   |    |  |   |   |      | \__ |      |___|
  _|   |    |  |   |   |    _ | /   |      |   |\
 (/\___/\__/    \_/ \_/    (_/  \___/\___/ |   |/

slant.flf
    __   ____ _       ______________________  __
   / /  / __ \ |     / /_  __/ ____/ ____/ / / /
  / /  / / / / | /| / / / / / __/ / /   / /_/ /
 / /___ /_/ /| |/ |/ / / / / /___/ /___/ __  /
/_____\____/ |__/|__/ /_/ /_____/\____/_/ /_/

使うとしたらslantかな?

PEAR::Text_CAPTCHAからこれを呼んで、Figletのキャプチャを出すことも可能。
秋元@サイボウズラボ・プログラマー・ブログ: それPEAR::Text_Figletでもできるよ

ほう?


<?php
require_once 'Text/CAPTCHA.php';

$options = array(
    'output' => 'javascript', // text, html or javascript
    'options' => array(
        'font_file' => 'slant.flf', // file string or files array
    ),
);

$c = Text_CAPTCHA::factory('figlet');
if (PEAR::isError($r = $c->init($options))) {
    printf('Error initializing CAPTCHA: %s!', $r->getMessage());
    exit;
}

if (PEAR::isError($r = $c->getCAPTCHA())) {
    echo 'Error generating CAPTCHA!';
    echo $r->getMessage();
    exit;
}
echo $r; 

これだとjavascriptで文字列表示するだけなので、別途パスフレーズを保存したりチェックしたりする必要あり。

カテゴリー: 日記 タグ:

iPhoneメモ

2008 年 12 月 9 日 コメントはありません

UserAgent


Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20

メールアドレスは「@i.softbank.jp」neないのに注意
IPはAppleG/W通ってそうな感じ
保険に入っていても、液晶破損による修理は63,500円。

カテゴリー: 日記 タグ:

今日のチェキ 2008-07-11

2008 年 12 月 9 日 コメントはありません
カテゴリー: 日記 タグ:

今日のチェキ 2008-07-02

2008 年 12 月 9 日 コメントはありません
カテゴリー: 日記 タグ:

Poderosa

2008 年 12 月 9 日 コメント 13 件

sshクライアントはteraterm(正しくはUTF-8 TeraTerm Pro with TTSSH2)派なのですが、Poderosaのインストールしてみた。

個人的に必須なポートフォワーディングはプラグイン化されていたのでそちらから。
単体でも動作するので、かなりオススメ。

ログインは1クリックで行いたいので、接続するたびにパスフレーズを入力するのが面倒ですを参考にgtsファイルを編集します。

これで、1クリックで接続できるようになったのですが、マウスでクリックなんてだるい動作したくないので、いつもどおりのファイル名を実行で起動できるように。
先ほどのgtsファイルのショートカットを作成してPATHの通ってるディレクトリに置いて終了。

カテゴリー: 日記 タグ: