Qiita

Qiita is the best way to log and share programming knowledge.

これ知らないプログラマって損してんなって思う汎用的なツール

4 months ago (Edit: 4 months ago)

教えてください。
一人で作業をしてきたので、web業界の人が当たり前に使っているツールを知らずに生きています(最近phpMyadminを知りました)。活きのいいツールがあったら教えてください。

#追記
これ知らないプログラマって損してんなって思う汎用的なツール 100超 まとめ
suinさんがまとめてくれました。

Comment(74)

MySQLクライアントはNavicat使ってます。phpMyAdminとsequelもたまに使う

知らなかったらと思うとヒヤっとするツール
バージョン管理ツール
テスト駆動開発関連のツール
Redmine
phpMyadmin
vim(?)
chromeデバッガ

知らなかったらと思うとヒヤっとする知識
関数型言語(関数がオブジェクトになるということの意味)
テスト駆動開発
CSS3アニメーション

suinさん
知りませんでした!早速検討してみます。ありがとうございます。

hedachiさん
screenははぎーさんにオススメされたけど、使って何がうれしいのかいまいちピンときていない。
awsにssh接続するときも、terminalのタブを使ってる。
Navicatは前みせてもらったやつだね。なるほど。
"mysqlクライアント"
いい言葉もらった。ありがとう。

たしかにMacはターミナルのタブがあるからあれでもいいのかな?全然使ったことない。

screenのほうが得することってなんかあるかな?
俺は会社ではWindowsとPuttyで作業しててscreen使ってるし、他のサーバ使う時もscreenなので、Macでもscreen使ってるけど、Macの電源落ちるとscreeeのセッションも消えちゃうんだよね。
Macでローカルで使うだけならあんまりメリットないかも。他と環境を合わせるという意味では利用価値があると思う。

ネイティブアプリ

ローカル環境

ウェブサービス

こんなもんですかね〜

参考文献

PHPerがMacbookAirを買ったら直ぐにすること
http://suin.asia/2011/03/06/macbookair_kick_start_for_phper
初MacのPHPerがMacBookAirを買ってやったこと
http://nob-log.info/2012/02/02/macbookair/

hedachiさん
俺は会社のwindows環境からsshするときはteraterm使ってるなぁ。ちょっと今度screenについてはぎーさんにまた聞いてみよう。

suinさん
求めていた情報です!
活きの良さそうなツールたちですね。とてもありがとうございます。

なんだろう。
なんというか、割と道具選ばずに使うかな。なんて言ったらいいのかよくわからない。

とりあえず、 gdb, lv, xargs, iotop, htop, iperf とか最近使ったかなぁ。
screen or byobu or tmux はどっかで常に使ってるかんじ。これはサーバで長時間かかる作業を不安定な回線などで行うときに特に役立ちます。

WindowsのSSHは PuTTY 派なんですが、人にすすめるのは Poderosa ですね。

Visor とか Yaquake みたいなツールも使ってましたけど、いまは使ってないかなー。

Eclipse とか NetBeans とかもとりあえず使ってみる派。で、どっちがいいというのを決めるより「これは何が優れているか」をみて、シーンによって起動するのを変えてしまう。

VIM, Emacs は別格って感じですね・・・

初耳の単語が多いです。単語がないとググることすらできないので助かります。
ありがとうございます。

わかりやすい解説ありがとうございます。
ssh接続を頻繁にする人にとって使えるツールということですね。勉強になります。

screen

最初にありがたいと思ったのはサーバー上で長い事作業する時
通信がぶちっと切れてもscreenのプロセス自体は生き残るので、再度サーバーに接続して
残ってるscreenのプロセスにアタッチすれば作業が即再開できる。
vimの作業状態なんかもそのまま残っている
byobuというのはscreenがいい感じにカスタマイズされた奴

JavaScriptの対話実行環境 (node.js, spidermonkey, ringo.js etc..)

とにかく速くJSの動作をチェックしたい時に便利

統計処理ができる対話実行環境(R, Octave etc..)

数万件程度のちょっとしたログをさくっと処理したい時に便利
中央値、標準偏差なんかも一発で出せる。データを元にヒストグラム、3Dのグラフ描画とかも

自分はJavaScript関連の話がメインなんですが。

