茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

プログラミング

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) が出た時の対処法

mac os を High Sierra にアップデートしたりすると git コマンド叩いた時などに以下のエラーが出るようです 自分は brew 叩いた時に気づきました xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /…

GW前半で「Go言語によるWebアプリケーション開発〜チャット編〜」をやってみた

みなさんはGWいかがお過ごしでしょう? 私はGW前半でこちらの本 www.oreilly.co.jp Go言語によるWebアプリケーション開発〜チャット編〜 をやってみたのでその感想になります どんな本? こちらはGoをつかったWebアプリ開発において必要最低限な知識を 実際…

Goでスライスを2個ずつのスライスに分割する

Ruby であれば each_slice(2) とすれば、arrayを2個ずつに分割できるのですが Go にはそんなメソッド無いので実装してみた 実装内容

Go でステータスコードをミドルウェアで取得する

Golang でステータスコードをミドルウェアで取得するようにしてみます 例えば、ステータスコードで400番台が出たら、slackに通知させたい! みたいな時に、ミドルウェアでステータスコードの中身を見て 何か処理を行いたいとします

GoでTwitter(画像付きツイート編)

以前 Go でツイートの取得や実際にツイートをしてみました o-tyazuke.hatenablog.com この勢いで画像付きツイートをしてみよう思うと 一筋縄ではいかなかったのでそのメモです ※前回の記事を理解しておく必要があります

GAEで使う環境変数をgit管理しない方法

appengine で環境変数を設定したいときは app.yaml に記述すれば簡単なのですが それだと秘密鍵などの秘匿したい変数をgithubで晒すことになってしまう そこで appengine を使う際に環境変数を github で晒さない方法を紹介

GoでTwitter

Go で Twitterクライアントを作成してみようと思います 今回は タイムラインの取得 特定ワード付きのツイートの取得 ツイートする をしていこうと思います

Go でUUIDを生成したかったら xid が便利だった!

個人プロダクトの開発中にUUIDを生成したくなったのですが そんな時に見つけた、簡単にUUIDを生成してくれるGo製のライブラリ github.com こちらの特徴と使い方をご紹介

GO でタイムゾーンを指定してstringからtimeを取得する

サンプル package main import ( "fmt" "time" ) var layout = "2006-01-02 15:04:05"

GO で time型とstringの変換

golang で time ⇨ string string ⇨ time サンプル

Rubyで日付・時刻の範囲検索

指定の時間範囲内の記録を読み出したい場合 (例えば今日中で登録したユーザーを探したい) よくある書き方 User.where(“updated_at BETWEEN ? AND ?”, beginning_of_day, end_of_day)

GOでyamlからデータを読み込む

GOを使ってyamlからデータを読み込む方法をメモ 読みたい yaml データ hoge: - fuga - piyo

GOで複数戻り値を宣言済み変数に代入

タイトル通りなのですが Golangで複数戻り値を持つ関数から得た値を 宣言済みの変数に代入する時に困ったのでメモ

ファイル内の比較にはcommが便利

2つのファイルの中身を比較したいときがあったのですが、 commコマンドなるものがあるらしいので、メモ。

Ruby の文字列型と日付型の変換方法

文字列型から日付型への変換 Dateのstrptimeメソッドを使う方法 Date.strptime('2017-09-03', '%Y-%m-%d') => Sun, 03 Sep 2017 年が西暦の下二桁の場合 Date.strptime('17-09-03', '%y-%m-%d') => Sun, 03 Sep 2017 Yを小文字にする必要があります。 to_date…

Swiftで半角英数字の判定

Stringで半角英数字かどうか判定したい場合 まずはStringを拡張(extension)する extension String { func isAlphanumeric() -> Bool { return NSPredicate(format: “SELF MATCHES %@“, “[a-zA-Z0-9]+“).evaluate(with: self) } } 使ってみる。 let strings:[…

Ruby のキーワード引数とは

Ruby のキーワード引数について、 キーワード引数とは Ruby2.0から導入された 引数のデフォルト値を設定できる 引数を渡す順番を気にしなくてよい などの特徴があります では簡単な例を デフォルトとは違う値を入れた場合 def test(a, b:2, c:3) p a + b + c…

Ruby の define_method メソッドで動的にメソッドを定義できる!?

Ruby の define_method で動的にメソッドを定義できるのです。 define_method を使ったことがない人からすれば、 は? だと思うので、例をば

Ruby のメソッドオブジェクトとは?

メソッドオブジェクトって、あれなんだっけ? となったのでメモっておきます。 一言で言えばメソッドオブジェクトとは、 メソッドをオブジェクトのように扱えるようにしたものです。 そのまんますぎ、 なので、 ちょっと例を書いてみます。

Ruby のカリー化

カリー化とは 調べてみると、 カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこ…

Ruby の each_with_object と inject について

each_with_object とは each_with_object を使用すると、配列やハッシュの要素を使って、 新たに配列やハッシュを作成したりする際に、簡潔に書くことができます。 簡単な例を以下に示します array = [[:hoge, 1], [:fuga, 2], [:piyo, 3]] array.each_with_…

指定したTextField がkeyboardで隠れないようにする

iOSで開発する時、TextFieldをタップすると、 TextFieldが出でくるkeyboardに隠される時よくある。 ↓このように。 1. こういう時は下のTextField がkeyboardで隠れないように。

Swiftのエラー処理

Swiftのエラー処理の書き方について調べたので、まとめておこうと思います。 エラーを定義 Errorプロトコルを継承した列挙型でエラーを定義します。 Errorプロトコルの中身は空になっています。 enum myError: Error{ case stringError case unexpectedError…

Swiftでdefer文を使う

Swift2.0から追加されたdefer文。スコープを抜ける際に処理をするものですが、Swift3.0で試してみました。 func myFunc(){ defer { print("defer") } print("hoge") } myFunc() 実行結果は以下のようになります。 hoge defer 関数以外のスコープで使ってみる…

Swiftで正規表現を使って文字列の操作を行う

Swiftで正規表現を使いたかったんだけど、調べて行くうちに、Swiftで正規表現ってなかなか面等らしく、どーしようかなと思っていると。 とても便利なStringExtensionを書いている方がいらっしゃたので、使わせていただきました。 Swift 3.0での基本的な正規…

【Xcode】 UIButton に下線を引くには

よくアプリなどで、「パスワードをお忘れの方はこちら」みたいに下線が引かれていると思いますが、あれをXcode で実現する方法を紹介します。 UIButton を選択状態で、ユーティリティエリアからTitle をPlain からAttributed に変更します。

warning: result of call to '~~~' is unused が出た時の対処法

Swift3.0では返り値のある関数を使った時に、その返り値を使用しなかった場合に警告が出るようです。 func addOne(num: Int) -> Int{ return num + 1 } addOne(num: 2) // warning: result of call to 'addOne' is unused 対策としては

Swift error: argument labels '(_:)' do not match any available overloads が出た時の対処法

error: argument labels '(_:)' do not match any available overloads が出た時に少し迷ったので、その対処法を書いておきます。 struct Cube { var area: Int init(height: Int ) { area = height * height } init(half height: Int){ area = height * hei…

Swift3.0 関数呼び出し時は引数名が必要になっている

Swift で関数一つ呼ぶのに苦労した話し - Qiita Xcode Swiftでの関数 - tetu式 これらの記事を読む限り、ラベルなしの場合は引数名は2つ目以降必要なようですが

Swiftで文字列から部分的に文字列を取得する

Swift3.0で文字列から部分的に文字列を取得するには、substringを使いますが、その際引数にはIntではなく、Indexを使う必要があります。