タグ

ブックマーク / memo.sugyan.com (22)

  • El Capitanにしたらzsh上でのPATHが上書きされた - すぎゃーんメモ

    先日ようやく El Capitanに上げたのだけど、そうしたらtmux上でzshログインした際にPATHがおかしくなる、という問題が起きて。 どうやらEl Capitanでは/etc/zprofileというのが作られていて、こいつが # system-wide environment settings for zsh(1) if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi となっていて、PATHを書き換えてしまうようで。 tmuxで新しくwindowを開いたりする際にこいつが呼ばれてしまうのが原因だったらしい。 最初はそいつをrenameして対応したけど、 @sugyan setopt no_global_rcs(~/.zshenvに記述) で /etc以下を読まないようにすることが

    El Capitanにしたらzsh上でのPATHが上書きされた - すぎゃーんメモ
  • ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った - すぎゃーんメモ

    ttyrec で録画したデータを使ってターミナル上で再生しつつ、そのスクリーンキャプチャを使ってアニメーションGIFを生成するツールをGoで作ってみた。 https://github.com/sugyan/ttygif Releases Mac, Linux Desktopで動作。再生速度はオプションで変更可能。 背景 percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ のような記事を書いたりする際に、ターミナル操作を録画してGIFアニメにしたい需要があり。 そういった用途に使える汎用のデスクトップ録画ツールとしてはLICEcapやGifzoなどがある。 Cockos Incorporated | LICEcap http://gifzo.net/ これらはWindows, OSXあたりが対象で、Linuxの場合はまた他のツールがあるらしい(よく知らない)。 汎用的なキ

    ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った - すぎゃーんメモ
  • はじめて、の次のGo - すぎゃーんメモ

    はじめてのGo - すぎゃーんメモ の続き?的な。 入門で終わらずにもうちょっとマトモに何か作れるようになりたい、ということで、以前にRubyで書いた「げんきだしてbot」をGoで書いてみた。 成果物のリポジトリはこちら。 https://github.com/sugyan/go-genki-bot 「げんきだしてbot」とは げんきだしてbot - すぎゃーんメモ https://github.com/sugyan/genki-bot まぁUser streamからネガティヴな発言を拾ってきて「げんきだして!」とリプライを送るだけのTwitter botです。 ファイル分割 すべて同一のmainパッケージ内で書くけど、機能ごとにファイルを分けてみた。 twitter_client.go: Twitter APIを叩いて認証したりStreamに接続したりなど config.go: 認証して

    はじめて、の次のGo - すぎゃーんメモ
    atm_09_td
    atm_09_td 2014/07/03
  • はじめてのGo - すぎゃーんメモ

    今さらながら、Goをもう少し読み書きできるようになりたいな、と思い。 A Tour of Go を一通り読んで、 GitHub - mattn/twty: command-line twitter client written in golang go-oauth/examples/twitter at master · garyburd/go-oauth · GitHub などを参考にしつつ、写経というかんじで Twitterのtimelineを取得するものをまずは書いてみた。 package main import ( "encoding/json" "fmt" "github.com/garyburd/go-oauth/oauth" "github.com/typester/go-pit" "log" "net/http" "os/exec" "runtime" ) func mai

    はじめてのGo - すぎゃーんメモ
    atm_09_td
    atm_09_td 2014/06/25
  • percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ

    先日、shell勉強会で「zawを使ってシェル操作を快適に」というお話を聴いて、自分ももう少しそのあたりの環境を整えよう、と思い立った。 nanapi勉強会 vol2 - Shellの活用でこれだけ毎日が便利になる - nanapi勉強会 | Doorkeeper zawで快適シェル生活 // Speaker Deck 自分が使う選択をしたのは zaw ではなく percol 。 軽く調べてみたかんじでは zawってのは設定してある(もしくは自作する)決められたsourceを使って決められた操作を行うもので、zshに密接に結び付いているツールで。percolはそういうのではなく純粋に「入力をフィルタリングする」だけのツールなので、パイプなどを使って各コマンドと組み合わせることで色々な使い方ができそう。 percolの導入 https://github.com/mooz/percol Pyt

    percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ
  • Slateを入れてみた - すぎゃーんメモ

    Macで起動中のアプリを切り替えるのに、⌘+Tabだけだとたくさん起動しているときに選択するために連打するのが面倒だし頻繁に使うものは一発で切り替わるようにしたい、というのがあって、 今までずっとそれをQuicksilverのHotKey機能を利用して ⌘+Ctrl+Q でiTerm2 ⌘+Ctrl+W でEmacs ⌘+Ctrl+E でChrome みたいに左手の操作だけで切り替えられるようにしていた。 ところで最近「Slateというのが面白い」という話を某所で聞いたので試しに入れてみた。 GitHub - jigish/slate: A window management application (replacement for Divvy/SizeUp/ShiftIt) DivvyやSizeUpといったウィンドウ操作系ツールとして使えるもののようだけど(両方つかったことないから知らな

    Slateを入れてみた - すぎゃーんメモ
  • Heroku上からService Account認証でGoogle APIにアクセスする - すぎゃーんメモ

    Googleの様々なAPIを叩く際、認証にOAuth 2.0を用いる。 Using OAuth 2.0 to Access Google APIs  |  Google Identity Platform  |  Google Developers 使用する場面やパターンによって以下のような6つのシナリオが想定されている。 Login Web Server Applications Client-side Applications Installed Applications Devices Service Accounts 多くの場合は「ユーザごとに認証させて個別のtokenを発行しリクエストに利用する」という流れなのだけど、中にはたとえばURL短縮APIとか、必ずしもユーザ個別にtokenを発行させる必要がないこともある。 そういう場合には「サービス固有のtoken」だけあれば良い。と

    Heroku上からService Account認証でGoogle APIにアクセスする - すぎゃーんメモ
  • perlbrewを利用したプロジェクトごとのPerl環境管理 - すぎゃーんメモ

    整理するためのメモ。 よくある問題: プロジェクトごとの依存モジュールの管理 全環境共通でインストールするとモジュールのバージョンが分けられない local::libやcartonを使ってプロジェクト専用のインストール領域を作るのが良い しかし実行するPerlのバージョンが違うと動かなかったりするし だったらPerlそのものもプロジェクトごとに管理した方が 同一アーキテクチャの複数サーバにデプロイするときも1箇所で環境作ってディレクトリ丸ごとrsyncで済むし というわけでプロジェクト専用のPerlperlbrewでインストールして使おう ビルドに時間かかったりもするけどまぁ最初の一回だけだし我慢 手順 既にperlbrew自体は標準の方法でインストールしておいていて使えてる、という前提で $ cd <PROJECT_ROOT> $ export PERLBREW_ROOT=${PWD}

    perlbrewを利用したプロジェクトごとのPerl環境管理 - すぎゃーんメモ
  • 以前作ったSinatraアプリをPadrinoで書き直した - すぎゃーんメモ

    ももクロの人気上昇ぶりをグラフで可視化する - すぎゃーんメモ という記事で作ったアプリをちょっと作り直した。 Sinatra + pg + Haml というかんじでシンプルなSinatraアプリでpgから直接SQLを叩いて云々してhamlでレンダリング、というかたちだったものを、 Padrino + Sequel + Slim を使った構成に。 あとはTwitter bootstrapやHighstockのアップデートなど。 app: http://momoclo-visualizer.herokuapp.com/blog_comments/ source code: https://github.com/sugyan/momoclo-visualizer Padrinoメモ gemでPadrinoをインストールしてpadrino gen project hogeみたいなかんじでスケルト

    以前作ったSinatraアプリをPadrinoで書き直した - すぎゃーんメモ
  • hostsに".local"で終わるドメインを書いて使うと面倒なことになる - すぎゃーんメモ

    Webアプリを開発する際に、ローカル環境で動かしたいのだけど特定のドメイン名で閲覧したくて、/etc/hostsに 127.0.0.1 hoge.fuga.piyo.localみたいに書いて、[]http://hoge.fuga.piyo.local:5000/[]とかでローカル稼働しているアプリを見られるようにしてみたところ、どうもレスポンスが遅い。アプリ自体がどんなに軽くても、ブラウザ見てもcurlで叩いても返ってくるのが遅い。 どうやらアプリ自体じゃなくて、アドレスの解決に時間がかかっているらしい。 Mac OS X v10.4, 10.5, 10.6: How to look up ".local" hostnames via both Bonjour and standard DNS - Apple Support https://discussions.apple.com/th

    hostsに".local"で終わるドメインを書いて使うと面倒なことになる - すぎゃーんメモ
  • 24.1-rcにしてみた - すぎゃーんメモ

    そういえばEmacs24.1のRC版が出ているのにまだ変えてなかった、と思って入れ替えてみた。 自分でビルドしても良いけど、Mac用のバイナリも既に配布されているので下記からダウンロードしてサクッとインストール。 Emacs For Mac OS X: Releases, Pretests & Nightlies で、設定など何も変えずに起動してみると 無駄にツールバーが出たままになってる 日語のフォントが設定しているものになっていない といった現象が。 ツールバーは、どうやらtool-bar-mode変数のデフォルト値が23.4までnilだったものがtに変わってしまったようだったので明示的に指定して消すように設定。 フォントはよく分からなかったけど、以下の記事を参考にちょっと変えたら正常に表示されるようになった。 四方山歳時記 » emacs 先にset-frame-fontした後で(

    24.1-rcにしてみた - すぎゃーんメモ
  • tmuxを使い始めてみた - すぎゃーんメモ

    名前と存在は知っていたけど最近まで使ったことのなかった、tmux。 http://tmux.sourceforge.net/ ようやく触ってみた(現在の最新版:1.6)のでscreenとの比較、思ったことなど。 現在の自分の設定 # prefix key unbind C-b set-option -g prefix C-t # key bind bind-key C-n next-window bind-key C-p previous-window # terminal set-option -g default-terminal xterm-256color https://github.com/sugyan/dotfiles/blob/master/.tmux.conf 主にはコレくらい。エスケープキーはデフォルトの"C-b"から"C-t"に。windowの行き来はCtrlキー押し

    tmuxを使い始めてみた - すぎゃーんメモ
  • GAEでTwitter botを作った - すぎゃーんメモ

    初めて、Twitter botなるものを作ってみた。 http://twitter.com/zenra_bot 公式ページ:http://zen-ra.appspot.com/ フォローするとフォローし返します フォローを外されると同様にフォローを外します フォロワーの発言を拾って、勝手に全裸に書き換えます 例:「@sugyan が全裸で言った: ********」 非公開の発言は拾わないようにしています。 たまに独り言もつぶやきます 実装 Google App Engine(Python)で作りました。 ソースコードはGitHubにて公開しています。 GitHub - sugyan/Zenra: 全裸にする 基的にcronでフォロワーのチェック&更新、つぶやきを行っているだけ。 特に外部のライブラリを使わずにGAEのurlfetch APITwitter APIを直接叩いたり。 一番

    GAEでTwitter botを作った - すぎゃーんメモ
  • find-file-visit-truenameを設定する - すぎゃーんメモ

    設定を見直し中 - すぎゃーんメモ シリーズ。 dotfilesをgithubで管理し始めた - すぎゃーんメモ で書いた通り、自分の".emacs.d"は直接ディレクトリを作っているのではなく、他の場所にあるディレクトリ(今の自分の環境では$HOME/dev/sugyan/dotfiles/.emacs.d/)へのシンボリックリンクにしている。なので、その下のファイル、例えば"hoge.el"が ~/.emacs.d/hoge.el ~/dev/sugyan/dotfiles/.emacs.d/hoge.elの2通りのパスで参照することができてしまう。 これの悪影響として、recentfにも2通りのファイルパスが記録されてしまう。anything-c-source-recentfで最近開いたファイルを選択しようとしたときに、せっかくファイル名で絞れるのに同じものを指すパスが2つ候補に残っ

    find-file-visit-truenameを設定する - すぎゃーんメモ
  • MySQLのコマンドたち - すぎゃーんメモ

    http://mysql-casual.org/2011/11/mysql-casual-advent-calendar-2011.html の6日目の記事として書かせていただきます、sugyanです。 勢いで参加表明してしまい、今日慌てて久しぶりにMySQLを触りました。 MySQLでFizzBuzz ストアドプロシージャって使ったこと無かったので初めて触ってみました。 DROP PROCEDURE IF EXISTS FizzBuzz; delimiter // CREATE PROCEDURE FizzBuzz(n INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i <= n DO SELECT CASE WHEN i % 3 = 0 AND i % 5 = 0 THEN 'FizzBuzz' WHEN i % 5 = 0 THEN 'Buzz'

    MySQLのコマンドたち - すぎゃーんメモ
  • rbenvを使ってみる - すぎゃーんメモ

    Rubyまだ全然まともに触ったことなくて詳しくは知らないけど、最近はrvmよりrbenvを使う方が流行っているような噂を聞いた気がするので、ちょっと使ってみた。 Mac OS Xならhomebrewで入れることもできたようだけど、よく読んでなくて自前でやってしまった。 https://github.com/sstephenson/rbenv#section_2 の通り $ cd $ git clone git://github.com/sstephenson/rbenv.git .rbenv$HOME/.zshenvに以下を追加 # rbenv path=($HOME/.rbenv/bin(N) $path) eval "$(rbenv init -)" で、それぞれのバージョンのrubyをインストール。 $ mkdir $HOME/temp $ cd $HOME/temp $ wget

    rbenvを使ってみる - すぎゃーんメモ
  • npm configで設定値を管理 - すぎゃーんメモ

    npmって意外と高機能で、色んなこと(こんなのとか)が出来る。 で、最近知ったのがnpm config。 https://github.com/isaacs/npm/blob/master/doc/config.md ちゃんとドキュメント見たことなかったから知らなかったけど、これで諸々の設定値を保存しておいたりできる、とのこと。 例えば $ npm config set foo bar $ npm config get foo barこんなカンジでkeyとvalueを設定する。list表示でまとめて確認も可能。 $ npm config list ; userconfig /home/sugyan/.npmrc foo = "bar" ; node install prefix = /home/sugyan/.nvm/v0.4.11 ; node bin location = /home/

    npm configで設定値を管理 - すぎゃーんメモ
  • nginxを挟んでsocket.ioのxhr-pollingを動かすには - すぎゃーんメモ

    8月3日現在 Node stable v0.4.10, Socket.IO v0.7.7 表80をnginx->裏3000とかでsocket.io動かしてる場合WebSocketはダメでもxhr-pollingとかなら80に繋ぎにいっても動くはず、と思って試してみてるけど動かない、、どうなってるんだろうコレ 2011-08-03 12:03:16 via Twitter for Mac socket.io v0.6系だと動くようなのに0.7で動かない? 2011-08-03 12:04:11 via Twitter for Mac というところでハマっていた。 nginxを使ってreverse proxyする場合、Socket.IOのWebSocket接続は 表側に繋がずに裏側のportを指定して繋ぐ nginx_tcp_proxy_moduleを使って通す あきらめる のどれかだと思う。

  • Nodeアプリの設定系モジュールいろいろ - すぎゃーんメモ

    Node(node.js)でwebアプリを開発するにあたって、DBの情報やSession keyのsalt, OAuthのsecret_keyなどの設定をどうするかを悩み中。考えているのは アプリケーションのコードに設定値を埋め込むようなことは絶対にしたくない ということは設定用のファイルを用意してそこを読み込む形に? 開発環境と番環境で設定が変わるので上手く切り替えられるようにしたい npmで普通に入れられる軽量なライブラリで実現出来れば良い …で、どんなのがあるか調べてみたところ結構色々あったので以下の6つくらいを実際に入れて使って試してみた。 cjson config confu jsonconfig nconf node-config cjson コメント付きで記述したJSON形式なファイルを使える、とのこと。 /* * This is my app configuration

    Nodeアプリの設定系モジュールいろいろ - すぎゃーんメモ
  • qunit-tapを使ってnode.jsのテストをproveで行う 続編 - すぎゃーんメモ

    qunit-tapを使ってnode.jsのテストをproveで行う - すぎゃーんメモ の続きです。 qunit-tapは1.0.0がreleaseされました。 https://github.com/twada/qunit-tap/commit/5da16418b6de71e4be186d080a0622e5689e8878 で、@t_wadaさんから追加情報をいただきました。 Node で qunit-tap を動かす際に、ちょっとだけ時間がかかるテストもきちんと通すためには QUnit.init(); の後に QUnit.config.updateRate = 0; が必要そうです。気づくのが遅れてすみません。エントリを修正していただけると嬉しいです 2011-03-28 19:59:24 via web とのこと。 exports = module.exports = global;