<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet GNU</title>
	<link>http://planet.gnu.org/</link>
	<language>en</language>
	<description>Planet GNU - http://planet.gnu.org/</description>

<item>
	<title>FSF Events: &quot;Logiciels libres et éducation&quot;</title>
	<guid>http://www.fsf.org/events/20120627-marlyleroi</guid>
	<link>http://www.fsf.org/events/20120627-marlyleroi</link>
	<description>Marly-le-Roi, France - Cinéma le Fontenelle - Place de la Gare&lt;p&gt;Richard Stallman will speak about the goals and philosophy of the
Free Software Movement, and the status and history of the GNU
operating system, which in combination with the kernel Linux is now
used by tens of millions of users world-wide.&lt;/p&gt;

&lt;p&gt;Please fill out our contact form, so that &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=90&amp;amp;reset=1&quot;&gt;we
can contact you about future events in and around Marly-le-Roi.&lt;/a&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;a href=&quot;http://www.intertice.fr/interTICE-Logiciels-Libres&quot;&gt;Registration
is required.&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 15 May 2012 22:58:25 +0000</pubDate>
</item>
<item>
	<title>FSF News: FSF Job Opportunity: Operations Assistant</title>
	<guid>http://www.fsf.org/news/fsf-job-opportunity-operations-assistant</guid>
	<link>http://www.fsf.org/news/fsf-job-opportunity-operations-assistant</link>
	<description>This position is now closed for applications. Thank you to everyone who applied.&lt;p&gt;The Free Software Foundation (FSF), a 501(c)(3) charity with a worldwide mission to protect freedoms critical to the computer-using public, seeks a motivated and organized Boston-based individual to be its full-time Operations Assistant.&lt;/p&gt;

&lt;p&gt;This position works closely with the Executive Director and Business Operations Manager to ensure all administrative functions of the FSF run smoothly and efficiently, preserving our 4-star Charity Navigator rating and boosting all areas of our work.&lt;/p&gt;
&lt;p&gt;In addition to handling phone calls and being a friendly face for visitors to our office at the center of Boston's Downtown Crossing, these functions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fulfilling orders for FSF merchandise,&lt;/li&gt;
&lt;li&gt;blogging about merchandise-related news,&lt;/li&gt;
&lt;li&gt;processing incoming donations,&lt;/li&gt;
&lt;li&gt;coordinating volunteers,&lt;/li&gt;
&lt;li&gt;updating our contact database,&lt;/li&gt;
&lt;li&gt;organizing fundraising mailings,&lt;/li&gt;
&lt;li&gt;diverting sales calls to the appropriate fake voicemail box,&lt;/li&gt;
&lt;li&gt;assisting with occasional local events,&lt;/li&gt;
&lt;li&gt;maintaining a few areas of our Web site, and &lt;/li&gt;
&lt;li&gt;looking after the office space.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a great position for a recent graduate who thrives on multitasking, has an eye for detail, lives in the Boston area, and wants to make a difference. With our small staff of ten, each person makes a clear contribution. We work hard, but offer a humane and fun work environment.&lt;/p&gt;
&lt;p&gt;Because our mission is worldwide, language skills and a demonstrated ability to interact with people across cultures and age groups will be highly valued. While the position does not require advanced computer skills, a willingness to learn and work with new software is a must. We use free software like CiviCRM, Plone, Emacs, and LibreOffice, all running on GNU/Linux.&lt;/p&gt;
&lt;p&gt;The FSF is a growing organization and provides great potential for advancement; existing staff get the first chance at any new job openings. Previous Operations Assistants have often gone on to hold other positions within the organization.&lt;/p&gt;
&lt;h2&gt;Benefits and salary&lt;/h2&gt;
&lt;p&gt;This job is a union position. The salary is fixed at $49,140/year and is non-negotiable. Other benefits include the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;full family health coverage through Blue Cross/Blue Shield's HMO Blue program,&lt;/li&gt;
&lt;li&gt;subsidized dental plan,&lt;/li&gt;
&lt;li&gt;four weeks of paid vacation annually,&lt;/li&gt;
&lt;li&gt;seventeen paid holidays annually,&lt;/li&gt;
&lt;li&gt;public transit commuting cost reimbursement,&lt;/li&gt;
&lt;li&gt;403(b) program through TIAA-CREF, and&lt;/li&gt;
&lt;li&gt;yearly cost-of-living pay increases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This position is now closed for applications. Thank you to everyone who applied.&lt;/p&gt;
&lt;p&gt;The FSF is an equal opportunity employer and will not discriminate against any employee or application for employment on the basis of race, color, marital status, religion, age, sex, sexual orientation, national origin, handicap, or any other legally protected status recognized by federal, state or local law.&lt;/p&gt;
&lt;h2&gt;About the Free Software Foundation&lt;/h2&gt;
&lt;p&gt;The Free Software Foundation, founded in 1985, is dedicated to promoting computer users' right to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free (as in freedom) software -- particularly the GNU operating system and its GNU/Linux variants -- and free documentation for free software. The FSF also helps to spread awareness of the ethical and political issues of freedom in the use of software, and its Web sites, located at fsf.org and gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at &lt;a href=&quot;http://donate.fsf.org&quot;&gt;http://donate.fsf.org&lt;/a&gt;. Its headquarters are in Boston, MA, USA.&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 19:26:54 +0000</pubDate>
</item>
<item>
	<title>Andy Wingo: doing it wrong: cse in guile</title>
	<guid>http://wingolog.org/2012/05/14/doing-it-wrong-cse-in-guile</guid>
	<link>http://wingolog.org/archives/2012/05/14/doing-it-wrong-cse-in-guile</link>
	<description>&lt;div&gt;&lt;p&gt;Greetings, readers!  It's been a little while, but not because I haven't been doing anything, or nothing worth writing about.  No, the reason I haven't written recently is because the perceived range of my ignorance has been growing faster than the domain of my expertise.  &lt;/p&gt;&lt;p&gt;Knowledge may well be something one can dominate, but ignorance must forever be a range, stretching off to a hazy horizon.  Climbing the hill of JavaScript implementations has let me see farther out on that plain.  I think it's only the existence of the &lt;a href=&quot;http://en.wikipedia.org/wiki/There_are_known_knowns&quot;&gt;unknown unknowns&lt;/a&gt; that can let one muster up the arrogance to write at all.&lt;/p&gt;&lt;p&gt;But back to domains and dominators later.  To begin, I note that there is very little in the way of correct, current, and universal folk wisdom as to how to implement a programming language.  Compiler hackers are priests of their languages, yes, but their temples are in reality more or less isolated cults, in which the values of one's Gods may be unknown or abhorrent to those of others.  Witness the attention paid to loop optimizations in some languages, compared to garbage collection in others, or closures in still others.&lt;/p&gt;&lt;p&gt;In my ecumenical capacity as abbot of Guile and adjunct deacon of JavaScriptCore, sometimes I'm tempted to mix rites: to sprinkle the holy water of lexical scope optimizations on JS, and, apropos of this article, to exorcise common subexpressions in Scheme.&lt;/p&gt;&lt;p&gt;As one might well imagine, the rites of one cult must be adapted to circumstances.  I implemented CSE for Guile, but I don't know if it was actually a win.  In this article I'll go into what CSE is, how it works in Guile, why it probably won't survive in its present form.&lt;/p&gt;&lt;p&gt;&lt;b&gt;cse: common subexpression elimination&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I implemented a source-to-source optimization pass in &lt;a href=&quot;http://gnu.org/s/guile/&quot;&gt;Guile&lt;/a&gt; that eliminates common subexpressions.  It actually does both more and less than that: it propagates predicates and eliminates effect-free statements as well, and these latter optimizations are why I implemented the pass in the first place.&lt;/p&gt;&lt;p&gt;Let me give an example.  Let's imagine we implement a binary tree in Guile, using the &lt;a href=&quot;http://www.gnu.org/software/guile/manual/html_node/SRFI_002d9.html&quot;&gt;records facility&lt;/a&gt;.&lt;/p&gt;&lt;pre&gt;
(use-modules (srfi srfi-9))

(define-record-type btree
  (make-btree elt left right)
  btree?
  (elt btree-elt)
  (left btree-left)
  (right btree-right))

