Xcode5.1でframework作って、別のアプリに読み込んでみた

Xcode5.1でframeworkを作るとき、色々とハマったので、もし作ることがあれば、下記のページが一番参考になりました。

jverkoey/iOS-Framework · GitHub

xcode5.1からデフォのアーキテクチャが変わったらしく、どえらいハマった、もう少し簡単にして欲しい(^_^;)

xcode5.1からフレームワークをビルドする時に、「Build Active Architecture Only」をYesにして実行するとシュミレータ用のi386アーキテクチャとして追加されないのかな。

windowsを利用する時に便利なフリーツール10選と使える小技

 

というわけで、windowsを使う時にオススメするツールや小技紹介します。

いつもやっている煩わしい作業の時短、効率化が出来ればと幸いです。

これを使えば、業務効率化UP間違いなし!(のはず)

 

1.Chrome

言わずと知れたGoogle先生が提供するウェブブラウザ

f:id:isopan:20140709115237p:plain

おすすめポイント:

軽快に動作してくれるのがオススメ。起動が早く、レンダリング(画面の表示速度)が早い。快適にウェブページを閲覧できます。

様々なOSにアプリを提供しているので、android,iOS,MacOSなど様々なOSやデバイス上で、動作してくれます。しかも、GoogleAccountを利用することによりブラウザの情報(ブックマークなど)を同期してくれます。

また、「拡張機能」というものがあり、フリーで使える優れたツールが多いので、自分で必要なものを取り入れ、より自分好みのブラウザにすることが可能です。

よく使うショートカット:

  • 「Ctrl + Shift + t」: 一つ前に閉じたウィンドウを開く(あ~!間違って閉じちまった!!!という後悔を取り消してくれます。)
  •  「Ctrl + t」:新しいタブを開きます。(新たなウェブへの旅の時に使います。)
  •   「Ctrl + h」:履歴を表示します。(昨日見てたサイトもう一回見たいけど、なんだったっけ、、、という後悔をしなくなります。)
  • 「Ctrl + w」:アクティブタブ(今見ているタブ)を閉じます。(エロサイトをとっさに閉じたい時に使います。)
  • 「Ctrl + f」ページ内を検索します。(卑猥な単語を探す時に使います。)
  • 「Ctrl + j」ダウンロードした履歴を表示します。(その人の人格がわかります。)
  • 「Ctrl + n」:新しいウィンドウを開きます。(実はあまり使いません。)
  • 「Ctrl + Shift + n」:新しいシークレット・ウィンドウを開きます。(エロサイトを見ていた痕跡を残したくない時に使います。)
  • 「Ctrl + r」:キャッシュを残さず更新します。(表示がおかしい、更新したはずの内容が変わらないという気持ちもリフレッシュしてくれます。)
  • 「Ctrl + Shift + i」:デベロッパーコンソールが開きます。(web系の人以外は見る必要ないです。)
  • 「Ctrl + u」ソースが見れます。(web系の人以外は見る必要ないです。)
  • 「Ctrl + p」印刷ビューが開きます。(印刷したくない人は使いません。)
  • 「Ctrl + d」ブック‐マークします。(エロサイトをまた見たい時に使います。)

URLに良く打ち込むもの:(ブックマークしているもの)

  • chrome://settings/」:Chromeの設定が できます。色々いじれます。
  • chrome://net-internals/#export」:ネットワークの流れとか色々見れます。
  • chrome://settings/clearBrowserData」:キャッシュとか消します。
  • chrome://extensions/」:拡張機能を管理できます。
  • chrome://settings/cookies」:クッキーを管理します。(いろんなところから監視されててびっくりします)

Chrome用に設定しているジェスチャー:

  • 「右ボタン+ホイール上」:前のタブ
  • 「右ボタン+ホイール下」:次のタブ
  • 「←」:戻る
  • 「→」:進む
  • 「↓」:新しいタブ
  • 「←↑」:上端にスクロール
  • 「←↓」:下端にスクロール

※尚、ジェスチャーは、下記で紹介する「かざぐるマウス」を使っています

Chrome:http://www.google.co.jp/intl/ja/chrome/browser/

 

2.Evernote

すべてを記憶するノート。これに保存しておけば複数デバイスでノートを見ることが出来ます。(無料版は容量制限あり)

f:id:isopan:20140709152123j:plain

おすすめポイント:

複数デバイスで共有できるネットに繋がっていない状態でもDLしているものであれば閲覧可能。pdf,excel,txtなどの文書ファイル、jpg,gifなどの画像ファイルも保存することが可能で簡単なストレージとしても活用できる。

