情報系人間のブログ

プログラミング、開発に関することを書いていきます。

2018年振り返り

このエントリは今年一年の自己の振り返り Advent Calendar 2018 - Adventar25日目の記事です。 早いもので今年も終わりますね。ということでエンジニア3年目の一年の振り返りです。 仕事 転職した 2月にいわゆるスタートアップに転職しました。100人以上規模…

Swiftで関数型データ構造

Swiftで関数型のデータ構造を作ってみます。 関数型データの構造は永続的であるという特徴があります。なので更新する際には既存のデータを破壊するのではなく新しいオブジェクトを作ります。Enumを使ってこのリストを作ってみます。 consはリストの先頭、ni…

特定文字をリンクするTextView

特定の文字をリンクにしたいときに使うTextView LinkableTextView.kt class LinkableTextView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null ) : TextView(context, attrs) { private var target = "" private var color = 0 p…

気の向くままにブログを書き始める

気の向くままにブログをもう一個作った oyuk blog 気の向くままに見てください

僕の行動指針

行動指針 Advent Calendar 2016 - Adventar17日目の記事です。 行動指針を書くとなるとなかなか難しいですね。 ということで紹介していきます。 行動指針 自分の常識を疑う 世の中いろんな人がいるので自分の常識と違う人はたくさんいます。そういった人に時…

Swiftのmapのその次へ

少し前に社内勉強会で発表する機会があったので Swiftのmapからその次へというタイトルでスライドを作りました。 speakerdeck.com 一言で言えばswiftのOptionalやArrayはFunctorだよという話です。 swiftはマルチパラダイム言語と言われており、関数型言語の…

Quickでテストする

Swiftのテストフレームワークとして有名なQuickを使ってみます。 インストール Carthageに github "Quick/Nimble" github "Quick/Quick" を記述し carthage update でインストールできます。CocoaPods,Git submodulesでもインストール可能です。 NimbleはMat…

ReSwiftを使ってみる

ReSwiftというRedux-likeなswiftライブラリがあります。面白そうなので使ってみました。 github.com ReSwiftの基本概念 ReSwiftではState,Store,Action,Reducerの4つの概念があります。 State いわゆる状態です。stateはActionによってその状態を変化させる…

Terminalから翻訳しよう

変数名やメソッド名をどうしようかと悩んでgoogle翻訳等を使うことがあると思います。 ですがブラウザに移動するのは面倒です。ターミナルで翻訳できないかと思い、探したところ便利なものを見つけました。それがこちらです。soimort/translate-shell · GitH…

2015年振り返り

2015年を振り返る。 ぱっと思いつくトピックとそれについて一言をまとめる。 プログラミング アプリを4つリリース iosアプリが3つ、androidアプリが1つ。 ダウンロード数はとても少ないけどリリースしたことに価値があると思っておこう。 バックエンドを少し…

名言アドベントカレンダー

名言アドベントカレンダー23日目の記事です。紹介する名言はこちらです。練習は嘘をつかないって言葉があるけど、頭を使って練習しないと普通に嘘つくよ。— ダルビッシュ有(Yu Darvish) (@faridyu) 2010, 6月 11Twitterなのでダルビッシュ選手は軽い気持ちで…

EventSearch

EventSearchはイベントを検索できるアプリです。 以下の4つのサービスに対応しています。 connpass Doorkeeper ATND Zusaar 機能 キーワード、日付検索 イベントストック イベント開催地表示 スクリーンショット 使い方 画面上部のEventSearchボタンをタッ…

MKMapViewでバルーン(callout)を最初から表示する

ios

MKMapViewでバルーン(callout)を最初から表示する方法です。 MKMapViewのデリゲートメソッド mapView(_:didAddAnnotationViews:) 内で追加したannotationのcalloutを表示するだけです。例では最後に追加したMKAnnotationViewのannotationのcalloutを表示して…

Swiftで2つの配列を同時にIterate

ios

swiftで2つの配列を同時にfor文で処理したい時は以下のようにする。 let array1 = [1,2,3,4] let array2 = [5,6,7,8] for (a1, a2) in Zip2Sequence(array1,array2) { print(a1) print(a2) }

Rxの関数を図で見る

ReactiveProgrammingを導入するためにはmap,filter等の様々な関数を理解する必要があるのでコストが高いです。 それぞれの関数がどういった動作をするのかはまずは公式をみるべしです。ReactiveX - Operatorsこちらのサイトでは公式の図にあるObservableを自…

FREETEL SAMURAI MIYABI 買った

普段はiphone6を使っていてAndroidほしいなと思っていたので買いました。 Androidは4年ぶりくらいで久しぶりです。前の端末はOSが2.2か2.3の時でした。root化失敗して文鎮化したのがなつかしいです。 動作はかなり満足です。一つ気になる点は背面がすぐ熱く…

swift2.0でStringの先頭、最後を削除する

ios

swift2.0ではdropFirst,dropLastがなくなったのでタイトルの動作をどのようにすればよいのか調べた。What is the most succinct way to remove the first character from a string in Swift? - Stack Overflowこちらのstackoverflowの回答でいくつか良い方法…

JSONからモデルを自動生成する

JSONからその要素に対応したモデルを作る際に手打ちで作成するのは非常に面倒です。 こちらのJSONExportというツールはこの作業を自動でやってくれるので非常に便利です。Ahmed-Ali/JSONExport · GitHub こんな感じで左側にJSONを入力すると右側に指定した形…

dockerでgitbucketを起動する

dockerでgitbucketを起動するメモ。 環境 CentOS 6.7(2.6.32-573.7.1.el6.x86_64) インストール docker Installation on CentOS こちらの公式にある方法を使います。 sudo yum install docker-engineインストール後dockerサービスを起動します。 sudo servic…

coocapodsでThere was an error reading '...CocoaPods-version.yml'.

pod install時に以下のエラーが出た。 $ pod install Updating local specs repositories [!] There was an error reading '/Users/xxxxxx/.cocoapods/repos/master/CocoaPods-version.yml'. Please consult http://blog.cocoapods.org/Repairing-Our-Broken…

Vagrantで AWS EC2インスタンスを立ち上げる

vagrantでAWS EC2を立ち上げるメモはじめにvagantのプラグインをインストール vagrant plugin install vagrant-aws vagrant plugin install dotenv.envファイルに以下のようにawsの認証情報を記述する。 AWS_SECURITY_GROUPにはセキュリティグループ名ではな…

gitのコミットメッセージでgithubのissueを閉じる

gitでgithubのissueを閉じる場合はコミットメッセージを以下のフォーマットで書く close #1これで#1のissueを閉じることが出来る。 複数閉じる場合は close #1 #2と書く。closeの部分はfix,resolveでも良い。

Cocoacontrolsにライブラリを登録する

こちらで書いたのですが、iosのライブラリをcocoapodsに登録したのでcocoacontrolsにも登録してみした。reidr.hatenablog.comcocoacontrolsはios,osxのUI系のライブラリをを掲載しているサービスです。登録申請すれば誰でも掲載してもらえる可能性があります…

error: failed to import bridging headerとuse_frameworks!

ios

swiftで書かれたライブラリをCocoaPodsでinstallする場合は use_frameworks!とpodfileに書かないと以下の警告が出ます。 [!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your P…

OYSimpleAlertController

CocoaPodsに登録したライブラリについてgithub.com現在開発しているアプリZn1clipboardでシンプルなダイアログを使いたかったので作ってみた。 とりあえずダイアログを出すけどUIAlertControllerじゃ味気ないなという場合に使ってみると良いかもしれない。

cocoapodsにiosライブラリを登録する

普段cocoapodsには非常にお世話になっていて自分も何か公開したいなと思い初めてライブラリを登録した。 手順をメモしておく。 ライブラリのテンプレート作成 始めにライブラリのテンプレートを作成する。 pod lib create "pod name"この際デモを作成する方…

InstrumentsのTimeProfiler使用時のメモ

ios

TimeProfilerを使う際のメモ システムのメソッドを表示しないようにする 右ペインのCell Tree,Hide system Librariesにチェックをいれる。 メソッド呼び出しのツリーを全て展開する オプションキーを押しながらツリーの▼をクリック

iosアプリのクラッシュログを解析する

ios

App storeに申請後、クラッシュを理由にリジェクトされたのでその際のログ解析方法のメモ。 必要なファイル .dSYMファイル .crashファイル の2つ .dSYMファイル /Users/[ユーザ名]/Library/Developer/Xcode/Archives/[yyyy-mm-dd]/[アプリ名].xcarchiveにア…

herokuでdbを確認する

herokuのdbにアクセスする。 $ heroku pg:psqlテーブル一覧 \dユーザー一覧 \duデータベース一覧 \l切断 \qmigrate heroku run rake db:migrate --app [APP_NAME]

プロ野球の結果をスクレイピングする

スクレイピングについて勉強したいと思いプロ野球の結果を取得するコードを書いてみました。 データ取得元はこちら スポーツナビRubyで書いたのですが、nokogiriというライブリが非常に便利でした。 最低限動くだけならかなり簡単に書くことができますし、か…