(define *btree-null* #f)

(define (btree-cons head tail)
  (if (btree? tail)
      (let ((elt (btree-elt tail)))
        (if (&amp;lt; elt head)
            (make-btree elt
                        (btree-left tail)
                        (btree-cons head (btree-right tail)))
            (make-btree elt
                        (btree-cons head (btree-left tail))
                        (btree-right tail))))
      (make-btree head
                  *btree-null*
                  *btree-null*)))
&lt;/pre&gt;&lt;p&gt;That's enough to illustrate my point, I think.  We have the data type, the base case, and a constructor.  Of course in Haskell or something with better data types it would be much cleaner, but hey, let's roll with this.&lt;/p&gt;&lt;p&gt;If you look at &lt;tt&gt;btree-cons&lt;/tt&gt;, it doesn't seem to be amenable in its current form to classic common subexpression elimination.  People don't tend to write duplicated code.  You see that I bound the temporary &lt;var&gt;elt&lt;/var&gt; instead of typing &lt;tt&gt;(btree-elt btree)&lt;/tt&gt; each time, and that was partly because of typing, and partly out of some inner efficiency puritan, telling me I shouldn't write duplicate expressions.  (Cult behavior, again!)&lt;/p&gt;&lt;p&gt;But, note that all of these record abstractions will probably inline, instead of calling out to procedures.  (They are implemented as &lt;a href=&quot;http://www.gnu.org/software/guile/manual/html_node/Inlinable-Procedures.html&quot;&gt;inlinable procedures&lt;/a&gt;.  Yes, it would be better to have cross-module inlining, but we don't, so this is what we do.)  In general, syntactic abstraction in Scheme can lead to duplicate code.  Apologies in advance for this eyeball-rending torrent, but here's a listing of what &lt;tt&gt;btree-cons&lt;/tt&gt; reduces to, after expansion and partial evaluation:&lt;/p&gt;&lt;pre&gt;
(define (btree-cons head tail)
  (if (and (struct? tail)
           (eq? (struct-vtable tail) btree))
      (let ((elt (if (eq? (struct-vtable tail) btree)
                     (struct-ref tail 0)
                     (throw 'wrong-type-arg
                            'btree-elt
                            &quot;Wrong type argument: ~S&quot;
                            (list tail)
                            (list tail)))))
        (if (&amp;lt; elt head)
            (let ((left (if (eq? (struct-vtable tail) btree)
                            (struct-ref tail 1)
                            (throw 'wrong-type-arg
                                   'btree-left
                                   &quot;Wrong type argument: ~S&quot;
                                   (list tail)
                                   (list tail))))
                  (right (btree-cons
                           head
                           (if (eq? (struct-vtable tail) btree)
                               (struct-ref tail 2)
                               (throw 'wrong-type-arg
                                      'btree-right
                                      &quot;Wrong type argument: ~S&quot;
                                      (list tail)
                                      (list tail))))))
              (make-struct/no-tail btree elt left right))
            (let ((left (btree-cons
                          head
                          (if (eq? (struct-vtable tail) btree)
                              (struct-ref tail 1)
                              (throw 'wrong-type-arg
                                     'btree-left
                                     &quot;Wrong type argument: ~S&quot;
                                     (list tail)
                                     (list tail)))))
                  (right (if (eq? (struct-vtable tail) btree)
                             (struct-ref tail 2)
                             (throw 'wrong-type-arg
                                    'btree-right
                                    &quot;Wrong type argument: ~S&quot;
                                    (list tail)
                                    (list tail)))))
              (make-struct/no-tail btree elt left right))))
      (let ((left *btree-null*) (right *btree-null*))
        (make-struct/no-tail btree head left right))))
&lt;/pre&gt;&lt;p&gt;Again, I'm really sorry about that, and it's not just for your eyes:  it's also because that's a crapload of code for what should be a simple operation.  It's also redundant!  There are 6 checks that &lt;var&gt;btree&lt;/var&gt; is in fact a btree, when only one is needed semantically.  (Note that the null case is not a btree, of course.)&lt;/p&gt;&lt;p&gt;Furthermore, all of the checks in the first arm of the &lt;tt&gt;if&lt;/tt&gt; are redundant.  The code above is what the optimizer produces -- which is, you know, turrible.&lt;/p&gt;&lt;p&gt;So, I thought, we could run a pass over the source that tries to propagate predicates, and then tries to fold predicates whose boolean value we already know.&lt;/p&gt;&lt;p&gt;And that's what I did.  Here's what Guile's optimizer does with the function, including the CSE pass:&lt;/p&gt;&lt;pre&gt;
(define (btree-cons head tail)
  (if (and (struct? tail)
           (eq? (struct-vtable tail) btree))
      (let ((elt (struct-ref tail 0)))
        (if (&amp;lt; elt head)
            (let ((left (struct-ref tail 1))
                  (right (btree-cons head (struct-ref tail 2))))
              (make-struct/no-tail btree elt left right))
            (let ((left (btree-cons head (struct-ref tail 1)))
                  (right (struct-ref tail 2)))
              (make-struct/no-tail btree elt left right))))
      (let ((left *btree-null*) (right *btree-null*))
        (make-struct/no-tail btree head left right))))
&lt;/pre&gt;&lt;p&gt;This is much better.  It's quite close to the source program, except the symbolic references like &lt;tt&gt;btree-elt&lt;/tt&gt; have been replaced with indexed references.  The type check in the predicate of the &lt;tt&gt;if&lt;/tt&gt; expression propagated to all the other type checks, causing those nested &lt;tt&gt;if&lt;/tt&gt; expressions to fold.&lt;/p&gt;&lt;p&gt;Of course, CSE can also propagate bound lexicals:&lt;/p&gt;&lt;pre&gt;
(let ((y (car x)))
  (car x))
=&amp;gt; (let ((y (car x)))
     y)
&lt;/pre&gt;&lt;p&gt;This is the classic definition of CSE.&lt;/p&gt;&lt;p&gt;&lt;b&gt;but is it a win?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I should be quite pleased with the results, except that CSE makes Guile's compiler approximately twice as slow.  Granted, in the long run, this should be acceptable: code is usually run many more times than it is compiled.  But this is a fairly expensive pass, and yet at the same time it's not as good as it could be.&lt;/p&gt;&lt;p&gt;In order to get to the heart of the matter, I need to explain a little about the implementation.  CSE is a post-pass, that runs after &lt;a href=&quot;http://wingolog.org/archives/2011/10/11/partial-evaluation-in-guile&quot;&gt;partial evaluation&lt;/a&gt; (peval).  I tried to make it a part of peval, as the two optimizations are synergistic -- oh yes, let's revel in that word -- are you feeling it? -- but it was too complicated in the end.  The reason is that in functions like this:&lt;/p&gt;&lt;pre&gt;
(define (explode btree)
  (unless (btree? btree)
    (error &quot;not a btree&quot; btree))
  (values (btree-head btree)
          (btree-left btree)
          (btree-right btree)))
&lt;/pre&gt;&lt;p&gt;Here we have a sequence of two expressions.  Since the first one bails out if the predicate is false, we should propagate a true predicate past the first expression.  This means that running CSE on an expression returns two values: the rewritten expression, given the predicates already seen; and a new set of predicates that the expression asserts.  We should be able to use these new assertions to elide the type checks in the second expression.  And indeed, Guile can do this.&lt;/p&gt;&lt;p&gt;Perhaps you can see the size of the problem now.  CSE is a pass that runs over all code, building up an ordered set of expressions that were evaluated, and in what context.  When it sees a new expression in a test context -- as the predicate in an &lt;tt&gt;if&lt;/tt&gt; -- it checks to see if the set contains that expression (or its negation) already, in test context, and if so tries to fold the expression to true or false.  Already doing this set lookup and traversal is expensive -- at least N log N in the total size of the program, with some quadratic components in the case an expression is found, and also with high constant factors due to the need for custom hash and equality predicates.&lt;/p&gt;&lt;p&gt;The quadratic factor comes in when walking the set to see if the elimination is valid.  Consider:&lt;/p&gt;&lt;pre&gt;
(if (car x)
    (if (car x) 10 20)
    30)
&lt;/pre&gt;&lt;p&gt;Here, we should be able to eliminate the second &lt;tt&gt;(car x)&lt;/tt&gt;, folding to &lt;tt&gt;(if (car x) 10 30)&lt;/tt&gt;.  However, in this one:&lt;/p&gt;&lt;pre&gt;
(if (car x)
    (begin
      (y)
      (if (car x) 10 20))
    30)
&lt;/pre&gt;&lt;p&gt;If we don't know what &lt;tt&gt;(y)&lt;/tt&gt; does, then we can't fold the second test, because perhaps &lt;tt&gt;(y)&lt;/tt&gt; will change the contents of the pair, &lt;tt&gt;x&lt;/tt&gt;.  The information that allows us to make these decisions is &lt;i&gt;effects analysis&lt;/i&gt;.  For the purposes of Guile's optimizer, &lt;tt&gt;(car x)&lt;/tt&gt; has two dependencies and can cause two effects: it depends on the contents of a mutable value, and on the value of a toplevel (&lt;tt&gt;x&lt;/tt&gt;), and can cause the effect of an unbound variable error when resolving the toplevel, or a type error when accessing its car.  Two expressions commute if neither depends on effects that the other causes.&lt;/p&gt;&lt;p&gt;I stole the idea of doing a coarse effects analysis, and representing it as bits in a small integer, from V8.  Guile's version is here: &lt;a href=&quot;http://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob;f=module/language/tree-il/effects.scm&quot;&gt;effects.scm&lt;/a&gt;.  The ordered set is a form of global value numbering.  See the CSE pass here: &lt;a href=&quot;http://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob;f=module/language/tree-il/cse.scm&quot;&gt;cse.scm&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The commute test is fairly cheap, but the set traversal is currently a bit expensive.&lt;/p&gt;&lt;p&gt;&lt;b&gt;and for what?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;As I have indicated, the pass does do something useful on real programs, as in the binary tree example.  But it does not do all it could, and it's difficult to fix that, for a few reasons.&lt;/p&gt;&lt;p&gt;Unlike traditional CSE, Guile's version of it is interprocedural.  Instead of operating on just one basic block or one function, it operates across nested functions as well.  However, only some dependencies can commute across a function boundary.  For example:&lt;/p&gt;&lt;pre&gt;
(lambda (x)
  (if (pair? x)
      (let ((y (car x)))
        (lambda ()
          (and (pair? x) (car x))))))
