Category Archives: Introduction

動的に生成されるURLに対して固有のOGPを生成する方法メモ

http://hoge.com/#1000 みたいな、ハッシュ以下の値に対してコンテンツを書き換えるサイトで、それぞれのハッシュに応じて異なるOpen Graph Protocol(OGP)を吐き出したい時の対処法。

フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か
http://d.hatena.ne.jp/amachang/20110117/1295233078

1. まず同一ドメイン内に、OGP吐き出し用のPHPを用意する。

ex) http://hoge.com/share.php

2. 元のhtmlと同一のハッシュを受け取ってその値に応じたOGPを吐くようにする。

ex) http://hoge.com/share.php?id=1000

3. html内に設置したShareボタン、Likeボタンの対象URLを上記のshare.phpにする。

 <div data-href="http://hoge.com/share.php?id=1000" data-send=false data-layout="button_count" data-width=450 data-show-faces=false></div>

4. このままだとウォールにshare.phpのURLが投稿されてしまい、ウォールからアクセスしたユーザーがshare.phpに飛んでしまうので、share.php内でfacebookのクローラー以外を元のhtmlにリダイレクトする。
facebookのクローラーはUserAgant内の“facebookexternalhit”の有無で判定する。

Best Practices – Facebook開発者
http://developers.facebook.com/docs/best-practices/

5. 以下share.phpの概要

<?php
$id = $_GET["id"];
$ua = $_SERVER['HTTP_USER_AGENT'];
 
//facebook crowlerじゃなかったらリダイレクト
if (!preg_match('/facebookexternalhit/i', $ua))
{
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://hoge.com/#" . $id);
    exit;
}
 
//idに応じて情報を取得する
$api = "http://hoge.com/api?id=" . $id;
$json = file_get_contents($api);
$user_data = json_decode($json);
$username = htmlspecialchars($user_data->result->username);
$img_path = htmlspecialchars($user_data->result->img_path);
 
?><!DOCTYPE html> 
<html lang="en" xmlns:og="http://ogp.me/ns#"> 
    <head>
        <meta charset="utf-8"> 
        <meta property="og:title" content="<?=$username?>'s page">
        <meta property="og:description" content="SITE DESCRIPTION">
        <meta property="og:url" content="http://hoge.com/#<?=$id?>">
        <meta property="og:image" content="<?=$img_path?>">
        <link rel="image_src" href="<?=$img_path?>">
        <title><?=$username?>'s page</title>
    </head>
    <body>
        <script type="text/javascript">location.replace("http://hoge.com/#<?=$id?>");</script>
    </body>
</html>

Cinema 4D お勉強リソースメモ

CINEMA4D (シネマ フォーディー) ~概要:主な機能
http://bit.ly/pSXKlW

★★C4D★★
http://bit.ly/pRcYL4

Ustream.tv: ユーザー maxonjapan: CINEMA 4Dの基本操作, CINEMA 4Dの基本操作の紹介。. ハウツー
http://bit.ly/qDRMl7

【初心者向け】 Cinema 4Dであそぼう – その1 – ‐ ニコニコ動画(原宿)
http://bit.ly/naMaTJ

QuickstartC4DR12JP.pdf
http://bit.ly/qcxPkX

CINEMA 4Dトレーニングサイト
http://bit.ly/pPtnx3

村人とC4Dのトップページ: 村人とC4D
http://bit.ly/qKmNAx

Cinema 4DとAfter Effectsを連携させる | AEP Project
http://bit.ly/pFiAfX

以下英語ソース

Cinema4D | Cgtuts+
http://bit.ly/rrSWPj

80+ Excellent Cinema 4D Tutorials and Best Practices | Tutorials | instantShift
http://bit.ly/nve0y5

Cinema 4D Tutorials (english voiceovers only) on Vimeo
http://bit.ly/puJSrT

マルチブックマーキングやってみたメモ

5月の頭ぐらいから1ヶ月ちかく、平日の朝10時に前日までに気になったリンクを Twitter + Facebook に一括ポストする試みをやってる。目的はO型特有の「おもしろいものを他人に勧めたくなる欲」の発散と、閲覧履歴のデータベース化。このマルチブックマーキング(複数のサービスに同じブックマークを残す)をするにあたってちょっと手の込んだことをやってるのでメモっとく。

おっきな流れは「ネタ収集」→「投稿」→「参照」。
以下詳細。

ネタの収集

まず日常的にネットを見てるなかでとにかく気になったものをどんどん Instapaper にポストしていく。
iPhone だと Twitter for iPhoneReeder がデフォルトで Instapaper への投稿に対応してる。(Facebook 上のリンクを一発で Instapaper にポストするいい方法あったら教えて下さい)

