Search Results: "will"

11 March 2010

Martin F. Krafft: Splitting puppetd from puppetmaster

My relationship with Puppet is one of love and hate. I am forced to use it simply because there is no better tool around, but I hate it in so many ways that I don t even want to start to enumerate (hint: most have to do with Ruby, actually). Today I decided to put an end to one thing that has been driving me insane: the fact that puppetd (the client) and puppetmasterd (the server) use the same working directory, /var/lib/puppet. Since I consider and would like to treatthe machine on which puppetmasterd is running just another puppet client, I was running into funky issues related to SSL certificate confusion, obscure errors, and SSL revocation horrors. The following hence assumes that you have installed or are planning to install puppetd on the machine running your puppetmaster, and that you have two fully-qualified domain names for the machine. For instance, I run puppetmaster on vera.madduck.net, and puppetmaster.madduck.net is an alias for the same machine. I ll use these names in the following as examples. The following may be Debian-specific, as I am solely using the puppet and puppetmaster packages for my experimentation and verification. Your mileage may vary, but the concept shall be the same.
  1. Stop everything:
    /etc/init.d/puppetmaster stop
    /etc/init.d/puppet stop
    
    
    (also verify that you have not instructed cron to restart these services)
  2. Rename the working directory:
    mv /var/lib/puppet /var/lib/puppetmaster
    
    
    and amend /etc/puppet/puppet.conf accordingly:
    [main]
    #  
    vardir=/var/lib/puppetmaster
    ssldir=$vardir/ssl
    #  
    [puppetmasterd]
    certname=puppetmaster.madduck.net
    #  
    
    
    I am doing this in [main], planning to override it for puppetd later, because puppetd is the only program which makes sense to be separated from the rest. Since only the puppetmaster needs a special certificate name, that is set specifically in the [puppetmasterd] section. If you use apache2 or nginx in front of your puppetmasters, make sure to amend the SSL file locations in the virtual host definition and restart (!) the service. You can verify that the configuration has been amended by making sure that there is no output from the following command:
    # puppetmasterd --genconfig   grep -q '/var/lib/puppet/' && echo SOMETHING IS WRONG
    
    
  3. Now restart puppetmaster:
    /etc/init.d/puppetmaster start
    
    
    and verify that it starts. If your puppetmaster previously ran under a different name, it will create itself a new certificate and sign it. Since the client will get its own working directory (and thus a new SSL certificate), you want to remove all records of the old certificate:
    # puppetca --list --all
    + puppetmaster.madduck.net
    + vera.madduck.net
    # puppetca --clean vera.madduck.net
    
    
  4. Change the configuration file to tell puppetd about its working directory:
    [puppetd]
    server=puppetmaster.madduck.net
    vardir=/var/lib/puppetmaster
    ssldir=$vardir/ssl
    #  
    
    
    This you can verify with the following command, which should not print anything:
    # puppetd --genconfig   grep -q '/var/lib/puppet[^/]' && echo SOMETHING IS WRONG
    
    
  5. Now install puppet, or (re)start it if it s already installed:
    # /etc/init.d/puppet stop
    # puppetd --no-daemonize --onetime --verbose --waitforcert 30 &
    info: Creating a new SSL key for vera.madduck.net
    warning: peer certificate won't be verified in this SSL session
    info: Caching certificate for ca
    info: Creating a new SSL certificate request for vera.madduck.net
    # puppetca --list
    vera.madduck.net
    # puppetca --sign vera.madduck.net
    notice: Signed certificate request for vera.madduck.net
    notice: Removing file Puppet::SSL::CertificateRequest vera.madduck.net at '/var/lib/puppetmaster/ssl/ca/requests/vera.madduck.net.pem'
    # fg
    info: Caching certificate for vera.madduck.net
    info: Caching certificate_revocation_list for ca
    [ ]
    # puppetca --list --all
    + puppetmaster.madduck.net
    + vera.madduck.net
    # /etc/init.d/puppet start
    
    
    Do yourself the favour and check that it s all working.
  6. Optionally, you can now clean up the client stuff in the server s working directory, for instance like this (it worked for me, but this is the sledgehammer approach):
    # /etc/init.d/puppetmaster stop
    # cd /var/lib/puppetmaster
    # tar -cf /tmp/puppetmaster.workingdir-backup.tar .
    # find ../puppet -type f -printf '%P\n'   xargs rm
    # /etc/init.d/puppetmaster start
    
    
  7. If you stopped cron before (and your puppet recipes have not since restarted it):
    /etc/init.d/cron start
    
    
All done. I wish puppet, or at least Debian s puppet packages would do this by default. Please let me know if the above conversion works for you. Then I might start working on an automated migration. NP: Genesis: Selling England by the Pound

Biella Coleman: Libre Planet

There was a plug for an up and coming conference in my last post but it was a bit buried and it deserves a bit more attention: the Libre Planet Conference in Cambridge, MA. It is fast approaching but there are still spots, student rates, and funding for female attendees. Though I can t go as I will be out of town, this seems like it will be a great event: excellent speakers, lots of interesting folks, and I am sure a fantastic set of discussions.

