MacPortsインストール

MacPortsとは

CentOSでいうところのyumのようなもの
必要なパッケージを簡単に導入できる

必要なもの

インストール方法

下記サイトよりパッケージをダウンロードしてインストーラに従ってクリックするのみ
http://www.macports.org/

※注意・・・インストールするとPATHに「/opt/local/bin」「/opt/local/sbin」が追加されるbash_profileにも設定が追加されるが、一度コンソールから抜け、再ログインすることでPATHが通るようになるので、一度コンソールから抜けるように

使い方

MacPorts自体のアップデート
$ sudo port selfupdate
パッケージの検索
$ sudo port search 検索語句
パッケージのインストール
sudo port install パッケージ名
パッケージのバージョンアップ一覧表示
$ sudo port upgrade installed
パッケージのバージョンアップ
$ sudo port upgrade パッケージ名

facebookでのopen graph protocolの対応について確認する

概要

facebook内で外部サイトのURLを告知する下記3つの方法について
open graph protocolがどのように反映されるのか確認してみる

  • 今回記述したopen graph tag
    • og:title
    • og:description
    • og:image
    • og:url

open graph protocol

The Open Graph protocol enables any web page to become a rich object in a social graph. For instance, this is used on Facebook to enable any web page to have the same functionality as a Facebook Page.

The Open Graph Protocol
http://ogp.me/

方法1 直打ち

facebookのフィードの「今なにしてる?」のテキストボックスに直接URLを書きこむ

  • open graph protocolの内容が反映されたもの
    • og:title -> タイトルとして表示
    • og:description -> 説明文として表示
    • og:image -> サムネイル画像として表示
  • open graph protocolの内容が反映されなかったもの
    • og:url -> リンク先URLに利用されず(直書きしたURLが反映)

方法2 「いいね!」ボタン

  • open graph protocolの内容が反映されたもの
    • og:title -> タイトルとして表示
    • og:description -> 説明文として表示
    • og:image -> サムネイル画像として表示
    • og:url -> リンク先URLに利用

方法3 「送信」ボタン

「いいね!」ボタンと同じ

注意点

facebookはページのopen graph protocolの情報をキャッシュしてります。
open graph protocolが間違った状態で「いいね!」ボタンが押下されると
その後も、間違った状態で送信される。

facebookは24時間毎にページの情報を確認しにいき、httpヘッダーのcacheやexpireの情報を参考にアップデートされているか確認する
詳しくは下記を参照

  • Like Button

When does Facebook scrape my page?
http://developers.facebook.com/docs/reference/plugins/like/

確認方法

facebookが取得したopen graph protocolは下記リンクで確認できる
http://developers.facebook.com/tools/lint/

JavaScriptの値の取得

値の取得とデフォルト値の設定

flight.equipmentがない場合、"default"が設定される

var middle = flight.equipment  || "default"  

undefinedのプロパティを参照するとTypeErrorになってしまうので&&を利用すると防げる

flight.equipment  // undefined
flight.equipment.model  // "TypeError"
flight.equipment && flight.equipment.model  // undefined

スマートフォンサイトの制作 - 設計編 -

はじめに

iPhone+Androidスマートフォンサイト制作入門を読んだことを忘れないようにメモ

階層は浅く1ページを長く

  • 3G回線で利用される為、PCのように何回もクリックして遷移するのには不向き
  • 階層は浅くし1ページ内に多くの情報を収めるように設計する
  • 長くなってしまったページはページ内リンクでユーザビリティを高める

画面(解像度)はiPhoneベース

  • 解像度は320 x 480px(※1)だが、iPhoneの場合、上部にアドレスバー、下部にツールバーがある為表示領域はさらに小さい
項目 表示領域 アドレスバー ツールバー
高さ 356px 80px 44px
項目 表示領域 アドレスバー ツールバー
高さ 210px 80px 30px

(※1)iPhone4は640 x 980pxだが、ブラウザは320 x 480pxで表示されるように設定されている

画面の向きに応じたレイアウトを行う