JavaScriptのベンチマーク取れるサイト

ブラウザ内でJavaScriptの実行・HTML/CSSのマークアップなんかが試せる

まだ荒削りだけど、ブラウザで実行できるIDE。GitHubやBitbucketなんかと連動。

現行のIDEの中ではJavaScript回りの環境が最強。姉妹品のPHPStormも評判良いです。
リファクタとか超簡単に出来たりします。が、有料です。その価値はあると思いますけど…。

後は自分はVimmerなんで、Vimを推しておきます。Vimがあれば大抵の事が出来ると思ってます。
が、Vimの習得に時間がかかるという難点があります。

pythonで書いたプログラムがちょっと遅いなと思ったらとりあえず一回使ってみる(djangoが動くので関係してますよね?)。
pypy http://pypy.org/

jsのベンチマークをとって公開するのに便利。
http://jsperf.com/

基本的なところでMacだとGrowl
iTerm2、GitX、ClusterSSH、Caffeine、BetterTouchTool、ClipMenu、QuickSilver
screenは最近tmuxに置き換えました。まだ使いこなしてないけど。

pythonだとvirtualenv, virtualenvwrapper。最近では代わりにpythonbrewは絶対入れる。それとドキュメントかくのにsphinx。テストはnose。

RSSリーダーは Reeder がおすすめ。

MySQLのクライアントは MySQLWorkbench を使っています。
EER図も描けるからデータベースの設計にも使える。

この2つ知らなかった!
Mou超便利!さっそく使ってこの文書を作ってみた。

Windows向けMySQLのクライアントですが、

HeidiSQL

JDBC/ODBC等なしにこれ単体で接続でき、スプレッドシートを順次開いていくかたちでのブラウジングができる。
そのため、「実際にDBのデータを見ながらデータをいじる」というのが直感的にでき、非常に便利。

SSHトンネル接続や、サーバ間のデータダンプ&リストアもできるため、運用作業はだいたいこれで完結できる。

ただ、若干不安定なので、ミッションクリティカルな作業には向いてないかも。
(そういうのはサーバ上でやれよ、と言われそうですが…)

vimとscreenは、使いこなせば便利で生産性向上間違いなしなのが分かっているけど、採用当初の低レベル状態での生産性の一時的落ち込み(何も考えず「入れた、使った、あら便利!」というものではなく、ある程度の "学習" が必要なので…)に耐えられず、いつも三日坊主で断念してしまうツールの二大巨頭ですね…。

find ./ -name *.php | xargs grep hoge とかはよく使いますね。Windowsは秀丸のgrepが強力です。

Git クライアント

Win

MacOS

エディタプラグイン

Vim

  • neocomplcache.vim
  • quickrun.vim

Emacs

  • anything.el

言語まわり

php

  • xhprof php で書かれたWebアプリケーションのボトルネック調査に必須
  • xdebug
  • PHPUnit 使えるテストフレームワークがこれしかない…
  • Phing php のビルドツール,テスト環境や本番などの環境ごとのブートストラップ指定や,結合テストの設定に

Ruby

  • travisCI 継続インテグレーション
  • bundler アプリケーション毎に必要な Gem を管理できる.デプロイ先の構築に便利
  • Capistrano デプロイツール,PHP とか他の言語で書かれたアプリケーションも設定次第でこれでデプロイできる
  • Pry irb から乗り換えた

テスト

xUnit 系

XUnitTestPatterns とか読んでおくとどの言語の xUnit 系テストフレームワークへの理解が進む

xSpec 系

JBehave とか RSpec とか. PHP には無い.Wikipedia英語版のBDDのページがわかりやすい

QuickCheck 系

プログラム仕様そのものを記述し,ランダムな引数を与えて検証するテストフレームワーク.
オリジナルは Haskell からだが,メジャーな言語ではけっこう既に実装されている.
Haskell 以外の言語で意欲的に実装を開発しているYelloSoftのページ がわかりやすいかと

今パッとプロセスみて、ないと困ると思ったもの

unix

tmux
htop
zsh
tree

node

npm
forever
coffee-script

python

pip
ipython
scipy
virtualenvwrapper
werkzeug

ruby

watchr
guard
gist

Java