ついでに iPhone が圏外の環境から Instapaper に投稿する Tips。最近の iOS は圏外の状態でメールを送信すると、電波が入ったタイミングで自動的にメールを送信してくれる。これを利用して圏外の時は Twitter for iPhone、Reeder から Instapaper 投稿用のメールアドレスにリンクを送る。これで電波の状況を気にせず Instapaper に投稿できる。

各サービスへの投稿

Twitter と Facebook に指定時刻に投稿するために HootsuiteSchedule Message 機能を使う。この Schedule Message は指定のサービスに、指定の時刻に投稿ができる。

さらに投稿を簡略化するために Chrome の拡張機能 HootSuite Hootlet を使う。これは Chrome で今開いているページを2クリックで Schedule Message に投稿できる拡張機能。これを使って指定時刻に指定の内容を投稿する。

リンクの参照

残念ながら今のところ Twitter、Facebook には過去のポストをすべて遡って検索することができない。そこで Pinboardauto-add 機能を使って Twitter 上のリンクを自動収集させる。これを設定しておくと、Twitter 上でリンクをポストするとアドレス、タイトル、リンクを含むツイート全文を Pinboard に保存してくれる。これでツイートを含む全文が検索で引っかかるようになる。(さらにツイートにハッシュタグを埋め込んどくと自動的に Pinbord 上で同名のタグ付けもしてくれるらしい。)

ちなみに今までの自分のリンクはここに蓄積されてる。

フロー

飯喰いながら iPhone でネット見る
ウンコしながら iPhone でネット見る
街歩きながら iPhone でネット見る
ジョギングしながら iPhone でネット見る
 ↓
各アプリからひたすら Instapaper にポスト
 ↓
家でコーヒー飲みながら Instapaper からその日の 選りすぐりのリンクを Hootsuite に投稿する
 ↓
次の日の朝10時に各サービスに一括ポストされる
 ↓
あのサイトどこだっけ?
 ↓
Pinboard で検索
 ↓
(゚д゚)ウマー

今までおもしろいリンクは Delicious に投稿するだけだったけど、これらのサービスを経由することで「おもしろいものを他人に勧めたくなる欲」の発散と、閲覧履歴のデータベース化が同時に達成できるようになった。1つの石で2羽の鳥を落とすっていうアレですよ。

そもそものきっかけは、佐々木俊尚さん( @sasakitoshinao )の『キュレーションの時代』を読んで始めたんだけど、佐々木さんほどの品質のいいリンクを投稿してないせいか、投稿のたびに Twitter のフォロワーが激減したり、すごい暇人扱いされるので割と涙目だったりする。そんな感じ。

Lernert & Sander

Lernert & Sanderの映像作品がおもしろかったので紹介。Lernert & Sanderはオランダの二人組のアーティスト。2355john wood and paul harrisonに似た雰囲気を醸し出してる。Sander Plugの方がグラフィックデザイナーとしても活躍しているそうで、映像もグラフィカルで静止画的にもカッコイイ。

Elektrotechnique from Lernert & Sander on Vimeo.

Revenge from Lernert & Sander on Vimeo.

Chocolate Bunny from Lernert & Sander on Vimeo.

Soundquake – Ping Pong from Lernert & Sander on Vimeo.

A dog and pony show from Lernert & Sander on Vimeo.

The External World

ドイツのアニメーション作家、David OReillyの新作The External Worldがステキでこの前から何回も見てる。グリッチカルなエフェクトとかエログロ、クレイジーなキャラクターが織りなす世界観がだいぶツボ。

The External World from David OReilly on Vimeo.

前作Please Say Somethingもちょっとハートフルで毒が少ないけどイイ!

おねがい なにかいって [日本語版] from David OReilly on Vimeo.

YooouuuTuuube.com + Wishery

ちょっと前にはやったYooouuuTuuube.comを思い出してpogo新作ほりこんでみた。
ディズニーの色彩と有機的な動きと、プログラマティックなロジックがいい感じに調和してきもってええわぁ。
http://www.yooouuutuuube.com/v/?width=40&height=40&yt=qs1bG6BIYlo&flux=1&direction=bottom_left

before using indesign

Illustratorを使ってる学内の人にInDesignの説明をした時のメモ。細かい操作の仕方はともかく、InDesign内の概念の説明に重きを置いた。

1. InDesignとIllustratorの違い

A. Illustrator
一枚物を制作するのに特化。例、ポスター、フライヤー、ジャケット等
→ 得意
 ・柔軟にパスが扱える(ブレンド、パスフィルタ等)
 ・画像もある程度加工できる