&lt;/pre&gt;&lt;p&gt;Can the first &lt;tt&gt;pair?&lt;/tt&gt; test propagate to the second expression?  It can, because &lt;tt&gt;pair?&lt;/tt&gt; does not depend on the values of mutable data, or indeed on any effect.  If it's true once, it will always be true.&lt;/p&gt;&lt;p&gt;But can we replace the second &lt;tt&gt;(car x)&lt;/tt&gt; with &lt;tt&gt;y&lt;/tt&gt;?  No, because &lt;tt&gt;(car x)&lt;/tt&gt; has a dependency on mutable data, and because we don't do escape analysis on the closure, we don't let those dependencies commute across a procedure boundary.  (In this case, even if we did escape analysis, we'd have the same conclusion.)&lt;/p&gt;&lt;p&gt;However, not all &lt;tt&gt;lambda&lt;/tt&gt; abstractions are closures.  Some of them might end up being compiled to labels in the function.  Scheme uses syntactically recursive procedures to implement loops, after all.  But Guile's CSE does poorly for &lt;tt&gt;lambda&lt;/tt&gt; expressions that are actually labels.  The reason is that &lt;i&gt;lexical scope is not a dominator tree&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;MLton hacker Stephen Weeks says it better than I do:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Thinking of it another way, both CPS and SSA require that variable definitions dominate uses.  The difference is that using CPS as an IL requires that all transformations provide a proof of dominance in the form of the nesting, while SSA doesn't.  Now, if a CPS transformation doesn't do too much rewriting, then the partial dominance information that it had from the input tree is sufficient for the output tree.  Hence tree splicing works fine.  However, sometimes it is not sufficient.&lt;/p&gt;&lt;p&gt;As a concrete example, consider common-subexpression elimination.  Suppose we have a common subexpression &lt;tt&gt;x = e&lt;/tt&gt; that dominates an expression &lt;tt&gt;y = e&lt;/tt&gt; in a function.  In CPS, if &lt;tt&gt;y = e&lt;/tt&gt; happens to be within the scope of &lt;tt&gt;x = e&lt;/tt&gt;, then we are fine and can rewrite it to &lt;tt&gt;y = x&lt;/tt&gt;.  If however, &lt;tt&gt;y = e&lt;/tt&gt; is not within the scope of &lt;tt&gt;x&lt;/tt&gt;, then either we have to do massive tree rewriting (essentially making the syntax tree closer to the dominator tree) or skip the optimization.  Another way out is to simply use the syntax tree as an approximation to the dominator tree for common-subexpression elimination, but then you miss some optimization opportunities.  On the other hand, with SSA, you simply compute the dominator tree, and can always replace &lt;tt&gt;y = e&lt;/tt&gt; with &lt;tt&gt;y = x&lt;/tt&gt;, without having to worry about providing a proof in the output that &lt;tt&gt;x&lt;/tt&gt; dominates &lt;tt&gt;y&lt;/tt&gt;. (i.e. without putting &lt;tt&gt;y&lt;/tt&gt; in the scope of &lt;tt&gt;x&lt;/tt&gt;)&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://mlton.org/pipermail/mlton/2003-January/023054.html&quot;&gt;[MLton-devel] CPS vs SSA&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;See my &lt;a href=&quot;http://wingolog.org/archives/2011/07/12/static-single-assignment-for-functional-programmers&quot;&gt;article on SSA and CPS&lt;/a&gt; for more context.&lt;/p&gt;&lt;p&gt;So that's one large source of lost CSE opportunities, especially in loops.&lt;/p&gt;&lt;p&gt;Another large source of lost opportunities is that the Tree-IL language, which is basically a macro-expanded Scheme, has the same property that Scheme does, that the order of evaluation of operands is unspecified.&lt;/p&gt;&lt;p&gt;Consider the base-case clause of my &lt;tt&gt;btree-cons&lt;/tt&gt; above:&lt;/p&gt;&lt;pre&gt;
(let ((left *btree-null*) (right *btree-null*))
  (make-struct/no-tail btree head left right))
&lt;/pre&gt;&lt;p&gt;Now, &lt;tt&gt;*btree-null*&lt;/tt&gt; is a toplevel lookup, that might have an unbound-variable effect.  We should be able to eliminate one of them, though.  Why doesn't the CSE pass do it?  Because in Tree-IL, the order of evaluation of the right-hand-sides of &lt;var&gt;left&lt;/var&gt; and &lt;var&gt;right&lt;/var&gt; is unspecified.  This gives Guile some useful freedoms, but little information for CSE.&lt;/p&gt;&lt;p&gt;This is an instance of a more general problem, that Tree-IL might be too high-level to be useful for CSE.  For example, at runtime, not all lexical references are the same -- some are local, and some reference free variables.  For mutated free variables, the variable is itself in a box, so to reference it you would load the box into a local and then dereference the box.  CSE should allow you to eliminate duplicate loads of the box, even in the case that it can't eliminate duplicate references into the box.&lt;/p&gt;&lt;p&gt;&lt;b&gt;conclusion&lt;/b&gt;&lt;/p&gt;&lt;p&gt;It is nice to be able to eliminate the duplicate checks, but not at any price.  Currently the bootstrapping time cost is a bit irritating.  I have other ideas on how to fix that, but ultimately we probably need to re-implement CSE at some lower level.  More on that in a future post.  Until then, happy hacking.&lt;/p&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 14 May 2012 17:07:14 +0000</pubDate>
</item>
<item>
	<title>FSF Events: Richard Stallman to speak on panel entitled &quot;Youth, Technology and Innovation&quot;</title>
	<guid>http://www.fsf.org/events/20120531-florianopolis</guid>
	<link>http://www.fsf.org/events/20120531-florianopolis</link>
	<description>Florianopolis, Brazil - CentroSul, Av. Gustavo Richard, 850Richard Stallman will be one of four lecturers to speak in Lecture III: Education, Technology and Sustainability: Debate 7: Youth, Technology and Innovation, a part of II Fórum Mundial de Educação Profissional e Tenológica: Democratização, Emancipaçao e Sustentabilidade (2012-05-28--06-01)

&lt;p&gt;He will explain how, for ethical education, the software used must be livre, and the teaching materials must be livre too.&lt;/p&gt;

&lt;p&gt;Please fill out our contact form, so that &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=87&amp;amp;reset=1&quot;&gt;we can
contact you about future events in and around Florianapolis.&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 16:37:55 +0000</pubDate>
</item>
<item>
	<title>gcal @ Savannah: GNU gcal 3.6.2 released</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7232</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7232</link>
	<description>&lt;p&gt;Source code is available for download here: 
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.bz2&quot;&gt;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.bz2&lt;/a&gt; 
&lt;br /&gt;
&lt;a href=&quot;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.xz&quot;&gt;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.xz&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;and the GPG detached signatures using the key C03363F4: 
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.bz2.sig&quot;&gt;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.bz2.sig&lt;/a&gt; 
&lt;br /&gt;
&lt;a href=&quot;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.xz.sig&quot;&gt;ftp://ftp.gnu.org/gnu/gcal/gcal-3.6.2.tar.xz.sig&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 13 May 2012 16:26:08 +0000</pubDate>
</item>
<item>
	<title>FSF Blogs: GNU Emacs Reference mugs now available</title>
	<guid>http://www.fsf.org/blogs/gnu-press/gnu-emacs-reference-mugs-now-available</guid>
	<link>http://www.fsf.org/blogs/gnu-press/gnu-emacs-reference-mugs-now-available</link>
	<description>GNU Press offers a limited number of GNU Emacs Reference mugs&lt;img src=&quot;http://static.fsf.org/nosvn/shop/emacs-mug-600px.jpg&quot; alt=&quot;&quot; class=&quot;imgright&quot; width=&quot;250&quot; /&gt;

&lt;p&gt;&lt;strong&gt;UPDATE: ALL SOLD OUT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, due to the incredible popularity of our GNU Emacs Reference mugs, we have sold out our entire stock in less than 24 hours. We apologize for the inconvenience. We are in the process ordering more mugs, and if you would like to be first in line to buy one, please join our &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=88&amp;amp;reset=1&quot;&gt;GNU Press mailing list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt; Thanks to a generous donation by one of our supporters, we are now able to offer a limited set of &lt;a href=&quot;http://shop.fsf.org/product/gnu-emacs-reference-mugs/&quot;&gt;GNU Emacs Reference mugs&lt;/a&gt; through the GNU Press. These ceramic mugs feature a two-color Emacs logo as well as a handy Emacs quick-reference guide. Like our &lt;a href=&quot;http://shop.fsf.org/product/emacs-reference-cards-v-22/&quot;&gt;Emacs Reference cards&lt;/a&gt;, these mugs feature all the commands needed to dive right into using Emacs. They're perfect for anyone who loves coffee (or tea!) and coding, and buying one helps support the FSF.&lt;/p&gt;

&lt;p&gt;In addition, we are still auctioning off the remaining set of our limited-edition LibrePlanet 2012 t-shirts. If you missed out on getting a shirt at the conference, or couldn't physically make it to the venue this year, this is your last opportunity to get these shirts. They are available in regular and ladies cut styles while supplies last.&lt;/p&gt;

&lt;p&gt;As always, if you can't find something in the store but think we should offer it, please add your suggestion to our &lt;a href=&quot;http://libreplanet.org/wiki?title=GNU_Press_Shop_Items_Ideas#Store&quot;&gt;Ideas page&lt;/a&gt;. And remember, associate members of the Free Software Foundation get a 20% discount on all purchases made through the GNU Press store, so if you are not a member already, &lt;a href=&quot;https://my.fsf.org/associate/support_freedom&quot;&gt;join today&lt;/a&gt;!&lt;/p&gt;</description>
	<pubDate>Fri, 11 May 2012 18:11:29 +0000</pubDate>
</item>
<item>
	<title>FSF Events: Free Software and Your Freedom</title>
	<guid>http://www.fsf.org/events/20120530-florianopolis</guid>
	<link>http://www.fsf.org/events/20120530-florianopolis</link>
	<description>Florianopolis, Brazil - CentroSul, Av. Gustavo Richard, 850
&lt;p&gt;The Free Software Movement campaigns for computer users' freedom to
cooperate and control their own computing.  The Free Software Movement
developed the GNU operating system, typically used together with the
kernel Linux, specifically to make these freedoms possible.&lt;/p&gt;

