Close icon
2018月07日20日

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

弊社の開発メンバーは、AtomやVisual Studio Code、Emacsなどそれぞれが好きなエディタを使用してRailsのアプリ開発を行なっています。

私は以前はAtomを使っていましたが、Atomにプラグインを入れすぎたからか重くなったので
ここ1年くらいはVisual Studio Codeを使っています。
Railsのデバッグはpryです。

Visual Studio Codeを使っていると右側にDebuggingアイコンが表示されています。
今まであまり気にしていなかったのですが
これ、どうやって使うんだと思い使ってみました。

2018月06日28日

Let's EncryptのSSL証明書を使ってみた

Let's Encryptについて

Let's Encryptは2016年4月に正式に開始された認証局で、無料で利用できるSSL証明書を提供しています。
Let's Encryptのコマンドライン、certbotを使用するとSSL証明書の取得や更新が行え自動化できるようになります。

環境

  • サーバー : さくらのVPS(CentOS7)
  • Webサーバ:nginx

Let's Encryptで取得したSSL証明書を開発用のサーバーにインストールしてみます。

2018月06日22日

.gitignoreのテンプレートを利用する

新しくプロジェクトを開始しgitでソースを管理する場合は.gitignoreを作成しますが、
githaubからgitignoreのテンプレートを取得すると便利です。

https://github.com/github/gitignore

2018月06日20日

Dialogflowでチャットボットを作ってみた

GoogleのDialogflowで簡単なチャットボットを作成ししたみたので手順などご紹介します。
今回は、Dialogflowでチャットボットを作成しAction on GoogleのSimulatorで実行してみました。

Agentを作成

最初にDialogflowのページからAgentを作成します。

Agentを作成

2018月06日20日

HackMD + Nginxで社内ナレッジをイイ感じに整理する

導入背景

弊社ではBacklogを使ってプロジェクト管理をしています。
そのBacklogではWikiや課題に対するコメントにTipsとか問題解決策とか様々な社内ナレッジが蓄積されています。
蓄積されてはいます…が…それが散在していて中々探しづらい、または似たような記事があったりするため、整理しようと思いたちました。

どのツールを使用するか?

整理しようとは思いましたが、どんな方法で、どんなツールを使用するか色々と悩みました。
が、以下のようなメリットから HackMD を使用することにしました。

  • リアルタイムプレビュー
  • URLから共同編集ができる
  • スライドモード(社内会議で使える)
  • Tag管理
  • パッと開いてすぐ書ける(←これ大事)

HackMDのTOP画面
凄くシンプルなTOP画面です。
新しく作る・削除する・検索する、とやりたいことがコンパクトにまとまっています。

2018月06日17日

JavaScript の文字列検索と使い分け

JavaScript で文字列を検索する場合、いくつかの方法が用意されている。

  • indexOf
  • match
  • test
  • search

とりあえず違いを表にしてみた。他にも exec とかあった気がするけど、とりあえず。

単純な文字列 正規表現 戻り値 クラス
indexOf × Integer (マッチしたインデックス) String
match Integer (マッチしたインデックス) String
test Bool RegExp
search Integer (マッチしたインデックス) String

使い分けとベンチマーク

まずはそれぞれの検索スピードのベンチマークを資料として。

JavaScriptで文字列の有無判定方法の速度ベンチマーク(indexOf、match、test)

ちなみに上記の表で「単純検索」で△が多いのは、正規表現を使って単純検索するとかならできるから・・・みたいな感じです。

次にそれぞれの使い分け方をざっくり書いておく。

2018月06日13日

Xcode の Interface Builder で UIView(とその継承クラス)の角丸を設定できるようにする

最近 Swift やってます。すごく楽しいです。

さて。

Interface Builder・・・って今は呼ぶのかわからないけど、そこで設定できない UI の制御用のコードを viewDidLoad とかにいっぱい書くのが嫌になって調べたら、@IBInspectable というのを使うといろいろできることがわかったのでメモ。

extension UIView {
  @IBInspectable
  var cornerRadius: CGFloat {
    get {
      return self.layer.cornerRadius
    }
    set(radius) {
      self.layer.cornerRadius = radius
    }
  }
}

今回のサンプルは UIView の角丸設定を追加してみた。

2018月06日06日

Chrome の拡張機能 Markdown Preview Plus を入れてみた

社内の文書は多くが markdown で書かれています。画像が必要なら Adobe XD である程度作って、それを画像に書き出してmd文書に貼り付けたり、スクリーンショットを加工してmd文書に貼り付けたりしています。

markdown で管理している大きな理由

最大の理由は、markdown は基本はテキストなので git での管理との相性もいいこと。Excel とか git で管理すると複数人が同時に同じドキュメントを編集してると悲惨なことになるし・・・。

あとは Google Docs とかもいいとは思うんですが、あれだとファイル一式をパッと誰かに渡すことができませんね。ファイルを見るためにはアカウントを発行したり共有したりと地味に手間がかかってしまう。

ここからは個人的な少しお話。

時々 markdown なんて読みづらい!って指摘されるんですが、ビューア使えば問題ないし、ビューア入れるのめんどくさい!って言われても、個人的には Excel を起動するのもめんどくさい!って、平行線をたどってしまう・・・両者の主張は決して交わることができないのかと悲しい錯覚にも陥ってしまいます。

ちなみに後でデジタル印刷物的にドキュメントを納品する際にも、markdown をすべて PDF で書き出すなどすることである程度対応することもできますね。

2018月06日06日

Rails のルーティングをリソースの階層に合わせてネストさせる

あるある系の話でよく使うのだけど、なぜかよく忘れちゃったりもするのでメモも兼ねて書いておきます。

https://HOST/users/:id/diary/:id のようなルーティングを実現したい時の話です。

コントローラは users_controller、users のネームスペースの中に users/diaries_controller があると仮定します。

resources :users do
  scope module: :users do
    resources :diaries
  end 
end
2018月06日06日

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

rubyでサーバーと連携するAPIを開発していてサーバーからの応答が遅い場合に、
リクエストが2回送信される現象があったのでNet::HTTPのリトライについて気になったので調べてみました。

サーバー側はRailsで作成しクライアント側は
下記のようにget methodでリクエストを送信するテストプログラムで確認します。

test_http.rb

require 'net/http'

uri = URI.parse("http://localhost:3000/hoges.json")
req = Net::HTTP::Get.new(uri.path)
res = Net::HTTP.start(uri.host, uri.port) do |http|
  http.request(req)
end

アトトックラボとは

株式会社アトトックメンバー が技術の話、デザインの話、キャラクターの話、ときどき脱線してガジェットの話やライフハックの話など好きなことを書いています。


連載記事


最近の記事


タグ