気ままにプログラミング(仮)- iPhoneアプリ開発者の日常

何でもないアプリ開発者の思いつきやら開発メモやら。ときどきエセ哲学風なことを書きたがるのはご愛嬌。

【カップラーメン】蒙古タンメン中本北極ラーメン【激辛】

近所のセブンイレブンが割と本気だった。

f:id:Rusie1001:20140805211746j:plain

ちなみにこの蒙古タンメン中本北極ラーメン。
流石に実店舗の北極ラーメンとまるで同じとはいかないものの、
辛さや旨味が結構近い。

つまり多分カップラーメン史上最高クラスに辛く、
実は中本ファンの僕も納得の一品です。
(前回の蒙古タンメンは個人的にはいまいちでした。)

食後数時間後に腹痛を催す可能性が本当にあるので、
是非お休みの日にでも食べてみてはいかがでしょうかw

役に立つ知識も活用しなければ、まるで役に立たない。

時勢柄、役に立つ知識は
簡単に手に入るようになったと思う。

しかし、役に立つ知識は、
聞いただけでは役には立たない。
使って初めて役に立つ。

「いいな」「使えるな」と思う情報を見つけたら、
出来るだけ早く使ってみることが大事。

使わなければ、当然役にも立たず、
すぐに記憶から消えてしまう。

役に立つ知識のはずが、
ただの時間の浪費になってしまう。

「いいな」と思ったら即実行!!
自分でも徹底していこう。

働く理由と労働者と経営者とアプリ個人開発者

生きるためには食べる必要があります。

食べるためには食料を調達する必要があります。

食料を調達するにはお金が必要です。

お金を得る最もメジャーな方法が、自分のレンタルです。

1時間辺り幾らでレンタルするのがアルバイトで、

1ヶ月当たり幾らでレンタルするのが正社員ってとこですね。


超当たり前のことなんですが、
これが働く理由ですね。


この当たり前のことから、
色々なことが分かります。


1.生きるつもりの無い人は働く必要がありません。
2.食料を自前で調達できる人は働く必要がありません。
(自然になっている木の実を取るとか。)
3.自分のレンタル以外でお金を稼げる人は働く必要がありません。


この3.が盲点でした。


今まで全ての人は同じように働いていると思っていたんですが、
自分をレンタルしている人と、誰かをレンタルしている人は、
全く稼ぎ方が違います。



A.自分をレンタルしている人は、あくまでレンタル料で稼ぎます。
B.誰かをレンタルしている人は、何らかの儲かる仕組みを実行することで稼ぎます。
(例えば誰かの釣った魚を買い取って、別の誰かに売り、差益を生むとか。)


このB.の儲かる仕組みを自分でやると、それは労働っぽく見えるのですが、
差益の許す限り、人をレンタルして、誰かにやってもらえれば、
B.は労働せずともお金を得ることができます。


当たり前のこと過ぎて、
何だか恥ずかしいことを言っているんじゃないかと
言う気がしてきましたが、


労働者と経営者は全く別物だということに、
あらためて気付いたってことです。


ここでちょっと僕のアプリ個人開発に話を当てはめてみると、
アプリの開発は自分の時間を使って行いますので、労働っぽいです。
ただ、開発されたアプリはそれ自体が労働者になります。

つまり、労働者を生み出すという労働ですね。

だから、労働者が十分に増えたら、アプリの開発と言う労働は
いずれ不要になることでしょう。

ただし、これはあくまで個人の場合の話です。
レンタルされた業務としてアプリ開発をしている場合は、
労働した時間に応じて収益を得ます。

個人の場合は経営者にも似た仕事なのかも知れないなと思ったわけです。


ちょっと取り留めも無い感じで書いてしまいましたが、
お昼にスーパーでご飯を食べながらこんなことを考えていました。

おまけ:儲かる仕組み

よくよく考えてみたら、これってかなり限られますね。

自分の物を、売るor貸す。

しかない気がします。

自分の物とは、
・買ったもの
・借りたもの
・学んだもの
・拾ったもの
・貰ったもの
・元々持っていたもの

ものとは
・物質
・データ
・知識
・技術
・時間

何だか商売の原点にたどり着いた気がします(笑)

おまけ:スキルとレンタル料

自分をレンタルする場合、自分にこれといったスキルが無いと、
競合のレンタルが多いため、買い手市場になります。

たくさんの人が「私の時間をどうぞ」と言っているので、
レンタル料が安くなっていってしまう訳ですね。

もし自分にレアなスキルがあったりすると、
競合が少ないため、売り手市場になります。

