Close icon

アトトックラボ

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
2017月12日19日

Mac の大画面での 10Years の使い方

ウェブ版の 10Years、下のスクリーンショットのような感じで最近使ってます。10Years のクリスマスロゴが見れるのは今だけです。

左側に Safari をフルスクリーンにして 10Years で長期的な目標を表示させつつ、右側には Things で今(もしくは直近で)やらなければいけないタスクを配置しています。

2017月12日19日

配列をいろいろ回してみた

配列を回す方法がいろいろありすぎて・・・遊んでみました。

まず遊ぶための配列。

array = [1, 20, 30, 50, 100]

まず無難に each してみた。

total = 0
array.each do | value |
  total += value
end

puts total

次に for でやってみた。

tatal = 0
for i in array do
  total += i
end

puts total
2017月12日18日

enum で定義したい値を再利用したり f.select なんかで使うデータを生成してみたり。

以前 kurusaki さんが書いていた記事 をもうちょっと前に進めて、enum で定義した値を元に f.select ヘルパーなんかで表示する選択肢を生成するようにしてみました。みんな安心のローカライズ対応済みです。

ちなみにステータスはマスタ的に使えるように単体のクラスとして書いて、再利用できるようにしてみました。

2017月12日11日

Hot, Simple and Deep.

タイトルにした「Hot, Simple and Deep.」、この一言だけで気づいた方は Apple マニアでもガジェットマニアでもなく、立派な Steve Jobs マニアです。ホットでシンプルだけどディープなウェブサイトの構築アイデアを記しておきます。

2017月12日07日

Apple TV にやっと Amazon プライムビデオがきた

6月の WWDC の時に Tim Cook が声高らかにアナウンスしていた「年内に Apple TV で Amazon プライムビデオが見えるようになるよ!」ってお話。ようやっと昨日だったかに見れるようになりました。

2017月12日06日

What's a computer? で考える iPhone と iPad しか持っていないお友達

最近、プライベートな友達で iPhone と iPad は持っているけどパソコンは持っていないという具合な人がやたらと増えています。Apple の最新CMでも "What's a computer?" ってのが出ましたね。

この社会の流れ(と呼ぶにはいささか大げさだけど)は我々の業界、そういった端末で使うサービスやアプリを作っている人間にとっては数年前までと違う考え方やアプローチを考えさせられたりと、大きな影響があるわけです。


アトトックラボとは

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


連載記事


最近の記事


タグ