アトトック代表の開発ブログ

プログラミングのことや趣味のことなど書いてます。

カメラ持って自転車で!

撮影した写真など投稿していた「散歩写真ブログ」を久々に更新しました。

最近、ロードバイクを購入してあちこち行ってるので、タイトルも「カメラ持って自転車で!」に変更してしましました。

 

最近は、ロードバイクでカメラ持って神社巡りなんか始めました。

神社に参拝し御朱印をいただいて撮影って感じです。

 

Googleマップで作成中の御朱印をいただける神社マップ



アトトック

R言語 - CentosにRをインストール

RailsのアプリとRのプログラムを連携するためCentosにRをインストールしてみました。

Rをインストール

 $ sudo yum install R
 [sudo] password for kuru: 
 Loaded plugins: fastestmirror, security
 Setting up Install Process
 Determining fastest mirrors
       ・
       ・
       ・

R Studio Serverをインストール

https://www.rstudio.com/products/rstudio/download-server/

CentOSのバージョンごアーキテクチャの確認

$ cat /etc/redhat-release
CentOS release 6.6 (Final)
$ arch
x86_64
$ 

R Studio Serverをダウンロード

$ wget https://download2.rstudio.org/rstudio-server-rhel-1.1.442-x86_64.rpm
--2018-04-16 17:30:24--  https://download2.rstudio.org/rstudio-server-rhel-1.1.442-x86_64.rpm
Resolving download2.rstudio.org... 13.32.52.104, 13.32.52.17, 13.32.52.29, ...
Connecting to download2.rstudio.org|13.32.52.104|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45677252 (44M) [application/x-redhat-package-manager]
Saving to: `rstudio-server-rhel-1.1.442-x86_64.rpm'
       ・
       ・
       ・

R Studio Serverが起動しているか確認

$ sudo rstudio-server verify-installation
rstudio-server stop/waiting
rstudio-server start/running, process 21909

R Studio Serverにアクセスしてみる。

ブラウザでポート番号 8787でアクセスします。

http://xxx.xxx.xxx.xxx:8787

R Studioのログイン画面が表示されるのでログインする。 ※ログインのアカウントはサーバーのアカウント

ブラウザにR Studioの画面が表示されます。

Macが再起動を繰り返す現象

ウィルスバスター 無料体験版をインストール中にMacBookがが固まったので再起動すると再起動を繰り返す現象が発生した。 MacBookを閉じても再起動を繰り返す。

Shiftキーを押したまま起動するとセーフモードで起動するしたので、 その後、通常起動してみるが再起動を繰り返してしまう。

ウィルスバスターをインストール中にかたまったので、その辺が怪しいと考えてウィルスバスター関連のファイルを探すと /Library/Application Support/TrendMicroが存在したので 試しに/Library/Application Support/TrendMicroを削除し再起動してみると正常起動できた。

正常に起動できたので、ウィルスバスター をもう一度インストールしていると 勝手にMacが再起動してしまい、また再起動を繰り返す。

もう一度、セーフモードで起動して/Library/Application Support/TrendMicroを削除!

その後、通常起動させると正常に起動した。

ウィルスバスターやめた。

ウィルスバスターをインストールるするために他のアンチウィルスソフトを削除してしまったので またインストールしないと...

ActiveRecordのenum

ActiveRecordenumが便利なので最近よく使っています。
例えば、Spotモデルに下書き(draft)と公開(published)の状態をもつステータスを追加するとします。

Spotモデルにstatusカラムを追加するマイグレーションを作成

rails g migration add_status_to_spot status:integer

Spotモデルにenumを追加

class Spot < ApplicationRecord
  belongs_to :prefecture
  belongs_to :area

  has_many :spot_photos
  has_many :spot_galleries
  validates :title, presence: true
  validates :prefecture_id, presence: true
  validates :area_id, presence: true
  validates :latitude, numericality: true
  validates :longitude, numericality: true

  enum status: { draft: 0, published: 1}
end

statusの値をenumで定義します。
statusが0の場合はdraft、1の場合はpublishedにします。

statusの判定

rails consoleで動作を確認してみます。

$ rails c
Running via Spring preloader in process 67570
Loading development environment (Rails 5.0.5)
irb(main):001:0> spot = Spot.new
=> #<Spot id: nil, title: nil, prefecture_id: nil, address: nil, overview: nil, des
cription: nil, area_id: nil, created_at: nil, updated_at: nil, url: nil, title_kana
: nil, address_description: nil, latitude: nil, longitude: nil, category_id: nil, i
dentifier: nil, status: nil>
irb(main):002:0>

irb(main):003:0* spot.status = 0
=> 0
irb(main):004:0> spot.draft?
=> true
irb(main):005:0> spot.published?
=> false

この例では、soptのstatusに0を代入しています。
この場合、spot.draft? でstatusの値が0なのか、spot.published? でststusの値が1なのかを判定できるようになります。
ststusに0を代入しているので、spot.draft? はtrueになっています。

次にspot.statusに1を代入してみます。

irb(main):017:0* spot.status = 1
=> 1
irb(main):018:0> spot.draft?
=> false
irb(main):019:0> spot.published?
=> true

spot.draft?はfalseになり、spot.published?はtrueになります。
このようにstatusの状態を判定します。

statusのハッシュ

下記のように属性名の複数形でenumで定義したハッシュが取得できます。

irb(main):032:0* Spot.statuses
=> {"draft"=>0, "published"=>1}

statusは数値ではなく文字列を返す

Spotのstatusはintegerですが、下記のようにspot.statusは文字列を返します。

irb(main):034:0* spot.status = 0
=> 0
irb(main):035:0> spot.status
=> "draft"
irb(main):036:0> spot.status = 1
=> 1
irb(main):037:0> spot.status
=> "published"
irb(main):038:0> spot.status.class
=> String

enumで指定した値以外は設定できない

enumで定義した値以外を代入すると例外が発生します。

irb(main):039:0> spot.status = 2
ArgumentError: '2' is not a valid status

写真がおもしろい

最近、写真にハマってます。

高校の頃は写真部で20代の頃までいろいろ撮ってましたが、長い間、カメラから離れていました。

写真は撮っていましたが、手軽なこともありiPhoneで撮影することが多くなっていました。

昨年、RICOHのTHETAを購入し360°カメラにハマり、今年になってOLYMPUSのOM-Dを購入し出かける時はいつも持ち歩いています。

 

本日、荒川の土手から撮影した夕日

f:id:kurusaki:20171111233033j:image

f:id:kurusaki:20171111233129j:image

 

ランニング中にTHETAで撮影

f:id:kurusaki:20171111233235j:image

 

https://theta360.com/ja/

 

昨年、THETA用のアプリを開発しようと思い購入しましたが、今では撮影する方にハマってしまいました。

昨年、始めたアプリ開発は一時停止中ですが、360°も含め写真を使った自社プロダクトの企画も進めています。

公開はまだ先になりそうです。

 

しばらく自社プロダクトの開発は止まっていましたが、少しずつですが再開しています。

まず、手が回っていなかったTalkingBookシリーズなどのiOSアプリのバージョンアップ、10Yearsのウェブ版とiOSアプリのバージョンアップを進めています。

アトトックのプロダクト開発再開です。

コーポレートサイトもリニューアル中です。

http://atotok.co.jp

アトトックラボもリニューアルし開発ネタなど発信していきます。

 

また、いろいろ動き出してます。

 

あと、写真のこと勉強し直してます。

https://www.amazon.co.jp/dp/4844134213