ごらくらいふ

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

プログラミング

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…

BDDの書き方、始め方が分からなかったので、まず書いた

テストは大事なのは分かる。TDDやBDDでキーワードを手繰って、向き不向きやコンセプトの説明も見た。 けどそればかり拾ってしまって、実際にどう考えたらいいのか、どう書き出せばいいのか全くわからない。 「BDDでプログラミングする」を指針にマルバツゲー…

あるマスタから順不同に取り出した要素2件を組み合わせ、意味を持たせるときのテーブル構造

※ながめだよ 先日、PSStoreのセールにつられて「俺に働けって言われても乙 HD」を買った。 ほんのりプレイしていたところ、『このデータを表現するテーブルはどんな構造だ?』と気になったので考えた。 考えたので残すことにした。 経緯 ゲームシステムのひ…

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

本番に手作業でリリースする際、改修したファイルだけを取り出す。 リリースして問題があった場合に復元するため、バックアップを用意するが、その作業に手間取ったので備忘。 作業内容 登場するディレクトリは3種類 release リリースするものが詰まったディ…

bashでfor in文を叩く

半角スペースで句切られた文字列を回せるらしい sum=0 for number in 1 2 3 4 5 6 7 8 9 10 do sum=$((sum+number)) done echo $sum # 55 lsなどのコマンド実行結果も回せる for item in $(ls /path/to/directory) do echo name is $item done

カウンターChrome拡張「CounterExt」を作りました!

つくりました!!!! chrome.google.com スクリーンショット 目的 カウントする何かがほしかったのです。 ゆくゆくは外部からのリクエストを受けて、カウンターのプラットフォームにする野望があります! src Githubでソース公開しています。 github.com 不…

Xcode7(とiOS9)で セキュアじゃないサーバに IPアドレス直打ちで接続するにはどうしたらいいの?

諦めてドメインつけろ ドメインを付ければ、Info.plistでATSの例外に設定できる 参考URL [iOS]2015年9月16日リリースのiOS9対応とipv6移行対応について対応と参考資料まとめ | Coffee Breakにプログラミング備忘録 stackoverflow.com