pdfファイル構造

Rubyのpdf-reader GemだとJPXの日報からTextを取り出せるのに、SwiftのPDFKitでは問題が発生する。 表からTextの取り出しは出来るのだが、レイアウトが酷く壊れてしまうのだ。しかもその壊れ方に規則性を見いだせずにいる。そこでpdfのファイル構造を調べ始めた。 独自Text Extractorを実装する第一歩は、圧縮されたStream(FlateDecoder)からPDFオペレーターとオペランドを抜き出すことだ。

1 min read

サーバーレスのバックエンド

数年前(2017頃)にサーバーレスなる謎用語がバズっていた。GoogleのFirebaseを指していたのだが、今ではFirebase似のサービスのローカルで実行可能だ。Pocketbaseがそれなのだが、この記事では認証サービスを例にサーバーレスとは何なのかを調べたので記録しておく。以下の情報はGrokに尋ねて得た。

1 min read

日本株を模擬売買やってみた

模擬売買とは売買シミュレーション、システムトレードと言われてるヤツである。コードで記述可能なルールで銘柄を選び、買い取引、売り取引のタイミングも選び、ルールを過去の株価に適用する。適用した結果、利益率(収益: 利益‐損失を取引回数で割る)が大きいルールの発見を目指す。ルール、コード、実行結果を以下に示す。

5 min read

決済代行サービス利用時のフロント/バックエンド実装

アプリを開発してマネタイズする方法の一つにActivation Codeの販売を行うのがある。その際のバックエンド、フロントエンドの実装を調べてみた。なお、以下に掲載するコードの内、Code生成、Codeの正当性検証のコード(Swift, Ruby)以外は実際に動作を確認していない。

  • 開発者の口座に入金がなされる仕組み
1 min read

KeyPath<T, V>で作る汎用関数

多数のメンバを持つタイプのメンバへのアクセスを抽象化(汎用化)した下記のsortBy関数は、KeyPathで実現されています。時にはname, 時にはageで配列をソートしたい場合にsortBy関数がどちらの場合でも利用できます。なお、People型のInt型プロパティへのKeyPath<T, V>は\People.ageと表記されます。

~1 min read

macOS AppのタイトルバーにMenuボタンを設置

タイトルバーにメニューボタンを設置してみた。メニューにButtonを設置することは出来るが、Text, Pickerの設置してもコンパイルエラーは発生しないがPreview Canvasに表示されない。もちろん、Debug実行しても表示されない。(俺的メモ: ToolbarContent@FloatingTabBarワークスペース)

~1 min read

App起動前にDialogを表示する

macOS Appの場合App起動前に、SQLite3のDBからデータを取り出す処理に失敗した時にApple Scriptのdisplay dialogを使って失敗を通知できる。ネットを漁って見つけたコードを残して置く。

~1 min read

依存性注入の2つの手法を比較

ContentViewにCounterクラスのインスタンスを注入する際にインスタンスを1つだけ生成する場合と複数生成する際の振る舞いの違いを比較する

~1 min read

Shape vs ShapeStyle at SwiftUI

どちらもTextの背景を設定する際に用いるのだが前者は図形、後者は図形の塗りを指定する。次のコードではTextの背景が同じ3つのButtonを表示している。背景は灰色青で塗った角丸四角を3通りのコードで表現している。

~1 min read