ごらくらいふ

プログラミングしたりゲームしたり

programming

ふとresult.tsを更新した

Changelog バージョン 0.3.0 になりました。 Enhancement ok<T>(value: T) という関数を追加しました。 err<E>(error: E) という関数を追加しました。 Deprecated Ok<T>(value: T) Err<E>(error: E) www.npmjs.com 経緯 先日、 WSL2 環境を Ubuntu 22.04 LTS に移行した</e></t></e></t>…

ボツ案: 同じ内容で、ファイル名が連番のファイルを作成する

zenn に1件記事を書いた。 記事に仕立てようと調べていく内にコマンドの内容が変わっていったので、その供養記事。 zenn.dev 決定稿 (2021-05-04 に zenn.dev へ投稿したもの) cd /path/to/diary/2021/05 seq -f '%02g.md' 1 31 | xargs -n 1 cp /path/to/te…

RSS 0.91の仕様書を読んだというメモ

ウン年前にPHPでRSS Readerを作ったことを思い出した。 当時はWebサービスで、今度はiOSアプリケーションにでもしてやろうと思う。 これにあたって、RSSの仕様書をちゃんと読んでみようと考えた。 RSSは諸々分岐していることをWikipediaから知り、RSS 2.0 ->…

エクスポートしたKindle note HTMLをmarkdownに変換するコマンドを作った

Kindleには自分のハイライトをエクスポートする機能がある。 マイノートからシェアボタンを押すと、メモをHTML化した上でメール送信できる。 このHTMLを、必要な分だけ抽出してmarkdownにするコマンドを作った。 github.com 自分のメモを共有したい。ブログ…

DeployGate-CLIのカレントユーザー切り替えコマンドを作った

はい。作りました。 github.com 自分が、個人だったり所属コミュニティに応じてDeployGateアカウントが複数存在するので、 いわゆる誤爆をやらかしてしまう危険がある。 deploygate-cliは設定ファイルとしてアクセストークンをぽんっと置いてあるので、 アカ…

URLConnectionの通信をURLSessionに書き換えた

NSURLConnectionがiOS 9.0でDeprecatedになってから時間も経ち、もうiOS 12が出る時勢にNSURLSessionへの書き換え事案が発生した。 感想 NSURLConnectionDataDelegateとNSURLSessionDataDelegateの互換性はわりと確保されていて助かった。 なぜかcompletionH…

Rust Vec<T>を特定の長さで分割する

背景 gifとかzipとかパースしたいなあ+Rust触りたいなあ! ということで、まずはバイナリダンプから始めようとした。 以下のようなフォーマットで標準出力に吐き出したい。 50 4b 03 04 00 00 00 00 00 00 00 00 00 00 00 00 | PK.............. 一行出力す…

DeployGateのコマンドラインツールから Commands::Deploy Error: NoMethodError と怒られる件

環境 ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15] deploygate-cli v0.6.4 Xcode 9.4.1 現象 dg deployを実行すると、適切にBundle Identifierを指定しているにも関わらず、Bundle Identifierの入力を求められたのち、 下記のエラーが発生…

UITextFieldの内容をUserDefaultsに自動保存する。(+ 保存用のキーをInterfaceBuilderで設定する)

UITextFieldの入力値をUserDefaultsに保存する方法、VCべた書きIBInspectable+DelegateObject+IB接続customClass+IBInspectable <- 今ここ— yajamon (@Yajamon) 2018年6月18日 寄り道を経てカスタムクラスの最適解に降り立った気がする。 This UITextField i…

リファクタリング「リトル・レディ」 #1 画像ボタンをホバーで差し替える処理

約3年も前の話、「リトル・レディ」という作品をChromeで動くようにしたい! という思いのもと、勝手に復活開発日誌を始めた。 yajamon.hatenablog.com yajamon.hatenablog.com この開発は一気に進み、2年弱放置の後に完結宣言が行われた。 この記事は? …

Zaif Apiを叩くツール zacli v0.1.0 をリリースした。

Rust製のZaif API Wrapperを作っているので、これをコマンドラインツールとして使用するCrateを作成した。 yajamon.hatenablog.com インストール方法 RustとCargoの準備が整っているなら、以下のコマンドでインストールできる。 cargo install zacli 使い方 …

Rustでホームディレクトリのファイルを読み込みたい(ドキュメントに書いてあってうれしかった話)

