スマートフォンでアクセスした際に W3 Total Cache が原因で WPtouch が有効にならない対応

タイトル通りですが、スマートフォンでアクセスしてもキャッシュされたPCのページが表示されていたので気付きました。

W3 Total Cache の設定で
[Performance]->[User Agent Groups]から、[hige]と[low]というユーザーエージェントグループが設定されているので、Enabledをチェックして有効にすると、ユーザーエージェントグループに設定されているユーザーエージェントからのアクセスの場合、キャッシュを表示しないようになります。

User_Agent_Groups___W3_Total_Cache_‹_suusuke_-_blog_—_WordPress

User_Agent_Groups___W3_Total_Cache_‹_suusuke_-_blog_—_WordPress 2

MacVimの不可視文字のカラー設定

久しぶりにPerlのお仕事の依頼で、MacVimを使って作成しました。普段はタブの代わりにスペースにしているので気付かなかったのですが、頂いたソースがタブだったので、タブの色が目障り。

カラースキーマはobsidian2.vim – Obsidian2 Color scheme based on Notepad++ obsidian Color scheme : vim online.を使っており、タブは、SpecialKeyという名前で定義されているようなので、そこを修正しました。

変更前
color_before

変更後
color_after

見やすくなりました。

iTerm2とtmuxを使ってみた感想

【図解】ゼロから始めるモダンなコマンドライン環境作り #iTerm2 #tmux #zsh|CodeIQ MAGAZINE.

tmux

Terminalはtotalterminalを使っていますが、モダンな環境と呼ばれているiTerm2tmuxを使ってみました。

時間の制限があり、あまり試せなかったのですが、今のところはtotalterminalで事足りるかな、という印象でした。
tmuxtotalterminalと併用してみて、iTerm2が必要になったら、乗り換えようと思います。

CocoaPodsでライブラリを管理する

Objective-Cライブラリ管理ツールCocoaPodsを使い始めたのでインストールメモを書きます。

CocoaPodsインストール

gemでインストールします。

$ sudo gem install cocoapods

CocoaPodsをセットアップします。

$ pod setup
Setting up CocoaPods master repo
Setup completed (read-only access)

pod setupを実行すると~/.cocoapodsディレクトリ内でライブラリの管理を行うようにセットアップをします。

$ ll -a ~/.cocoapods/
total 0
drwxr-xr-x   3 suusuke  staff   102  5 20 10:48 .
drwxr-xr-x+ 51 suusuke  staff  1734  5 20 10:48 ..
drwxr-xr-x   3 suusuke  staff   102  5 20 10:48 repos

CocoaPodsを使ってみる

CocoaPodsSampleというサンプルプロジェクトを作って、AFNetworkingライブラリを使う想定で使ってみます。

サンプルプロジェクトの下に、Podfileという名前で管理するライブラリを記述していきます。
記述方法は、

開発レシピ:Objective-Cのライブラリ管理ツール CocoaPods | iOS開発者@日本.

に詳しく書いてあるので参考にしました。

$ cd ~/iPhone/CocoaPodsSample/
$ vi Podfile
platform :ios, "7.0"
pod 'AFNetworking'

pod installコマンドでライブラリをインストールします。

$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.2.4)
Generating Pods project
Integrating client project

[!] From now on use `CocoaPodsSample.xcworkspace`.

CocoaPodsSample.xcworkspaceという名前でワークスペースファイルができているので、開くとAFNetworkingライブラリが追加されています。

CocoaPodsSample_—_Podfile

PuserでPush通知を実装する(WEB)

更新をリアルタイムで通知する方法

リアルタイムといえばNode.jsですが、PHPで作られたWEBサイトでリアルタイム通知を実装する必要があったので、

  • Ajaxで一定間隔でリクエストを送る
  • PHPでcomet実装する
  • PHPでWebSocketを実装する
  • Pusherを利用する

など検討した結果、リソースをなるべく消費したくなかったので、Pusherを使うことにしました。

Pusher登録

スクリーンショット_051014_100941_PM

無料でWebsocketの接続数が最大20までで1日あたりのメッセージ発行数が10万回以内であれば利用することができます。
スクリーンショット_051014_101114_PM
名前とメールアドレス、パスワードを設定するだけで使うことが出来ます。

App idとAccess Token

登録が完了すると、App id,key,secretが表示されるのでひかえます。

クライアント実装

Code examplesを参考にします。

<!DOCTYPE html>
<head>
  <title>Pusher Test</title>
  <script src="http://js.pusher.com/2.2/pusher.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    // Enable pusher logging - don't include this in production
    Pusher.log = function(message) {
      if (window.console && window.console.log) {
        window.console.log(message);
      }
    };

    var pusher = new Pusher('******');
    var channel = pusher.subscribe('test_channel');
    channel.bind('my_event', function(data) {
      alert(data.message);
    });
  </script>
</head>

サーバー実装

サーバー側のライブラリは豊富にあります。Pusher Server Libraries | Pusher.PHPなので、pusher/pusher-php-serverを使いました。

require('./Pusher.php');

