Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

AWSでデータ分析基盤を構築してみよう

今回は、AWS(Amazon Web Services)が提供するクラウドコンピューティングサービスを利用したデータ分析基盤の構築例と関連するいくつかのサービスをご紹介したいと思います。 データ分析基盤とは データレイク、データウェアハウス(DWH)、データマートの…

画像生成AIを試してみた

昨今、AI(人工知能)は私たちの生活に大きな変化をもたらしています。 AI技術は急速に進化し、日常からビジネス、医療、エンターテインメントまで、 様々な分野で活用されている場面をよく見かけるようになりました。 今回は、そのようなAI技術の1つである…

ページネーションについて

今回は、ページネーションについて解説します。 最初に 対象範囲 ページネーションとは? 実例 実装 Google Books APIs 呼び出し例 結果 説明 Paging ライブラリ 概念図 build.gradle HTTP クライアント PagingSource RxPagingSource#loadSingle GoogleBooks…

コンテナ化について

今回は、コンテナ化についての概略と実際にあるシステムをコンテナ化した時に起きた問題点等を紹介させていただきます。 今回の記事の前提はOpenShiftでの構築を前提としております。

Google Maps PlatformをVue.jsで使ってみる

今回はGoogle Maps PlatformをVue.jsで使用する例を紹介します。 この記事は、Vue.jsで少しでも実装したことがある方が対象です。 目標はVue.jsでGoogle Maps Platformを使用して、指定の緯度経度に対する周辺の地図を表示する以下のようなWebアプリを作成す…

ChangeLog の日付間の移動を速やかに

Vim では ]] や [[ 入力で関数(セクション)単位にカーソル移動できるコマンドがあります。[[ だと一つ前の関数に移動、]] だと一つ後ろの関数に移動、といった具合です。 自分は日記を ChangeLog 形式で書いていて、ChangeLog でもこの動作ができたら良い…

【Kotlin】Kotlin Serialization で JSON をパースする

今回は、Kotlin Serialization を使って JSON をパースする方法を解説します。

【Android】Moshi で JSON をパースする

今回は、Moshi を使って JSON をパースする方法を解説します。

【Android】Activity Result API で他の Activity の結果を取得する

今回は、Activity Result API で他の Activity の結果を取得する方法を解説します。

【Kotlin】Kotlin Coroutines で非同期処理を行う

今回は、Kotlin Coroutines について解説します。

【Android】Retrofit で HTTP 通信を行う

今回は、Retrofit を使って HTTP 通信を行う方法を解説します。

【Android】map や switchMap で LiveData を変換する

今回は、map や switchMap で LiveData を変換する方法を解説します。

【Android】MediatorLiveData で他の LiveData を監視する

今回は、MediatorLiveData で他の LiveData を監視する方法を解説します。

【Android】アプリのインストールを検知する

今回は、Androidでアプリのインストールを検知する方法を解説します。

【Android】WebView の JavaScript からネイティブコードを呼び出す

今回は、WebView の JavaScript からネイティブコードを呼び出す方法を解説します。

【Android】LiveDataで値を監視する

今回は、AndroidのLiveDataで値を監視する方法を解説します。

Pythonのf文字列による文字列補完

今回は、Pythonのf文字列にて文字列を補完する方法を解説します。

Pythonのvenvでパッケージ管理する

今回は、venvを用いたPythonのパッケージ管理方法を解説します。

【Android】SavedStateHandle解説

今回は、AndroidのSavedStateHandleを解説します。

Pythonでプロパティを実装する

今回は、Pythonでのプロパティの実装方法を解説します。 プロパティとは? ここで取り扱うプロパティとは、クラス利用者がそのメンバ変数にアクセスするときにgetterやsetterを意識することなくアクセス出来るようにする仕組みです。 通常、クラスを実装する…

リンクを Markdown 形式でクリップボードにコピー

はじめに Markdown で執筆中、サイトのリンクを貼り付けたいときありますよね、きっと。そんなときは、chrome の拡張 Markdown Linker が便利です。 chrome ウェブストアより: ※chrome 拡張なので chrome 限定のお話です。ごめんなさい

画像を ASCII 表示させる方法

はじめに テストに用いるデータなど、サーバ上にあるイメージ(画像)を確認したいときないですか?このファイルなんだっけ?みたいな。そんなとき、jp2a を使えば画像を ASCII 表示できます。テキストで表示されるので、手軽にコンソールからも確認できるっ…

Pythonで読み取り専用コレクションを実装する

今回は、Pythonで読み取り専用コレクションのメンバ変数を実装する方法を解説します。 概要 通常、読み取り専用のメンバ変数を実装するときは、メンバ変数をプライベートにしつつ、getterのみ宣言して、setterを宣言しないようにします。 class Name: def __…

Pythonで抽象クラスを実装する

今回は、Pythonで抽象クラスを実装する方法を解説します。 抽象クラスとは? プログラミング言語によりある程度違いはありますが、抽象クラスとは、以下の特徴を持ったクラスになります。 継承されることを前提としています。 空実装のメソッドが定義されて…

【Android】コンストラクタに引数があるViewModelを使う

AndroidでViewModelを使用するとき、以下のようなコンストラクタに独自の引数があるViewModelを使用したいときがあります。今回は、その方法を解説します。 class MainViewModel(id: Int) : ViewModel() 独自Factoryの定義 ViewModelインスタンスの生成はVie…

キー入力をスクリーンキャストする

はじめに 前回の記事「git worktree と peco」の実演(gif アニメ)にて、キー入力を表示するために [screenkey] というソフトウェアを使いました。使用するにあたり、少しコツ(バグフィックス?)が必要だったので、備忘のためここに記します。 [screenkey…

【Android】WorkManagerでバックグラウンド処理を行う

今回は、AndroidのWorkManagerでバックグラウンド処理を行う方法を解説します。 概要 WorkManager を使用すると、処理をバックグラウンドで実行できます。WorkManager を使用すると、以下のメリットがあります。 完了に時間がかかる処理でもアプリが止まらな…

git worktree と peco

Git

はじめに その昔、[git-worktree] を使いやすくするためのスクリプトを紹介しましたが、[peco] に対応するために少し修正してみたのでご紹介します。 前の記事: git worktree list を少しだけ使いやすく - Smile Engineering Blog ※前回と同じく、zsh 用です

デジタルオーディオのボリュームをやってみる

DSP(Digital Signal Processor)のファームウェアを実装する時、いつも悩むことは、自分が実装した信号処理のプログラムが正しいか(?)、どのように検証するかで、 WindowsやLinuxでその期待の動作を十分に検証し(期待値を作り)、組み込んだファームウェア…

MIPSとMCPS

ソフトウェアの要件として、性能をMCPSでオーダーされたケースがありました。 前記事の「MIPSとMCPS(?)、100MIPSは100MHzで動くか?」では、 ソフトウェアのベンチマークとして、MIPS【Million Instructions Per Second 】と、MCPS【Million Cycles Per Seco…