トリアエズぶろぐ
フリーランスでやってる77世代のWEBプログラマが福岡からのんびりとお送りいたします。
スポンサーサイト


一定期間更新がないため広告を表示しています

スマホのブラウザでPull to Refreshを実装するテスト


試しに書いてみたら意外と簡単でそれっぽかったので。

・画面を引っ張ってる間はjQuery.slideUpとかは動かないので-webkit-transformなどで。
・Androidだと見た目がちょっと微妙。
・jQueryは使わなくてもいいんだけど、、、手抜きです(´・ω・`)

サンプル・ソースは以下
マック用のFlashプロジェクタをDropbox経由で渡すと起動しない


これは ハマった。

ハマったというか、
「あー、Windowsでマック用のプロジェクタをパブリッシュしたからねー、AdobeとApple相性悪いし、動かないこともあるかもねー。」
と思い込んでスルーしてたら、原因は別のところに。

マック用のFlashプロジェクタは、マックから見るとひとつのアプリケーションだけど、Windowsから見ると単なるフォルダ。
この中にFlashPlayer等の一式が入っている。

プロジェクタが起動しなくて悩んだ挙句、ふとマックの /var/log/system.log を見てみると
Flash Player … permission denied
の文字が。

あれれ、なんだこれ。と思ってターミナルからプロジェクタのフォルダを覗いてみると・・・
(プロジェクタアプリ).app/Contents/MacOS/Flash Player
のパーミッションが0644になってる…!

もしかしてと思って
$ chmod 0755 Flash Player
してみたら無事起動するようになりましたとさ。

その後は
Windowsでパブリッシュ → .appフォルダをzip圧縮 → Dropbox → Macでローカルにコピー → zip解凍
の手順でOKでした。ちょっと面倒だけど。


めでたしめでたし。
縮小専用。が400万ダウンロード突破。そしてAdobe AIRアプリとして再デビューします。


縮小専用AIR


400万ダウンロード、2009年8月末時点で突破していたようです。
気付かなかった・・・。

「縮小専用。」100万ダウンロード突破! | トリアエズぶろぐ
の記事が2005年の10月末なので、4年弱かけて300万ダウンロードして頂いてます。


本当にありがとうございます!


Vector Softライブラリの、2009年 年間総合ランキング(Windows) が発表されていたので覗いてみたらなんと5位

Vector AWARD でも1位とか頂いてるし。


縮小専用。は2002.11.26以来バージョンアップしておらず、やろうやろうと思いながら気づけば昔の開発環境も動かないようになってしまいました。


そう、、、もうバージョンアップはできないのです。


しかし、ここまでたくさんの方にダウンロード・利用して頂くと、なにかしらの形で感謝の気持ちは伝えたい。

現に今でも書籍への収録や企業内での利用、講習会での紹介など、縮小専用。に関するメールはたくさんいただいております。

もちろん、他にも沢山の便利なフリーソフトは存在します。
縮専よりももっと綺麗に縮小できて、もっと速く処理できるソフトもあるでしょう。

もうバージョンアップはできないけれど、縮小専用。を愛用している方にとってスペシャルなプレゼントとはなんだろう。と、色々と考えました。

そしてでてきた答えは、「気の利いたオマケが付いた縮小専用。の再デビュー」

・・・

まぁ、、、あまり新しいことやってないです。。。すみません。
しかも、ネイティブWindowsアプリケーションだった縮小専用。に比べるとやはり遅いです。これは今後の課題です。。。

でもでも、今回スペシャルな機能を加えました!
デジカメ写真をトイカメラ風やポラロイド風に変換するオプションを追加してます。
独特の色味や画像周辺の流れ、光量落ちを再現してます。
サイトにはサンプル画像もあります。是非お試し下さい。



縮小専用AIRのダウンロードはこちら




2010.02.02
窓の杜で紹介されました!!ありがとうございます!
窓の杜 - 【NEWS】「縮小専用。」が8年の時を経てAdobe AIRでリメイク「縮小専用AIR」

2010.05.14
日刊ウェブログ式で紹介されました!ありがとうございます!
AdobeAIRアプリケーションで機能性の高いソフトを厳選してまとめてみた | 日刊ウェブログ式
アマゾンランクレットで新API・新カテゴリに対応





拙作のアフィリエイトツール、「アマゾンランクレット」でAmazonの新APIであるProduct Advertising API にバタバタ(!)対応しました。

これ作ったのが3年前。
【アマゾンランクレット】 プチAjax - Amazonリンク作成ツール

今回PEAR::Services_Amazon(0.8.0)を使用させていただきました。作者の方には多謝です!
あわせてjQueryでインターフェースを作り直し。
新カテゴリにも対応しましたー。
元々PEARやjQuery使わずにガリガリ書いてたので作り直しに1日かかってしまった><

それにしてもブラウザノードのIDからSearchIndexって今でも逆引き機能無いんですかね?
ちまちまと調べるのが面倒でした・・・。
自分と同じめんどくさがり屋のために晒しときます。(間違ってたら教えてね!)
	$AMAZON_TOP_NODES = array(
		array(
			'BrowseNodeId' => '465610',
			'SearchIndex'  => 'Books',
			'Name'         => '本',
		),
		array(
			'BrowseNodeId' => '52033011',
			'SearchIndex'  => 'ForeignBooks',
			'Name'         => '洋書',
		),
		array(
			'BrowseNodeId' => '561958',
			'SearchIndex'  => 'DVD',
			'Name'         => 'DVD',
		),
		array(
			'BrowseNodeId' => '562032',
			'SearchIndex'  => 'Music',
			'Name'         => 'ミュージック',
		),
		array(
			'BrowseNodeId' => '637394',
			'SearchIndex'  => 'VideoGames',
			'Name'         => 'TVゲーム',
		),
		array(
			'BrowseNodeId' => '637392',
			'SearchIndex'  => 'Software',
			'Name'         => 'PCソフト',
		),
		array(
			'BrowseNodeId' => '3210981',
			'SearchIndex'  => 'Electronics',
			'Name'         => '家電&カメラ',
		),
		array(
			'BrowseNodeId' => '86731051',
			'SearchIndex'  => 'OfficeProducts',
			'Name'         => '文房具・オフィス用品',
		),
		array(
			'BrowseNodeId' => '3828871',
			'SearchIndex'  => 'Kitchen',
			'Name'         => 'ホーム&キッチン',
		),
		array(
			'BrowseNodeId' => '57239051',
			'SearchIndex'  => 'Grocery',
			'Name'         => '食品&飲料',
		),
		array(
			'BrowseNodeId' => '160384011',
			'SearchIndex'  => 'HealthPersonalCare',
			'Name'         => 'ヘルス&ビューティー',
		),
		array(
			'BrowseNodeId' => '344845011',
			'SearchIndex'  => 'Baby',
			'Name'         => 'ベビー&マタニティ',
		),
		array(
			'BrowseNodeId' => '13299531',
			'SearchIndex'  => 'Toys',
			'Name'         => 'おもちゃ',
		),
		array(
			'BrowseNodeId' => '352484011',
			'SearchIndex'  => 'Apparel',
			'Name'         => 'アパレル&ファッション雑貨',
		),
		array(
			'BrowseNodeId' => '14304371',
			'SearchIndex'  => 'SportingGoods',
			'Name'         => 'スポーツ&アウトドア',
		),
	);
ちょw「縮小専用。」の類似品増えてきたwww


 2002年からバージョンアップしていない拙作「縮小専用。」ですが(すみません)、
以前、縮小専用。の偽者あらわる!(注意) | トリアエズぶろぐ
てことで注意喚起した記憶があるんですが、、、

またまた似たソフトが出てました。しかもVectorで(!)
なんかちゃんとやってる(?)感じなのでリンク張っちゃいます。nofollowで;-)
『縮小専用+拡大専用』 Ver.1.5
バージョンもご丁寧に同じw
てか拡大縮小どっちもできたら「専用」じゃないしー

最初の偽者とは違う人なのかなぁ。
偽者は、こちらのホームページと丸々同じ(コピーライトも自分の名前)なので、そこは勘弁してほしいんですが。

似たようなソフト出るのは良いと思うんで、やるなら「縮+拡」みたいにちゃんと(つっても似すぎな気がするけど)やって欲しいす。ばっちり高機能だし。>縮+拡

気になるのは、「縮+拡」がEXIF保存対応してるのか、というところ。
対応してたら自分が使うかも><


あ、WindowsVistaの方向けに元祖wにZIP圧縮版置いてます。
縮小専用。
今後ともご愛顧の程宜しくお願いいたします:-)

CSSのoverflow内でSmoothScrollするサンプル


 ちょっと頼まれて作ってみたテスト。

Kazuma Nishihataさんが作られたSmoothScroll.jsをCSSのoverflow用に改造してみました。ていうかほとんど変えてません。

本来のSmoothScrollと同居できたらステキなんでしょうけど、それはやってません。ごめんなさい。

サンプルの文章は著作権フリー聖書を使用させていただきました。感謝。

safariじゃ動かないみたい。しくしく。


サンプルはこちら↓からどぞー。
CSSのoverflow内でSmoothScrollするサンプル

[携帯] 外部CSS⇒インラインCSSに変換するPHPを1KByte以内で書く!


モバイルサイト制作のプチ仕事がありまして、CSSなんか使ってふふーんと作ってて、
ドコモのi-modeではCSSはインラインCSSが原則なのでめんどうだなぁ、なんて思ってたんです。
そんなときにいいもの発見。

DoCoMo向けにCSS指定をインラインに埋め込むPHPライブラリ「toInlineCSSDoCoMo」作りました

さっそく試してみるかー、と思ったらPHP5.1以上対応。
使ってるレンサバはPHP4。。。

むきーっとついカッとなってさくーっっと簡単バージョン作ってみました。

HTML+外部CSSを普通に設置して、、、ちょちょいとおまじないしたら、、、

inlineCssMobile

インラインCSSになって表示できた!

おまじないは、以下の2つのファイルをHTMLと同じフォルダに置くだけ。かんたーん。

.htaccess

RewriteEngine on
RewriteRule ^$ inlineCssMobile.php?page=index.html
RewriteRule ^(.+¥.html)$ inlineCssMobile.php?page=$1
と、ちょっと長いけど
inlineCssMobile.php
<?php
 $html   = file_get_contents(dirname(__FILE__) . '/' . basename($_GET['page']));
 preg_match_all('|<link[^>]+href="([^"]+¥.css)"|', $html, $m, PREG_PATTERN_ORDER);
 $CSS = NULL;
 foreach($m[1] as $v){
  $cssFn = realpath(dirname(__FILE__) . '/' . $v);
  if (is_file($cssFn)){
   $CSS .= "¥n".file_get_contents($cssFn);
  }
 }
 $CSS = preg_replace("|¥n@[^¥n]+|", "", $CSS);
 $CSS = str_replace(array("¥r", "¥n", "¥t"), "", $CSS);
 $CSS = str_replace('}', "}¥n", $CSS);
 preg_match_all("|(¥.[a-zA-Z¥d¥-_]+)¥s*¥{([^¥}]+)¥}|", $CSS, $m, PREG_SET_ORDER);
 $search  = array();
 $replace = array();
 foreach($m as $v){
  if ($v[1][0]=='.'){
   $search[]  = 'class="'.substr($v[1], 1, 255).'"';
   $replace[] = 'style="'.$v[2].'"';
  } else {
   $search[]  = "<{$v[1]} ";
   $replace[] = "<{$v[1]} style=¥"{$v[2]}¥" ";
  }
 }
 $html = preg_replace('|<link[^>]+href="([^"]+¥.css)"[^>]+>|', "", $html);
 header("Content-Type: text/html; charset=Shift_JIS");
 print str_replace($search, $replace, $html);
 exit;
これだけ!

超簡易的なので、穴は色々あると思うけど、、、

・外部CSSだけ。HTMLのheadに書いてあるCSSはインライン化しません
・@importは論外w
・htaccess+PHPが動かないサーバはごめんなさい

条件が合えば既存のHTML+CSSに一切触らないので超絶便利です。
ドコモ用だけでなく、3キャリアのケータイサイトで使ってもいいと思います。
auとか、外部CSSにすると若干レスポンス悪くなりますしね。

もちろんソースコードは商用問わず自由に改変して使っていただいてOKです。
余計なスペースや改行を取っ払ってHTMLをスリムにしたり、キャッシュ処理とか入れてもいいですね。


えんじょい!




phpPgAdmin4.2以上でどうしてもログインできないときのバッドノウハウメモ


 自分用メモですが。

config.inc.phpで
$conf['servers'][0]['sslmode'] = 'disable';
とかでもログインできないよ!って時。

phpPgAdmin-4.2.2/classes/database/Connection.phpの
  // Add sslmode to $pghost as needed
                if (($sslmode == 'disable') || ($sslmode == 'allow') || ($sslmode == 'prefer') || ($sslmode == 'require')) {
                        $pghost .= ':'.$sslmode;
                } elseif ($sslmode == 'legacy') {
                        $pghost .= ' requiressl=1';
                }

をコメントアウトでおk。

[PHP] いろんな関数を再帰処理して便利にしてみる


しばらくブログを書かないと、いざ書くときになんだか恥ずかしい気がするのは僕だけでしょうか…。
こんにちは、たまにはそれっぽい事書いてみますかー。

◆配列の値の文字コードを一気に変換!
mb_convert_encodingを再帰処理すれば便利じゃね!?
いやいや、mb_convert_variables てのがあるよ、というやりとりを以前どこかで見た気がするのですが、PHPの関数を再帰処理して使うのはやっぱり便利!
てなことで、色々作ってみる。

◆配列の値を一気にhtmlspecialcharsで便利!
こんな感じで書く
function htmlspecialchars_array($array, $ignore_keys = NULL){
   if (is_array($array)){
      foreach($array as $k => $v){
         // 無視するリスト
         if (in_array($k, (array)$ignore_keys, TRUE)){
            continue;
         }
         if (is_array($v)){
            // 配列だったらここで再帰するよ
            $array[$k] = htmlspecialchars_array($array[$k], $ignore_keys);
         } else {
            // そのまま変換
            $array[$k] = htmlspecialchars($v, ENT_QUOTES);
         }
      }
   } else {
      // そのまま変換
      $array = htmlspecialchars($array, ENT_QUOTES);
   }
   return $array;
}
使ってみる。
$hoge_array = array(
   'title' => '<strong>タグ使っちゃいやん</strong>',
   'comments' => array(
      'タグ<font color="#FFCC00">オッケー</font>よん',
      'タグ<font color="#00CCFF">オッケー</font>よん',
   ),
   'list' => array(
      'discription' => array(
         'タグ使っちゃ<font color="#FFCC00">いやん</font>',
         'タグ使っちゃ<font color="#00CCFF">いやん</font>',
      ),
      'message' => array(
         'タグ<font color="#00CCFF">オッケー</font>よん',
         'タグ<font color="#00CCFF">オッケー</font>よん',
      ),
   ),
);

// htmlspecialcharsを適用しない配列のキーリスト
$ignore_keys = array(
   'comments',
   'message',
);
$result = htmlspecialchars_array($hoge_array, $ignore_keys);
print_r($result);
結果。
Array
(
  [title] => <strong>タグ使っちゃいやん</strong>
  [comments] => Array
    (
      [0] => タグオッケーよん
      [1] => タグオッケーよん
    )
  [list] => Array
    (
      [discription] => Array
        (
          [0] => タグ使っちゃ<font color="#FFCC00">いやん</font>
          [1] => タグ使っちゃ<font color="#00CCFF">いやん</font>
        )
      [message] => Array
        (
          [0] => タグオッケーよん
          [1] => タグオッケーよん
        )
    )
)
簡易MVCで配列をどーんとHTMLに表示する時とか便利です。
ENT_QUOTESとかはお好みで。htmlentitiesも同じですね。


◆配列の文字をmb_convert_kanaで一気に変換
function mb_convert_kana_array($array, $option, $encoding){
  if (is_array($array)){
    foreach($array as $k => $v){
      if (is_array($v)){
        $array[$k] = mb_convert_kana_array($array[$k], $option, $encoding);
      } else {
        $array[$k] = mb_convert_kana($v, $option, $encoding);
      }
    }
  } else {
    $array = mb_convert_kana($array, $option, $encoding);
  }

  return $array;
}
携帯サイト作成時にカタカナを半角にしたり
$hoge = mb_convert_kana($hoge, "ka", "SJIS");
PCからのフォーム入力で数字やアルファベットを半角に揃えたり
$_POST = mb_convert_kana($_POST, "KVa", "UTF-8");
するとき超便利です。


コードがおかしかったり、もっと便利なコードあるよ!って方はぜひ教えてください><
AmazonのアフェリエイトIDと引き換えに被リンクを大量ゲット、という方法


を実験してみておりますよ。

PICURE(ピキュア) ケータイFlashで大きな画像をらくらくチェック

に、Amazonのおまかせリンクを設置しました。
そしてこのサイトに

http://picure.i-section.net/?amazonid=○○○-22

というURLでリンクすると、掲載しているAmazon商品のアフェIDが差し変わっちゃいます。
これで、大量の被リンクをゲットしちゃおう、という魂胆です。

方法としてはちょっとアレだけど、アマゾンランクレットみたいなもんだし、色んな人がこれを始めると面白いんじゃないかな、と思いました。

特に難しいことはやってないです。HTMLのお尻の部分とかにこんな感じで書けばいいと思います。
<script language="JavaScript" type="text/javascript">
var aid = location.search.match(/¥w+¥-22/);
if (aid != null){
amazon_ad_tag = aid;
} else {
amazon_ad_tag = '自分のアフェリエイトID';
}
</script>

#一通りAmazonの利用規約とかチェックしたんですが、もしNGだったらごめんなさい。