uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

Advent Calendarでひさびさに記事を書きました。 流行り始めたtRPCでAPI通信を型にはめて開発しよう tRPCとは何か tRPCとは何でないか コード例 Zod(等)によるバリデーション TypeScriptの型をZodスキーマに変換する 他のJSフレームワークとの連携 GraphQLを…

React Queryを状態管理ライブラリとして使い倒そう!/useQStateのススメ

ことしもQiitaでアドベントカレンダーを書きました。 こちらにもリファレンスを貼っておきます。 はじめに これこれ、こういうので良いんだよ もうちょっと深刻なはなしとして みるみる減るぞ状態が 状態管理ライブラリとしてのReact Query React Queryでク…

ReactでAirtableのAPPS(アプリ)を作ろう!!

最近はNoCodeツールに興味をもっています。今年のアドベントカレンダーでは、以下の記事「ReactでAirtableのAPPS(アプリ)を作ろう!!」を書きました。 対象読者 Airtableって何? Airableサービスはどんな感じのものか? Airtableの特徴はなんなの? ノーコード…

React-SpringのHooksベースAPIでブラウザアニメーションを基本から極めよう!

React-SpringのHooksベースAPIでブラウザアニメーションを基本から極めよう!という記事をQiitaに書きました。 React-SpringというモダンなReact用のアニメーショライブラリ2を見つけて、Reactであれば! Hooksであれば!理解できそうなので(理解したとは言って…

Reactベース静的サイトジェネレータGatsbyの真の力をお見せします

Reactベース静的サイトジェネレータGatsbyの真の力をお見せしますという記事をQiitaに書きました。 「「爆速サイト」が必要ない場合でも得られるGatsbyの利点」などを書いています。 GraphQLは良いものだ。 導入 記事を書いた理由 「静的サイトジェネレータ…

Dartの変数定義時の修飾static/final/const、そしてconst constructorについて

「Dartの変数定義時の修飾static/final/const、そしてconst constructorについて」という記事をQiitaに書きました。 qiita.com 結論としては、「コンパイル時レイトレ」とかはできません(たぶん)。

Grails&React CRUDビュー生成2017 〜Reactベースの管理画面構築ライブラリAdmin-On-Restの紹介〜

これはG*Advent callender 2017の24日の記事です。 昨日23日の記事は mshimomuさん、明日25日の記事は未定です。 完全に一年ぶりの記事です。みなさん、いかがお過しでしたでしょうか。今年Qiitaとかに書いた記事を別にまとめましたが、わたしはReactを良く…

一年が過ぎ

一年hatenablog投稿してませんでしたね。 Qiitaに投稿してた1年分の記事を参照用にリンク貼っておきます。 qiita.com qiita.com qiita.com qiita.com qiita.com qiita.com qiita.com qiita.com qiita.com

Grails React Scaffoldを目指すざます

これはG*Advent callender 2016の記事です。 前日は@Ziphilさんの記事でした。明日は@ hikariruさんの記事です。 去年のG*Advent Calendarでは、本ブログではReact Meets Grails 〜ReactはエンタープライズSPAの夢を見るか?〜 - uehaj's blogと題して、バッ…

ParrotブランチでGroovy3を垣間見る

これはG*Advent callender 2016の記事です。 前日はわたし@uehajの記事でした。明日は@mshimomuさんの記事です。 はじめに Parrotブランチのコンパイル 警告 do-whileループ Java8構文 ラムダ式の記法 細かい話1 細かい話2 メソッド参照の記法 コンストラク…

List.collectManyで非決定計算

これはG*Advent callender 2016の記事です。 前日は@Ziphilさんの記事でした。明日はまた私@uehajの記事です。 出オチでタイトルオンリーです。 すごいHaksell楽しく学ぼう(以降H本)にも書かれているように、リストはモナドとみなすと「非決定計算」をあらわ…

JWTトークン認証つきのWeb APIを作るのはGrails+Spring Security REST Pluginを使えば非常に簡単である件

先日のJGGUG WSでのLT資料を公開します。「JWT」は、ついジェーダブリュティーと読んでしまいましたが、正しい発音は「jot(ジョット)」だそうです。 Use JWT access-token on Grails REST API from ちなみに、上記デモで使用する認証スキームBearerという…

Grails 3ってどうよ+ LT大会 - 日本Grails/Groovyユーザーグループ

連休明け5/13に、JGGUG(日本Grails/Groovyユーザ会)より、上記イベントがございます。 Sring BootをGSPとscaffold、GORMなどでさらに使いやすくしたフルスタックフレームワーク、Grails3について、実務適用している人たちとの情報提供、議論を行います。また…

Javaにも不変データ構造に基づいた(Cons セルベースの)リストがあるのだよ

TL;DR JDK(tools.jar)中、com.sunパッケージ配下に、javacが内部的に使っている「com.sun.tools.javac.util.List 」が含まれており、これは不変データ構造としてのリストのように(Cons セルベースのリストのように)利用できる。 はじめに ScalaのコードをGro…

Groovyをソースからコンパイルすると♪

groovyのソースをとってくるじゃろ。 % git clone https://github.com/apache/groovy.git コンパイルするじゃろ。 % cd groovy % ./gradlew installGroovy すると、頭の中であの音楽が鳴り始める♪

React Meets Grails 〜ReactはエンタープライズSPAの夢を見るか?〜

本記事は、G*Advent Calendar 2015の24日目の記事です。 昨日は it__sseiさんの記事で、明日はtouchez_du_boisさんの記事です。 (2016/1/22追記) id:bati11_ さんが、本記事で作成しているボイラープレートコードのReact部分について、ステップバイステップ…

(Babel 5における)ES6のモジュールを解説してみた

警告 以下でのモジュールの説明はトランスパイラであるBabel 5,6で動作を確認した振舞いについての記述です。2015年11月現時点で、ECMAScriptのモジュール仕様策定範囲は、本来の全体範囲のまだ一部であるとのことです。その状況でのBabelの実装は、良く言え…

Reactはリアクティブプログラミングなのか?

Reactとは 設計をとりもどす Reactでやってみる Elm-HtmlとReactの対応 ReactはFRPか? ReactはFPか? FPとOOPの真の関係 まとめ 追記 Reactとは Reactは、Facebookが開発した、JSのUIフームワークもしくはライブラリです。Reactが提供する中核機能は以下です…

JCUnitのBuilder APIをためす

以前、以下の記事で紹介した、JCUnitの開発がすすんでいます。(開発ブログ, ソース) uehaj.hatenablog.com 主な拡張としては、状態機械をモデリングしてテスト生成、ビルダーAPIの整備などなど*1 Spockからの利用サンプルをかきなおしてみました。ビルダーAP…

今こそッ、始めようGrailsブートキャンプ!!!!

以下のイベントが予定されています。 Grails3対応のGrailsブートキャンプです。 Grails3というのが出たタイミングで、ちょっと取り組み直しみよう、という向きに最適です。 jggug.doorkeeper.jp 山本さん(id:yamkazu)NTTSOFTが講師です。 ご興味があればぜひ…

GroovyのクロージャとJava8のlambda式の違いについて

この両者は、似ているようでいて、基本的には別モノです。表にしてみます。 Groovyのクロージャ java8のlambda式 導入時期 2003年 2014年03月 ローカル変数へのアクセス 読み書き可能 実質的にfinal(変数そのものに対しては読み込みのみ) 実装方法 Closure型…

渋谷JVMで「いまさら始めようGroovy」を話しました

昨日、渋谷JVM 渋谷JVM (2015/04/18 13:00〜)d-cube.connpass.com にて発表させていただきました。 アテンドいただきましたコミュニティのみなさん、ビズリーチさま、聞いてくださったみなさん、ありがとうございました。また懇親会ごちそうさまでした(たこ…

TaPLのML実装をRustでやってみるシリーズ まとめ

型システム入門 −プログラミング言語と型の理論−、を読んでおります。 型システム入門 −プログラミング言語と型の理論−posted with amazlet at 15.04.13Benjamin C. Pierce オーム社 売り上げランキング: 336,081Amazon.co.jpで詳細を見る これをちまちまと…

関数型とかの論争について

身と蓋がナッシング まず身も蓋もないことをいうと、結局はCPUの命令セットとして動く言語ですからして、大差はないんですよね。 でもこういうことを言うのは、「どうせ宇宙なんて原子の集合だろ!」という小学生なみです。 なので言わない。でもその認識を捨…

G*Magazine Vol.8に記事をかきました

G*Magazine Vol.8に、Groovy 2.3, Groovy 2.4β4までで導入された新機能の解説記事を書きました。 PDF版もありますが、ブラウザで見れる以下のリンクを紹介します。 Groovy臨機応変(第三回)〜Groovy 2.3の新機能〜 - MyBetaBook Groovy臨機応変(第四回)〜…

G*なWeb API

Grails3もカウントダウンな感じのおり、イベント紹介です。以下引用。 G*ワークショップZは日本Grails/Groovyユーザーグループの定例イベントです。Java仮想マシン上で動作するGroovy、Grails、Gradle、Spock、vert.xといったG*技術をテーマに、ハンズオンや…

Elmでやってみるシリーズ16: マウスストーカーを実装する

「リアクティブプログラミングの技術を用いてマウスストーカーを実装する - はこべブログ ♨」という記事があり、興味深いのでElmのリアクティブプログラミングで似たようなことをやってみました。 全画面表示はこちらから。 コードは以下で、プロジェクト全…

Grails/Groovyのサイトを構築している、名もなき静的サイトジェネレータ

Grails/Groovyのサイトは、静的サイトジェネレータで作成されています。Groovyサイトは去年ぐらいからそうだったのですが、最近Grailsもそうなりました*1。 しかしこの静的サイトジェネレータの名前がわかりません。ソースコード上は、単に「generator/SiteG…

Elmでやってみるシリーズ15: Json.Decodeで9個以上のフィールドを持つobjectをデコードしてみる

本記事では、ElmのコアライブラリにおけるJSONデコードパッケージJson.Decodeを用いて、9個以上のフィールドをもつオブジェクトのデコード方法について説明する。 2015 08 31追記あり(andMapを使用する) その前に その前にJson.Decodeを簡単に説明する。 Jso…

Elmにおけるimportの使い方

Elmにおけるインポートの方法を説明する。本説明が対応するElmのバージョンはElm 0.14かそれ以降、ただしインポートの仕様は今後大きく変更される可能性がある(今後についての関連情報)。 他モジュールで定義され、エクスポートされた識別子(型コンストラク…