算譜王におれはなる!!!!

偏りはあると思うけど情報技術全般についてマイペースに書くよ。

プログラミング

LINEの新しいMessaging APIを試してみた

つい先日、LINEの新しいMessaging APIが公開されました。 business.line.me 以前、こんなものを作っていたこともあり、早速試してみました。 taro.hatenablog.jp 作ったもの 最初の挨拶みたいなやつは、ダッシュボードから設定できます。 ここらへんは以前と…

LINE BOT「親切なDおじさん」を開発したよ〜

LINEのBOT APIがTrialとして無料で個人で使えるようになったので、さっそく試してみました。 つくったもの 某テーマパークのアトラクションの名前をつぶやくと、その待ち時間や運転状況を教えてくれるBOTを作りました。 その名も「親切なDおじさん」! 検索…

"double context extension" pattern (命名適当) #kotlin

任意の型Aの拡張関数の中でエンクロージング型Bのメンバを使いたいとき、 次のようなコードは自然ですが、fooはBの中でしか使えなくて不便です。 When we want to use a enclosing type B's members in any type A's extension function, the following code…

(ネタ)Kotlinで暗黙の引数いろいろ

Kotlinの関数リテラルはその引数が唯一つだけの場合、暗黙の引数としてitが使用できるのはみなさんご存知だと思います(暗黙の引数という言葉は正確じゃないような気がするけど気にしない)(知らない人は公式ドキュメントか今日発売のSoftwareDesignを見るとい…

KotlinのClass Delegationについて

KotlinにはClass Delegationという機能があります。 公式ドキュメントはこちら。 これの使い道について書きたいと思います。 そもそもClass Delegationって? Delegation、つまり委譲の仕組みです。 例えばこんな感じ。 // 挨拶する人のインタフェース trait…

#Kotlin 向けAndroidライブラリ #Anko のレイアウト組むやつこんな感じに使ってみるとよさげ?

AnkoというKotlin向けAndroidライブラリがあります。 JetBrainsが開発しています。 先日、公式ブログでもアナウンスがありました。 Announcing Anko for Androidblog.jetbrains.com 面白くて便利なAPIが揃っていますが、目玉機能はUIレイアウトを構築するDSL…

KotlinでJavaみたいなメソッド参照をする

Javaでのメソッド参照、便利です。 例えばこんな感じのやつ。 // Java class Person { // 省略 String getName() { return name; } } // Java Optional<String> name = Optional.of(person).map(Person::getName); すっごく便利ですよね! これをKotlinでやろうとす</string>…

Kotlin M10で追加されたreified type parameterがいい感じ

reified type paramter = 具象化された型パラメータ 名前が強そう。 目的としてはKotlinでJavaクラス(Classインスタンス)を得るための関数javaClassをもっと楽に使えるようにすることっぽい。 例えば今までは、こういう関数↓を作るには引数としてClassインス…

Kotlinでだって型クラスしたい!

無理です。 でもAdapterパターンをいい感じに使えばそれっぽいことができます。 したいことは既存のクラスに触らずにインタフェースを追加したいのでAdapterパターンなのです。 /** 人です。名前を持ってます */ class Person(val name: String) /** 挨拶で…

Java8でカリー化

完全におもちゃです。 使いたくなる場面はないでしょう。 いきなり全コード↓ package sample; import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Function; public class Main { /** 2引数関数のカリー化 */ sta…

Android Wear Hackathon in Tokyoに参加してきた

AndroidWearのハッカソンに参加してきた。 僕は夢と魔法の待ち時間のWear対応に挑戦した。 待ち時間の自動更新をNotificationでユーザに知らせるって機能は以前からあったので、Wear固有のAPIを使ってよりリッチな通知を作り込もうと思った。 で、今回の成果…

KotlinのNullable型をモナドっぽくしてみた

昨日、@seri_kさん主催の第五.五回 #渋谷javaに参加しました。そこで「Kotlin Nullable型をモナドっぽくしてみた」というタイトルで発表させていただきました。その内容をもう少し詳しく解説したいと思います。なおタイトルに含まれている「モナド」という言…

KotlinでAndroidアプリ開発: Viewのインジェクションを実現する

AndroidAnnotationsはKotlinでは使えない アノテーションを付けることでボイラープレートなコードを削減するツールであるAndroidAnnotationsは僕にとってもはやAndroidアプリ開発で欠かせないツールとなっています。AndroidAnnotationsを使ったサンプルコー…

Kotlin用DIフレームワークをつくってみた

つくってみました。 その名もInjeKTor。 この名前かなり気に入ってます。 全コードはこちら→https://github.com/ntaro/InjeKTor 以前書いたエントリでKotlinの委譲のための機能を紹介しました。 これを活かすためにコンストラクタ・インジェクションを行いま…

KotlinでDSLを作るときに活躍する5大言語機能

メリークリスマス!とか言いつつ、このエントリは、Kotlin Advent Calendar 2013の2日目分のエントリです。空きを放置はしたくないので過去分をやります。まだ枠はあるのでやりたい方はぜひ!! Kotlinは内部DSL (Internal Domain Specific Language) を記述…

KotlinでDIして遊ぶ

Kotlin Advent Calendar 2013 10日目のエントリです。 依存性注入したい タイトルの通り今回はKotlinでDIに挑戦。DIコンテナ使うんでなく素のKotlinでやってみる。難しいことをやろうとしているのではなく、責任外の処理を別のオブジェクトに委譲してユニッ…

Kotlinでカリー化と関数部分適用

Kotlin Advent Calendarの5日目。まだ空きだらけなので2回目やるよ。今日は以前少し書いた内容をもっと見て行こうと思う。 カリー化 Kotlinにおける関数オブジェクトをカリー化する。あたかも最初からカリー化されてるように見せるためにこんなコードを書く…

SlideShareのAPIラッパーをScalaで作ってるよー

最近はScalaを勉強している。 コップ本を6割くらい読んだ。 個人的にコップ本は読みにくい。丁寧で網羅的な解説はありがたいんだけど。。 ちょっとしたコード書いて遊んでる。 スライドパズル解くプログラム作った。 あと、タイトルのとおり今はSlideShareの…

KotlinのConcurrencyライブラリを使う

スレッドを生成する Javaの標準ライブラリを使えばこんな感じ。 fun main(args: Array<String>) { Thread(object: Runnable { override fun run() { println("Done.") } }).start() } 実は、1つの抽象メソッドを持つインタフェースのインスタンスはより簡単に書ける*</string>…

Rubyはじめました

Rubyの勉強を始めた 動的言語はGroovyをかじったり、JavaScriptを必要に応じて書くくらいで、静的言語ばかりやってきた僕にはものすごく難しく感じるわけですよ。 それでも勉強しようと思ったのは、 純粋に面白そう 新しい言語の勉強は、言語問わずプログラ…

Java7でカリー化 + 関数の部分適用

Java 8でラムダ式が導入されるそう。あまり詳しく追ってないからよくわらないけど、どの程度関数型言語のパラダイムを輸入するんだろう。個人的にはJavaは、良くも悪くもJavaらしい方が好きw JVM上で動くプログラムが欲しかったら、別の選択肢もたくさんあ…

落ち着け...素数を数えて落ち着くんだ... #kotlin

FizzBuzzブームが再び巻き起こり、鎮火したかと思ったら「整数を数えていき、素数のときにJOJOと表示する」遊びがひそかに流行している。 mike、mikeなるままに…: 素数の時にEnrico Pucciと出力するプログラムを書いてみた 素数の時にJoJo -Java- - 水まんじ…

KotlinというJVM言語が面白そうだよ〜

今更ながら(?)Kotlin(コトリン)というプログラミング言語に興味を持ったので調べています。参考サイト:Welcome - Kotlin - ConfluenceKotlinは去年の7月に発表された言語で JetBrainsにより開発されている JVM向けの静的型付けプログラミング言語 工業…

流行りのFizzBuzzをやってみたよ〜

最近、Twitterのタイムライン上でFizzBuzzが大流行! FizzBuzzと言えば、プログラミング初級者のための練習用のクイズです。1から数えて行き、3の倍数のときには"Fizz"、5の倍数のときには"Buzz"、3の倍数かつ5の倍数のときは"FizzBuzz"と数字の代わりに表示…

「プログラミングGROOVY」を読んだよ〜!

「プログラミングGROOVY」という本を読み終えました。 GroovyはJava VM上で動作するプログラミング言語です。この本には、Groovyの特徴は簡潔さ、柔軟性、Javaとの親和性とあります。Groovyを学び、その特徴を実感しました。 特にその3つの特徴の中でもGroov…