2023-01-01から1年間の記事一覧
年末なので今年使ったプログラミング言語を振り返り、最新バージョンの様子をチラ見するの続き。スマートフォンアプリの開発ではKotlinやSwiftを触っていた。 Kotlin Androidアプリの開発で触った。思い返してみればKotlinよりも、Javaのほうが多かったよう…
年末なので今年使ったプログラミング言語を振り返り、最新バージョンの様子をチラ見した。 Perl 仕事でwebサービスのサーバーサイドの用途に使っている。 プライベートでは使うことはあまりない。と思ったが、BSD版とGNU版のsedの違いを調べるのが面倒になり…
年末なのでデジカメのファイルをバックアップした。rsync と aws CLI を使って、DropboxとS3にバックアップを行った。更にタスクランナーに追加して、簡単にバックアップを実行できるようにした。 SDカードからDropbox Dropboxの2TBプランを使っていて、空き…
Goで書かれているTaskという名前のタスクランナーを使い始めた。仕事でMakeをタスクランナーとして使っていたところを、Taskに置き換えようという動きがあったので、仕事で使いつつプライベートでも使って慣れようとしている。 Taskでは Taskfile.yml という…
macにはショートカット.appというアプリが入っている。「アクション」を組み合わせた一連の処理をショートカットとして登録しておくとワンクリックで実行できるという機能だ。複雑なロジックをショートカットで組み立てるのは大変そうだが、トリガーや入出力…
本屋にいくと『証明の読み方・考え方』という本が目に入った。数学の証明の本だ。手にとって眺めると面白そうなので買ってみた。中学や高校の数学でも証明問題は苦手だった。苦手というよりちゃんと証明の仕方を教わったり、勉強した覚えがない。『証明の読…
勤怠管理システムのWebページの反応が遅い。ボタンをクリックしたけど打刻できていませんでした、ということがよくある。そのため後で修正する作業が必要になっている。本来必要のない仕事が発生してるのでなんとか減らしたい。勤怠の修正には承認フローが走…
最近仕事をしていて、日単位で細かくスケジュールを立てることでやりにくくなって、かえって進捗がでないと感じることがあった。 一般的に、大きなプロジェクトを小さなタスクに分解して、それぞれのタスクにスケジュールをつけることで、全体のスケジュール…
ドメイン駆動設計(DDD)というと、オブジェクト指向プログラミング言語というイメージが強かった。 Javaのようなクラスベースのオブジェクト指向プログラミング言語で、業務をモデリングするときの設計手法という印象だった。 Scott Wlaschin は 『Domain Mod…
以前の記事でKotlinで代数的データ型(Algebraic Data Type, ADT)とパターンマッチングの使い方を確認した。同様にSwiftでも確認する。なお本記事で使っているSwiftのバージョンは5.9である。 nakaoka3.hatenablog.com 直和型 Sum Type 直和型にはenumを使う…
思い立ってObsidainのプラグインを作り出す 土曜日の午前に歯医者から帰ってきて、何がきっかけだったか思い出せないけど、Obsidianでクイズが書けるプラグインを作りたくなった。 Obsidianに残っていたメモ ObsidianはElectronベースのアプリケーションなの…
関数型プログラミングでは、型を組み合わせて作る型に直和型(sum type)と直積型(product type)が存在する。直和型と直積型のことを代数的データ型という。 『なっとく!関数型プログラミング』では、Scala、F#, Haskell で代数的データ型によるモデル化の例…
最近やっていたアプリの開発がようやく一段落ついてきた。機能開発については完了していて、あとはリリースを待つだけだ。 開発メンバーが増えた! チーム内にアプリエンジニアがいなかったので、ひとりでアプリの改修を進めていたが、先月からiOS・Android…
Vivaldi にはブックマークにニックネームを付ける機能があって便利だ。 VivaldiはChromiumベースのWebブラウザだが、Chromeにはない便利な機能や細かい設定ができる。ブックマークにニックネームをつける機能もVivaldi独自の便利な機能だ。 使い方 例えば Am…
関数型プログラミング言語については、以前にHaskellの本を読んでみたりして、興味はあったのだが正直あまり理解できてなかった。 『なっとく!関数型プログラミング』はScalaのコードで関数型プログラミングを説明している本だ。最近邦訳が発売されて話題に…
本屋で『ちいさくはじめるデザインシステム』を見かけたので購入した。この本は労務管理のWebアプリケーション(SaaS)を作っているSmartHRが、デザインシステムを作成して導入した経験を書籍にまとめたものだ。 私は会社ではソフトウェアエンジニアとして働い…
プライベートで、Google スプレッドシートにまとめたデータを APIを使って取得したいという事があった。 以下の手順でやることができる。 サービスアカウントを作って、鍵ファイルを取得する GCPでSheets APIを有効にする GCPでサービスアカウントを作る GCP…
先日 Android Studio で GitHubCopilot を使ってみた。Xcodeでも使えるということを教えてもらったので、導入してみた。VSCodeやAndroid Studio と比べるとエディタへの統合度が低くて操作感が劣ると感じたが、すぐに慣れて便利に使えるようになった。 nakao…
Android Studio でもGitHub Copilot を使えるという話を聞いたので、早速使ってAndroidアプリ開発をしてみた。プラグインを入れるだけなので何も難しいことはなかった。使用感はVSCodeでCopilotを使うのと代わりはない。体感だが、Javaのコード補完はそれな…
最近あるサービスのスマートフォンアプリに新機能を追加している。 そのアプリではAndroidネイティブ、iOSネイティブ、WebView、React Nativeの4種類の画面から構成されている。APIはREST APIとGraphQL APIの2種類がある。一見するとどこでどの技術を使って…
1on1のときに id:miki_bene さんに オススメされた『エンジニアのためのマネジメントキャリアパス』を2章まで読んだ。 www.oreilly.co.jp なお、この本は副題に「テックリードからCTOまで」とあるが、3章からテックリードなので、2章までだとそこまで到達し…
週末にLangChainを使って遊んでみた。LangChainはLLMを便利に使うためのPythonライブラリだ。先日動画で使い方を学んだので、それを参考にLLMが外部のデータを参照して質問に答えるのを試した。 nakaoka3.hatenablog.com DocumentLoader LanChainにはLoader…
要約 アプリ開発における複数の役職間でのコミュニケーションは、明確な資料や情報の共有を通じて行われ、そのプロセスは開発の完成度を高める役割を果たします。異なる視点からの情報の差異を最小限に抑えることが重要です。早期に重要な決定を下すことで、…
DeepLearning.AIのLangChainのショートコースを受講した。ジムで走りながら動画をみた見たので、まだ実際にLangChainを使ったコードは書いていない。しかしLangChainが何であるのか、その概要を掴めてよかった。 www.deeplearning.ai LangChainとはLLMを使う…
今週はAndroidアプリの開発をした。久しぶりだったからだいぶ忘れていたけど、少しずつ思い出しながらやっている。 新規アプリではなく少し歴史のあるアプリの機能追加だ。Javaを書くのも久しぶりなので懐かしい。 RxJavaとRealm を使っているアプリなので、…
ChatGPTを使って、Markdownをはてな記法に変換しようとしたが結構難しかった。 1つのプロンプトで正しく変換できなかったので、HTMLに変換するプロンプトを書いて、HTMLをはてな記法に変換するように指示をしたり、試行錯誤を重ねてようやくそれらしい変換…
もしクエリの結果が期待した通りでなかった場合には、Analyzerがどのようにテキストを処理しているのか、一度確認することをお勧めします。 (Elastic Stack実践ガイド[Elasticsearch/Kibana編] Kindle版, p176) Elasticsearchを使った検索の問題にたまたま遭…
ElasticSearchを触っていて、形態素解析について基本的なことを知りたかったので、『はじめての自然言語処理』を読んだ。形態素解析については3章に書かれている。基本的なことがまとまっていてよかった。 初心者向けの本なので、以下のような基本的なことか…
PythonのネットワークグラフライブラリのNetworkXと可視化ライブラリのMatplotlibを使うことで、Pythonで簡単に重み付きグラフを可視化できます。具体的なコードとChatGPTとWolframプラグインを利用して作成したサンプルデータを使って、その方法を説明しま…
最近 Go言語をよく触っていたので、Goの型について調べたことをまとめます。 Goのインターフェイス Goの インターフェイスは、構造的型付け structural typing の特性を持っています。 Goのインターフェイスはメソッドのシグネチャの集まりです。 // M() と…