読者です 読者をやめる 読者になる 読者になる

My Favorite Things - Coding or die.

とある技術者の経験記録、的な。

MongoDBメモ(その1)

dot install のレッスン動画を見ながら勉強。 http://dotinstall.com/lessons/basic_mongodb_v3/35001 この記事の範囲。 - 01 MongoDBとはなにか? - 02 MongoDBをインストールしよう - 03 用語を理解しておこう - 04 データベースを操作してみよう - 05 コ…

try! Swift 2017 Tokyo に参加してきた - 2日目:午前

さて2日目です。 https://www.tryswift.co/tokyo/jp 1日目と同様にその場でのメモと感想を書いていきますが、ちょっとボリュームが大きいので午前・午後の2つに記事を分割したいと思います。(個人的に見返しやすくもあるので) テスト可能なコードを書くと…

try! Swift 2017 Tokyo に参加してきた - 2. 1日目

1日目の内容を感想を混ぜつつまとめていきます。 https://www.tryswift.co/tokyo/jp 通訳で聞いた内容で、ちゃんと聞き取れなかった箇所もあったと思うので間違っている箇所もあると思います。 なお迷ったのですが、箇条書きについては発表の場で書いたもの…

try! Swift 2017 Tokyo に参加してきた - 1.全体を通して振り返る

はじめに 参加してきました。 https://www.tryswift.co/tokyo/jp 家に帰ってから記事を書くまでがカンファレンスです、という名言を最初に聞いたのはXP祭りだったでしょうか? そんなわけで今回も個人的な感想を書いていきたいと思います。 おそらく長くなる…

Swift3 例外メモ(try、try!、try?、do-catch)

try?の仕組みとか曖昧になってしまったのでメモ。 例外のスロー 例外をスローする関数はthrowsを宣言(書く位置は引数宣言の直後) スローする例外はErrorプロトコルを実装している必要がある enum MyError: Error { case notFound case fail(String) } func…

Vagrantfile: Ubuntu14.04 で Swift製Webフレームワーク「Vapor」を使える状態にする

Swift製のWebフレームワークである「Vapor」をUbuntuに入れてみた。 github.com せっかくなのでVagrantfileを書いてみた。(たぶんこれが一番楽だと思います) ちなみにVagrantについてはドットインストールの動画が分かりやすいです。 http://dotinstall.co…

ブログデザインの変更

以前から表示が重いのが気になっていた+2017年になったので変更してみましたぞい。

Vagrant + CentOS7 で、RustのWebフレームワークRocketを発射する

Linuxとか環境面詳しくないのでメモ。 Rocketは最近出たRustのWebフレームワーク。 https://rocket.rs 環境 VirtualBox: 5.0.30 Vagrant: 1.9.1 CentOS: 7.1 Rust: 1.16.0-nightly Rocket: 0.1.2 ちなみにこれを書いている時点で最新のCentOSは7.3だったけれ…

Swift3: バージョン番号を楽に比較する

なんか面倒だったので書いた。 これがSwift使いの戦い方。たぶん。Swiftコンパイラに詳しくないけど、こういった構造体でラップするだけのコードって最適化後はゼロコストになるのかしら? (Haskellのnewtypeはゼロコストだったはずだけど)

SwiftでApplicative Style

書いたことなかったので書いてみた。 我流なのでいい感じに出来てるかは微妙だけどApplicative Styleがパーサ周りで有効活用できるという確かな実感は得られた。 Swift 4で(?)ジェネリクスが強化されれば、Haskellの型クラスのようにProtocolでもジェネリ…

iOSオールスターズ2に参加してきた感想

帰ってブログ書くまでがイベントって言われたので書くよ! eventdots.jp ブログなので当然ですけれど、私が思ったことをそのまま書いてます。 (とりあえずファーストインプレッションをダンプしてきます) あ、登壇者の皆様、本当に貴重な情報をありがとう…

Qiita記事「Haskell チュートリアル (Haskell Day 2016)」を読んでメモ

以下を読んでメモ。 Haskell チュートリアル (Haskell Day 2016) から学んだこと http://qiita.com/hiratara/items/169b5cb83b0adbfda764 Shell以降は新しいことばっかりだったのと、元記事の完成度が高すぎて途中からは殆ど写経みたいになってしまった。 基…

Haskell :: CSVフォーマッターを書いてみた

勉強がてら試しに書いてみた。 なんというか・・・以外と難しいね!! ちなみに全角文字に非対応なのでそのうち。

AtCoderに挑戦 - ACR001、ACR002 :: Haskell

関数プログラミング実践入門の巻末に載っていたAtCoderにHaskellで挑戦してみた。 001は、sortとgroupを活用すればすぐ出来ることが分かった。002は、すごいH本に載っていたチェス盤のナイトのコードを参考にして、リストモナドを使って解いてみた。実際にコ…

関数プログラミング実践入門 メモ - 第4章 評価戦略

