paranitips

Never stop learning! がモットーのゆるふわエンジニアブログ

「学びを結果に変える アウトプット大全」を読んだ

学びを結果に変えるアウトプット大全 (Sanctuary books)作者: 樺沢紫苑出版社/メーカー: サンクチュアリ出版発売日: 2018/08/03メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 「学びを結果に変える アウトプット大全」を読んだのでさ…

「なっとく!アルゴリズム」を読んだ

なっとく! アルゴリズム作者: アディティア・Y・バーガバ,株式会社クイープ出版社/メーカー: 翔泳社発売日: 2017/02/01メディア: 単行本(ソフトカバー)この商品を含むブログを見る すごく良かった! アルゴリズムを理解するための導入本としてすばらしい出…

Audacity, Forecast, Anchorを使ってチャプター付きのpodcastをApple Podcastsに配信する

ども。最近podcastにハマってるparanishianです。 podcastの配信方法って意外と見つからないのでここにメモっておきます。 いろいろ配信方法を試した結果、現状の収録方法は以下の流れになりました。 1. ボイスメッセージで録音する 2. Audacityで編集する 4…

Anchorで収録したポッドキャストをApple Podcastsに配信する方法

こんにちは。 最近ポッドキャスト配信にハマってまして、Anchorで収録してます。 Anchorほんますごくて、iPhoneだけでさくっと収録できるし、遠くの人ともリモートで収録できるし、音質もいいしで、めちゃすばらしいサービスです。これからラジオやりたいっ…

Airbnb Storyを読んだ

Airbnb Story 大胆なアイデアを生み、困難を乗り越え、超人気サービスをつくる方法作者: リー・ギャラガー,関美和出版社/メーカー: 日経BP社発売日: 2017/05/25メディア: 単行本この商品を含むブログ (2件) を見る なんだか小説を読んでるみたいにサクサク読…

Macのスクリーンセーバーでいいの見ーつけた

Apple TVスクリーンセーバーをベースにしたMacのスクリーンセーバー。 github.com zipファイルをDL→解凍して、インストールするだけでOK。 めちゃめちゃキレイ。癒やされる。4K動画もある。 職業柄、あんまし外に出ない生活してるので外出欲が湧いてきて良い…

WiFiルーターを刷新したらダウンロード速度6.8倍、アップロード速度15.9倍になった

実家でのリモートワーク中、インターネットが遅くて開発に影響が出てきそうだったので対応することにしました。 回線はドコモ光を契約してる*1し速いはずやのになぁ。。 調べてみると、どうやらルーターに問題がある気配がした*2ので、こいつを購入してbefor…

assets:precompileしたアセットのサイズをbundlesizeを使ってPR上に通知する

アセットは放置しておくと膨らんでいくばかりなのでチェックできる仕組みをつくります。 今回は、assets:precompileしたアセットのサイズ(とmasterとの差分)をPR上に通知するようにしました。 bundlesizeのセットアップ bundlesizeの使い方はREADMEを見て…

CSS削除の前後でレイアウト崩れがないかどうかチェックするスクリプトを書いた

はじめに 「よっしゃあ、サイト高速化するぞ!」 「むむ、CSSサイズが大きいなぁ。軽量化しよう!」 「このCSS使われてないやん、、削除ー!」 ・・・・・ 他のページのレイアウト崩れてるやん CSSの構造が複雑になっていたので、削除の影響範囲わかんない…

アセットの変更がない場合、assets:precompileをスキップすることでCIの速度を改善した

assets:precompileに毎回1分ほどかかっていたので嬉しい速度改善 以下の記事を参考にさせていただきました CircleCI 2.0に移行して新機能を活用したらCIの実行時間が半分になった話 - クラウドワークス エンジニアブログ 仕組みとしては、precompile対象の…

Amazon CloudFront & Lambda@Edge でリクエストに応じて自動で画像リサイズする仕組みを試してみた

Webページをすばやく表示するにはページ内画像のlazyloadや圧縮は不可欠。 けど、毎回画像を圧縮するのは手間だし自動化したい。 そして、なんかモダンな方法でやってみたい。 ってことで、調べていたらこの記事を見つけました。 Amazon CloudFront & Lambda…

Resource Hintsの対応をしてWebPageTestの点数を改善した

はじめに いま開発チームでサイト速度改善に取り組んでいて、 その一環でResource Hintsの対応をしたので、調べたこととリリース後の効果をまとめます🙌 調べたこと まずはResource Hintsについて ふむふむ。いろんな種類があるなぁ。

iOSショートカットでちょっとしたライフハックをしてる話

iOS12から登場したショートカットをつくるのが楽しすぎて時間が溶ける・・・ 自分は最近Google Mapを使うことが多いので、そのときに使えるショートカットをつくりました。 iCloudの共有リンクも置いてるので良ければ使ってみてください ※ショートカットApp…

nginx.confを8万行削除した話

強い気持ちでやりました 自分が関わる前からあったnginx.conf。 それはそれは大きく膨らんでおりました デプロイはchefで行っていたんですが、dry-runでも時間がかかりすぎて差分確認するのも一苦労、、という状態 少しでも快適な開発環境にすべく、やってい…

技術書典で買った「さわって学べる!iOSテスト駆動開発」を読んだのでその感想と3章の誤植の共有