「この人を雇いたい。」と多くの人が考えるため、
最もレンタル料を払ってくれるところに行けばいい訳ですね。

で、目に見えて分かるスキルの代表が、
資格であったり、職歴であるということですね。

目に見えなくてもスキルはスキルなんですが、
今の日本の雇用現場では、
目に見えないスキルを読み取ることが出来ていないため、
資格やら職歴やら重視になっているのだろうと推測できます。

英語を聞き取れない理由と聞き取る方法

例えば日本語で突然、

「この間、 ばるだす が やべるで して みろまった よね?。」

と言われても、まず「え?」と聞き返すことでしょう。

この場合、
「ばるだす、やべるで、みろまった」の3単語が分からないからです。
音として聞こえたとしても、脳は単語に置き換えられないため、聞き取れなくなります。


次に、
「ばるだす、やべるで、みろまった」の3単語を知ってはいたけど、
発音を間違って覚えていたとしましょう。
「わるたす、よべるど、むろもった」のように。

恐らくこれでも、瞬時には脳はその単語を識別できず、聞き取れないことでしょう。

「この間、(略)」
「え?」
「ばるだすだよ!」
「ばるだす?」
「ばるだすだって!」
「・・・わるたす??」
「そう、ばるだす!」

こんな感じでしばらく問答してから識別できるでしょうね。
そして彼は「ばるだす=わるたす」と学習できたので、
今後は識別できることでしょう。

ということで、

単語を知っていても、正しい発音で知らなければ、その単語は聞き取れません。

ということで、どうすれば英語を聞き取れるようになるかと言うと、

最初から正しい発音で単語を学習すること

になるかなと思いました。

日本人の多くの人が聞き取りが苦手な理由が、
単語を正しい発音で覚えていないためと考えると、
個人的には大いにうなずけます。

具体的にどうするのが正しい発音で単語を学習する近道かまでは
まだ考えていませんが、
単語の発音を十分に意識することが、
英語を聞き取る上で大切なんじゃないかなと思いました。

不要な物や情報は人を不幸にする

必要な物や情報は人を幸福にし、
不要な物や情報は人を不幸にする。

不要な物や情報を退け、遠ざけることは
意図しなければできない。

捨てること、辞めることは
常々意識しておく必要がある。


・・・なんかちょっと違う気がするな。


全ての物や情報は、
基本的に少ないほど幸せなのかも知れない。

【ビルドエラー】GoogleAnalyticsとAdMobを両方実装しようとするとビルドエラーが発生する件

かつてGoogleAnalyticsとAdMobを両方実装しようとしたのですが、
Link Errorのため断念したことがありました。

今回、GoogleAnalyticsと別のSDKを実装しようとしたところ、
同様っぽいエラーが発生しました。

こんな感じの。長いですがそのまま貼ります。

