Last night was a rare semi-clear night (this month has been awful,
grumble), so I was excited to see the Moon, Jupiter and Venus on my
walk home from the bus stop after $WORK; it was kinda cloudy, but not
completely, and anyhow the crecent moon was awful pretty through the
haze. When I got home I asked my oldest son if he wanted to go out
w/the telescope after supper. He was enthusiastic, so I put the 4.5"
reflector outside to cool while we ate.
Forty minutes was enough to bring in more threatening clouds, but we
could still see the three of them. I set up the scope and had a look
at Theopilus. A couple years ago my son noticed its distinct
appearance, and asked what its name was. I looked it up, and have
been fond of it ever since. This time, though, he couldn't pick it
out...but he was still interested, so that was good.
I'd looked on Heavens-Above to see if the ISS was due to fly
overhead tonight, and it was -- just before 7pm, right when we were
outside. Sweet! Sure enough, we watched closely and there it was,
bright as anything and moving just past the moon. But wait, wasn't it
supposed to go across the moon? What the...
...and then one minute later, there was the real ISS, and it was
going across the Moon (very cool!). And there was the other
satellite, almost as bright, moving on a different track. As far as I
could tell, both stayed the same steady brightness -- so no tumbling
for our mystery satellite. We watched both 'til they passed into the
Earth's shadow, then headed inside for the night.
First thing I did, of course, was pull up Heavens-Above again to see
what this other satellite was. And I couldn't find anything! There
was simply nothing listed anywhere near the time the ISS flew over,
let alone something that was supposed to be that bright. No Iridium
flares either. Stumped, I reported to my son that I had no idea what
it was.
But then I realized that I'd been looking at the listings that were
supposed to be brighter than 3rd magnitude, rather than the fuller
list that went down to 4.5. It was possible this thing was in the
fuller list, but was brighter than predicted (because the predicted
angle of reflection was wrong, say). So I pulled up the full list and
started looking at tracks.
Sure enough, there were a bunch that were overhead at that time. The
ISS was the most obvious one, but looking at the map tracks this
Delta II rocket was the one we saw, which had launched the
Globalstar 26. Here's the ISS pass:
And here's the Delta pass:
The times don't match up perfectly. The Delta was predicted to reach
max altitude at 18:44 and enter shadow at 18:50; the ISS was predicted
to reach 10 degrees altitude at 18:51, max at 18:54 and shadow at
18:57. I didn't note the time we saw the first one, since it was
right around 18:50 and I thought it was the ISS.
I told my son about all this and -- being the son of a geek -- he
thought it was pretty cool. :-)
Also -- and this is completely unrelated -- how did I not know about
M-a in Emacs? Ordinarily it's "backward-sentence", but in programming
modes, it moves to the beginning of non-whitespace on a line. ZOMG.
I've run into problems with Kaboing, the Pogoplug I picked up and have
been slowly prepping for use as my home web/email/SSH server. First,
it stopped recognizing the USB stick that had the root filesystem, and
would boot into the stock Pogoplug environment instead...which is
still Linux, but not my Linux.
I tried installing the root on another USB stick, thinking that the
old one was, well, old (it was one of n I have lying around the
house). But that didn't work either: I still kept getting the
Pogoplug environment instead. I tried removing extra sticks (I had
three attached), leaving me with just one (new) stick and an external
USB hard drive; still didn't work.
After much futzing about, I got it down to this behaviour: every other
warm reboot works, mostly. By that I mean that every second warm reboot
seems to detect at least the USB stick with the root FS, and sometimes
the external hard drive, and boots up into my Linux (running Debian,
natch); the other times, the stick(s) aren't detected and the plug
decides to boot into the Pogoplug Linux instead.
I'm not the only one who's tripped over this. I've tried various
things and haven't come up with a solution yet. I think an awful
hack will be to put some kind of timed reboot into the Pogoplug
environment. But I don't like that idea very much, and I wish I knew
what was going on.
Last night's shutdown went...okay. The turning-off-servers part went
well, and I was able to do it all in less than half an hour -- not bad
for an orderly shutdown. Turning things on went less well. Partly it's
because I should be using IPMI commands instead of trying to SSH to
the various ILOMs/DRACs and running commands; I kept getting error
messages from Fab even though I could run the commands by hand
just fine.
Partly, though, it's because about 80% of the Sun ILOMs needed to be
rebooted in order to control the machines, report power status
correctly, get a console, etc. That's annoying. In all other
respects they're the most consistently good of their sort -- they
work right off the bat, they don't crap out and drop off the network
(hell, Dell) and they're simple. But they seem to get wedged, and I
have to SSH in as "sunservice" (it's actually Linux under the hood --
shhhh) and forcibly reboot them.
And there's the usual assortment of hardware problems/irritations that
the first reboot in a few months brings to light, like the second
machine in a week with a possibly failing hard drive -- complicated,
of course, by not having the tool around to actually query the
RAID card to see how things are going. Worryingly, a reboot made
(reporting of) the problem disappear. Good, I need another project.
In other news: I've had to abandon my brief infatuation with
gitit, a git-based wiki written in Haskell. It is nearly
perfect, but its syntax for tables -- based on Pandoc's extension of
Markdown -- is bad, non-Orgmode compatible (Orgmode tables
are SO AWESOME), and best ignored in favour of direct HTML. And when
editing HTML for tables becomes your best option, I'm (sadly,
regretfully, heartbreakingly) outta here. So for now, for $WORK, I'm
sticking with Foswiki and my awful hack of a Bash function for editing
it with Emacs:
The chown/chmod (and thus the sudo) are needed to maintain
web-editability for the pages...not that I use them very often, but
for an eventual successor/coworker. I really miss Confluence-mode.
There's a power outage scheduled for our server room tomorrow night
(which means I'm gonna miss the VanBrewers meeting, BOO HISS). I've
been looking for a way to script the shutdown and startup of 50-odd
servers, and here's what I've come up with.
Previously I've been using cssh, which works well enough for shutdown
but not so well for startup (long story). Still, SSH is the way I
want to go, so I looked at pssh and sshpt, but was unable to get both
to work with a pseudo-tty to allow sudo. Then I came across Fab,
and with a little bit of reading and a little bit of code I came up
with something that should work.
Of course, the real problem is that I'm hand-coding so much of it:
this server is HP and should be shut down like this, that server is
Sun and should be shut down like so...really, I should be using ipmitool
to do all this. But the mgt network is on a private subnet, I'm
somewhere else, and this is the simplest quick thing I could do.
We'll see how it goes.
(This half-assed blog entry brought to you by cold medication and a
sinus infection. Whee!)
Sunday we all(1) went to the AAAS Family Science Day and ho boy,
it was fun. The kids had fun, of course; the demos were aimed pretty
much right at them, and there were stickers and lasers and more
stickers and popcorn. Friends of ours showed up with their two kids
in tow, and all the boys got to run around and shine lasers at each
other's heads. My wife had fun cos hey! SkyTrain! that's fun. But
also? I had fun. And by fun I mean ZOMG. Because among other things,
the Physics Department(2) from UBC had a real, working cloud chamber. A
CLOUD CHAMBER.
When I was a kid, I bought this book at a library book sale: a
collection of Scientific American "Amateur Scientist" columns. There
was all kinds of stuff in there, from how to build your own solid
rocket motors to measuring the metabolism of rats (I think part of it
was TAKING SAMPLES OF THEIR BLOOOOOOOD) to grinding your own telescope
mirror. For a budding geek, this was simply endless entertainment.
But -- BUT -- there was also a column explaining how to build your own
cloud chamber and watch cosmic rays decay before your eyes. There was
also an offer to mail you a radioactive speck so that you'd see
more exciting stuff, which I thought was possibly the coolest thing
ever.
This may have been the beginning of my interest in particle physics,
expressed in later years when I:
a) got a local welder to weld some copper pipe in a loop, in
preparation for a sadly-never-completed circular particle accelerator
(linear accelerators are for suckers and chumps);
b) sent a fan letter to Carlo Rubbia and was thrilled to get a
personally-signed letter back;
c) went to university to take physics in preparation for a career at
CERN (only to get distracted by the Internet and libraries that
were open 'til midnight, and fail out two years later); and
d) was amazed that a coworker at my first sysadmin job was the son of
the director of IT for CERN; I tried to get him to get me a job,
and he said no, but he gave me a cool CERN swatch instead.
And in all that time, do you think I'd ever seen a real, live cloud
chamber? Had I bollocks. I'd printed out pictures of bubble chamber
tracks, read up on spark chambers, learned about emulsion
tracks, but never actually seen a working cloud chamber.
This thing was cool. I had not realized how dynamic they were.
They'd put in a radioactive source, of course -- maybe they had sent
off for a radioactive speck back in the day -- but there were also
cosmic rays and other natural sources of radiation leaving their
marks. There were tracks appearing constantly, and then fading away;
it was hypnotic to watch. This video shows exactly what I mean:
The woman giving the demo said that some of the tracks were
muons. Dude! MUONS! I was seeing MUON TRACKS! And then I got
embarassed 'cos I couldn't remember whether beta radiation was photons
or helium nuclei (neither: they're electrons or positrons; gamma
radiation is made of high-energy photons) and felt insecure about
the whole prospect of being in the same room as all these scientists
since I obviously needed a remedial course in shoelace tying if I
couldn't remember what beta radiation was.
This week has been a writeoff. I took 2.5 days off sick (shoulda been
3), I slept for maybe four hours last night, and I've stared blearily
at my work monitor more than I care to admit.
I did get some stuff done: updated one of my wireless routers to the
latest version of OpenWRT (and promptly found problems), got njam
working on the new incarnation of the MythTV box (the kids are
thrilled), and listened, rapt, to my youngest son proudly show his
friend around the house while I hid upstairs in bed, snuffling
quietly. So there's that.
I've been reading "A History of Christianity". I long for
footnotes, but more for comfort than anything else; other than that,
it's pretty damn good. I've also got "Why Evolution Is True",
and that's good too. I picked up Sue French's "Deep Sky
Wonders", thanks to my ever-generous in-laws, and if the verdammt
clouds ever clear up I hope to put it to good use. (Though I was
proud, the last time the sky was clear, to have found NGC 1662 by
Orion, which is mentioned in this book...I was surprised at how easy
it was to find.)
Mandatory reading for the week: Terry Milewski's article on Section
34 of Bill C-30, which outlines the duties of inspectors,
appointed by the minister under the act. Quote:
The inspectors may "enter any place owned by, or under the control of,
any telecommunications service provider in which the inspector has
reasonable grounds to believe there is any document, information,
transmission apparatus, telecommunications facility or any other thing
to which this Act applies."
...The inspector, says the bill, may "examine any document,
information or thing found in the place and open or cause to be opened
any container or other thing." He or she may also "use, or cause to be
used, any computer system in the place to search and examine any
information contained in or available to the system."
...The inspector -- remember, this is anyone the minister chooses -- is also
empowered to copy anything that strikes his or her fancy. The
inspector may "reproduce, or cause to be reproduced, any information
in the form of a printout, or other intelligible output, and remove
the printout, or other output, for examination or copying."
...Finally, note that such all-encompassing searches require no warrant,
and don't even have to be in the context of a criminal
investigation. Ostensibly, the purpose is to ensure that the ISP is
complying with the requirements of act the but nothing in the section
restricts the inspector to examining or seizing only information
bearing upon that issue. It's still "any" information whatsoever.
Like many Canadians, I am concerned about the secrecy surrounding TPP
negotiations -- and even more concerned about the details that have
emerged. Canada should not be participating secret negotiations
that will affect:
Copyright term extension
Digital locks
ISP liability
The importance of each of these areas on their own, let alone
together, should convince anyone that the treaties affecting them must
be negotiated openly, transparently and (with all due respect) with
much, much more public consultation than has occurred so far.
I can think of no better person to invite into this process than
Professor Michael Geist of the University of Ottawa, whose own
submission to this consultation I endorse whole-heartedly. I
strongly urge this government to involve him at the earliest
possibility; you will serve the interests of Canadian citizens well by
doing so.
I recently came across Emacs Workgroups, and holy crap is it
amazing. From the description:
It's tedious setting Emacs' window layout just the way you like it --
splitting windows, adjusting their size, switching to the right
buffers, etc. And even when it is set, it won't stay that way for
long. On top of that, you can't save your window-configurations to
disk, so you have to start over from scratch every time you restart
Emacs.
There are solutions out there to parts of the problem -- elscreen,
revive.el, window-configuration-to-register, etc. -- but none provide
a complete solution. Workgroups does.
It is so choice. If you have the means, I highly recommend picking
one up.
Samantha Wright is answering biology questions again on her
Slashdot journal. She's smart, well-spoken (-written) and
generous with her knowledge; it's well worth taking a look at all her
entries.
A while back I brewed a double IPA that came in around 9% ABV.
I used almost a pound (!) of hops, most of them Falconer's
Flight. It turned out pretty well...but I made the mistake of
bottling some of the sludge at the bottom with all the hop gunk. I
thought it would settle out, but hop bits are surprisingly floaty, and
I think I'm going to end up pouring it through a sieve of some kind.
(Incidentally, I have not brewed at all this year. Yes, it's only
6 weeks in, but still.)
I am turning 40 tomorrow. (!!) I've taken the day off work, my
wife and I are dropping off the kids at my in-laws' 'til tomorrow, and
we're heading out for...well, an afternoon on the town :-), heading to
Saint Augustine's to see what they've got on tap.
More conversations with Mark Burgess via Twitter (a continuation from
here. I should note that this was all a week or so ago now; I've
been meaning to put this up here.
markburgess_osl: @saintaardvark Doc is "what" code is "how". I
believe the lasting intention comes before a specific
implementation. #devops #sysadmin
saintaardvark: .@markburgess_osl Hm. So let's see if I've got this
right: the programmer in me notices lots of overlap in my Cf3
config...
saintaardvark: .@markburgess_osl ...and wants to consolidate. Cf3
syntax makes this a hairy proposition at best. But this is not
really a problem...
saintaardvark: .@markburgess_osl ...because I should be thinking
about this as documentation (which can be long) of the desired
system state...
saintaardvark: .@markburgess_osl ...rather than code (where the
drive is for efficiency and lack of duplication). Have I got that
right? #sysadmin
markburgess_osl: @saintaardvark Documentation => focus on end state
(like GPS), Code => focus on start state + directions. The journey
is irrelevant.
markburgess_osl @saintaardvark Docs also improved by seeing themes
and patterns. That is still WHAT not HOW. So no contradiction.
So putting this in practical (can't resist the temptation to say "less
Yoda-like") terms: what I think he's saying is, don't worry about code
duplication or getting clever; you're documenting desired system
state, and it's okay to be verbose.
Using the example I started with, it's okay to have NTP settings
in multiple places (because SuSE needs two files, Solaris 1, etc).
The coder in me wants to clean those up because it's all NTP, but the
documentationist ("writers", I think they're called) relaxes and says
"Can't have too much documentation." Which is fair.
But then I worry about having Multiple Sources of Truth(tm). The
advantage of the first setup is that when I change the NTP server,
it's ALL in one place; in the second setup, I have to remember: did
I change it for SuSE? Solaris? CentOS? I've learned the hard way to
be wary of such setups. I nearly always miss something; that's why
I'm aggressive about consolidating.
This bit me in the ass today: my workstation's MAC address was
suddenly changing to aa:00:04:00:0a:04. The problem turns out to be
Decnet, which got added when I installed cmus. RAWR.
I'm starting to switch to git at work, and I'm rethinking my usual new
project workflow layout synergy hashtag a bit.
(Gah.)
What I'm thinking about is something like this:
Decide I need to work on a new project that should be in revision
control. (Question: when should you not put a project in
revision control? Answer: when you're dead; it will fuck with the
commit logs.)
Run a script.
The script will:
Prompt for a project name and a one-line description
Check out git://git.example.com/newproject, which will contain:
Howdy! This is an example blog post that shows several types of HTML content supported in this theme.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum.
Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit.
Etiam porta sem malesuada magna mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.
Inline HTML elements
HTML defines a long list of available inline tags, a complete list of which can be found on the Mozilla Developer Network.
To bold text, use <strong>.
To italicize text, use <em>.
Abbreviations, like HTML should use <abbr>, with an optional title attribute for the full phrase.
Citations, like — Mark otto, should use <cite>.
Deleted text should use <del> and inserted text should use <ins>.
Superscript text uses <sup> and subscript text uses <sub>.
Most of these elements are styled by browsers with few modifications on our part.
Heading
Vivamus sagittis lacus vel augue rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Code
Cum sociis natoque penatibus et magnis dis code element montes, nascetur ridiculus mus.
Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa.
Gists via GitHub Pages
Vestibulum id ligula porta felis euismod semper. Nullam quis risus eget urna mollis ornare vel eu leo. Donec sed odio dui.
Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec sed odio dui. Vestibulum id ligula porta felis euismod semper.
Lists
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
Donec id elit non mi porta gravida at eget metus.
Nulla vitae elit libero, a pharetra augue.
Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue.
Vestibulum id ligula porta felis euismod semper.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Maecenas sed diam eget risus varius blandit sit amet non magna.
Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis.
HyperText Markup Language (HTML)
The language used to describe and define the content of a Web page
Cascading Style Sheets (CSS)
Used to describe the appearance of Web content
JavaScript (JS)
The programming language used to build advanced Web sites and applications
Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam quis risus eget urna mollis ornare vel eu leo.
Images
Quisque consequat sapien eget quam rhoncus, sit amet laoreet diam tempus. Aliquam aliquam metus erat, a pulvinar turpis suscipit at.
Tables
Aenean lacinia bibendum nulla sed consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Name
Upvotes
Downvotes
Totals
21
23
Alice
10
11
Bob
4
3
Charlie
7
9
Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Nullam quis risus eget urna mollis ornare vel eu leo.
So a while back I bought a PogoPlug that was on sale: $40 for a little
1.2GHz server w/256MB RAM, 512MB flash and 4 USB ports. Such a deal!
These instructions got me Debian, and I named the thing Kaboing.
I thought I'd set up our websites on it, get rid of the noisy old P4 I
had. Then it sort of fell by the wayside...
...until the Great Electrical Anomoly/Hardware Harvest of 2012
(the Mayans tried to warn us!). Now I'm hosting stuff at Linode, and
it's time to get working on this.
Right now I've got three USB flash drives attached to the thing: 1GB
for swap and root, 512MB for /var/lib/mysql, and 2GB for home. This
is a tight fit, especially the root; I've got about 100MB free there
after excluding man pages, documentation and the like. Mind you, this
does give me the usual stuff I'd put on a server: Emacs, LAMP,
dstat, yadda yadda. (Man, remember when...)
I've also got an external 500GB hard drive that I've been using for
backup (and which saved my ass when the P4 broke), and I plan on using
that more. Home directories, definitely; MySQL possibly too. I'm
worried about wearing out the random USB drives I've thrown into this
thing, or silent corruption of the files stored on it. (That might be
silly.)
The load on the machine is something I'll have to think about. I've
decided on Nginx for the server -- good chance to get familiar w/it --
but I think I might stick Squid or some such in front of it. My site
is static, but my wife's and my sister-in-law's are
Wordpress sites, and I think I'll notice a real slowdown there if I'm
not careful. (Though my wife just announced that she's quitting
her blog, at least for now...sniff...double shame, 'cos her site
easily got 10x the traffic mine ever did. :-))
Anyhow...I keep reminding myself I can take my time with this.
Jekyll is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From the project's readme:
Jekyll is a simple, blog aware, static site generator. It takes a template directory [...] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub.
At $WORK I'm slowly migrating our website to a new server. I came up
with a Small but Useful(tm) program called Thornhill to help; it
looks at Apache Alias directives, then queries both the old and the
new server to make sure the results are the same. Since the new
server doesn't have DNS pointed at it yet, this requires some
trickery.
I'm using Perl's WWW::Mechanize module to do this, and after some
thought I figured I could just add a new Host: oldhost.example.org
header to the request. And that works; even though the request is going
to the new host, it's still asking for the URL of the website. IOW,
it's querying it as though it were live. And lo, my tests came back
mostly passing, and there was much rejoicing.
Except that I noticed I was getting redirects for some things. Which
makes sense -- /java_app should probably go to /java_app/, and
then to /java_app/home.html?jsessionid=666. But those go to the
current, live site:
Request goes to test site: http://newhost.example.org/java_app, but
with Host: oldhost.example.org
New site redirects to http://oldhost.example.org/java_app/
Script follows the redirect and sends the request directly to
oldhost...the production one that I already know is working.
So basically Thornhill works up until the point where it gets
redirected. ARGHH.
In theory I can override this in the module, but this turns out to be
surprisingly difficult. And WWW::Mechanize has a TODO list a mile
long, including an option to not follow redirects. And I ran into
the same dang bug I ran into five years ago.
I'm trying Python now. But I'm starting to wonder if I should just
abandon this approach and fiddle with the /etc/hosts file or
something. This is getting...tedious? finicky? ridiculous? Something.
Last night I noticed that my MythTV box wasn't up, so I turned it
on. I decided it would be a good time to do some work on it that I've
been putting off for a while. Ten minutes later, I rebooted to test
it...and spent the next ten minutes listening to whiiiir whiiiir beep
click click click, over and over again.
Digging through this blog, turns out I actually bought this thing in
April 2005...so it has lasted a good long time. (Cue guilt about
burning through natural resources and other people's pain.) I'll have
to see if I can get it going again.
Last Wednesday we had a power outage at home; it managed to take out
the aging P4 I used to host this site (and be my firewall; bad
sysadmin! no donut!). The only monitor I had in the house had
given up the ghost some time ago, so I was left unable to figure out
why the damn thing wouldn't boot.
Fortunately I'd been backing up to an external hard drive, so the
recovery plan went like this:
Drive to London Drugs, buy random cheap wireless router, drive home
They've saved my butt before, and as before I couldn't be happier
with them. God's own bandwidth to Debian mirrors, and the machine
feels fast as anything. 512 MB RAM and 20 GB disk space for
$20/month. I really, really wish they were hosting in Canada; I'd be
seriously tempted to stay w/'em for the long run. But as it is, I
think I'm going to get working on getting that PogoPlug running my
sites.
Shame about the timing of the outage, since I was building some
serious momentum in writing here. But I'll keep plugging away.
Mark Burgess was kind enough to respond to my earlier post about
Cfengine syntax:
markburgess_osl: @saintaardvark (soothing) Syntax is definitely an
acquired taste (re perl ;)). The list-ref prob can go away
soon. Think doc not code 4 cf3
saintaardvark: .@markburgess_osl Heh, thanks for the reply -- I
was going to ask you about this. Fair pt re: syntax being an
acquired taste...[1/2]
saintaardvark: .@markburgess_osl ...but any chance the mess of
brackets will be reduced? [2/2]
markburgess_osl: @saintaardvark trade one set of () for -> Don't
see much point in that. $() has long precedence in sh / make
etc. It delimits clearly in txt
saintaardvark: .@markburgessosl Fair enough, but I'm also
thinking of eg "$(services.cfgfile[$(service)])": dollar
bracket scopedot square dollar bracket
markburgess_osl: @saintaardvark I agree it's clumsy, but it's also
an edge case. You rarely write this if you make good use of
patterns. Perl also ugly here.
That last point: what I mean is that the whole appeal of that
layout (pattern/whatever) was that you could just say
fix_service('foo'), and The Right Thing(tm) would happen. Now I
have to rethink this; it seems to mean either having lots of bundles
like "fixntp", "fixautofs", etc -- with lots of sections like:
...or else having separate "fix_service" bundles for each class.
(Forgive me, I'm thinking about all this w/o having a Cf3 instance to
play with in front of me.)
I'm trying not to sound whiny here; I'm grateful for Cf3, for the
documentation (which is pretty extensive), and that Mark took the
time to respond. But this is frustrating.