What is it, naokirin?

Rails のモデルを整理しよう

Rails では様々な機能を使って、共通化や抽象化、シンプルなコードへの書き換えなどを行えるようになっています。今回はモデルに焦点を絞り、それらをまとめていきたいと思います。また、整理を始める前に気をつけるべきことをまとめておこうと思います。 Ra…

Rails migrationで使うデータ型を考える

ざっくり migration で指定するデータ型について書いておきます。 型の種類 文字列の扱い 小数の扱い ID パスワードの保存 まとめ 型の種類 Rails の Migration で指定できるデータ型としては一般的に以下があります。(今回の説明のため primary_key は除い…

kaminari に入門して、ページネーションしよう

github.com kaminari といえば、Rails などでページネーションするための gem です。 今回は Rails に導入してみて、ページネーションしてみることにします。 今回は Rails 5.2, kaminari 1.1.1 で行っています。 kaminari をインストールする 確認用に User…

Ruby on Rails の has_secure_password のコードを読んでみる

最近は個人アプリ開発だと OpenID Connect などで済ませてしまうかもしれませんが、Ruby on Railsで直接パスワードを記録する際にデフォルトで利用できる has_secure_password メソッドの実装を読んでみました。 読んだのは Rails v5.2.3 になります。 has_s…

Micronautで簡単なHTTPサーバーを実装してみる

記事を書いたばかりですが、Micronautに触った続きとして、もう少し実際の実装部分を掘り下げたところを書いてみます。 前回の記事は以下です。Micronautの導入やIntelliJ IDEAでの開発方法、Micronautによるサーバーの実行方法はこちらを参考にしてください…

Micronaut に入門してみよう

結構前から気になりつつ、触ることができていなかった Micronaut に今回入門することができました。 micronaut.io どんなものかは実際のページを見てもらうと早いと思いますが、以下にざっくりとした紹介を書いてみます。 マイクロサービスを見据えたJVM上の…

Kotlinプログラミングを読んだ

Kotlinプログラミング作者: ジョシュスキーン,デビッドグリーンハフ,Josh Skeen,David Greenhalgh,吉川邦夫出版社/メーカー: 翔泳社発売日: 2019/02/14メディア: 単行本この商品を含むブログを見る 2019/2/14 に発売された Kotlin 初心者向けの書籍。 Kotlin…

ActiveModel::Model で DBに依存しないモデルを作ろう

もう使い古されたネタという感じですが、Railsを使わずとも ActiveSupport だけを利用してRubyのコードを書くことは結構多いのではないでしょうか。 blank? , present? であったり、 pluralize や try 、 1.year.ago のような呼び出しなど、ヘルパーメソッド…

Kotlin向けDIフレームワーク Koin を使ってみよう

Kotlin は最近は Android で正式採用され、開発に採用される方も増えてきたのではないかと思います(とはいっても Google I/O 2017 なのでもう一昨年の話ですが)。 Androidに限らず、テストを書いたりしながら開発をしていると、DIのような依存性を柔軟に解…

EspressoでAndroidのUIテストを始めよう(with Android Studio)

と言いつつEspressoによるUIのテストは初心者です。 今回はAndroid StudioでEspressoによるUIテストをやってみたので、その導入と初歩的なコードを書きのこしておくことにします。 Android Studioでプロジェクトを作成するのは特に特別なことはしないため、…

JupyterLab で unittest を実行する

最近「仕事ではじめる機械学習」という本をとある方から頂いたのですが、本の最初に「ゼロから作るDeep Learning」などの二冊目として活用してくださいといったことが書かれていました。そもそも機械学習やらに一切触れてきていない(どんなものかをなんとな…

Effective SQL を読んだ

Effective SQL作者: JohnL.Viescas,DouglasJ.Steele,BenG.Clothier出版社/メーカー: 翔泳社発売日: 2017/12/20メディア: Kindle版この商品を含むブログ (1件) を見る 三連休を利用してEffective SQLを読んだので、読後の感想を書いておきます。 個人的には概…

個人的なプログラミングのときに考えていること(2018年版)

目次 目次 趣旨 始める前に考えること プログラミングで解決しようとしている問題を理解する そもそも解決すべき問題なのか考える より良い解決策が無いか考える 実装の前に だれが関係者か(ステークホルダの理解) なにが関係するか(依存するタスクの把握…

木構造を描くアルゴリズムについて(Reingold-Tilford Algorithm)

最近、UnityでPlayable APIというものを調べる機会がありました。 その際にそのPlayableの木構造をUnity上で表示できるEditor拡張としてPlayableGraphVisualizerというものがあると知ったので軽く見ていて、「Reingold Tilford」というものが出てきて調べて…

Unityでスクリプトの一部分の処理をProfilerに表示してもらう

今日は非常に初歩的なTips的な話です。 Unityのドキュメントをちゃんと読んでれば知ってるくらいの知識、ということで。 Unityでゲームを開発していると(というよりはゲームを開発しているとよくあるとは思うのですが)、どうもダメージを食らったときにも…

MySQL(InnoDB)のインデックスについての備忘録

最近、インデックスについて調べることがあったので、忘れないうちに出来る限り情報を残しておこうと思います。 ちなみにMySQLのバージョンは5.5および5.6の情報を元にしています。 InnoDBにおけるインデックス インデックスの構造 B+Treeインデックス InnoD…

プログラミングで考えていることについて考察してみる

まえがき 前回までDDDの読書記事書いてたのですが、7章くらいまで読んだあたりで先にやりたいことができてしまったので、一旦中断しています。(6, 7章は年末年始の間に記事書きます) 今回は年末ということで今年の振り返り的な記事を書きます。 はじめに …

Buffetってライブラリを作ってみた

何ヶ月かこそこそと裏で作ってたライブラリを公開しました。 GitHub - naokirin/Buffet よくあるExcel式データ駆動開発で、ファイルやシートを横断的に検索するのがキツいというのを感じていたので、気軽にデータ定義をするだけでExcelに入っているデータを…

アジャイルソフトウェア開発の奥義を読み終えた

苦節2年、ついに読み終えました。 買ってから半年寝かせ、そこから1年半書けてようやく読み終えました。 とは言っても、結局まだまだ実際のコーディングやらに結び付けられているというのは結構少ない感じがしています。 それとだらだらと読んだせいで、細か…

MonoGame + Xamarin Androidで書き方が変わってた

最近、Xamarin AndroidのIndieライセンス契約をして、MonoGameをいじってみたりしています。 先週、MonoGameを入れた時に気になっていたこととして、Xamarin Androidでアプリを作成した場合に起動後2回目のResumeでExceptionが発生していました。 そのときは…

mutableな参照渡しについて

mutableな参照渡しというものが、たまに出てくる。 あれがどうにも苦手で、コードの理解が約1/4に落ちているような感覚になる。 私自身はあまり記憶の才はないので、こっちの関数でこの変数はこう変更されて、次の関数に渡されて…と考えてるとわけが分からな…

C#の素晴らしさを語る会に参加させていただきました

C#の素晴らしさを語る会に参加させていただきました。C#愛に溢れた発表が多く、C#の良さはすごく伝わる内容だったと思います。また、内容は.NET Frameworkのプラットフォームについてから、言語仕様、LINQ、他言語連携(ネイティヴ)、unsafe利用、Roslynな…

Haxeでusing Lambda !

mixin Haxeにはmixinという機能があります。mixinは例えば次のようなクラス class Foo { public static function foo<T> (list : List<T>) : Void { for (x in list) { trace (x); } } } があった場合に通常の呼び出しとしては var list = new List<Int> (); list.push </int></t></t>…

NME : Haxeでクロスプラットフォーム開発のできるライブラリ

Haxeの勉強を始めたばかりですが、NMEが面白いのでちょっとだけ紹介します! Haxe自体、様々な言語へ変換出来ると言う面白い言語です。さらにNMEでは様々な環境向けにビルドができ、GUI開発ができます。(とはいえ、今はゲーム開発専用と言っても良さそうで…

NMEでhtml5にエクスポートする際にTextFieldの中央寄せができない

つい1週間ほど前にHaxeの勉強を始めました。ついでにクロスプラットフォーム開発のために、NMEを使っています。 そのときに var textField = new TextField (); textField.text = "aaa"; var textFormat = new TextFormat ("_sans", 30, 0x333333); textFiel…

ちょっと気軽なOUnit:pa_ounit

OCamlを使っている皆さん。テストコードは書きますよね。 そこでOUnitの登場です。 OUnitはOCamlのユニットテスティングフレームワークです。OSSなどでも良く使われています。…が、OUnitは結構冗長、というよりテスト自体の本質が見えにくくなることがありま…

OCamlのテスティングフレームワークを作ってみたり

練習もかねて、テスティングフレームワークを書いてみてました。最初はこんなに大きなものを作る気がなかったので、バージョン管理してなかった(汗正直言ってあまり出来は良くない。複雑だし、いろいろメンドイ。それにOUnitよりいい点があまり無い。 方向…

StateモナドをOCamlで実装してみるという不相応な事をやってみた

ずいぶんとエネルギーを持っていかれた気がする…最近、モナドも使い慣れるといろいろ好都合だったりするので、自分用にほぼ最小に近いレベルでOCamlにモナドを実装していこうといろいろなモナドの実装をしています。とはいえ、まだMaybe, List, Lazyくらいで…

OUnitで遊ぶ (2)

前回とはうって変わって、ちょっとだけassert文をどうにか出来ないかなぁという感じの方向性で作ってみました。 module type ASSERT = sig type t val cmp : (t -> t -> bool) val printer : (t -> string) end module MakeAssert(AssertType:ASSERT) : sig …

OUnitで遊ぶ

OUnitはOCamlでは関数がオーバーロード出来ないとかそういう関係で複雑な処理に対してや、パラメタライズドなテストコードが非常にコード自体が見にくくなる傾向にあります。なので遊びがてらいろいろ試してみようと思いました。 open OUnit open List let (…