&lt;p&gt;Please fill out our contact form, so that &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=87&amp;amp;reset=1&quot;&gt;we
can contact you about future events in and around Florianopolis.&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 11 May 2012 12:42:52 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: Zipper 1.4</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-1130257629472599803</guid>
	<link>http://multixden.blogspot.com/2012/05/zipper-14.html</link>
	<description>&lt;div&gt;I'm happy to announce that yesterday the &lt;a href=&quot;http://gap.nongnu.org/&quot;&gt;GNUstep Application Project&lt;/a&gt; released version 1.4 of Zipper. It was adopted by GAP in accordance with the original author and the license changed to GPL v2.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Zipper is an archive tool which allow viewing of various formats and creation of tarball (with &lt;a href=&quot;http://www.gnustep.org/experience/GWorkspace.html&quot;&gt;GWorkspace&lt;/a&gt; Service).&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;What's new in this 1.4 release&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;First version released by GAP&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Interface redone in Gorm&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Extensive fixes to BSD tar support&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Bug fixes in the handling of archiver outputs, options and dates&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Portability fixes and crash fixes&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Updated infrastructure to current GNUstep make and runtime&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Macintosh port (to prove portability)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Where to find it?&lt;/div&gt;&lt;div&gt;In the GAP project: &lt;a href=&quot;http://gap.nongnu.org/zipper/index.html&quot;&gt;http://gap.nongnu.org/zipper/index.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Many thanks to Sebastian Reitenbach who contacted the original Author, Dirk Olmes, to make the move and who with Philippe Roussel helped during tested and debugging sessions&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/15746899-1130257629472599803?l=multixden.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 11 May 2012 09:06:45 +0000</pubDate>
	<author>noreply@blogger.com (Riccardo)</author>
</item>
<item>
	<title>FSF News: Richard Stallman speech in Barcelona canceled</title>
	<guid>http://www.fsf.org/news/richard-stallman-speech-in-barcelona-canceled</guid>
	<link>http://www.fsf.org/news/richard-stallman-speech-in-barcelona-canceled</link>
	<description>&lt;p&gt;At an event earlier today in Barcelona, Spain, FSF president Richard
Stallman was not feeling well and paramedics were called.&lt;/p&gt;

&lt;p&gt;He was in the hospital but has been discharged. He did not have a heart attack, as has been reported in some places.&lt;/p&gt;</description>
	<pubDate>Thu, 10 May 2012 22:24:57 +0000</pubDate>
</item>
<item>
	<title>coreutils @ Savannah: coreutils-8.17 released [stable]</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7230</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7230</link>
	<description>&lt;textarea readonly=&quot;readonly&quot; rows=&quot;20&quot; cols=&quot;80&quot; class=&quot;verbatim&quot;&gt;This is to announce coreutils-8.17, a stable release.
There have been 53 commits by 9 people in the 6 weeks since 8.16.
The changes are small and all seem safe.

See the NEWS below for a brief summary.

Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Andreas Schwab (1)
  Bernhard Voelker (2)
  Bruce Korb (1)
  Jim Meyering (38)
  Karl Berry (1)
  Kevin Lyda (1)
  Paul Eggert (4)
  Pádraig Brady (4)
  Stefano Lattarini (1)

Jim [on behalf of the coreutils maintainers]
==================================================================

Here is the GNU coreutils home page:
    http://gnu.org/s/coreutils/

For a summary of changes and contributors, see:
  http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v8.17
or run this command from a git-cloned coreutils directory:
  git shortlog v8.16..v8.17

To summarize the 126 gnulib-related changes, run these commands
from a git-cloned coreutils directory:
  git checkout v8.17
  git submodule summary v8.16

Here are the compressed sources and a GPG detached signature[*]:
  http://ftp.gnu.org/gnu/coreutils/coreutils-8.17.tar.xz
  http://ftp.gnu.org/gnu/coreutils/coreutils-8.17.tar.xz.sig

Use a mirror for higher download bandwidth:
  http://ftpmirror.gnu.org/coreutils/coreutils-8.17.tar.xz
  http://ftpmirror.gnu.org/coreutils/coreutils-8.17.tar.xz.sig

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify coreutils-8.17.tar.xz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69.1-2d4eb
  Automake 1.12a
  Gnulib v0.0-7375-ga3a0496
  Bison 2.5.834-2eeb1

==================================================================
NEWS

* Noteworthy changes in release 8.17 (2012-05-10) [stable]

** Bug fixes

  id and groups, when invoked with no user name argument, would print
  the default group ID listed in the password database, and sometimes
  that ID would be neither real nor effective.  For example, when run
  set-GID, or in a session for which the default group has just been
  changed, the new group ID would be listed, even though it is not
  yet effective. [bug introduced in coreutils-8.1]

  cp S D is no longer subject to a race: if an existing D were removed
  between the initial stat and subsequent open-without-O_CREATE, cp would
  fail with a confusing diagnostic saying that the destination, D, was not
  found.  Now, in this unusual case, it retries the open (but with O_CREATE),
  and hence usually succeeds.  With NFS attribute caching, the condition
  was particularly easy to trigger, since there, the removal of D could
  precede the initial stat.  [This bug was present in &quot;the beginning&quot;.]

  split --number=C /dev/null no longer appears to infloop on GNU/Hurd
  [bug introduced in coreutils-8.8]

  stat no longer reports a negative file size as a huge positive number.
  [bug present since 'stat' was introduced in fileutils-4.1.9]

** New features

  split and truncate now allow any seekable files in situations where
  the file size is needed, instead of insisting on regular files.

  fmt now accepts the --goal=WIDTH (-g) option.

  stat -f recognizes new file system types: bdevfs, inodefs, qnx6

** Changes in behavior

  cp,mv,install,cat,split: now read and write a minimum of 64KiB at a time.
  This was previously 32KiB and increasing to 64KiB was seen to increase
  throughput by about 10% when reading cached files on 64 bit GNU/Linux.

  cp --attributes-only no longer truncates any existing destination file,
  allowing for more general copying of attributes from one file to another.
&lt;/textarea&gt;</description>
	<pubDate>Thu, 10 May 2012 19:35:05 +0000</pubDate>
</item>
<item>
	<title>aris @ Savannah: GNU Aris 1.0 Released</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7229</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7229</link>
	<description>&lt;p&gt;The tarballs are available here:
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ftp.gnu.org/gnu/aris/aris-1.0.tar.gz&quot;&gt;http://ftp.gnu.org/gnu/aris/aris-1.0.tar.gz&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ftp.gnu.org/gnu/aris/aris-1.0.tar.bz2&quot;&gt;http://ftp.gnu.org/gnu/aris/aris-1.0.tar.bz2&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;GNU Aris is a logical proof program.  It supports both propositional and predicate logic, in addition to Boolean algebra and arithmetical logic, the latter of which it supports through the use of abstract sequences.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;GNU Aris' homepage: &amp;lt;&lt;a href=&quot;http://www.gnu.org/software/aris/&quot;&gt;http://www.gnu.org/software/aris/&lt;/a&gt;&amp;gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;This is the initial release of GNU Aris.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 10 May 2012 13:10:41 +0000</pubDate>
</item>
<item>
	<title>nana @ Savannah: Nana work</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7228</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7228</link>
	<description>&lt;p&gt;The author has had a few employment conniptions which resulted in loss of access to the archive. These have been resolved so if you are still using Nana or want something done drop me a line on &amp;lt;pjm@gnu.org&amp;gt;.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 10 May 2012 10:09:02 +0000</pubDate>
</item>
<item>
	<title>FSF News: FSF statement on jury's partial verdict in Oracle v Google</title>
	<guid>http://www.fsf.org/news/fsf-statement-on-jurys-partial-verdict-in-oracle-v-google</guid>
	<link>http://www.fsf.org/news/fsf-statement-on-jurys-partial-verdict-in-oracle-v-google</link>
	<description>Were it grounded in reality, Oracle's claim that copyright law gives them proprietary control over any software that uses a particular functional API would be terrible for free software and programmers everywhere.&lt;p&gt;On Monday, May 7th, the jury in &lt;em&gt;Oracle v Google&lt;/em&gt; reached a partial
verdict, which was based on instructions from Judge Alsup to assume
that the structure, sequence, and arrangement of Oracle's Java APIs
are subject to copyright. Whether or not Oracle can &lt;strong&gt;actually&lt;/strong&gt; claim
copyright on the Java API will be determined by Judge Alsup at a later
date.&lt;/p&gt;

&lt;p&gt;The following statement is attributed to John Sullivan, executive
director of the Free Software Foundation:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Were it grounded in reality, Oracle's claim that copyright law gives
them proprietary control over any software that uses a particular
functional API would be terrible for free software and programmers
everywhere. It is an unethical and greedy interpretation created
with the express purpose of subjugating as many computer users as
possible, and is particularly bad in this context because it comes
at a time when the sun has barely set on the free software
community's celebration of Java as a language newly suitable for use
in the free world. Fortunately, the claim is not yet reality, and we
hope Judge Alsup will keep it that way.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The FSF first &lt;a href=&quot;http://www.fsf.org/news/oracle-v-google&quot;&gt;responded&lt;/a&gt; to
&lt;em&gt;Oracle v Google&lt;/em&gt; in September 2010, but at the time we focused more
on the patent aspect of the case since details about Oracle's
copyright infringement claims had not yet been published. &lt;/p&gt;

&lt;p&gt;For more information on Monday's ruling, we recommend Groklaw's
&lt;a href=&quot;http://www.groklaw.net/article.php?story=20120507122749740&quot;&gt;coverage&lt;/a&gt;,
as well as EFF lawyer Julie Samuels's
&lt;a href=&quot;https://www.eff.org/deeplinks/2012/05/oracle-v-google-and-dangerous-implications-treating-apis-copyrightable&quot;&gt;article&lt;/a&gt;
on why APIs should not be subject to copyright.&lt;/p&gt;

&lt;h3&gt;About the Free Software Foundation&lt;/h3&gt;

&lt;p&gt;The Free Software Foundation, founded in 1985, is dedicated to
promoting computer users' right to use, study, copy, modify, and
redistribute computer programs. The FSF promotes the development and
use of free (as in freedom) software -- particularly the GNU operating
system and its GNU/Linux variants -- and free documentation for free
software. The FSF also helps to spread awareness of the ethical and
political issues of freedom in the use of software, and its Web sites,
located at fsf.org and gnu.org, are an important source of information
about GNU/Linux. Donations to support the FSF's work can be made at
&lt;a href=&quot;http://donate.fsf.org&quot;&gt;http://donate.fsf.org&lt;/a&gt;. Its headquarters are in Boston, MA, USA.&lt;/p&gt;

