Feedme 0.7
![[FeedMe, Seymour!]](http://shallowsky.com/software/feedme/feedme.jpg)
It's been fairly solid for a few weeks now, so it's time to release
... FeedMe 0.7.
[ 22:32 Jan 31, 2011 More programming | permalink to this entry | ]
It's been fairly solid for a few weeks now, so it's time to release
... FeedMe 0.7.
Although they run standard Linux (usually Debian or Ubuntu), there are some gotchas to choosing and installing plug computers. So this week's article starts with the basics of choosing a model and connecting to it; part II, in two weeks, will address more difficult issues like how to talk to uBoot, flash a new kernel or recover if things go wrong.
Read part I here: Tiny Linux Plug Computers: Wall Wart Linux Servers.
I found lots of suggestions on the web for eliminating extra whitespace, and several places to configure this within Eclipse, but most of them don't do anything. Here's the one that actually worked:
Window->Preferences
Jave->Editor->Save Actions
Enable Perform the selected actions on save.
Enable Additional actions.
Click Configure.
In the Code Organizing tab., enable
Remove trailing whitespace for All lines.
Review all the other options there, since it will all happen automatically
whenever you save -- make sure there isn't anything there you
don't want.
Dismiss the Configure window.
Review the other options under Save Actions, since these will
also happen automatically now.
Don't forget to click Apply in the Save Actions
preference page.
Whew! There are other places to set this, in various Code style and Cleanup options, but all all the others require taking some action periodically, like Source->Clean up...
By the way, while you're changing whitespace preferences, you may also want the Insert spaces for tabs preference under General->Editors->Text Editors.
An easy way to check whether you've succeeded in exorcising the
spaces -- eclipse doesn't show them all, even when you tell it to --
is to :set hlsearch
in vim, then search for a space.
(Here are some other ways to show
spaces in vim.) In emacs, you can M-x set-variable
show-trailing-whitespace
to true
, but that
doesn't show spaces on blank lines; for that you might want
whitespace.el
or similar packages.
How, then, can I set things up so that both dark- and light-backgrounded people can use the account? I could set up a script that would set up a different set of aliases and configuration files, like when I changed my vim colors. Better, I could fix all of them at once by changing my terminal's idea of colors -- so when the remote machine thinks it's feeding me a light color, I see a dark one.
I use xterm, which has an easy way of setting colors: it has a list of 16 colors defined in X resources. So I can change them in ~/.Xdefaults.
That's all very well. But first I needed a way of seeing the existing colors, so I knew what needed changing, and of testing my changes.
I thought I remembered once seeing a program to display terminal colors, but now that I needed one, I couldn't find it. Surely it should be trivial to write. Just find the escape sequences and write a script to substitute 0 through 15, right?
Except finding the escape sequences turned out to be harder than I expected. Sure, I found them -- lots of them, pages that conflicted with each other, most giving sequences that didn't do anything visible in my xterm.
Eventually I used script
to capture output from a vim session
to see what it used. It used <ESC>[38;5;Nm to set color
N, and <ESC>[m to reset to the default color.
This more or less agreed Wikipedia's
ANSI
escape code page, which says <ESC>[38;5; does "Set xterm-256
text coloor" with a note "Dubious - discuss". The discussion says this
isn't very standard. That page also mentions the simpler sequence
<ESC>[0;Nm to set the
first 8 colors.
Okay, so why not write a script that shows both? Like this:
#! /usr/bin/env python # Display the colors available in a terminal. print "16-color mode:" for color in range(0, 16) : for i in range(0, 3) : print "\033[0;%sm%02s\033[m" % (str(color + 30), str(color)), print # Programs like ls and vim use the first 16 colors of the 256-color palette. print "256-color mode:" for color in range(0, 256) : for i in range(0, 3) : print "\033[38;5;%sm%03s\033[m" % (str(color), str(color)), print
Voilà! That shows the 8 colors I needed to see what vim and ls were doing, plus a lovely rainbow of other possible colors in case I ever want to do any serious ASCII graphics in my terminal.
The next step was to change the X resources. I started by looking for where the current resources were set, and found them in /etc/X11/app-defaults/XTerm-color:
$ grep color /etc/X11/app-defaults/XTerm-color irrelevant stuff snipped *VT100*color0: black *VT100*color1: red3 *VT100*color2: green3 *VT100*color3: yellow3 *VT100*color4: blue2 *VT100*color5: magenta3 *VT100*color6: cyan3 *VT100*color7: gray90 *VT100*color8: gray50 *VT100*color9: red *VT100*color10: green *VT100*color11: yellow *VT100*color12: rgb:5c/5c/ff *VT100*color13: magenta *VT100*color14: cyan *VT100*color15: white ! Disclaimer: there are no standard colors used in terminal emulation. ! The choice for color4 and color12 is a tradeoff between contrast, depending ! on whether they are used for text or backgrounds. Note that either color4 or ! color12 would be used for text, while only color4 would be used for a ! Originally color4/color12 were set to the names blue3/blue !*VT100*color4: blue3 !*VT100*color12: blue !*VT100*color4: DodgerBlue1 !*VT100*color12: SteelBlue1
So all I needed to do was take the ones that don't show up well -- yellow, green and so forth -- and change them to colors that work better, choosing from the color names in /etc/X11/rgb.txt or my own RGB values. So I added lines like this to my ~/.Xdefaults:
!! color2 was green3 *VT100*color2: green4 !! color8 was gray50 *VT100*color8: gray30 !! color10 was green *VT100*color10: rgb:00/aa/00 !! color11 was yellow *VT100*color11: dark orange !! color14 was cyan *VT100*color14: dark cyan... and so on.
Now I can share accounts, and I no longer have to curse at those default ls and vim settings!
Update: Tip from Mikachu: ctlseqs.txt is an excellent reference on terminal control sequences.
I've been quite favorably impressed with Arch. It's a good, solid, straightforward distro that's very well suited to folks who like to administer their systems via the command-line -- or who want to learn how to do that.
I've been running it on my laptop for a few months, because it has excellent performance, without a lot of the bloatware you see in a lot of other distros, and it boots fast.
The only real problem I've had involves fonts. I see nasty font artifacts -- sometimes subtle, a line or a few pixels missing from certain letters -- but sometimes severe, as in this screenshot or this one. In the article I talk about some solutions I've found that make the problems less bad, but I haven't found any way to make them go away entirely.
Unfortunately, since the font problems are worst inside browsers and I use my laptop for presentations at conferences, this may eventually drive me off Arch. I hope not -- I hope I can find a solution -- because otherwise, Arch has been nothing short of a pleasure.
But I did spend quite a bit of time with my laptop, currently running Arch Linux, trying to get the fonts to work as well as they do in Ubuntu. I don't have a definite solution yet to my Arch font issues, but all the fiddling with fonts did lead me to realize that I needed an easier way to preview specific fonts in bold.
So I added Bold and Italic buttons to
fontasia,
and called it Fontasia 0.5. I'm finding it quite handy for previewing
all my fixed-width fonts while trying to find one emacs can display.