今年の技術書典ではboothでiOS中心に10冊ほど買いました。 今回読んだ本はこれ shindyu.booth.pm swiftでテストを書いたことがなかったので、TDDを勉強するというよりは、その書き方や導入が把握できればいいかなー、と思って読んでみました。 結果、とても…

nginx+wordpressのdocker環境を構築する

はじめに localにwordpressが動く環境がすでにあったのですが、メンバーの新規参入時など環境構築が大変だったのでdockerで環境を構築できるようにしました。 dockerはこの本を読んで勉強しました プログラマのためのDocker教科書 インフラの基礎知識&コード…

開発合宿@河口湖がすごく良かったというお話

先日行った開発合宿@河口湖がすごく良かったのでブログに記録していきます。 文才がみじんこなのでそこは写真で補うスタイル 今回はここにお邪魔しました。 www.c-ban.com 金曜夜から出発し、22時頃に河口湖カントリーコテージに到着。 まずは買い込んだお…

swiftを一から勉強してTODOアプリをつくるまでの過程

仕事でしばらくwebで活動していたのですが、フリーランスになったことだし、アプリ開発をまた再開しようと思い、swiftを勉強してみることにしました。 また、今回swiftを勉強するにあたり、その過程もメモしていきました。 学習の過程って意外と忘れがちです…

開発用.devがhttpsに強制リダイレクトされて困った件

pow使ってて開発してたら、急にSafariやChromeでhttpsに強制リダイレクトされるようになったので対応。 (Chromeはv63からこの仕様になったぽい) 対応 インストールし直せばOK。 (ver0.6.0から、トップレベルドメインが.devではなく.testがデフォルトにな…

リーダブルコードを久しぶりに読み返してみた

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典出版社/メーカー: オライリージャパン発売日: 2012/06/23メディア: 単行本(ソフトカバー)購入: 68人…

WordPressでfacebookのoEmbed対応をする

WordPressが4.4からoEmbedに対応し、特に埋め込みコードを書かなくてもurlから自動で埋め込みコードを発行してくれるようになりました。 oEmbedって? 例えばTwitterのつぶやきをサイトに埋め込みたい場合、いままでこういう埋め込みコードをコピペしてたの…

URLからクエリ文字列(GETパラメータ)を抽出してハッシュにする

環境 $ rails -v Rails 4.1.1 $ ruby -v ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0] 方法 例えば、URLからクエリ文字列を抽出する場合はURIを使えば簡単。 uri_str = 'http://sample.com/path/to/hoge?a=1&b=2' uri = URI.parse(uri_st…

「zsh: command not found pod」と言われた時の対処法

$ pod setup zsh: command not found pod 昨日まで使えてたのにある日突然podコマンドが使えない…!! 対処法まとめておきます〜。 環境 一応Macのバージョンは以下です。 OS X 10.10.5 対処法 とりあえずcocoapodsがあるか確認 $ gem list | grep cocoapods…

4byte文字(絵文字や一部の漢字)が含まれているかどうかチェックする

本当はmysql側のエンコーディング変更すべきですが、アプリケーション側の応急処置として。 class Post < ActiveRecord::Base validate :no_4_bytes # 本文に4byte文字を使わないように def no_4_bytes if content.present? chars = content.each_char.selec…

テキスト中にあるURLを抽出し、リンク(aタグ)に変換する

テキスト中にあるリンクがある場合は、ちゃんとクリックできるリンクにして出力したい! ということで、いろいろ調べてみました。 URLを抽出する textからURLを抽出するだけであれば、URI.extractを使えばOKです。 text = 'aaaaa http://xxx.com bbbbb http:…

grep, xargs, sedを使って複数ファイルの文字列を一括で置換する

例えば、カレントディレクトリ下のファイルで「置換前の文字列」が含まれるものを一括で「置換後の文字列」に置換したい場合は以下のようにします。 $ grep -rl '置換前の文字列' ./ | xargs sed -i '.bk' 's/置換前の文字列/置換後の文字列/g' iオプション…

twilio-rubyでSMSを送信する

SMS送信にtwilioを使ってみたのでメモがてらざっとまとめていきます。 はじめに twilioからgemが提供されてるのでインストールします。 gem 'twilio-ruby', '~> 4.2.1' twilioでSMS送信する場合は、SMS対応している国の電話番号を購入する必要があります。 …

with_optionsを使う際の注意点

環境 Railsのバージョンは4.1です。 $ rails -v Rails 4.1.1 そもそもwith_optionsって? オプションの記述が冗長にならないようにまとめてくれる便利メソッドです。 class User < ActiveRecord::Base validate :name, presence: true, if: :hoge validate :…

emailのバリデーションをちょっとだけ工夫する

Userモデルのemailに、存在チェックとフォーマットチェックを入れることを考えます。 必要なgemをインストールしておきます。 # Gemfile gem 'validates_email_format_of' 普通にやってみる class User < ActiveRecord::Base validates :email, presence: tr…

mysqlで同一単語を複数カラムにわたって検索する

CONCAT関数を使います。 例えばcolA, colBの2つのカラムでaaaを検索したい場合、 SELECT * FROM hoge_table where CONCAT(colA, colB) = "aaa" となります。 ただ、colA, colBのいずれかがNULLの場合、CONCATの結果もNULLになってしまうのでIFNULLで回避し…