&lt;h3&gt;About Free Software and Open Source&lt;/h3&gt;

&lt;p&gt;The free software movement's goal is freedom for computer users. Some,
especially corporations, advocate a different viewpoint, known as
&quot;open source,&quot; which cites only practical goals such as making
software powerful and reliable, focuses on development models, and
avoids discussion of ethics and freedom. These two viewpoints are
different at the deepest level. For more explanation, see
&lt;a href=&quot;http://www.gnu.org/philosophy/open-source-misses-the-point.html&quot;&gt;http://www.gnu.org/philosophy/open-source-misses-the-point.html&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Wed, 09 May 2012 20:40:09 +0000</pubDate>
</item>
<item>
	<title>Paolo Carlini: C++11 Tidbits: Decltype (Part 1)</title>
	<guid>https://blogs.oracle.com/pcarlini/entry/c_11_tidbits_decltype_part</guid>
	<link>https://blogs.oracle.com/pcarlini/entry/c_11_tidbits_decltype_part</link>
	<description>&lt;h1&gt;&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;Decltype&lt;/code&gt; was among the first C++11 features implemented in GCC.  It has roots in a very old GNU extension named &lt;code&gt;__typeof__&lt;/code&gt;, also usable in C and well known to users of the GNU Compiler Collection.  The C++11 conforming implementation of the idea landed in GCC 4.3.x in 2008.  It overcame some defects of &lt;code&gt;__typeof__&lt;/code&gt;.  Both &lt;code&gt;decltype&lt;/code&gt; and &lt;code&gt;__decltype&lt;/code&gt; are available in GCC; the former only in c++11 mode, the latter both in c++11 and c++98 mode.  The legacy &lt;code&gt;__typeof__&lt;/code&gt; is now unmaintained, meaning no problematic aspects with it will be addressed in future, besides of course making sure that what used to work keeps on working.&lt;/p&gt;

&lt;p&gt;That said, let's introduce the basic concept of &lt;code&gt;decltype&lt;/code&gt;.  In its essence it's quite simple: the decltype operator queries the type of an expression.  When this is integrated with other C++11 features it can enable rather interesting programming constructs.&lt;/p&gt;

&lt;p&gt;A range of basic examples (from the ISO Document &lt;a href=&quot;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf&quot;&gt;N2343&lt;/a&gt;. See some of the references therein for
historical background and rationale) follows:&lt;/p&gt;

&lt;pre&gt;  const int&amp;amp;&amp;amp;;&amp;amp; foo();
  int i;
  struct A { double x; };
  const A* a = new A();

  decltype(foo())  x1;  //  type is const int&amp;amp;&amp;amp;      (1)
  decltype(i)      x2;  //  type is int              (2)
  decltype(a-&amp;gt;x)   x3;  //  type is double           (3)
  decltype((a-&amp;gt;x)) x4;  //  type is const double&amp;amp;    (4) 
&lt;/pre&gt;

&lt;p&gt;As shown by these, &lt;code&gt;decltype&lt;/code&gt; is not affected by the limitations of the traditional &lt;code&gt;__typeof__&lt;/code&gt; with respect to reference types.  See cases (1) and (4), which show that such types are handled in a consistent way.  It is, as such, fully integrated into the modern C++11 type system.&lt;/p&gt;

&lt;p&gt;More complex expressions are possible. For example:&lt;/p&gt;

&lt;pre&gt;  int    i;
  float  f;
  double d;
  
  typedef decltype(i + f)  type1;  // float
  typedef decltype(f + d)  type2;  // double
  typedef decltype(f &amp;lt; d)  type3;  // bool
&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;Decltype&lt;/code&gt; turns out to be very useful with templates in the context of generic programming, when the same generic function or class can be instantiated for different types.  Via &lt;code&gt;decltype&lt;/code&gt; the code can easily query the type of generic expressions, for example:&lt;/p&gt;

&lt;pre&gt;  template&amp;lt;typename T, typename U&amp;gt;
    void
    foo(T t, U u)
    {
       // ...

       typedef decltype(t * u) ptype;

       // use ptype...
    }
&lt;/pre&gt;

&lt;p&gt;The second part of this tidbit will present more possibilities that decltype enables.&lt;/p&gt;</description>
	<pubDate>Wed, 09 May 2012 17:44:52 +0000</pubDate>
</item>
<item>
	<title>FSF Events: &quot;Por una sociedad digital libre&quot;</title>
	<guid>http://www.fsf.org/events/20120510-barcelona</guid>
	<link>http://www.fsf.org/events/20120510-barcelona</link>
	<description>Barcelona, Spain - Auditori, Vertex Building, UPC Campus Nord, Barcelona 08034&lt;p&gt;Las actividades cuyo objetivo es la &quot;inclusión&quot; de más personas en
el empleo de las tecnologías digitales se basan en la suposición de
que ésto sea invariablemente algo bueno. Parecería que así es, si se
juzga considerando únicamente la conveniencia práctica inmediata. Sin
embargo, si juzgamos también en términos de derechos humanos, es el
tipo de mundo digital en el que nos quieren insertar lo que determina
si se trata de un bien o de un mal. Antes de luchar por la
inclusión digital, debemos cerciorarnos de que las personas estarán
en un mundo digital bueno.&lt;/p&gt;

&lt;p&gt;Favor de rellenar este formulario, para que podamos &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=84&amp;amp;reset=1&quot;&gt;contactarle acerca de eventos futuros en la región barcelonina.&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 09 May 2012 17:21:34 +0000</pubDate>
</item>
<item>
	<title>FSF Blogs: March 2012 Trip to Europe: Photos from Braga</title>
	<guid>http://www.fsf.org/blogs/rms/in-braga</guid>
	<link>http://www.fsf.org/blogs/rms/in-braga</link>
	<description>&lt;p&gt;Please fill out our form, so that we can contact you about future
events in and around &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=46&amp;amp;reset=1&quot;&gt;Paris,&lt;/a&gt; &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=66&amp;amp;reset=1&quot;&gt;Avignon,&lt;/a&gt; &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=64&amp;amp;reset=1&quot;&gt;Marseille,&lt;/a&gt; 
&lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=67&amp;amp;reset=1&quot;&gt;Braga,&lt;/a&gt; &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=50&amp;amp;reset=1&quot;&gt;Lisbon,&lt;/a&gt; &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=69&amp;amp;reset=1&quot;&gt;Madrid,&lt;/a&gt;
which RMS visited &lt;a href=&quot;http://www.fsf.org/events/rms-speeches.html&quot;&gt;while he was in
Europe&lt;/a&gt; on this last trip.

&lt;/p&gt;&lt;p&gt;Below are some photographic excerpts...&lt;/p&gt;


&lt;div style=&quot;border-style: solid; border-width: 2px; text-align: center; margin: 4px 50px 4px 50px; padding-top: 4px;&quot;&gt;

&lt;p&gt;...from Minho University, in Braga, Portugal, where RMS, hosted by CeSIUM (the Centro de Estudantes de Engenharia de Sistemas e Informática da Universidade do Minho), delivered his speech &quot;Copyright vs. Community in the Age of Computer Networks,&quot; on 28 February, to a full amphitheater:&lt;/p&gt;




&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-12.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-14.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-08.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;450&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-15.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-16.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-17.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-19.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-20.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-21.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-22.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-23.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-24.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-25.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-26.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-27.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-28.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-29.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-30.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;150&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-31.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-32.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120228-braga-05.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;450&quot; /&gt; 


&lt;p style=&quot;padding: 0px 20px 0px 20px; margin-top: 1px; text-align: center;&quot;&gt;
&lt;em&gt;(Photos courtesy of CeSium.)&lt;/em&gt;

&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;Please see &lt;a href=&quot;http://www.fsf.org/events&quot;&gt;www.fsf.org/events&lt;/a&gt; for a full list of all of RMS's confirmed engagements, and contact &lt;a href=&quot;mailto:rms-assist@gnu.org&quot;&gt;rms-assist@gnu.org&lt;/a&gt; if you'd like him to come speak.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;/div&gt;


 
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Thank you to everyone who helped make this tour a success!&lt;/strong&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 09 May 2012 11:58:56 +0000</pubDate>
</item>
<item>
	<title>FSF Blogs: March 2012 Trip to Europe: Photos from Madrid</title>
	<guid>http://www.fsf.org/blogs/rms/201203-madrid</guid>
	<link>http://www.fsf.org/blogs/rms/201203-madrid</link>
	<description>&lt;p&gt;Please fill out our form, so that we can contact you about future
events in and around &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=46&amp;amp;reset=1&quot;&gt;Paris&lt;/a&gt;
, &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=66&amp;amp;reset=1&quot;&gt;Avignon&lt;/a&gt;
, &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=64&amp;amp;reset=1&quot;&gt;Marseille &lt;/a&gt;
, &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=67&amp;amp;reset=1&quot;&gt;Braga&lt;/a&gt;,
&lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=50&amp;amp;reset=1&quot;&gt;Lisbon&lt;/a&gt;,
and &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=69&amp;amp;reset=1&quot;&gt;Madrid&lt;/a&gt;
, which RMS visited while he was in Europe on his last trip.&lt;/p&gt;


&lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=46&amp;amp;reset=1&quot;&gt;&lt;/a&gt;

&lt;p&gt;Below are some photographic excerpts of &lt;a href=&quot;http://www.fsf.org/events/aggregator/previous&quot;&gt;RMS's latest European trip,&lt;/a&gt; which included a stop...&lt;/p&gt;


&lt;div style=&quot;border-style: solid; border-width: 2px; text-align: center; margin: 4px 50px 4px 50px; padding-top: 4px;&quot;&gt;

