ごらくらいふ

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

備忘録

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の入力を求められたのち、 下記のエラーが発生…

Chromeの開発者ツールで選択した要素のHTMLElementを教えてくれるやつ、Ctrl+Shift+C がショートカットキーだった。

Chrome 67 で確認。 MacだとCmd+Shift+Cね。 URLとタイトルをひとまとめにクリップボードへ突っ込んでくれるChrome拡張がお亡くなりになったみたいで、 自作するしかないかー、そういえば空いてるショートカットキーはあるかななどと触ってたら動いて驚いた。

ぱぱっとかき捨てたいけどsyntax highlightとかエディタのサポートほしい…

/tmpに書けばよかったんや vim /tmp/draft.md

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…

Grepのオプション no-filename(-h) を使う時

grepコマンドのオプションに--no-filename(-h)というものがある。 これは、マッチした内容をファイル名、Pathのプレフィックスを除いて結果を出力してくれる。 単一ファイルの検索や、標準入力からの検索時には、デフォルトで有効となっている。 用途 複数の…

Zaif Apiに対する知見

Zaif Api v1.1.1 http://techbureau-api-document.readthedocs.io/ja/latest/index.html Zaif APIを弄ってて得た覚え書き。 trade_api/active_ordersや、trade_api/cancel_orderのcurrency_pairは任意項目となっているが、入力しないと挙動が安定しない。 ほ…

列挙型で 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…

gitのコミットハッシュを見て、処理を続行するか判断する

結論 git rev-parseでコミットハッシュを取得できる。 たとえば、リモートで変更があるかどうかによって、処理を分岐させることができる。 git remote # origin # upstream git fetch --all --prune if [ $(git rev-parse master) = $(git rev-parse upstrea…

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

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

Git Bash on Windowsでパス区切り文字をバックスラッシュに変換する(そしてExplorer.exeでカレントディレクトリを開く)

Git Bash on WindowsからExplorer.exeを呼び出す場合、パスの書式をWindowsに寄せておく必要がある。 結論 # aliases alias convertFullPathToWindowsFormat='sed -e "s/^\\/\\([a-zA-Z]\\)\\//\\1:\\\\/" | sed -e "s/\\//\\\\/g"' explorer /e,$(pwd | con…

sedを使って$PATHの中身を一行ずつ表示する

区切り文字:を半角スペースにしてforで回すという回り道をしてしまったので備忘。 \nでいいじゃんっていう。 echo $PATH | sed -e "s/:/\n/g"

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

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

Windows10でヘルプ(.hlp)が見れないので.chmを介してhtml化した

TSXBINのマクロヘルプが見たかったんだけれど、windowsお前ええ加減にしいや。 環境 Windows 10 Universal Extractor 2 Beta 4 HTML Help Workshop 4.74.8702.0 chmdecoder 2.2 (13.03.2014) 手順 chromeだかセキュリティソフトだかが「こんな得体の知れんし…

ps axで出るTIMEの書式はMMM:SS

結論 ps axコマンドで出力される書式にて、TIMEの書式はMMM:SS 経緯 「めっきり使ってないマイクラ鯖どうなってるかな」 「あれ?再起動できてなくない?」 # ps ax | head -1 && ps ax | grep forge PID TTY STAT TIME COMMAND 1046 ? Ss 0:00 SCREEN -h 10…

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

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

検索に使った正規表現はMarkdownにでも書いて残すと良い

気がする。 特定のリポジトリでしか使わない検索内容だったので、同じリポジトリの中にregexps.mdを作って書いた。 使い方も一緒に書いておけば忘れても大丈夫だ。 こんな感じで。 Match parameter name for obj-c (:\([^()]+?\))[^:\s]+?(?= [a-zA-z]+?:|$)…

自分の.vimrcをgistからダウンロードする

gist idやraw_urlを目視確認してからcurlするのは人間のすることじゃない、ということで。 前提 jqが使える curlが使える gistにある.vimrcはpublicである .vimrcはちゃんと.vimrcという名前にしている 複数.vimrcがある場合は、一番ファイルサイズの大きい.…

URL listをcurlにパイプで渡してダウンロードしたい

jqでURL取り出してCurlに引き渡したかった。(しかも1件だけ) 「curl (標準出力 OR パイプ)」とかでggってもPostするデータをtextからとかそんなんばっか。 結論 # cat url_list.txt | xargs -n1 curl xargsコマンドを使って指定したコマンドを並列実行させ…

Everythingをアプリケーションランチャとして使う

Mac使ってると、spotlight検索でパパっとアプリケーションを起動できる点が本当に便利に感じる。 Windowsでも似たようなことできないかと思ってEverythingを取り出した。 Everything Search Engine 基本方針 Desktopにショートカット集積ディレクトリを作る …

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 …

StackViewで等サイズ等間隔で要素を配置する

stackviewを使って等サイズ等間隔に要素を配置したい。 パターン StackView + Constraints StackView こっちのほうが好き StackView + Constraints StackViewに要素を配置し、要素同士をEqual widthsで揃える 要素間の間隔はStackViewのプロパティSpacingで…

putty形式の公開鍵をOpenSSH形式に変換してサーバにSCPアップロードする

(あーやべーなーパスワードログインできるままだなー) 個別に記事になってたのでひとまとめした # Putty形式 -> OpenSSH形式 ssh-keygen -i -f id_rsa_putty.pub > id_rsa.pub # scp [オプション] [ユーザ名]@[ホスト名]:[ファイル名] [ローカルパス (.)は…

CocoaPods Linking error 「ld: symbol(s) not found for architecture i386」

環境 Xcode Version 7.3.1 (7D1014) Base SDK - Latest iOS (iOS 9.3) 現象 CocoaPodsを導入して、いざdebug-buildしたら記事タイトルのエラーが発生した。 以下はそのログである。 Undefined symbols for architecture i386: "_FBSDKAppEventParameterNameC…

FacebookSDK 3.x -> 4.x : FBRequestConnection startWithGraphPath:completionHandler:が無くなったので FBSDKGraphRequest startWithCompletionHandler:を使う

記事タイトルキャメルケースでキッツキツだな。 結論 3.xにてGraphAPIを手軽に叩くため、FBRequestConnection startWithGraphPath:completionHandler:を使っていた。 4.xでは失くなってしまったのでFBSDKGraphRequest startWithCompletionHandler:を使った。…

FacebookSDK 3.x -> 4.x : FBLoginView無くなったのでFBSDKLoginButtonを使った

Facebook APIバージョン v2.0 が非推奨間近*1のため尻に火が点いている。 消火活動で代替処理がわかったっぽいので記録。 (追記:2016/07/21 22:13) 3.x のログイン(ログアウト)時の処理の認識が間違っていたので修正。 仮にログイン時にNavigationControll…

togglを三日坊主する

こういう脇道をせずにそのまま仕事をすればそのまま成果になるだろうに、逸れちゃうんだな、これが。 time tracking web service "toggl"を、とりあえず三日坊主する。 また三日坊主するときのために書き方まとめ。 何を記入するか タスク 行動のタイトルを…

ターミナルからプロビジョニングプロファイルのUUIDを確認する

コマンドラインを使ってDeveloper Centerから落としたプロビジョニングプロファイルのUUIDを確認したかった。 security cms -D -i your.mobileprovision | grep UUID -A 1 参考URL iOS 開発で使用する証明書、プロビジョニングプロファイルの内容を確認する…

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

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