@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

snake_case->PascalCase->camelCase->snake_case->...に変換するコマンド

id:IMAKADOさんの実装を参考に、以下を追加した。 リージョンだけでなくカーソルの置いているシンボル(thing-at-point)も変換対象とした snake_case<->PascalCaseだけでなくcamelCaseを加えて循環するようにした d.hatena.ne.jp

Slackのフィード一覧をOPMLファイルに書き出す

Feedlyでは読みきれないのでSlackでフィードを購読(/feed subscribe URL)すれば目について読めるのではないか。と思った私は甘かった。 結局フィードが増えて追いつけなくなったので feedreader に移行することにした。 流れ RSSの設定画面を開く https://*.…

Node.jsでメールを送る。mailコマンドやSMTPサーバー不要。

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.…

Emacsでウィンドウのフォーカスを移動するキーバインド

順方向を C-;、逆方向を S-C-;すなわちC-:にすると便利。

Common Lispで特定のパッケージを使っているものを探すなら「filetype:asd」をつける

redditで見かけたのですが、「filetype:asd パッケージ名」でググると、そのパッケージに依存しているものが引っかかることを知りました。 www.reddit.com 例えばwebsocket-driverを使っているものを検索するならこんな感じ filetype:asd websocket-driver -…

サムライトのEngine.IOサーバーを試す

深町さんがサムライトでEngine.IOサーバーを書いていたので試しに動かしてみた。 github.com ただ、そのままじゃClack(Lack)やwebsocket-driverの変更に追従していなかったので、forkして修正してみた。 github.com 果たして今さらプルリクエストを作成して…

CavemanでWebSocketしつつslime-connectでデバッグ

cavemanでwebsocket-driverを読み込んで、defrouteにwebsocket-driver:make-serverを入れるとよい。

Git stashからdropしてしまったものを復旧する

stash popで衝突して修正している間に何をしていたか忘れてdropしてしまうというミス git reflogでは出てこなかったが、git fsckでは出てくるとのこと。 stackoverflow.com この回答の通り。

GiHubリポジトリのページとGitHub Pagesを行き来するブックマークレットを書いた

ソースを見たくなった時に、URL手打ちが面倒だったので書いた。 独自ドメインは対応してない。(できる気がしない)

Emacsで"Autoloading failed to define function"が出たらload-path内に複数の定義がある

タイトルの通りですが。 emacs.stackexchange.com load-path内で衝突しているものの一覧がM-x list-load-path-shadowsで表示されるので、 autoloadしようとしていたものを探して、不要な方を消す。

git fetch, pullで fatal: git fetch-pack: expected ACK/NAK, got 'ERR want ... not valid'

GitBucketを使っていて、clone/pull/fetchするときにエラーが出るようになった。 サーバーのリポジトリでgit fsck -> git gcを実行するとエラーが出ずに実行できるようになった。

SubversionのようにGitで差分リリースする

Subversionでは指定した二つのコミット間で変更のあったファイルのスナップショットを書き出せるようです。 差分リリースでよく利用されているかと思います。 Gitではそのままのコマンドがないので今まで諦めていたのですが、 コマンドの組み合わせで実現で…

embed.lyを使うのは簡単かも

aタグにembedly-cardクラスをつけて、embedlyのjsを読み込むだけで良さそう See the Pen embedly example by peccu (@peccu) on CodePen.

Vue.jsからCommon Lispの関数をjsonrpcで呼ぶ

深町さんのポケットチェンジでの活躍を見て、私も試してみたくなった。 Building GUI App with Electron and Lisp from fukamachi www.slideshare.net 最近は Vue.js で遊んでいるので、そこからjsonrpcでCommon Lispの関数を呼んでみた。

webpackでビルドしたものをブックマークレットで読み込む

vue-cliで作ったVue.jsアプリをブックマークレットで使う遊びをしていて、 開発中はwebpackでビルドしたもの(npm run dev)を直接呼び出したかった。

JSでframesetをbodyに置き換える

最近ブックマークレットでVue.jsを読み込んで既存ページを書き換えるのがマイブーム。 昔ながらの frameset を使っているページでフレームを越えたものを使おうとした時に調べた。

第1回関西Lispユーザー会に参加した

4/22(土)に京都で第1回関西Lispユーザー会があったので行ってきました。