これ。 use std::env; use std::path::{Path, PathBuf}; use std::fs::File; use std::io::prelude::*; fn open_file() { let mut path = env::home_dir().unwrap(); path.push("config.toml"); let mut file = File::open(path).unwrap(); let mut contents…

Zaif-api-rust v0.5.0をリリースした。trait From、エラーハンドリングに便利だった。

ついさっき、Rustで書いたzaif-apiのwrapper、v0.5.0をリリースした。 github.com 今回の改修はエラーハンドリングが目的で、「まず動く」で作っていたところを取り回しできるようにした。 活躍したのが標準ライブラリに入っているFrom<T>トレイトで、あるstruc</t>…

DLLってなんなのん

DLLとは ダイナミックリンクライブラリと読む。 動的なリンクで利用されるライブラリ。 対義語: 静的リンクライブラリの認識 リンクというものは、以下の認識でいる。 プログラムは、複数のコンパイルされたマシン語のプログラム片(以下、プログラム片)か…

Rustの話: traitの定義部分では、フィールドに干渉できない

前提 rustc 1.22.1 本題 traitを書く時、こういう書き方はできない。 trait Horizontal { // x:i64 というフィールドの存在を前提とする // x をカウントアップして、新しい値を返す fn count_up (&mut self) -> i64 { self.x += 1; self.x } } struct Point…

Rustでzaif apiのwrapperを書いている

Rustでzaif apiのwrappreを書いたている。 reqwestでもりもり実装していて、なんか楽しい。 まだ借用チェッカーと戦ってるボーイなので、もりもりコピーして構造体たち皆所有権のあるデータ持つ、みたいな書き方してる。 まぁ使う分には引数に与えたデータを…

列挙型で error[E0507]: cannot move out of borrowed content に対処した

ムーブセマンティクスを忘れていた話。 Builderパターンで以下のように書いたところコンパイラにerror[E0507]: cannot move out of borrowed contentと怒られた。 enum Method { Get, Post, } struct Client { method: Method, } struct ClientBuilder { met…

ライフゲームってやつをDOM+VanillaJSで書いてみた

ライフゲーム - Wikipedia ライフゲームというものをつい最近知ったので、息抜きにガガガっと書いてみた。(DOM+VanillaJS製) 「まず動く」に重点を置いて書いて1.0.0のタグを切ったので、よければforkしてリファクタリングの練習材料にでもしてほしい。 gi…

vimをビルドするスクリプト書いたらただそれだけでも捗りがあった

自分好みの./configureオプションをどこかに残しておきたかっただけなんだけど、そのままmakeしてしまえと思ったのです。 makeがだばだばと状況を吐き出す姿は頼もしい… dotfiles/build-latest-vim at master · yajamon/dotfiles · GitHub 一応 2017-12-01現…

DDDエリック本を読んでいる:RepositoryとFactoryの関係

DDDについてEric本を読んでいたところ、オブジェクトの生成やシリアライズについての指針が参考にできそうだったので、メモ。 Factoryはオブジェクトのライフサイクルにおける始まりを処理し、リポジトリは中期から終わりを管理するのを助ける。 リポジトリ…

WPFかじり: HTTP GETする

MSDNのHTTPページにリクエストを飛ばして、レスポンスから適当に表示してみる。 工程を分割 URIからリクエストの発行 var uri = "https://docs.microsoft.com/en-us/dotnet/framework/network-programming/http"; var request = WebRequest.Create(uri); var…

WPFをかじりだした。Hello world.

直近、Web systemとしてC#に触れる機会が発生して、ついでにGUIアプリケーションの作り方にも触れたいと思ったのでかじった。 とりあえず@ITの連載をざっと流し読みして雰囲気を掴む。 public partial class MainWindow :Window { public MainWindow() { Ini…

型に語らせて in kotlin (and java ?)

某本の某コードをkotlin化している。 この本はちょっとしたイラッを無数に積み重ねる反面教師本だと感じている。 何を悪しとして何を良しとしたかの備忘録。 あまり手を加えず、本件とは無関係の要素を削ぎ落としたコード片が以下の通りである。 abstract cl…

cron実行時のPATHがどこで決められるのか調査した

経緯 CentOS鯖が2本ある Let's encryptの自動更新をしたくてシェルスクリプトを書き、cronに食わせた 2本の内1本から「コマンドが見つかりません」とエラーメールが飛んできた 環境 CentOS release 6.8 (Final) 原因 両方とも失敗していたが片方しかrootメー…

メソッドの責任について考えたログ

エラー処理という名のガードレールが無いプログラミングを続けてきた。 慣れないことを考えたので思案のログを残す。 条件設定 あるコレクションのメソッドにて、引数の識別子に一致する要素を探し、仕事をさせる。 この時、引数が存在しないとき(undefined…

WinMerge日本語版をSourceTreeのマージツールにセットした

結論 Diffコマンド WinMergeまでのPath 引数 -e -u -wl -wm -fr -dl 'Base file [read only]' -dm ' Theirs fise [read only]' -dr 'Mine file' -ar $BASE $REMOTE $LOCAL -o $MERGED 想定 3ペイン方式。 ペイン 役割 左ペイン Base file 中央ペイン Theirs …

続・リリースするファイルに対応したバックアップを作る

↓この処理をシェルスクリプトにした。 yajamon.hatenablog.com #!/bin/bash src=$1 dest=$2 backup=$3 # backupのパスがファイルなら終了 if [ -f $backup ] ; then echo "\$backup is file" exit 1 fi # srcと同じディレクトリ構造のbackupディレクトリを作…

iPadでdvorak jpほしい

無いから作ってる。 とりあえずアルファベット直輸入と末梢できるようにしたよ。 ハハッワロス 入力中の文字列をinputAccessoryViewに表示したいけど、UITextViewとか入力先が保持してるパターンの資料しか見つかってないので辛い。 ローマ字テーブルも作ら…

プログラムする前にペーパークラフトするのは

先日、すごくためになりそうなツイートを見た。 ゲームに限らないけど、プログラムする前にペーパークラフトから入る人の有能率すごい高い気がする。— 尾野(しっぽ) (@tail_y) March 30, 2016 最近、マルバツゲームを元にBDDやってみようと始めたところ、…

共通のキーワードを持つファイルたちをBashで一括置換リネームする

記事タイトルの通り、共通のキーワードを持つファイルたちを一括でリネームしたい状況になった。 たとえば デザイナと image_yyyymmdd_{s,m,l}というファイル名でやり取りしてるが、最終的にはyyyymmddが不要とか、キーワードに置換するとか app.yyyymmdd.lo…