Biella Coleman: Libre Planet

There was a plug for an up and coming conference in my last post but it was a bit buried and it deserves a bit more attention: the Libre Planet Conference in Cambridge, MA. It is fast approaching but there are still spots, student rates, and funding for female attendees. Though I can t go as I will be out of town, this seems like it will be a great event: excellent speakers, lots of interesting folks, and I am sure a fantastic set of discussions.

Steve McIntyre: Flights booked for DebConf

Going to DebConf 10 I'll be there, and so will Jo for the first time. Be nice to her, please? :-)

Jaldhar Vyas: 7DRL Challenge - day 4-5

So I've got combat, I've got basic potions that restore health and I've got items such as weapons or shields which can affect your combat stats. Try as I might, I cannot get ncurses to give me a yellow background for some unfathomable reason. It just comes out brown no matter what. Ironically, in the next Konsole over, I have the alpine ncurses-based mua taunting me with a yellow background. I'll look in its source (yay open source!) to see how its done sometime but for now brown will have to do. C++ is proving a joy to work with as always. Ok It's probably just me; I use it so infrequently, I keep having to relearn how to do multiple inheritance and abstract base classes each time. I am rather proud of figuring out how to access class members from a signal handler without having to look it up. Now if I can quickly tie up some loose ends, I can spend the last two days maybe making the dungeon generation more roguelike.

Gunnar Wolf: Boogie el Aceitoso Oily Boogie

Today I took a break before my usual lunchtime to go to the movies Boogie el Aceitoso was on at 13:00 (and not at the more usual, late screenings). Oily Boogie is a great antihero drawn by the much beloved Roberto El Negro Fontanarrosa, a very widely known Argentinian humorist/cartoonist. I got acquinted with Boogie as during the 80s-90s my parents were asiduous readers of Proceso, a weekly political analysis magazine which included one of his cartoons at the last page. Boogie is a pathological ex-Vietnam, ex-Laos ex-El Salvador, ex-Gulf War, ex-(whatever comes next) USA soldier, who deals with the local mafias whenever he is not active. Brutal, often seen as inhuman. I remember reading it without really understanding its nonsensical violence at first. And, as I said, Fontanarrosa is a very loved cartoonist - In Mexico I think we were much more acquinted with Boogie than with Inodoro Pereyra, and still, Fontanarrosa's death in 2007 was very heartfelt here. About the movie: I found it to be very good, of course, knowing what to expect. Most lines are short, screen adequations of various cartoons along Boogie's long life as a thug. I specially liked the animation technique I know very little about the subject, but it mixed quite naturally and constantly obvious still, cartoony characters with vivid, photo-based items. It creates a completely believable atmosphere inside the absolute amoral, selfish and (fortunately!) grossly exagerated and impossible world of Boogie. I sometimes feel somewhat stupid when writing in English for a mostly Spanish-speaking audience Still, if you see Boogie in a movie theater, don't hesitate and go. As always, with non-top-selling, non-Hollywood movies, it is quite probable it will not be showing for long.

Dirk Eddelbuettel: RcppExamples 0.1.0

Version 0.1.0 of RcppExamples, a simple demo package for Rcpp should appear on CRAN some time tomorrow. As mentioned in the post about release 0.7.8 of Rcpp, Romain and I carved this out of Rcpp itself to provide a cleaner separation of code that implements our R / C++ interfaces (which remain in Rcpp) and code that illustrates how to use it --- which is now in RcppExamples. This also provides an easier template for people wanting to use Rcpp in their packages as it will be easier to wrap one's head around the much smaller RcppExamples package. A simple example (using the newer API) may illustrate this:
#include <Rcpp.h>
RcppExport SEXP newRcppVectorExample(SEXP vector)  
    Rcpp::NumericVector orig(vector);			// keep a copy (as the classic version does)
    Rcpp::NumericVector vec(orig.size());		// create a target vector of the same size
    // we could query size via
    //   int n = vec.size();
    // and loop over the vector, but using the STL is so much nicer
    // so we use a STL transform() algorithm on each element
    std::transform(orig.begin(), orig.end(), vec.begin(), sqrt);
    Rcpp::Pairlist res(Rcpp::Named( "result", vec),
                       Rcpp::Named( "original", orig));
    return res;
 
With essentially five lines of code, we provide a function that takes any numeric vector and returns both the original vector and a tranformed version---here by applying a square root operation. Even the looping along the vector is implicit thanks to the generic programming idioms of the Standard Template Library. Nicer still, even on misuse, exceptions get caught cleanly and we get returned to the R prompt without any explicit coding on the part of the user:
R> library(RcppExamples)
Loading required package: Rcpp
R> print(RcppVectorExample( 1:5, "new" )) # select new API
$result
[1] 1.000 1.414 1.732 2.000 2.236
$original
[1] 1 2 3 4 5
R> RcppVectorExample( c("foo", "bar"), "new" )
Error in RcppVectorExample(c("foo", "bar"), "new") :
  not compatible with INTSXP
