2010 年 のアーカイブ

AdobeのDEKIMAGAが終了

2010 年 12 月 23 日 木曜日

Adobeが発行していたメルマガ、「DEKIMAGA」が終わってしまいましたね。
このメルマガのコンセプト「できた!をかなえる」というのは、個人的にとてもいいなぁと思っていました。

なにしろ、面白そうな題材+ステップバイステップ形式の解説で、誰でも(←ここ重要)楽しくプロっぽいことができてしまうのですから。

「新宿駅前を思いっきり緑化する方法」とか、「モジャモジャのアフロヘアをキレイに切り抜く方法」とか「林家パー子をスーパーモデルにする方法」とか、好奇心を刺激してくれるような面白いコンテンツ(メインはPhotoshop)が満載でした。

個人的に、ソフトは一生懸命勉強するのではなく、こういう風に遊びながら覚えてしまう方が全然楽しいと思います。そういった意味で、こういった優良コンテンツは貴重に思っていました。

この度終わってしまうのは残念ですが、コンテンツはadobe.comの中に一部移管されるそう。

とはいっても“一部”とあるので、興味のある方、またはご存じなかった方は、今のうちご覧になってみてください。

▼DEKIMAGA ARCHIVE
http://www.adobe.com/jp/joc/dekimaga/

※youtubeで動画も公開されています。

▼DEKIMAGAのyoutubeアカウント
http://www.youtube.com/user/DEKIMAGA/

初Genius Bar&MacBook Airを修理!

2010 年 12 月 13 日 月曜日

ずっと前のブログで書いた通り、電池がいってしまったままずっと放置してたMacBook Air。
電源をつないでさえいれば普通に使えたので(それではノートの意味が無いですが)、ついついそのままにしてしまっていました。

また、放置している状況に追い打ちをかけるように、STATAインターフェースの高速SSD標準搭載の新機種が、驚きの9万弱の価格で販売。
となると、今さらこんなに遅いマシンの電池交換に一万円以上出すのもなぁと、いう気持ちもあり、余計修理への足が遠ざかっていました。

しかしこの度いろいろあり、ついに重い腰を上げて修理することに。

実はこれまでApple製品で不具合が発生したことがなく(というよりも、これだけ長年PCをハードに使っていて、HDD一つ壊れたことがない強運者なのです)、Genius Barで相談するのは初めてだったりします。

予約が必要とのことで、Appleのサイトから予約。・・・と思ったら予約のボタンが動かない。
Firefoxだからだめなのかと思ったらIEでもだめ。
IEのステータスバーを見ると、スクリプトエラーが出てます(笑)

ダメもとでWindows版のSafariでアクセスしたら予約できました。

当日

Apple Store 渋谷店

当日、Apple Store渋谷には難なく到着。
2FのGenius Barについたら、スタッフさんは皆さん忙しそう。
とりあえず手空きになったスタッフさんに声をかけます。

名前を聞かれ、返答すると、iPod(の管理アプリか何か?)で予約状況を調べてくれました。
普通の企業ではこういうのはあり得ないので、なんだか最先端な感じです。

とりあえず「お待ちくださいとのことだったので、」しばらくまっていると、名前を呼ばれてカウンターに。

症状を伝えて、スタッフさんがいろいろMacBook Airを操作していると、やはり電池交換とのこと。

在庫があれば即時交換可能とのことで、MacBook Airを渡して待っていると、15分前後で修理完了!

余談ですが、クレジットカードで電池交換費を支払ったのですが、その際のサインはなんと電子サインでした。
(iPhoneだかiPadだかのアプリ上で、サインする感じ)

なんだか全体的な体験が、最先端な感じ。
こういったユーザーエクスペリエンスは、Apple&Macのブランディングに役立っているんでしょうね。

とりあえず、すんなり直ってよかったです!

サーバを移転する時にやることのメモ

2010 年 11 月 21 日 日曜日

前回のエントリーで書いたXREAサーバーのトラフィック制限!?の件ですが、負荷を落としても以前重いまま。
もしかしたら他に原因があるのかもしれないので、現在調査中です。