タグ機能を使うことにより、自分で好きな分類に整理できるので、後々に見返す時に探しやすい。

Chrome拡張機能を使うことにより、ウェブページを保存し、後で見返すということもできる。ウェブページのコンテンツは削除されることもあるため、絶対に保存しておきたいものはevernoteに保存しておくといい。振込の証明が必要な場合や、何かに登録したことの証明には、evernote拡張機能を利用して保存しておこう。

evernote:http://evernote.com/intl/jp/

Chrome拡張機能Evernote Web Clipper:

https://chrome.google.com/webstore/detail/evernote-web-clipper/pioclpoplcdbaefihamjohnefbikjilc

 

3.Clibor

定型文の挿入もできるテキスト専用のクリップボード履歴ソフト

f:id:isopan:20140709112415p:plain

おすすめポイント:

配色を自分でカスタマイズ出来、定型文が管理しやすいので使っています。

その他、カスタマイズする項目が多くて使いこなせていませんが、クリップボードと定型文が使いやすいインターフェースってだけでも満足しています。

 

 Clibor(窓の杜):http://www.forest.impress.co.jp/library/software/clibor/

4.CLCL

画像データやファイルデータも扱えるクリップボード履歴ソフト

f:id:isopan:20140709112609p:plain

おすすめポイント:

CLCLは画像データを保存できるというポイントが大きいです。

上の画像のようにサムネイルを履歴として保存してくれるので、画像を多く扱う人はCliborよりCLCLの方が使い勝手がいいと思います。

 

 CLCL(窓の杜):http://www.forest.impress.co.jp/library/software/clcl/

 

5.かざぐるマウス

Windows をより快適に使えるようにしてくれるマウスジェスチャーカスタマイズツール

f:id:isopan:20140709114131p:plain

おすすめポイント:

ホイールの動作、ボタンとホイールの組み合わせ、ダブルクリックの動作などを細かく設定し、ブラウザやウィンドウの操作を快適にさせてくれる。

おいおいマウスなんて使うな!って言われる方がいるかもしれませんが、これがあれば、逆にキーボードショートカット覚えなくてもそれに対応する動作がマウスでできちゃったりします。

しかし!このソフト、すでに配布が終了しており、バージョンアップが期待できません!ですので、自己責任で探してインストールして下さい

これ以上のマウスジェスチャーツールは個人的には無いと思うので、自分はまだ使っています。。。良くないよね。

6.Orchis

40種類以上の方法でメニューを呼び出すことができるマルチメニューランチャー。

f:id:isopan:20140709134450p:plain

 おすすめポイント:

 ドラッグ&ドロップで簡単にランチャーに登録できる。アプリケーションはもちろんよく使うファイルやディレクトリのショートカットを登録しておくとエクスプローラを毎回起動するより便利。

 Orchis:http://www.forest.impress.co.jp/library/software/orchis/

 

7.dexpot

仮想デスクトップソフト。windowsMacみたいに使おう。

f:id:isopan:20140709145732p:plain

おすすめポイント:

「1」のデスクトップはブラウザ、「2」のデスクトップはエディタ、「3」のデスクトップは、、、の様に同じ画面でアプリケーションを複数、煩雑に管理するよりスッキリとした管理ができる。デスクトップの切り替えは、ショートカットキーを登録すれば自分の好きなようにカスタマイズ可能。

dexpot:http://dexpot.de/

 

8.Skitch

 簡単に画像キャプチャが撮ることができ、簡単にコメントを付ける事ができる。Evernoteに共有可能。

f:id:isopan:20140709153102j:plain

おすすめポイント:

スクリーンショットとペイントでは賄えない、痒いところに手が届くキャプチャツール。簡単にキャプチャ保存できるので、文書で伝えられないものはキャプチャを取って矢印を書いて「ここ!」と伝えよう。

Skitch:http://evernote.com/intl/jp/skitch/

 

9.Google日本語入力

またまたGoogle先生のエントリー。学習機能を備えており、流行の語彙を拾って予測変換してくれたり、変換対象をよく使う順番で並べたりと、文字入力の煩わしさを解消してくれる。もちろん辞書登録機能あり。

同期機能もあり、GoogleAccountを利用すれば、異なったデバイス間で予測変換と辞書を共有できる。

f:id:isopan:20140709154042p:plain

おすすめポイント:

Mac,win,androidを使う人であればこれを入れておけば煩わしい文字入力の管理から開放される。必ずインストールして同期をしておこう。

よく使う定型文の辞書登録はもちろんするよね!?

顔文字も豊富なので、「かおもじ」と入力して変換するとものすごい数の顔文字が出現する(^O^)/