R>
There is also analogous code for the older API in the package, but it is about three times as long, has to loop over the vector and needs to set up the execption handling explicitly. As of right now, RcppExamples does not document every class but it should already provide a fairly decent start for using Rcpp. And many more actual usage examples are ... in the over two-hundred unit tests in Rcpp.

Update: Now actually showing new rather than classic API.

10 March 2010

Peter Eisentraut: Looking for Free Hosting

I'm looking for a way to do free hosting. But I mean free as in freedom, not free as in beer. Let me explain.

When I'm using a piece of free and open-source software such as OpenOffice.org, Evolution, or anything else, I have certain possibilities, freedoms if you will, of interacting with the software beyond just consuming it. I can look at the source code to study how it works. I can rebuild it to have a higher degree of confidence that I'm actually running that code. I can fix a bug or create an enhancement. I can send the patch upstream and wait for the next release, or in important cases I can create a local build. With the emerge of new project hosting sites such as GitHub, it's getting even easier to share one's modifications so others can use them. And so on.

As a lot of software moves to the web, how will this work in the future? There are those that say that it won't, and that it will be a big problem, and that's why you shouldn't use such services. Which is what probably a lot of free-software conscious users are doing right now. But I think that in the longer run, resisting isn't going to win over the masses to free software.

First of all, of course, the software would need to be written. So a free web office suite, a free web mail suite that matches the capabilities of the leading nonfree provider, and so on. We have good starts with Identi.ca and OpenStreetMap, for example, but we'd need a lot more. Then you throw it on a machine, and people can use it. Now as a user of this service, how do I get the source code? Of course you could offer a tarball for download, and that is the approach that the AGPL license takes. One problem with that is, if you are used to apt-get source or something similar for getting the source, everyone putting a tarball on their web site in a different place isn't going to make you happy. A standardized packaging-type thing ought to be wrapped around that. Another problem is that even if you trust the site's operator that that's the source code that's actually running on your site (even without malice, it could for example be outdated against the deployed version), it probably won't contain the local configuration files and setup scripts that would allow me to duplicate the service. And if I just want to study how the program is running in actuality, there is not much I can do.

Giving everyone SSH access to the box is probably not a good idea, and won't really solve all the issues anyway. In the future, when virtualization is standardized, ubiquitous, and awesome, one might imagine that a packaging of a web service won't be "put these files on the file system and reload a daemon" but instead "put these files and this configuration on that machine and activate it". This might give rise to a new generation of Linux "distributors". Getting the source tarball or "source package" might then involve getting a snapshot of that image, which you can examine, modify, and redeploy elsewhere. That could work for OpenStreetMap, for example, modulo the space and time required for their massive database. (But you might chose to fork only the code, not the data.) But it won't be easy to do the right thing in many cases, because with a web service, there is usually other people's data on the machine as well, which would need to be masked out or something. Maybe this really can't be done correctly, and the future will be more distributed, like in the way Jabber attempted to supplant centralized services such as ICQ. Distributed web mail makes sense, distributed OpenStreetMap perhaps less so.

Ideas anyone? Does anyone perhaps have experiences with running a web service that attempts to give users the freedoms and practical benefits that are usually associated with locally installed software?

Filippo Giunchedi: welcome to ikiwiki

This was long due, I switched from pyblosxom to the marvelous ikiwiki and gave a general revamp to my website by tweaking ikiwiki's default templates. note: the template still needs a general cleanup, don't look at it as it is not pretty (nor are the CSSes) With some luck and mod_rewrite karma nobody's feed readers nor planets will be flooded. Comments are powered by disqus.

Biella Coleman: A Cultural Alibi of Sorts

