DailyHack

文系出身で Software engineer として渋谷で働いています。

Golangでの抽象化について

理解がなんとなく浅いと感じていたGolangの抽象化について簡単にまとめました。 goのサンプル package main import "fmt" type Stringer interface { String() string } // Stringerを実装する type Hex int func (h Hex) String() string { return fmt.Spri…

「マイクロサービスアーキテクチャ」を読みました

マイクロサービスアーキテクチャを読んだ話 去年くらいに話題になった「マイクロサービスアーキテクチャ」を最近読みました。 仕事でマイクロサービスアーキテクチャを採用しているプロジェクトに関わることがあり、自分自身今までマイクロサービスアーキテ…

GoのtimeのFormat表記方法でハマったこと

GolangでUnixタイムをISO8601形式に変換したいということがあって、実際に返還する際にFormatの指定の仕方でかなりハマりました。 こういった方の記事を参考にしたらすぐわかったのですが、 GO言語での日付処理 そもそもGoで時刻表記をするときにちょっとク…

Goのsliceで重複を削除する

重複削除処理を実装する ruby でいうところの uniq メソッドみたいなものが golang の slice にもないのかと思って調べてみたけどないらしいので、重複のある slice に対して独自に処理を実装しなければ行けない。 go は非常にシンプルでLL言語をずっと書い…

Goでシェルを実行するCLIToolを書く

goで外部コマンド(デフォルトのコマンドやshellスクリプト)を実行するCLIツールを作ったのでその触りをまとめます。 内容は、goでCLIツール書く時の実装方法について。 やったこと shellスクリプトを外部コマンドとして叩く goの os/exec パッケージを利用…

【fish】CLI上で利用する変数を保持する

fishでのお話。 ターミナル上で特定の文字列を変数にセットして使う方法 $ set x (ls) | echo $x # 当該ディレクトリ上で ls した内容を出力する set x (何か出力をともなうコマンド) とすると () 内で実行されたコマンドの出力結果を x に格納する。 セット…

fishでのevalの設定方法

fish を使っていて、 eval の設定方法がわからなかったので調べました。 参考 eval command in config.fish # evalの設定方法 # bashrc での rbenv の設定 # eval "$(rbenv init -)" と同様のことを書きたい時 eval (rbenv init - | source) # その他の書き…

rubyでオブジェクトの持つメソッドを探索する

ユースケース オブジェクトの中に意図するプロパティを取り出せるのかを確かめる方法に、オブジェクトが持つメソッドを調査するという方法があります。 rubyではjsonオブジェクトのプロパティもメソッドとして取り出せるので、プロパティ not found エラーが…

githubのユーザーネームを変更した話

ユーザーネームを変更しようと思った背景 もともとのgithubのユーザーネームは ememhr っていうのを使っていたのですが、これ、前職で会社用のgithub.comを作るために、もともと作っていた個人用のgithubとは別にとったもので、インターネット周りでは全ての…

【go】構造体にメソッドを追加する

goはオブジェクト指向言語とは違って、書いていてC言語を書いている印象に近く、OOPで言うところのクラスが構造体で、クラスにメソッドを定義することは、構造体にメソッドを定義することになる。 しかし、クラスでカプセル化したりするわけではないので、構…

fishに乗り換えた話

zshの管理がめんどくさくなってきたのでもう少しイケてるshell環境をつくれないものかと調べてたら、fish なるものがあるらしく、使い勝手がよさげなので、期間限定で乗り換えてたときの備忘録 パッケージ管理 oh-my-fish fisherman 1と2もどちらもパッケー…

go で簡易HTTPサーバー立てる

http.HandlerFuncを使う場合 package main import ( "fmt" "net/http" ) func main () { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){ w.Writer([]bytes(`表示内容`)) } } if err := http.ListenAndServe(":8080", nil); err ! = ni…

go言語を学び始めてみた

go言語を学び始めました。 最近専らクライアントサイドの開発がメインだったので、サーバーサイドやりたくなったので、徐々に浸透してきたgoについてキャッチアップはじめました。 環境構築 環境 MacOSX Sierra go 1.8 エディター atom goのインストール と…

書評『なぜ、あなたの仕事は終わらないのか スピードが最強の武器である』

