しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

その他

カイ二乗検定とは何かを調べてみる

統計について調べていたら「カイ二乗検定」という単語が出てきたので調査。 カイ二乗検定とは カイ二乗検定 - Wikipedia 帰無仮説が正しければ検定統計量が漸近的にカイ二乗分布に従うような統計学的検定法の総称である。次のようなものを含む。 Wikipediaに…

フォルダ以下の全プロジェクトでgit pullする

下のように、フォルダ以下に複数プロジェクトがありそれらでgit pullしたい時のtipsです。 コマンドは下の通りです。 ls | xargs -I{} git -C {} pull origin master xargs -I{}でlsの結果を{}と書いた箇所で使えます。 git -Cはフォルダ指定でgitコマンドを…

Processingで電子アート入門

Processingという電子アート用の開発環境を試してみました。 Processing.org インストール 下からアプリをダウンロードします。 Download \ Processing.org 実装 円を描画 Processingを起動すると以下のような画面になっています。 ここにコードを書いていき…

シンプルなRESTClient、insomniaを試してみる

insomniaというRESTClientを試してみました。 insomnia.rest アプリはこちらのページからダウンロードしました。 insomnia.rest 起動後画面は下のようなものです。 このようにURL指定でリクエストを送る事ができます。 ベーシック認証・ヘッダー・パラメータ…

DIコンテナとは何かを調べてみた

DIコンテナとは何か調べてみました。 サンプルはSwiftで書かれています。 DIとは DIとはDependency injectionの略で、デザインパターンの一種です。 日本語では言うと依存性の注入などと呼ばれる事が多いです。 このデザインパターンは複数の関連するオブジ…

MacにDjangoをインストールしてサーバーを動かす所まで試してみた

Djangoをインストールしてサーバーを動かすところやってみました。 まずはPythonのパッケージ管理ライブラリであるpipをインストールします。 easy_install pip 次はpipを使ってdjangoをインストールします。 pip install django インストールが終わったので…

Macでの.bash_profileと.bashrcの違いを調べる

両者の違いを調べてみました。 それぞれに以下のような記述をして動作を確認してみました。 .bashrc echo ".bashrc" .bash_profile echo ".bash_profile" 新規タブや新規ウインドウを開いた時はbash_profileだけ出力されました。 逆にbashコマンドを実行した…

GoogleFormで簡単にフォームを作成してみる

GoogleFormを試してみました。 まずは以下のサイトからフォームを作成します。 www.google.com このように質問をどんどん追加していく事で作っていきます。 ラジオボタン以外の回答方式を作る事もできます。 作り終わったら右上の送信ボタンから質問を送信し…

Macでディレクトリ一覧の容量を表示する

以下コマンドで今の場所のフォルダの容量一覧を表示できます。 du -s * hオプションを付ければ適切な単位を付与してくれて見やすいです。 du -sh *

agvtoolでコマンドラインからビルドバージョンを操作する

agvtoolでXcodeプロジェクトのビルド番号やアプリバージョンを操作してみようと思います。 what-versionオプションでビルド番号を取得できます。 agvtool what-version next-versionコマンドでビルド番号をインクリメントできます。 agvtool next-version -a…

Sketchでロングシャドウを付けてみる

Sketchでオブジェクトにロングシャドウを付ける方法です。 まずは影を付ける対象の他に1つ四角のオブジェクトを作ります。 Rotate機能を使って片方の角度を45度にします。 その後は幅と長さを調整して影のようにします。 片方だけ長さが足りない時などはEdit…

Sketch Toolboxでプラグインを簡単管理

Sketchのプラグインを簡単に管理できるSketch Toolboxというアプリを使ってみました。 インストールは以下より行えます。 Sketch Toolbox - A super simple plugin manager for Sketch 起動したら以下の画面になります。 ここでプラグインの検索/インストー…

pythonのパッケージ管理システム、pipを試してみた

pipというpythonのパッケージ管理システムを試してみました。 pip listコマンドで今入れているパッケージ一覧が見れます。 pip list インストール可能なパッケージはsearchコマンドで見る事ができます。 pip search tensor インストール可能なパッケージはpy…

コールバックはどんな時に使うべきか考えてみた