JavaDecompiler

mac

iTerm2
homebrew
SublimeText2
MacVim
CocoaEmacs

みなさんありがとうございます。
取り急ぎお礼を申し上げます。
あとで個別に拝読させてもらいます。

ツールではなく、人ですが、私の強力なお師匠様達はハマったときの銀の弾丸化しています。
http://qiita.com/items/1359

このエントリ、始まりは小さかったのにすごい反響ですね!
はてぶ数はQiita史上最大じゃないかな

まだでてなさそうなのはこんな感じかな

  • bison
  • AWK
  • impress.js

あと手前味噌だけど

  • enchant.js
  • gl.enchant.js

Unix

export GREP_OPTIONS='--color=auto'
でfgrep/egrep/grepしたときにマッチしたとき単語がカラフルにハイライト表示されるようになる

grep/fgrep/egrepの-oオプション。マッチした単語のみ抽出出来る、これはワンライナー書くときに使える。egrepは拡張正規表現なのでPerlとかRubyみたいに便利な正規表現使える。fgrepは固定文字列検索するときに早い
詳細: http://d.hatena.ne.jp/lurker/20070131/1170201200

Mac OSX

Alfred
QuickSilverみたいなfuzzyな文字列による、アプリケーション検索 & 実行ランチャ。QuickSilverよりも良いのは、マッチするアプリケーションがなかったときはGoogleで検索してくれること。

Limechat for mac osx
Preferences -> Log -> Show image links in inlineを有効にすると
ユーザー名に対応した画像をTwitterから引っ張ってきてインラインで展開してくれる。
もちろん間違ってるプロフィール画像が展開されることもあるけど、有名人多いIRCとかだとだいたいあってる。

comment.user.url_name
1

まだ出てない。
quix便利やけど使ってる人見たことない

web service

*NIX tools

  • vim
  • screen (or tmux)
  • zsh

vim plugins

  • neocomplcache
  • vimproc + quickrun
  • unite.vim

OSX applications

  • Alfred
  • Limechat for OS X
  • Skitch
  • Reeder

Windows applications

  • VMware + Gentoo (or Ubuntu, Debian, etc)

手前味噌ですがgrepでjvgrep。go言語で書かれているのでlinuxでもwindowsでも同じ動作。
日本語のエンコーディングはだいたいサポートしてるので、いろんなエンコーディングのファイルがが混じった時のgrepや、通称駄目文字を含んだ正規表現でも正しく動きます。

screen/tmux がとっつきにくいという向けにはbyobu がお勧めです.
とりあえず困らない設定になっています.

後は以下に沢山のtips が
"ターミナルマルチプレクサ Advent Calendar 2011 : ATND" http://atnd.org/events/22320

想像以上に多くの方に教えてもらってとても嬉しいです。
熱が冷めない内に、上から順番に下記のルールに基づいて使ってみます。

1.5分同じところでハマるか1グーグルして解決しなかったら諦める
2.一言感想を書く(ハマって諦めた場合は、エラーの内容や検索結果をここに書く)

MacでGUIな便利ツールを並べてみます(一部Windows版あり)

Productivity

  • DIVVY 画面をショートカットキー1発で分割できる
  • A Better Finder Rename バッチリネームが超絶簡単
  • Skim 軽量PDFリーダ。Adobe Acrobatよりも気持ちいい
  • Bean Microsoft Wordよりも快適

Development

  • HTTP Client その名の通り
  • MockSMTP 仮想ローカルSMTP。ネットに繋がっていなくてもSMTPの挙動がチェックできる
  • JSON Editor サクっとJSONを整形してくれる
  • Integrity 高速リンクチェッカー。デプロイ前の必須アイテム
  • ImageOptim 画像ファイルを軽量化
  • SQLEditor ER図作成ツール。生SQLやActiveRecord Modelを書き出せる
  • Base.app SQlite用GUI管理ツール

suinさん
>http://www.sequelpro.com/ phpMyAdminがいらなくなりました。

いらなくなりました。
ただ、フィールドに日本語を文字列に使っているからか、下記のようなエラーがでました。
An error occurred while retrieving information.
MySQL said: Table 'test_table.??????' doesn't exist