例えばテキストの文量。
テキストが多いページで横向きにした場合、1行の文字数が多くなり読みにく。
横向きの際は、レイアウトを変え、縦、横のどちらであっても1行の文字サイズを同じするなど配慮が必要

画面の向きでスタイルを変える方法はCSS3のメディアクエリのorientaionを使う

  • 縦:portrait
  • 横:landscape

詳しいしようはこちら

<link rel="stylesheet" media="all and (orientation:landscape)" href="land.css">

長いページを使いやすくする

  • 階層を浅く1ページの量を増やす為、ページが長くなりがち。
  • 対処方法は下記3つ
    • ページ内リンクを配置する
    • 要素を折りたためるようにする
    • タブで区切る

タップしやすくする

  • ほとんどの操作を指先で行う為、リンク要素が大きくなくてはならない
  • 対処方法は3つ
    • 大きなボタンを配置する
    • リストにし、リスト要素すべてをリンク対象にする
    • アイコンを配置する(iPhoneの画面のように)

文字サイズを大きくする

  • 目安は14〜15px程度

リキッドデザインする

  • iPhone/Androidはスクロールバーが表示されない為ページの一部がはみ出でいてもわからない
  • 縦を前提に作成すると、横にしたときに余白部分が目で立つ

画像の量を抑える

  • 3G回線で利用されるため、なるべく容量を抑える

テキストを画像化しない

装飾はなるべくCSSを利用

  • グラデーションや角丸などCSS3では今まで出来なかった装飾を利用可能
  • 安易に画像やJSを利用するのではなく、可能なかぎりCSSを利用することで表示速度を早める

PNG画像を活用する

  • PNG8
    • GIFと同じ256色を表現できるが、圧縮率が高く、軽い画像を作成できる
  • pNG24/32
    • フルカラー
    • 複数の背景とあさせて綺麗に表示できる
    • JPEGと比べると圧縮率は低い

コントラストを強くする

  • 屋外での利用を意識して、背景色と文字色のコントラスと高くする

(背景:黒、文字:白)

リンク要素は分かりやすく

  • PCではロールオーバーでリンク要素を区別するときがあったが、スマフォではできない
  • 初見でリンクであるとわかりやすくする

スマートフォンサイトの制作 - 基礎編 -

はじめに

iPhone+Androidスマートフォンサイト制作入門を読んだことを忘れないようにメモ

iPhoneの仕様を確認

端末
  • iPhone3G
  • iPhone3G S
  • iPhone4
  • ipad
解像度
  • iPhone3G、iPhone3G S : 320 x 480px
  • iPhone4 : 640 x 960px
iPhone4はiPhone3G、iPhone3G Sと比べて解像度が2倍あるが、
ブラウザーは100%表示時に320 x 480pxで表示する仕様になっている為、見た目が変わらない
ブラウザ
文字コード
・表示された文字コードを変更できないため、metaタグで正しく文字コードを指定する
・テキストファイルに直リンクを貼り表示させる場合はShift JISでしか見えない
ウィンドウ制御
    • ウィンドウ制御ができない
iPhoneアプリ常に全画面表示され、ウィンドウサイズの変更ができない
・JavaScriptによポップアップウィンドウは標準で警告ができるように設定されている
ファイルアップロード、ダウンロード
  • ファイルのアップロード、ダウンロードができない
コンテンツ制限

くわしくはSafari Web Content Guide

  • ファイルサイズなどに制限事項あり
    • GIF/PNG/TIFF画像:デコード時の状態で3Mpx以下
    • JPEG画像:デコード時の状態で32Mpx以下
    • canvas要素:3Mpx以下
    • HTML、CSSJavaScriptなどの各ファイル:各10MB以下
    • JavaScript:処理時間10秒まで
フォント
  • 日本語フォントはゴシック体(ヒラギノ角ゴ)のみ

Androidの仕様を確認

端末
  • 各キャリアで様々
解像度
  • 各キャリアで様々
