サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
装丁を味わう
peccu.hatenablog.com
gitに新しい2つのコマンド git checkoutでできることが多いため機能を分離 ブランチ切り替え git switch(git checkout) ブランチ作成と切り替え git switch -c (git checkout -b) ファイルのリストア git restore --source master main.c(git checkout master -- main.c)https://t.co/BeqzXgTbfk— そな太 (@sonatard) August 16, 2019 バージョン2.23より前のgitでは下記の両方でcheckoutサブコマンドを利用していた ブランチ切り替え操作 ファイルをコミットされていた状態に戻す操作 2.23からはそれぞれに専用のサブコマンドが割り当てられ、わかりやすくなった。 もうmacではbrew upgradeで更新でき、補完
とりあえずdocker, dockerfile-mode, docker-compose-mode, docker-trampの4つをインストールした。 どれもlist-packagesでマーク(iキー)して、インストール(xキー)できた。 なぜ今までこれらを探して使おうとしていなかったのか。。。 それぞれの補足 SpotifyやSilexと有名どころが作っていたんですねぇ github.com M-x docker でdocker サブコマンドを一通りEmacs風に実行できる。素晴らしい。 (require 'docker) github.com Dockerfile用のモード (require 'dockerfile-mode) (add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode)) github.com
user.name ではなく、 credential.username を設定しておけばGitHubに接続する時のユーザー名を指定できる。 git config credential.username peccu osxkeychainを使っている場合は別のリポジトリを使うときに使った設定が引き継がれて、こんなエラーを吐く。(superuserより) remote: Permission to username1/repo.git denied to username2. fatal: unable to access 'https://github.com/username1/repo.git/': The requested URL returned error: 403 superuser.com Acceptedじゃない回答が求めていたものだった。
macの辞書をターミナルで引ければ楽で速いかなと思い調べたが、Dictionary.appが起動するものとPythonのスクリプトしか見当たらなかった。 しかもPythonのスクリプトはちょっともたつく。 中身はObjective-Cバインディングを使っているようなので、Swiftで書いてみたらバイナリも生成できるし速かった。という話。 結果 for i in d.py define.py dict.py dict.swift dict do time ./$i window >/dev/null done ./$i window > /dev/null 0.83s user 0.23s system 83% cpu 1.265 total ./$i window > /dev/null 0.77s user 0.14s system 90% cpu 1.011 total ./$i wi
ググって出てくる記事ではパッケージのインストール(zipアップロード)が必要で、 ほんまかいな。という気持ちになったのでcurlでAPIを叩くコードにしました。 トークンを環境変数 bearer に設定してください。 'use strict'; const AWS = require('aws-sdk'); const BEARER = process.env.bearer; const MESSAGE = '通知だよー'; const API = 'https://notify-api.line.me/api/notify'; exports.handler = (event, context, callback) => { console.log('Received event:', event.clickType); var exec = require('child_process
elasticsearch Set proxy configurations to env $ES_JAVA_OPTS like below. ex: installing x-pack ES_JAVA_OPTS="-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8888 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8888" ./bin/elasticsearch-plugin install x-pack kibana Kibana doesn't support proxy yet... You need to download plugins directory by curl, wget, etc. and run bin/kibana-plugin. curl
bashのシェルスクリプトがなぜか正常終了しない時に、シグナルが飛んできていないか確認したかった。 これを参考に全てのシグナルに対してtrapさせてみた。 stackoverflow.com trapに関してはこの辺りが参考になると思う。 qiita.com #!/bin/bash # https://stackoverflow.com/a/9256709/514411 trap_with_arg() { func="$1" ; shift for sig ; do trap "$func $sig" "$sig" done } func_trap() { echo Trapped: $1 } trap_with_arg func_trap HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFL
github.com npm i sendmail const sendmail = require('sendmail')(); sendmail({ from: 'from@example.com', to: 'to@exampl.com', subject: '件名も化けなかった', text: 'これは本文' }, function(err, reply) { console.log(err && err.stack); console.dir(reply); }); 実態は送信先メールアドレスに対して直接SMTPを喋っている様子。 ローカルのmailコマンドやSMTPサーバーに依存しない。
順方向を C-;、逆方向を S-C-;すなわちC-:にすると便利。 もともとother-windowをC-;に割り当てていて、隣のウィンドウにはワンストロークで移動できていた。 ふと隣り合うウィンドウを行き来するのが面倒(windmoveを利用しているので、シフトキー+カーソルキーとC-;で指の位置が行き来する)になったので、 シフトキー+C-; = C-:を(other-window -1)に割り当てたところ便利だった。 (defun counter-other-window () (interactive) (other-window -1)) (global-set-key (kbd "C-;") 'other-window) (global-set-key (kbd "C-:") 'counter-other-window)
cavemanでwebsocket-driverを読み込んで、defrouteにwebsocket-driver:make-serverを入れるとよい。 前提 caveman2:make-projectでひな形を作成している。 (ql:quickload :caveman2) (caveman2:make-project #P"/path/to/myapp/" :author "<Your full name>") 参考:CavemanのQuickstart システムにwebsocket-driverとswankを追加する asdファイルのdefsystemに記載されている:depends-onに:websocket-driverと:swankを追加しておく。 websocketのルートを書く websocket-driverのサンプルを動かすならこんな感じになる。 (defroute "
stash popで衝突して修正している間に何をしていたか忘れてdropしてしまうというミス git reflogでは出てこなかったが、git fsckでは出てくるとのこと。 stackoverflow.com この回答の通り。 消してしまったコミットを探す 参照できなくなったコミットのログを一覧する。 macならこのコマンドで git log --graph --oneline --decorate --all $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' ) windowsだとこれ(未確認) git log --graph --oneline --decorate --all $(git fsck --no-reflog | select-string 'dangling commit' | foreach {
リバースプロキシとしてnginxを動かしていて、どのnginxやlocationの設定が有効なのか区別したくてヘッダ情報を追加したかった。 この設定で X-Whom: www-node01とヘッダに追加される。 add_header X-Whom www-node01 www.cyberciti.biz この記事ではcurl -Iを使っているけれど、個人的には curl -vの方が好き。
npmパッケージの依存するパッケージの中にはgit://で始まるURLが指定されていることがあってプロキシ環境下だとクローンできない。 git://github.com/hogehoge/fugafuga.git のような。 git://のみcloneに失敗とか、timeoutのエラー表示ならほぼプロキシを経由できていないからかと思う。 gitがプロキシを超えられるようにする 準備(git://でなくても必要) 環境変数の設定 HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxyそれぞれに http://proxy.example.com:8080のように設定する 続く手段1と2はどちらでも良い。1が簡単。 手段1 参考:A simple wrapper around socat to use as a git proxy command git
www.wilfred.me.uk RustでEmacsを実装しているらしいので、ビルドしてみた。Rustに興味がわいた。 Rustのインストール www.rust-lang.org curl https://sh.rustup.rs -sSf | sh Remacsのソース取得とビルド。こける git clone https://github.com/Wilfred/remacs.git cd remacs/rust_src cargo build cd .. ./autogen.sh ./configure --without-makeinfo --with-ns --without-x make こんなエラーで止まる。 Emacsでもmac向けにパッチ当ててるやつが抜けてるのだろうか。。。 /Applications/Xcode.app/Contents/Developer/usr/
深町さんのこの記事をやってみた記録 blog.8arrow.org いろいろ準備 Node.jsとRoswellのインストールは省略。 Yeomanとジェネレータ、Lakeをインストール。 npm i -g yo generator-hubot ros install lake プロジェクトディレクトリの初期化 Rocket.Chatで使いたかったので、アダプタも指定した。 mkdir hubot-cl cd hubot-Common Lisp yo hubot --name="bot" --adapter="rocketchat@1" rm hubot-scripts.json npm un -S hubot-{heroku-keepalive,google-images,google-translate,maps,redis-brain} npm i -S hubot-mongodb-
ググるとAppleScriptが出てきたので gist.github.com シェルスクリプトにした。 .bashrcや.zshrcなどに書けばatrlという関数が定義されるので、引数にURLをしていすればよい。 URLに?や:、!が入っていれば'で囲めばよさそう。 gist.github.com
開発者ツールが重い気がして、jq-consoleでコンソールを作ってブックマークレットにしてみた。 CodePenのコンソールには程遠いと思うけれど。 このリンクをブックマークバーに置けば、コンソールが使いたいだけの時は開発者ツールを起動するのを待たなくて良い。 window.evalだからスコープが狭いが、ちょっと確認するにはだいたい満たされたと思う。 launch console 内容はこんな感じ。
'(qlot Caveman2 Clack Roswell jscl)この辺りの組み合わせでようやく雛形のようなものができた。 やろうとしたこと jsclというCommon LispをJavaScriptにコンパイルしてくれるものを使って、フロントエンドもCommon Lispで書こうとした。 github.com 見よう見まねで作ったので、そこはこうするのが良い。といったことがあればコメントなりTwitterでなり指摘していただけると喜びます。 Lisp Advent Calendar 2016の記事です。 Node.jsに慣れすぎて、Common Lispだと何かにつけてはまる。はまるたびに正解がわからない。 jsclを使ってコンパイルするところで力尽きたので、jsclでフロントエンドというところまでできていない。 成果物 github.com やっていることは/lisp/:lisp.
Emacs Advent Calendar 2016 - Qiita 6日目のpeccuです。 5日目は yoshitiaさんの evil-modeのelispをちょっと覗いてみる - yoshitia’s diary でした。 明日はsylxさんのEmacsでライブコーディングする(仮)です。 普段からEmacsを便利に利用しているのですが、その学習曲線のせいであまり人に勧めようとは思えません。 from: Text editor learning curves また、Emacsで利用している機能を紹介するとよく、「それ〇〇でもあるよ」(〇〇=vim、Atom、VS Code、Sublime Text、...)と言われるので、 これはないだろうという内容としてEmacsで遊ぶ方法を少し紹介します。(もちろんvimには以下のものの多くは存在すると思います) EmacsWiki: Categ
前の記事でわからない部分をまとめたので、少しずつ調べる。 peccu.hatenablog.com (そろそろorg-modeでブログ書きたい) RoswellとQuicklispが簡単で便利ゆえに中身を気にしていなかった。 背景にある仕組みを理解すればパッケージ周りは多少解決できるのではないだろうか。 結論は、qlot使えば良さそうなことがわかった。 まとめ ざっくりと拾い上げたので間違っていれば指摘していただけるとありがたいです。 仕組み 場所 ASDF ~/common-lisp, ~/.local/share/common-lisp/source, asdf:*central-registry* Quicklisp ~/quicklisp, ql:*quicklisp-home* Roswell ~/.roswell/local-projects, ~/.roswell/lisp/
これまででわかりにくかったところと、まだわからないところ。 追記:redditとTwitterにていただいた助言を追加 追記2:構造体の make-* を追加 わかりにくかったところ Common Lisp勉強中に「ソースコードが読めない!」と感じた部分が多いです。 関数の定義場所 リストの先頭が関数で残りは引数。という考え方でほとんど読めるのですが、 まだ覚えきれていない間はその関数は何かわからないことが多く、いちいち悩みました。 候補にこれらが混ざっていることが多いです。 Common Lispで規定された関数 →clqr (Common Lisp Quick Reference)やCLHS (CLHS: Alphabetical Symbol Index (Full))で探す。 私はclqrをコンビニで印刷して製本したものを側に置いています。 その資料中で事前に定義されたもの →忘れ
org-modeも9.0になったことだし、Emacsのバージョンを上げた。 やったこと *.elcの削除 cd ~/.emacs.d rm **/*.elc **/.*.elc (when emacs24-p) の記述を更新 localeをCに変更 ;; set locale for date format (setq system-time-locale "C") 曜日が日本語になったので。 NEWSよりピックアップ M-x view-emacs-news (C-h n)を実行するとoutline-modeでNEWSを読めて便利。 CLOS風の汎関数 ** cl-generic.el provides CLOS-style multiple-dispatch generic functions. The main entry points are 'cl-defgeneric' and
ロゴ画像からリサイズした画像群とicoファイルと、それらを読み込むHTMLを生成したかった。 今風ではないし、網羅しているわけでもないけれどサクッと指定したい時に。 使い方 generate-favicon logo.png 同じフォルダにリサイズした画像とfavicon.icoが出力され、このようなHTMLが標準出力に出力される。 <link rel="shortcut icon" sizes="16x16 24x24 32x32 48x48 64x64" href="/favicon.ico"> <link rel="apple-touch-icon" sizes="57x57" href="/logo-57.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo-72.png"> <link rel="apple-to
Safari 10からようやくサポートされたので、自分が利用する部分にもようやく導入した。 実装例 clipboard.jsなるものもあるが、これはDOMの指定が必要っぽくて少し使いづらかった。 clipboardjs.com 中身は document.execCommand なので、そっち方面で見つけたStackOverflowの回答をベースにjQuery依存を削除した。 stackoverflow.com サンプル // コールバックあり copy('some text', function(text){ console.log('copied: '+text); }); // コールバックなし // アラートダイアログでコピーしたテキストが表示される copy('some text'); 使用例 ブックマークレットで現在見ているページのリンクをタイトルつきで org-modeやMar
PDFから濁点や半濁点がついた文章をコピペすると二文字に分離されてしまう。 これを結合するそのまんまの関数がありました。 リージョンを選択して M-x ucs-normalize-NFC-region で終了。これは気持ちいい。 バッファ全体に適用するなら @sky_y さんの gistが利用できます。
再起動しようとして、起動にこけると困るのでテストして通れば再起動する。 ついでにログも監視する。 systemd用です。 sudo nginx -t -c /etc/nginx/nginx.conf && sudo sh -c 'systemctl restart nginx; journalctl -f -u nginx'
普段利用しているメインマシンにbash-confというコマンドを用意して、サーバー構築時にその出力を.bashrcにコピペしています。 イメージ 前提として、下記の設定をしているので、echo 'hoge' | CのようにCコマンドでクリップボードにコピーできます。 mollifier.hatenablog.com # bashの設定をクリップボードにコピー bash-conf|C # サーバーの.bashrcにペースト ssh server vi .bashrc # 末尾でペーストする bash-confの内容 下記のシェルスクリプトを~/bin/等パスの通っているところに置いています。 内容はだいたい以下のとおり 履歴の件数を100000件にする 複数の端末で同時実行しても履歴をマージする プロキシの設定 ~/.aliasがあれば読み込む t でtmuxのセッションがあればアタッチして
まれにネットワークが切れるサーバーがあって困るので監視したかったが、 zabbixとかnagios入れるほどでも。。。と思っていた。 pingをBitBarに表示すれば一目瞭然だった。 getbitbar.com ここから「Add to BitBar」を押して追加するか、BitBarのプラグインフォルダにスクリプトを置く。 上の方にSITES=(google.com youtube.com wikipedia.org github.com)という記述があるので、ここを監視したいサーバーに書き換える。 pingのレスポンスが遅くなったり繋がらなくなるとBitBarの数字が大きく黄色くなる。 クリックしてドクロが表示されたらping通らなくなっている。 この発想で、サーバーのステータスを返すAPIを定期的に取得して表示したら良さげ。 sparkでサーバーのCPU使用率とかメモリ使用量を表示でき
2016/08/16や2016-08-16などいろいろ手入力は面倒なので、関数を書いてキーを割り当てた。IMEのきょうを変換するのはスペースキー連打が手間。 使い方 C-c dを割り当てているとして説明する。割り当ててなければM-x insert-dateで読み替える。 C-c d: YYYY/MM/DDのフォーマットで今日の日付を入力 C-u C-c d: YYYYMMDDのフォーマットで今日の日付を入力 C-u C-u C-c d: YYYY-MM-DDのフォーマットで今日の日付を入力 C-u C-u C-u C-c d: フォーマットをミニバッファで入力する。デフォルトはYYYY/MM/DD HH:MM:SS 私のよく使う順になっているので、適宜変更していただければ。 実装 結構前から固定のフォーマットでは入力できていたけれど、ミニバッファで入力できてなかった。 ふと見直すと上手く動
次のページ
このページを最初にブックマークしてみませんか?
『@peccul is peccu』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く