Carthage 使ってみた(iOS開発)

参考サイト
Carthageを使ってビルド時間を短縮しよう
http://qiita.com/yutat93/items/97fe9bc2bf2e97da7ec1


Homebrewの導入

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update



Carthageの導入

brew install carthage



Carthageで外部ライブラリを導入
1.ライブラリを導入したいプロジェクトのディレクトリへ移動

cd /Users/Suzuki_Yasuharu/Documents/Project/....../ys_test01



2.Cartfileを作成

touch Cartfile



3.Cartfileを編集

vim Cartfile



外部ライブラリ情報を記述。

github "SnapKit/SnapKit"



4.外部ライブラリをビルド

carthage update --platform iOS

結構時間がかかる。
carthage updateだけでもビルドは可能だが、OSX用や、watchOS用もビルドされてしまうので、
iOS用のみをビルドするよう指定。


5.プロジェクトに外部ライブラリを追加
まずプロジェクトファイルのGeneralタブから、
「Linked Frameworks and Library」にある+ボタンを押します。


Frameworksを選択する画面になるので、「Add Other...」を選択。


プロジェクトのディレクトリ内から、Carthage/Build/iOSと移動し、
ライブラリの.frameworkファイル(SnapKit.framework)を選択。


ライブラリが追加できたら、Build Phasesタブに移動し、
+ボタンから、「New Run Script Phase」を選択。


「Run Script」が現れる。


ここでまず「Shell」の下にある黒い部分に以下のコマンドを記述。

/usr/local/bin/carthage copy-frameworks

そして次に「input Files」にて+ボタンを押し、以下のようにframeworkの情報を記述します。

$(SRCROOT)/Carthage/Build/iOS/Snapkit.framework

これで全ての設定が完了。


あとは必要なところでimportして使うだけです。(以下はSnapKitのテストコード)
import SnapKit

let label = UILabel()
label.text = "TEST!"
label.textAlignment = NSTextAlignment.center
label.backgroundColor = UIColor.brown
view.addSubview(label)
label.snp.makeConstraints { (make) in
  make.size.equalTo(100)
  make.center.equalToSuperview()
}




横表示



縦表示


こんな感じか(・ω・)

Dockerって結局実サービスでは使ってないんだけど最近どうなん?と思って調べてみた

Dockerって結局実サービスでは使ってないんだけど最近どうなん?と思って調べてみた。
 
1つのサーバにいろいろ混在させるとなると環境を汚すのが怖い
遊びの環境だしDockerで分けられないかな?
 
1コマンドで作った。Dockerで開発環境を構築する方法
http://sitest.jp/blog/?p=8823
おさらい。Vagrant + Docker + ansible。図解がすごくわかりやすい。
 
2014/10 今さら聞けない【コンテナ/仮想化技術】11選
http://paiza.hatenablog.com/entry/2014/10/21/知らぬはエンジニアの恥。今さら聞けない【コン
仮想化・コンテナ技術の歴史。わかりやすい。長いけど読め。
 
2014/11 Dockerは速いのか?Dockerのパフォーマンスについて重要なことは何か?
http://blog.yuuk.io/entry/docker-performance
"Docker の本番投入の問題はパフォーマンス云々以上に、既存のワークフローにいかに組み込むかと
問題が発生したときのデバッグまたは障害対応であるというのがここ半年くらいの認識になっている。"
うむ(・ω・)よいまとめ。
 
docker-syncでホスト-コンテナ間を爆速で同期する
http://qiita.com/pocari/items/0340049742927f3a94b7
docker for Mac は遅いので使うな、と。
 
Dockerの本番運用:失敗の歴史
http://postd.cc/docker-in-production-an-update/
Dockerは使うな、と。AWSならギリギリ「あり」か。
 
さくらのVPSにdocker環境構築
http://qiita.com/t-mimura/items/c206d46f3af771292f89
一応作ってる人はいるみたいですね。

Amazon Lightsail 調べてみた(料金とかさくらとの比較とか)

そういやさくらのVPSより安い$5で使えるLightsailはSSL使えたりしないのかな?
と思って調べてみた。


超便利そうな Amazon Lightsail の落とし穴を確認してみる
http://blog.serverworks.co.jp/tech/2016/12/02/lightsail/


Amazon Lightsailの課金まとめ #reinvent
http://dev.classmethod.jp/cloud/aws/lightsail-m/


static ipは $0.005/時間 ($3.6/月) なので合計$8.6となるとあまり料金の利点はない。
1TB超えると転送料金が$90/TB掛かるのもちょっと怖い。


【さくらのレンタルサーバ】基本仕様
https://help.sakura.ad.jp/hc/ja/articles/206053142
スタンダードで80GB/日で制限。個人利用&小規模利用が前提なのでこれで十分。


Amazon Lightsailで起動したWordPressSSLサーバ証明書を調べてみた #reinvent
http://dev.classmethod.jp/cloud/aws/lightsail-ssl-crt/
入っているのはオレオレ。購入必要。

格安SSL証明書を調べてみた

格安SSL証明書が欲しくなったので調べてみた