→ 苦手
 ・データの使い回し(書式、サイズ、配置等)
 ・大量のオブジェクト(パス、画像)を配置すると処理が重くなる
→ コンセプト
 ・入れ物(デザイン)と中身(情報)を同時に扱う … デザインとコンテンツの融和

B. InDesign
ページ物を制作するのに特化。例、本 / 雑誌、プレゼンシート等
→ 得意
 ・データの使い回し(書式、サイズ、配置等)
 ・大量のオブジェクト(パス、画像)を配置してもサクサク動く
 ・詳細な文字設定(約物ごとのスペーシング、禁則処理の定義)
 ・外部データの流し込み(テキストファイル、表ファイル、xmlファイル等)
 ・分業化(ブック機能)
 ・入稿データのチェック(プリフライト)
→ 苦手
 ・細かいパスの操作
 ・画像データの操作
→ コンセプト
 ・入れ物(デザイン)を作ってから中身(情報)を流し込む … デザインとコンテンツの分離

2. InDesign概要

A. ページ
複数ページを一つのファイルで管理。

B. マスターページ
ノンブル、柱の他、共通のフレームやオブジェクトをあらかじめ配置しておき各ページに適用する。
※マスターページに配置したフレームに固有のテキストを流し込む場合は Cmd+Shift(Ctrl+Shift)を押しながらフレームを選択。
→ マルチプルマスターページ … マスターページを適用したマスターページ。親マスターページの変更も反映される。

C. フレーム
→ グラフィックフレーム … 画像を流し込むフレーム。クリッピングマスクのようなもの。
→ テキストフレーム
 ・プレーンテキストフレーム … 書式を持たないフレーム。ペーストしたテキストの書式は維持される。
 ・フレームグリッド … 書式を持つフレーム。ペーストしたテキストの書式は破棄される。

D. スタイル
保存できる書式。スタイルは各スタイルパネルに保存してクリックだけで呼び出せる。
→ 段落スタイル … 段落単位で適用できるスタイル。
→ 文字スタイル … 文字単位で適用できるスタイル。
→ その他
 ・先頭文字スタイル … 行の1文字目だけに適用できるスタイル。
 ・正規表現スタイル … 指定文字列に適用できるスタイル。
 ・オブジェクトスタイル … 書式ではなくオブジェクトの塗り、線の太さ、フィルタ情報をスタイルとして保存できる。

E. 配置
対応ファイルフォーマットは ai、psd、pdf、jpg、gif、png、tiff、eps等。

F. ブック
複数のInDesignファイル(indd)を管理するファイルデータ(indb)。
管理しているファイル内のページ数を連動させたり、同名スタイル、同名マスターページの同期がとれる。

G. プリフライト
カラーモード、配置画像、テキストあふれ等の一括チェック。

H. 出力
→ PDF
1ページ、見開き、中綴じ等に対応。
※1ページ1ファイルでは書き出せないのでpdfをAcrobatで分割する。

google chrome addons

再インストール時用にchromeのアドオンメモ。

Chromed Bird
chrome専用twitterクライアント。閲覧中のページをtweetできる。

Instachrome
閲覧中のページをinstapaperにほりこめる。

Create Link
閲覧中のページのurl、タイトルを指定フォーマットでコピーしてくれる。

bit.ly | a simple URL shortener
閲覧中のページのurlを圧縮してくれる。

goo.gl URL Shortener
閲覧中のページのurlをgoo.glで圧縮してくれる。google公式。

Google Mail Checker Plus
gmailチェック、受信通知。

Google Calendar Checker Plus
google calendarチェック、スケジュール通知。

SBMカウンタ
閲覧中のページの被ブックマーク数、被ツイート数が確認できる。

TabCloud
開いているタブを他のPCのChromeと同期できる。

AutoPagerize
次ページを先読みしてページ下部に追加してくれる。

Chrome Gestures
マウスジャスチャでchromeを操作できるようになる。

Twitter Extender
twitterのwebを機能拡張してくれる。

Text URL Linker
テキスト内のurlをリンク化してくれる。

ミニチュア作家

所用で調べたのでメモ。

ブレイス・アグエラ・ヤルカスが示す拡張現実地図

MicrosoftのPhotosynthやらSea Dragon等のバラバラに開発されてたゴイスーなテクノロジーがオンラインマップサービスに統合され実用化された模様。

Flickrにアップされた画像や動画のロケーションデータを3Dモデル上にマッピングしたりとソーシャルデータの扱いはGoogle Street Viewのだいぶ先行ってる。

本質的な地図の使い方を拡張するには至ってない気もするけど期待あげ。