Clint Adams: compmatch S.O.S.


If changes to the source code are made that are not specific to the needs of the Debian system, they should be sent to the upstream authors in whatever form they prefer so as to be included in the upstream version of the package.And our source format shows how important marking the difference is to use: We have explicit .diff.gz files to contain them. The differences are not hidden in same Version Control System (like BSD) or in propretary formats (ever tried to unpack a .srpm without rpm or without downloading some magic perl script?), but in a simple universal understandable format. That said, please remember we are a distribution. Our priorities are our users and not the whims of software authors. We have to find the middle ground between harmful and necessary changes. Patching software to abide the FHS, to allow the user choose their editor or browser in an common way or any other thing to form a coherent set of packages is no bug in Debian, it is a bug in upstream to not allow this at least via some configure option. We have neither the manpower nor the job to rewrite and fork stuff to a usable state, though. Thus we have to keep to upstream and hope they will include our modifications or forward-port them to every new release. Thus, we need both: We need to patch (and in general, the worse the software from a distribution's point of view or from a general point, the more of this we need. This does not necessarily hold in the other direction, though.). And we need and want to show what we change. So our users can find out how exactly the software we ship is different. And so other people dealing with the same software can profit from our changes. (After all, free software is about "giving back" a lot.). And of course maintainer change over time and we want the new one understands what the previous one did. That said, there is of course things that can be improved. But as with all improvements there are things that improve and there are things where nothing is worse than good intentions. Adding more thing to keep in sync is almost always a bad thing in the long run. The easiest way to keep things accessible is to use stuff actually used. I think any additional place to track patches will be futile. A good interface to view the .diff.gz files in our archive in some browser, on the other hand, could hardly get unuseful. The format of a single .diff.gz is of course also improveable. Things like a quilt-like standardized patch series look like a very good idea to me. But the format is of course also very downgradeable. Storing VCS formated information for example, tempting as it is, spoils two very important points:

![Photo [SNR Event Welcome Slide]](http://mjr.towers.org.uk/writing/reflections/attachments/snrevent.jpg)
Anyone seen this before?
Today, I went to an event about the
Sub-National Review Consultation
(as a substitute for someone else AIUI).
I'd not heard about this before, but if
you're in England and you've any interest
in our regional planning system (which I
think you should, if you have
your main home here or run a business here),
you have six weeks left to comment on the
UK Government's suggested changes.
As I understand it, it will move the
second-highest tier of planning control
from democratically-accountable
regional bodies
to the business-led
Regional Development Agencies, with some
oversight by MPs and the very- indirectly-accountable council leaders.
I've posted
more detail on Co-opNet.
When I asked about local involvement and cooperatives, I was directed towards Local Strategic Partnerships, but I'm pessimistic about how easy it will be to influence regional planning through those: a few weeks ago, I was at the launch of the
North Somerset Partnership
Sustainable Community Strategy for 2008-2026.
It's a 72-page A4 glossy book
which I've still not found time to read
properly. I think the size says something
about its sustainability.
I've posted
a little more detail on WsMForum.
I'll try to answer questions about
either of them on this blog or those forums...
MaxClients and ThreadsPerChild settings from the default
configuration.
On a typical apache2 installation on a Debian system, the worker MPM
configuration looks like this:
<IfModule mpm_worker_module>
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Using these default settings on a resource-constrained system (say a server
with 128MB of RAM but with no swap) would be overkill, and the web server
processes will definitely eat up all of that memory, leaving little or no room
for even simple CGI scripts.
In my setup, I experimented with tweaking the values above to get apache2 to
serve without eating up too much precious memory. I found that the important
values to consider here are MaxClients, which dictate how many clients can
connect simultaneously to my server, and ThreadsPerChild, which specifies how
many threads of execution can run in a child/worker process. My resulting
config becomes:
<IfModule mpm_worker_module>
MaxClients 15
MinSpareThreads 3
MaxSpareThreads 7
ThreadsPerChild 3
MaxRequestsPerChild 200
</IfModule>
With this setup, I free up a significant amount of RAM from apache2's hold whle
maximizing my thread usage in each worker process; at the same time, I avoid
keeping each child process for too long by setting a maximum number of requests
each worker can serve, preventing the workers to bloat too much when handling
CGI.
I also tweaked the KeepAliveTimeout setting to just 2 seconds (instead of the
default 15) so that each worker process can go to the next request quickly and
preventing them from being tied up to a connection for too long. I also set
the Timeout to 30 seconds.
My previous entry features the first ever comment on this blog to arrive over IPv6. Fantastic! I guess this will be the final breakthrough that the protocol needed!!
Some of you might have noticed that in the recent weeks I wasn't active at all online. This was because I was on a vacation in Italy. On the way back I was eager to write about my experiences, but after entering Romania, I found out that may parents had been involved in a motorcycle accident due to a careless driver.public_html. As far as I can see this causes no security issues --- but if some turn up then it may change!Current directory structure isblog/ ->
config.py Configuration file
drafts/ -> draft entries
sources/ -> sources where required
entries/ -> format of entries is "string"-"date"
flavours/ -> not tutti-fruity!
plugins/ -> actual plugins used
style/ -> stylesheets and images
index.cgi -> pyblosxom.cgi renamed
.htaccess -> for apache2
Any and all of these files (except drafts) can be examined by extending the URL http://www.imsc.res.in/~kapil/blog by the file or directory name.The development of my web pages is done on my user machine and these are synchronised with the "real" web pages using unison. The local copy of my web pages is managed using git.The plugins were downloaded from the pyblosxom web site.The flavour was downloaded from snarfed.org.Since everything about this blog is visible, there is probably no need to document things further.pyblosxom. This meant that it took a while for me to set things up.The apache2 web server behaved rather differently from mathopd. In particular, the latter does not need or use .htaccess files and just declaring that index.cgi was the a CGI script and was the "index file" for the blog/ directory was enough for the blog to start working. However, I had to struggle with apache2 as it needed "Rewrite*" entries in the .htaccess file in order to pick up the style sheets and the blog pages.
I usually don't like me too comments... But this is something that really disappoints me of my otherwise-favorite development framework. I must echo Matt Palmer's comment on Luke Kanies' entry:
Those of you who know me might be aware that I have a fondness for cool and neato hardware which is possibly a tiny bit above that of the average geek. I have more nodes on my ThinNet than on my TP network, for example.
Back in February, I had the random idea to call SGI Norway and ask them if they had anything they were about to throw out. I knew that they were working hard on moving from MIPS to Itanium, so perhaps some hardware was disappearing along the way.
Oslo didn’t have anything, but when I called Bergen I found out that they were about to throw out a large amount of hardware, including some really nice boxes like an Onyx2 deskside workstation, and some Origin systems. For those of you who aren’t into SGI machines, I can sum it up by saying that these are really cool computers: Big, noisy as hell, heavy, and in terms of performance, nearly on par with a normal desktop nowadays. In short, fantastic educational toys.
So, this was in February, and we were making arrangements for transport to Oslo, until one day I stopped receiving mail. I didn’t think much of it; email is asynchronous, and I figured he was busy doing something else. I was certainly very eager to get at the machines, but didn’t feel like nagging at him either. Finally, recently I sent him a polite reminder, and I get the rather rude response:
Diagnostic code: smtp;550 cuda_nsu 5.7.1 <****@sgi.com>: Recipient address rejected: THIS USER IS NO LONGER WITH SGI. CONTACT help@sgi.com IF YOU NEED INFO.
I tried calling the Bergen office, but the number was out of service. So I call the Oslo office - and I am told the Bergen office has been shut down, and all the equipment has been thrown out.
This is the bummer of the century, for two main reasons:
When I look at how people are using the net, I see a spectrum...
At the low end, there are users who browse, and maybe post stuff to sites
like flickr or youtube or wikipedia. When I hang out with these people, I'm
struck by them being often quite smart, savvy, capable (and young), and
wasting a lot of their time and inginuity fitting what they want to do into
these narrow and (mostly) corporate-controlled and censored channels. And
being limited by it in ways that they're not fully aware of. If you're in
this group, please, please consider finding a way up the spectrum.
At the high end are tecchies like me, we have at least one and often
multiple servers, sometimes even in different countries/continents. We can
write and run our own software with full control. This excellent advogato
article calls it the "sovereign"
level. We're not exactly kings when you look at who controls things from
DNS to the internet backbone, but we're as close as it's practical to be
without running your own wires. And we're statistically vanishingly few
these days.
So the middle is more and more interesting. For one thing, being king is
expensive. So some of us move down a level, to virtual
servers with xen or the like. Maybe we can't build our own kernel on our
server anymore, but we don't have to worry about maintaining spinning disks
and fans. And some people move up to this level too. One path is learning
about running linux on a personal machine and then using an easy and cheap
provider like slicehost. But still, users at this
level are rare.
The other interesting level (and the one I've not explored much myself) is a
step up from the low end, where you have some form of inexpensive
shared hosting, but can at least run your own code. This level seems quite
a mess, there is no standardisation, everything has to be set up by hand,
unless you use prepackaged control panel type things that probably take
away most of the empowerment available at this level. A lot of people reach
this level, but it's still fractions of a percent.
So there seems quite a hump up from the lowest end of the empowerment
spectrum to using shared hosting. How to encourage people over that hump is
an interesting problem.
Ooops. When a room full of computer equipment gains a strong smell, there are a couple of possibilities (!) but the characteristic odour of singed electronics and lack of video output on one box is fairly indicative and all I could do was turn off the power on the UPS.
Practically ever since Jeff and I released
littler to add easy scripting for
R, questions popped up about how to support getopt-alike
command-line parsing.
And as of today, a new package r-cran-getopt is in Debian.
It provides Allen Day's recently released package
getopt from
CRAN which provides a new function getopt.
Given a suitable data structure that provides long and short-form command-line option names, whether
arguments are mandatory, optional or not required (as for flags), and a data-type,
getopt munges the command-line arguments supplied by the user and fills a new variable
opt accordingly. If a fifth columns with help text is provided, a usage string can be
generated as well.
Thanks to Allen for writing getopt, for accepting a quick two-line patch extending support from
Rscript to littler, and for fixing one or two minor bugs. Thanks also to the Debian ftpmasters for
adding r-cran-getopt within a few days.
So I wrote an entry on my tumblelog about what s going on with my life currently. Since Tumblr s feed doesn t get pushed immediately, I showed the post to my co-worker and friend Chris, before it hit the planets:
- So, yeah I have my blog since it s syndicated on Planet Debian and other small feed aggregators -I said.
- But do they really care about your bike, your chess games or you attending that conference? -he asked-, I mean, I do care, but people?
- Well -I replied after a quick thought-, I think that s how personal blogs work.
After a deeper thought I just realized that indeed no one cares and deleted the entry before it was pushed to the feed, updating it on FeedBurner, etc. It was a nice awakening.
May 1st is a holiday in many countries around the world - It is, at least, here in Mexico. So, what's a man to do when faced with really-crappy network connectivity at home?
We face automobile traffic with our naked bodies as the best way of defending our dignit and exposing the unique dangers faced by cyclists and pedestrians as well as the negative consequences we all face due to dependence on oil, and other forms of non-renewable energy.Of course, Mexican groups take part in this interesting activity - Ciclomarcha nudista.

reportbug project on Alioth, Sandro Tosi and Y Giridhar Appaji Nag, who seem to be enthusiastic about working through the big backlog of bug reports and wishlist requests associated with the package. Since my Debian-related interests are largely elsewhere these days, mostly focused on R stuff that has a more tangible relationship with my research (and by extension my future job mobility and/or tenurability) and a few other infrastructural things in Debian (primarily LSB support and printing), I think this is a good development overall. But still, when you’ve been hacking away at something for almost nine years it’s hard not to develop a bit of a sentimental attachment to it. I still plan to be doing some hacking away at reportbug, but hopefully the new blood can take the lead in terms of day-to-day maintenance while I work on some of the desperately-needed code refactoring issues with the software.
Next.