『なぜ、あなたの仕事は終わらないのか スピードが最強の武器である』を読んでみての感想。 新卒時代に、当時の上司から口酸っぱく言われていたことが全て書いてあり、当時の上司はこの著者の言っていることを指して指導してしくれていたのだとここに来て気…

MacOSをアップデートしたらbrew でインストールしたツールが`command not found`になったときの対処

トラブル概要 MacOSX Sierraを2017/04/06時点の最新版にアップデートしたら $ mysql mysql not found になってしまった。 対応した手順 brew list でインストールされているか確認 $ brew list | grep mysql mysql56 mysql@5.6 入っている… mysqlの最新版は5…

WebViewを使ったHTMLの描画

アプリのTableViewから詳細画面に遷移するインターフェースを考えます。 詳細画面に遷移する時に、HTMLをViewに描画するとき、 URLをLoadして直にwebViewを読み込む HTMLの文字列をHTMLの段組みに合わせてWebViewで表示する。 参考 How to load a HTML strin…

【2017年度版】今年度はどんなこと学んでいこうかなってこと

今日から新年度ですね。 渋谷ではおそらく新卒入社と呼ばれるみなさんが飲み会をしてました。 賑やかでこの時期ならではの華やかな空気感が色んなところに感じられるようになりました。 自身も新卒で社会に出てから4年目になってしまい、世間的ににはまだま…

UIRefreshControlの実装でハマったところ

目次 unrecognized selector sent to instance のエラーが出た時 Cannot override with a stored property refreshControl unrecognized selector sent to instance のエラーが出た時 RefreshControlを使ってSwipe & Refreshを実装しようとした際に、 unreco…

WebフレームワークにおいてDDDを適用しようとした時の違和感

概要 エリックエバンズの「ドメイン駆動設計」を読む中で、アプリケーション開発に適用する時に感じてきた違和感をまとめてみました。 まだ前半しか読み終えてないので、後半を読んだ際にはまた別のエントリーでまとめようと思います。 レイヤー化アーキテク…

チーム開発する上での前提に関する備忘録

※ 自戒をこめて チーム開発する上で認識甘かったことがあって、最近反省することが多かったので、備忘録として残しておきます。 開発する上での前提 「開発の前提知識が整わないと生産性高く開発ってできないよね」っていうお話です。 今回反省したのは、技…

Computed Property で for を使った構文を map を使った構文へ書き換える

computed property内でforを使った実装をしていた部分をmapを使ったswiftらしい構文へ書き換えました。 変更対象コード var isSuccess: Bool { for q in questions { if !q.isSuccess { return false } } return true } 変換第一段階は以下 var isSuccess: B…

プロトコルでのオプショナルなインターフェースを作る。

Protocolの定義 宣言したインターフェースは継承先のクラス、もしくはプロトコル、構造体で、宣言必須。 とはいえ、必要ないインターフェースは継承先で記述省きたいとも思う。 そこでswiftで使えるオプショナルなインターフェースについて調べてみた。 オプ…

swift学習ログ「タプル」

swiftのタプルについて 公式リファレンス呼んだ備忘録 php, rubyと経験してきて、swiftを学習し始めてから「tuple」という概念を知ったのでまとめます。 タプルとは? タプル(tuple)とは、複数のものからなっている組の構成要素数を表している集合数詞である…

書評「人工知能は人間を超えるか」~ディープラーニングの先にあるもの~

背景 今年は間違いなくAIだったり深層学習だったりがバズワードになり、色んな製品にそういった技術が使われてくる世の中になるだろうと思います。 そんな中、結局「AI」とか「人工知能」とか「深層学習」ってそもそも何?っていうことの背景だったり歴史だ…

ソースコードの検索の仕方

先に注意事項を書いておきます。 コピペの仕方を書いているわけではありません。 ソースコードの検索は実装の手助けをするものです。 その前段階で設計や実装の準備はしっかり行っておく必要があります。 上記3つをこの記事では意識しています。 ソースコー…

拡散思考と実装前提思考

ビジネスサイドや企画サイドと新機能や要望のやり取りをするときに、最近否定的な態度を取ってしまうことが多く、良くない傾向だとおもったので、そもそもなぜ否定的に考えてしまうのかということの理由を考えてみました。 拡散思考と実装前提思考 1. 拡散思…

エンジニアのキャリアとして思うこと

