koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Node-RED UG勉強会 2018 年末LTパーティ

node-red.connpass.com

でLTをしてきた。

LT本数が10本と多く、かつ内容のバリエーションも豊富で非常に良いエネルギーを得られる勉強会だった。

自分のLTスライドはこちら。

www.slideshare.net

以前UGの勉強会に参加した際に発表内容が応用に寄っていた感じを受けたので、Node-REDをより活用するための入り口になればいいなぁ、といった動機でテーマを選んだ。

するとどうだろう? 同じようなことを考えたのかどうかは別として、同様なテーマのLTをする方がいらっしゃった。 「大事なことなので2LTで取り上げました」「参照URLまで同じ」などなかなか得がたいオモシロ体験だった。 (懇親会でも笑いながらそのLTをされた方と話させてもらった)

とはいえ、切り口はだいぶ違ったのでNode作成への入門としてはむしろ良かったのではないかと思う。

「参考になった」「Nodeを作ってみたくなった」と言った感想ももらえてとても嬉しかった。

なお「カスタムNode」という言葉は自分の造語だった様子。 どこかで見かけた気がしたのだけれど、そんなことはなかった。 困ったもんだ。

いろんな笑いと知見を得られたLT会だった。


同様テーマだった方のLTスライド。

www.slideshare.net

クソワロタ。


12-03追記:

主催の一人である 1ft_seabass さんがトゥギャってくださっている。当日の空気感はそちらで確認できる。

Entity Framework Core 2.0 でASP.NET Core起動時にマイグレーションする

こんな感じの Program.cs にすることでとりあえず実現できた。

ただ、この手法はシングルインスタンスのアプリケーションでの適用に限定しておいた方が良さそうだ。

 class Program
{
    public static void Main(string[] args)
    {
        var host = BuildWebHost(args);

        // 起動時にDBマイグレーションを当てる
        UpdateDatabase(host);

        host.Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseApplicationInsights()
            .UseStartup<Startup>()
            .Build();

    private static void UpdateDatabase(IWebHost host)
    {
        // https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.1#call-services-from-main
        using (var serviceScope = host.Services.CreateScope())
        {
            var services = serviceScope.ServiceProvider;
            var logger = services.GetRequiredService<ILogger<Program>>();
            try
            {
                var dbContext = services.GetService<ApplicationDbContext>();
                dbContext.Database.OpenConnection();

                logger.LogInformation("Start database migration.");
                // https://docs.microsoft.com/ja-jp/ef/core/managing-schemas/migrations/#apply-migrations-at-runtime
                // Webアプリケーションではあまり推奨されていない様子。
                // 明確なマイグレーションタスクをデプロイパイプラインに含めるのが良いようだ。
                dbContext.Database.Migrate();
                logger.LogInformation("End database migration.");

            }
            catch (Exception ex)
            {
                logger.LogError(ex, "An error occurred.");
            }
        }
    }
}
続きを読む

Entity Framework Core 2.0 で CreatedAt UpdatedAt

自分はORMではS2JDBCの洗礼を浴びていて、静的な型がついているEntityをRDBにMappingしてくれるORMが好きだ。

最近ではEntity Framework Coreが良くて、ちょっと前から使っているシステムがある。

唐突にそれでやっている工夫を書きたくなったので書く。

タイトルの通りあるEntityの生成時刻と更新時刻をアプリケーションプログラムで付与するものだ。

確認してみたらバージョンは 2.0.x だった。2つほどマイナーバージョンを置いて行かれている。大分変っているのだろうなぁ。

続きを読む

WindowsでマウスユーザーのMacBook入門

仕事の便宜上11月からMacBook Pro(2017年のタッチバー無しモデル)を使い始めた。

20年以上WindowsPCを使ってきて、初めてのMacだ。

正直、ChromeコマンドラインコンソールとVSCodeがあればどうにでもなるだろう。と考えてのことだったが、実際大まかなところではそんな感じだった。

Linux系のコマンドラインを操作できて、Windowsにしかないアプリケーションに普段依存していないようなら、それほど違和感なく作業できると思う。

とは言え、いくつか戸惑いもあったのでそれを書いておく。

続きを読む

IDにはアイコンがついているなぁとしみじみ思った

社内でGoogleフォームに入力して、結果のスプレッドシートを見たら自分の行にアイコンがついていた。

すげぇ、と思ってどういう風に作ってあるのか見てみたら image="https://imageserver/" + IDの列 + "/icon" の様な簡素な作りだった。 (あいまいな記憶なので事実とは違うと思うが、そう大きくも間違っていないはず)

とても手軽にアイコン表示が実現されていて感心してしまった。

そういえば昨今はメールアドレスを使ってユーザー登録しても Gravatar - グローバルに認識されるアバター (Globally Recognized Avatars) なんかを使っていれば勝手にアイコンを表示してくれたりする。

↓GravatarのアイコンURL

https://s.gravatar.com/avatar/a7f648f6c3151fd5fe0b5e855ea45c62?s=80

そんな感じでIDにはアイコンがついているなぁとしみじみ思った秋? の夜長だった。

『草を生やすボタン』を作ろうと思っていた

先日SORACOM LTE-M Buttonの使い道を検討する記事を書いているほどには同ボタンが届くのを楽しみにしていた。

草を生やすボタン』を作りたい。

こんなことも言っている。

だが待ってほしい。既に先駆者がいる!

blog.sushi.money

丸かぶりである。

遊びでLambdaを使うときだいたい1リクエスト送って終わりくらいなのでスキルの上達が感じられないけど、あまり複雑なことをしても困るので、遊びでやってるんだからこんなんでいいんだという気持ちになってきている。仕事でやってるみなさんは頑張ってください。

似たような所感である。

あろうことか昨日入社した会社の先輩でもある。

一体全体どうなってるのだ。

まぁ、別に他人が同じものを作っていたから自分は作らん訳ではないのだけれど、非常に状況が面白かったので勢いで記事を書いた。

株式会社はてなに入社しました

koudenpa.hatenablog.com

半年ちょいまえのこちらの記事は4月馬鹿でしたが、今は時期が違いますので本当です。

隣の芝は青い

ある会社を外から見ると、基本的には良いことしか発信されていないので、非常によく見えると思います。これを『隣の芝は青い』と表現するのが個人的なお気に入りです。

今回転職するにあたっては、以前から特に青く見えていた何社かに接触してみて、ご縁があったのがはてなでした。

果たしてはてなの芝は本当に青いのか? 今は定かではありませんが、願わくば自分自身も芝を青く見せる要因の一つとなりたいものです。