first hugo commit
This commit is contained in:
parent
dabdd68df3
commit
0e4f2a913d
1459 changed files with 50871 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
+++
|
||||
date = "2009-01-12T17:01:00-07:00"
|
||||
title = "C*MUS - A music manager for the terminal"
|
||||
slug = "cmus-a-music-manager-for-the-terminal"
|
||||
+++
|
||||
|
||||
C\*MUS - A music manager for the terminal
|
||||
=========================================
|
||||
|
||||
[C\*mus](http://cmus.sf.net/) is an advanced music juke-box for \*inx
|
||||
and Window operating systems. It can handle the modern audio file
|
||||
formats: FLAC, Ogg/Vorbis, MP3 , Wav, AAC , MP4, .mod, .s3m, .mpc, mpp,
|
||||
.mp+, .wma, and .wv . It also can deal with many different types of
|
||||
audio output systems: ALSA, libao, ARTS, OSS, Sun, and WaveOut on
|
||||
Windows. The typical features of an electronic juke-box are supported
|
||||
like play lists and random/shuffle play, in addition to easily switching
|
||||
between playing from the library, an artist, or a single album with a
|
||||
simple keystroke.
|
||||
|
||||
C\*Mus is pretty painless to install from source. The website lists the
|
||||
build dependencies with links.
|
||||
|
||||
En-queuing
|
||||
----------
|
||||
|
||||
One of the features I really enjoy and use is the en-queue function. I
|
||||
tend to use this two ways. The first is when I am listening to a song,
|
||||
and want to listen to similar songs, I go find them in my library, and I
|
||||
queue them up with a simple keystroke. A dynamic play-list, if you will.
|
||||
Then, I can simply create a more permanent playlist from this temporary
|
||||
list.
|
||||
|
||||
The second way is using the helper program cmus-remote to be able to
|
||||
queue up tracks from a different terminal, or from a script. My
|
||||
podcatcher program (bashpodder) will queue up the podcasts it just
|
||||
downloaded for me, so I can listen to them first thing in the morning.
|
||||
|
||||
Keystroke and CLI
|
||||
-----------------
|
||||
|
||||
C*Mus is developed to be driven via keystrokes. The default mapping is
|
||||
set up to be comfortable for those use are familiar with VI but, it is
|
||||
very easy to remap the keys to make it more comfortable. C*Mus will
|
||||
automatically save the current settings on a clean exit. The default
|
||||
mappings for selecting and updating views, moving through songs forward
|
||||
and backwards in small and large increments, adding to play list and
|
||||
queue lists.
|
||||
|
||||
Filters
|
||||
-------
|
||||
|
||||
One of the very powerful features is simple filters. You can set a
|
||||
filter for your 80's Metal Bands or your Classical music. Many of the
|
||||
common tags can be used for filter on. Things like filename, artist,
|
||||
album, title, genre, discnumber, tracknumber, date (year), duration
|
||||
(seconds), and tag.
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
+++
|
||||
date = "2009-04-17T18:04:00-07:00"
|
||||
title = "wifiroamd, Intel PRO/Wireless 3945ABG, and Fedora"
|
||||
slug = "wifiroamd-intel-prowireless-3945abg-and-fedora"
|
||||
+++
|
||||
|
||||
wifiroamd, Intel PRO/Wireless 3945ABG, and Fedora
|
||||
=================================================
|
||||
|
||||
One of the things that has annoyed me about Fedora has been the decision
|
||||
to switch over to using
|
||||
[NetworkManager](http://www.gnome.org/projects/NetworkManager/) to
|
||||
manage all network connections.
|
||||
|
||||
Now, on the service this has a lot of advantages. A lot of work has gone
|
||||
into it, and it just works for a vast majority of the installations out
|
||||
there. They have made it so the move from wired to wireless and back can
|
||||
be done without the user doing anything. They have also seamlessly tied
|
||||
in Dial-Up Networking if you still need a modem or use a wireless modem.
|
||||
They even have two-click access to your VPN which is pretty cool.
|
||||
|
||||
All these are things which are very good for Linux users. The biggest
|
||||
drawback to all this? The need for a user-space program to manage the
|
||||
non-hardwired connections. Which means that in order to be able to have
|
||||
any network running besides the good old twisted-pair copper, you have
|
||||
to have a little applet running as you, and it has to have a systray
|
||||
somewhere to display. Which means you have to be a) logged into the
|
||||
system and b) you have to be running a window manager which supports
|
||||
having a system tray. Now, Fedora gives you lots of choices for the
|
||||
second part now days. You have [Gnome](http://www.gnome.org),
|
||||
[KDE](http://www.kde.org), [XFCE](http://www.xfce.org), and
|
||||
[LXDE](http://lxde.sf.net). All are perfectly usable window managers.
|
||||
But, they still require you to be logged in to X. And, [I do not use any
|
||||
of them](links://slug/window-managers/).
|
||||
|
||||
So, what is a cli-loving Fedora user to do? Well, there is this great
|
||||
program called
|
||||
[wifiroamd](http://www.tummy.com/Community/software/wifiroamd/). It will
|
||||
handle the same basic tasks that NetworkManager handles. It will
|
||||
automatically configure your wifi interface and connect to the wifi
|
||||
networks or the locate hardwired NIC if it cannot. You can configure it
|
||||
to run scripts per connection, so for example, you can change your
|
||||
firewall rules for different networks (shields down at home or the
|
||||
office, but up full at the coffee house), or you could bring up your VPN
|
||||
connection when you start using a given wireless network.
|
||||
|
||||
One tip I picked up from the author was that if you have multiple AP's
|
||||
in range, an you want to select once AP over the other, is under the
|
||||
*/etc/wifiroamd/connections* directory, simply link the AP info you do
|
||||
not want to the one you want:
|
||||
|
||||
ln essid:my_home_ap essid:bad_ap
|
||||
|
||||
where **essid:my\_home\_ap** is your AP with the keys and other
|
||||
information you want, and **essid:bad\_ap** is the one you do not want
|
||||
to connect to. My neighbors have some very powerful AP's which have a
|
||||
habit of showing up high than mine, but I have no problem with them now.
|
||||
|
||||
I have been using this set up under Fedora since FC6 days, but when I
|
||||
upgraded to F10, this stopped working. wifiroamd would try to scan for
|
||||
an AP, and not find anything. The change, it turns out, is that when I
|
||||
switched from using the iw3945 driver to the native iwl3945, wifiroamd
|
||||
could no longer see the wireless NIC due to the wpa\_supplicant process,
|
||||
but NetworkManager could. Simply stopping and disabling wp\_supplicant
|
||||
and NetworkManager, and wifiroamd started working again! I am a happy
|
||||
camper again.
|
||||
114
content/post/2009/05/200905search-your-email.md
Normal file
114
content/post/2009/05/200905search-your-email.md
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
+++
|
||||
date = "2009-05-25T18:05:00-07:00"
|
||||
title = "Search your email!"
|
||||
slug = "200905search-your-email"
|
||||
+++
|
||||
|
||||
Search your email!
|
||||
==================
|
||||
|
||||
One of the features that most of the pretty GUI mailers offer you is the
|
||||
ability to search your email. While this is not a feature I use
|
||||
regularly, it is one which when you need it, you really need it. I have
|
||||
used [grepmail](http://grepmail.sf.net) in the past, but it slow for me
|
||||
(it scans the mail files every time) and the big thing for me is that is
|
||||
only supports [mbox](http://en.wikipedia.org/wiki/Mbox) files, and I use
|
||||
[maildir](http://en.wikipedia.org/wiki/Maildir) since I use
|
||||
[offlineimap](http://software.complete.org/software/projects/show/offlineimap).
|
||||
|
||||
I recently found [mairix](http://www.rpcurnow.force9.co.uk/mairix/).
|
||||
While I have not been using it long, so far I am very impressed with it.
|
||||
It uses an index to speed up the search process, and it smartly adds
|
||||
only new or changed files to the index. The first indexing run was only
|
||||
a few seconds on my archive of almost 15,000 mail messages. I have it
|
||||
scheduled to update the index every 15 minutes, and I never notice the
|
||||
load this will put on the system.
|
||||
|
||||
To integrated mairix with mutt, I wrote a quick little script to search
|
||||
from within (or without) mutt:
|
||||
|
||||
#!/bin/bash
|
||||
#===============================================================================
|
||||
#
|
||||
# FILE: mailsearch.sh
|
||||
#
|
||||
# USAGE: ./mailsearch.sh
|
||||
#
|
||||
# DESCRIPTION: search mail stuff
|
||||
#
|
||||
# OPTIONS: ---
|
||||
# REQUIREMENTS: ---
|
||||
# BUGS: ---
|
||||
# NOTES: ---
|
||||
# AUTHOR: Don Harper (), duck@duckland.org
|
||||
# COMPANY: Don Harper
|
||||
# VERSION: 1.0
|
||||
# CREATED: 05/25/2009 07:03:30 PM CST
|
||||
# REVISION: ---
|
||||
#===============================================================================
|
||||
|
||||
rm -rf $HOME/Maildir/mfolder
|
||||
echo " t::word
|
||||
Match word in the To: header.
|
||||
c::word
|
||||
Match word in the Cc: header.
|
||||
f::word
|
||||
Match word in the From: header.
|
||||
s::word
|
||||
Match word in the Subject: header.
|
||||
m::word
|
||||
Match word in the Message-ID: header.
|
||||
b::word
|
||||
Match word in the message body.
|
||||
d::[start-datespec]--[end-datespec]
|
||||
Match messages with Date: headers lying in the specific range.
|
||||
z::[low-size]--[high-size]
|
||||
Match messages whose size lies in the specified range.
|
||||
n::word
|
||||
Match word occurring as the name of an attachment in the mes-
|
||||
sage. Since attachment names are usually long, this option
|
||||
F::flags
|
||||
Match messages with particular flag settings.
|
||||
s meaning seen,
|
||||
r meaning replied
|
||||
f meaning flags
|
||||
prefixed by a - to negate its sense.
|
||||
|
||||
The a:: search pattern is an abbreviation for tcf:
|
||||
|
||||
Match words
|
||||
The word argument to the search strings can take various forms.
|
||||
~word
|
||||
Match messages not containing the word.
|
||||
word1,word2
|
||||
This matches if both the words are matched in the specified message part.
|
||||
word1/word2
|
||||
This matches if either of the words are matched in the specified message part.
|
||||
substring=
|
||||
Match any word containing substring as a substring
|
||||
substring=N
|
||||
Match any word containing substring, allowing up to N errors in
|
||||
the match. For example, if N is 1, a single error is allowed,
|
||||
where an error can be
|
||||
* a missing letter
|
||||
* an extra letter
|
||||
* a different letter.
|
||||
^substring=
|
||||
Match any word containing substring as a substring, with the
|
||||
requirement that substring occurs at the beginning of the
|
||||
matched word.
|
||||
d::start-end
|
||||
Specify both start and end explicitly
|
||||
"
|
||||
echo -n "Enter your search string: "
|
||||
read string
|
||||
mairix $string
|
||||
mutt -f=mfolder
|
||||
rm -rf $HOME/Maildir/mfolder
|
||||
|
||||
Then, I bound this to "S\'' from within mutt:
|
||||
|
||||
macro index,pager S "!mailsearch\n"
|
||||
|
||||
This will give me a reminder of the search command, run the search, and
|
||||
then give me the search results in a new mutt session.
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
+++
|
||||
date = "2009-12-28T17:12:00-07:00"
|
||||
title = "Making life easy over flaky links"
|
||||
slug = "200912making-life-easy-over-flaky-links"
|
||||
+++
|
||||
|
||||
Making life easy over flaky links
|
||||
=================================
|
||||
|
||||
I tend to work over VPN, which we know can be flaky at times, Since I
|
||||
work on server, I spend a lot of time ssh'ed into hosts. I was getting
|
||||
tired of the lost time having to restart what I was working on every
|
||||
time the VPN dropped (which could be as much as every 15 minutes on a
|
||||
bad day). While I already used screen to handle the lack of terminals
|
||||
(Alas, I am forced to use a Windows laptop to VPN in with), I thought
|
||||
there could be an easier way to do this.
|
||||
|
||||
The way I tend to work is that I ssh into a jump server, fire up screen,
|
||||
then ssh into the hosts I need to work on, and fire up screen on those
|
||||
hosts.
|
||||
|
||||
Now, this is nice, but it can get a bit tiring to do it all over again.
|
||||
So, I found a tool called [autossh](http://www.harding.motd.ca/autossh/)
|
||||
which will automatically restart your ssh session if it drops for any
|
||||
reason but a graceful disconnect. (Well, there are others, but this is
|
||||
basically it). Combine this with your ssh-agent, and you can re-attach
|
||||
with easy. I also use [keychain](http://www.funtoo.org/Keychain) to help
|
||||
manage my ssh-agent when I log in.
|
||||
|
||||
Now that the connection will come back, I need a way to re-attach to my
|
||||
screen session, or if there is not one, to start one for me. To do\
|
||||
that, I have this is my .bashrc file:
|
||||
|
||||
test -x $STY && screen -xR
|
||||
|
||||
This will check to make sure that we are not already inside a screen
|
||||
session on the local host (*test -x \$STY*), and if we are not, then
|
||||
either attach to an existing screen session or start a new one (*screen
|
||||
-xR*)
|
||||
|
||||
I have define this function in my .bashrc to spawn a new ssh connection
|
||||
in a separate screen window:
|
||||
|
||||
function ss ()
|
||||
{
|
||||
screen -t $1 ssh $*
|
||||
}
|
||||
|
||||
Easy stuff
|
||||
Loading…
Add table
Add a link
Reference in a new issue