nakaoka3の技術ブログ

2023年中に52本なにか書きます

きょうのJavaScript/TypeScript - nullチェック

JavaScript/TypeScriptをたまに書くと、いまだにこの言語について基本的なことについて把握していないことが多いということを思い知る。 最近、あるデータがnullかundefinedでないときのみにある処理を行うという、以下のようなnullチェックを書いた。 if (d…

Asanaにタイムトラッキング機能があったので使っている

Asanaにタイムトラッキング機能があるのを見つけた。よさそうなので使っている。 デフォルトでは無効になっていて、カスタマイズのフィールドの追加をするところから有効にすることで、推定時間と実際の時間のフィールドが追加される。タイマー機能があって…

Claude 3 Opus は小説を読むことができるのか - Claude に『走れメロス』を読ませる

最近 ChatGPTよりもAnthropicのClaudeのほうが賢いという噂を目にして、試しにClaudeを使ってみている。確かに賢い気もするが、はっきりとしたことはわからない。せっかくなので色々と試してみようと思う。 去年の8月にLangChainというライブラリを使った実…

【Swift】enumのassociated value にデフォルト値をつける

以下のようなSwiftのコードを書いた。 enum Example { case one case two(name : String) case three(name : String = "taro") } print(Example.three(name: "hanako")) // three(name: "hanako") print(Example.three()) // three(name: "taro") enumのasso…

広島駅前でお好み焼きが食べたいときは

広島市では流川などの繁華街は広島駅から少し離れた場所にあります。駅前にも大きな商業ビルは建っていますが、飲み屋や飯屋が多い繁華街までは路面電車やバスで移動する必要があります。 私が新幹線の出発前に広島駅前でお好み焼きを食べたいときは、広島駅…

呉の好きな食べ物(メロンパンのナナパン/エーデルワイスのクリームパイ)

メロンパンのナナパン 「メロンパン」という名前のパン屋だ。しっとりとしたパンにチョコが挟まっていて、子供の頃から好きだった。 「メロンパン」にもメロンパンは売っているが、おそらく多くの人が思い浮かべるメロンパンではない。中には白あん(?)がずっ…

年末なので今年使ったプログラミング言語を振り返り、最新バージョンの様子をチラ見する(2)

年末なので今年使ったプログラミング言語を振り返り、最新バージョンの様子をチラ見するの続き。スマートフォンアプリの開発ではKotlinやSwiftを触っていた。 Kotlin Androidアプリの開発で触った。思い返してみればKotlinよりも、Javaのほうが多かったよう…

年末なので今年使ったプログラミング言語を振り返り、最新バージョンの様子をチラ見する

年末なので今年使ったプログラミング言語を振り返り、最新バージョンの様子をチラ見した。 Perl 仕事でwebサービスのサーバーサイドの用途に使っている。 プライベートでは使うことはあまりない。と思ったが、BSD版とGNU版のsedの違いを調べるのが面倒になり…

年末なのでカメラのファイルをバックアップした

年末なのでデジカメのファイルをバックアップした。rsync と aws CLI を使って、DropboxとS3にバックアップを行った。更にタスクランナーに追加して、簡単にバックアップを実行できるようにした。 SDカードからDropbox Dropboxの2TBプランを使っていて、空き…

Task(go-task)を使い始めた

Goで書かれているTaskという名前のタスクランナーを使い始めた。仕事でMakeをタスクランナーとして使っていたところを、Taskに置き換えようという動きがあったので、仕事で使いつつプライベートでも使って慣れようとしている。 Taskでは Taskfile.yml という…

macのショートカット.appでやってること

macにはショートカット.appというアプリが入っている。「アクション」を組み合わせた一連の処理をショートカットとして登録しておくとワンクリックで実行できるという機能だ。複雑なロジックをショートカットで組み立てるのは大変そうだが、トリガーや入出力…

『証明の読み方・考え方』が面白い

本屋にいくと『証明の読み方・考え方』という本が目に入った。数学の証明の本だ。手にとって眺めると面白そうなので買ってみた。中学や高校の数学でも証明問題は苦手だった。苦手というよりちゃんと証明の仕方を教わったり、勉強した覚えがない。『証明の読…

Raycastから勤怠管理システムの打刻を行う

勤怠管理システムのWebページの反応が遅い。ボタンをクリックしたけど打刻できていませんでした、ということがよくある。そのため後で修正する作業が必要になっている。本来必要のない仕事が発生してるのでなんとか減らしたい。勤怠の修正には承認フローが走…

タスクの細かいスケジュール管理は避けたほうがいいかもしれない

最近仕事をしていて、日単位で細かくスケジュールを立てることでやりにくくなって、かえって進捗がでないと感じることがあった。 一般的に、大きなプロジェクトを小さなタスクに分解して、それぞれのタスクにスケジュールをつけることで、全体のスケジュール…

オブジェクト指向プログラミングでなくてもドメイン駆動設計できるらしい

ドメイン駆動設計(DDD)というと、オブジェクト指向プログラミング言語というイメージが強かった。 Javaのようなクラスベースのオブジェクト指向プログラミング言語で、業務をモデリングするときの設計手法という印象だった。 Scott Wlaschin は 『Domain Mod…

Swiftで代数的データ型とパターンマッチング

以前の記事でKotlinで代数的データ型(Algebraic Data Type, ADT)とパターンマッチングの使い方を確認した。同様にSwiftでも確認する。なお本記事で使っているSwiftのバージョンは5.9である。 nakaoka3.hatenablog.com 直和型 Sum Type 直和型にはenumを使う…

週末趣味プログラミングでObsidianプラグイン開発

思い立ってObsidainのプラグインを作り出す 土曜日の午前に歯医者から帰ってきて、何がきっかけだったか思い出せないけど、Obsidianでクイズが書けるプラグインを作りたくなった。 Obsidianに残っていたメモ ObsidianはElectronベースのアプリケーションなの…

Kotlin で 代数的データ型(ADT) を使ってモデル化

関数型プログラミングでは、型を組み合わせて作る型に直和型(sum type)と直積型(product type)が存在する。直和型と直積型のことを代数的データ型という。 『なっとく!関数型プログラミング』では、Scala、F#, Haskell で代数的データ型によるモデル化の例…

アプリ開発が一段落して、新体制になりつつある

最近やっていたアプリの開発がようやく一段落ついてきた。機能開発については完了していて、あとはリリースを待つだけだ。 開発メンバーが増えた! チーム内にアプリエンジニアがいなかったので、ひとりでアプリの改修を進めていたが、先月からiOS・Android…

Vivaldi の好きな機能 ブックマークにタイトルとは別にニックネームを付けることができる

Vivaldi にはブックマークにニックネームを付ける機能があって便利だ。 VivaldiはChromiumベースのWebブラウザだが、Chromeにはない便利な機能や細かい設定ができる。ブックマークにニックネームをつける機能もVivaldi独自の便利な機能だ。 使い方 例えば Am…

『なっとく!関数型プログラミング』はScalaで説明されている本だけど読んだらHaskellのdoもわかるようになった

関数型プログラミング言語については、以前にHaskellの本を読んでみたりして、興味はあったのだが正直あまり理解できてなかった。 『なっとく!関数型プログラミング』はScalaのコードで関数型プログラミングを説明している本だ。最近邦訳が発売されて話題に…

『ちいさくはじめるデザインシステム』をざっと読んだ

本屋で『ちいさくはじめるデザインシステム』を見かけたので購入した。この本は労務管理のWebアプリケーション(SaaS)を作っているSmartHRが、デザインシステムを作成して導入した経験を書籍にまとめたものだ。 私は会社ではソフトウェアエンジニアとして働い…

Google Sheets APIを使ってデータを取得する

プライベートで、Google スプレッドシートにまとめたデータを APIを使って取得したいという事があった。 以下の手順でやることができる。 サービスアカウントを作って、鍵ファイルを取得する GCPでSheets APIを有効にする GCPでサービスアカウントを作る GCP…

XcodeでもGitHub Copilot を使ってみた

先日 Android Studio で GitHubCopilot を使ってみた。Xcodeでも使えるということを教えてもらったので、導入してみた。VSCodeやAndroid Studio と比べるとエディタへの統合度が低くて操作感が劣ると感じたが、すぐに慣れて便利に使えるようになった。 nakao…

Android Studio で GitHub Copilot を使い始めた

Android Studio でもGitHub Copilot を使えるという話を聞いたので、早速使ってAndroidアプリ開発をしてみた。プラグインを入れるだけなので何も難しいことはなかった。使用感はVSCodeでCopilotを使うのと代わりはない。体感だが、Javaのコード補完はそれな…

アプリに混在するReact Native と WebView:採用技術の見直しか、ドキュメンテーション強化か

最近あるサービスのスマートフォンアプリに新機能を追加している。 そのアプリではAndroidネイティブ、iOSネイティブ、WebView、React Nativeの4種類の画面から構成されている。APIはREST APIとGraphQL APIの2種類がある。一見するとどこでどの技術を使って…

『エンジニアのためのマネジメントキャリアパス』2章まで読んだ

1on1のときに id:miki_bene さんに オススメされた『エンジニアのためのマネジメントキャリアパス』を2章まで読んだ。 www.oreilly.co.jp なお、この本は副題に「テックリードからCTOまで」とあるが、3章からテックリードなので、2章までだとそこまで到達し…

週末にLangChainを使って遊んでみた / DocumentLoader / Jupyter code cells

週末にLangChainを使って遊んでみた。LangChainはLLMを便利に使うためのPythonライブラリだ。先日動画で使い方を学んだので、それを参考にLLMが外部のデータを参照して質問に答えるのを試した。 nakaoka3.hatenablog.com DocumentLoader LanChainにはLoader…

Android・iOSアプリ開発者からみた他職種とのコミュニケーションのポイント

要約 アプリ開発における複数の役職間でのコミュニケーションは、明確な資料や情報の共有を通じて行われ、そのプロセスは開発の完成度を高める役割を果たします。異なる視点からの情報の差異を最小限に抑えることが重要です。早期に重要な決定を下すことで、…

DeepLearning.AIのLangChainショートコースを受講した

DeepLearning.AIのLangChainのショートコースを受講した。ジムで走りながら動画をみた見たので、まだ実際にLangChainを使ったコードは書いていない。しかしLangChainが何であるのか、その概要を掴めてよかった。 www.deeplearning.ai LangChainとはLLMを使う…