「SecureCore」と「CoreSSL」と「ラピッドSSL」の違い!
https://ischool.co.jp/2016-03-03/
おさらい。セキュリティー強度に違いはなし。
企業認証、サイトシール、ロゴ、全部なし、などによってだいぶ値段が違うってことですな(・ω・)


最安・格安SSL証明書はどこだ? お店&価格リスト2016年11月版
https://exfield.jp/View/pid:918/
日本語サイトから買うならここが一番まとまってると思う


格安SSLサーバ証明書が購入できるサイト+α
http://nasunoblog.blogspot.jp/2015/09/cheap-ssl-server-certificate.html
海外のも含めて紹介あり


GOGET SSL (海外だとここが安い)
https://www.gogetssl.com/domain-validation/comodo-positive-ssl/
1個で$4.08。Wildcard SSL で $45.67 。(2017/07現在)
12個分でpayするが、更新の手間を考えるとワイルドカードで買ってしまったほうが良いかもしれない。
サブドメインはいろいろ分けたいしね。


年額3.65ドルでSSL証明書を手に入れる
http://qiita.com/SatoHiroyuki/items/2c14bafaca660326db16
GOGET SSLから購入した例

ブログのアクセス数チェックしてみた(66万pv@5年)

久しぶりにググアナさん開いてアクセス数チェックしてみました。

ノーメンテナンスの割にはわりとヒット数残ってますねー
累計60万PVかー
凄いかと言われるとそうでもなく、全く無いかというとそうでもない。
まぁ一応月に1000円〜2000円の収入にはなりますね(・ω・)

2013年4月の瞬間最大風速は「無慈悲なチャーハン」です
http://d.hatena.ne.jp/yasuhallabo/20130408/1365425945
懐かしいw

DQ4とDQ5のバトル曲からDeepLeaningを使って楽曲を生成してみた

DQ4DQ5のバトル曲からDeepLeaningを使って楽曲を生成してみました(*´Д`*)ノシシ


参考サイトはこちら↓
https://github.com/PyDataOkinawa/meetup017
サイトの内容は、来週(2016/09/17)行われるPyData.Okinawa #17 の準備アンド予習です(`・ω・´)


学習に使用したのは
1.DQ4のバトル曲
2.DQ4のラスボスバトル曲
3.DQ5のバトル曲
midiデータは約17年前に趣味で集めていたmidiデータ(耳コピされたもの)なので配布はご勘弁を。