ただし、このサイトはまだしも、「独学!未経験からWebデザイナーになる!!」はアクセスもそれなりに多く、ご迷惑をお掛けしてしまうことになるので、そちらのサイトだけサーバを移転しました。

その際、ついつい移転作業を急いだために失敗してしまい、少しの間サイトが表示されなくなってしまいました(汗)。
反省の意味を込めて、本来ならこうすべきだった、、、という流れを自分用にメモしておきます。
(自分はこうやっている、ということなので、もっと良いやり方や抜け等があれば教えていただければ幸いです)
(続きを読む…)

XREAサーバーのトラフィック制限!?

2010 年 11 月 16 日 火曜日

このサイトおよび、私の運営している独学!未経験からWebデザイナーになる!!が、昨日~一昨日あたりから突然重くなりました。
特にFTPが重すぎて実用に耐えないくらいです。

共用サーバーなので、まあそんなこともあるかなと思っていたのですが、二日たっても状況が変わらない……
XREAを使い始めて結構長いですが、こんなことは一度もなかったのでサポートへ問い合わせしてみました。

送信ボタンを押して問い合わせ完了。
そうしたら、な、なんと23秒で返事が!!

自動返信だろうと思っていたら、ちゃんと担当者の方の名前と、システムによる自動返信のメールではないという注意書きが添えられている(゜_゜;)。
「状況を確認します~」的なメールなので文章自体はテンプレートだと思いますが、本当ならやりますね、XREA。

その一時間後くらいに、改めて回答が来たのですが、「ピークトラフィック制限」だとのこと。
つまり簡単に言えば、負荷または転送量が大きいから制限しますよ~ということですね。

もちろん利用者として、これらの数値を気にかけてはいました。
負荷ポイント1000ポイント以上の日が続くとまずいと認識していたのですが、今は平均400~600くらい(最近のアクセス増に伴い増えてきた)。
転送量に関してはかなり余裕があります。

理由は分かりませんが、負荷が原因っぽいので、とにかく負荷を減らすためにできることを実施。

ご利用の方には少しの間ご迷惑をおかけすることになりますが、できる限り早く解決できるように努めますのでご容赦ください。
そろそろ上位プランか、他のサーバーに引越しをする時期なのかもしれないなぁ~。

照合順序をutf8_general_ciからutf8_unicode_ciへ変更する

2010 年 10 月 13 日 水曜日

MySQLにて照合順序(colllation)の変更をする機会があり、少し調べたので自分用メモ。

やりたいことは、utf8_general_ciになっているテーブル(&フィールド)を、utf8_unicode_ciにするということです。

簡単なことなのかもしれませんが、今まで途中から照合順序を変更したことが無かったので、なかなかいい機会となりました。

方法

テーブルの紹介順序は、下記のSQLで簡単に変更できました。

ALTER TABLE `テーブル名` COLLATE utf8_unicode_ci

が、、、しかし。すぐに気づかなかったのですが、これではフィールドの紹介順序は元のutf8_general_ciのまま変わらないんですね。
どうやら個別にフィールドも指定してやる必要があるようです。

ALTER TABLE `テーブル名` MODIFY COLUMN `フィールド名` VARCHAR(32) CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

※VARCHAR(32)部分は任意の型です。元のデータ型から変更したくない場合でも、省略したらエラーになってしまうようです。ちなみにCHARACTER SET `utf8`は、もともとutf8だったからか、私の環境では省略できました。

変更したいフィールドが多いと結構大変そうですね。
変更が発生しないように、最初から適切に設定しておくことが一番なようです。

参考-テーブル作成時に照合順序を設定する方法

ちなみに、テーブル作成時に照合順序を設定する方法は、下記です。
(UTF-8/utf8_unicode_ciの場合)

CREATE TABLE `テーブル名` (
~テーブルの定義~
) DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci;

チカッパ!でPHP5になったりPHP4になったりする!?

2010 年 9 月 22 日 水曜日

クライアントのサイトでチカッパ!レンタルサーバーを使っているところがあり、その仕様にはまったのでメモ。

