Category:

Flutterで時間(時分秒)入力

Flutterで時間(時分秒)を入力するインターフェースの実装方法を調べたので軽く紹介します。 showTimePicker を使う 時間を入力する方法として最もメジャーなのが、showTimePicker()を使う方法だと思います。 ただし、showTimePicker()は、モーダルダイアログで時(hour)/分(minute)を入力してTimeOfDayを返す関数なので、秒(second)は入力できません。 デフォルト デフォルトでは以下のようなUIになります。 個人的には、このデフォルトUIは、 時(hour)を選んでいるのか分(minute)を選んでいるのか分かりにくい 0時を選べない というマイナスポイントがあると感じています。 該当部分の抜粋は以下の通りです(全文はこちら)。 TextButton( child: Text('edit', style: T Continue Reading

Posted On :
Category:

Flutter でバックグラウンドでも動くタイマーアプリを作った

少し前に会社のブログで以下の記事を書きました。 Flutterでお勉強時間管理用のタイマーアプリを作った このアプリには、「アプリがバックグラウンドに遷移するとタイマーが停止してしまう」という致命的な問題がありましたが、その対処方法が分かったので、紹介したいと思います。 問題点 アプリがバックグラウンドに遷移すると、アプリが一時停止してしまい、タイマーが止まってしまう。 対応方針 アプリがバックグラウンドに遷移したタイミングと、フォアグラウンドに復帰したタイミングで以下の処理を行う作戦でいこうと思います。 バックグラウドに遷移したタイミング その時点の時間を元に、ローカル通知をスケジュール登録する(ローカル通知はバックグラウンドでも時間がくれば実行される) バックグラウンドに遷移した日時を記録する フォアグラウンドに復帰したタイミング ローカル通知タイマーを停止する フォアグラウンドに復帰 Continue Reading

Posted On :
Category:

Flutterの環境構築

子供のお勉強用にちょっとしたネイティブアプリを作りたくなり、 Flutter で作ってみることにしました。 本記事は、公式の Get Started を見ながら、Android/iOS/Web のクロスプラットフォーム動作環境を構築して、サンプルアプリを軽く動かしてみるところまでの内容となっています。 Flutterの特徴 1つのコードベースで、クロスプラットフォーム(Android/MacOS/Windows/Linux/iOS/Web)で動作するアプリを作れる => 開発・運用・学習コストが小さい Google がリードする OSS => 開発が頻繁 独自のレンダリングエンジンを使っている => swiftやkotlinを使ったネイティブ開発より低速 一般的な端末固有機能は対応している => 全部対応してる訳ではなく、最新機能への対応も少し遅れる widget Continue Reading

Posted On :
Category:

初めてのDeno

ドキュメント 公式マニュアル ソースコード 特徴 Denoは、V8エンジンおよびRustで組まれた JavaScript と TypeScriptのランタイムで、Node.js を作成したライアン・ダール氏が、Node.js での後悔を改善する形で作成されたものらしいです。(詳しくは、こちら) 特徴としては以下が挙げられています。 セキュアである 明示的にしない限り、ファイル・ネットワーク・環境へアクセスできない 何もしなくても TypeScriptをサポートする 単一の実行ファイルをリリースする 依存関係インスペクタ(deno info)やコードフォーマッター(deno fmt)が組み込みユーティリティとして提供されている レビュー・動作確認済みの標準ライブラリが Deno Land で提供されている インストール brew install deno deno upgrade –ver Continue Reading

Posted On :
Category:

PostgreSQLにおけるjson/jsonb型の取り扱い

PostgreSQLには、JSONデータを管理する型としてjson型とjsonb型があります。 これらは登録は簡単なのですが、検索して利用する際は少し癖があるので、解説しようとお思います。 PostgreSQL version: v12.6 json型とjsonb型の違い ドキュメント から抜粋しました。 キー順序や重複を利用するような特殊ケースを除き、jsonb型を利用する方が良さそうです。 json型 jsonb型 入力テキストの正確なコピーを格納(空白、キー順序、重複キーなども保持) 入力テキストをパースした結果をバイナリ形式で格納(空白、キー順序は保持しない。重複キー重複キーは最後の値だけを保持) 利用時に再解析する必要があるため、利用時に時間がかかる 格納時にオーバヘッドがあるが、利用時は高速に利用できる インデックスをサポートしていない インデックスをサポートしている データ登 Continue Reading

Posted On :
Category:

Elasticsearchの使い方 part2

先日、Elasticsearchの使い方という記事を書きましたが、ここに書ききれなかったTipsやユースケースについて紹介しようと思います。 Elasticsearch version: 7.11 文字列を扱うtextとkeywordの違い text型 index登録時にアナライザーによって処理され、トークンに分割されて保存される アナライザーは以下の3つで構成される Char Filter トークンを認識せずに行える機械的な変換処理 大文字、小文字変換、特殊文字正規化、正規表現による抽出など Tokenizer 文字列をトークンに分割する(分かち書きする) 形態素解析、N-gram、特定文字でsplitなど Token Filter トークンに対しての変換処理 ストップワード除去、ステミングなど フレーズ検索ができる いわゆる「全文検索」ができるということ トークンに分かれているので、複 Continue Reading

Posted On :
Category:

Elasticsearchの使い方

業務で Elasticsearch を触ることになったので、多少今更感ありますが、環境構築・データ登録・マッピング定義・検索など、一通りのユースケースを試してみようと思います。 Elasticsearch version: 7.11 環境構築 以下のドキュメントを元に、Dockerを使ってElasticsearchをインストールしようと思います。 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/docker.html docker-compose.ymlを作成 まずは、docker-compose.ymlを作成します。 とりあえずはドキュメントの内容をそのままコピーでOKだと思います。 version: '2.2' services: es01: image: docker.elastic.co/ Continue Reading

Posted On :
Category:

log sequence number is in the future

Docker Desktop for Mac でWordPressを動かしているのですが、ある日データベース(mysql)が壊れてWordPressを起動するとlog sequence number is in the futureエラーが発生するようになってしまいました。 またいつか発生しそうな予感がするので、対応方法をメモしておきます。 エラー詳細 WordPressの画面にアクセスしようとすると、mysqlのDockerコンテナが再起動してしまいます。画面上は以下のように表示されます。 Dockerコンテナのログを確認したところ、以下のエラーが出力されていました。 [ERROR] InnoDB: Page [page id: space=63, page number=406] log sequence number 289034868 is in the future! Curre Continue Reading

Posted On :

WordPressサイトにHTMLとJSでソーシャルボタンを追加

WordPressで作成しHTML化してFirebaseHostingしている本サイトに、HTMLとJavaScriptで以下のソーシャルボタンを追加しました。 はてなブックマーク はてなスター Pocket Twitter コードの埋め込み方法 WordPressなのでphpを直接修正しても良いのですが、どこを修正したか分からなくなりがちなので、Insert Headers And Footersというプラグインを使ってHTMLを埋め込むことにしました。 このプラグインは、<head>の最後・<body>の最初・<body>の最後、のいずれかの場所にHTMLコードを差し込むことができる、とてもシンプルなプラグインです。 これを使って、<body>の最後に取得したコードを埋め込みました。 はてなブックマーク https://b.hatena. Continue Reading

Posted On :
Category:

amChartsでタグクラウド作成

とある母集団文書に含まれる単語頻度を可視化する目的で、タグクラウドをブラウザ上でJavaScriptで作成できないかを調べました。 タグクラウド(ワードクラウド)とは WikiPedia には以下のように記載されています。 タグ・クラウド (tag cloud、 ワードクラウド 、またはビジュアルデザインの重み付きリスト )はタグの視覚的記述を指す。テキストデータの斬新な視覚表現であり、通常はWebサイトでキーワードメタデータ(タグ)を描写したり、自由形式のテキストを視覚化するが、通常タグは単一の単語であり、各タグの重要性はフォントサイズまたは色で示される。 以下のようなやつです(画像もWikiPediaから拝借しました)。 文字の大きさや色から単語の重要度を視覚的に捉えることができます。 候補ライブラリ ある程度見た目が綺麗で、人気がありそうな物をピックアップしました。 amCharts Continue Reading

Posted On :