There is an interesting conversation over at about the nature of peer production, and crowd based production over at PBS. Thankfully folks right off the bat noted that the types of activities they are addressing that range from 4chan to open source are so freaken distinct that perhaps it is not all that useful to use one moniker for them. The comments I am most fascinated by are danah s who notes:
We assume that the collective voice will be populist and, more importantly, that it will reflect the diversity of the populous. Yet, as we ve seen time and time again, certain values and attitudes and voices are over-represented in crowd-sourced activities. Who is looking out for those who aren t represented? In what ways are we reinforcing structural inequalities? What are the implications of this?
And then Clay s response:
So, to re-ask your question in a non-rhetorical way, under what
circumstances would we want to make the population of Deviant Art,
say, less white, or Linux less male, and if we wanted to do so, what
would need to happen?
What I find interesting about this discussion (and will be talking about this topic here, next week) is there not enough recognition of two related things: 1) the efforts are there (more on this soon) 2) that perhaps hacking and F/OSS in particular are not fully accessible to all and everyone because they are full-fledged, full-bodied, cultural worlds and all cultural worlds are to some degree not fully accessible and transparent for there are built on particularities, often invisible and unarticulated, forms of value. That is, just as some norms and values of Indo-Guyanese to take one random example, are not of my world, so too is hacking partially inaccessible for the fact that it is culturally configured. But I am starting to suspect that the culture-ness of these domains are often overlooked because they are overwhelmingly white, male, and chock full of computers (and so economically lucrative). All three, I suspect are (incorrectly) seen as lacking culture, as domains of rationality. (I stand rightly corrected and also forget this very fact, though I know it well from all the Brazil/Latin America Debconfs, as this diversity gets a bit lost from a pure US-European perspective, which I was assuming). Other historical factors have also produced certain distortions that don t allow us to see (easily at least) these worlds as culture-full. First is the fact that so many folks outside of this world lobbed onto F/OSS for being radical (and this is partially right in so far as its challenge to intellectual property can be seen as radical). But the portrayal or mere suggestion of these worlds as uber-democratic and populist, made people expect these groups to behave as radical egalitarian collectives. For the most part, they don t and yet never portrayed their own politics and forms of organization as such (openness comes in the form of code and technical merit). But this vision stuck and when some folks realized that larger projects, for example are very organized (which many people addressed only very late), have hierarchies (which are flexible and also allow them to function, which is I think is a good thing), and are not as diverse, there was deep disappointment that they did not conform to the sense that there was something extremely radical going on as opposed to a cultural group really into producing free software. But if I am offering a cultural alibi of sorts in which barriers to participation are to some degree a function of culture, one of the great things about the norms, values, ideas that compose culture is that there are dynamic and changing. They are alive and historical. They are pushed and pulled upon by insiders and outsiders based on wider social values. And there is an answer to these questions about diversity for there has been a dramatic, noticeable, and noteworthy push within this world, one that really started to coalesce I would say in the last year or so, to address these issues and it ranges from Python s mammoth efforts at addressing diversity (and I have been told that there was a great speech on the topic at Pycon recently), the geek feminism wiki, and smaller but increasingly common efforts such as Libre Planet s women s caucus and their funding of women to participate. So while I do think that culture goes at least part of the way to explain why these worlds are not fully open for culture limits this very domain has grown dissatisfied with its representational make-up and are leading some efforts for cultural change.

Biella Coleman: A Cultural Alibi of Sorts

There is an interesting conversation over at about the nature of peer production, and crowd based production over at PBS. Thankfully folks right off the bat noted that the types of activities they are addressing that range from 4chan to open source are so freaken distinct that perhaps it is not all that useful to use one moniker for them. The comments I am most fascinated by are danah s who notes:
We assume that the collective voice will be populist and, more importantly, that it will reflect the diversity of the populous. Yet, as we ve seen time and time again, certain values and attitudes and voices are over-represented in crowd-sourced activities. Who is looking out for those who aren t represented? In what ways are we reinforcing structural inequalities? What are the implications of this?
And then Clay s response:
So, to re-ask your question in a non-rhetorical way, under what
circumstances would we want to make the population of Deviant Art,
say, less white, or Linux less male, and if we wanted to do so, what
would need to happen?
What I find interesting about this discussion (and will be talking about this topic here, next week) is there not enough recognition of two related things: 1) the efforts are there (more on this soon) 2) that perhaps hacking and F/OSS in particular are not fully accessible to all and everyone because they are full-fledged, full-bodied, cultural worlds and all cultural worlds are to some degree not fully accessible and transparent for there are built on particularities, often invisible and unarticulated, forms of value. That is, just as some norms and values of Indo-Guyanese to take one random example, are not of my world, so too is hacking partially inaccessible for the fact that it is culturally configured. But I am starting to suspect that the culture-ness of these domains are often overlooked because they are overwhelmingly white, male, and chock full of computers (and so economically lucrative). All three, I suspect are (incorrectly) seen as lacking culture, as domains of rationality. (I stand rightly corrected and also forget this very fact, though I know it well from all the Brazil/Latin America Debconfs, as this diversity gets a bit lost from a pure US-European perspective, which I was assuming). Other historical factors have also produced certain distortions that don t allow us to see (easily at least) these worlds as culture-full. First is the fact that so many folks outside of this world lobbed onto F/OSS for being radical (and this is partially right in so far as its challenge to intellectual property can be seen as radical). But the portrayal or mere suggestion of these worlds as uber-democratic and populist, made people expect these groups to behave as radical egalitarian collectives. For the most part, they don t and yet never portrayed their own politics and forms of organization as such (openness comes in the form of code and technical merit). But this vision stuck and when some folks realized that larger projects, for example are very organized (which many people addressed only very late), have hierarchies (which are flexible and also allow them to function, which is I think is a good thing), and are not as diverse, there was deep disappointment that they did not conform to the sense that there was something extremely radical going on as opposed to a cultural group really into producing free software. But if I am offering a cultural alibi of sorts in which barriers to participation are to some degree a function of culture, one of the great things about the norms, values, ideas that compose culture is that there are dynamic and changing. They are alive and historical. They are pushed and pulled upon by insiders and outsiders based on wider social values. And there is an answer to these questions about diversity for there has been a dramatic, noticeable, and noteworthy push within this world, one that really started to coalesce I would say in the last year or so, to address these issues and it ranges from Python s mammoth efforts at addressing diversity (and I have been told that there was a great speech on the topic at Pycon recently), the geek feminism wiki, and smaller but increasingly common efforts such as Libre Planet s women s caucus and their funding of women to participate. So while I do think that culture goes at least part of the way to explain why these worlds are not fully open for culture limits this very domain has grown dissatisfied with its representational make-up and are leading some efforts for cultural change.