チカッパ!は、ロリポップ!をちょっとだけ高機能にしたレンタルサーバー。
値段のわりには共有SSLもついているし、実質オプションにはなりますがマルチドメインも設定できて、なかなか使えるサーバーです。
とはいっても、最近ロリポップ!もSSLやcronまで対応したので、あんまり差が無くなってきたような気もしますが。

(続きを読む…)

Smartyから他のViewに変えた際の正規表現メモ

2010 年 9 月 11 日 土曜日


Smartyが使われているWebシステムのView部分を、他のものに変更するときに遭遇した正規表現のメモ。
※Dreamweaver上での正規表現です。

分かる人からすればほんとうにたわいもないことですが、
正規表現を忘れさせたら右に出るものはいない私が、恥をしのんでお送りします(笑)

まずは念のためviewのディレクトリをバックアップしておき、
{を<?phpに、}を?>等に、適当に置き換えました。

<?php $value; ?>を<?php echo h($value); ?>に

その後、当然ながらこんな感じの部分
<?php $value; ?>
がたくさんに。

Smartyは、デフォルトでescape:”htmlall”がかかるように運用していた(←個人的にはあまり好きではないのですが)ので自動的にエスケープされていたのですが、Viewを変えるので、このままではマズいです。

なので、先ほどの場合なら、
<?php echo h($value); ?>
と、こんな感じにしたい。
※h()は、htmlspecialchars的な自作関数

そんな訳で、正規表現で検索置換。
検索条件は下記です。
<\?php (.*); \?>
(.*のところ大雑把ですが(汗))

置換欄はこんな感じです。簡単ですね。
<?php echo h($1); ?>

念のため一括置き換えにせず、
きちんと動くか何個か置き換えていたのですが、
問題なく変換できている模様。

……と思ったら、あるところで、余計な部分まで(下記全て)マッチしちゃいました。
<?php $item.name; ?><br /><?php $item.email; ?>

この場合、同じ行の最後の; ?>までマッチしてしまうんですね。

確かこんなのやったなぁ~と思ったのですが、
どう考えても初歩的っぽいですが対処法はもう忘れてます。(笑)

そんな訳で、いろいろ検索していたら思い出しました。
<\?php (.*?); \?>
のように、?を入れたらいいんですね。

追記: 後から考えれば、やはり
<\?php \$([a-zA-Z0-9_]+); \?>

<?php echo h($$1); ?>
に置き換える方が、ふさわしいです。
.*はちょっと大雑把にしすぎ&楽しすぎました。
(作業中はスピード重視なので、ついつい楽できる方をやってしまうんですよね。これは反省です。)

<?php $user.name; ?>を<?php echo h($user['name']); ?>に

あともう一個。
{ }を単純に<?php ?>に置き換えると、こんなのもたくさんでてきます。
<?php $user.name; ?>

これは、配列なので、先ほどの正規表現で置き換えちゃうとよろしくないです。
下記のように
<?php echo h($user['name']); ?>
するために、

<\?php \$([a-aA-Z0-9_]+)\.([a-aA-Z0-9_]+); \?>
で検索して、
<?php echo h($$1['$2']); ?>
に置き換えて解決です。
(※本来なら、最初にご紹介した方よりも、こちらの方を先にやってしまった方がいいです)

正規表現って本当に便利!

というか、あたりまえですが、これだけではなく本当はもっとたくさん置換しました。
正規表現を使わなかったらこの何倍(何十倍!?)時間がかかったのかと思うと、よかった~と思います。

フリーランス駆け出しのころは、正規表現はなんとなく知っていたけど、
(自分が至らなかったために)行錯誤する方が時間がかかることが多かったのであまり使いませんでした。
最近は正規表現の方が早くなってきたので、結構使っている気がしますね。
正規表現、プログラムを書かないWebデザイナーさんにも、ぜひお勧めしたいです。

MySQLで曜日ごとに集計する

2010 年 8 月 12 日 木曜日

PHP&MySQLでWebアプリ作成中に、曜日ごとの集計をすることに。
このあたりはよく忘れてその都度調べることになるので、自分用にメモ。