JavaScriptでオブジェクトを対象にmapやreduceする

JavaScriptでオブジェクトを対象にmapやreduceしたかった。 Object.keys()でオブジェクトのキーが取り出せるので、それを元にmapやreduceする。 var o = { key1: 'value1', key2: 'value2', key3: 'value3' }; // retuce Object.keys(o).reduce(function (pr…

nginxでレスポンスヘッダを追加する

リバースプロキシとしてnginxを動かしていて、どのnginxやlocationの設定が有効なのか区別したくてヘッダ情報を追加したかった。 この設定で X-Whom: www-node01とヘッダに追加される。 add_header X-Whom www-node01 www.cyberciti.biz この記事ではcurl -I…

git://で始まるリポジトリURLをプロキシ環境下で使う

npmパッケージの依存するパッケージの中にはgit://で始まるURLが指定されていることがあってプロキシ環境下だとクローンできない。 git://github.com/hogehoge/fugafuga.git のような。 git://のみcloneに失敗とか、timeoutのエラー表示ならほぼプロキシを経…

ディレクトリ内のファイルを監視して変更があればブラウザをリロードする

LiveReloadするのに設定が面倒。 書き捨てHTMLには simple-autoreload-server が楽チンだった。

hubotify.rosにros buildを追加した

これの続き peccu.hatenablog.com

Remacsをビルドしてみたけどmakeでこける

www.wilfred.me.uk RustでEmacsを実装しているらしいので、ビルドしてみた。Rustに興味がわいた。

CookPad Pager

クックパッドの検索結果画面で使えます。たぶん。 For iPhone Safari ').appendTo('body'); $(html).appendTo('#next'); $('#next .item_content').remove(); $('#next .recipe_image').css('display','inline'); $('#next a.recipe_link').insertBefore('#r…

「HubotスクリプトをCommon Lispで書く」をやってみた

深町さんのこの記事をやってみた記録 blog.8arrow.org

SafariのReading ListにURLをターミナルからコマンドで追加する

ググるとAppleScriptが出てきたので gist.github.com シェルスクリプトにした。

Amazon Dash Buttonの母艦をIntel Edisonにする

需要がなさそうなので簡単に書きます。連絡いただければ追記します。

マウントされていないパーティション情報を表示する

partedというコマンドがありました。 sudo parted -lで各ディスクに対してどうパーティションを切っているか一覧表示できます。

Safariでピン留めしたときのアイコンを指定する

Safariのどのバージョンからかピン留めができるようになった。 そこにfaviconのようにSVGでアイコンを設定できるらしい。 <link rel="mask-icon" href="website_icon.svg" color="red"> developer.apple.com</link>

Common LispでSlackに定期ポストする

