みなさん、年末年始の休暇はいかがお過ごしでしょうか? 今回はそんな年末年始休暇にRustでWASMを実装してみました。 右から左に全国1474市区町村名が流れて、クリックすると、詳細を確認できます。 流れる SHI・KU・CHO・SON リポジトリは以下です。 GitHub…
Web+DB Press Vol.132 に、「オブジェクト指向神話からの脱却」という特集記事が掲載されていました。 gihyo.jp この記事を読んで、なんだかんだオブジェクト指向と言われるプログラミング言語を使って仕事をしている身として、久々に「オブジェクト指向」と…
(個人的な観測範囲からですが)React界隈を中心にデザインシステムなどとともに、Storybookを導入している企業が増えてきているように思います。 自分は直近では、Ruby on RailsでSSRをメインに開発をしていることが多いため、導入がやや難しいと感じていま…
最近、フロントエンドは Vite で開発するのが主流になっていると思いますが、Railsの場合、なあなあでそのまま来ている場合も多いかなと思います。 開発体験の改善ができないかということを考える機会があり、RailsでViteを導入する際の手順を vite_railsを…
昨日の記事でも書きましたが、アプリをリリースしました(現在、Android向けのみ) play.google.com この際に、どのようなアーキテクチャを採用して開発をするか悩みました。 Web上を色々と見てみた感じでは、MVVMを採用しているのが主流っぽいです(あくま…
最近、3ヶ月ほどでFlutterの学習&アプリ開発して、Google Play Storeにリリースしました。 play.google.com このときに利用したパッケージについて、簡単にまとめて紹介しておきたいと思います。 Dart、Flutterのバージョン 開発時のバージョンは以下です。…
複数のシステムからアクセスできるデータ基盤のような環境を作成しようとした場合、自前でのAPIの構築や認証/認可などの仕組みを整える必要があります。 一方で、データ基盤としては、最初はそこまでパフォーマンスチューニングや特別な機能を必要としてい…
Flutter(Dart)でHTTPリクエストする場合には、httpパッケージを利用するのが便利です。 pub.dev こちらを利用して、以下のようなJSONファイルをHTTPサーバーから取得するコードを書きました。 import "package:http/http.dart" as http; Future<String> fetch(Stri</string>…
最近、個人的にFlutterを使ってみているのですが、データを表現するクラスを作成する際にFreezedというパッケージが非常に便利だったので、紹介したいと思います。 pub.dev 確認したバージョンは以下です。 freezed 2.2.0 Freezedとは Freezedは、データを表…
最近は開発の状況によって、同じマシン上でもプロジェクトによって複数の言語バージョンを使い分けることが多く、nodenvやrbenv、jenv、pyenvなどを用いて、プロジェクトごとに複数バージョンを使い分けられるツールが定着してきています。 (言語そのもので…
最近、個人開発ではVue.js + TypeScriptをちまちまと書いています。 フロントエンドをがっつり書いていると、開発によってファイル数が増えていくとともに、依存関係や宙ぶらりんなモジュールができたりと言ったことが起きてしまう場合があります。 そこで、…
Piniaとは Vue.jsを使う場合に、特にSPAの開発をしていると、クライアント側でグローバルな状態を共有したいことが多々あります。 これまではVue.jsでこのような手段として、ストアライブラリのVuexが使われることが多かったかと思います。 一方でVuexは、v4…
Jestは、JavaScriptのテスティングフレームワークです。 一般的にテスティングフレームワークは、モック機能は別ライブラリとなっていることが多いのですが、Jestには組み込みのモックライブラリが存在しています。もちろん他のモックライブラリを利用するこ…
久々に小ネタ的な備忘。 タイトルの答えは以下です。 const func = () => { ... }; type FuncReturnType = ReturnType<typeof func>; ただし、 ReturnType が使えるのは TypeScript 2.8からです。 以下は雑記です。 ライブラリのFactory関数の戻り値に型をつけたい 最近、</typeof>…
Rustに限らず、静的型付き言語で実行時にスクリプトを読み込んで機能拡張できるようにしたいことがたまにあります。 今回はPyO3を利用して、RustでPythonを呼び出してみます。 なお、PyO3はPythonからRustを呼び出すこともできますが、今回はRustからPython…
Webアプリケーションサーバのフレームワークなどでは、受け付けたリクエストのデータが適切かをチェックするためのバリデーション機能があります。 Rustでは汎用的なバリデーションのクレートとして validator が存在しており、こちらを使う機会があったので…
普通に日本語チェックするのめんどいよねーという話が定期的に上がるけれど、有料のサービス組み込むほどじゃない、ということで、textlintで気軽にできないかなと思い立ったのでやってみました。 なんとなくRailsにActiveAdmin突っ込んで、管理画面のフォー…
ポケモンを衝動買いしたものの、全然やる暇がないですね。。。 時間は作るものらしいので、ポケモンやる時間作ります(現在進行系でブログ記事に時間を使ってますが)。 今日は、ちまちま作っているOSSの fakey-cognito で使っている RustのWebフレームワー…
Rustには、宣言的マクロ(Declarative macro)と手続き的マクロ(Procedural macro)があるのですが、今回は比較的書く機会の多い宣言的マクロについて記載します。 宣言的マクロとはなにか? Rustでは、メタプログラミングの機能としてマクロが存在していま…
本日は11月23日、新嘗祭の日ということで、ありがたくご飯を食べながら記事を書いていこうと思います。 (キンロウカンシャのひ?キンロウってなんですかね…? ) 今日は、Ruby on Railsでは当たり前のようにDBに生やす、 created_at と updated_at をSprin…
最近はもっぱら電子書籍を買うことが多くなりましたが、物理スペースを気にせず一気に買えるので、積み本が増えてしまっている今日このごろです。 今日は、Vue.js の Vue Routerを使う際に、「遷移時に毎回処理をしたい」といったことがあったので、その際に…
最近はちまちまとKotlinとSpringBootのアプリケーションを勉強しています。 SpringBootの場合、Kotlinでも、JUnitを使うほうが何かとサポートが手厚く、Web上のドキュメントも豊富ですが、今回は勉強ということでkotest(旧KotlinTest)を利用してみました。…
Mi-Analyzerを4月23日にリリースしました! --- 2021/11/7 追記 --- すみませんが、Mi-Analyzerのサービス提供は終了しました。 多少お時間をいただく可能性が高いですが、今後、OSSとして一部公開を目指しています。 --- 追記終わり --- Mi-Analyzerはスプ…
前回は、コルーチンについてをまとめました。 naokirin.hatenablog.com 今回は初期化についてをまとめておきます。 初期化の順序 突然ですが、まずは各初期化処理がどの順序で呼ばれるのかを把握しておきます。 class User(val name: String, val age: Int) …
前回の記事で、コレクション関数をまとめました。 naokirin.hatenablog.com 今回はコルーチンについてまとめておきます。 コルーチンとは コルーチンはある処理を中断・再開できるインスタンスを指します。 スレッドもこのような動作を行うことができますが…
前回の記事で、スコープ関数をまとめました。 naokirin.hatenablog.com 今回はコレクションを操作する関数をまとめておきます。 今回紹介する関数はすべて、もとのオブジェクトを変更せずに、操作後の結果を別のオブジェクトとして返却するようになっていま…
久々にKotlinを書き始めたものの、1年以上間が空いているので、ざっと言語仕様と標準ライブラリについてを学び直し中です。 そこで、Kotlinの特徴的な機能の一つである「スコープ関数」をまとめておくことにしました。 スコープ関数とは Kotlinにおけるスコ…
最近、データ分析した結果をフロントエンドのサーバーに返す、Juliaのバックエンドサーバーを実装していました。そこで、そのコアとなる実装を紹介し、Juliaで簡単なWeb APIサーバーを実行できるようにするためのソースコードを紹介します。 手っ取り早く実…
Juliaでのユニットテストの書き方と、やや踏み込んだコードを書いたときに重宝するモックについてを記載します。 バージョン Juliaでユニットテスト @test でテストする @testset を利用してテストケースをまとめる @test_throws で例外の発生をテストする …
今回はJulia & ScikitLearn で有名なアヤメのデータを用いて分類をやってみます。 前回と同じく Julia v1.2.0です。 Julia でニューラルネットワーク まずは必要なパッケージを追加、インポートします。 In [ ]: ] add ScikitLearn In [ ]: ] add Plots Stat…