&lt;p&gt;...in Madrid, at the IES Arquitecto Ventura Rodríguez, where four hundred people came to hear him speak, on 1 March:&lt;/p&gt;



&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120301-madrid-01.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120301-madrid-09.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120301-madrid-02.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120301-madrid-12.png&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 

&lt;p style=&quot;padding: 0px 20px 0px 20px; margin-top: 1px; text-align: center;&quot;&gt;
&lt;em&gt;(Photos courtesy of Alex Gorgan.)&lt;/em&gt;

&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;Please see &lt;a href=&quot;http://www.fsf.org/events&quot;&gt;www.fsf.org/events&lt;/a&gt; for a full list of all of RMS's confirmed engagements, and contact &lt;a href=&quot;mailto:rms-assist@gnu.org&quot;&gt;rms-assist@gnu.org&lt;/a&gt; if you'd like him to come speak.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;/div&gt;




&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Thank you to everyone who helped make this tour a success!&lt;/strong&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 09 May 2012 11:57:26 +0000</pubDate>
</item>
<item>
	<title>FSF Blogs: GNU spotlight with Karl Berry (April 2012)</title>
	<guid>http://www.fsf.org/blogs/community/gnu-spotlight-with-karl-berry-april-2012</guid>
	<link>http://www.fsf.org/blogs/community/gnu-spotlight-with-karl-berry-april-2012</link>
	<description>New GNU releases as of April 30, 2012:&lt;div class=&quot;GNUreleases imgright&quot;&gt;
&lt;h4&gt;New GNU releases this month:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/aspell&quot;&gt;aspell6-hus-0.03-1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/autoconf&quot;&gt;autoconf-2.69&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/autoconf&quot;&gt;autoconf-archive-2012.04.07&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/automake&quot;&gt;automake-1.12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/c-graph&quot;&gt;c-graph-2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/dfarc&quot;&gt;dfarc-3.10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/freedink&quot;&gt;freedink-1.08.20120427&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/freeipmi&quot;&gt;freeipmi-1.1.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/gawk&quot;&gt;gawk-4.0.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/gdb&quot;&gt;gdb-7.4.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/gnuhealth&quot;&gt;gnuhealth-1.4.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/gnujump&quot;&gt;gnujump-1.0.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/gnutls&quot;&gt;gnutls-3.0.19&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/gnutrition&quot;&gt;gnutrition-0.31.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/grep&quot;&gt;grep-2.12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/hello&quot;&gt;hello-2.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/help2man&quot;&gt;help2man-1.40.9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/librejs&quot;&gt;librejs-4.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/parallel&quot;&gt;parallel-20120422&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/psychosynth&quot;&gt;psychosynth-0.3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/sipwitch&quot;&gt;sipwitch-1.2.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/ucommon&quot;&gt;ucommon-5.2.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/xboard&quot;&gt;xboard-4.6.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/xnee&quot;&gt;xnee-3.13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/xorriso&quot;&gt;xorriso-1.2.2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;To get announcements of most new GNU releases, &lt;a href=&quot;http://lists.gnu.org/mailman/listinfo/info-gnu&quot;&gt;subscribe to the info-gnu mailing list&lt;/a&gt;. Nearly all GNU software is available from &lt;a href=&quot;http://ftp.gnu.org/gnu/&quot;&gt;ftp.gnu.org&lt;/a&gt;, or preferably &lt;a href=&quot;http://www.gnu.org/prep/ftp.html&quot;&gt;one of its mirrors&lt;/a&gt;. You can use the URL &lt;a href=&quot;http://ftpmirror.gnu.org/&quot;&gt;ftpmirror.gnu.org/&lt;/a&gt; to be automatically redirected to a (hopefully) nearby and up-to-date mirror.&lt;/p&gt;
&lt;p class=&quot;c&quot;&gt;&lt;img src=&quot;http://www.gnu.org/graphics/runfreegnu.png&quot; width=&quot;370&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/server/takeaction.html#unmaint&quot;&gt;Several GNU packages are looking for maintainers and other assistance&lt;/a&gt;. There's also a general page on &lt;a href=&quot;http://www.gnu.org/help/help.html&quot;&gt;how to help GNU&lt;/a&gt;, and &lt;a href=&quot;http://www.gnu.org/help/evaluation.html&quot;&gt;information on how to submit new packages to GNU&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, please feel free to write to me, &lt;a href=&quot;mailto:karl@gnu.org&quot;&gt;karl@gnu.org&lt;/a&gt;, with any GNUish questions or suggestions for future installments.&lt;/p&gt;</description>
	<pubDate>Tue, 08 May 2012 23:45:00 +0000</pubDate>
</item>
<item>
	<title>FSF Blogs: In Singapore</title>
	<guid>http://www.fsf.org/blogs/rms/201203-in-singapore</guid>
	<link>http://www.fsf.org/blogs/rms/201203-in-singapore</link>
	<description>RMS was in Singapore in March 2012.&lt;p&gt;Please fill out our form, so that &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=70&amp;amp;reset=1&quot;&gt;we can contact you about future events in and around Singapore.&lt;/a&gt;&lt;/p&gt; 

&lt;p&gt;Below are some photographic excerpts of &lt;a href=&quot;http://www.fsf.org/events/aggregator/previous&quot;&gt;his visit,&lt;/a&gt; which included a speech&lt;/p&gt;


&lt;div style=&quot;border-style: solid; border-width: 2px; text-align: center; margin: 4px 50px 4px 50px; padding-top: 4px;&quot;&gt;

&lt;p&gt;...at the National University of Singapore's School of Computing, on 13 March, where three-to-four hundred people came to hear him speak:&lt;/p&gt;



&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-19.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;450&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-03.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-15.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-16.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-05.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-06.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-12.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-14.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;450&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-22.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-34.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-36.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120313-singapore-65.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120313-singapore-66.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120313-singapore-67.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 1px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120313-singapore-68.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-43.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-24.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-30.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-40.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-45.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-46.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-49.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-50.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-51.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-52.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-54.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120316-singapore-55.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 

&lt;p style=&quot;padding: 0px 20px 0px 20px; margin-top: 1px; text-align: center;&quot;&gt;
&lt;em&gt;(Photos courtesy of the NUS School of Computing.)&lt;/em&gt;

&lt;/p&gt;&lt;p&gt;...and at the University Town Plaza, on 14 March:&lt;/p&gt;



&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120314-singapore-01.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120314-singapore-03.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120314-singapore-02.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;450&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120314-singapore-04.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 
&lt;img src=&quot;http://static.fsf.org/static/nosvn/rms-photos/scaled-20120314-singapore-05.jpg&quot; alt=&quot;&quot; style=&quot;margin-top: 4px;&quot; width=&quot;225&quot; /&gt; 

&lt;p style=&quot;padding: 0px 20px 0px 20px; margin-top: 1px; text-align: center;&quot;&gt;
&lt;em&gt;(Photos courtesy of the NUS School of Computing.)&lt;/em&gt;


&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;Please see &lt;a href=&quot;http://www.fsf.org/events&quot;&gt;www.fsf.org/events&lt;/a&gt; for a full list of all of RMS's confirmed engagements, and contact &lt;a href=&quot;mailto:rms-assist@gnu.org&quot;&gt;rms-assist@gnu.org&lt;/a&gt; if you'd like him to come speak.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;/div&gt;




&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Thank you to everyone who helped make this tour a success!&lt;/strong&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 08 May 2012 17:51:14 +0000</pubDate>
</item>
<item>
	<title>denemo @ Savannah: Another (!) release candidate</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7224</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7224</link>
	<description>&lt;p&gt;We have, at last, another release candidate. Hopefully without serious bugs this time. Please test  &lt;a href=&quot;http://www.denemo.org/downloads/denemo-release-candidate&quot;&gt;http://www.denemo.org/downloads/denemo-release-candidate&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 08 May 2012 08:46:47 +0000</pubDate>
</item>
<item>
	<title>librejs @ Savannah: LibreJS 4.6 released</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7222</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7222</link>
	<description>&lt;p&gt;GNU LibreJS version 4.6 has been released!
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Please find the latest version at:
&lt;br /&gt;
&lt;a href=&quot;http://www.gnu.org/software/librejs/?46&quot;&gt;http://www.gnu.org/software/librejs/?46&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;This update of LibreJS fixes a memory leak issue which could occur in rare circumstances. It also reduces CPU usage during the analysis stage by making the tree traversal function asynchronous and addresses a few more minor bugs, including one with the whitelist option which was introduced in the previous version.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;This release of version 4.6 of GNU LibreJS will be part of the upcoming IceCat 12.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Please send your feedback and report issues to GNU LibreJS mailing list: &lt;a href=&quot;https://lists.gnu.org/mailman/listinfo/bug-librejs&quot;&gt;https://lists.gnu.org/mailman/listinfo/bug-librejs&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Thank you!&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 06 May 2012 20:58:45 +0000</pubDate>
</item>
<item>
	<title>GNUnet News: GNUnet Hacker Travel Schedules for Spring 2012</title>
	<guid>https://gnunet.org/1741 at https://gnunet.org</guid>
	<link>https://gnunet.org/travel2012may</link>
	<description>&lt;p&gt;This May is travel time.  First, I'll be a hackathon at the Kunstwerk in Berlin (May 14-16) organized by TheGlobalSquare and the SecuShare people. Then I'll be attending the LUG Camp 2012 in Flensburg (with Krista) and finally IFIP Networking 2012 in Prague (with Bart and Nate).  At IFIP, we'll present our work on secure network size estimation.  Martin and I (and maybe Matthias) will also be at the GNU hacker meeting in Düsseldorf later this year to further discuss the new GNUnet Naming System (but admission there is likely going to be limited).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gnunet.org/travel2012may&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 05 May 2012 19:17:34 +0000</pubDate>