エンジニアとしてのキャリアを今後どうしていくか、どうあるべきかの現時点を記録していこうと思います。 自分なりのエンジニアキャリアの考え方 一般的なエンジニアのキャリアの考え方は3種類あると思っています。 それは 技術突き詰める 技術をわかった上…

iOS開発の学習に際して意識したこと

年明けから業務でiOS開発を担当することになったので、ここ一ヶ月半で何をして何をしなかったのかを書きます。 目標 一ヶ月でiOS開発に必要な知識のベースをつける キャッチアップしないと行けなかったこと Swift Xcode Cocoaプログラミング Rx (含むリアク…

UIStackViewの削除に関しての追加学習

以前書いたカスタムUIStackViewクラス内の子要素を削除するの追記 removeArrangedSubview() (UIView).removeFromSuperView の動作の違いとなぜ2つのメソッドを使わないと完全に削除できないのかということについて。 removeArrangedSubview https://develope…

PhotoLibraryから画像を選択して画面に描画する実装

画像を選択してUIImageに表示させるという処理を実装します。 手順 UIImagePickerControllerDelegate と UINavigationViewControllerDelegate を実装したViewControllerに継承させます。 UIImagePickerControllerDelegate…UIImagePicler → Libraryから画像を…

コードからTableViewのeditボタンを生成する

UINavigationViewControllerをEnbedInしている状態で編集ボタンをコードから生成する。 navigationItem.leftBarButtonItem = editButtonItem これで該当NavigationControllerを設置している箇所に対して、左上に編集ボタンを配置できる。 また、TableViewCon…

NSCodingのinitについて

さまり Jump Right In でNSCodingを初期化する時に required と convenience を使って初期化している意図がわからなかったので調べた話 NSCodingの初期化について 公式のリファレンス https://developer.apple.com/reference/foundation/nscoding/1416145-in…

UIViewControllerのprepareメソッドについて

さまり prepareメソッドが理解できずにいた件 swiftの外部引数と内部引数について prepareメソッドが理解できずにいた件 prepare(for: ,sender:)メソッドがなかなか理解できずにいて、ようやく理解したので、その備忘録です。 まずprepare(for: ,sender:)に…

emacsのパッケージをcaskで管理する上で気をつけていること

emacs のパッケージ管理 emacs 25.1 cask を使ってパッケージの管理をしていたりします 一応githubにemacsのパッケージリストは公開中 my emacs conf えぐさま Vagrantで立ち上げた仮想環境でcaskが動作しない Macでcaskを入れる場合とcentOSでcaskを入れる…

カスタムUIStackViewクラス内の子要素を削除する

UIStackViewとは? iOS9から導入された概念 UIView郡をUIStackView内に入れ子として管理できる。 UIStackViewが親でUIButtonなどの各UIパーツが子要素になる。 Apple公式チュートリアル内でボタンを削除する JumpRightIn 対象となるコードはこちら(抜粋) pri…

iTermのブルーが見づらかったので調整した話

iTerm2で青色がすごく見づらかった… iTerm2で作業する時に青が見えづらくてしかたなかったので、青の文字の色彩を調整しました。 調整の仕方は、iTerm2の設定(Cmd + ,)を開いて、Profile -> Defauktの外観の設定 -> Colorを選択 Minimun Contrastを調整し…

Bundleを使った画像のロードとキャッシュ from Apple公式チュートリアル

AppleのiOS開発の公式チュートリアルに記載されている画像の読み込みについての備忘録。 画像はAssetsに入っているものとし、アプリ内で保持している画像を読み込むという前提。 対象箇所 Appleの公式チュートリアル「JumpRightIn」での画像を指定している箇…

AtomでMarkdownを使うためのセットアップ

atomでmarkdownのシンタックスハイライトとライブプレビューを使うお話です。 使っているパッケージ language-markdown linter-markdown Core 1. markdown-preview Markdownプレビュー Ctl + Shift + Alt を同時に押した状態でキーボードの「M」を押すとMark…

お試し投稿

お試し投稿です。 jekyll now で作ったgithubページから移行 もともと jekyll now を使った静的ページでブログ書いてましたが、画像等々を上げる時にホストするサーバーだったりを用意したりするのがめんどくさかったので、どうしようか考えたところ、はてブ…