関数プログラミング実践入門の4章「評価戦略」を読んだので簡単にメモ。 遅延評価(lazy evaluation) 実際に使うまで計算しないという計算順序の規則 たらい回し関数(竹内関数)は、積極評価だと実行に時間がかかり、遅延評価だとすぐ完了する関数(の例)…

Advanced Swift メモ - 8. Error Handling

8. Error Handling Swiftにはいくつものエラーハンドリングの仕組みがある。 Optional、はシンプルだがエラー情報は返せない。 Assertion、はバグを早期発見するために利用できる。 例外、はOptionalと違い詳細なエラー情報を持てる。 CollectionTypeのfirst…

Advanced Swift メモ - 2. Introduction (1)

Advanced Swift を読んでのメモ。 www.objc.io 英語レベルは低いので間違っている箇所は普通にあると思います。 Swiftはあなたが選択したプログラミング言語と似ているように見える。 低レベルなビット操作(とパフォーマンスチューニングができる点)は、C…

Carthageコードリーディング::3日目

さて3日目。 前回は「VersionCommand」まわりの実装を見た。 今回は実際にコマンドを実行している周りを見ていく。 エントリポイント(復習) 1日目でも触れたが、エントリポイントであるmain.swiftの以下でhelpコマンドをデフォルトに実行している。 regist…

Carthageコードリーディング::2日目

今回は一番簡単であろう「version」コマンドを見ていく。 VersionCommand 登録 前回も触れたが、main.swiftでCommandRegistryに各コマンドを登録している。 // main.swift let registry = CommandRegistry<CarthageError>() registry.register(VersionCommand()) 「version</carthageerror>…

Carthageコードリーディング::1日目

Swift力を上げるために、Swiftで書かれたパッケージマネージャ「Carthage」のコードリーディングを始めてみる。 github.com 準備 まずはGitHubリポジトリをclone。 $ git clone https://github.com/Carthage/Carthage.git 次に依存ライブラリをインストール…

CookieClicker v2.0 - クッキーを自動クリック

風邪を引いて体調悪いので、自動クリックに対応してみた。 これでよりたくさんのクッキーを焼けるぞ!やったね!!追記(2016/06/26): 久しぶりに実行したらAddEventでエラーになっていたので修正。

Haskell :: mapとfilterをfoldrで実装してみた。

Functional Programming in Swift で 同様のコード例があったのでHaskellでも書いてみた。 関数プログラミング実践入門で、「筆者がfoldrの方が好きなので」的な記述があったけれど、consリストで畳み込むコードを考えると、確かにfoldrの方が自然に感じる気…

関数プログラミング実践入門 - ランレングス復号化を書いてみた

ランレングス圧縮が例題として載っていたので、練習がてら復号化を書いてみることに。とりあえず書けたのだが。 安全でないreadを使っているのはさておき、なんだろうこの微妙感は。追記(2016/05/05): `let`を活用することで少し読みやすくなった。冗長だ…

Swiftソースのメソッド名とかの数を数えるスクリプト

Rubyの勉強がてら。自分用なので適当。

テスト自動化勉強会のスライド

前に自分で作ったスライドが行方不明になって探してしまったけれど見つかった。 iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている- from Yusuke Hosonuma www.slideshare.net最近、仕事でユニットテストをよく書くようになったり、テスト駆動で…

ベロシティを上げるには運動しかない

Amazon.co.jp: 脳を鍛えるには運動しかない!―最新科学でわかった脳細胞の増やし方: ジョン J. レイティ, エリック ヘイガーマン, John J. Ratey, Eric Hagerman, 野中 香方子: 本www.amazon.co.jpを読んで、実際に運動してみて思った。もちろんネタであるが…

iOS8開発テクニック集 Xcode6編を読んだ

Kindleで1コイン以下で購入できたので試しに買って読んでみた。Amazon.co.jp: iOS8開発テクニック集 Xcode6編 eBook: Zuvola: Kindleストアwww.amazon.co.jpいわゆるXcode Tips本なのだけれど、以外と知らないテクニックも多かったので良い買い物だった。以…

1スプリントごとの振り返りで本当に問題は解決するか?

アジャイル開発プロセスの1つ「スクラム」では1スプリント(1イテレーション)ごとの終わりに「振り返り」をやる決まりになっている。振り返ることは良いことだ。 振り返ることで、チームの生産性(ベロシティ)や結束力・協力性などが向上するだろう。問題…

リーダブルコード - The Art of Readable Code まとめ

良いコードを書くのは得意だという自負があったのでなんとなく読むのをスルーしていたが、改めて読んでみると勉強になる部分がとても多かった。特に「最短時間で理解できるコードが読みやすいコードだ」という一文にはとても感銘を受けた。あとは自分の中で…

OCMockのサンプルコード

iOS

APIリファレンスっぽいものが見つからなかったので、とりあえずテストコードを書いてみた。 YusukeHosonuma/OCMockSample · GitHub 気が向いたら追加していく予定。 // // OCMockSampleTests.m // OCMockSampleTests // // Created by Yusuke on 6/23/15. //…

SwiftでFizzBuzzと世界のナベアツ