エラーはでていますが使えています(たぶん)。じっくり使うことになってから解決しようと思います。
ここまでたくさんの人が教えてくださったのは、suinさんのおかげだと思います。
今後ともよろしくおねがいします。

adminer http://www.adminer.org/

phpMyAdminと同じくブラウザベースのDBクライアント。
1ファイルでphpが動く環境ならOK、なにより軽いから重宝してる。
MySQL,PostgreSQL, SQLite, MS SQL,Oracleと意外に相手を問わないのになぜかマイナーなんだよな~。

プログラミングじゃないけど
書き溜めたmarkdownメモを
ドキュメントつくるときにpandoc使ってhtml化してる

hedachiさん

navicat
premiumの30日間無料版インストールした。
すんなり動いた。かなり使いやすそうなので、シェアウェアとして購入するかも。

suinさん

MAMP
インストールしました。起動まで確認できました。あんなに苦労したphpmyadminが一瞬で動いてびっくりしました。

Hoster
インストールしました。一通り動作確認をしました。hosts書き換えはいつも神経を払っていたので助かります。

homebrew
インストールしました まだ具体的なパッケージはインストールしていませんが、下記を読んで良さそうだと思いました

MacPortsは、Macに最初から入っているソフトを無視してパッケージが依存するソフトを新規でインストールするという性質を持っていますが、Homebrewは極力Macに入っているものを使うように作られています。
このため、パッケージ導入時のシステムへの負担や、インストールにかかる時間が比較的少なくて済みます。

PhpStorm
インストールしました。IDEを普段あまり使い慣れていない(そしてphpメインではない)のですが、
phpを取り組むときがあったら再度見直してみます。

Mou
インストールを見送りました。
OSXのバージョンを上げることを怖れました。紹介して頂いたのに、申し訳ありません。

TotalTerminal
インストールを見送りました。
普段QuickSilverからiTerm2を起動しているため、機能的に充分満たせている(?)ように感じました。
紹介して頂いたのに、申し訳ありません。

Xcode
インストール済ですが、その使い方は知りませんでした。

SSHまわりの設定をまとめておくと大変便利
拝読しました。今日常的にログインするSSH接続先がないので、使うときがあれば設定することにします。

github
アカウントはもっていて、qiita連携で自動的に投稿されています。
普段、メインはMercurial+bitbucketを使っています。

qiita
本当に便利なサイトです。もっと宣伝してユーザーを増やしたいです。
メインで使ってるSNSです。

rak
インストールしました。
コードはたまに1枚のtxtに貼りつけて保存しているのですが、
ついついさぼってしまうので、これはよさそうだと思いました。
grepよりも見やすくていいです

SimpleHTTPServer
普段pythonを使っているのにこんな便利な機能を知りませんでした。
macでデフォルトで使えるのがすごいです。

Twitter Bootstrap
便利そうですね。お気に入りに入れました。

重ね重ねありがとうございます。

まだ出ていなそうなものをMac限定で。

■ERMaster (フリー)
DB管理ツール。
EclipseのプラグインですがDB管理+ドキュメント化が非常に楽になります。

■CotEditor(フリー)
超軽量なエディター。
簡単な文章修正とかに向いてる。

■Coda(シェア)
エディター+IDE的な感じ。
デザインを確認しながら編集できる。
FTPやSSHとかSVNとかも同梱されていてデザイナーはこれで十分。

■Lingon(フリーorシェア)
自動起動の管理ツール。
OSXの自動起動プログラムを視覚的に編集したりできる。

■MacPorts(フリー)
パッケージ管理ツール。
コンパイルに時間かかるけど昔から使ってるから手放せないツール。

■Omnigraffle(シェア)
ドキュメント作成ツール。
これで仕様書を作るとめちゃくちゃ捗る。

git

git add -u, git add -A, git add -p, git ls-files -z, git clone https://github.com/rails/rails --depth 1 --recursive, git pull --rebase, git clean系、git logの-Sとか--grepとか、git rebaseの-iとか--ontoとか
git hoge -hgit hoge --helpの違い(後者はman pageが出る)

よく使うコマンドとオプション