Undefined symbols for architecture armv7s:
"_sqlite3_close", referenced from:
-[TAGDataLayerPersistentStoreImpl closeDatabase] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_prepare_v2", referenced from:
-[TAGDataLayerPersistentStoreImpl prepareSql:description:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_bind_int", referenced from:
-[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_column_bytes", referenced from:
-[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_errcode", referenced from:
-[TAGDataLayerPersistentStoreImpl prepareSql:description:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_bind_blob", referenced from:
-[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_column_blob", referenced from:
-[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_step", referenced from:
-[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
...
"_sqlite3_errmsg", referenced from:
-[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl tablePresent:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl openDatabaseAndInitStatements] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
...
"_sqlite3_open", referenced from:
-[TAGDataLayerPersistentStoreImpl openDatabaseAndInitStatements] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_reset", referenced from:
-[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_column_int64", referenced from:
-[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_bind_int64", referenced from:
-[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_column_text", referenced from:
-[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_bind_text", referenced from:
-[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
"_sqlite3_finalize", referenced from:
-[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl tablePresent:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl openDatabaseAndInitStatements] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
-[TAGDataLayerPersistentStoreImpl closeDatabase] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

再度、解決法を調査したところ、
こちらが見つかりました。

http://stackoverflow.com/questions/22832200/google-analytics-sdk-3-0-sqlite3-linker-errors-in-ios

要約すると、Linked Frameworks and Librariesに
libsqlite3.0dylibを追加すれば良いようです。

で、やってみたところ、
無事ビルドできました!!


今回は表題の2SDKと全く同じではないのですが、
恐らく解決法も同じかと思われます。

後ほど試してみる予定です。


しかし、こういうのは本当に日本語のドキュメントないですね。
気合で英語を読まないと詰みそうです。

プログラマは英語必須だなぁ。

淡々と言った方がよく伝わるという現象について考察

人に意見を伝えるとき、感情的に言うのではなく、
淡々と言った方がよく伝わるという現象があるのですが、

これは、淡々と伝えることにより、
ある種不要な情報が排除されるため、
そうなるのではないかと思いました。

例えば、

A「ここで靴を脱いで下さい!!!!!」(怒っている)
B「ここで靴を脱いで下さい。」(淡々と)

活字のため分かりにくいですが、
AとBの言い方をした場合、

Bに比べてAは、

『この人凄く怒っている。』

という情報が追加されます。

そうすると言われた側は、
『靴を脱ぐこと』『怒らせてしまったこと』『この人どうなんだろう』
など考えることが増えてしまいます。

考えることが増えれば増えるほど、
『意見』の占める割合は薄まります。

場合によっては、
『怒らせてしまったこと』ばかりに
意識が集中してしまうかも知れません。

このように、感情を入れて何かを伝えると、
『意見』と『感情』の両方が伝わってしまい、
『意見』だけを伝えるより効率が落ちてしまいます。

感情を入れて伝わるのは、
『意見』そのものではなく、
プラスアルファの『感情の強さ』です。

それゆえ、淡々と伝えた方が、
相手によく伝わることがあるのではと思いました。

人生を有意義に過ごす方法 / 有意義な人生の過ごし方

一生は今日一日の積み重ねに過ぎない。


今日一日を何万回か繰り返したものが一生である。


今日一日を有意義に過ごせないことは、
一生を有意義に過ごせないことに等しい。


無意味な一日 × 何万回 がその人の一生になる。


今日一日を有意義に過ごすことは
それほどに重要なことである。


何もバリバリと作業することだけが、
有意義な一日という訳ではない。


休養する目的でゆっくりすることもまた、
有意義な一日と言えるだろう。


何の目的もなく、漫然と時間を潰すことは
無意味な一日だろう。


目的を持って、時間を潰すのであれば、
それは有意義と言えるだろう。


今日一日を有意義に過ごそう。
そうすればきっと有意義な人生を過ごせるだろう。

首が回らない。(痛くて)

かれこれもう一ヶ月ほど首が痛い。

痛くてつい自分で揉んだりしてみるが、
揉んだ直後はマシになった気がするんだけれども、
翌日にはさらに痛くなったりする。

という訳で調べてみました。

首の痛み・凝りには、揉んだりストレッチしてはいけない理由とは?前編
http://www.shirogane-chiro.com/column/kubi-itam/

首の痛み・凝りには、揉んだりストレッチしてはいけない理由とは?後編
http://www.shirogane-chiro.com/column/kubi-itami02/

首の筋肉に常に刺激を与えてしまうと、
その刺激から身を守ろうとして硬くなります。

その硬くなった筋肉が、血管や神経を圧迫して
循環が悪くなり、余計に凝ってしまう。

なるほど、分かりやすい。
適当に揉んではいけないわけですね。

ストレッチで伸ばしすぎると、伸びきったゴム状態になります。
こうなると、筋肉本来の機能である、縮まって関節を動かす
事が出来なくなります。

なるほど、ストレッチもやり過ぎはいけないと。

じゃあ、どうすれば良いのかと言うと、

蒸しタオルを行う度に、

筋肉と血管は、

緊張→緩む→緊張→緩む

を繰り返し、ポンプ作用で血液や神経の流も
活発になります。

蒸しタオルだそうです!!

あと別のサイトでは、姿勢を正すことで負荷を減らすみたいな記事もあったので、
早速、姿勢を正し気味に記事を書いているんですが、

確かに首が楽です!!

という訳で、首が痛い時は揉んだりストレッチしたりせず、
姿勢を正して安静にすると良いということでした(笑)

運を良くする方法(夢に出てきたおっさんによると)

まず始めに

これは夢の話です。
しかし、ちょっと気になる夢だったので覚え書きです。

前提として僕は何かの授業に定期的に通っているようでした。

夢の話

その日も授業に出ようとしたのですが、
何だかよく分からない兄ちゃんに絡まれて
授業に参加するのが遅れてしまいました。

しかし絡まれながらも、ちらっと授業の様子が見えたのですが、
いつも来るはずの先生ではなく、よく分からないおっさんが喋っていました。

その状況に興味を持った僕は、
急いでよく分からない兄ちゃんを何とかして
遅れて授業に参加したのでした。

そこでおっさんが話していたのが、運を良くする方法でした。


中途半端なことをしていると運が逃げる。
竹を割ったようにスッパリと選択をしなければならない。
または、徹底的に考えつめて答えを出す。
あと・・・

とのことでした。

後もう一つ選択肢があったような気がするんですが、
残念ながら忘れてしまいました。

おっさんの「竹を割ったように」という言葉が印象的でした。

夢の中でも「これは聞き逃せない」と話に食らいつこうとしていたのですが、
夢から目が覚めてもやっぱりそう思っていたので急いでメモした次第です。

聞き逃した部分を、他の生徒に聞こうとか考えてましたねぇ。

本当にただの夢だったんでしょうか?

それは定かではありませんが、
おっさんの言っていた「スッパリと選択する」ことは、
汎用的に大切なことであるような気がしました。

何だってグズグズしていても
そんなに良いことはないですからね!

スッパリと選択して次々と行動して行こうと思いましたとさ!!

そ、そう言えば!!

『いい夢をみるアプリ』ってのを作ったことがあったナァ!!!(白々しく)

iPhone用の無料のアプリになります。
良かったらダウンロードしてみてくださいw

ダウンロードページはこちら
https://itunes.apple.com/jp/app/id842415421

f:id:Rusie1001:20140519102731p:plain

主なiPhone/iPadの壁紙サイズ一覧まとめ

最近の主なiPhone/iPadの壁紙サイズについてまとめてみました。


機種 サイズ サイズ(視差効果あり)
iPhone5/5S/5C 640×1136px 744×1392px
iPhone4/4S 640×960px 740×1196px
iPad mini/2 768×1024px 1424×1424px
iPad Retina/Air 1536×2048px 2448×2448px


サイトによって多少誤差があるようなんですが、
恐らくこれが正しかろうというサイズが以上になります。

そしてこの視差効果って言うのがくせ者ですね。


視差効果とは?


視差効果とは、iOS7から実装された機能で、
ディスプレイより大きい画像を壁紙に設定することで、
アイコンが壁紙から浮かんでいるように見せたりしています。
(他にも何かしているようですが割愛)

よく分からない方は、
iPhoneのホーム画面を表示して、
iPhoneを縦や横に少し傾けてみて下さい。

ちょっと背景が動きませんか?
それです。

地味すぎてほとんど知っている人がいないと思われますw


結局どの画像サイズが必要?


基本的にiOS7以上の人は視差効果ありのサイズ。
iOS6以前の人は視差効果なしのサイズの画像を用意すれば良いと思います。

iOS7でも視差効果なしにすることもできるので、
どうしても以前のサイズが良いって方は、

設定->一般->アクセシビリティ->視差効果を減らす(オンにする)

という手もあります。


写真を壁紙サイズに変換するiPhoneアプリ


ちなみにiPhoneiPadで撮った写真などから、
ぴったり壁紙サイズの画像を作成するアプリがあります。

というか作りましたw

その名も、
iPhone/iPadで撮影した画像をそのまま 壁紙サイズに加工/変換 -写真壁紙- 視差効果にも無料でぴったりに作成』

無料なんで良かったら使ってみてくださいませ!!(これが言いたかったw)

ダウンロードはこちらから
https://itunes.apple.com/jp/app/iphonede-cuo-yingshita-hua/id863094731

f:id:Rusie1001:20140517131720p:plain

炭水化物/糖質抜きダイエット始めてみました。

とあるスレに触発されて、

今週の頭ぐらいから炭水化物抜きダイエットを始めてみました。

 

なんでも炭水化物を抜いて2週間ほどすると、

食欲自体が抑えられて、ダイエット自体が楽になってくるとのことです。

 

僕は一見やせ形、実は腹だけ出ているという体型なので、

なかなか人には気付かれにくいのですが、

内臓脂肪はヤバいんじゃないかと感じていたところでした。

 

で、始めてみて数日の感想なんですが、

どうも割とすぐに食欲が抑えられたような気がします。

(実感するには早すぎるはずではありますが。)

 

お腹は確かに空くのですが、以前のように、

「飯!早く、飯!」

といった急激なものではなくなったように感じます。

 

また、食事を始めて割とすぐに

お腹が苦しくなるような気がします。

 

噂通り多少頭に違和感はあるのですが(血糖値が下がるため)

ボーッとするというよりは、意識が低く安定したように感じます。

そしてこれも2週間ほどで収まるという事なので、

あまり気にもならないですね。

 

 

まだ実はラーメンを食べに行ったりしてしまっているんですが(笑)、

これは結構効いている気がしますね。

 

基本的に食事から炭水化物を抜いているので、

たまに食べたからといって以前よりは遥かに摂取量が少ないという事なんでしょう。

 

2週間ほど経つとみるみる痩せて行くそうなので、

もうちょっと頑張ってみたいと思います!!

『goo.gl』の正体/URL短縮サービスを今更知った。『bit.ly』『p.tl』など。

f:id:Rusie1001:20140514121642p:plain

 

最近色んな所で

http://goo.gl/xvmPUl

⬆みたいなアドレスを見かけては、

 

Googleのぱちもんサイトかぁ」

 

みたいに思っていたんですが、

調べてみるとどうやら違ったようです。

 

これは、

Google URL ShortnerというGoogleが提供している

URL短縮サービスらしく、

http://goo.gl/

このサイトから簡単に作成できるようです。

Googleアカウントは必要かも)

 

要は長くなっちゃったURLと同じ意味を持つ、

短縮版のURLを作ってくれる訳ですね。

 

で、早速作ってみたのが冒頭のURLなんですが、

なんと驚いた事にアクセス解析機能が付いていました。

 

しかも、短縮URLの有効期限はないそうです。(Googleの場合)

 

特に使えると思われるのが、

ツイッターなどの文字数に制限がある状況でしょうか。

 

後はクエリ文字列を隠すのに使えるんじゃないか?と睨んでます。

(分からない人はお父さんに聞いてみよう。お父さんに睨まれます。)

 

どうやら他の会社でもこの短縮URLサービスを

やっているようですね。

  

という訳でこの短縮URL機能。

使うっきゃないですね!!

 

かくいう僕もすでに使ってみちゃってたりして(笑)

電車の乗り過ごし防止に便利な無音タイマーiPhoneアプリ『強力無音タイマー - 通勤、通学時の電車の 乗り過ごし防止や 図書館で使える サイレントバイブアラーム』を作ってみた。【音の鳴らないタイマー】

強力無音タイマー - 通勤、通学時の電車の 乗り過ごし防止や 図書館で使える サイレントバイブアラーム

https://itunes.apple.com/jp/app/powerful-silent-timer-vibration/id873008064

 

を作ってみました!!

 

f:id:Rusie1001:20140511211306p:plain f:id:Rusie1001:20140511211320p:plain 

 

『タイマーを掛けたいけど、音を出したくない!!』

 

って思った事ないですか??

 

僕はありました。

つい夜更かししてしまって、翌日、寝不足状態で電車やバスに乗って、

目的地まで少しでも良いから寝たかった時です。

 

僕はまず、iPhone付属のタイマーを掛けてみようと思いました。

ところがiPhone付属のタイマーでは、

『音無し、バイブのみ』という設定は出来ないようでした。

 

次に、ちょうど良いアラームがないか探してみました。

『目的地に近づくとアラームが発生するアプリ』や、

『無音のタイマーアプリ』がありました。

 

しかし、残念ながら目的地に近づいても反応しなかったり、

タイマーは作動しているけど

非力なiPhoneのバイブのせいで気付けなかったりと、

満足のいくタイマーは見つかりませんでした。

 

そこで作ってみたのが『強力無音タイマー』です!!

 

強力無音タイマーの特徴

 

このタイマーは、

確実に作動させるため、あえてGPS機能などを使わない、

古典的な時間指定のタイマーとしています。

 

また、非力なiPhoneを最大限に振動させるために、

アプリを起動(表示)したままでの使用を目的としています。

(ロック状態では十分なバイブ機能を引き出せないのです。)

 

さらに、アプリを表示したままでは

『誤ってタイマーを切ってしまう』などのトラブルがあり得るため、

表示したままでも誤操作を起こさないための機能、

『ソフトウェアロック』機能を実装してみました。

 

f:id:Rusie1001:20140511211458p:plain

 

これら3つがこのアプリの主な特徴になります。

 

このアプリ、ツール系につき・・・

 

ところで本アプリ、ツール系のため恐れ入りますが有料とさせて頂いています。

ただいま期間限定で最低価格の100円とさせて貰っています。

  

有料ではありますが、個人的に満足の行く仕上がりになっています。  

どうぞ試してみてください!!

 

強力無音タイマー - 通勤、通学時の電車の 乗り過ごし防止や 図書館で使える サイレントバイブアラーム

■ダウンロードはこちら

https://itunes.apple.com/jp/app/powerful-silent-timer-vibration/id873008064

 

追記:宣伝画像を作ってみたら思いのほかそれっぽくて嬉しかったり。

 

// GoogleAnalyticsでイベントをトラックするための設定2/2