July 28, 2015
Sup peeps. So, after the slog to update Guile's intermediate language, I wanted to land some new optimizations before moving on to the next thing. For years I've been meaning to do some loop optimizations, and I was finally able to land a few of them.
For a long time I have wanted to do "loop peeling". Loop peeling means peeling off the first iteration of a loop. If you have a source program that looks like this:
while foo: bar() baz()
Loop peeling turns it into this:
if foo: bar() baz() while foo: bar() baz()
You wouldn't think that this is actually an optimization, would you? Well on its own, it's not. But if you combine it with common subexpression elimination, then it means that the loop body is now dominated by all effects and all loop-invariant expressions that must be evaluated for the expression to loop.
In dynamic languages, this is most useful when one source expression expands to a number of low-level steps. So for example if your language runtime implements top-level variable references in three parts, one where it gets a reference to a mutable box, then it checks if the box has a value, and and the third where it unboxes it, then we would have:
if foo: bar_location = lookup("bar") bar_value = dereference(bar_location) if bar_value is null: throw NotFound("bar") call(bar_value) baz_location = lookup("baz") baz_value = dereference(baz_location) if baz_value is null: throw NotFound("baz") call(baz_value) while foo: bar_value = dereference(bar_location) call(bar_value) baz_value = dereference(baz_location) call(baz_value)
The result is that we have hoisted the lookups and null checks out of the loop (if a box can never transition from full back to empty). It's a really powerful transformation that can even hoist things that traditional loop-invariant code motion can't, but more on that later.
Now, the problem with loop peeling is that usually values will escape your loop. For example:
while foo: x = qux() if x then return x ...
In this little example, there is a value x, and the return x statement is actually not in the loop. It's syntactically in the loop, but the underlying representation that the compiler uses looks more like this:
function qux(k): label loop_header(): fetch(foo) -gt; loop_test label loop_test(foo_value): if foo_value then -> exit else -> body label body(): fetch(x) -gt; have_x label have_x(x_value): if x_value then -> return_x else -> loop_header label return_x(): values(x) -> k label exit(): ...
This is the "CPS soup" I described in my last post. Only the bold parts are in the loop; notably, the return is outside the loop. Point being, if we peel off the first iteration, then there are two possible values for x that we would return:
if foo: x1 = qux() if x1 then return x1 while foo: x2 = qux() if x2 then return x2 ...
I have them marked as x1 and x2. But I've also duplicated the return x terms, which is not what we want. We want to peel off the first iteration, which will cause code growth equal to the size of the loop body, but we don't want to have to duplicate everything that's after the loop. What we have to do is re-introduce a join point that defines x:
if foo: x1 = qux() if x1 then join(x1) while foo: x2 = qux() if x2 then join(x2) ... label join(x) return x
Here I'm playing fast and loose with notation because the real terms are too gnarly. What I'm trying to get across is that for each value that flows out of a loop, you need a join point. That's fine, it's a bit more involved, but what if your loop exits to two different points, but one value is live in both of them? A value can only be defined in one place, in CPS or SSA. You could re-place a whole tree of phi variables, in SSA parlance, with join blocks and such, but it's just too hard.
However we can still get the benefits of peeling in most cases if we restrict ourselves to loops that exit to only one continuation. In that case the live variable set is the intersection of all variables defined in the loop that are live at the exit points. Easy enough, and that's what we have in Guile now. Peeling causes some code growth but the loops are smaller so it should still be a win. Check out the source, if that's your thing.
loop-invariant code motion
Usually when people are interested in moving code out of loops they talk about loop-invariant code motion, or LICM. Contrary to what you might think, LICM is complementary to peeling: some things that peeling+CSE can hoist are not hoistable by LICM, and vice versa.
Unlike peeling, LICM does not cause code growth. Instead, for each expression in a loop, LICM tries to hoist it out of the loop if it can. An expression can be hoisted if all of these conditions are true:
It doesn't cause the creation of an observably new object. In Scheme, the definition of "observable" is quite subtle, so in practice in Guile we don't hoist expressions that can cause any allocation. We could use alias analysis to improve this.
The expression cannot throw an exception, or the expression is always evaluated for every loop iteration.
The expression makes no writes to memory, or if it writes to memory, other expressions in the loop cannot possibly read from that memory. We use effects analysis for this.
The expression makes no reads from memory, or if it reads from memory, no other expression in the loop can clobber those reads. Again, effects analysis.
The expression uses only loop-invariant variables.
This definition is inductive, so once an expression is hoisted, the values it defines are then considered loop-invariant, so you might be able to hoist a whole chain of values.
Compared to loop peeling, this has the gnarly aspect of having to explicitly reason about loop invariance and manually move code, which is a pain. (Really LICM would be better named "artisanal code motion".) However it causes no code growth, which is a plus, though like peeling it can increase register pressure. But the big difference is that LICM can hoist effect-free expressions that aren't always executed. Consider:
while foo: x = qux() ? "hi" : "ho"
Here for some reason it could be faster to cache "hi" or "ho" in registers, which is what LICM allows:
hi, ho = "hi", "ho" while foo: x = qux() ? hi : ho
On the other hand, LICM alone can't hoist the if baz is null checks in this example from above:
while foo: bar() baz()
The issue is that the call to bar() might not return, so the error that might be thrown if baz is null shouldn't be observed until bar is called. In general we can't hoist anything that might throw an exception past some non-hoisted code that might throw an exception. This specific situation happens in Guile but there are similar ones in any language, I think.
More formally, LICM will hoist effectful but loop-invariant expressions that postdominate the loop header, whereas peeling hoists those expressions that dominate all back-edges. I think? We'll go with that. Again, the source.
Loop inversion is a little hack to improve code generation, and again it's a little counterintuitive. If you have this loop:
while n < x: n++
Loop inversion turns it into:
if n < x: do n++ while n < x
The goal is that instead of generating code that looks like this:
header: test n, x; branch-if-greater-than-or-equal done; x = x + 1 goto header done:
You make something that looks like this:
test n, x; branch-if-greater-than-or-equal done; header: x = x + 1 test n, x; branch-if-less-than header; done:
The upshot is that the loop body now contains one branch instead of two. It's mostly helpful for tight loops.
It turns out that you can express this transformation on CPS (or SSA, or whatever), but that like loop peeling the extra branch introduces an extra join point in your program. If your loop exits to more than one label, then we have the same problems as loop peeling. For this reason Guile restricts loop inversion (which it calls "loop rotation" at the moment; I should probably fix that) to loops with only one exit continuation.
Loop inversion has some other caveats, but probably the biggest one is that in Guile it doesn't actually guarantee that each back-edge is a conditional branch. The reason is that usually a loop has some associated loop variables, and it could be that you need to reshuffle those variables when you jump back to the top. Mostly Guile's compiler manages to avoid shuffling, allowing inversion to have the right effect, but it's not guaranteed. Fixing this is not straightforward, since the shuffling of values is associated with the predecessor of the loop header and not the loop header itself. If instead we reshuffled before the header, that might work, but each back-edge might have a different shuffling to make... anyway. In practice inversion seems to work out fine; I haven't yet seen a case where it doesn't work. Source code here.
One final note: what is a loop anyway? Turns out this is a somewhat hard problem, especially once you start trying to identify nested loops. Guile currently does the simple thing and just computes strongly-connected components in a function's flow-graph, and says that a loop is a non-trivial SCC with a single predecessor. That won't tease apart loop nests but oh wells! I spent a lot of time last year or maybe two years ago with that "Loop identification via D-J graphs" paper but in the end simple is best, at least for making incremental steps.
Okeysmokes, until next time, loop on!
July 27, 2015
Hello internets! This blog goes out to my long-time readers who have followed my saga hacking on Guile's compiler. For the rest of you, a little history, then the new thing.
In the olden days, Guile had no compiler, just an interpreter written in C. Around 8 years ago now, we ported Guile to compile to bytecode. That bytecode is what is currently deployed as Guile 2.0. For many reasons we wanted to upgrade our compiler and virtual machine for Guile 2.2, and the result of that was a new continuation-passing-style compiler for Guile. Check that link for all the backstory.
So, I was going to finish documenting this intermediate language about 5 months ago, in preparation for making the first Guile 2.2 prereleases. But something about it made me really unhappy. You can catch some foreshadowing of this in my article from last August on common subexpression elimination; I'll just quote a paragraph here:
In essence, the scope tree doesn't necessarily reflect the dominator tree, so not all transformations you might like to make are syntactically valid. In Guile 2.2's CSE pass, we work around the issue by concurrently rewriting the scope tree to reflect the dominator tree. It's something I am seeing more and more and it gives me some pause as to the suitability of CPS as an intermediate language.
This is exactly the same concern that Matthew Fluet and Stephen Weeks had back in 2003:
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.
As a concrete example, consider common-subexpression elimination. Suppose we have a common subexpression x = e that dominates an expression y = e in a function. In CPS, if y = e happens to be within the scope of x = e, then we are fine and can rewrite it to y = x. If however, y = e is not within the scope of x, 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 y = e with y = x, without having to worry about providing a proof in the output that x dominates y (i.e. without putting y in the scope of x)
To be honest I think all this talk about dominators is distracting. Dominators are but a lightweight flow analysis, and I usually find myself using full-on flow analysis to compute the set of optimizations that I can do on a piece of code. In fact the only use I had for dominators in the nested CPS language was to rewrite scope trees! The salient part of Weeks' observation is that nested scope trees are the problem, not that dominators are the solution.
So, after literally years of hemming and hawing about this, I finally decided to remove nested scope trees from Guile's CPS intermediate language. Instead, a function is now a collection of labelled continuations, with one distinguished entry continuation. There is no more $letk term to nest continuations in each other. A program is now represented as a "soup" -- basically a map from labels to continuation bodies, again with a distinguished entry. As an example, consider this expression:
function(x): return add(x, 1)
If we rewrote it in continuation-passing style, we'd give the function a name for its "tail continuation", ktail, and annotate each expression with its continuation:
function(ktail, x): add(x, 1) -> ktail
Here the -> ktail means that the add expression passes its values to the continuation ktail.
With nested CPS, it could look like:
function(ktail, x): letk have_one(one): add(x, one) -> ktail load_constant(1) -> have_one
Here the label have_one is in a scope, as is the value one. With "CPS soup", though, it looks more like this:
function(ktail, x): label have_one(one): add(x, one) -> ktail label main(x): load_constant(1) -> have_one
It's a subtle change, but it took a few months to make so it's worth pointing out what's going on. The difference is that there is no scope tree for labels or variables any more. A variable can be used at a label if it flows to the label, in a flow analysis sense. Indeed, determining the set of variables that can be used at a label requires flow analysis; that's what Weeks was getting at in his 2003 mail about the advantages of SSA, which are really the advantages of an intermediate language without nested scope trees.
The question arises, though, now that we've decided on CPS soup, how should we represent a program as a value? We've gone from a nested term to a graph term, and we need to find a way to represent it somehow that facilitates looking up labels by name, and facilitates tree rewrites.
In Guile's IR, labels and variables are both integers, so happily enough, we have such a data structure: Clojure-style maps specialized for integer keys.
Friends, if there has been one realization or revolution for me in the last year, it has been Clojure-style data structures. Here's why. In compilers, I often have to build up some kind of analysis, then use that analysis to transform data. Often I need to keep the old term around while I build a new one, but it would be nice to share state between old and new terms. With a nested tree, if a leaf changed you'd have to rebuild all surrounding terms, which is gnarly. But with Clojure-style data structures, more and more I find myself computing in terms of values: build up this value, transform this map to that set, fold over this map -- and yes, you can fold over Guile's intmaps -- and so on. By providing an expressive data structure for which I can control performance characteristics by using transients if needed, these data structures make my programs more about data and less about gnarly machinery.
As a concrete example, the old contification pass in Guile, I didn't have the mental capacity to understand all the moving parts in such a way that I could compute an optimal contification from the beginning; instead I had to iterate to a fixed point, as Kennedy did in his "Compiling with Continuations, Continued" paper. With the new CPS soup language and with Clojure-style data structures, I could actually fit more of the algorithm into my head, with the result that Guile now contifies optimally while avoiding the fixed-point transformation. Also, the old pass used hash tables to represent the analysis, which I found incredibly confusing to reason about -- I totally buy Rich Hickey's argument that place-oriented programming is the source of many evils in programs, and hash tables are nothing if not a place party. Using functional maps let me solve harder problems because they are easier for me to reason about.
Contification isn't an isolated case, either. For example, we are able to do the complete set of optimizations from the "Optimizing closures in O(0) time" paper, including closure sharing, which I think makes Guile unique besides Chez Scheme. I wasn't capable of doing it on the old representation because it was just too hard for me to think about, because my data structures weren't right.
This new "CPS soup" language is still a first-order CPS language in that each term specifies its continuation, and that variable names appear in the continuation of a definition, not the definition itself. This effectively makes every variable a phi variable, in the sense of SSA, and you have to do some work to get to a variable's definition. It could be that still this isn't the right number of names; consider this function:
function foo(k, x): label have_y(y) bar(y) -> k label y_is_two() load_constant(2) -> have_y label y_is_one() load_constant(1) -> have_y label main(x) if x -> y_is_one else -> y_is_two
Here there is no distinguished name for the value load_constant(1) versus load_constant(2): both are possible values for y. If we ended up giving them names, we'd have to reintroduce actual phi variables for the joins, which would basically complete the transformation to SSA. Until now though I haven't wanted those names, so perhaps I can put this off. On the other hand, every term has a label, which simplifies many things compared to having to contain terms in basic blocks, as is usually done in SSA. Yet another chapter in CPS is SSA is CPS is SSA, it seems.
Welp, that's all the nerdery for right now. Talk at yall later!
Old god of abundance in a sad posture, rejected gift by a technocracy that disregards art, with engaged artist behind – still frame of #artwork by Sean Lynch at #Venice #Biennale of #Art for the #Irish pavillon. One of my favs for #biennale2015 #biennaledivenezia #biennalearte2015 #biennalevenezia
The post Old god of abundance in a sad posture, rejected gift by a technocracy that disregards art, with engaged artist behind – still frame of #artwork by Sean Lynch at #Venice #Biennale of #Art for the #Irish pavillon. One of my favs for #biennale2015 #biennaledivenezia #biennalearte2015 #biennalevenezia appeared first on Pics and bits.
July 26, 2015
THE RITE OF SPRING as performed by She She Pop and their mothers. Roma, Short Theatre Festival 4 sept
“La tecnología de la desaparición ya no es nada más una tecnología represiva, si no que ya es una tecnología política para controlar a la población”
- La práctica de la desaparición forzada en México inició en 1969 con el profesor Epifanio Avilés Ocampo, quien fue desaparecido por el ejército mexicano en el estado de Guerrero al relacionarlo con la guerrilla.
- Desde 2006 a la fecha, la cifra es de 30 mil desaparecidos y se han registrado hasta 100 mil ejecuciones.
La segunda desaparición fue colectiva en 1971 en Acapulco Guerrero, donde desaparecieron al padre, a la madre y al hijo, puntualizó el investigador Roberto González
Para el año 1974 ya se tenía un registro de más de 500 desaparecidos y la mayoría fueron miembros de la guerrilla de Lucio Cabañas.
July 25, 2015
July 24, 2015
The event homepage is https://fsf.org/fsf30/celebration and the RSVP form is open. The FSF encourages use of the hashtag #FSF30 on social media (read the foundation's position on different social media platforms).
The FSF is also planning a mini-conference, also on October 3, during the day, where the free software community will share lessons from its first thirty years and plan for the future. The foundation may also hold a fundraising dinner on Friday, October 2nd.
Volunteer or Sponsor
The FSF is seeking volunteers to help set up the venue and greet guests. Individuals with skills in free software livestreaming are also needed. All volunteers will receive a special reverse birthday gift from the FSF.
The foundation is also seeking general event, beer, or food sponsors. To sponsor or recommend a sponsor, or to volunteer, contact email@example.com.
Supporters around the world have already expressed interest in holding their own local events for the FSF's birthday. The foundation would be delighted to cover these events on its blog or come up with a creative way of connecting them to the event in Boston. Please contact firstname.lastname@example.org if you are interested in organizing a satellite event.
The FSF intends to livestream the event and post videos online afterwards. Volunteers with free software video skills are needed as well.
Read the New Yorker article, The GNU Manifesto Turns Thirty by Maria Bustillos.
About the Free Software Foundation
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 https://donate.fsf.org. Its headquarters are in Boston, MA, USA.
More information about the FSF, as well as important information for journalists and publishers, is at https://www.fsf.org/press.
Free Software Foundation
+1 (617) 542 5942
Join the Free Software Foundation and friends in Boston, MA, USA on the evening of Saturday, October 3rd for our 30th Birthday Party. We'll share hors d'oeuvres, drinks, and an address by FSF founder and president Richard Stallman, as well as plenty of social time for catching up with old friends and making new ones.
If the free software movement is coming together for a party, we might as well get some work done, too. We're planning a mini-conference for the day of October 3rd, before the party, where we'll share what we've learned from the first thirty years of the free software movement and swap ideas about the future. Stay tuned for more details about this, as well as a possible dinner on Friday night.
Bookmark the event homepage for lodging suggestions and more information about the mini-conference and other festivities that weekend, coming soon.
Not coming to Boston?
We've been flattered by supporters around the world asking to hold their own local events for the FSF's birthday. Of course! We'd even love to write about it, or come up with a creative way of connecting it to the event in Boston. Contact us at email@example.com if you're interested.
We also intend to stream the event and post videos online afterwards.
Support our work for computer user freedom
Our supporters have made our thirty wonderful years possible. By becoming an associate member you'll help us achieve even more in the next thirty. Members also get special benefits, including gratis admission to our LibrePlanet conference each spring.
Volunteer or sponsor
If you are interested in helping out at the mini-conference or the party, we welcome you! In addition to setting up the venue and greeting guests, we need people with skills in free software livestreaming. All volunteers will receive a special reverse birthday gift from us to you.
The FSF is also seeking general event, beer, or food sponsors. To sponsor or recommend a sponsor, or to volunteer, reply to this email.
Also, we'd like to introduce Georgia Young, our newest FSF staffer, in the role of program manager. Georgia is planning the thirtieth birthday events, so expect to hear more from her soon.
See you in October!
Read the New Yorker Article, The GNU Manifesto Turns Thirty by Maria Bustillos.
EmacsConf is a conference about the joy of Emacs, Emacs Lisp, and memorizing key sequences.
If you'd like to attend, please send an e-mail to firstname.lastname@example.org expressing your interest in going so that the organizers can save you a space.
Please fill out our contact form, so that we can contact you about future events in and around the Bay Area.
New Horizons has survived its close encounter with Pluto and has resumed sending back images and data. The robotic spacecraft reported back on time, with all systems working, and with the expected volume of data stored. Featured here is the highest resolution image of Pluto taken before closest approach, an image that really brings Pluto into a satisfying focus. At first glance, Pluto is reddish and has several craters. Toward the image bottom is a surprisingly featureless light-covered region that resembles an iconic heart, and mountainous terrain appears on the lower right. This image, however, is only the beginning. As more images and data pour in today, during the coming week, and over the next year, humanity's understanding of Pluto and its moons will likely become revolutionized.
July 23, 2015
A la Comunidad Indígena Nahua de Santa María Ostula, Aquila, Michoacán:
A la Sexta nacional e Internacional:
A los pueblos de México y del Mundo:
21 de julio del 2015.
Ante los violentos acontecimientos perpetrados el pasado 19 de julio de 2015 en contra de la comunidad indígena de Santa María Ostula por un numeroso comando conformado por miembros de la Policía Federal Preventiva, la Secretaría de la Defensa Nacional y la Secretaría de Marina, hechos en los que fue detenido el comandante de la policía comunitaria de Ostula, Cemeí Verdía Zepeda, y en los que los soldados federales asesinaron POR UN IMPACTO DE BALA EN LA CARA AL NIÑO EDILBERTO REYES GARCÍA DE DOCE AÑOS e hirieron a la niña Yeimi Nataly Pineda Reyes, de 6 años, a Edith Balbino Vera, a Delfino Antonio Alejo Ramos de 17 años, a Horacio Valladares Manuel de 32 años, a José Nicodemos Macías Zambrano, de 21 años, y a Melesio Cristino Dirzio, de 60 años, …
La criminal actuación de dichas corporaciones militares y policiacas y su complicidad con el crimen organizado, en este caso Los Caballeros Templarios, para escalar la guerra de conquista que desde hace años han desatado contra la comunidad indígena nahua de Santa María Ostula con el fin de ocupar sus territorios, favorecer los intereses mineros y turísticos trasnacionales y como castigo por haberse atrevido dicha comunidad a recuperar sus territorios de los que era despojada y a defenderse, haciendo valer su derecho a la vida, del crimen organizado que hoy sirve de brazo paramilitar al Estado Mexicano.
El motivo de estos criminales sucesos no es otro que avanzar dicha guerra de conquista capitalista en contra de Ostula y en contra de los pueblos originarios y comunidades indígenas y no indígenas de este país.
LA LIBERTAD INMEDIATA E INCONDICIONAL DEL COMANDANTE CEMEÍ VERDÍA ZEPEDA Y EL RETIRO DE LOS CARGOS QUE EXISTEN EN SU CONTRA.
El CASTIGO DE LOS MANDOS Y DE LOS INTEGRANTES DE LAS CORPORACIONES MILITARES Y POLICIACAS QUE ASESINARON AL NIÑO EDILBERTO REYES GARCÍA, E HIRIERON Y GOLPEARON A DIVERSOS COMUNEROS DE OSTULA.
El respeto a las tierras de la comunidad de Santa María Ostula que pretenden ser despojadas por empresas mineras extranjeras como Ternium, con el apoyo del mal gobierno coludido con el crimen organizado.
La presentación con vida de los 6 comuneros desaparecidos y el castigo a los autores intelectuales y materiales del asesinato de 33 comuneros, todos pertenecientes la comunidad de Ostula a lo largo de los últimos cuatro años en su lucha por la defensa de sus libertades y de sus tierras.
El respeto y otorgamiento de garantías para el funcionamiento de la policía comunitaria de la comunidad indígena de Santa María Ostula.
Finalmente, hacemos un llamado a la comunidad internacional y a los hermanos y hermanas de la Sexta Nacional e Internacional a permanecer atentos a los acontecimientos que se presenten en lo futuro en el territorio de la Comunidad Indígena de Santa María Ostula, sumándose a la solidaridad con su lucha y sus exigencias.
Julio de 2015
Nunca más un México sin nosotros
Congreso Nacional Indígena.
Comité Clandestino Revolucionario Indígena- Comandancia General del EZLN.
Mazaclub, developers of mazacha.in, Tate for Mazacoin & Encompass Multcoin, are bringing Payu Harris, original creator of mazacoin, and much of the voice behind mazacoin, to Mt Shasta, where Rob Nelson, Mazacoin Development Coordinator, and Sarah Verbanac of mazaclub both live.
Just as Shasta is, Mazacoin is designed to be used by the many tribes, not just one. To make this so, we must begin to bring the message beyond the Oglala Sioux to the rest of North America, and beyond.
Mt Shasta is regarded by many as the root chakra of the Earth, and by others the Heart. Mt Shasta is regarded as one of the Earth’s most sacred sites by many people all over the world. We see the tribes around the mountain struggling to protect the forests, the water, the salmon, just as we see tribes all over the Earth trying to protect their lands from pipelines, logging, freeways, and more.
We have seen the natural energy flowing this year from the Black Hills to Mt Shasta. The Rainbow Family held their annual US gathering in Lakota territory, The Black Hills, and Payu Harris went with many others, including Chase Iron Eyes, who’s been very supportive of mazacoin. After the annual gathering a Rainbow Family tradition is to see a large contingent of the Rainbow Family got to Mt Shasta. The Winnemem Wintu Tribe, a Mt Shasta area tribe, issued a Cease and Desist Order to the Rainbow Tribe. The Order demanded that the Rainbow Tribe cease trespassing on their lands, which has been a long standing request by many Shasta area locals.
We see a need to develop more cohesive agreements between tribes, including non “tradtional” tribes like Rainbow, which has no chiefs, or president, but yet still must find ways to coexist with the tribes who steward the lands they use.
Mazaclub is flying Payu to Seattle and we will arrive in Mt Shasta about the 12th of August. In what we think is the true fashion of mazacoin, shamanic economics, we will let the mountain guide us along our way. We will intend to meet with leaders and members of local tribes, and meet with the many world travelers that come to Mt Shasta on their spiritual and shamanic journeys, and local community leaders. We will also attend as many events, powows, festivals, and the like as we’re able.
In Shasta we find a great many tribes, beyond those with federal recognition. Some of those, are new, much like the Rainbow Family is relatively new. We know that mazacoin can help each of these tribes, but mazacoin needs the help of each of them. If mazacoin is to last 7 generations, and what we build with it to last equally as long, we need more than financiers, more than cryptography experts, more than developers.
If mazacoin is to last more than 7 generations, we need to find how it serves us beyond the simple use as money. In Honduras, there is a blockchain based land title program underway, in Isle of Man money services are registered via blockchain. We see many smart contract and similar platforms are coming online. Sidechains are becoming a reality.
It is clear that mazacoin must grow. The blockchain, the mazachain, is designed to grow itself. With the value we create in the mazachain, by using as money for trade, we are able to effect change in the world before us. Take a first example in mining mazacoin. It currently requires wasteful equipment and large amounts of power. To remain successful, a miner must focus on efficiency, so it requires that we use the value created to make more and more efficient miners and power to run them. A large mining operation might need to be more efficient than the local power company and build their own generation facility. If this were to be done by a federally recognized tribe, and tribal corporation, this alone could turn the tide for many tribes, on a financial level, and on an ecological level as well. Dams are created now, which flood the homes of many tribes, and throughout the western US, prevent the salmon from running upstream. Mining is just the first example of how mazacoin can be capable of transforming the poverty of the typical reservation into a model of economic prosperity, and sound ecology. But this is all just beginning, and just the beginning. While we can see the opportunities, we can see obstacles that must be overcome. We need the leaders that come from all 4 directions to know how we must grow mazacoin. Trade, and our interaction with the Earth are about much more than money. At the root, all of our interactions in trade represent agreements. As so many tribes know, agreements are often not worth the paper they’ve been written on. We need to make fair and transparent systems for making agreements with something worth more than paper – mazacoin.
Again, developing methods for unbreakable agreements is work for much more than coders, and cryptologists, financial experts. We need chiefs, elders, statesmen, and shamans. We need People. The People are the ones to use mazacoin, the people should define how it grows to help us all.
We will bring the mazacoin message to the Mountain, and ask that it be carried in the Wind.
We’ll be posting video, audio, and of course, pics of our journey. We hope that you’ll join us in spirit as we ride!
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 You can help by donating MZC or BTC to the addresses below. We will convert BTC immediately to dollars to cover travel (gas) and other necessary expenses, and we'll hold the MZC until needed. Our goal for donations is open ended, as is our journey. With funding, we can extend our Shamanic Economics from Shasta and continue to meet with more tribes elsewhere in California, and beyond. We'll, of course, let you know how we spend those funds! Any remaining funds at the conclusion of Shamanic Economics, we will put into a bounty fund for the first mazacoin-related project to come from a member of a Shasta area tribe or town. 3KK5SXy9KTGXbJiWb9gFp1MmdqvU5ibsLy Bitcoin MGNd51vGUFsuQQJk7wLpKqTmzi2TYLNCoy Mazacoin Signed, Rob Nelson email@example.com -----BEGIN PGP SIGNATURE----- iQEcBAEBCAAGBQJVsQ4dAAoJEMhteaewpdnuQAoIAK0eL1i4iq1TAnMVaPCHmWaB K5/D1xKgSeEh/DavI5SnAm7q2aXM6BcOqUWmF3Nu3Do8aZNhaP/+OeYYhVvzMmrP TsgRybBAALKg4kCIIyXCRqST979t6qt7jn6V8jsyD40Q7BxQU5aWwcYRk5eNlR+6 +cPqvW4utQ1hPyQ3MxgpHbzWtOYN672tLVyrnGjIQwJQ/Dq/RtydSbQ8h2LJN13A 58p2PTwVVe/UYzKuqgWQD1ctqo+fJ/IBC/rVFSw3r/TmCDPj6SA7fwTWJRj7t2v+ ZiiZm/p7w1NigBDkwl1FWVYIhFBx8dnwRP1fnFm9wqb9FPxMQBXO/7F/BItpQx8= =Y5qO -----END PGP SIGNATURE-----
July 22, 2015
Join the FSF and friends this Friday, July 24 — at a new time — from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode. There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.
Tens of thousands of people visit directory.fsf.org each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.
While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential to be a resource of even greater value. But it needs your help!
If you are eager to help and you can't wait or are simply unable to join on IRC on Friday, our participation guide will provide you with all the information you need to get started helping the Directory today!
Still can't figure out what time the meeting starts? Open up a terminal and enter the following to get the start time in your time zone:
date --date='TZ="America/New_York" 12:00 this Fri'
When we say people and groups lack integrity, we mean that they're corrupt and deceitful. Similarly, when computer scientists say that a file lacks integrity, they mean it's been corrupted: unintentionally or maliciously modified. Apple's recent decision to impose Digital Restrictions Management -- the favorite anti-feature of proprietary format developers -- on many music fans lacked integrity, and took away the files' integrity as well.
Apple Music, Apple's subscription music service, allows listeners to upload their music to Apple's "iCloud Music" servers, regardless of the song's origin. Apple markets this option (also available in another paid service called iTunes Match) as a simple way to move music across devices, but users may be tempted to think of it as a backup service. If the user subscribes to Apple Music, iCloud Music saves storage space and bandwidth by checking to see if it already has a DRM-encumbered copy of the song in the Apple Music library, and doesn't upload the non-DRMed version if it does. When Apple Music users try and retrieve their non-Apple Music songs (which rightfully ought to be DRM-free) from iCloud Music, they end up with the DRM-corrupted versions instead.
Although some Apple apologists point out that Apple is not DRMing files on your own computer, they don't understand that Apple is DRMing Apple Music subscribers' non-Apple Music songs uploaded to iCloud Music. Perhaps they're confused because, separately, some iTunes Match subscribers also reported DRM in their "matched" songs on their matched devices, an unintentional bug that Apple recently squashed.
In 2009, Apple removed DRM from its iTunes library with much fanfare. Users purchased songs with the understanding that they could listen to them as long, often, and far into the future as they wished, and on the device of their choosing. Now, Apple is infecting those very same songs with DRM when Apple Music users try to upload and retrieve them from iCloud Music. If the user loses the original file, they must keep paying to keep listening.
Integrity involves keeping your word, and Apple has failed to do so. Whether intentionally malicious or purely incompetent, Apple's behavior lacks integrity, even from a DRM-moderate standpoint. Storage, online or off, should have and maintain integrity-- in all senses of the word!
You can visit defectivebydesign.org/apple to learn more about Apple's digital shackles and take action.
I'm an intern at the Free Software Foundation, which runs Defective by Design. Learn more about our internships.
We are pleased to announce the next alpha release of GNU Guix, version 0.8.3.
The release comes with USB installation images to install the standalone Guix System Distribution (GuixSD), and with tarballs to install the package manager on top of a running GNU/Linux system, either from source or from binaries.
The highlights for this release include:
- The ability to declare the packages that must be present in your profile, and to pass that to guix package's new --manifest option.
- guix environment has a new --ad-hoc option to quickly spawn ad hoc development environments.
- New tools: guix edit to open a package recipe, guix size to profile the disk usage of a package and its dependencies, guix gc --verify to check the integrity of the store.
- 179 new packages, notably LibreOffice, Coq, and a Guile-Emacs snapshot.
- Many bug fixes and assorted improvements!
See http://lists.gnu.org/archive/html/guix-devel/2015-07/msg00585.html for details.
About GNU Guix
GNU Guix is a functional package manager for the GNU system. The Guix System Distribution or GuixSD is an advanced distribution of the GNU system that relies on GNU Guix and respects the user's freedom.
In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. Guix uses low-level mechanisms from the Nix package manager, except that packages are defined as native Guile modules, using extensions to the Scheme language. GuixSD offers a declarative approach to operating system configuration management, and is highly customizable and hackable.
GuixSD can be used on an i686 or x86_64 machine. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and armv7.
GNU Parallel 20150722 ('Pluto') has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/
Haiku of the month:
Multi cores I see.
Doing nothing. I say no!
Use GNU Parallel.
-- Ole Tange
New in this release:
- If a record fits in a block, --block only reads upto the size of --block. If not: --block reads a full --block more.
- Due to widely spread distributions still using --tollef even after a year of being retired following a year of being obsolete, --tollef now gives an error unless used with --gnu.
- --nice now uses a perl wrapper instead of the nice command.
- Cookie 2013-08-18 was won by Mark Maimone, 1 year and 11 months after release.
- A parser for GNU Parallel --joblog files: https://github.com/harryjubb/joblog
- GNU Parallel was cited in: Dynamical formation & scattering of hierarchical triples: Cross sections, Kozai-Lidov oscillations, and collisions http://arxiv.org/pdf/1507.03593.pdf
- GNU Parallel was cited in: A Fast Compiler for NetKAT http://arxiv.org/pdf/1506.06378.pdf
- GNU Parallel was cited in: Flexible Modeling of Epidemics with an Empirical Bayes Framework http://www.stat.cmu.edu/~ryantibs/papers/empbayes.pdf
- GNU Parallel was cited in: Decomposing Time-Lapse Paintings into Layers http://cs.gmu.edu/~ygingold/timemap/Decomposing%20Time-Lapse%20Paintings%20into%20Layers%20(Tan%20et%20al%202015%20SIGGRAPH)%20600dpi.pdf
- GNU Parallel was used in: Somatic mutation calling from the matched tumor-normal exome-sequencing http://fafner.meb.ki.se/biostatwiki/somac/
- Parallel Processing from the Command Line https://www.perpetual-beta.org/weblog/parallel-processing-from-the-command-line.html
- Using GNU Parallel to speed up network operations http://vielmetti.typepad.com/vacuum/2015/06/using-gnu-parallel-to-speed-up-network-operations.html
- Crawl faster with "parallel" - but how fast? http://andreas-wpv.blogspot.com/2015/07/crawl-faster-with-parallel-but-how-fast.html
- Simultaneously benchmark many URLs with ApacheBench and GNU parallel https://www.simonholywell.com/post/2015/06/parallel-benchmark-many-urls-with-apachebench/
- Bug fixes and man page updates.
GNU Parallel - For people who live life in the parallel lane.
About GNU Parallel
GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job is can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
You can find more about GNU Parallel at: http://www.gnu.org/s/parallel/
You can install GNU Parallel in just 10 seconds with: (wget -O - pi.dk/3 || curl pi.dk/3/) | bash
Watch the intro video on http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Walk through the tutorial (man parallel_tutorial). Your commandline will love you for it.
When using programs that use GNU Parallel to process data for publication please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool, ;login: The USENIX Magazine, February 2011:42-47.
If you like GNU Parallel:
- Give a demo at your local user group/team/colleagues
- Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
- Get the merchandise https://www.gnu.org/s/parallel/merchandise.html
- Request or write a review for your favourite blog or magazine
- Request or build a package for your favourite distribution (if it is not already there)
- Invite me for your next conference
If you use GNU Parallel for research:
- Please cite GNU Parallel in you publications (use --bibtex)
If GNU Parallel saves you money:
- (Have your company) donate to FSF https://my.fsf.org/donate/
About GNU SQL
GNU sql aims to give a simple, unified interface for accessing databases through all the different databases' command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell.
When using GNU SQL for a publication please cite:
O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
About GNU Niceload
GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.
July 21, 2015
The Seattle GNU/Linux Conference -- we like to call it SeaGL -- is the Emerald City’s best grassroots technical conference for free and libre software. The 3rd annual conference happens Friday, October 23 and Saturday, October 24 at Seattle Central College, and it’s already shaping up to be better than last year!
First, we’re thrilled to announce the keynote addresses will be delivered by the FSF’s own Richard M. Stallman, and Shauna Gordon-McKeon, the main organizer of OpenHatch’s campus events. This year we’re honoring the origins of free software while recognizing the importance of growing the movement through recruiting new activists, users, and enthusiasts.
We are also accepting nominations for the first annual Cascadia Community Builder award recognizing a person who has significantly contributed to the free software movement in Washington, Oregon, British Columbia, or Idaho. Please take a minute to nominate someone who is doing great community work in the area!
We’re also looking for speakers. Our Call for Participation is open until July 26. SeaGL welcomes a diverse range of topics. It doesn’t matter if this is your first conference presentation or your fifteenth; If you’re excited about a topic related to GNU/Linux or free software, then we want to hear about it. We’ll be helping folks edit and flesh out their proposals in our IRC channel, #seagl, a few times over the next couple of weeks.
Finally, for groups or businesses interested in sponsoring the event, the Exhibitor & Sponsor Prospectus is now posted. We will have a small hall with tables available for sponsors and exhibitors, with free tables available for local nonprofit or educational organizations.
Here are the details:
Friday, October 23 to Saturday, October 24, 2015
Seattle Central College
Cost: Free (as in beer). No registration necessary.
New features in this version:
Command Search Improved
Search for commands containing key words
Search command help text and label
Choose format of rehearsal marks
Plain, boxed or circled
Alphabetic or Numeric
Controls for page numbering
Saved with the score
Use extended to all objects
Command for insertion from keyboard
Re-labelling of snippets
Staff Groups (Braces)
Click to edit the start or end
New sections on Command Center, Tablature, Fret Diagrams …
Auto-saved versions detected on start up
Save rate in granularity of seconds
Fix over long menus
Menu of searchable objects avoid spurious items
Improved Check Score routine
more errors detected
error position indicated in all cases
Known issues for this release:
option -a is ignored unless -n is given.
Here are the compressed sources (from a mirror) :
If automatic redirection fails, the list of mirrors is at:
Or if need be you can use the main GNU ftp server:
July 20, 2015
Voici un extrait des 52 cartes de l’Oracle des Crânes. Treize crânes portant chacun quatre messages liés aux quatre éléments: Eau, Terre, Air et Feu (13 x 4 = 52 cartes). Les textes sont de Delphine et Bruno.
Krn, l’Oracle des crânes, se veut poétique, dans le sens ou le Verbe vient réveiller le ressenti, hors de toutes
polémiques, de toutes discussions, d’avoir tord ou raison. La parole de l’oracle est une parole de mystère, elle ne
vient pas expliquer, rationaliser, étiqueter mais bien au contraire ouvrir, révéler, éveiller. Elle est comme un
souffle, un baiser déposé sur les lèvres de nos âmes endormies pour que commence en conscience l’aventure de
vivre et de se connaître.
… Je me donne l’air sévère mais ce n’est pas toi que je viens dévorer…
… mon sourire est ma tendresse mise à tes pieds comme une couronne de lierre et de pétales…
… Et si tu vivais maintenant comme s’il n’y avait rien eu avant, comme s’il n’y aurait rien après, comme entre deux néants…?
… Faille, fissure, écartèlement,tiraillement, ça te prend, ça te force, ça vient te titiller, que toujours tu te dépasses, te surpasses…
… Je suis d’os dur et je crache en ton corps l’eau de la vie, l’eau des mémoires, l’eau d’une source intarissable qui abreuve ton âme pèlerine…
… je te ramène aux petites choses, aux petits instants de rien, à l’intime des complicités…
… Tu es pure, peu importe sous quels oripeaux de colère, sous quelle crasse hargneuse. Tu es pure. Peu importe sous combien de croûtes de chagrin….
… tu apparais et disparais, t’enfouis et te révèle, quel désert pourrait avoir raison de toi … ?
… c’est le temps de lier ce que tu as été, est et sera, c’est le temps de relier ce que tu es de tous côtés, une splendeur de là-bas, une beauté d’ici, et toutes tes étranges nuances…
… Je jaillis en toi, en ton cœur, en tes eaux pour t’entraîner à aller au-delà…
… Tu as trop cru en la vérité des autres, viens essayer la tienne…
… J’émerge comme l’inconnu des profondeurs que l’on croyait vides ou pleines de monstres…
July 19, 2015
Breathing leaves of a hot summer day: a big tree is the host of bird dreams, of human memories, of shadow rituals for a necklace of branches. #poetry #tree #summer
The post Breathing leaves of a hot summer day: a big tree is the host of bird dreams, of human memories, of shadow rituals for a necklace of branches. #poetry #tree #summer appeared first on Pics and bits.
Red #dragonfly heading for the #nymphea #floating #flower. Of course this is a secret code message, but we have taken the time to shot an actual real situation for it, because we are so cool.
The post Red #dragonfly heading for the #nymphea #floating #flower. Of course this is a secret code message, but we have taken the time to shot an actual real situation for it, because we are so cool. appeared first on Pics and bits.
July 17, 2015
Outstanding #artwork for #cryptographers exhibited at #Biennale in #Venice: a sort of entangled #web of #keys… #art #biennalevenezia #biennale2015 #kunst – great inspiration to start implementing a #secretsharing feature in Tomb
The post Outstanding #artwork for #cryptographers exhibited at #Biennale in #Venice: a sort of entangled #web of #keys… #art #biennalevenezia #biennale2015 #kunst – great inspiration to start implementing a #secretsharing feature in Tomb appeared first on Pics and bits.
The post Loved RAQS collective installations at the #Venice #Biennale, great to appeared first on Pics and bits.
July 16, 2015
Bienvenue pour ce palmarès du mois de juin !
1er prix : La SNCF pour “L’Accélérateur d’Innovation SNCF Réseau“ et l’ensemble de son oeuvre
2e prix : ERDF pour“Electricien 3.0″
3e prix : La Paillasse “Hackaton MAIF“
3e prix ex-aequo : Parrot “Carrot Awards“
Toutes nos félicitations à la SNCF, qui remporte donc haut la main le premier prix.
Un prix qui récompense une action continue en faveur du bulshit le plus épais, dont voici quelques exemples récents :
On commence avec un superbe appel reçu par email envoyé par l’agence Tektos.
Nommé “Accélérateur d’Innovation SNCF Réseau“, ce projet qui vise tout simplement à dégotter quelques bons poulets en batterie prêts à en baver pour se faire acheter !
Aux “individus, équipes constituées, startups” de convaincre des “investisseurs experts” avec leur “projet innovant” concernant “les objets connectés, le Big Data et les champs de reconnaissance d’image” qui sauront répondre aux “enjeux stratégiques“. Les gagnants auront droit à un “Kick Off camp & 17 semaines de training !”. Voir un “accompagnement à la première levée de fonds” grâce à leurs “mentors” forcément désintéressés !
Note : le boss de Tektos prétend parler des hackers dans ses talks pour meetup.com, et c’est carrément normal, il est advisor au Camping ! Un truc de hacker ça !
Parlons ensuite OpenData ! Ah, l’Open Data ! Rien que ça, c’est déjà DEUX mots qu’on peut cocher dans sa grille !!!
C’est l’histoire d’une application qui s’appelait Raildar. S’appelait oui, parce que bon, elle marche plus. C’est bien dommage : elle permettait de suivre en temps réel les trains en France. En toute simplicité ferrovipathe, sans se la péter.
Et pourquoi elle marche plus ? L’incompétence de la SNCF et son désir d’harmonisation diront les plus conciliants. D’autres plus complotistes noteront qu’un article de l’UFC-QueChoisir dézinguait au même moment le tripatouillage des statistiques des retards des trains.
D’ailleurs, que nenni, point de volonté néfaste nous dit la compagnie nationale ! Car !
SNCF est l’un des acteurs les plus impliqués auprès de la French Tech avec une démarche convaincue d’Open Innovation et d’ouverture des données depuis 2012.
Et là non seulement la grille a bien tilté, mais en plus, il s’avère que c’est bidon : la SNCF ne sera pas obligée de publier toutes les données et puis pas gratuitement.
L’Open Data, d’accord, mais pas trop open quand même !
Et enfin, place aux artistes !
Nous qui avons été longtemps “accueilli” par SNCF Réseau et que nous remercions pour la visite du tribunal de Melun, cette info ne pouvait que parfaire le tableau : La SNCF ouvre ses portes aux artistes !
Le détail de cette démarche superbe fait rêver avec son comité chic, ça sent le petit four et la bulle légère, la prose fine, la lettre et l’esprit.
(La SNCF) a décidé d’ouvrir les portes de lieux uniques répartis sur l’ensemble du territoire national (soit seize au total), et propose de les revisiter dans une démarche de création ouverte à tous, culturelle et artistique. SNCF Immobilier expérimente ainsi une nouvelle forme de valorisation patrimoniale dans une logique d’ouverture et de partage.
(NDLR : Où l’on voit que les jargons de l’art et du bullshit technologique sont largement compatibles)
On rêve, mais pas trop longtemps quand même, vite redescendre, c’est trop beau pour trop pas cher.
La SNCF ouvre surtout… ses pièges à loup : on demande aux artistes de prévoir un passage à la caisse du genre sévère : non seulement il faudra payer le lieu, mais prévoir aussi de le rendre en l’état et de surcroît la SNCF s’arrogera le droit de propriété des oeuvres. La grande classe.
2e prix pour ERDF “Electricien 3.0″
Bon, on va pas vous en tartiner pendant des heures, rassurez-vous, le spectacle touche à sa fin. Mais quand ERDF se met au Big Data pour l’Electricien 3.0, sortant du Business as usual pour donner l’occasion aux Jeunes Entreprises Innovantes de faire leurs preuves dans les Smart Grids, c’est bien qu’un projet du gouvernement de 2013 les y oblige
3e prix ex-aequo pour La Paillasse “Hackaton MAIF“
Pour les business analysts qui se demandent si la désintermédiation de la segmentation touche la data science. Un hackaton assurance bien loin de la bio
3e prix ex-aequo Parrot “Carrot Awards“
Et finalement, réservé aux grandes écoles, car c’est là que l’innovation se fait comme chacun-e sait. Un bel exemple supplémentaire de remplacement de la R&D par un concours pour étudiants.
Un grand merci à toutes celles et tous ceux qui nous ont apporté leur aide, car c’est curieux mais on a commencé à recevoir moins de mails nous invitant aux projets bullshit !
Continuez donc à nous les signaler et de notre côté, on vous prépare quelques chouettes surprises pour la rentrée !
Nous finirons avec les malheureux perdants de cette cérémonie Bullshit Bingo, que nous ne voudrions pas laisser partir sans les citer !
Valls “#AmbitionNumerique #Startup #Courage #Economie #Defi #AuSecours #IlsMeSequestrent ”
Fantastic 4 Summer Camp “The smart brown Fox News”
Mutinerie Le “MoutonCamp”
July 14, 2015
Published on 2015-07-14T10:48:54
Adobe's Flash software is now blocked by default on all versions of the Firefox web browser.
Forse Tsipras poteva tirarla più in lungo. Forse Varoufakis non doveva mettere in piazza, davanti ai tedeschi, il suo dissenso. Ma sono particolari minori. La sostanza è che i greci hanno resistito il più a lungo possibile, prendendo tempo, e alla fine hanno ceduto. L’uomo del Recupero Crediti ti ferma, con una pistola in pugno, di notte nella strada buia. Tu lotti, ti dibatti, gridi disperatamente aiuto. Ma nessuno, dalle case vicine, apre una finestra. Qualche rado passante ti guarda e affretta il passo. Uno fa “Poveretto!” e tira via. Alla fine, consegni il portafoglio. Se gliel’hai dato “spontaneamente” o te l’ha strappato di forza, conta poco. Se ne va coi tuoi poveri averi, fischiettando. Tu resti solo nel buio, lì per terra.
Molte cose importanti bisognerebbe dire. Gli anni Trenta: il nazismo, dapprima “estremista” e feroce, poi – per andare al potere – “rassicurante” e in doppio petto (Hitler, Le Pen, Alba Dorata). L’Europa: democratica a parole ma poi pronta a omaggiare Hitler a Monaco pur di “salvare i mercati” e la “stabilità” di lor signori (Ucraina, Ungheria, Polonia). La Spagna, coi fascisti europei mobilitati e Guernica lasciata sola sotto le bombe che di lì a poco, con gran sorpresa “democratica”, finiranno su Londra. Ma lasciamo perdere tutto questo. Parliamo dell’Italia.
L’Italia è Renzi, plebiscitato dalla base Pd che pochi mesi prima aveva plebiscitato il suo opposto Bersani. L’Italia è Grillo, che futte e chiagne, sorride ai greci ma si allea coi fascisti che li vogliono cancellare. L’Italia è Salvini, montato a colpi di media dagli imprenditori e poi (classicamente: Hitler, Isis) sfuggito loro di mano. L’Italia, cari amici, siamo noi “de sinistra”. Rifondatori, sellini, citavini, fassini, altreuropi: tutti meno che niente – per propria precisa scelta – e dunque evidentemente impossibilitati a far qualunque cosa (tranne che complimenti e “forza, dai”) sia per l’Italia che per la Grecia.
Io ho simpatia per Vendola, e anche una certa stima per Ferrero. Hanno detto cose bellissime, proprio da dibattito da Santoro. Non hanno detto l’unica cosa che dovevano dire, e cioè “Buonasera. Da domani mattina ci sciogliamo e confluiamo in un unico partito, come Syriza. Abbiamo ben lottato finora, abbiamo testimoniato che in Italia c’è ancora gente civile ma ora, per come si sono messe le cose, le nostre forze divise non bastano più. Perciò, bandiere al vento e faccia fiera, sfidiamo uniti e decisi Renzi e Marchionne. Alle elezioni, prenderemo il quindici-venti per cento, uniti con gli operai di Landini e i parroci di papa Francesco. In autunno, vi faremo ballare in piazza e in fabbrica da farvela ricordare per un pezzo. Levate quelle zampacce dalla Grecia, abbandonate i tedeschi, perché Tsipras e Varoufakis sono nostri fratelli e se toccate loro toccate tutti noi”.
Invece di tutto ciò, sono arrivati i “kalimera“. Grazie, compagni. Ci avete aiutato davvero.
Il militante, il simpatizzante, il cittadino consapevole di Sel, di Rifondazine o dell’Altra Europa (per non parlare dei civatiani, fassiani e delle altre tribù perdute) hanno il dovere preciso, qui ed ora, di spingere all’unità a calci nel sedere i loro capi: fino a occupare le sedi, fino a fischiare ogni loro parola che non sia “da oggi, uniti”.
Fuori dai ghetti! Basta convegni, basta gran strategie. Il compito è semplice e duro: unitevi, e lottate. Abbiamo già tradito la Grecia: cerchiamo di non tradire ciò che ancora rimane dell’Italia.
The post Sinistra italiana, basta convegni! Unitevi e lottate come Syriza appeared first on Il Fatto Quotidiano.
Mozilla blocks Flash as Facebook security chief calls for its death http://www.theverge.com/2015/7/14/8957177/mozilla-blocks-flash-as-facebook-security-chief-calls-for-its-death good one, #mozilla #firefox
July 13, 2015
mosquitos transgénicos contra el dengue
- "Con brotes en varias regiones del país, el Gobierno brasileño aprobó la liberación comercial de mosquitos transgénicos contra el dengue (...) Es la primera vez en el mundo, que se aprueba un producto como este para ser vendido en el mercado y algunas organizaciones alertan sobre los riesgos biológicos de esta experiencia y la necesidad de más estudios."
July 10, 2015
Gaza - One Year Later
July 08, 2015
"Today 8 July is the first anniversary of the barbaric Israeli invasion and destruction of Gaza and the massacre of Palestinian people (8 July-26 August 2015)--do not look for any mention of this in New York Times or the BBC --you won't find it --
Words fail to describe those terrorizing days and the ghoulish violence that the Zionist settler colony viciously unleashed on defenseless Palestinian civilians--their homes and schools, mosques and universities, during more than six weeks of bombing from air, sea, and land --intentionally targeting and murdering hundreds of innocent human beings --including 551 children --and deliberately destroying the infrastructure of a civic life --
what despicable cowardice is it to incarcerate 1.3 million human beings in an open air prison and then unleash the most sophisticated killing machine on them --gift of Barak Obama and all other U.S. Presidents and European leaders before and alongside him --
These horrid Zionists, old and young, liberal or hard core, Israeli or American, ought to be ashamed of themselves --but with what amoral vulgarity and what intellectual bankruptcy they continue to defend the cause of a murderous, racist, apartheid settler colony is just beyond words --
Just like Bush and Cheney for what they did in Iraq, Netanyahu and his warlords must one day face the ICC for war crimes and crimes against humanity in Palestine --until then BDS, friends, nonviolent civil disobedience, is frightening the Zionists out of their wits and is the only civilized way left to oppose and end this ugly barbarity--
Don't await the mercy of corporate media--they are part of the problem --please spread the word, share pictures, watch documentary films and read learned articles and books --do not remain passive in face of such ugly barbarities --whether by the "Jewish State" or the "Islamic State" or "Christian Imperialism" or "Hindu Fundamentalism" or "Buddhist nationalism" --they are all getting away with murder --in bright daylight of history --they should not --"
Hamid Dabashi is the Hagop Kevorkian Professor of Iranian Studies and Comparative Literature at Columbia University in New York, the oldest and most prestigious Chair in his field. He has taught and delivered lectures in many North and Latin American, European, Arab, and Iranian universities. He is a founding member of the Institute for Comparative Literature and Society, as well as a founding member of the Center for Palestine Studies at Columbia University. He is the author of over twenty five books. Among them are his Theology of Discontent; several books on Iranian cinema; Staging a Revolution; an edited volume, Dreams of a Nation: On Palestinian Cinema; and his one-volume analysis of Iranian history Iran: A People Interrupted.
One of my favourite people to follow,.. his analysis on the current situation in our part of the world is always spot on!
Thank you Hamid Dabashi