投稿一覧

16-20件 / 70件

今年のM-1レベル高

本日の気付き 物事の構造として最も効率的かつ効果的なものは再帰的構造なのではないかという仮説。今のところ反例が思いつかない。この仮説を裏付ける情報の獲得を目的として、フラクタル(図形の部分と全体が自己相似になっている幾何学の概念)を勉強してみると面白いかも…なんて思ったり。 本日の読書 明日朝早い関係で今日は時間がないので、後日まとめます。 その他 今年のM-1グランプリは非常にレベルが高かった。令和ロマン、連覇すごいですね!漫才のクオリティが別格である上に、引き出しも多い。これは納得の結果です。 決勝ラウンドまで進めなかったけれど、2本目のネタを見たいと思えるコンビがほとんどでした。例えばエバース、面白かったなぁ。あと真空ジェシカがM-1過去一面白かった。来年も期待しています。

pageview 101

【謝罪】トラブル対応で当サイトのアクセスを禁止していました

当サイトのメンテナンスでトラブルが発生したため、2日ほど外部からのアクセスを遮断していました。当サイトの更新を毎日見に来てくださっていた方がいらっしゃったようなら、何も言わずに申し訳ありません。 当サイトはPythonのDjangoというフレームワークを用いて作成されています。投稿通知を外部サイトにPing通信する仕組みを追加したのですが、そこでかなり沼にハマりました。これ、記事にしようかな。。 ところで、ルヴァンカップ決勝のチケット、落選してしまいました…ショックです。リセールで購入できることを祈るしかないです。絶対に国立に行きたいんだぁ…お願いします…。 今後サイトのメンテナンスをする場合は情報共有をしようと思います。。当たり前ですね。。本当にすみませんでした。

pageview 101

できることを少しずつ

今日は当サイトのサイトマップの作成(完全に失念していました)とGoogle Search Consoleへのサイトマップ登録及び当サイトのインデックス登録のリクエストを行いました。これでしばらくすれば検索エンジンに当サイトが引っかかるようになるはず…。毎日少しずつできることをやっていきます。 また、Xのアカウント(@y_iizuka_phys)を作成しました!記事の投稿のお知らせはこちらでしていきます。もしよろしければ記事を読んでみての感想等をリプライで頂けたら嬉しいです。 それでは本日はこの辺で。

pageview 94

【Flutter】画面遷移の方法(go_router)