最初はネタで書こうと思ったのだけれど、わりとSwiftの書き方の勉強になった。 gist.github.com最終的にXCTestとXcode beta7からのUIテストも書いたサンプルをGitにあげた。YusukeHosonuma/Nabeatsugithub.com

Java8でFizzBuzz

StreamAPIとかJava8の機能を使ったらどうかけるだろう、と思って書いてみた。 gist.github.com無駄に無限数列を定義してるけれど、こういう書き方が出来るようになっとことを考えるとJavaも変わったよな、と思う。 とりあえずStreamAPIバンザイ!

Node.jsメモ

ドットインストールで勉強してみたので簡単にメモっておく。 Node.js入門 (全16回)dotinstall.com 基本的なこと シングルスレッドモデル(イベントループ) JavaScriptで動く コールバックを用いた非同期処理 モジュール?の読み込み var http = require('ht…

「7つの言語 7つの世界」を読み始めた

Amazon.co.jp: 7つの言語 7つの世界: Bruce A. Tate, まつもとゆきひろ, 田和 勝: 本www.amazon.co.jp 随分前に買ったけれど読んでなかったので、今更ながら読み始めた。 第一章のRubyを読み書きしながら学習中。久しぶりにインタプリタ言語を書いたけれ…

WebブラウザでSwiftを試せる環境

忘れちゃうのでメモ。■RunSwift http://www.runswiftlang.com/■SwiftStub http://swiftstub.com/

git rebase -i

コミットの順番を入れ替えたり、統合したり、編集したり、いろいろできて便利。

git push -u

uをつけるとローカルブランチのupstreamを自動で設定してくれる。 デフォルトで有効にしてもいいくらい便利。

git pull --rebase

ローカルのコミットをリモートブランチの最新コミットから派生したようにrebaseする。 リモートブランチに追従したいときに便利。

Swiftz

Swiftzという関数型プログラミングのためのライブラリがあるらしい。 https://github.com/maxpow4h/swiftzが、正直全然わからなかった。どうやら少し調べてみたところScalazのSwift版らしい。で、Scalazを調べたら何やらよく分からんのですが標準ライブラリ…

mvコマンドでカレントディレクトリ内の全ファイルを移動する

ぐぐったら素晴らしい記事があった。 http://at-aka.blogspot.jp/2012/04/dot-dir.htmlコードだけ引用。 $ ls a.txt b.txt c.txt $ mkdir .dir $ mv * .dir $ mv .dir dir

Google Web Startar Kit

マルチプラットフォームに最適化されたWebサイトを作るスターターキットらしい。で、TwitterBootstrapのようなUIコンポーネントは提供されないということ。 理由として一度そういったUIライブラリを採用するとずっとそれに縛られるから、だそう。なるほど。h…

Bootstrap3

Bootstrap3はフラットデザイン採用とのこと。 http://getbootstrap.com/モバイルファーストって思想もいいかもしれないけれど、 個人的にはフラットデザインの美しさに惹かれた。Webアプリケーションの開発意欲を燃やされる・・!

iOS7 beta6 on iPad.

iPadに入れてみたけど、なんかモッサリして微妙。 UIは新鮮だけれど、どうしてもiPhoneに最適化されているように感じる。今後のリリースでどれほど改善されるか期待!

全てがtrue、1つでもtrueを判定するイディオム(Java)

よくありがちな実装のJavaコードイディオム。 // 全てがtrueか? boolean flag = true; for (boolean bit : bits) flag &= bit; // 1つでもtrueか? boolean flag = false; for (boolean bit : bits) flag |= bit; ちなみにScalaだと以下のように書ける。 //…

iモード用のXHTMLにCSSを適用する際に守るルール

どうやら以下を守る必要があるらしい。 DOCTYPEをiモード用のものに。 ContentTypeをapplication/xhtml+xmlに。 外部CSSではなくタグに直接スタイル指定する。 これらの理由から3キャリア対応する場合は、iモード用だけ別のHTMLテンプレートにしたほうが良さ…

Tomcat7+SAStrutsでリクエストダンプログが読みづらい場合の対処

Tomcat7だとorg.apache.tomcat.util.scan.MergedWebXmlという名前で、ServletContextに自動リロードされてマージされた(?)web.xmlの内容がセットされている。そのせいでSAStrutsのRequestDumpFilterにより、興味のないweb.xmlの内容が大量に履かれてしま…

EclipseのGitで落としたプロジェクトをJavaプロジェクトに変更する方法

commons-langをEclipseのGitプラグインでcloneしたら普通のプロジェクトになっていた。Javaプロジェクトとしてcloneしたかったのだけれども、やり方が分からなかったので調べてみたら.projectファイルを編集する方法が見つかった。http://www.javaroots.com/…

使ってみて良さげだったcommons-langのAPI

DateFormatUtils.format(Date date, String pattern) FastDateFormatというSimpleDateFormatより高速なフォーマッタを使ってるらしい。 インスタンス化しないで使えるのも嬉しい。 StringUtils.join(Object[] array, char separator) Scalaで言うところのLis…