Enrico Zini: Firefox and automatic proxy configuration

Firefox and automatic proxy configuration Firefox supports automatic proxy configuration, which means that if you plug your laptop on a network with a properly set up proxy server, it will automatically reconfigure itself to use it. Oddly enough, however, it requires garbage collection when you then plug it back on a network without proxy, in order not to get "proxy not found" errors.

Sylvain Le Gall: LLVM, OCaml and Debian

I hope some people from the OCaml community will enjoy this changelog, extracted from llvm 2.6-7, which has just been uploaded:
  [ Arthur Loiret ]
   
  [...]
  [ Sylvain Le Gall ]
  * Build a libllvm-ocaml-dev package, which contains the OCaml binding:
    Closes: #568556.
    - debian/debhelper.in/libllvm-ocaml-dev. dirs,doc-base,install,META : Add.
    - debian/control.in/source: Build-Depends on ocaml-nox (>= 3.11.2),
      ocaml-best-compilers   ocaml-nox, dh-ocaml (>= 0.9.1).
    - debian/packages.d/llvm.mk:
      + (llvm_packages): Add libllvm-ocaml-dev.
      + (libllvm-ocaml-dev_extra_binary): Define, install META file.
    - debian/rules.d/binary.mk: Add dh_installdirs and dh_ocaml.
    - debian/rules.d/vars.mk:
      + include /usr/share/ocaml/ocamlvars.mk.
      + Configure with --with-ocaml-libdir=$(OCAML_STDLIB_DIR)/llvm.
  * debian/rules.d/build.mk: Fix symlinks pointing to the $DESTDIR.
In other words: LLVM is now built with its OCaml bindings and a META file for findlib. It will take some days before reaching every architectures, but hopefully it will be in Squeeze (next Debian stable release). Thanks to Arthur Loiret for the quick upload.

John Goerzen: Numerous Updates

It s been awhile since I ve posted some family/home updates, so here they are, sorta random-like Jacob is 3.5 now, and Oliver is about 8 months old at this point. Jacob Jacob has a few trends going on lately: pretending to be a cat, and inventing new games to play. He has one game he likes to play with me called tunnels and slippers. He will have me sit on the couch, put my feet up on the footstool, and crawl on top of my legs. He ll want me to bounce him, then he can crawl underneath the tunnel. The slippers part came because he started to steal my slippers one time during winter. He d struggle furiously to get it off, then shriek with delight as he ran away, listing to my indignation at having a cold foot now. Then I was supposed to run after him, pick him up in the air, and get the slipper back. Here he is, trying to steal a slipper while I happened to be holding a camera: img_2345.jpg He s said quite a few memorable quotes this winter: Dec. 8: Jacob looked outside this morning and yelled, WOW! Look at that! , ran across the room and yelled, MOM! WOW! There is snow outside this window too! WOW! Snow is ALL OVER THE PLACE! January: When told his grandparents were going back to Indiana: The kitty doesn t like that. (the pretending to be a cat thing) The next morning when he remembered they were gone: Oh. My kitty is so very sad now. February: My name is kitty. Jacob Cat! March: I didn t realize the basketball could go so far! He s been starting to make his first attempts at sounding out words. He s been interested in 2- and 3-digit numbers, trying to figure out how to tell time, and asking me the German words for all sorts of things. (And showing some disappointment with my German vocabulary.) Jacob talks about Oliver as a sweet baby, and is often very caring about him. Jacob wants to make sure Oliver has *plenty* of toys. Though there have been some times when Jacob has pushed Oliver over. Here s the Christmas photo of the two of them: img_2367r And another: img_2357.jpg Jacob has also started to pick up an interest in singing: his favorite song is one that he made up, and it goes Engine, engine, passenger car I still sing a song to Jacob at bedtime each night, but Home On the Range doesn t cut it anymore. No, now I have a make up a song on the spot on a topic of Jacob s choosing each night. Last night he chose a song about the ceiling light and the smoke detector. Other nights, it s been about his toy butterfly, his night light, various smoke detectors (that s a popular one), or something from his day. Oliver img_2371.jpg Oliver recently has started being able to sit up by himself. He can also scoot all over the room. I think he s saying dad , but Terah disagrees and thinks he s just babbling. Her case wasn t helped the day I asked him, Are you saying Dad? He got a big smile after the question and laughed at me. He loves playing peek-a-boo, playing with us or playing by himself. Oliver has been eating the mashed-up baby food for awhile. Terah recently gave him a rice puff, and he put it in his mouth but wasn t sure what to do with it. He has been taking quite an interest in watching the rest of us eat, though, and sits at the table with us in his high chair.