最近コールバックで少し難解なコードに遭遇したのでそのことを書いてみます。 遭遇したのは下のようなコードです。 execを呼び出すと計算されて、その結果をexecutedに渡すというもの。 class Calculator { var executed: (Int -> Void)? func exec() { // …

国の入札情報を取得APIがあったので試してみた

APIについて調べていたら国・独立行政法人、地方公共団体等の入札情報を取得APIを発見したので触ってみました。 www.kkj.go.jp ドキュメントは以下URLです。 http://www.kkj.go.jp/doc/ja/api_guide.pdf 入札情報を取得する http://www.kkj.go.jp/api/にパラ…

Octopressでブログを作ってみる

OctopressというRuby版のWordpressのようなものを試してみました。 マークダウンのサポート、DBを使わないのでGitで全てバージョン管理できるいうメリットがあります。 Octopress Documentation - Octopress セットアップ セットアップは以下の通りです。 gi…

HubotでSlack用のBotを作る

まずは必要なツールをインストールします。 brew install npm npm install -g hubot coffee-script yo generator-hubot 次に以下コマンドでプロジェクトを作成します。 質問は全てデフォルトを選択(Enter押下)しました。 mkdir -p test_bot cd test_bot yo h…

Fluxアーキテクチャについて調べてみた

Fluxアーキテクチャについて調べてみました。 Fluxアーキテクチャとは Githubの画像にあるようなアーキテクチャの事を指します。 長所としては、データの流れを1方向にする事で複雑さをなくしているところです。 github.com それぞれの概念について記述して…

青空文庫のソースコードを読んでみる

著作権切れの本を読める青空文庫ですが、実はサイトのコード及び本のデータはGithubに上がっています。 github.com index.htmlがサイトTOPのソースコードになります。 書籍のデータはcards以下のfilesフォルダの中に入っているようです。

Heroku+Hubot+Slackで「ERROR Not enough parameters provided. I need a token, rooms and account」エラーが出る時の対処法

Procfileのコマンドが間違ってる可能性があります。 Procfileファイルのコマンドをbin/hubot -a campfireからbin/hubot -a slackに直してください。

GoogleAnalyticsのユーザーエクスプローラーを見てみる

最近出たばかりのユーザーエクスプローラーというGoogleAnalyticsの機能を使ってみました。 PCサイト WEBサイトのユーザーエクスプローラーにはこのようにユーザー毎のセッション数や直帰率を見る事ができます。 個別のページに行くと、このユーザーがどうい…

Pub/Subとは何かを調べてみた

Pub/Subとは何かを調べてみました。 Pub/Subとは 非同期メッセージングパラダイムの一種であり、メッセージの送信者(出版側)が特定の受信者(購読側)を想定せずにメッセージを送るようプログラムされたものである。 Wikipediaによると上記の通りです。 Pu…

A/Bテストがうまくいくコツを調べていく

最近はA/Bテストを実施しているのですがなかなか成果が出てくれないのでコツや手法を調べてみました。 A/Aテストという手法 A/Aテストと言って、両方共同じ表示でA/Bテストをする方法があります。 これはA/Bテスト自体が正しく動いているかのチェックに使う…

GoogleAnalyticsでユーザーがどの程度 再訪問するかを調べる

「リピートの回数や間隔」という機能を使うと再訪問しているユーザーの割合を見る事ができます。 メニューとしては"ユーザー" → "行動" → "リピートの回数や間隔"になります。 左上メニューの"セッションの間隔"を選ぶとどのくらいの頻度でさい訪問している…

GoogleAnalyticsでどのページから来たかで絞り込む

GoogleAnalyticsでは/hogeと言った特定パスへのアクセス数を取得する事ができます。 更に一歩進んで/fugaから/hogeに来たユーザーの取得法を書いていきます。 行動のサマリーを選択します。 画面右下の"レポート全体を見る"を選びます。 以下のように一覧が…

囲碁TOPプロに勝利したAlphaGoのアルゴリズムを調べてみる

本日Googleの作った囲碁プログラムであるAlphaGoが囲碁のTOPプロであるイ・セドル氏に勝利しました。 5番勝負なのでまだまだこれからですがついにコンピュータがプロに勝つ時代になったかと思うと感慨深いです。 japanese.engadget.com 今日はそのAlphaGoの…

Ruby on RailsライクなSwiftフレームワーク、Swiftonを試してみる

SwiftonというSwiftのWebフレームワークを試してみました。 なんでもRuby on Railsを参考に作られたとかでかなり期待できそうです。 github.com サンプルを動かす こちらからサンプルプロジェクトをcloneします。 GitHub - necolt/Swifton-TodoApp: TodoApp …

KituraというSwiftのWebフレームワークを使ってみる

KituraというWebフレームワークでSwiftを動かしてみようと思います。 このフレームワークはIBMが作っているようで、同社のクラウドサービスであるBluemixというPaasの上で動かす事ができます。 github.com サンプルを動かしてみる 下コマンドで関連ソフトを…

Google Analyticsでどのページで離脱したかを調べる

行動 → 離脱ページから見る事ができます。 PV・離脱率などを見る事ができます。 各パラメータでソートもする事ができます。 ただし離脱率が低い順や高い順で並べると1PVしかないページが上に来てしまいます。 そういった時はアドバンスフィルタでPVに関する…

Itamaeで自宅と会社のMacに同じbrewのアプリをインストールする

最近はItamaeを使って自宅と会社に同じ環境を構築する試みをしています。 その一環としてbrewのアプリをItamaeでインストールしてみました。 GitHub - shimesaba9/env [ 'argon/mas/mas', # コマンドラインでAppstoreからインストールするツール 'wget', ].e…

Swift Package Managerのアプリを作る時はswift build --initが便利そう

今日知ったのですがSwift Package Managerのプロジェクトを作る時はswift build --initコマンドで初期化すると良さそうです。 コマンドを打つと以下のファイルやフォルダを作ってくれます。 Package.swift .gitignore Sources/ Sources/main.swift Tests/ .g…

Vaporを使ってSwiftサーバーを立ててみる

こちらの記事を参考にSwiftサーバーを作ってみました。 qiita.com 準備 Swift Package Managerを使えるようにします。 こちらのページのLatest Development Snapshotsをインストール後、/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/へ…

AjaxZip3を使って郵便番号から住所を取得する

AjaxZip3というJSライブラリを使って郵便番号から住所を取得してみようと思います。 こちらのライブラリはyubinbangoと同じ作者の方が作っているようです。 Githubではyubinbangoの方が新しくて推奨されていました。 郵便番号を入れると住所を取得するJSライ…

Google Tag AssistantでGoogle Analyticsのデバッグをする

Google Analyticsは「本当にサーバーに送られているのか分かりにくい」「送られているとしても即時反映されないので確認に時間がかかる」という問題があります。 そこでGoogleAnalyticsが動いているか確認できるGoogle Tag Assistantという拡張機能を試して…

郵便番号を入れると住所を取得するJSライブラリ、yubinbangoを使ってみる

yubinbangoというJSライブラリを使ってみました。 使い方は下の通りです、命名ルールに沿ってクラス名をつければ郵便番号を補完してくれるようになります。 <html> <head> <script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script> </head> <body> <form class="h-adr"> <span class="p-country-name" style="display:none;">Japan</span> </form></body></html>

NiftyのmBaasでデータを保存してみる

NiftyのmBaasを試してみました。 前準備 まずはNiftyのサイトで会員登録してアプリケーションを作成します。 ここで作ったApplicationKeyとClientKeyを後で使います。 mb.cloud.nifty.com インストール インストールはCocoaPodsを使って行います。 pod "NCMB…

Mac上でjpeg/png/gifの変換をする方法

ImageMagickを使うとコマンドで簡単にフォーマット変換ができます。 インストール brew install imagemagick 使い方 以下のコマンドで変換は完了です。 画像の種類は拡張子を見てうまく判断してくれるようです。 convert test.jpeg test.png 対応フォーマッ…

NiftyのmBaasで Cannot find interface declaration for 'NCMBGoogleUtils' エラーが出た時の対策

Niftyでタイトルのエラーに遭遇しました。 NCMBGoogleUtilsの宣言には下記のif文があったけどNCMBGoogleUtilsのカテゴリーであるNCMBGoogleUtils+Privateにはif文がなかったのが原因だったようです。 NCMBGoogleUtils+Privateの方にもif文を追加したら動くよ…

NiftyのmBaasで error: include of non-modular header inside framework module 'NCMB.NCMBURLConnection' エラーが出た時の対策

こちらのissueに上がっている現象です。 何やらモジュールの読み込み関連でエラーが出ている模様。 Podfileに `use_frameworks!` オプションを指定するとアプリケーションをビルド時にエラーが発生します。 · Issue #22 · NIFTYCloud-mbaas/ncmb_ios · GitHu…

Parseで無料のWEBサイトを作成する

アプリとの通信で有名なParseですが実はWEBサーバーも作る事ができます。 今日はその辺りのWEBホスティング機能を提供するCloud Codeについて書いてみます。 Cloud Codeの設定 まずはコマンドラインツールをインストールします。 curl -s https://www.parse.…

Parseを使ってiPhoneアプリでユーザー登録&ログインを実現する

クラウドサービスのParseを使って、簡単にiPhoneアプリの会員登録とログインを実現してみようと思います。 初期設定 先日書いた記事を参考にParse上にアプリケーションを作成してAppIdとClientKeyを取得します。 Parse.comを触ってみた - しめ鯖日記 取得し…

Atomエディタを使ってみる

Githubが作っているAtomエディタを使ってみました。 SublimeTextから乗り換えたのですが、今の所不自由なく使えています。 インストール アプリは公式サイトからダウンロードします。 atom.io コマンドラインから開く SublimeTextと同じようにコマンドライン…

ParseでデータのCRUD操作をする

昨日はParseを簡単に触ってみたので次はデータ操作をしてみようと思います。 llcc.hatenablog.com データの作成 データの作成は以下のように行います。 let testObject = PFObject(className: "TestObject") testObject["foo"] = "bar" testObject.saveInBac…

Parse.comを触ってみた

プッシュ通知やオンラインストレージを簡単に実装できるというParse.comを試してみました。 サーバーにデータを保存してみる まずはサイトの右上の会員登録ボタンから会員登録します。 アプリ名は適当なものにしました。 www.parse.com 最初は以下のような画…

YAGNIの精神でクラスの共通化をする

下記事を読んで思った事を書いてみます。 クラスはトップダウンよりボトムアップがいいと思う クラスの共通化は本当に必要になった時に行う 特に新規開発の初期段階では極力共通化はしないようにしています。 共通化をするのは開発も落ち着いてきて、利用す…

ドメインモデル貧血症を調べてみる

設計について調べていると時々出てくるドメインモデル貧血症について調べてみました。 ドメインモデル貧血症の処方箋 - まめログ ドメインモデル貧血症 - Strategic Choice こちらの記事が非常に参考になりました。 簡単に言うと中身がスカスカなモデルが大…

レイヤ化アーキテクチャとは何か調べてみる

ドメイン駆動設計について調べていく中でレイヤ化アーキテクチャと言う概念が出てきたので調べてみました。 レイヤ化アーキテクチャ 名前の通り、アプリケーションをレイヤ毎に分ける設計手法を指す言葉のようです。 MVCやMVP等もレイヤ化アーキテクチャの一…

ミニマックス法とは何かを調べる

ゲームのAIを作る時に出てくるミニマックス法について調べてみました。 ミニマックス法とは ミニマックス法 - Wikipedia ミニマックス法(minimax)は、想定される最大の損害が最小になるように決断を行う戦略のこと。 まずはWikipediaを読んでみます。 Wiki…

Swiftraを使ってMac上にSwiftサーバーを作ってみる

下記事を参考にSwiftとSwift Package Managerのインストールをします。 Swift Package Managerを使ってみる - しめ鯖日記 続けて下記事を見ながらSwiftraを動かしていきます。 SwiftでSinatraっぽくWebアプリケーションを書いてLinuxで動かす - Qiita まずは…

ドメインモデルとドメイン駆動開発とは何か調べてみた

ドメインモデルとは ドメインモデル(英: Domain model)は、システムに関わる様々な実体とそれらの関係を説明するシステムの概念モデルである。 ドメインモデルは、システムの鍵となる概念と用語を文書化するために作成される。 ドメインモデルでは、システ…