$pusher = new Pusher(PUSHER_KEY, PUSHER_SECRET, PUSHER_APPID);
$pusher->trigger('test_channel', 'my_event', array('message' => 'Hello Pusher!'));

triggerメソッドの第3引数に配列でパラメータを渡すとjson形式でクライアントで取得出来ます。

参考サイト

Auto Load and Refresh Div every 10 Seconds with jQuery and Ajax.

PHPとjQueryでCometっぽいモノを実装する – Rewish.

PHPによるWeb Socket実装·PHPWebSocket MOONGIFT.

Xcode5でProvisioning Profileの確認

Xcode5以前はOrganizerから、更新や削除ができたのですが、Xcode5になってから、Preferencesから参照、更新、削除を行うようです。

Xcodeの[Preferences..]から、設定を開き、[Accounts]タブを開きます。
Accounts

対象のApple IDを選択し、View Details..からProvisioning Profileの更新や確認、削除ができます。

スクリーンショット_2014_04_27_15_53

新しいMacのXcode5にインストールしたプラグイン

プラグインディレクトリ作成

$ mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins

Alcatraz

プラグイン管理用のプラグイン。

Alcatraz : Xcode Package Manager.

XVim

XcodeのVimプラグイン。

Nothing But Programming – Software.

Alcatrazからインストールを試みてみたが、インストールが上手くいかないので、手動でインストール。

5/13追記

XVim を Xcode 5.1 にインストール – Unmotivated.

Xcode5.1にアップデートしたら動かなくなったので上記方法でインストール。

Obsidian Code Theme for Xcode

カラーテーマ。

Obsidian Code Theme for Xcode.

Alcatrazからインストール。
Fontサイズがすべて18ptに、なってしまってたので、11ptに変更。

5/21追記

すべてAlcatrazからインストール。

XTodo

TODOや、FIXMEなどのコード内の注釈を抜き出して表示してくれるプラグイン。

https://github.com/trawor/XToDo.

KSImageNamed-Xcode

UIImageのファイル名を補完してくれるプラグイン

https://github.com/ksuther/KSImageNamed-Xcode.

XAlign

コードを自動的に整列するプラグイン

https://github.com/qfish/XAlign.

その他

秘密鍵のエクスポート・インポート

http://www.lastday.jp/2012/09/02/multiple-mac-ios-application
http://sbkro.hatenablog.jp/entry/2012/06/05/225631

ターミナルの自動エンコード

MacのターミナルでEUCのサーバーに繋いだ場合、日本語が文字化けしてしまします。
cocotを使用すると、自動でサーバーのエンコードに変換してくれるので文字化けを解消できます。

cocotインストール

$ sudo port install cocot

cocotを使用する

$ cocot ssh xxx.xxx.xxx.xxx

Macbook Pro Retina 13 Late 2013 インストール・設定メモ

今まで使っていたMacbookから移行はせず、新規にインストールしました。
Macbookはクリーンインストールして、iPhone、iPadのバックアップ用にでもしようかと考えてます。

インストールしたもの

  • Firefox
  • Google Chrome
  • Google IME
  • Alfred
  • TotalTerminal
  • Yummy FTP
  • ClamXav
  • Xcode
  • Dropbox
  • MacPorts
  • Skitch
  • MacVim
  • AppCleaner
  • KeyRemap4MacBook
  • HyperSwitch
  • jre
  • eclipse
  • Virtual Box
  • Vagrant
  • Skype
  • Remote Desktop Connection
  • Thunderbird
  • 夜フクロウ
  • shiftit
  • Cowsee
  • CopyClip
  • CodEditor
  • DiffFork
  • Remote Desktop Connection
  • Sequel Pro

設定

隠しファイルを表示
ドットファイルコピー
vagrant boxファイル作成(package)→box add→vagrant init→Vagrantfileコピー→vagrant up→Synced folderコピー

Windows版SourceTreeを設定する

前提条件

  • gitサーバーが既に用意してある(今回はGithub等のホスティングサービスではなく自分で構築したもの)
  • gitリポジトリに既にソースがPushされている状態

やったこと

  • Window版SourceTreeでソースをCloneする
  • 変更を加えてソースをPushする
  • WindowsからPushしたソースを別PC(mac)からPullする

Window版SourceTreeでソースをCloneする

秘密鍵作成

macから秘密鍵をもってきて、[Tools]->[Create or Import SSH Keys]でPuTTY Key Generatorを起動する。loadボタンで秘密鍵を選択し新たに秘密鍵を作成する。
スクリーンショット_010514_075814_PM

秘密鍵登録

[Tools]->[Launch SSH Agent..]からPagentを起動する。Add Keyボタンで作成した秘密鍵を登録し、パスフレーズを入力します。
スクリーンショット_010514_080341_PM

リモートの設定

[Clone/New]からリポジトリを登録します。[Clone]ボタンをクリックするとcloneが始まります。
スクリーンショット_010514_081753_PM

変更を加えてソースをPushする

WindowsからPushしたソースを別PC(mac)からPullする