概要 パッケージ go_router を用いて画面遷移する方法を備忘録としてまとめます。ルビーdogさんの動画を参考にしています。 全体像 以下のような流れで画面遷移を作ることができます。 go_routerをインストールする 画面のクラスを定義する アプリ全体のクラスでgo_routerによる画面遷移のルールを定義する go_routerをインストールする Flutterプロジェクト直下にある pubspec.yaml を編集します。具体的には、以下の画像の赤線部分のように、dependencies に go_router を追加します。 図1. pubspec.yaml 画面のクラスを定義する 画面のクラスを定義します。main.dart と同じ階層に page1.dart, page2.dart を作成し、内容を以下のようにします。 copy_all page1.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; class Page1 extends StatelessWidget { const Page1({super.key}); // 画面2に進む処理 void push(BuildContext context) { context.push('/2'); } @override Widget build(BuildContext context) { // 画面上部のバー部分 final appBar = AppBar( backgroundColor: Colors.yellow, title: const Text('画面1'), ); // 進むボタン final pushButton = ElevatedButton( onPressed: () => push(context), style: ElevatedButton.styleFrom(backgroundColor: Colors.yellow), child: const Text('進む'), ); return Scaffold( appBar: appBar, body: Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ pushButton, ], ), ), ); } } copy_all page2.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; class Page2 extends StatelessWidget { const Page2({super.key}); // 画面1に戻る処理 void back(BuildContext context) { context.pop(); } @override Widget build(BuildContext context) { // 画面上部のバー部分 final appBar = AppBar( backgroundColor: Colors.cyan, title: const Text('画面2'), ); // 戻るボタン final backButton = ElevatedButton( onPressed: () => back(context), style: ElevatedButton.styleFrom(backgroundColor: Colors.cyan), child: const Text('戻る'), ); return Scaffold( appBar: appBar, body: Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ backButton, ], ), ), ); } } page1.dart では画面を進める処理として、context.push('$遷移先パス')が使われています。page2.dart では画面を戻す処理としてcontext.pop()が使われています。今は2画面のみの画面遷移を考えているので出てきていませんが、3画面以上の画面からなるアプリで、例えば「画面1から画面3に遷移する」といった画面遷移を考えるときにはcontext.go('$遷移先パス')が使えるとのことです。 それと、いずれのファイルでもimport 'package:go_router/go_router.dart';の一文を先頭に書き足すのを忘れないようにしましょう。 アプリ全体のクラスでgo_routerによる画面遷移のルールを定義する 先程作成した page1.dart, page2.dart と go_router のパッケージをインポートし、アプリ全体のクラス(ここではMyAppクラス)を次のように書きます。 copy_all main.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:test/page1.dart'; import 'package:test/page2.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { MyApp({super.key}); final router = GoRouter( // アプリ起動時の画面を指定するパス initialLocation: '/1', // パスと画面の組み合わせ routes: [ GoRoute( path: '/1', builder: (context, state) => Page1(), ), GoRoute( path: '/2', builder: (context, state) => Page2(), ), ]); @override Widget build(BuildContext context) { return MaterialApp.router( routeInformationProvider: router.routeInformationProvider, routeInformationParser: router.routeInformationParser, routerDelegate: router.routerDelegate, ); } } ポイントは2点です。1点目は、 copy_allfinal router = GoRouter( // アプリ起動時の画面を指定するパス initialLocation: '/1', // パスと画面の組み合わせ routes: [ GoRoute( path: '/1', builder: (context, state) => Page1(), ), GoRoute( path: '/2', builder: (context, state) => Page2(), ), ]); の部分。routes のリストの要素である GoRoute のそれぞれがパス(path)と画面(builder)の組み合わせの定義を表します。path では画面を表すパスを引数として書き、builder では(context, state) => Xxxx()の形でどのクラスによって画面を作るかを指定します(Xxxx は画面を定義するクラス)。2点目は copy_all return MaterialApp.router( routeInformationProvider: router.routeInformationProvider, routeInformationParser: router.routeInformationParser, routerDelegate: router.routerDelegate, ); の部分。go_router を使う場合、この部分は以上のような決まった書き方をするとのこと。コピペで使いまわせばいいですね。 まとめ go_router を用いた画面遷移について備忘録としてまとめました。

pageview 86

柚子湯の刑

本日の気付き 翌日の午前中に用事がある場合、夜間の授乳は液体ミルクでするといい 子育て支援センターは保育園に通っている大きい子が休日に多く来る。逆に赤ちゃんは仕事が休みの旦那さんによって家で見守られていることがある。よって休日は赤ちゃんの人口が少なく混んでいるので、平日ほど子育て支援センターに行くメリットがないと感じた。 本日の読書 本 経営の教科書ー社長が押さえておくべき30の基礎科目ー | 新 将命 読んだ範囲 第5章 目標に向かってともに進める社員がいるか(179-180頁) 内容 社長が社員に任せてはいけない仕事もある。企業理念、企業戦略に関する最終決定や、会社が求める人物像の決定がそれである。但し全て一人で決めないといけないわけではなく、様々な人間から異なる意見を聴き、それを踏まえて社長が最終的な判断を下す、という形にするとよい。 経営に多数決は要らない。多数決で物事を判断するのであれば経営者は必要ない。社長を除いた全員が反対だったとしても、社長が絶対にこうだ、と思うのであれば、全員を納得させるロジックを携えて決断をする必要がある。 任せて失敗した場合、まずは原因の分析をする。次に分析結果を基に同じ失敗を繰り返さないための改善策を話し合う。間違っても人を叱ってはならない。叱るべき対象は「物」と「事」である。 叱るときは「同じ間違いを繰り返してほしくない。次はいい仕事を期待している」ということが伝わるよう、一所懸命に叱る。叱った後にはどんな形でもいいので必ずフォローをする。 その他 ゆず3個分の果汁を絞って湯船に入れ、浸かったところ、体中がピリピリして入浴が苦痛でした。私は毎日、Kindle端末を持ち込んで湯船に漬かりながら読書をしています。今日は読書に集中できず、何回も同じところを読んだりしていましたね…。

pageview 63