Google日本語入力:http://www.google.co.jp/ime/

 

10.Dropbox

 言わずと知れた、写真、ドキュメント、ビデオをどこからでもアクセスできるようにする無料のサービス。頑張ってどんどん容量を拡大しよう!

f:id:isopan:20140709154742p:plain

おすすめポイント:

データの保存はもちろんのことWEBページなどの作成も行えるすぐれもの。

すぐにデータを届けたい!メールじゃ添付できない!という場合はURL化などしてデータをみんなと共有しよう!

 Dropbox:https://www.dropbox.com/

Androidプロジェクトにjarを作って読み込んでみた

jarを作って別プロジェクトに読み込むまでは、色々と参考にさせていただいて
すっと出来たわけですが、読み込んでからヌルポ、ヌルポして動かなかった。

ごにょごにょしてたら動いたんだけど、忘れないように、メモメモ。

Eclipse Version: Kepler Release (日本語)で作成。


まずは、JARとなるAndroidプロジェクトの作成。

JARとなるAndroidプロジェクトの作成

  1. パッケージ・エクスプローラーで右クリック
  2. 新規→Androidアプリケーション→アプリケーション名など適当に入れて「次へ」
  3. カスタム・ランチャー・アイコンを作成するからチェックをはずすアクティビティの作成からチェックをはずすこのプロシェクトをラブラリとしてマークするにチェクを入れる f:id:isopan:20140616215432j:plain
  4. プロジェクトが作成できたらAndroidManifest.xmlのアプリケーションタブのDefine..のチェックをはずすf:id:isopan:20140616215711j:plain

以上で設定はOK。

で、クラスを作成し処理を書いたらエクスポート

JARを読み込み側のプロジェクトの設定

  1. パッケージ・エクスプローラーのプロジェクト名上で右クリック
  2. Java→JARファイルを選んで「次へ」
  3. 必要なファイルを選びJARファイル名を入力したら「完了」(自分はこのとき、.classpath .project AndroidManifest.xml proguard-project.xml project.propertiesのファイルとresディレクトリはチェックを外しました。)
  4. JARが出来上がったら、読み込みたいプロジェクトのlibsディレクトリにJARを移動
  5. パッケージ・エクスプローラーの読み込みたいプロジェクトで右クリック→プロパティ
  6. Javaのビルド・パスを選択
  7. Jar追加で先ほどのJAR選択→「OK」

これで読み込みまでOKなので、実際のプロジェクトで呼び出して使える!

とここまでなら何らハマらなかったんだけど、、、
SharedPreferencesとintentが動かない!
あ、context渡さないとだめなんだ!と気づくまで2時間位どっぷりヌルポに浸かって疲れた。。。

//ライブラリ側 JARをcontextを引数で渡してもらうよう変更
public class JarTest {
    public static void JarTest001(Context context) {
    //SharedPreferencesを使ったところ
        context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
    //intentを使ったところ
        context.startActivity(intent);
    }
}
//読み込みたいプロジェクト側
JarTest.JarTest001(getApplicationContext());

こんな感じで動いた!

PHPUnitをPEARで入れたら怒られる

メンテナンスしようと思って、サーバーのPHPUnitのバージョンを確かめてみたら。

phpunit --version

PHPUnit 4.0.17 by Sebastian Bergmann.

You have installed PHPUnit via PEAR. This installation method is no longer
supported and http://pear.phpunit.de/ will be shut down no later than
December, 31 2014.

Please read http://phpunit.de/manual/current/en/installation.html and
learn how to use PHPUnit from a PHAR or install it via Composer.

PHPUnitPEARで入れたの?もうそれ、使えないよ?

みたいに言われた。。。

おぉ、

ということで、丁寧に記述されている通りのPHPUnitの本家サイトを覗いてみた。

http://phpunit.de/manual/current/en/installation.html

そしたら、簡単にできました。
以下サイトに書いてある通りのコマンド。

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

phpunit --version
PHPUnit 4.1.2 by Sebastian Bergmann.

fgetcsvをMACの改行コードに対応する

MAC版のエクセルで保存されたcsvファイルを、fgetcsvで読み込むと改行が無視されて
読み込んでしまう。

fgetcsvは、MACの改行コード(CR)に対応していないためだった。

改行コードについて wiki改行コード
なのでファイルを一回読み込んでから改行コードをリプレイスすればOK

<?php
$file = file_get_contents("アップロードされたファイル");
$file = preg_replace("\r\n|\r|\n","\n",$file);

そのあとはファイルをそのまま読み込むなり、保存するなりして、
fgetcsvで読み込めば、行ごとに読み取ってくれた。