makeの-jオプション
xargsの-P, -n, -t, -I, -aあたりのオプション
psのoオプション(ps axo comm,rss|grep "[c]hrome"|awk '{sum=sum + $2} END{print sum}'とかで全Chromeプロセスの使用メモリとか確認できて便利。ほっといたら9GBとか食うので)
ps | grep "[c]hrome"とか書くとgrep自身が含まれなくなる、けど毎回手書きするのはめんどい
sudo -s
curlの--rawとか-Dとか-Xとか

コマンド小ネタ

sortはLC_ALL=C sortしたら速い
cutよりawkのほうが速い
ruby -run -e httpd -- --port=9000 .でカレントディレクトリをDocumentRootにしたhttpサーバが起動する(たぶん1.9系だけ)
rsync --progress --stats -avuz --delete /src /destとかするとローカルコピーの進捗とか見れる
while :; do what_you_want_to_retry_until_success_process ; if [ $? -eq 0 ];then break; fi; sleep 10; doneとかでwhat_you_want_to_retry_until_success_processが成功するまでリトライしまくる。回線が不安定なときとかに便利
sudo smartctl -d ata -a /dev/sda1|grep 233 |awk '{print $5,$4, "/ 100 100"}'でSSDの寿命がだいたいわかる(0になると死ぬ、100が最大)
export GREP_OPTIONS='--binary-files=without-match'しておくとgrepがバイナリファイルを無視するようになる

シェル小ネタ