SELECT
(CASE
WHEN DATE_FORMAT(created, '%W') = 'Monday'    THEN '月曜日'
WHEN DATE_FORMAT(created, '%W') = 'Tuesday'   THEN '火曜日'
WHEN DATE_FORMAT(created, '%W') = 'Wednesday' THEN '水曜日'
WHEN DATE_FORMAT(created, '%W') = 'Thursday'  THEN '木曜日'
WHEN DATE_FORMAT(created, '%W') = 'Friday'    THEN '金曜日'
WHEN DATE_FORMAT(created, '%W') = 'Saturday'  THEN '土曜日'
WHEN DATE_FORMAT(created, '%W') = 'Sunday'    THEN '日曜日'
END) AS week,
COUNT(*) AS num,
COUNT(DISTINCT(cookie)) as `unique`
FROM logs
WHERE (user_id = :USERID AND status = 1)
GROUP BY week

これで、PHPからfetchしていけば、こんな感じで利用できます。

array(
	0 =>
	array(
		[week] => 月曜日,
		[num]  => 11770,
		[unique] => 3770,
	),
	1 =>
	array(
		[week] => 火曜日,
		[num] => 7770,
		[unique] => 3270,
	),
	~略
);

おまけ:PostgreSQL用!?

検索している最中にみつけたもので、PostgreSQL専用っぽいですがCASE部分はこんな書き方ができる模様。
こちらもあくまでも自分用のメモとして残しておきます(こちらは試してないので動くか分かりませんが)。

(CASE
WHEN DATE_PART('dow',created) = 0 THEN '日曜日'
WHEN DATE_PART('dow',created) = 1 THEN '月曜日'
WHEN DATE_PART('dow',created) = 2 THEN '火曜日'
WHEN DATE_PART('dow',created) = 3 THEN '水曜日'
WHEN DATE_PART('dow',created) = 4 THEN '木曜日'
WHEN DATE_PART('dow',created) = 5 THEN '金曜日'
WHEN DATE_PART('dow',created) = 6 THEN '土曜日' END ) AS week,

パークハイアット東京のデリカテッセンでランチ

2010 年 7 月 19 日 月曜日

今日は、このブログでもよく登場しているおなじみのつれ&その友達とランチ。
パークハイアット東京のデリカテッセンに行ってきました。

このお店は、その店名からも分かるとおり、いわゆるデリというやつです。
女の子が好きそうな感じの料理がいっぱい並んでいましたよ。

やけに食べログで評価が高い(TOP5000に入っていた)のですが、
まさにその通り、非常にレベルが高かったです。

つれの友達とは初対面だったので、パシャパシャ写真を撮るのもあれなので一枚だけ。

メインに食べたスペシャルバーガーというやつです。
デリカテッセンのスペシャルバーガー

ハンバーガーをつぶして&口を全開にあけてなんとか食べられるくらいのボリュームと、そのお肉の香ばしさ!
これ、本当においしかったです。

他にも、トマトとモッツァレラチーズなども、めちゃくちゃおいしかったですよ。

このお店は全体的にワインがぴったりあうような料理がたくさんだったので、
今度は飲みに来たいなと思いました。

いいお店を見つけてうれしいです♪
オススメですよ。

耳をすませば

2010 年 7 月 9 日 金曜日

ジブリの「耳をすませば」
またやっていましたね。

何度も見ているのですが、ついついジブリ作品はやるたびに観てしまいます。

「耳をすませば」、これも私の大好きな作品のうちの一つです。

10代のころの純情さとか、やりたいことが見つからない焦りとか、
遠い昔に感じた心の機微を思い出させてくれる映画です。

見終わった後、新しいことにチャレンジしたくなるような、
大人の世界で汚れてしまった心が浄化されるような(笑)、
何とも言えない爽快感があります。

何度見てもそうなんですよね(^^
しかも飽きないのが不思議。

いやはや、ジブリって本当にすごい。

ところで、作中出てくる雫のお父さんの言葉。
「人と違う生き方はそれなりにしんどいぞ。
何がおきても誰のせいにもできないからね」
これ、名言だなぁ~。