はじめに
pメソッドはデバッグ用によく使われるメソッドです。どのように表示されるのかメモしておきます。
文字列出力について
文字列出力はputs,print,pの3つがrubyでは使われます。
print,putsメソッドの違い
putsとprintの違いは改行があるかどうか(putsは改行あり)ということになります。
> print hello > print world helloworld
※改行されません
puts
> puts hello > puts world hello world
※改行されます
inspectメソッドとは
オブジェクトの形式を表現して表示してくれるメソッドです。
> "hello world".inspect "hello world"
参考:
http://docs.ruby-lang.org/ja/1.9.3/method/Object/i/inspect.html
pメソッドとは
pメソッドはputsとinspectの機能を併せ持ったメソッドです。
> p hello > p world "hello" "world"
はじめに
3/17発表GooglePlay仕様変更について、開発者が関わることについてメモしておきます。
特に審査がIOS同様になるとのことで、よりガイドラインに準拠したアプリ作成が必要になりそうです。
アダルトアプリなどは全て今後IOS同様に削除されることになりますね。。
GoogleDeveloperBlogの記事元:
http://android-developers.blogspot.jp/2015/03/creating-better-user-experiences-on.html
公式ポリシーについて
Google Play デベロッパー プログラム ポリシー:
https://play.google.com/about/developer-content-policy.html
Google Play ビジネスおよびプログラム ポリシー:
https://play.google.com/about/android-developer-policies.html
Google Play デベロッパー販売 / 配布契約書:
https://play.google.com/about/developer-distribution-agreement.html
※常に最新情報に更新されているため、こちら参考にするよ良いです
新レーティングシステムについて
5月より新レーティングシステムが採用され、それまでは既存のレーティングが使われます。
デベロッパーコンソールにログインし、アンケートへの回答が必須になり、それによりレーティングが決まります。
アンケートが未実施の場合「レーティングなし」と表示され、レーティング対象外のユーザからアクセスできないなどがあるようです。
アプリとゲームのコンテンツ レーティング:
https://support.google.com/googleplay/android-developer/answer/188189?hl=ja
5月以降:新規アプリの公開と既存アプリのアップデートについて
新規でアプリをマーケットリリースする場合や、既にマーケットにアップされている既存アプリをアップデートする場合は、公開前にアンケートが必須で行われ、何れかのレーティングが設定されます。
5月以降:既存アプリについて
既存アプリはそのまま何もしない状態であれば自動でレーティングは「レーティングなし」となります。
特にこのままでもアプリ削除対象などにはなりません。ただ「レーティングなし」の場合、レーティング対象外のユーザからはアプリがブロック状態となるため、レーティングは設定したほうが良いようです。
この場合は、アップロードなど行わなければとくにアプリ削除などにはなりません。
アプリ審査実施について
iosアプリ同様に、人の目が入る審査が加わると発表しています。これは怖いですね。
元々Androidもプログラムポリシーは記載されていましたが、厳密な審査がなかったため、違反していてもアプリのリジェクトやアカウント削除などはほとんど無かった状態でした。
※2014年4月にアダルトコンテンツがあるアプリが一斉削除されたようですが。
審査時間は今までと変わらず数時間で終わる審査ではあるようですので、
審査の厳しさも審査時間からして、露骨なガイドライン違反のみ指摘される率が高いのかと思います。
ただポリシーに指定されている内容は今まで以上によく確認したほうがよいです。
特にアダルトコンテンツを含むアプリは、IOS同様に全て排除されるのではないかと思います。
Google Play デベロッパー プログラム ポリシー:
https://play.google.com/about/developer-content-policy.html
Googleによるアプリ削除について
Googleの削除に対する内容について記載がありました。
抜粋:
7.2 Google による削除: Google は、対象製品またはその内容を監視する義務を負うものでもありません。 しかし、対象製品もしくはその一部またはデベロッパーのブランド表示が以下のいずれかに該当することをデベロッパーから通知され、 またはその他の形で知り、かつ自身の単独の裁量においてそのように判断した場合、Google は、自身の単独の裁量において対象製品を ストアから削除する、または対象製品の分類を変更することができます。(a)第三者の知的財産権またはその他の権利を侵害している 場合。(b)適用される法律に違反している、または差し止め命令の対象となっている場合。(c)ポルノ、わいせつ、またはその他 Google のホスティング ポリシーもしくはその他の利用規約(Google が自身の単独の裁量においていつでも更新できる)に違反するも のである場合。(d)デベロッパーによって不適切な形で販売 / 配布されている場合。(e)Google または認定携帯通信会社に何らか の責任を生じさせるおそれがある場合。(f)ウイルスを含んでいる、またはマルウェアもしくはスパイウェアである、または Google もしくは認定携帯通信会社のネットワークに悪影響を及ぼすものである、と Google が判断した場合。(g)本契約またはデベロッパー プログラム ポリシーの規定に違反している場合。(h)対象製品の表示が Google サーバーの信頼性に影響を及ぼしている場合(ユー ザーが当該コンテンツにアクセスできない、またはその他問題が発生するなど)。Google は、自身の単独の裁量において、任意のデベ ロッパーによるストアの使用を停止または禁止する権利を留保します。対象製品にユーザーの端末やデータに深刻な損害を与える可能 性のある要素が含まれている場合、Google は自由裁量により、対象製品を無効にしたり、インストール済みの端末から対象製品を削 除したりする場合があります。デベロッパーが、ストアまたは Android プラットフォームに関連する機密保持契約またはその他の契 約の規約に実質的に違反した場合、Google は対象製品の配布を一時停止または終了する場合があります。 Google は、端末メーカーおよび認定携帯通信会社との間で、ストアのためのストア ソフトウェア クライアント アプリケーションを 対象端末に組み込むための販売契約を締結します。これらの販売契約において、端末メーカーまたは認定携帯通信会社の利用規約に違 反している対象製品を強制的に削除することが義務付けられる場合があります。 デベロッパーの対象製品に欠陥または犯罪性がある、他者の知的財産権を侵害している、名誉毀損、第三者のパブリシティ権または プライバシー権を侵害している、または関係法令を遵守していないために強制的に削除され、エンドユーザーが当該対象製品を取り下げ から遡って 1 年以内に購入している場合、(ⅰ)デベロッパーは受領した金額の全額と関連する費用(例: チャージバックおよび支払い 手数料)を Google に払い戻すものとします。(ⅱ)Google は、自身の単独の裁量において、将来の売上金額から上記(ⅰ)の金額を差 し引くことができます。
https://play.google.com/about/developer-distribution-agreement.html
アダルトコンテンツについて ※審査対象なので要チェック
アダルト関連は特に注意が必要なので要チェックですね
抜粋
露骨な性表現を含むコンテンツ: ポルノを含むアプリやポルノを助長するアプリは禁止します。 これには、性的な表現、または露骨な描写を含むコンテンツ、アイコン、タイトル、説明が含まれます。Google では、 児童の性的虐待画像に対し、ゼロ トレランス ポリシーを採用しています。児童の性的虐待画像コンテンツの使用が判明した場合、 Google は関係機関に報告し、このコンテンツの販売/配布に関与している者の Google アカウントを削除します。
https://play.google.com/about/developer-content-policy.html
セックスとヌード:
https://support.google.com/googleplay/android-developer/answer/4450958
はじめに
Vagrantの仮想マシン上でrails serverで実行した場合のローカルPCからアクセスする方法をメモしておきます。
Vagrantの仮想マシンにローカルPCよりブラウザアクセスする方法
vagrantの設定ファイルVagrantfileを修正し、ipアドレスの設定、ポートの設定を行います。
ポートはrails仕様で3000番ポートが使用されるため、仮想環境の3000番ポートをローカルPCの3000番ポートに転送(ポートフォワード)を行います。
手順1「IPアドレスの設定」
Vagrantfileの下記行のコメントアウトを外します。
ここで指定するipアドレスがローカルPCからアクセスするIPアドレスになります。
# config.vm.network :private_network, ip: "192.168.33.10" config.vm.network :private_network, ip: "192.168.33.10"
手順2「ポートフォワードの設定」
Vagrantfileの下記行のコメントアウトを外し、ポート設定を行います。
vagarant仮想環境のポート3000番をローカルPCのポート3000番にポートフォワードします
# config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network :"forwarded_port", guest: 3000, host: 3000
手順3「3000番ポートをファイアウォールより開放」
iptablesを無効にしている場合は全ポート開放されているため個別の開放は不要です。
下記よりファイアウォールを切る事ができます
$ sudo service iptables stop $ sudo chkconfig iptables off
個別に3000番ポートのみ開放する場合はiptablesファイルを編集します。
$ sudo vi /etc/sysconfig/iptables
追加記載:
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
手順4「Vagrantfileの設定反映」
Vagrant up していない場合:
$ vagrant up
既にVagrant up している場合:
$ vagrant reload
手順5「rails serverでプロジェクトの起動」
vagrant仮想マシンへssh接続
$ vagrant ssh
Railsプロジェクトのディレクトリ直下でrails server コマンド実行
$ rails server
※ rails s と省略してよし
ローカルPCよりアクセスの確認
ブラウザURI指定
http://192.168.33.10:3000/ または http://localhost:3000/
「Welcome aboard」が表示されればOKです
はじめに
scaffoldコマンドを実行したあとに元に戻す方法として、作成したファイルを手動削除するか、gitなどのバージョン管理で元に戻すことができますが、destroyコマンドで戻せることを知ったのでメモしておきます。
generateコマンドの戻し方
rails generate controllerコマンドを元に戻す
controller自動作成の実行
$ rails generate controller [コントローラ名] [アクション名] ...
controller自動作成のキャンセル
$ rails destory controller [コントローラ名] [アクション名] ...
rails generate modelコマンドを元に戻す
model自動作成の実行
$ rails generate model [モデル名] [フィールド名:データ型] ...
model自動作成のキャンセル
$ rails destoroy model [モデル名]
rails generate scaffoldコマンドを元に戻す
scaffoldの実行
$ rails generate scaffold [モデル名] [フィールド名:データ型] ...
scaffoldのキャンセル
$ rails destoroy scaffold [モデル名]
はじめに
ssh認証でサーバにログインする場合にsshのconfigを設定しておくと楽になるのでやり方をメモしておきます。
設定しておくと、秘密鍵の指定や接続先ホスト名の指定を簡単にすることができます。
~/.ssh/configの使い方
configのフォーマットについて
~/.ssh/configファイルのフォーマット:
Host [ホスト名] HostName [リモートサーバIP] Port [ポート番号] User [ユーザ名] IdentityFile [秘密鍵のpath]
通常のssh接続
通常時のサーバ接続:
$ ssh [リモートサーバIP]
config設定をした場合のssh接続
configファイルの作成:
$ vim ~/.ssh/config $ chmod 600 ~/.ssh/config
configファイル編集:
Host hoge HostName [リモートサーバIP]
※hogeという名前でエイリアスを設定
config設定時のサーバ接続:
$ ssh hoge
はじめに
ssh認証で公開鍵をサーバに保存する場合に、scpコマンドでファイルをサーバに転送していましたが、もっと便利なコマンドを知ったので忘れないようにメモしておきます。
ssh-keygenについてはこちら:
[MAC]ssh-keygenコマンドで秘密鍵・公開鍵生成
sshで公開鍵をサーバに転送する
ssh-keygenにより作成した公開鍵はssh-copy-idコマンド(shell)を利用する事で簡単にできます。
ssh-copy-idの使い方
~/.ssh/id_rsa.pubの公開鍵をサーバに転送する場合:
$ ssh-copy-id [ユーザID]@[リモートサーバ]
~/.ssh/id_rsa.pub以外の公開鍵をサーバに転送する場合
$ ssh-copy-id -i [公開鍵のpath] [ユーザID]@[リモートサーバ]
ssh-copy-id実行時にエラー「ERROR: No identities found」がでる場合
エラーの原因は対象サーバに「~/.ssh/authorized_keys」が存在しない場合です。
そのため、サーバにauthorized_keysを作成します。
$ touch ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
CentOSへ最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築するときのメモ
Rubyのインストールはrbenvを使用する。
rbenvはrubyのバージョン間の切り替えが行えるツール。
現時点でRubyの2.2.1が一番最新で安定版となっている。
※似たものでrvmがあるがrbenvのほうが簡単
参考:http://passingloop.tumblr.com/post/10512902196/difference-between-rbenv-and-rvm
Ruby環境(rbenv)を構築
Gitのインストール
$ sudo yum -y install git
rbenvインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
ruby-buildのインストール ※Rubyをインストールするためのrbenvのプラグイン
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenvを使用できるようにするためのPATH設定
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
設定の反映
$ source ~/.bashrc
設定の確認
$ type -t rbenv function
※functionと表示されればOK
Rubyインストール ※rbenvを使用
$ rbenv install 2.2.1
※rbenvでインストールできるlistは[rbenv install -l]コマンドで確認できる
Rubyインストールでエラー
BUILD FAILED (CentOS release 6.4 (Final) using ruby-build 20150303)
2.2.1のインストールでエラーとなったので改善
$ sudo yum -y install libffi-devel
参考:http://shiro-16.hatenablog.com/entry/2014/12/26/003810
再度Rubyインストール
$ rbenv install 2.2.1 Downloading ruby-2.2.1.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28 Installing ruby-2.2.1... Installed ruby-2.2.1 to /home/vagrant/.rbenv/versions/2.2.1
※これでOK
インストールバージョンをデフォルトで使用するように設定
$ rbenv global 2.2.1
バージョン確認
$ ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
※これでOK
Rails環境を構築
Railsインストール
$ gem install rails -v 4.1.1
バージョン確認
$ rails -v Rails 4.1.1
※これでOK
Vagrant(CentOS) + VirtualBoxでRailsの開発環境を構築するときのメモ
Vagrantは、仮想化マシン(VirtualBox,VM etc)の自動作成・管理ツール。
今回はVirtualBoxでCentOSを使用し、Railsの環境を構築しておく。
一度テンプレート化しておくと、次回以降に同様の環境を作成するのが楽になる。
公式サイト:
Vagrant
https://www.vagrantup.com/
VirtualBox
https://www.virtualbox.org/
Vagrant + VirtualBoxダウンロード・インストール
OSにあわせて公式サイトよりダウンロードを行う
現在2015/3/2時点でCentOS[7.0],Vagrant[1.7.3],VirtualBox[4.4.2]のバージョンが最新となっている
Vagrant:
https://www.vagrantup.com/downloads.html
VirtualBox:
https://www.virtualbox.org/wiki/Downloads
ダウンロードしたdmgやmsiファイルからインストール作業を行う
※ウィザードに従いそのままインストールで良い
Vagrantのバージョン確認
バージョン確認:
$ vagrant -v Vagrant version 1.7.3
※インストールバージョンが表示されればインストールOK
Box(CentOS)のテンプレートを取得
Boxリンクが集まっている有名サイト:
http://www.vagrantbox.es/
https://vagrantcloud.com/boxes/search
※今回はCentOS7の最新で仮想ソフトにVirtualBoxを使用しているBoxを選択する:
https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
Boxの追加コマンド:
$ vagrant box add centos https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box Downloading or copying the box... Extracting box... Successfully added box 'centos' with provider 'virtualbox'!
※centos部は任意のboxの名前
「Successfully added box ‘centos’ with provider ‘virtualbox’!」のメッセージが表示されればOK
Boxの確認:
$ vagrant box list centos (virtualbox)
Box(CentOS)のテンプレートから仮想マシンを作成
仮想マシン作成のディレクトリを作成し移動
$ mkdir RailsEnv $ cd RailsEnv
仮想マシンを作成
$ vagrant init centos
※centosはboxに任意につけておいた名前を指定
仮想マシンの起動
仮想マシンの起動
$ vagrant vp
※Vagrantfileの設定情報を読み込み起動する
仮想環境のアクセス(設定)
仮想環境にssh接続を行う
$ vagrant ssh
仮想環境の設定・ツールインストールなど
ファイアーウォールを切っておく ※ローカル環境のためセキュリティは無視
$ sudo service iptables stop $ sudo chkconfig iptables off
vimをインストール
$ sudo yum -y install vim
仮想マシンへブラウザからアクセスするための接続設定 ※Vagrantfileの編集
仮想マシンを抜ける
$ exit
Vagrantfileの編集
$ vim Vagrantfile
ネットワークアクセスのconfigのコメントアウトを解除する(#を消す)
デフォルト設定されている「192.168.33.10」でアクセスができるようになる
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network :private_network, ip: "192.168.33.10"
※ 仮想マシンの/var/www/htmlディレクトリへアクセスされる
Vagrantfileの設定反映
$ vagrant reload
仮想マシンの「/var/www/htmlディレクトリ」とローカルの「仮想マシンディレクトリ」のリンク設定
シンボリックリンクを設置
$ vagrant ssh $ ln -s /vagrant /var/www/html/
※ Vagrantでは仮想マシンの「/vagrantディレクトリ」はローカルの「仮想マシンディレクトリ」とリンクしている
Ruby/Rails環境を構築
以前の記事「最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築する」の通り環境を構築する
ここまでで構築完了!
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