OLD STUFF
I've left this here for posterity... this is something I wrote a long time ago, and might be interesting to come back to some day :).My toolset
This is an incomplete list, but at least it touches the big stuff, eventually I'd like to add WHY I use each of these tools.
-
Basics:
- shell: bash (sometimes zsh)
- text editor: vim
- mail program: mutt
-
UI:
- window manager: fvwm (lots of custom configs)
- status: fvwm button bar with embedded term running a python script
- terminal emulator: urxvt with single-line scroll patch
-
Office Suite:
- presentations: vim + latex + xpdf (see beamer)
- word processing: vim + latex + aspell
- diagrams: dia
- spreadsheets: gnumeric
- graphs: gnuplot
- viewing word docs: antiword, abiword
-
Web:
- browser: w3m
- browser with jscript and stuff: firefox (not a fan)
-
Network:
-
Chat:
- AIM, Jabber etc: pidgin (with otr)
- IRC: irssi or pidgin
-
Debugging:
- kismet
- tcpdump
- arping
- wireshark
-
Tunneling:
- DNS: nstx, ozymandns
- Tor: torrify
- ssh (awesome for tunneling)
-
Cracking:
- WEP cracking: aircrack
- WEP deauth: aireplay
-
Moving files:
- to/from windows: Samba
- normally: scp, rsync
-
UI:
- whole desktop: vnc (rarely)
- keyboard/mouse forwarding: x2x
- mostly: ssh console (this is why console programs are awesome)
-
Chat:
-
Audio work:
- recording: audacity ardour
- editing: rosegarden
-
realtime effects:
- subsystem: jack with realtime support
- control of jack: qjacktl
- effect plugin system: jack-rack
-
Playback:
- mplayer
- music alarm clock: bash script
- randomized play: bash script
- volume: aumix, alsamixer (aumix is tied into my fvwm shortcuts)
-
Image work:
- downloading from camera: gphoto2
- editing: gimp, imagemagick
- viewing: feh
- browsing: gqview
-
Programming:
- C compiler: gcc (duh)
- applications: Ocaml, sml
-
scripting:
- quick scripts: bash, awk, cut, grap, sed, find, etc.
- longer scripts: python
-
degugging:
- basics: gdb
- memory leaks and others crappy code: valgrind
- syscalls: strace
-
Server:
- webserver: apache2 (with features turned off)
- dns server: bind (djbdns is too weird)
- dns proxy: dnsmasq
- dhcp: dnsmasq
- NAT: iptables
- routing: iptools
- Tor
- security: snort, tripwire
Interesting/Useful Scripts
These are some of the scripts that I actually use that are slightly nontrivial.
Scripts:
- iproute sets up my routing tables on boot, I have yet to set up something that UNdoes this... meh.
- iptables sets up NAT for my personal wireless network to my DSL link.
- failover.py is a quick python script that I use to fail my server over to wireless the aptartment complex' wireless if my DSL goes dead. This doesn't make it available to the outside world, but it means my server can E'mail me for example.
- select_random is a wonderful bash one-liner that selects a random item from a stream in a single pass with "constant" (theoretical logorithmic) memory overhead. I use this as the basis for a lot of other scripts.
- mp3play is one hell of a horrific hack which plays random mp3's using mplayer. If you pipe the right stuff to "tmp/mplayer_fifo" you can control it from another application. I use this to control it from fvwm with shortcut keys... or sometimes I directly echo while ssh'd in from another box.
- alarm is a companion script to mp3play. It uses mp3play to create an alarmclock to wake me up to music. It actually checks to see if mp3play is already running, and starts it if it's not. Again, very hacky.
- format Takes a .csv file - es exported for google from google contacts, as input and outputs a printable format. Useful if you want all of your contacts for say... a throughhike.
Interesting Useful Configs
These are configs that I actually use that are slightly nontrivial.Configs:
- .fvwm2rc from my home directory. This is the one I actually use (or, at least what I used at the time fo this writing). This borders on turning fvwm into a tiling windowmanager, and sets things up so you never need a mouse (My mouse is ucrrently 3 feet away actually).
- .vimrc from my home directory. I'm still fighting with convincing vim to never ever try and sync. Basically I only want it to write to FS when I tell it to, and never force a sync to the disk (which it really wants to do) - mbrewer