320 x 480px〜640 x 960pxと幅があるが、基本iPhoneの320 x 480pxとして考える
ブラウザ
Flash対応
  • Flash Playerが標準で搭載されている
文字コード
ファイルのアップロード、ダウンロード
  • ファイルのダウンロードのみ対応
画像
  • GIF/JPEG/TIFF形式に対応
  • SVG形式はAndroid2.2以降のみ対応
コンテンツ制限
  • 決まったドキュメントはない
  • 作成するときはiPhoneの制限を参考にするのがよい
フォント
  • Droid Fontと呼ばれる標準のフォントもしくは端末メーカ独自のフォントが搭載
  • メーカごとにことなる為、標準的なゴシック体をベースに作成すること

CentOS5にGitをインストール&あれこれ

インストール

環境

CentOS 5 x86_64

yumのレポジトリ追加

通常のyumのレポジトリにGitがないため、新規でレポジトリを追加

% vim /etc/yum.repos.d/CentOS-Base.repo

 ----以下を追記--------
[dag]
name=Dag RPM Repository for Redhat EL5
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

インストール

% yum -y install git
% git --version

テストプロジェクト作成

  • http://github.comでtest-projectを作成
  • レポジトリを作成した段階で表示される下記メモをコピーしておく
全体設定
 ダウンロードおよびインストール Git
  git config --global user.name "kashiro"
  git config --global user.email ksrtmyk@gmail.com
  Add your public key
        
次の手順:
  mkdir test-project
  cd test-project
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:kashiro/test-project.git
  git push -u origin master
      
すでにGitリポジトリがありますか?
  cd existing_git_repo
  git remote add origin git@github.com:kashiro/test-project.git
  git push -u origin master

公開錠・秘密錠の作成

% ssh-keygen -t rsa

下記が生成される

公開錠の登録

公開錠の中身をgithuのサイトに登録

% cat ~/.ssh/id_rsa.pub

確認

下記が表示されればOK

% ssh git@github.com

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
Enter passphrase for key '/home/ksrtmyk/.ssh/id_rsa': 
Hi kashiro! You've successfully authenticated, but GitHub does not provide shell access.
        Connection to github.com closed.
  • 参考

http://d.hatena.ne.jp/Kshi_Kshi/20110217/1297976174

基本操作

  • Gitの基本的な概念はこちら

http://progit.org/book/ja/

  • より詳しい操作はこちら

http://www12.atpages.jp/~lottz/pukiwikiplus/index.php?Git

1 remoteのレポジトリをクローンする

% git clone [url]

*別の名前でコピーしたい場合

% git clone [url] [dir_name]

2 ファイルを追跡ファイルにする(ステージにする)

% git add [file name]

3 変更したけれどもまだステージしていない内容を見る

作業ディレクトリの内容とステージングエリアの内容を比較します

% git diff

4 ステージされている変更と直近のコミットの内容を比較

% git diff --staged

5 コミット

*-aを追加することで、修正されたファイルを一気にコミット(addを省略)

% git commit -m "[comments]"
% git commit -a -m "[comments]"

6 リモートのレポジトリに名前を付与する

% git remote add [remote-name] [github url]

*現在のリモードレポジトリの名前を確認

% git remote -v

7 リモートレポジトリの内容を引き出す

*引き出すだけで、マージはされない

% git fetch [remote-name]

8 リモートレポジトリの内容を引き出し、マージする

% git pull [remote-name]

9リモートレポジトリに内容を登録

% git push [remote-name]

CentOSへのnode.js環境構築

環境

依存パッケージのインストール

先に必要になるものをいれておく

% yum install zlib-devel
% yum install openssl-devel
% yum install python

node.jsのインストール

ダウンロード
インストール
% tar zxvf node-vXX.XX.tar.gz
% cd node-vXX.XX
% ./configure
% make
% sudo make install

起動

ファイル配置

下記ファイルを適当な場所に配置

// モジュールの読み込み
var http = require('http');

// サーバを起動する
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
起動
% node example.js
% Server running at http://127.0.0.1:8124