PHPでSOAP

PHPSOAPを使ってみようと思ったんだけど、SOAPが全然わかってなかったので、
ちょっと勉強してみた。
ちなみに環境は、LINUX鯖だよ。

■そもそもSOAPってなんぞや
SOAPっていうと個人的には本番ができるR18のところってイメージがある。。。
って、風俗的なソープじゃなくて、プロトコルのお話。

    • -

Wikiより引用
SOAPは拡張可能で分散的なフレームワークであり、HTTPやSMTPなど様々なコンピュータネットワークの通信プロトコルで利用することができる。
いくつかのSOAPメッセージを相互作用させることによってリモートプロシージャコールが実現できる。SOAPWebサービスに有効な手段の一つである。
SOAPXMLに基づいており、XMLの、ヘッダとボディを組み合わせるデザインパターンで設計されている。「ヘッダ」は、オプショナルであり、ルーティングやセキュリティ、そして トランザクションなどのための情報といったメタ情報を格納できる。「ボディ」部分は、主要な情報、別の言い方をすればペイロードと呼ばれるものである。SOAPペイロードXML Schema規定することができる。

    • -

まぁ、簡単に使い道を言うと仕様に沿ったXMLSOAPクライアント側が、SOAPサーバーにリクエストすると
仕様に沿ったXMLを返事してくれるってこと。
XMLとHTTPなどをベースとした、他のコンピュータにあるデータやサービスを呼び出すためのプロトコルって感じ。

PHPでのSOAPの利用
PHPSOAPを使うにあたってまず、環境がどうだかチェック。
PHP5だとSOAPのモジュールが導入されていて、soap.soを有効にすればPEAR::SOAP
利用しなくてもSOAPライブラリが利用できるようになっている。
PHP5より前のバージョンの場合はPEAR::SOAPを使おう。

SOAPモジュールの利用の仕方

    • -

マニュアルより引用
ちなみに、この拡張モジュールを使うには libxml 拡張モジュールが必要です。つまり、 --enable-libxml も指定しなければならないということです。 しかし、libxml はデフォルトで有効になっているのでこのオプションは暗黙のうちに指定されています。

SOAP サポートを有効にするには、--enable-soap を指定して PHP の configure を行います。

    • -

とのこと。
まぁ、マニュアル見てね→SOAPマニュアル

コンパイルし忘れた!!!とかyumで入れたからどうだかわからんし!
ってなったとき。

yumの場合
yum install php-soap
.soがあるか確認
/usr/lib64/php/modules/soap.so (64bitの時)
/usr/lib/php/modules/soap.so (32bitの時)
php.iniに
extension=soap.so
を記述

②ソースからコンパイルしたとき

    • enable-soapを追加してconfigureする

make clean
make
するとlibにsoap.soができてるはず。
そいつを追加すればok
まぁ、「php モジュール追加」ってグーグル先生に聞けば大丈夫。

pearのやつを入れる場合
pear install soap
こんな感じでいれたはず。忘れた。
pearがインストールされてないってやつは入れてね。

■実際にやってみた
SOAPクライアント側(PEAR版)

<?php
require_once('SOAP/Client.php'); 
$client = new SOAP_Client('リクエスト先');
$params = array('str' => 'hello', 'str2' => 'world'); 
$options = array('timeout' => 20); 
//リクエストするメソッド名を記述
$result = $client->call('getMethod', $params, $options); 
//出力結果 hello123world
echo $result; 

SOAPサーバー側(PEAR版)

<?php
require_once('SOAP/Server.php'); 

function getMethod($str, $str2){ 
$rs = $str . '123' . $str2;
return $rs;
}

$server = new SOAP_Server(); 
$server->addToMap('getMethod', array(), array()); 
$server->service($HTTP_RAW_POST_DATA);

MySQL-5.0からMySQL-5.5にしてハマったこと

my.cnfにdefault-character-setを設定するとき

[ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'

こんな感じでそんな設定ないよ!って怒られる。

ちょっと調べてみたら。
MySQL のデフォルト文字コードについて
MySQL-5.0 までは、my.cnf に default-character-set
にてそれぞれの文字コードを設定していましたが、
MySQL-5.5 では、character-set-server
でデフォルトの文字コードを指定します。

とのことだった。

そういえば、他の設定も結構変わったこと多いなーって思った。
バージョンアップしても、こういうところは変えなくてもいいのに、、、

補足で、mysqldumpの時のオプション--default-character-setは変わってなかった。

うん、てか、今更MySQL5.0なんて使ってた自分が怖いねん。