久々にtwittering-modeを使おうかと思い、
ここを参考にして再設定したのですが、その時に2つだけ問題があったので、備忘録です。
1. curl exited abnormally (exit-status=60)が出て止まる
これは、結構問題だったのですが、一行だけinit.elに追記すればOKでした。
1 | (setq twittering-allow-insecure-server-cert t) |
これだけです。
具体的には、
上記サイトの丸コピー+(setq twittering-allow-insecure-server-cert t)を入れただけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | (add-to-list 'load-path "~/.emacs.d/twittering-mode") ;; twittering-mode読み込み (require 'twittering-mode) (setq twittering-allow-insecure-server-cert t) ;; 起動時パスワード認証 *要 gpgコマンド (setq twittering-use-master-password t) ;; パスワード暗号ファイル保存先変更 (デフォはホームディレクトリ) (setq twittering-private-info-file "~/.emacs.d/twittering-mode.gpg") ;; 表示する書式 区切り線いれたら見やすい (setq twittering-status-format "%i @%s %S %p: n %T [%@]%r %R %f%Ln -------------------------------------------") ;; アイコンを表示する (setq twittering-icon-mode t) ;; アイコンサイズを変更する *48以外を希望する場合 要 imagemagickコマンド (setq twittering-convert-fix-size 40) ;; 更新の頻度(秒) (setq twittering-timer-interval 40) ;; ツイート取得数 (setq twittering-number-of-tweets-on-retrieval 50) ;; o で次のURLをブラウザでオープン (add-hook 'twittering-mode-hook (lambda () (local-set-key (kbd "o") (lambda () (interactive) (twittering-goto-next-uri) (execute-kbd-macro (kbd "C-m")) )))) |
これで問題なく行けました。
2. macport でのgpgのインストール
ただ名前がわからなかっただけなのですが、「gnupg」で入りました。
1 | $sudo port install gnupg |
これだけです。
emacsでtwitterが見られてとっても快適です。
色の指定など、10進数から16進数に変換したいなって思うことが多々あるので、ワンライナーの備忘録です。
10進数の「140」を16進数にしたい場合は、
1 | $ perl -e 'printf "%x¥n", 140' |
1 2 | $ perl -e 'printf "%x¥n", 140' 8c |
と「8c」と表示されます。
連続して、いくつかの数字を確認したい場合は、
1 | $ perl -ne 'printf "%x¥n", $_' |
とすれば、10進数数字を入力すればその都度16進数が出力されます。
終了するときは、「Ctrl + c」です。
とっても簡単でした。
ターミナルからリマインダー.appに簡単にタスクが追加できたらいいのにと思って挑戦してみました。
objective-cを使った方法ではとっても簡単にできるみたいですね。
ターミナルから OSX のリマインダーに項目追加するコマンド – それマグで!
objective-cとかよくわからないので、iFTTTを使えば何かできないかなって思ってやってみました。
iFTTT
1.iFTTTでgmail経由でリマインダー.appに追加できるように設定
iFTTTのレシピは以下のを使いました。
iFTTT / Emails you label “To-do” get added to an iOS Reminders list by maxmeyers
これを使って、gmailのラベルが「Todo」の時に「リマインダーに登録」とレシピを作る(このレシピそのままですが)だけです。
2.gmailで「Todo」のラベルがつくようにフィルター設定
ラベルが「Todo」とつくように設定すればいいだけなので、送信メールアドレスでも、件名でも何でもいいのですが、私は件名でフィルターをしました。
“件名が「todo」の時はラベルを「Todo」にする”っと。
3.ターミナルからgmailにメールを送信スクリプトを作る
私の場合は、gmailからgmailにメールを送信するようにしたので、以下のようにしました。
まず、以下のモジュールをインストールしておきます
1 2 3 4 5 6 | Email::MIME Email::Send Net::SMTP Net::SMTP::SSL MIME::Base64 Authen::SASL |
あとは、ソースを作るだけ。
パスの通っているディレクトリで、「addtodo.pl」を作ります。
1 2 | $ cd ~/bin $ touch addtodo.pl |
「addtodo.pl」の中は以下のような感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #! /opt/local/bin/perl -w use strict; use warnings; use utf8; use Encode; use Email::MIME; use Email::MIME::Creator; use Email::Send; unless ( defined $ARGV[0] ) { print encode( 'utf-8', "タスクを追加してください。\n" ); print encode( 'utf-8', " ex) addtodo.pl タスクの内容\n\n" ); } else { for my $body_txt (@ARGV) { $body_txt = decode( 'utf-8', $body_txt ); print "*******************\n"; print "Send Mail\n"; print "Subject : todo\n"; print encode( 'utf-8', "body : $body_txt\n\n" ); my $mailer = Email::Send->new( { mailer => 'SMTP', mailer_args => [ Host => 'smtp.gmail.com', Port => 465, username => '**********@gmail.com', password => 'gmailのパスワード', ssl => 1, ], } ); my $mail = Email::MIME->create( header => [ To => '**********@gmail.com', From => encode( 'MIME-Header-ISO_2022_JP', 'add tasks <**********@gmail.com>' ), # subjectを「todo」に指定する。 Subject => encode( 'MIME-Header-ISO_2022_JP', 'todo' ), ], attributes => { content_type => 'text/plain', charset => 'iso-2022-jp', encoding => '7bit', }, body_str => $body_txt, ); $mailer->send($mail); } } |
あとは、実行権限を与えて、
1 | $ chmod +x addtodo.pl |
終了です。
これで、
1 | $ addtodo.pl 追加するタスク |
っとすると、件名が「todo」で、本文が「追加するタスク」というメールがgmailにgmailから送れます。
ちなみに、
1 | $ addtodo.pl 追加するタスク1 追加するタスク2 追加するタスク3 |
と連続でも追加できます。
これで、15分くらい待つとリマインダー.appにiFTTT経由で登録されます。
perlスクリプトからgmailにメール
↓
gmailのフィルタでラベル「Todo」がつく
↓
iFTTTがラベル「Todo」がついているメールをリマインダー.appに登録
っという流れです。
意外と快適に。
最近、細々とgitを使ってバージョン管理しています。
word文章でもgitでバージョン管理をしようと思うのですが、git diffしても変更内容が出てきません。
そこで、あれこれと試していたのですが、とっても簡単にできるみたいですので,備忘録です。
試しに、「~/temp_dir/temp.docx」というファイルを作ってみて
こんな感じでファイルを作ったあとで、
1 2 3 | $ cd ~/temp_dir $ git init $ git add temp.docx |
1 | $ git diff |
とすると、
1 2 3 4 | $ git diff diff --git a/test.docx b/test.docx index 186efa7..273fc02 100644 Binary files a/test.docx and b/test.docx differ |
となって、何が変更されたのかわかりません。
そこで、docxをテキストに変更して、diffを取ってくれるように設定しました。
やり方はとっても簡単。
1.「docx2txt」の準備
ここから、v1.2をダウンロードして、解凍します。
解凍すると,
1 2 3 4 | $ cd ~/Download/docx2txt-1.2 $ ls AUTHORS COPYING INSTALL README VERSION docx2txt.bat docx2txt.pl BSDmakefile ChangeLog Makefile ToDo WInstall.bat docx2txt.config docx2txt.sh |
こんな感じなので、、、
この中で「docx2txt.pl」を使えばいいので、パスを通してあるディレクトリにコピーします。
1 | $ cp docx2txt.pl ~/bin/ |
などといった感じです。
1 | $ cd ~/bin |
として、このperlソースを実行するシェルスクリプトを作って実行権限とします。
これもとっても簡単。
1 2 3 4 | $ cd ~/bin $ echo '#!/bin/bash docx2txt.pl $1 -' > docx2txt $ chmod +x docx2txt |
これだけ。
そうすると、
1 2 3 4 | $ cd ~/temp_dir $ docx2txt test.docx First text. Second text. |
こんな感じに使うと、docx内のファイルがターミナル上に表示されるようになります。
これはこれで結構便利です。。。
2.gitを設定する
まず「.gitattributes」を作って、「*.docx diff=wordx」と書きます。
1 2 | $ cd ~/temp_dir $ echo '*.docx diff=wordx' > .gitattributes |
こんな感じで十分です。
「.docx」ファイルの時は、diffするときにwordxしてね。っといった感じでしょうか?
次に、「wordx」を定義します。
「.git/config」に以下の内容を追記します。
1 2 | [diff "wordx"] textconv = docx2text |
ターミナルから行うとすると、
1 2 | $ echo '[diff "wordx"] textconv = docx2txt' >> .git/config |
こんな感じでできます。
以上で終了です。
3.確認
先ほどの状態で「git diff」すると、、、
1 2 3 4 5 6 7 8 9 | $ git diff diff --git a/test.docx b/test.docx index 186efa7..273fc02 100644 --- a/test.docx +++ b/test.docx @@ -1,2 +1,2 @@ First text. - +Second text. |
こんな感じに、「second text.」が追加されていることが表示されています。
とっても快適に。
スマートに日記を書くソフトのDay Oneをまた使ってみようかなと思って,インストールしたのですが,,,
カテゴリ: ライフスタイル
価格: ¥500
いつのまにやらターミナル上から投稿ができるような,コマンドラインツールが変更されていました.
「Day One CLI」なるソフトをインストールする必要があるとのこと.
ここから,「Command Line Interface」をダウンロードしてインストールすれば無事にできました.
しっかりとマニュアルもあって,使いかたもとっても簡単.
ターミナル上から
1 | $ dayoen new |
と入力すると,,,
1 2 | rakkyoo:$ dayone new Enter text for journal entry. Type ^D on a newline when finished. -------------------------------------------------------------------- |
となるので,文章を入力して,「Ctr-D」を押すだけ.
1 2 3 | rakkyoo:$ dayone new Enter text for journal entry. Type ^D on a newline when finished. -------------------------------------------------------------------- テスト投稿 |
とすると,
こんな感じに投稿できます.
他にも,ファイルをあらかじめ作ってから投稿するのも,
1 | $ dayoen new < note.txt |
などとすればできますし...
ほかにもいろいろとターミナルからできるみたいです♪
快適そうです.
何となく,miyagawaさんのYAPC2013のトークを聞いたり,
ゆーすけべさんのこの記事を読んでみたり
していたら,何となくシステムに入っているperlではなくて,自分でバージョン監理しているperlを使いたいなって思ったので,plenvを入れることにしました.
zshを使っているので,ここを参考に,,,
ターミナル上で,,,
1 2 3 | $ git clone git://github.com/tokuhirom/plenv.git ~/.plenv $ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(plenv init -)"' >> ~/.zshrc |
perlのインストールをするため,perl-buildも入れます.
1 | $ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/ |
これで終了みたいです.
モジュールの管理はcpanmでということで,
1 | $ plenv install-cpanm |
として,cpanmをインストールできます.
実際に使ってみると,
1 | $ plenv install -l |
とすると,インストールできるバージョンが確認できて,
1 | $ plenv install 5.19.4 |
とすれば,今現在の最新がインストールできました.
とりあえず,
1 | $plenv shell 5.19.4 |
として,使うperlのバージョンを設定して,
使うモジュールをcpanm経由でじゃかじゃかインストールして,準備万端に.
1 2 3 4 | $ cpanm Chart::gnuplot $ cpanm JSON $ cpanm DBI ・・・などなど |
plenvで便利だなって思ったのは,
他のバージョンのインストールしているperlにもモジュールを一括インストールできること.
たとえば,5.19.0でインストールしていたモジュールを一括で5.19.4にもインストールする場合は,
1 | $ plenv migrate-modules 5.19.0 5.19.4 |
とするだけですべてインストール完了となりました.
ちなみに,今回インストールしたモジュールは,
1 | $ plenv list-modules |
として,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | Acme::Oppai
Algorithm::Diff
App::cpanminus
App::cpanoutdated
CPAN::DistnameInfo
Chart::Gnuplot
DBD::SQLite
DBI
Encode::Locale
ExtUtils::MakeMaker
File::Listing
HTML::Parser
HTML::Tagset
HTTP::Cookies
HTTP::Daemon
HTTP::Date
HTTP::Message
HTTP::Negotiate
IO::HTML
IO::Socket::SSL
JSON
LWP
LWP::MediaTypes
LWP::Protocol::https
List::MoreUtils
Module::Build
Mozilla::CA
Net::HTTP
Net::SSLeay
Number::Format
Path::Class
Perl
Statistics::Basic
Sub::Uplevel
Test::Differences
Test::Exception
Text::Diff
Text::Markdown
URI
WWW::RobotRules
XML::NamespaceSupport
XML::Parser
XML::SAX
XML::SAX::Base
XML::SAX::Expat
XML::Simple
YAML
install
local::lib |
といった感じでした.
相当快適に.
コードを書くときはいつもemacs上で行っているのですが,コード整形をしてもらおうと,Perl::Tidyを入れてみました.
インストールは,cpanm経由で簡単で,,,
1 | $ cpanm --sudo Perl::Tidy |
とするだけ,,,
あとは,Emacsの「.emacs」に,
1 2 3 4 5 6 7 8 9 10 | (defun perltidy-region () "Run perltydi on the current region." (interactive) (save-excursion (shell-command-on-region (point) (mark) "perltidy -q" nil t))) (defun perltidy-defun () "Run perltidy on the current defun." (interactive) (save-excursion (mark-defun) (perltidy-resgion))) |
と追加するだけです.
あとは,リージョンを指定してから,
M-x perltidy-region
で整形されました.
とっても快適に.