定刻に通知するスクリプトをCommon Lispで簡単に書いてみた。 (追記 : Slackの /remind コマンドで実現可能なことを教えてもらいました。が、Slack互換の別アプリで使っていることと、Common Lispでcronぽいもの、HTTPリクエストする練習だったので良しとし…

Common Lispのパッケージ、ライブラリ、システム

パッケージとライブラリとシステムと、区別がついていないので調べつつメモ。 だいぶまとまってきた気がするのですがいかがでしょうか?指摘歓迎です! (追記 *package*とlist-all-packagesとrequire、asdf:load-op、asdf:load-systemについて追記しました)

Common Lispの難しさ/良さは選択肢の多さかもしれない

なぜ思うように実装するのが難しいと感じているのか、少し考えてみたところいろんな部分に選択肢が多いからではないかと気づいた。 慣れるとそれが良いところなのだろうけれど。 選択肢が多いので、意味がわかるまで問題に対する切り分けが困難。

JavaSctiptコンソールを生成するブックマークレット

開発者ツールが重い気がして、jq-consoleでコンソールを作ってブックマークレットにしてみた。 CodePenのコンソールには程遠いと思うけれど。

フロントエンドもサーバーサイドもCommon Lispで書く試み

'(qlot Caveman2 Clack Roswell jscl)この辺りの組み合わせでようやく雛形のようなものができた。 やろうとしたこと jsclというCommon LispをJavaScriptにコンパイルしてくれるものを使って、フロントエンドもCommon Lispで書こうとした。 github.com 見よう…

Common LispでJavaScriptのJSON.stringify←→JSON.parseのようなことをする

S式の文字列をS式にしたかった。 JavaScript Common Lisp JSON.stringify(obj) (prin1-to-string sexp) 、 (format nil "~S" sexp) JSON.parse(string) (read-from-string string)、(with-input-from-string (in string) (read in))

tmuxinatorはもう古い?tpmとtmux-resurrectの導入

tmux2系を使っている。tmuxinatorを入れるのにRubyからインストールって大変だなぁと思っていた。 今更tpmというパッケージマネージャの存在を知り、 tmux-resurrect というセッションをsave/restoreするtmuxプラグインを知った。

Emacsで遊ぶ

Emacs Advent Calendar 2016 - Qiita 6日目のpeccuです。 5日目は yoshitiaさんの evil-modeのelispをちょっと覗いてみる - yoshitia’s diary でした。 明日はsylxさんのEmacsでライブコーディングする(仮)です。

ASDFとQuicklispとRoswellとqlotで利用する(インストールする)パッケージの場所

前の記事でわからない部分をまとめたので、少しずつ調べる。 peccu.hatenablog.com (そろそろorg-modeでブログ書きたい) RoswellとQuicklispが簡単で便利ゆえに中身を気にしていなかった。 背景にある仕組みを理解すればパッケージ周りは多少解決できるので…

Common Lisp勉強中にわかりにくかったところと、まだわかっていない部分

これまででわかりにくかったところと、まだわからないところ。 追記:redditとTwitterにていただいた助言を追加 追記2:構造体の make-* を追加

Caveman2を試しに起動し、pm2でプロセス管理してみるところまで

Common Lispでウェブアプリを作りたい。これは雛形を生成してサーバーを起動するまでの話。 ningleとCaveman2の違いがわからず迷ったが、READMEのこの文より Caveman2 を選んだ。 One of the most frequently asked questions was "Which should I use ningl…

今更ながら Emacsを24から25にアップデートした

org-modeも9.0になったことだし、Emacsのバージョンを上げた。

ImageMagickでfaviconの生成とHTMLタグの吐き出し

ロゴ画像からリサイズした画像群とicoファイルと、それらを読み込むHTMLを生成したかった。 今風ではないし、網羅しているわけでもないけれどサクッと指定したい時に。

Emacsでclhsコマンドを経由して、カーソル位置にあるシンボルをHyperSpecで調べる

前の記事でclhsコマンドを使えるようにしたので、カーソル位置のシンボルを引数にclhsコマンドを呼べるようにした。 clhsにはパスが通っている前提。 (require 'thingatpt) (defun clhs-symbol () (interactive) (shell-command (concat "clhs " (thing-at-p…

HyperSpecを開くRoswellスクリプトをプロキシ環境下で動かす

blog.8arrow.org 深町さんのスクリプトを使ってみたかったが、シンボル一覧を取得するときにプロキシを超えられなかった。 drakma:http-requestに環境変数HTTP_PROXYの内容を渡すように変更してみた。 こんな変更でよいのかわからない。

JavaScriptでクリップボードにコピーする

Safari 10からようやくサポートされたので、自分が利用する部分にもようやく導入した。

bash: scp: コマンドが見つかりません

scpが使えなくて焦った。 zshを使っているのになぜbash?と思ったが、どうやらサーバー側にscp(sshも)が入っていなかった。インストールして解決。 sudo yum install openssh-clients

roswellでrlwrapを使う

今使っている環境だとros -w rlwrap runではなくrlwrap ros runで履歴を辿れた。

macのEmacsで分離した濁点と半濁点を引っ付ける

PDFから濁点や半濁点がついた文章をコピペすると二文字に分離されてしまう。 これを結合するそのまんまの関数がありました。 リージョンを選択して M-x ucs-normalize-NFC-region で終了。これは気持ちいい。

TRAMPでサーバーに .tramp_history を生成させない

見よう見まねで設定。 生成されなくなった模様。 (add-to-list 'tramp-remote-process-environment "HISTFILE=/dev/null") Re: disable the .tramp_history file 文字列でENVVARNAME=VALUEのリストが入っているが、 特定のキーのものがあれば消す。というの…

macでPDFを結合する

Automatorの中に、PDFを結合するPythonスクリプトがありました。