</item>
<item>
	<title>gnutls @ Savannah: gnutls 2.12.19</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7221</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7221</link>
	<description>&lt;p&gt;GnuTLS 2.12.19 has been released.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://article.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/6115&quot;&gt;http://article.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/6115&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sat, 05 May 2012 17:37:49 +0000</pubDate>
</item>
<item>
	<title>FSF News: Coalition against Digital Restrictions Management ready to go for May 4th Day Against DRM</title>
	<guid>http://www.fsf.org/news/coalition-against-digital-restrictions-management-ready-to-go-for-may-4th-day-against-drm</guid>
	<link>http://www.fsf.org/news/coalition-against-digital-restrictions-management-ready-to-go-for-may-4th-day-against-drm</link>
	<description>BOSTON, Massachusetts, USA -- Thursday, May 3, 2012 -- Defective by Design will hold its annual International Day Against DRM on Friday, May 4th, targeting the use of Digital Restrictions Management on ebooks. Several other organizations have joined to express their concern for the freedoms of authors and readers, including the Electronic Frontier Foundation, Creative Commons, O'Reilly Media, No Starch Press, the Accessible Computing Foundation, Libre Graphics Magazine, Fight for the Future, Angry Robot Books, APRIL, the Free Software Foundation and its sister organizations, FSF France, FSF India and FSF Europe.&lt;p&gt;Matt Lee, campaigns manager of Defective by Design, said, &quot;DRM is a growing problem in the area of ebooks, where people have had their books restricted so they can't freely loan, re-sell or donate them, read them without being tracked, or move them to a new device without re-purchasing all of them. They've even had their ebooks deleted by companies without their permission.&quot;&lt;/p&gt;
&lt;p&gt;As part of the day, people fed up with DRM are holding protest and awareness events in Cincinnati, Orlando, Amherst, San Francisco, Boston, Madrid, Rome, Manchester, Nagoya (Japan), and Aveiro (Portugal). More events are still being added at &lt;a href=&quot;http://libreplanet.org/wiki/Group:DefectiveByDesign/Day_Against_DRM_2012&quot;&gt;http://libreplanet.org/wiki/Group:DefectiveByDesign/Day_Against_DRM_2012&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Supporters are also taking action online, displaying the campaign's banner and using the opportunity to blog about their frustrations with DRM.&lt;/p&gt;
&lt;p&gt;Notable science fiction author and editor of the influential BoingBoing.net blog, Cory Doctorow said, &quot;As an author, I understand that DRM doesn't do squat to protect my interests. As a businessperson, I understand that DRM usurps my commercial relationships with my customers and hands them to DRM vendors.&quot;&lt;/p&gt;
&lt;p&gt;Sanders Kleinfeld, author of &lt;i&gt;HTML5 for publishers&lt;/i&gt; said in an interview with O'Reilly Media, &quot;What's disappointing right now is that Amazon is very set on their Mobi format for their Kindle device, Apple has made strides away from EPUB 3 with their latest iBooks 2.0 and iBooks Author. I think vendors that make these devices are interested in maintaining that lock-in for customers.&quot;&lt;/p&gt;
&lt;p&gt;Defective by Design has held previous international days against DRM in 2006, 2010 and 2011, focusing on use of DRM by Microsoft, Apple, Amazon, and the RIAA. Defective by Design is a campaign of the Free Software Foundation.&lt;/p&gt;
&lt;p&gt;Information on how to participate can be found at &lt;a href=&quot;http://dayagainstdrm.org&quot;&gt;http://dayagainstdrm.org&lt;/a&gt;. Pictures, videos, and accounts will be posted afterward at &lt;a href=&quot;http://defectivebydesign.org&quot;&gt;http://defectivebydesign.org&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;About the Free Software Foundation&lt;/h3&gt;
&lt;p&gt;The Free Software Foundation, founded in 1985, is dedicated to promoting computer users' right to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free (as in freedom) software -- particularly the GNU operating system and its GNU/Linux variants -- and free documentation for free software. The FSF also helps to spread awareness of the ethical and political issues of freedom in the use of software, and its Web sites, located at fsf.org and gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at &lt;a href=&quot;http://donate.fsf.org&quot;&gt;http://donate.fsf.org&lt;/a&gt;. Its headquarters are in Boston, MA, USA.&lt;/p&gt;
&lt;h3&gt;Media Contacts&lt;/h3&gt;
&lt;p&gt;Matt Lee &lt;br /&gt; Campaigns Manager &lt;br /&gt; Free Software Foundation &lt;br /&gt; +1-617-500-3284 &lt;br /&gt; &lt;a href=&quot;mailto:campaigns@fsf.org&quot;&gt;campaigns@fsf.org&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;#&lt;/h2&gt;</description>
	<pubDate>Fri, 04 May 2012 22:08:12 +0000</pubDate>
</item>
<item>
	<title>Coreutils Status Reports: coreutils inbox - Apr 2012</title>
	<guid>http://www.pixelbeat.org/patches/coreutils/inbox_apr_2012.html</guid>
	<link>http://www.pixelbeat.org/patches/coreutils/inbox_apr_2012.html#1336151193</link>
	<description>Latest news from the coreutils project</description>
	<pubDate>Fri, 04 May 2012 17:06:33 +0000</pubDate>
</item>
<item>
	<title>xnee @ Savannah: Xnee 3.13 ('Levon Helm') released</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7220</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7220</link>
	<description>&lt;p&gt;We are pleased to announce the availability of GNU Xnee 3.13
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;GNU Xnee is a suite of programs that can record, replay and distribute
&lt;br /&gt;
user actions under the X11 environment. Think of it as a robot that can
&lt;br /&gt;
imitate the job you just did. GNU Xnee can be used to:
&lt;br /&gt;
    Automate tests
&lt;br /&gt;
    Demonstrate programs
&lt;br /&gt;
    Distribute actions
&lt;br /&gt;
    Record and replay 'macro'
&lt;br /&gt;
    Retype the content of a file
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Getting the Software
&lt;br /&gt;
====================
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;   &lt;a href=&quot;ftp://ftp.gnu.org/gnu/xnee/xnee-3.13.tar.gz&quot;&gt;ftp://ftp.gnu.org/gnu/xnee/xnee-3.13.tar.gz&lt;/a&gt;
&lt;br /&gt;
   &lt;a href=&quot;ftp://ftp.gnu.org/gnu/xnee/xnee-3.13.tar.gz.sig&quot;&gt;ftp://ftp.gnu.org/gnu/xnee/xnee-3.13.tar.gz.sig&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;or one of the mirror sites as found in:
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;   &lt;a href=&quot;http://www.gnu.org/prep/ftp.html&quot;&gt;http://www.gnu.org/prep/ftp.html&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Checksums
&lt;br /&gt;
===========
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;  md5sum:
&lt;br /&gt;
    1af416c39b05250fc5b82eadd3a57394  xnee-3.13.tar.gz
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;  cksum:
&lt;br /&gt;
    872277750 1789301 xnee-3.13.tar.gz
&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;New in this release
&lt;br /&gt;
===================
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;   * Fixed bugs:
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;     Bug-xnee mailing list:
&lt;br /&gt;
        WARNING: Enough valuators ... still not printing&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 03 May 2012 22:15:12 +0000</pubDate>
</item>
<item>
	<title>freefont @ Savannah: New release 2012-05-03</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7216</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7216</link>
	<description>&lt;p&gt;There's a new release!  It's
&lt;br /&gt;
	20120503
&lt;br /&gt;
Find binaries and sources at
&lt;br /&gt;
	&lt;a href=&quot;http://ftp.gnu.org/gnu/freefont/&quot;&gt;http://ftp.gnu.org/gnu/freefont/&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;There are lots of improvements, thanks to the efforts of many contributors.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Main efforts
&lt;br /&gt;
============
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Latin, Greek, Cyrillic
&lt;br /&gt;
----------------------
&lt;br /&gt;
Overall glyph-by-glyph standardization of spacing.
&lt;br /&gt;
Re-kerned based on the new spacing.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Arabic
&lt;br /&gt;
------
&lt;br /&gt;
(Serif regular and bold) all letters re-done, better to resemble modern type in the Nask style, and better to use positional forms. 
&lt;br /&gt;
Main range and Supplement-B completed, as well as the first section of Supplement-A (all but ligatures).
&lt;br /&gt;
Took steps to make the range functional for 
&lt;br /&gt;
    Arabic, Persian (Farsi), Urdu, Pashto, Seraiki, Uighur, and Malay 
&lt;br /&gt;
as well as several African scripts.
&lt;br /&gt;
(Mono) added basic range and tables.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Cyrillic
&lt;br /&gt;
--------
&lt;br /&gt;
Serbian/Macedonian localized forms for de, cursive gje, sha, be, ta, 
&lt;br /&gt;
Bulgarian alternative forms for several letters (serif, as Style Set)
&lt;br /&gt;
(Sans) letters for Abkhaz and Azerbaijani, and Nivkh.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Devanagari
&lt;br /&gt;
----------
&lt;br /&gt;
(Serif and SerifBold) imported outlines from the Velthuis latex font, to support for Hindi, Marathi, and Sanskrit, including localized glyphs for Calcutta, Bombay, and Nepali.
&lt;br /&gt;
(Sans) overhauled range, adding some glyphs and rearranging some tables. 
&lt;br /&gt;
(Sans Bold) Made range based on medium weight version.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Gujarati
&lt;br /&gt;
--------
&lt;br /&gt;
(Serif) Implemented range using glyphs from Samyak Gujarati font.
&lt;br /&gt;
Deleted whole range in Sans (needs to start over again anyway).
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Oriya
&lt;br /&gt;
-----
&lt;br /&gt;
(Serif) Implemented range in Serif using glyphs from Samyak Oriya font.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Malayalaam
&lt;br /&gt;
----------
&lt;br /&gt;
(Sans) Replaced range with with Meera 04 font of Swathanthra Malayalam Computing
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Gurmukhi
&lt;br /&gt;
--------
&lt;br /&gt;
(Serif) Replaced range with glyphs from the Punjabi font by Hardip Singh Pannu
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Sinhala
&lt;br /&gt;
-------
&lt;br /&gt;
(Serif) made a bold face
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Old Italic
&lt;br /&gt;
----------
&lt;br /&gt;
(Mono) new letters constructed by S. White
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Other additions
&lt;br /&gt;
===============
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;IPA
&lt;br /&gt;
---
&lt;br /&gt;
Letters for North American languages
&lt;br /&gt;
	Saanich/Musqueam, Kwak̕wala