Meta=ESC=C-[でESC-bとかESC-qとかたまに便利
C-zで実行中のコマンドを停止、bgでバックグラウンドで再開、jobsで確認、fgでフォアグラウンドに戻す、kill %1でjobsの1個目のプロセスにkillしたりできる
/bin/shはdashやkshやbashのシンボリックリンクなのでshebangには#!/bin/bashとか書いたほうが安定する(気がする)
scpとかsshはzshならリモートのファイル名とかも補完できる
bcでもいいけどecho $((2<<32))とかecho $((86400*30))でも簡易電卓になる

寒い日は充電中のMacBook上でruby -r digest/sha1 -e 'loop{Digest::SHA1.hexdigest(Time.now.to_f.to_s)}'
とかしてしばらく放置すると勝手にCPUが発熱してあったかくなる

comment.user.url_name
1

suinさんのLESS〜ミニファイを飛ばしていました。明日以降やります。

takano32さん

なんだろう。
なんというか、割と道具選ばずに使うかな。なんて言ったらいいのかよくわからない。
(中略)
Eclipse とか NetBeans とかもとりあえず使ってみる派。で、どっちがいいというのを決めるより「これは何が優れているか」をみて、シーンによって起動するのを変えてしまう。

この精神は見習いたいです。この部分を抜粋して会社で共有しました。

gdb
試してみました。バイナリファイルで使う?
バイナリファイルを扱う機会はあまりないのですが、
覚えておきます。

lv
上記でsuinさんに教わったhomebrewを早速つかってインストールしました。
日本語の正規表現も使えるということなので、使いどころが多そうです。

xargs
既に入っていました。
grepの最大値があることを知りませんでした。
覚えておきます。

iotop
既に入っていました。
I/Oの使用状況をプロセスごとに表示させるコマンド。
知りませんでした。最近会社でサーバーのパフォーマンスメンテがホットなので、助かります。

htop
homebrewで入らなかったので、macportsで入れました。
途中、git-coreのupdateかなんかでこけましたが、個別にインストールした後に
htopをインストールしたら無事使えました。
下記htopについて
http://axela5004.blog74.fc2.com/blog-entry-365.html

iperf
インストールしました。
クライアントとサーバーのスループット測定のコマンド。
ネットワーク周りの知識が全くなかったので新鮮です。

今日はここまで。疲れたので、続きは明日やります。

良スレだからROMってたのだけど何故か、rvmとかnvmとかnaveとか出てないのね。 たぶん基本中の基本だからスルーされたのかもだけど、pythonbrew、perlbrewくらいアツイと思うよ!

comment.user.url_name
1

なにこのエンジニアバトン。素敵。

Cinch: http://www.irradiatedsoftware.com/cinch/

Macで簡単に画面2分割(Win7のあれ)をやってくれるツール。同僚に教えてもらってアディクトしてしまった。

osx-gcc-installer: https://github.com/kennethreitz/osx-gcc-installer

Macで「xcodeは要らないけど、gccだけ欲しいわー」ってなったときに死ぬほど有り難いツール。とりあえずWatchかブクマ。

HTMLサーバとしてのDropbox: http://dl.dropbox.com/u/3431516/love/index.html

HTML+CSS+JSをグローバルアクセスからデバッグしようと思ったら、結局DropboxのPublicフォルダが一番簡単なことに気がつきました(スマフォ向けサイトとかね)。もうプチ☆リリースは全部Dropboxでいいんじゃないだろうか...(どれくらいのトラフィックでアクセス制限が掛かるのか、ベンチマークとってみたい)

Mac OS X 用のアプリだけになっちゃうけど

SVN クライアント: Cornerstone, Versions
FTP クライアント: Transmit
リモート上のファイルをダブルクリックでローカルに保存→開く、ファイル保存→自動的にアップロード なんてのが出来て、ちょっとした開発には結構便利。あと、接続先のディレクトリをFinderにマウント出来る恐怖の機能とかも。もちろんssh等にも対応。
ブラウザ: SRWare Iron
UserAgentが変えられるChrome的な使い方をしてます
ブラウザ(?): Fluid
あんまり関係ないかもしれないけど、Webアプリを簡単にローカルアプリ化出来るヤツ。Webアプリで簡単に開発して、クライアントをブラウザにしなくなかったり、常駐させたいときに便利。
エディタ: TextWrangler
エディタ: Espresso
Espresso はリアルタイムでCSSをプレビューしながら書けたりするエディタ。

シーケンス図を書くのであればmscgenをお勧めします。
日本語もフォントを指定すれば問題なくうごきます。

あとcheatが最近便利です。

今日はLESSのみです。
変数を使ってcssを生成することができるツール。cssアニメーションを書くことが多いので、役に立つ場面が多そうです。

Macで仮想マシン上のWindowsを使う場合にキー操作がMacと同じになるように設定してくれるアプリ。有料だけどVM上での作業効率が大きく上がるのでおすすめ。
- VMWare用
http://www.trinityworks.co.jp/software/AppleKforVMware3/index.php
- Parallels用
http://www.trinityworks.co.jp/software/AppleKforParallels3/index.php

なぜかまだ挙げられていないKeyRemap4Macbook。キー割り当てを自在にカスタマイズできる他、キーリピートやキーウェイトを標準仕様より高速化できる。Mac使いのプログラマにとっては定番のアプリ
http://pqrs.org/macosx/keyremap4macbook/index.html.ja

既出でしたがドキュメント書くならsphinx
http://sphinx-users.jp/
テキストファイル(拡張子.rst)からHTMLやPDFを生成できます。テキストベースなのでgitなどでバージョン管理も行えます。
エディタとCLIで完結できるSphinxはエンジニアにうってつけです。
最近のオープンソースのプロジェクトではドキュメントがsphinxで記述されているものが多く、翻訳プロジェクトでもそのまま使われています。

comment.user.url_name
2

twitter bootstrap は便利ですが、UIテンプレートは他にもあります。

  • Fbootstrap
    twitter bootstrap を Facebook 風にしたもの。Facebook内で動くアプリを作るときは必須。

  • Zurb Foundation
    デザインがかっこいい。bootstrap より早く Media Queries に対応していた(たぶん)。

  • Skeleton
    モノトーンでシンプル、コンパクト。ちょっとしたものだったらこれでいい。

  • compass-recipes
    compass ベースによくあるUIをまとめたもの。上記のテンプレートより小さな単位のパーツを集めているので、改造する時に使いやすい。

comment.user.url_name
1

ちゃんと見てくれる人がいるかわからないけれど、Emacsで知っておいた方がいいについて書いておきたい。

auto-complete.el Emacsで補完機能を実現してくれる。
quickrun.el プログラムの簡単実行の機能。

これは入れといた方がいいものなので、付け加えてもらえたらなぁとおもう。quickrunは基本vim同じはず。

他のJavaScriptについての投稿を見るために、 Qiitaへログイン/登録(無料)しましょう!

2012年4月5日、Qiitaは
プログラマのための
技術情報記録Macアプリ
Kobitoをリリースしました。
詳しくはこちら≫