できたのはこれ↓
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 01
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_004222_1.mid
22秒より後がそれっぽい、かなw(*´Д`*)


・とりあえず何の調整も行わず、トレーニングデータも少ないので学習させるには難しかった気がしますねー(・ω・)
1と3はイントロからバトルっぽい曲なのですが、2は緩やかなペースで入る曲なので、ちょっと規則性を見出すのは難しいかと。


・序盤の音が少なく、音が拾えていない可能性はありそう
 ⇒ midiデータのため、わりと互換性がない事が多いので全部カバーするのは大変だと思う。
  元々学習データがWindows上で作られたデータのためWindowsで鳴らすとわりと原曲に近いのだが、
  Macで再生すると妙に音が外れることがある。


・楽器がピアノに全部まとめられてしまっている。
 ⇒ 元データはフルート、オーボエクラリネット、トランペット、トロンボーン、チューバ、ハープと
  いろいろな楽器が使われているので、パートごとに学習できるようになったらもっとそれっぽく学習できるかも
  しれない。


このあとPyData.Okinawaのオーガナイザーの大塚さんから、generate_melodies.shの以下の行をコメントアウトするとランダムで生成されると聞いたので、早速やってみました。

--primer_midi=${PRIMER_PATH}



デフォルトだと5種類出力されたので、似通ったものを省いて何個かUPしました。
出来たデータ2
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 02
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_021307_2.mid
イントロからずっとデスピサロっぽい曲になりました(*´Д`*)
似たようなメロディの繰り返しに聞こえますが、ゲームはそういう曲が多いですし、途中から少し調子が変わったりして、こんなところも学習しているんだなー、と関心しました(*´Д`*)
デスピサロっぽい」というのが雰囲気だけで、完全に一致するものかというとそうでもなく、聴き比べてみると全く別ものなのが面白いです。


出来たデータ3
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 03
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_021307_4.mid
テンポの遅い部分だけ学習したようなデータになっています。序盤は良くわかんない感じですが、20秒すぎくらいからちょっとテンポが速くなるパートがあります。
終盤に、またテンポの遅いメロディになっていますが、ちょっと不気味な調子になっており、デスピサロの曲調をちょっと学習したのかな?と思いました。


出来たデータ4
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 04
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_021307_5.mid
イントロが高い音程から低い音程になっていくDQ5のイントロに近いように聞こえます。だがちょっと長いw
DQ4のバトル曲のイントロが同じように低い音程になっていくのと、ちょっと長いので、両方混ぜたような感じですかね。
イントロが終わると今度はデスピサロっぽい曲調にw カオスw


いやぁ〜、ディープラーニング面白いわ〜w
長さも曲調も違うデータを突っ込んだだけで、それっぽいまったく違うデータをあっという間に作るなんて凄すぎますね。
技術が進めばもっと本物っぽくなることでしょう。


それにしても、ディープラーニングで生成した楽曲の著作権ってどうなるんでしょうかねw(・ω・)
著作権やばそうだったら消しますw

ソフトバンク、ARM買収のメリット

ソフトバンク、英ARMを3.3兆円で買収 正式発表(追記あり
http://www.itmedia.co.jp/news/articles/1607/18/news031.html
さすがにソフトバンク系メディアであるITMediaは少し控えめな記事ですね。
私は投資家的な見方はできないので、あくまで1人の半導体好きとして感じたことを書いてみたいと思います。


単純に、今回の買収はApple社が自社でCPUを作り始めたのと同様に、やがて一般化する市場にデバイスを安価でユーザーへ届けるための施策ではないかと思いました。
つまり、ロボットやDeepLearning用のプロセッサです。
ARMを買収したということは、アーキテクチャルライセンスを受けている企業(AppleやQualcommm、NVIDIAなど)のARM関連の情報を入手できるようになります。
そしてそれらの企業が今後ARMベースのDeepLearing用プロセッサなどを開発した場合、その情報をいち早く入手し、汎化したコアIPを独自に開発することが可能になります。GPUのMaliのように。


急いで独自開発にこだわる必要はないので、初期バージョンではできの良い他社製プロセッサを使い、ある程度需要を把握できたらこれまでARMがやってきたようにコスパの良い製品をデザインすることも可能です。他社製プロセッサの評価もこれまでより一足早くできるようになるので、メリットは大きいと思います。
そして情報が手に入るということは、ある程度サービス面での戦略も見えてくるということです。
Appleが始めないと普及しない」とまで言われ、IoTやスマホ市場に新しいチャレンジをし続けるApple社や、パートナーが非常に多いQualcomm社の情報が半導体レベルで見れるのは大きなメリットですし、もし特徴的な機能が半導体レベルで見つかれば、不要な競合を回避できるはずです。


ロボットはペッパーのような大型のものではなく、そのうち小型化して自動的にコンセントに装着されるようなものが普及すると仮定した場合、ハード代の大きな部分をCPUが占めると予測できます。そしてCPUを独自開発した場合に大きいのはソフトウェアや製品デザインとの融合が素早く、効率的に開発出来ることですね。AppleiPhone5sでセンサー用のコアを独自開発し、GPS使用時の消費電力が劇的に下がったことは記憶に新しいところですが、その後Appleはコスト削減を進めるため、独自開発したコアをA9プロセッサ内に統合しました。某ゲーム機がGPUを統合しようとしたときにGPU製造業者と契約でもつれてしまい、結局コストダウンに失敗したように、こうした戦略は垂直統合型でないとスピード感を持って進めることはなかなか難しいのです。


また、ARMを買収したことによってアーキテクトの囲い込みも容易になります。アーキテクトの囲い込みは世界に向けてデバイスを販売したい企業にとっては、とても重要な課題のひとつです。半導体の微細化が滞る中、性能を上げようとメモリやロジックを3D化したり、STT-RAMなど新デバイスの統合でこれまでとは全く異なる歩留まり問題に直面するなど、半導体製造はますます複雑化しています。一方でIoTによって世界中の身近な製品にCPUが組み込まれることで市場は急激に多様化しており、製造の難しさ、需要の多様化の両面でアーキテクトの果たす役割はこれまでよりもずっと大きく、重要になっています。


さらに現在Qualcommが行っているパッケージデザインの分野を、最近TSMCとの協業を進めサーバ市場にも切り込みたいARMと、モバイル向けは元よりデータセンターの会社をいくつも持ち、長年の通信業者であるソフトバンクが手を組んで行い、新たなシナジー効果を生むことは、垂直統合の面でも、水平分業の形でも十分可能と思われます。
垂直統合はもちろんグループ内での利用とグループ内で開発したパッケージの販売を指しますが、これまで同様ARM社がライセンスを販売することで、パートナーとの協業を継続し、水平分業することも可能だと思います。
ただし、垂直統合は目が出るまで4年は掛かるでしょうけどね。


そして垂直統合と水平分業を両方促進するには、サービスを持たないARM社だけでは非常に難しいです。現にGoogle社はTPUを独自開発し深層学習のシステムを自社サービスに組み込んで活用しています。この深層学習のシステムをGoogle社がサービス化して公開し、一般ユーザーが利用可能となれば、今後ARMにとって競合となることは明らかです。このM&AはARM社にとってもリスク回避のために非常にメリットがあると言えます。


そしてこのM&Aですが、国内の企業ではおそらくソフトバンクにしかできないM&Aです。昔から国内海外問わずM&Aを繰り返し、無駄だの高すぎるだの言われながらもコンピュータ雑誌や展示会など多種多様な業種と連携してきたネットワークがあるからこそ、お互いを理解しあって成立したM&Aだと思います。(たぶんね)


と、こんな感じで一人の半導体好きとしては、今回のM&Aは非常にわかりやすいメリットがあると感じています。
(ここまで読んでいただきありがとうございました。感謝!)