&lt;br /&gt;
Some replacements for d-, l-, t-apostrophe
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Runic
&lt;br /&gt;
-----
&lt;br /&gt;
(Mono) completely re-did range to fit weight, and to look better.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Syriac
&lt;br /&gt;
------
&lt;br /&gt;
Made new Unicode letters like those from Tim Erikson's Carlo Ator
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Thaana
&lt;br /&gt;
------
&lt;br /&gt;
(SerifBold) derived from medium version
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Bengali
&lt;br /&gt;
-------
&lt;br /&gt;
Ganda mark
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Malayalam
&lt;br /&gt;
---------
&lt;br /&gt;
New Unicode characters, corrected some marks in Sans.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Greek
&lt;br /&gt;
-----
&lt;br /&gt;
Lunate letters
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Latin Extended-A
&lt;br /&gt;
----------------
&lt;br /&gt;
Shona letters, other African letters
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Latin Extended-D
&lt;br /&gt;
----------------
&lt;br /&gt;
H-hook (U+A7AA) for Chadian languages
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Combining Diacritical marks
&lt;br /&gt;
---------------------------
&lt;br /&gt;
(Mono) Completed range
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Currency
&lt;br /&gt;
--------
&lt;br /&gt;
(Serif) Indian Rupee courtesy of Daniel Johnson
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Specials
&lt;br /&gt;
--------
&lt;br /&gt;
Filled out range in all faces
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Control Pictures
&lt;br /&gt;
----------------
&lt;br /&gt;
Filled out range in regular style of each face
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;various additions to
&lt;br /&gt;
--------------------
&lt;br /&gt;
	Letterlike symbols
&lt;br /&gt;
	Miscellaneous symbols
&lt;br /&gt;
	Mathematical Operators
&lt;br /&gt;
	Miscellaneous Mathematical Symbols-A
&lt;br /&gt;
	Miscellaneous Mathematical Symbols-B
&lt;br /&gt;
	Phonetic Extensions
&lt;br /&gt;
	Punctuation, new Punctuation Supplemental range
&lt;br /&gt;
	Geometric Shapes
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Typographic
&lt;br /&gt;
===========
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;small caps
&lt;br /&gt;
----------
&lt;br /&gt;
(Serif,SerifBold,Sans,SansBold)
&lt;br /&gt;
Replacement glyphs and tables for core Latin letters.
&lt;br /&gt;
also glyphs for script-size letters.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;new substitution look-ups
&lt;br /&gt;
-------------------------
&lt;br /&gt;
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;small caps,
&lt;/li&gt;
&lt;li&gt;caps to small caps,
&lt;/li&gt;
&lt;li&gt;old-style figures,
&lt;/li&gt;
&lt;li&gt;proportional numbers,
&lt;/li&gt;
&lt;li&gt;slashed zero,
&lt;/li&gt;
&lt;li&gt;vulgar fractions,
&lt;/li&gt;
&lt;li&gt;superscripts,
&lt;/li&gt;
&lt;li&gt;subscripts
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Technical/legal
&lt;br /&gt;
===============
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;WOFF (Web Open Font Format) version, as well as directions for constructing
&lt;br /&gt;
WOFF derivatives.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Hashed out how the license works with Web Fonts technologies.
&lt;br /&gt;
New file webfont_guidelines.txt contains instructions.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Project version control switched from CVS to SVN.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Re-arranged the tools/ directory;
&lt;br /&gt;
now package .sfd files in a &quot;&lt;strong&gt;src&lt;/strong&gt;&quot; tarball with a top-level Makefile.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Filled in IBM Classifications
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Removed angle-brackets from license text that triggered bugs in some software.
&lt;br /&gt;
Likewise scripts to automatically clean up the SVN version string in fonts.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Cleaned up some incorrect Indic language lookups, that weren't being triggered
&lt;br /&gt;
correctly due to FontForge bugs.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Added script to generate Arabic test pages, courtesy of Emmanuel Vallois.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Clean-ups
&lt;br /&gt;
=========
&lt;br /&gt;
Many validation issues (some due to font changes, some due to FontForge changes)
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Adjustments
&lt;br /&gt;
===========
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Latin, Greek, Cyrillic
&lt;br /&gt;
----------------------
&lt;br /&gt;
Much fiddling with accents, for various reasons (including bug reports.)
&lt;br /&gt;
(Sans) acute and grave accent on capitals made to fit in line,
&lt;br /&gt;
(Serif, Sans) Hungarian umlaut and double-grave relaxed angle a bit.
&lt;br /&gt;
Regularized bullet-like characters somewhat.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Greek, Serif Cyrillic
&lt;br /&gt;
----------------------
&lt;br /&gt;
Made Phi, Ef more distinct
&lt;br /&gt;
Reduced sizes of hooks on many letters.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Hebrew
&lt;br /&gt;
------
&lt;br /&gt;
Adjusted marks, cantillation points; widened Hebrew wide letters more.
&lt;br /&gt;
Made yod in Yiddish distinct from Hebrew.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Osmanya
&lt;br /&gt;
-------
&lt;br /&gt;
Corrected Unicode values.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Malayalam
&lt;br /&gt;
---------
&lt;br /&gt;
Rearranged some incorrect lookups.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Tamil
&lt;br /&gt;
-------
&lt;br /&gt;
Several tables added to resolve spacing issues.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Super/Sub scripts
&lt;br /&gt;
-----------------
&lt;br /&gt;
Regularized positioning--All the &quot;superior&quot; numerals and a few superscript
&lt;br /&gt;
Latin letters got positioned so they go over the em height.
&lt;br /&gt;
Latin ordinals are positioned parallel to em height. 
&lt;br /&gt;
Many glyphs made to reference new small caps and script-size glyphs.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Thanks to 
&lt;br /&gt;
=========
&lt;br /&gt;
Daniel Johnson
&lt;br /&gt;
Tim Erikson
&lt;br /&gt;
Emmanuel Vallois (!)
&lt;br /&gt;
Zdeněk Wagner
&lt;br /&gt;
Monika Shah
&lt;br /&gt;
Swathanthra Malayalam Computing (Praveen A., Santhosh Thottingal)
&lt;br /&gt;
Sarovar.org, who host the Samyak fonts (especially Rahul Bhalerao)
&lt;br /&gt;
Jason Woolman (of Musqueam First Nation)
&lt;br /&gt;
Chris Harvey (LanguageGeek)
&lt;br /&gt;
Timothy Montler
&lt;br /&gt;
Samyak font admin Rahul Bhalerao
&lt;br /&gt;
Pavel Skrylev
&lt;br /&gt;
Karl Berry
&lt;br /&gt;
Alessandro Ceschini
&lt;br /&gt;
Tim Erickson
&lt;br /&gt;
Harshula 
&lt;br /&gt;
Sander van Geloven
&lt;br /&gt;
Masoud Pourmoosa
&lt;br /&gt;
Savannah.org maintenance team
&lt;br /&gt;
And the numerous issue reporters, question-askers, detractors, and users!&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 03 May 2012 14:02:54 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: Cynthiune on Windows</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-1389298067599340607</guid>
	<link>http://multixden.blogspot.com/2012/05/cynthiune-on-windows.html</link>
	<description>During the revamp we of GAP are giving to Cynthiune, I revived today also the Windows port, look at how it is running on Windows 7... and yes, it plays really (something I am yet unabel to achieve on NetBSD...)&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://4.bp.blogspot.com/-Hn0fgfH__4U/T6FifVxvwuI/AAAAAAAAATE/SLz2Ao2OK_s/s1600/Cynthiune_Windows.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/-Hn0fgfH__4U/T6FifVxvwuI/AAAAAAAAATE/SLz2Ao2OK_s/s320/Cynthiune_Windows.png&quot; height=&quot;205&quot; border=&quot;0&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/15746899-1389298067599340607?l=multixden.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 02 May 2012 16:36:51 +0000</pubDate>
	<author>noreply@blogger.com (Riccardo)</author>
</item>
<item>
	<title>FSF Events: Free Software and Your Freedom</title>
	<guid>http://www.fsf.org/events/20120529-vilavelha</guid>
	<link>http://www.fsf.org/events/20120529-vilavelha</link>
	<description>Vila Velha, Brazil - UVV. cine theater, Rua Comissário José Dantas de Melo, 21 Boa Vista&lt;p&gt;Richard Stallman will speak about the goals and philosophy of the
Free Software Movement, and the status and history of the GNU
operating system, which in combination with the kernel Linux is now
used by tens of millions of users world-wide.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=79&amp;amp;reset=1&quot;&gt;Registration is required.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please fill out our contact form, so that &lt;a href=&quot;https://crm.fsf.org/civicrm/profile/create?gid=79&amp;amp;reset=1&quot;&gt;we can contact you about future events in Vila Velha.&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 02 May 2012 09:20:47 +0000</pubDate>
</item>
<item>
	<title>autoconf @ Savannah: Autoconf 2.69 [stable]</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=7215</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=7215</link>
	<description>&lt;p&gt;Autoconf 2.69 has been released, see the release announcement:
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;https://lists.gnu.org/archive/html/autoconf/2012-04/msg00041.html&quot;&gt;https://lists.gnu.org/archive/html/autoconf/2012-04/msg00041.html&lt;/a&gt;&amp;gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 01 May 2012 22:36:37 +0000</pubDate>
</item>

</channel>
</rss>

