Rust製CLI作成支援パッケージSeahorseの紹介

めでたくメジャーバージョンがリリースされたので、 僕が最近ちょっとだけコミットしたRustのパッケージの紹介をします。 Seahorse github.com Seahorseは、RustでCLIツールを制作するときに助けになるパッケージです。 CLIツールを作る人がSeahorseを使うこ…

Unity 適当にアニメーションする

FlutterでいうところのTweenみたいのを簡単につくる UnityのGUIでAnimation作って、AnimationControllerで云々とかやりたくない人(僕)向け private IEnumerator fadeout() { for (int i = 1; i < 101; i++) { yield return null; DetailPanel.alpha = (100…

タプル構造体を構造体のように扱うことはできても逆はできない

#[derive(Debug)] struct Data(i32); fn main() { println!("{:?}", Data{ 0: 0 }); // => Data(0) } これは合法なのに #[derive(Debug)] struct Data2 { 0: i32 } fn main() { println!("{:?}", Data2(4)); } これはコンパイルエラーになってしまう という…

std::any::type_name はバッチリ型名を返してくれるわけではなさそう

qiita.com こちらを見て本当にクロージャかなと色々試していて気づいたこと (記事の内容はあんまり関係ありません) std::any::type_name::<T>() は型引数の名前を返してくれます。 のでこんな形で値を渡すことで、その値の型が(文字列で)得られます fn prin</t>…

docker-composeで一つのコンテナ(サービス)だけをno-cacheでビルドする

一つのコンテナをビルドするだけなら $ docker-compose build worker キャッシュなしで全てビルドするなら $ docker-compose build --no-cache じゃあ一つのコンテナをキャッシュなしでビルドするには $ docekr-compose build worker --no-cache や! と思っ…

Unity Android実機デバッグをする

実務経験としてはiOS -> Flutter -> Unity とたどってきたため、 FlutterやUnityでAndroidアプリは作ったことがあるものの、 Androidなーんもわからん状態なのでAndroidの実機デバッグをどうやればいいか全くわからんマンであった。 今日Android実機のみで発…

UIWidget 非同期処理をDebounceする

状況 UniRx UIWidgets こういった文字列検索フォームを作っていて、 検索ロジックは「サーバーに検索文字列をPOSTしてそのレスポンスを反映する」というものでローカルで完結しない。 サーバーにアクセスする都合上、(大きな問題にはならないと思うが)Text…

C#は三項演算子で暗黙の型変換してくれない

C#入門数日目なので温かい目で・・・:pray: 状況によって Container または Text を表示する、みたいなコードを書く際、 Flutterだと Column(children: <Widget>[flag ? Container() : Text('some text')]) ができるけど、 C#は new Column(children: new List<Widget> { fla</widget></widget>…

Unity UIWidgets アニメーションしない画面遷移

Navigator.push はデフォルトでアニメーションがありますが、 それをなくす方法 @ UIWidgets Flutterだと class NonAnimatingRoute<T> extends MaterialPageRoute<T> { NonAnimatingRoute({this.builder, this.settings}) : super(builder: builder, settings: set</t></t>…

Unity UIWidgets 画面サイズにあわせてウィジェットのサイズを変更する

UnityのUIWidgets, 便利ですね。 ただ、Flutterでよく使われるような便利なパッケージが無いのが痛いところ。 FlutterならScreenUtilをインポートして脳死でパーツサイズを指定してマルチデバイス対応できましたが、 UIWidgetsだと自分でちょっとだけコード…

administrateで名前空間を持つDashboardが選択してもactiveにならないとき

通常、ダッシュボードのナビゲーションは、選択中、文字が太くなる が、 ActsAsTaggableOn::TagDashboard みたいに名前空間がくっついている場合、適切に太字にならない問題がある module Admin class ApplicationController < Administrate::ApplicationCon…

UnityでInputFieldのパスワードが取得できない

Unityでログインフォームみたいなものを作る際、 ContentTypeがPasswordなInputFieldを作り、 using UnityEngine; using UnityEngine.UI; public class SendLoginButton : MonoBehaviour { [SerializeField] Text emailText; [SerializeField] Text password…

master.keyを再生成する

雛形プロジェクトをコピーしてきて新しく始める、だとか master_keyもRAILS_MASTER_KEYも失われてわからなくなってリセットするしか無い、などの状況になったときに config/master.key と config/credentials.yml.enc はどうやったら再生成できるのか調べた…

darksky APIのiconとslackのemojiをマッピング

天気予報から今日のステータスアイコンを変更するLambdaを書くときに使ったもの darksky doc def weather_emoji_mapper(weather_icon) case weather_icon when 'clear-day' ':sunny:' when 'clear-night' ':crescent_moon:' when 'rain' ':umbrella_with_rai…

Sorcery + Request Specで undefined local variable or method `user_sessions_url'

Sorceryを使ったユーザー認証のあるRailsアプリケーションについて、 Request Specでユーザーログインしている状態としていない状態でテストをしようとしたら undefined local variable or methoduser_sessions_url'` が出たのでそのあたりの話 Request Spec…

ユーザー認証にSorcery使ってるときのFactoryBotでactivation_state: 'active'にできない

表題の通り ユーザー認証にSorceryを使っていて、(:user_activationを設定していて、) authenticates_with_sorcery!したUserモデルのFactoryBotで、 FactoryBot.define do factory :user do ... trait :activated do activation_state { :active } end ... e…

AWS Lambdaに割り当てるメモリが少なすぎてスクレイピングに失敗していた

タイトルの通りです。 Lambda + Ruby2.5 + Mechanizeでのスクレイピングが50%ぐらいの確率で失敗していて、 原因がわからず彷徨っていたけどなんとなくメモリ増やしたら落ちなくなったのでメモ ちなみに128MB -> 1024MBにしました ユースケース的には、 毎日…

パターンマッチ中の `..`

mdbookのコードを読んでいて、なんじゃこの記法は、となったコードがあったので、 理解してしまえばなんて無いことですが、しばらく悩んだし戒めのために書きます 簡略化して書くとこんなコードです enum Enum { A(u8, u8, u8), B } macro_rules! some_macro…

mdBookに変なPRを出した

mdBookという、gitbookのrust版みたいなOSSがあります。 github.com マークダウンをつっこむとサイト(やpdfやepubその他レンダラを書けば何でも!)を出力してくれるものです。 主にドキュメントサイトを生成するのに使われていると思います。 Rustの公式ド…

Zero-SizedなオブジェクトをVecに入れてみる

Zero-Sizedなオブジェクトは、メンバを持たない構造体から作ることができます。 struct Blank; // struct Blank {} と同じ fn main() { println!("{}", std::mem::size_of::<Blank>()); // => 0 } https://play.rust-lang.org/?version=stable&mode=debug&edition=2</blank>…

FlutterでFireRemoteConfigを使ってバージョンアップを強制する

FlutterとRemoteConfigを使って、 アプリをあるバージョン"以上"にする方法を紹介します (正確には アプリがあるバージョン未満の場合にアップデートを促す方法、です) まずFlutter側のRemoteConfigの設定を済ませます pub.dev 以下のようにRemoteConfigの…

String and &str in rustについて

github.com My first ever zine, titled "String and &str in Rust" and featuring many cats!✨You can print it from here -> https://t.co/X1xQWrqzpC pic.twitter.com/qV68ZaDjZz— Jeena Lee (@thejeenalee) September 17, 2019 Twitterでみかけたこちら…

std::i32::MAX vs i32::max_value()

std::i32::MAXとi32::max_value()、重複した役割のものがなぜ存在するのかなーと思ってちょっと調べていたことをメモ