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

プログラミングや会社のこと、写真、自転車のことなど書いてます。

デジタルチェキ SQUARE SQ10

最近、チェキで写真を撮りたくなって、デジタルチェキ SQUARE SQ10 を購入しました。 チェキはインスタントカメラで専用のフィルムに印刷できますが、 SQUARE SQ10は、デジタルカメラとしても使えるハイブリッドインスタントカメラです。 外箱 本体と付属品 …

Carthageでライブラリを管理する

今までXcodeのライブラリの管理はCocoaPodで管理していましたが、メインの言語をSwiftに変更するのに合わせてCarthageを使ってみます。 CarthageのQuick Startを参考に進めます。 前提条件 macOSにHomebrewがインストールされていること Carthageをインスト…

Visual Studio Codeでruby-debug-ideを使ってデバッグ

会社では開発メンバーそれぞれが好きなエディタを使ってRailsのアプリ開発を行なっています。 以前はAtomを使っていましたが、Atomにプラグインを入れすぎたからか重くなったので ここ1年くらいはVisual Studio Codeを使いデバッグはpryです。 Visual Studi…

RailsでLIKE句のキーワードをサニタイズする

RailsでLIKE句のキーワードをサニタイズする場合、sanitize_sql_likeヘルパーを使います。 下記のようにモデルにスコープを定義しLIKE句で検索してみます。 class Setting < ApplicationRecord scope :search, ->(keyword) { where('setting_key like ?', "%…

Railsのモデルのhas_manyに外部キーを指定する

Railsで開発しているとRailsの規約に乗っていればサクサクと開発できることが多いのですが、ときどきレールから外れないとしょうがない場合があります。 例えば別のシステムで開発したテーブルを利用する場合に、参照先のテーブルのIDがRailsの規約と合って…

Let’s EncryptでSSL証明書の更新作業から解放されたい

Let’s Encryptは2016年4月に正式に開始された認証局で、無料で利用できるSSL証明書を提供しています。 Let’s Encryptのコマンドライン、certbotを使用するとSSL証明書の取得や更新が自動化できるようになります。 SSL証明書のインストールって簡単だけどなん…

Dialogflowでチャットボットの開発

最近、チャットボット関係の開発の話があり独自実装だったり、いろんなサービスを試したりしてます。 今回は最近使ってみたGoogleのDialogflowを紹介したいと思います。 DialogflowはGoogle HomeやGoogleアシスタントで実行できるアプリの開発が可能です。 …

自転車で神社巡り 2018.4〜2018.6

4月から自転車で神社巡りはじめたので、今まで参拝した神社をまとめてみました。 kuru-photoblog.blogspot.com 御朱印がいただける神社マップを作成中です。

RubyのNet::HTTPのリトライについて調べてみた

ruby 2.3.0と2.5.1でNet::HTTPのリトライの動作が気になったので確認してみました。 atotok.co.jp

SwiftでKVO(Key-Value Observing)

SwiftでKVOを試してみました。 atotok.co.jp

RedisをMacで使ってみる

NoSQLデータベースの一つRedisをMacにインストールしてみました。 homebrewでRedisをインストールしコマンドラインでデータ登録まで試しています。 詳細は、Atotok Laboの方に投稿しました。 atotok.co.jp

カメラ持って自転車で!

撮影した写真など投稿していた「散歩写真ブログ」を久々に更新しました。 最近、ロードバイクを購入してあちこち行ってるので、タイトルも「カメラ持って自転車で!」に変更してしましました。 最近は、ロードバイクでカメラ持って神社巡りなんか始めました…

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 …

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

ウィルスバスター 無料体験版をインストール中にMacBookがが固まったので再起動すると再起動を繰り返す現象が発生した。 MacBookを閉じても再起動を繰り返す。 Shiftキーを押したまま起動するとセーフモードで起動するしたので、 その後、通常起動してみるが…

ActiveRecordのenum

ActiveRecordのenumが便利なので最近よく使っています。 例えば、Spotモデルに下書き(draft)と公開(published)の状態をもつステータスを追加するとします。 Spotモデルにstatusカラムを追加するマイグレーションを作成 rails g migration add_status_to_spot…

写真がおもしろい

最近、写真にハマってます。 高校の頃は写真部で20代の頃までいろいろ撮ってましたが、長い間、カメラから離れていました。 写真は撮っていましたが、手軽なこともありiPhoneで撮影することが多くなっていました。 昨年、RICOHのTHETAを購入し360°カメラにハ…

Rubyの可変長引数

Rubyでメソッドに可変長引数を渡したい場合は、引数の前に*を付けます。 普通の引数と可変長引数を受け取るメソッドと可変長引数だけ受け取るメソッドで動作確認してみます。 下記のサンプルのfunc1では2つ目までの引数を必須にし、そのあとの引数を可変に…

画像アップローダ CarrierWaveの使い方

Railsのアプリでで画像をアップロードするGemのCarrierWaveの使い方をまとめてみます。 CarrierWaveはこれ↓ https://github.com/carrierwaveuploader/carrierwave Gemfile Gemfileにcarrierwaveとrmagickを追加する。 gem 'carrierwave' gem 'rmagick' bundl…

Rubyでメソッドを動的に呼び出す

メソッドを動的に呼び出すにはObjectのsendを使います。 class Hoge def medhod_01(val) puts "val : #{val}" end end hoge = Hoge.new # 普通にメソッドを呼び出す hoge.medhod_01(10) # 動的にメソッドを呼び出す hoge.send(:medhod_01, 20) sendメソッド…

Rubyのブロック付きのメソッド

Rubyでブロック付きのメソッドをメソッドを作ってみます。 def func(value1, value2) puts "value1 : #{value1}, value2 : #{value2}" a = value1 + value2 b = value1 - value2 c = value1 * value2 d = value1 / value2 yield(a, b, c, d) if block_given?…

開発関係のネタはこちらで

今までhttp://d.hatena.ne.jp/kurusaki/ の方でブログ書いてましたが、最近は更新も少なくってました。 いろいろネタも増えてきそうなので 心機一転、開発関係のネタはこちらのブログで書こうと思います。