MJ Ray: SPI March 2010

The meeting agenda is already posted for tonight s (Wednesday s) SPI board IRC meeting which will be at 2000 UTC. It s another pretty lean meeting, with only some minutes to approve, so why not come along and let the board know what you think they should be doing to promote free and open source software? ;-)

Dirk Eddelbuettel: Rcpp 0.7.8

Version 0.7.8 of the Rcpp R / C++ interface classes is now on CRAN and in Debian. As of right now. Debian has already built packages for eight more architectures; and CRAN has built the Windows binary. Oh, and cran2deb had Debian packages for 'testing' before I was done with the blog entry. This is a minor feature release based on a over three weeks of changes that are summarised below in the extract from the NEWS file. Some noteworthy highlights are The full NEWS entry for this release follows:
0.7.8   2010-03-09
    o	All vector classes are now generated from the same template class
    	Rcpp::Vector<int rtype="RTYPE"> where RTYPE is one of LGLSXP, RAWSXP, STRSXP,
    	INTSXP, REALSXP, CPLXSXP, VECSXP and EXPRSXP. typedef are still 
    	available : IntegerVector, ... All vector classes gain methods 
    	inspired from the std::vector template : push_back, push_front, 
    	erase, insert
    	
    o	New template class Rcpp::Matrix<rtype> deriving from 
    	Rcpp::Vector<rtype>. These classes have the same functionality
    	as Vector but have a different set of constructors which checks
    	that the input SEXP is a matrix. Matrix<rtype> however does/can not
    	guarantee that the object will allways be a matrix. typedef 
    	are defined for convenience: Matrix<intsxp> is IntegerMatrix, etc...
    	
    o	New class Rcpp::Row<int rtype="RTYPE"> that represents a row of a matrix
    	of the same type. Row contains a reference to the underlying 
    	Vector and exposes a nested iterator type that allows use of 
    	STL algorithms on each element of a matrix row. The Vector class
    	gains a row(int) method that returns a Row instance. Usage 
    	examples are available in the runit.Row.R unit test file
    	
    o	New class Rcpp::Column<int rtype="RTYPE"> that represents a column of a 
    	matrix. (similar to Rcpp::Row<int rtype="RTYPE">). Usage examples are 
    	available in the runit.Column.R unit test file
    o	The Rcpp::as template function has been reworked to be more 
    	generic. It now handles more STL containers, such as deque and 
    	list, and the genericity can be used to implement as for more
    	types. The package RcppArmadillo has examples of this
    o   new template class Rcpp::fixed_call that can be used in STL algorithms
	such as std::generate.
    o	RcppExample et al have been moved to a new package RcppExamples;
        src/Makevars and src/Makevars.win simplified accordingly
    o	New class Rcpp::StringTransformer and helper function 
    	Rcpp::make_string_transformer that can be used to create a function
    	that transforms a string character by character. For example
    	Rcpp::make_string_transformer(tolower) transforms each character
    	using tolower. The RcppExamples package has an example of this.
        
    o	Improved src/Makevars.win thanks to Brian Ripley
    o	New examples for 'fast lm' using compiled code: 
        - using GNU GSL and a C interface
        - using Armadillo (http://arma.sf.net) and a C++ interface
        Armadillo is seen as faster for lack of extra copying
    o	A new package RcppArmadillo (to be released shortly) now serves 
        as a concrete example on how to extend Rcpp to work with a modern 
	C++ library such as the heavily-templated Armadillo library
    o	Added a new vignette 'Rcpp-introduction' based on a just-submitted 
        overview article on Rcpp
As always, even fuller details are in the ChangeLog on the Rcpp page which also leads to the downloads, the browseable doxygen docs and zip files of doxygen output for the standard formats. A local directory has source and documentation too. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page

Update: Two links corrected.

9 March 2010

Steve Kemp: He's so mean he wouldn't light your pipe if his house was on fire.

By the time this blog entry goes live I'll be running upon my new machine. The migration process was mostly straightfoward and followed my plan: Of course it wasn't that simple in practise, as previously mentioned the whole reason I was looking for a new machine was because the software RAID upon my old desktop was failing - One of the two drives was completely dead. As I'd feared the second drive failed partway through my migration. But thankfully I'd copied off the important stuff before then, and the backups I have off-site mostly covered everything else. (The things I lost were things I can find again such as ~/Music, ~/Videos. On the one hand they're too large to backup, on the other hand I should probably do it next time as they never change.) Unfortunately the version of X in Lenny refused to work with the GeForce G210 video card I had. To be more correct using the Vesa driver I could get a picture and a smooth desktop, but when watching videos with xine I got maybe two frames a second. Both the open nv driver and the closed nvidia driver failed to support the card - so I swapped hardware, and I'm now running with the GeForce 7300 GS card from my previous desktop. This allows me to watch videos at full-screen with no issues. (Desktop size is 1600x1200 FWIW). So now it's just a matter of tweaking the system. I've installed enough to be useful: I've still got to setup pbuilder, but that'll be done shortly, and I've installed backported packages such that I can watch youtube videos. I'm currently running firefox from lenny but I expect that will change soon enough - not least because that version fails to support "adblockplus", only "adblock". Two partitions md0 for /boot and md1 used as LVM, from which I've taken /, /home, etc:
Filesystem                      Size    Used    Avail Use% Mounted on
/dev/mapper/birthday--vol-root   9.9G     2.8G   6.6G  30% /
/dev/mapper/birthday--vol-home   22G      4.3G  16G    22% /home
/dev/mapper/birthday--vol-music  127G    43G    78G    36% /mnt/music
/dev/md0                         988M    38M    901M    4% /boot
/dev/mapper/birthday--vol-kvm    22G      8.8G  12G    44% /mnt/kvm
/dev/sdg1                        163G    143G   12G    93% /media/disk
skx@birthday:~/hg/blog/data$
skx@birthday:~/hg/blog/data$ sudo pvs
[sudo] password for skx:
  PV         VG           Fmt  Attr PSize   PFree
  /dev/md1   birthday-vol lvm2 a-   464.82G 274.51G
Update: Three irritations with this machine:
  1. As supplied the BIOS was set with "USB Mouse" and "USB Keyboard" set to "disabled". I had to beg the loan of a keyboard from a neighbour.
  2. As supplied the BIOS had virtualisation set to "disabled". Not a huge shock, but it caught me out regardless.
  3. As supplied the system had only a single SATA power connector. Annoying given that the motherboard is advertised as having "onboard RAID" and I'd purchased it with two hard drives. Happily I had a spare adaptor to hand.
I'd still recommend Novatech, but the last point had me swearing for a few minutes until I realised I did have a spare adaptor in the house. ObFilm: Chitty Chitty Bang Bang

John Goerzen: Review: The Future of Faith by Harvey Cox

I know I ve been on something of a religion streak on the blog of late, and this will be the last such post for awhile. I first hear of Harvey Cox s book The Future of Faith during an excellent hour-long interview with NPR s Diane Rehm. It was intriguing enough that I bought the Kindle edition of the book and read it. The title of the book is both very accurate and rather misleading. A lot of the book and, to me, the most fascinating parts of it focus on the history of faith. Cox s repeated point is that we are only now regaining a notion of faith that the earliest Christians had, and it is a notion that happens to be compatible with modern science and incompatible with fundamentalism and intolerance in all its stripes. Throughout this post, it should be understood that quotes or passages are from the book. Cox is so quotable that a good chunk of this review will be showing you some of his quotes, with a bit of discussion around them. I very much enjoyed this book, and highly recommend it. Faith vs. Belief
It is true that for many people faith and belief are just two words for the same thing. But they are not the same and it is important to clarify the difference. Faith is about deep-seated confidence. In everyday speech we usually apply it to people we trust or the values we treasure a matter of what the Hebrews spoke of as the heart. Belief, on the other hand, is more like opinion. We often use the term to express a degree of uncertainty We can believe something to be true without it making much difference to us, but we place our faith only in something that is vital for the way we live.
This is an important distinction, and if you stop and think about it, Cox is arguing with a common notion about faith almost from page 1. Faith isn t about intellectual assent to a set of propositions. It s about what we hold dear, what we think works for us in life. Creeds
Creeds are clusters of beliefs. But Christianity is not a history of creeds. It is the story of a people of faith who sometimes cobbled together creeds out of beliefs. It is also the history of equally faithful people who questioned, altered, and discarded those same creeds But both the doctrinal canons and the architectural constructions are means to an end. Making either the defining element warps the underlying reality of faith.
Cox here reinforces the point that Christianity isn t about believing certain statements, and it isn t even about a literal (or not) reading of the Bible. It s what C. S. Lewis talked about as the inward transformation in onesself. Creeds, such as the Nicene Creed, are rather irrelevant to him. Cox separates the history of Christianity into three periods: the age of faith, stretching from the time of Jesus only a few centuries until Constantine; the age of belief, stretching from Constantine until the 20th century; and the age of the spirit, now dawning. During the age of faith, their sharing in the living Spirit of Christ united Christians with each other, and faith meant hope and assurance in the dawning of a new era of freedom, healing, and compassion that Jesus had demonstrated. Cox makes the point that doctrinal questions just weren t all that important back then, and though differences existed, they weren t considered to be fundamental to the religion. Confidence in Christ was their primary orientation, and hope for his [earthly] Kingdom their motivating drive. Further, he argues that the age of the spirit is a return to this earlier age, albeit with modern twists.
Christianity is growing faster than it ever has before, but mainly outside the West and in movements that accent spiritual experience, discipleship, and hope; pay scant attention to creeds; and flourish without hierarchies. We are now witnessing the beginning of a post-Constantinian era.
Cox describes a person that described himself as a practicing Christian, not always a believing one. He suggests that the belief/non-believer statement is a disservice to Christianity and to other religions. He then quoted a Catholic bishop as saying: The line between belief and unbelief runs through the middle of each one of us, including myself, a bishop of the church. In other words, The experience of the divine is displacing theories about it. Faith and Belief in Bible reading
Creation myths such as the first chapters of Genesis were not primarily composed to answer the how or when questions. They are not scientific accounts, even though their poetical language, when read literally (which is always a mistake), may sound that way. Rather, they grapple with the linked mysteries of both why there is a universe and what our place in it is They are more like lyrical cantatas, symphonies of symbols through which humans have tried to make sense of their place in the world This is where the distinction between faith and belief is vital. These stories are literally not to be believed. They are, rather, artifacts human beings have crafted to try to wring some meaning from the mystery. They are not themselves the mystery.
I liken this to Michael Crichton s novel Jurassic Park. If you were to read it 1000 years in the future, it might not have been conveniently shelved above the word fiction. Would a reader in the future know that it was not meant to be a literal description of facts? I think sometimes we make this mistake when we read the Bible. Note, though, that although we all understand that Jurassic Park wasn t meant to be a literal description of facts, it seems to have been valued by quite a large part of society. And it didn t even address big mysteries. Cox argues against ridding ourselves of the creation myths, suggesting that they are an important reminder that we are similar to humans who grappled with the same big questions centuries ago as we do today.
The ill-advised transmuting of symbols into a curious kind of facts has created an immense obstacle to faith for many thoughtful people. Instead of helping them confront the great mystery, it has effectively prevented them from doing so the objective knowledge science rightly insists on is not the only kind of knowledge human beings need Faith, although it is evoked by the mystery that surrounds us, is not the mystery itself.
Constantine and the Age of Belief
One of the most devastating blunders made by the church, especially as the Age of Belief began, was to insist that the Spirit is present only in believers.
Cox spends a lot of time covering the very interesting topic of how and why the church moved to the Age of Belief. His central thesis is that money, power, and prestige were primarily responsible, and that an unrighteous collusion between bishops and Constantine, each using Christianity for their own purposes, finally made it happen. This is very interesting stuff, but this post is too long already, so I will not spend a lot of time on it. I found the Council of Nicea to be particularly interesting, considering that the Nicean Creed came about partially by exile or execution of those Christians that disagreed with it. Cox also points out that there never was a single early Christianity ; there were many, and the idea of heresy was unknown.
The time is ripe to retrieve the term Way for Christianity and followers of the Way for Christians. It is at once more accurate, more original, and more contemporary than believers.
To the future Cox describes attending a meeting of the church in Hong Kong in 2003, and uses it as a metaphor for the future of faith:
Their idea of interfaith dialogue was to work with their fellow Asians of whatever religion to advance the Kingdom that Jesus had inspired them, as Christians, to strive for, regardless of what the others called it. They were neither fundamentalist nor modernist. They seemed more attuned to the element of mystery at the core of Christianity and to its vision of justice. They were also clearly impatient with many of the disputes that preoccupy the different wings of the American churches.
Conclusion I found this book to be both enlightening and informative. I highly recommend it, even if you disagree with some of Cox s conclusions. It is a fascinating view into how the world s largest religion evolved over the years, and a candid look at the mistakes it has made in that time.

Jaldhar Vyas: 7DRL Challenge - day 2-3

I am still being plagued by the burdens of real life so most development is taking place after the kids ("It should have mermaids! And Spiderman!") have gone to sleep. By the time I finished up yesterday, I was too tired to blog so this is is a combined report on the last two days. I decided not to bother with Javascript as I want to try a different project for the plasmoid competition. So I'm back to C++ and ncurses. At this point my '@' can move across the dungeon which at the moment a very simplistic 10 10 grid where every space is a 'room'. Rooms are populated with monsters, treasure and items though at the moment only the monsters can do anything and by anything I mean fighting. My combat system is based on Solo Dungeon Bash and pretty challenging I think. Hopefully by tomorrow, A Lively Fisting will be playable though I really need to pick up the pace if I want to finish on time.

8 March 2010

Gunnar Wolf: OpenSSH 5.4 and netcat mode

The release of OpenSSH 5.4 was announced today. Its announced features include many small improvements, in usability and in crypto strength. One of my favorite tricks using ssh is what Ganneff named ssh jumphosts Many (most?) of my machines are not directly accessible from across the firewall, so the ability to specify in the configuration files where to jump through is most welcome. Well, with this "netcat mode" it will be much clearer to read and less of a hack Of course, it loses a bit of the hackish sthetic value, but becomes easier! (yes, this post is basically a marker so I remember about it But others might find it interesting)

Next.

Previous.