June 20, 2018

Data Knightmare (Italian podcast)

DK 2x39 - Filtrami o Diva

Ci risiamo. Le pretese dell'industria dei contenuti rischiano di nuovo di diventare legge e di fare sfracelli della Rete. Parliamo della Direttiva UE sul copyright in votazione oggi, e di cosa significa realmente tutelare i diritti dei creatori di contenuti.

by Walter Vannini

June 18, 2018

Informatic school is in southwest Cameroon

2018 Graduation of Beginners Class 16-06-18

Saturday June 16, 2018  21 students were graduated from the Association of Linux Friends Limbe.

This occasion was graced by the presence of the Chief of Isokolo and some other dignitries. The ceremony started at about 1:30pm due to the bad weather which lasted all day. With the arrival of all the graduating students, their guardians and the invited guests the occasion commenced.

 

 

 

by admin

June 15, 2018

n-gate.com. we can't both be right.

webshit weekly

An annotated digest of the top "Hacker" "News" posts for the second week of June, 2018.

Chatbots were the next big thing: what happened?
June 08, 2018 (comments)
Some parasites desperately try to explain away the complete failure of their entire product segment. Hackernews bickers over whether humanity's disinterest in conversing with addled javascript-based toddlers was in any way foreseeable. Those who declare the idea obviously doomed explain to us that it's a user interface problem, and Hackernews narrates accounts of every phone call any of them have ever had. The rest of Hackernews insists that everything will be great if we could all just wait a few years and keep giving money to spammy fuckers like the authors of this article.

Why does a spray bottle work?
June 09, 2018 (comments)
A webshit gets fantastically bored. Hackernews is also bored, so they bikeshed the design of common household items for a few hours, diverting along the way to reinvent various barely-related things they saw once. Periodically, Hackernews pauses to reflect on how smart they all are.

Alternatives to Google Products
June 10, 2018 (comments)
Some well-meaning idiots recommend a pile of Android software you can install on your Android device in order to pretend that Google doesn't have your entire life in a vice. A Mozilla shows up to warn everyone that using Firefox features will probably cause websites to behave strangely, but no explanation is offered regarding how this is any different from using a Mozilla product at all. Hackernews pretends to reverse engineer the tracking methods they all create for a living, then gets angry that the idiots didn't just recommend buying Apple products instead. After a while, the Google apologists arrive to explain to everyone that it's in their best interest to relax and just let it all happen.

The Repeal of Net Neutrality Is Official
June 11, 2018 (comments)
Some bureaucrats exert the will of their masters. Hackernews is entirely populated with telecommunications policy experts, all of whose opinions are firmly rooted in the current contents of the Wikipedia article on net neutrality. Some Hackernews are outraged at the very notion that the ruling party might use executive fiat to flagrantly destroy hallowed laws of nature (installed via the previous ruling party's executive fiat). The rest are relatively collected, presumably because the Hackernews Popularity Contest finalists haven't yet issued position statements on medium.com.

Id Software
June 12, 2018 (comments)
Hackernews notices some software, and maintains a respectful reverence for the software and hardware of the respective era. Nobody misses the opportunities to rattle off the games they loved in their youth, or the computers that ran them. Absolutely none of the technical lessons available from examining any of the mentioned technology are considered or even noticed, except for one Hackernews who thinks we can build a better personal computer if we'd just leave out the CPU and connect the keyboard via gigabit Ethernet.

Bitcoin’s Price Was Artificially Inflated Last Year, Researchers Say
June 13, 2018 (comments)
Some academics realize that Bitcoin Idiots, LLC can easily manipulate the pretend value of fake money. Hackernews is ecstatic that anyone is paying attention and misconstrue the bemused analysis of academia as external validation of the core concepts. Some full-on conspiracy theorists arrive, chanting the international nutjob mantra, "media narrative," not explaining what possible reason anyone in the media has to take any position at all regarding what nerds do with ASICs in the night. Most Hackernews are content merely to opine that the contents of the newspaper article and the research it describes must be wildly off-base, because Hackernews didn't write it.

Boulder moves to fund citywide fiber buildout through debt
June 14, 2018 (comments)
A city decides to build some infrastructure. Hackernews still has the telecommunications Wikipedia articles open from earlier in the week, so they take a day off to incorrect each other about how much it costs to dig ditches and drop cables into them. A sidebar is held for those Hackernews who are considering moving cities just to get a faster internet connection. A handful of locals whine about traffic.

by http://n-gate.com/hackernews/2018/06/14/0/

June 13, 2018

Data Knightmare (Italian podcast)

DK 2x38 - Il GDPR e i vampiri del consenso

Che consenso è "se non accetti non puoi usare il servizio"? È il consenso stile "ho pagato io la cena, ora devi starci", tanto caro ai maschi Neanderthal. E il GDPR lo vieta. Spieghiamo perché, come dovrebbe invece funzionare e come fare reclamo al Garante.

by Walter Vannini

June 11, 2018

/tmp/lab

Le tango des Joyeux Bullshiteurs

Licence texte : CC NC
Paroles : Boris Viande
Musique : Benjamin Walter

A la gloire de tous les enchanteurs de la rue Merlin, les Joyeux Bullshiteurs

C’est le tango des Bullshiteurs d’Station F
C’est le tango des pros du fol’ espoir
Venez cueillir le pèze et la deeptech
Et vendre du flan avant qu’il soit trop tard

Faut qu’ ça scale
Faut qu’ les gens ayent à liker
Faut qu’ les gros puissent financer
Faut qu’ les p’tits puissent commiter
Faut qu’ ça scale
Faut qu’ les investisseurs à balle
Fourent ces p’tits jeunes qu’ont la dalle
Leurs stagiaires à six cent balles
Faut qu’ ça scale
Faut qu’ les apps soient bien codée
Qu’ les containers soient déployés
Que la CI soit automatisée
Faut qu’ ça scale
Faut avaler d’ la grosse marque
Pour bien s’gaver de buzz qui claque
Et nourrir des pitchs comaques
Faut qu’ ça scale
Bien fort

C’est le tango des joyeux ministères
Des vrais vainqueurs de la BPI et d’ailleurs
C’est le tango des fameux incubateurs
C’est le tango de tous les bullshiteurs

Faut qu’ ça scale
Faut dominer l’Internet
Faut être la licorne de tête
Ou tes parts vaudront tripette
Faut qu’ ça scale
Garde toi toutes les stock options
Tant pis c’est rien que des pov’s cons
Fais leur donc cracher le pognon
Faut qu’ ça scale
Faut que ce soit toi qui disrupte
Pas de copains vive les coups d’pute
Et ce s’ra fini la vie dure
Faut qu’ ça scale
Demain ça sera ton tour
Demain ça sera ton jour
Aux présidents t’écriras les discours

Tiens! Voilà du bullshit! Voilà du bullshit! Voilà du bullshit!

by Boris Viande

Riccardo Orioles

Aquarius, la Terza Repubblica nel paese degli orchi

Questo testo, già pubblicato sulla catena di San Libero l’8 giugno del 2004, è drammaticamente attuale oggi, 14 anni dopo, a causa della decisione del ministro dell’Interno Matteo Salvini di chiudere i porti a 629 migranti, tra cui 123 minorenni (11 dei quali bambini). Per riflettere su quanto stiamo vivendo, vale la pena di riproporre queste righe.

Il popolo perbene del Terzo Reich. O della Terza Repubblica, se così andrà avanti. Come verremo ricordati, quelli della nostra generazione? Non è una domanda tanto per aria: se fossimo stati invitati a casa del signor Muller a Berlino avremmo avuto il piacere di conoscere una persona educata e perbene, buon padre di famiglia, ottimo lavoratore, con la sua brava Volkswagen, i suoi marmocchi simpatici e la sua famigliola complessivamente felice. Faremmo un giro in centro (traffico ben regolato, molto verde, nessun mendicante) e in genere incontreremmo facce tranquille e soddisfatte di sé. Può darsi che parleremmo di politica: ma fra gente educata, su questo punto, non ci si accalora mai troppo. E poi, la politica, lasciamola a chi la fa di mestiere: noi abbiamo fin troppe cose a cui pensare. Il mutuo, il dentista, il meccanico, la pagella del bambino. Così, sorridendo svagati, si farebbe ora di pranzo: in un locale caratteristico, accogliente e pulito come tutto il resto.

Più tardi, quando sei ritornato nel tempo tuo, ti accorgi che hai fatto visita alla famiglia degli orchi, nella città degli orchi, nel paese degli orchi. I Muller infatti sono una qualunque famiglia berlinese del 1936 e in quanto tale hanno dirette e personali responsabilità – come oggi sappiamo – nello sterminio di milioni e milioni di esseri umani. Personali? Beh, il figlio dei Muller è militare, ma presta servizio nella Wehrmacht, mica nelle Ss. Hans e Annaliste sono regolarmente iscritti, è vero, alla Hitlerjugend e alla Lega delle ragazze: ma che fanno di male?

Campeggio, raccolta di abiti vecchi e qualche chiacchiera ogni tanto. E tutto è così normale: lo sguardo dei bambini, la risata di Muller, le strade. Non ci sono mendicanti, non c’è gente strana.

Noi tuttavia sappiamo – venendo da un’altra epoca ed essendo dunque osservatori disinteressati – che il mondo del ‘36 sarebbe stato impossibile senza il consenso dei Muller. E dunque non ci sentiamo autorizzati a stringere le mani che ci vengono porte (borghesemente: perché i Muller, l’abbiamo detto, non sono dei fanatici del Partito) per l’addio. Le mani restano là, protese senza risposta a cercare una comprensione, e i visi sfumano mentre noi torniamo nel nostro tempo.

Nel “nostro” mondo, muoiono 30mila bambini al giorno per cause prevedibili e facilmente evitabili. Seicento milioni di bambini sopravvivono con meno di duemila lire al giorno. Ma questi sono numeri, non vogliono dire niente. Il fatto reale è che, se esci di casa e invece di svoltare da una parte svolti dall’altra, ogni due o tre bambini che incontri uno non ha mangiato. Ogni tanto – diciamo ogni tre o quattro minuti – uno di questi bambini che stai guardando attentamente per capirci qualcosa scivola improvvisamente per terra e non si muove più, perché è morto.

E siamo in un sogno didascalico, ancora, dunque del tutto asettico e pulito. Il bambino per terra, nella realtà, evacuerebbe liquidi disgustosi prima e durante il morire. Da una parte, e tuttavia impossibilitato a intervenire, ci sarebbe un altro essere umano per il quale il bambino morente era il centro del mondo, e che in questi istanti sta vivendo l’orrore puro. Ci sarebbero puzza e grida, e rumori casuali. E tutto questo sta avvenendo davvero, in questo preciso istante, e riusciamo a tollerarlo soltanto facendo finta che non sia così.

Ma inganniamo noi stessi. Il mondo vero è quello. Questo – quello di questo monitor – è meno vero di esso. Mi fermo qui, perché questo è un ragionamento impossibile da portare avanti oltre un certo grado. Ho bisogno – come te, e come tutti – di un certo livello di rimozione, perché altrimenti mi sarebbe difficilissimo vivere normalmente senza diventare asociale.

Ma quelli che verranno dopo di noi – compagni posteri, diceva Majakowskij – non avranno di questi problemi. Loro vorranno semplicemente studiare scientificamente il nostro mondo, freddamente: perché ormai tanto tempo sarà passato. Studieranno di noi come noi studiamo gli assiro-babilonesi, apprezzando al loro giusto valore tanto gli inni cosmici ad Enkhidu quanto i prigionieri impalati. E, forse, decideranno che siamo stati più o meno la stessa roba che i tedeschi del trentasei.

Parleranno di Olocausto, come noi ne parliamo. Si meraviglieranno grandemente, con aria di sufficienza, per la nostra acquiescenza. “Come hanno fatto a non ribellarsi?” diranno, senza voler sapere di noi altro che questo.

L'articolo Aquarius, la Terza Repubblica nel paese degli orchi proviene da Il Fatto Quotidiano.

by Riccardo Orioles

June 09, 2018

Evgeny Morozov

US power to rule a digital world ebbs away | Evgeny Morozov

For 30 years the model of a global village dependent on American innovation worked... for the US. Now that illusion is fading fast

As Donald Trump’s America gears up for a full-blown trade war with the resurgent China, Washington seems to have forgotten the very mechanisms that assured its dominance in the post-cold war era. Those mechanisms were underpinned not just by America’s military might, but also by its ability to minimise the odds of any anti-systemic dissent.

American policymakers have known perfectly well that the hallmark of effective hegemony is the invisibility of its operations. Getting other people to behave as desired is easier if those others believe that doing so is not only in their interest but also the natural course of history and progress.

Digital platforms were supposed to be the apex of US techno-hegemony. The plan worked, but only initially

Continue reading...

by Evgeny Morozov

June 08, 2018

Data Knightmare (Italian podcast)

DK 2x37 - L'informatica è troppo seria per lasciarla agli informatici

Ogni giorno si scopre che i GAFAM hanno fatto un'altra infamità con i nostri dati, che alle Intelligenze Artificiali vengono assegnati compiti immorali e che, in generale, chiunque sia capace di pigiare dei tasti si arroga il diritto di riscrivere tutte le regole pur non avendone capita nessuna. Il vero problema dell'economia dei dati è una disciplina del software ancora centrata sulla creatività assoluta dell'artigiano, isolato dal mondo e dagli uomini. Peccato che la società sia più complessa di così.

by Walter Vannini

Vlax

Los genios comen tortilla

Los genios comen tortilla

Mural en la colonia Roma, junto a una tortillería.

#México #arte #tortilla #mural #coloniaRoma

by Vladimir

n-gate.com. we can't both be right.

webshit weekly

An annotated digest of the top "Hacker" "News" posts for the first week of June, 2018.

Mozilla Project Fusion: Tor Integration into Firefox
June 01, 2018 (comments)
Hackernews examines the scratch pad of a group of webshits willing to help Mozilla bolt yet more random bullshit to the side of the only Mozilla project anyone has ever noticed. Hackernews doesn't really care whether it ever works, as long as they get to bikeshed the implementation details and argue about administrative minutiae. When they're done incorrecting one another about networking, they line up to namedrop every webshit fad in current vogue, hoping to convince Mozilla to bolt new, different random bullshit to a web browser.

MIT 9.11: The Human Brain (Spring 2018)
June 02, 2018 (comments)
A photographer narrates a slideshow in excruciating detail, then shows up in the Hackernews comments to be excited that someone noticed. Hackernews votes for the story because it's from MIT, but has next to nothing to say about it because none of them understood any of it. Some of them get distracted using a common software tool to reimplement the tool's own command line arguments.

Microsoft Is Said to Have Agreed to Acquire GitHub
June 03, 2018 (comments)
A near-monopoly closed-source software company, fed up with trying to seem like a good corporate citizen by releasing source code of their worst programs, is acquired by Microsoft. Hackernews is either terrified or cautiously optimistic, based exclusively on whether they've received money from Microsoft in the past. Some time is spent pretending they have opinions about the business implications of the acquisition, but almost all of the discussion has a different focus: warnings from people who have been fucked ruthlessly by large software companies, and complaints about the unfairness of those opinions, mostly by people who haven't yet had their turn in the barrel. A brief sidebar is held on the topic of decentralized internet services, wherein Hackernews explains that services are mostly centralized because of the ineffable will of society, and not because programmers aren't smart enough to build interoperable software.

Hello, GitHub
June 04, 2018 (comments)
Microsoft, responding to the tremendous outpouring of user feedback about their acquisition of Github, finds the perfect person to ensure that none of it is acted upon or even heard: a GNOME developer. The announcement is illustrated, for some reason, only with a 3-megapixel photograph nearly a megabyte in size. Hackernews decides that the future of Github is safe in the hands of this person, because some of them have seen that name somewhere on the internet once. The rest of the comments are copied and pasted from the previous day's thread.

How to be a Manager – A step-by-step guide to leading a team
June 05, 2018 (comments)
A small child hemorrhages boilerplate indoctrination for entry-level bureaucrats. Hackernews carefully upvotes the article to ensure maximum exposure; the most important management skill in Hackernews' arsenal is deriding other people's management advice based on how much it differs from whatever boilerplate indoctrination they received when they were first promoted away from the ability to directly fuck up their employers' software. The small child arrives in the comment threads to not defend any of the content.

Things I Regret About Node.js [video]
June 06, 2018 (comments)
Some webshits presumably talk for half an hour about all the things they fucked up; I'm not watching this shit. Hackernews explores reasons why programmers can't seem to stop fucking everything up in nearly identical ways on every project in wide use. The consensus is that this must be some fundamental atomic force at work, because it can't possibly just be a pack of shitheads with no self control failing exactly like the previous packs of shitheads with no self control. The Rust Evangelism Strike Force flirts with the idea of a campaign here, but doesn't have the heart for it, since they're in the process of making all the same mistakes, in the same order, for the same reasons.

AI at Google: our principles
June 07, 2018 (comments)
Having been shamed into walking away from a lucrative murder automation contract, The Google of Google blogs about how that was totally the plan from the beginning, you guys. The article contains a weasel-worded declaration of intent to avoid surveillance, which contains so many qualifications and escape hatches that it must have taken days to type through the tears of laughter. Hackernews can't decide if they buy this bullshit; on the one hand, this document is so transparently meaningless as to be obvious public relations fodder, but on the other hand, Hackernews isn't really sure how to exist without function (i, s, o, g, r, a, m) so it's probably best not to rock the boat too much. See you at Google I/O! Until they rename it to better align with brand values, after which: see you at Google C4ISR!

by http://n-gate.com/hackernews/2018/06/07/0/

June 05, 2018

Informatic school is in southwest Cameroon

The Google IO Event 01-06-2018, Limbe

The Google IO event was held for the first time in Limbe on June 1st, 2018

by the google developers group Limbe

The Association of linux friends sent four representatives to this event. The program started at 1pm with a welcome word from the head of the google developers group Limbe by name Mr Nchawa Elcid.

IMG-20180601-WA0003IMG-20180601-WA0015IMG-20180601-WA0009

We had a motivational speaker who goes by the name of Mr Eugene Blaq. Mr Eugene is the head of the Google Developers Group (GDG) , Buea and is also the developer of Njaka play.code.create.

IMG-20180601-WA0021IMG-20180601-WA0020IMG-20180601-WA0023

The main aim of Google Developers Group (GDG) is to share ideas. The GDG also aims at enhancing the existing computer environment and building the dreams of aspiring programmers. The GDG community is free to join.

IMG-20180601-WA0022IMG-20180601-WA0025IMG-20180601-WA0036

To continue, our next speaker was Mr Paul Babila the CEO Zixtech Organisation. The speaker presented the services offered by his organisation. These services are E-Marketting, Business Consultancy and so on. Mr Babila also encouraged the young aspiring entrepreneurs to be committed in their work as passion only is not enough.

IMG-20180601-WA0027

Next, we had a recap of the Google IO Event USA. In this video the upgraded services of Google were presented. Some of these services included GOOGLE ASSISTANT (helps makes appointments), Google Map, Google Lens. Waymo Self driving cars was also presented. After the wrap with the Recap there was a lunch break.

IMG-20180601-WA0034IMG-20180601-WA0003

Next, another speaker by name Mr TANGU Chris presented Virtual Reality (VR), the uses of VR and the various reasons we should start considering using Virtual Reality (VR) Applications. Occulus GO was the first affordable VR gadget.

IMG-20180601-WA0006IMG-20180601-WA0046IMG-20180601-WA0002

Many other speakers came up to present on the various opportunities choosing to persue technology can benefit an individual and the community. It was an interesting event and will be a great way to inspire the students of the advance class on the way forward after school.

IMG-20180601-WA0016

Some useful links were given at the end of the event.

  • startupgrind.com
  • startup.google.com
  • www.facebook.com/groups/DevCBuea/

by admin

June 01, 2018

Data Knightmare (English podcast)

DK 1x06en - Lenin in Silicon Valley

First it was Project Maven, then Google Duplex, and now the Selfish Ledger. Google has become the Church of the Algojerks, and it is now clear that Silicon Valley is pursuing a fundamentally Leninist project.

by Runtime Radio

n-gate.com. we can't both be right.

webshit weekly

An annotated digest of the top "Hacker" "News" posts for the last week of May, 2018.

Winds 2.0: It’s Time to Revive RSS
May 22, 2018 (comments)
Some webshits decide it's time to bring back syndication on the web. The tools they select to accomplish this? Every last goddamn one of them, resulting in a single-purpose web browser that inexplicably relies on a dozen random webshit services, all to store small amounts of text and fetch audio files from predefined locations. The webshittery on display is so egregious that even Hackernews is embarrassed for them, but the International Brotherhood of Computer Magicians shows up to remind everyone that only a full-time professional computer toucher is capable of mastering complicated tools like feed readers. When Hackernews gets done assuring each other that non-Hackernews are incapable of using any technology that is not animated with primary colors, they remember that RSS doesn't support javascript and as such must immediately be reinvented.

Bitcoin Gold Hit by Double Spend Attack, Exchanges Lose Millions
May 23, 2018 (comments)
Bitcoin Idiots, LLC announces that once again they have lost the world's biggest game of Numberwang. Hackernews, positively gravid with carefully-Googled economic theory, sagely discusses the complex fiduciary failures of a fake monetary system invented by C++ programmers. Other Hackernews reject this reasoning, debating instead whether the real measure of success for this technology is whether or not it is as successful as AirBNB. At the time of this writing, the entire 'currency' in question can be completely fucked-out for approximately the cost of a small single-family home in Oakland.

Amazon device recorded private conversation, sent it out to random contact
May 24, 2018 (comments)
A consumer is startled to learn that the domesticated wiretaps voluntarily installed in homes are not only surveilling the users, but also dropping dimes on them effectively at random. Amazon takes privacy very seriously -- unless you prefer some other emotion, in which case they'll take your privacy however they can get it. Hackernews is completely unsurprised by this turn of events, given that they either live with, went to a coding boot camp with, or in fact are the party responsible for writing whatever garbage software is running on these piles of shit.

GDPR for lazy people: Block all European users with Cloudflare Workers
May 25, 2018 (comments)
Some webshits narrate the process of paying other webshits to keep the euro trash off of your cyber lawn. Hackernews can't decide if the new European privacy law is a noble attempt to defend the masses or a nuclear weapon pointed directly at their shitty video chat startups. Hackernews is livid that someone passed a law they can't just pay someone else for the privilege of ignoring, but are grateful for the opportunity to spend their lunch breaks writing fanfiction about what their court cases will look like when they try to Uber their way out of complying.

The Importance of Deep Work and the 30-Hour Method for Learning a New Skill
May 26, 2018 (comments)
An Internet decides to instruct the world on how to learn. A Hackernews shark attack ensues, as several commenters dare to agree with anything in the article. There are no survivors.

Python’s For - Else
May 27, 2018 (comments)
An Internet posts some poorly-formatted Python tutorials as an excuse to beg for work. Hackernews is entranced that a keyword in a programming language might have behavior specific to that language. Fifty thousand comments are posted whining that the keyword should be a different keyword, with the only exceptions coming from Hackernews who actually use the programming language. The consensus is that any language feature which Hackernews did not learn about in two hours of Coursera video lectures should be expunged from the planet.

I put all my personal data on eBay
May 28, 2018 (comments)
A webshit spams eBay. Hackernews tries to figure out how to replace this idea with Dunning-Krugerrand.

AI winter is well on its way
May 29, 2018 (comments)
An academic declares the current approach to artificial intelligence, shotgun statistics, is devoid of value, except for the kind that this particular academic cares about, maybe. Hackernews thinks that most of the problem involves forgetting to aim the shotgun. After the usual corporate namedropping session and pithy quotation-pasting exercises, Hackernews decides the whole thing is a marketing issue and wanders off.

Reddit just passed Facebook as #3 most popular website in US
May 30, 2018 (comments)
Amazon declares that Reddit has more Internet Points than Facebook. Rounding out the top twenty are several extremely popular sites, such as microsoftonline.com and t.co. Hackernews loves Reddit, as it constitutes a much better DIY echo chamber construction kit than Facebook, caters more directly to their pornography tastes than Tumblr, and allows them to create a new account when they are no longer able to face their own comment histories in the cold light of day.

Gnome has moved to GitLab
May 31, 2018 (comments)
The least interesting possible event has occurred. Hackernews is mad about most of their bug reports being ignored, mad that GNOME isn't written in their preferred strain of javascript, and mad that they didn't move to Github. The article does not mention whether GNOME is paying for the Enterprise Edition of the software.

by http://n-gate.com/hackernews/2018/05/31/0/

May 30, 2018

Classic Programmer Paintings

“Les Refactoreurs” Gustave Caillebotte Oil on...



“Les Refactoreurs”

Gustave Caillebotte

Oil on canvas

1875

(collaboration from Alex Edelstein)

Data Knightmare (Italian podcast)

DK 2x36 - GDPR Anno Zero

Sapete quelle mail "siccome arriva il GDPR"? Tutte inutili, molte stupide, alcune illecite. Ed è solo l'inizio, perché ora arriva l'onda del piagnisteo alla "il GDPR mi fa chiudere". Altre scemenze, e spieghiamo bene perché.

by Walter Vannini

May 29, 2018

Zero Days

Primo Convegno dell’ISLC (PARTE SECONDA): Information Warfare e Cybersecurity. Equilibri geopolitici e conflitti

Il 29 maggio 2018 si è tenuto presso l'Università degli Studi di Milano il primo Convegno dell'Information Society Law Center (http://islc.unimi.it).

Il tema scelto è stato l'information warfare: conflitti tra Stati, cybersecurity e nuovi equilibri (e conflitti) internazionali.

In questa seconda parte dell'evento, che si è tenuta nel pomeriggio, Francesca Bosco di UNICRI introduce e modera le Relazioni dell'Ambasciatore Giulio Terzi di Sant'Agata, di Stefano Mele (Avvocato) e del Prof. Pierluigi Perri dell'Università di Milano.

by zerodays

Primo Convegno dell’ISLC (PARTE PRIMA): Information Warfare e Cybersecurity. Equilibri geopolitici e conflitti

Il 29 maggio 2018 si è tenuto presso l'Università degli Studi di Milano il primo Convegno dell'Information Society Law Center (http://islc.unimi.it).

Il tema scelto è stato l'information warfare: conflitti tra Stati, cybersecurity e nuovi equilibri (e conflitti) internazionali.

In questa prima parte dell'evento, che si è tenuta nella mattinata, la Professoressa Angelica Bonfanti introduce e modera le Relazioni di Antonio Lamanna (Alpha Institute), Gabriele Suffia (ACLI Geopolitico) e Fabio Rugge (ISPI).

by zerodays

/tmp/lab

Bullshit Bingo d’Or 2018

Voici le palmarès des Bullshit Bingo Awards 2018

Les traditionnels rouleaux de PQ dorés ont été remis en présence de nos invités d’honneur, Cédric Le Vilain-Cambadeloro et Xavier Fiel que nous remercions chaleureusement pour leur participation.
C’est au terme d’un vote hautement démocratique, sous le contrôle de Me Sournois, notaire de la région Toulousaine venu rôder anonymement au THSF, que les gagnants ont été désignés.
Toutes les personnalités récompensées recevront leur rouleau de Papier Hygiénique doré attestant de leur victoire, ainsi qu’un bon d’achat au Grand Bouzier, notre partenaire commercial.
Sans plus attendre, voici les résultats !

1. Le Bullshit Bingo Award du Buzzword des 12 derniers mois

La catégorie reine, celle qui désigne le mot ayant le mieux bullshité dans l’année.
Une belle victoire pour les _ICO_, ces Initial Coin Offering qui combinent avec talent escroquerie intellectuelle et économique !
Les challengers ont été les _Cryptomonnaies_ en général, et l’_Innovation Disruptive_ au plus haut de sa forme.

2. Le Bullshit Bingo Award des Gens les plus au Top

Comme toute compétition, les Bullshit Bingo d’Or ont leurs athlètes !
C’est _Thomas Landrain_ qui a remporté le premier prix haut la main pour l’ensemble de son oeuvre et en particulier Pili, l’encre bio financée par la BPI.
Il a été suivi de très près par le _Dr Laurent Alexandre_, un spécialiste auto-proclamé des IA, opposé à la RGPD et fondateur de doctissimo.fr
Belle 3e place, fut-ce prémonitoire, pour _Laurent Wauquiez_, le premier politique qui a reconnu sa nature bullshiteur.

3. Le Bullshit Bingo Award du Bullshit Job

Le bullshit job, ça a le goût et l’apparence du travail, mais ça ne sert qu’à abrutir les gens en attendant qu’ils rentrent regarder la télé à la maison !
Victoire cette année pour le _Cloud Architect_, ceux qui dessinent des maisons dans les nuages privateurs.
Il est passé devant le _C*O_, cette belle formule chapeau déclinable à envie. Quand tu es Chief Truc Officer, quelque soit le mot sandwich, c’est toi le boss!
Enfin, loin derrière est venu le _Pitch Master_, celle ou celui qui t’enroule dans le petit pain au bullshit plus vite que son ombre.

4. Le Bullshit Bingo du Media Qui Survend Le Mieux La Révolution Digitale

Le bullshit, c’est une aubaine pour les vendeurs de publicité : comme les gens n’y comprennent rien, il faut qu’ils reviennent pour se convaincre que ça existe !
C’est _KissMyFrogs_, un média pseudo-trash mais financé par Microsoft, qui a remporté la victoire avec son article: “De la SexTech comme sport de combat”
Sont venus ensuite _LesEchos_ pour : « Apprendre ne sert à rien, c’est dangereux et ça rend idiot » par le boss de 42 et _WeDemain_, pour : La série “Les nouveaux travailleurs”

5. Le Bullshit Bingo des Startupeurs qui se rendent compte qu’ils vont trop loin.

Même dans la crème du Bullshit, de sérieux doutes naissent quant à la possibilité que les bornes du «Too Much Bullshit» aient été franchies. Dont acte.
Le vainqueur a été le média _TheConversation_, dans lequel des universitaires ont découvert que «Les start-up, moins cool qu’elles n’en ont l’air»
Deuxième place pour _Medium_ “Ne me parlez plus d’open innovation!” et troisième pour _MediaFactory_ “Startup washing : tous agiles, innovants et disrupteurs ?”

6. Le Bullshit Bingo Award du Buzzword qui a Fait Une Sortie de Route

Le Bullshit c’est bien, mais c’est une mode : comme la houle, les nouveaux buzzwords remplacent les anciens dans un cycle impitoyable de péremption bullshitique.
Première place pour _Uber_ : entre les impôts et le fait que ça tue des piétons, ça a perdu de sa superbe, fini les Ubers de ceci, Ubers de cela.
L’IOT s’est positionné derrière : pas de bol pour l’Internet of Shit, toujours pas de “killer app”…
Enfin, 3e place pour la VR qui s’est essoufflée à peine lancée.

7. Le Bullshit Bingo Award du Hackaton Qui Ne Veut Pas Mourir 

Les hackatons ça marche encore ! Même s’il s’agit aujourd’hui de mort-vivants pilotés par le lectorat assidu de l’Usine Nouvelle et les agences de com.
Belle performance pour le _Hackaton du lieu de travail_ qui a laissé l’audience interrogative sur son contenu.
Il a été suivi par le _Hackaton des réfugiés/migrants_ qui a laissé la médaille de bronze au méritoire _Hackaton des RH de la Sécu_.

8. Le Bullshit Bingo Award de la Startup Nation et des Startups Régions

Avec LAREM, le bullshit institutionnel s’est mis aux drogues dures. Attention les dégâts !
C’est le _#DataDrink à l’ETALAB_ qui a remporté la palme.
Sans démériter, _Le Rapport de Vilani_ sur l’IA et _Le Disruption Day à Matignon_ sont arrivés derrière.

9. Le Bullshit Bingo Award de la Multinationale Agile Hacker Startup

Les courses des multinationales dans les incubateurs les ont rendu discrètes : les oeufs n’étaient pas très frais apparemment.
Performance remarquée néanmoins pour _Carrefour fait de la Blockchain alimentaire_ qui se propose justement de blockchainer la traçabilité de ses poulets cotons… Bon appétit bien sûr !

10. Le Bullshit Bingo Award de la Startup qui Disrupte Mieux que les Autres

Cette année, c’est sur une thématique immobilier que s’est déployé cette catégorie.
C’est la _Hacker House_ qui a remporté le prix. Accueillir des consultants pour des missions d’architecture web ou de conseil en transformation digitale, ça c’est de la win.
Dans l’arrière cour, mais sur le Rond Point de l’Étoile quand même, est venu _Scaleway et sa «Maison»_ où une fois encore personne ne travaille : c’est rien que du bonheur et des nounours Haribo.

11. Le Bullshit Bingo Award de la Gauche Révolutionnaire et Prolétarienne

Le Bullshit est partout, il est grand temps d’ouvrir les yeux de nos amis anarcho-libertaro-fémini-syndicalo-trans-géronto-racisés.
La _Décroissance_ est passée en tête, suivie du _Journalisme vrai_, dans un salon à Paris, et _L’écritur.e inclusiv.e_ vient juste après.

12. Le Bullshit Bingo Award de la Droite Qui a des Valeurs, mais pas que…

On pourrait croire que la Droite Française se complaît dans un conservatisme des Idées qui la maintient à l’écart des mouvements de mode. Si seulement…
Le _Grand Remplacement_ a pris la première place, suivi de l’_Agitateur professionnel_. Formes modernes de dire Immigration et Gauchistes, certes.

13. Le Bullshit Bingo Award du Hashtag le Plus Glorieux

Enfin, pour les vrais amateurs et amatrices de belles choses, pour les esthètes, les fins gourmets de la chose sociale : le hashtag qui tue.
#CodingApero s’est placé en tête, suivi de #AIforHumanity.

Et voilà, c’est fini ! À L’ANNÉE PROCHAINE !!!

by alban

May 26, 2018

Zero Days

GDPR “The Day After”: dieci riflessioni su alcuni aspetti essenziali del Regolamento

Il 25 maggio è arrivato, e non c'è stata la fine del mondo. Si è iniziato, tutti, un percorso di studio, di comprensione e di adempimenti che ci porterà a un quadro di protezione dei dati molto differente e, per molti versi, molto più moderno.

In questo podcast, ripercorriamo dieci punti essenziali di questo passaggio storico, sia per i novizi, sia per chi voglia individuare quelli che saranno gli spunti di dibattito più accesi nelle prossime settimane.

by zerodays

May 25, 2018

May 23, 2018

Classic Programmer Paintings

“Lead engineer visits community support forum”James...



“Lead engineer visits community support forum”

James Tissot

Etching

Between 1886 and 1894

- Coloring unknown

(collaboration from Dan)

Informatic school is in southwest Cameroon

Linux Friends on Thursday 17-05-2018

On Thursday , 17-05-2018  a demonstration on solar energy

was carried out at the premises of the Association of Linux Friends.

IMG_20180517_141453 IMG_20180517_141445 IMG_20180517_141439 IMG_20180517_141429 IMG_20180517_141423

This demonstration was done with some assistance from Mr Valentine and Mr Jones. The main aim of this activity was to use solar energy for the Association’s secretariat.

IMG_20180517_133006 IMG_20180517_133012 IMG_20180517_133032 IMG_20180517_133427

IMG_20180517_133440 IMG_20180517_133438

At about 1:30pm all those who were to take part in the demonstration as well as the students of the Association were present. The items used for the demonstration were four(4) solar panels(with 60Watts each, making a total of 240Watts. This gives us 150volts) two(2) HP printers, a LED bulb, a distributor.

IMG_20180517_143548 IMG_20180517_143544 IMG_20180517_142802 IMG_20180517_142754 IMG_20180517_142749 IMG_20180517_142017

We started by connecting the four panels. After these panels where connected, the LED bulb was used to check if the energy in the panels is powered. These panels were later connected to the distributor. From the distributor, the printers could be plugged in to the power. The printers could not receive power due to reasons which will be researched on. With this other appliance were used to check that the volt is enough to power the printers. A LED TV,  a laptop, a rechargeable lamp, a phone and an LCD Monitor. All these appliances were powered smoothly by the energy  generated from these panels.

IMG_20180517_141951 IMG_20180517_141851 IMG_20180517_141300 IMG_20180517_141257 IMG_20180517_140902 IMG_20180517_140421

It was speculated by the technicians that, the printers could not be powered because it uses an adapter with and old technology(modern technologies are build in with the ability to convert a DC to and AC depending on the need of the appliance). So for the energy to be able to reach the printer a DC AC inverter will have to be put to convert the energy.

IMG_20180517_134216 IMG_20180517_134222 IMG_20180517_134223 IMG_20180517_134250 IMG_20180517_134250 IMG_20180517_135509   IMG_20180517_140130

With this, we would not say our aim was achieved but it will give us another opportunity to do a demonstration in order to solve the problem. And another demonstration will mean a chance to create awareness to the people about the advantages of using solar energy.

IMG_20180517_134222 IMG_20180517_135112 IMG_20180517_135251 IMG_20180517_134357 IMG_20180517_134704 IMG_20180517_134250

We were joined by three other gentlemen who also gave some contributions to the problem we faced of the printer not been able to receive energy. Another demonstration will be carried out to solve the problem of today in the days ahead.

by admin

Data Knightmare (Italian podcast)

DK 2x35 - Onore al compagno Google!

Prima fu project Maven, poi Google Duplex che telefona, e ora Google Selfish Ledger. Google diventa la Chiesa degli Algopirla, un progetto genuinamente leninista made in Silicon Valley.

by Walter Vannini

May 22, 2018

Classic Programmer Paintings

“The horrors of hanging threads in parallel execution”Jean...



“The horrors of hanging threads in parallel execution”

Jean Jaques Callot

(collaboration from Ynnad)

n-gate.com. we can't both be right.

webshit weekly

An annotated digest of the top "Hacker" "News" posts for the third week of May, 2018.

Completely Silent Computer
May 15, 2018 (comments)
Nadine Hurley takes up computer building as a hobby. Hackernews scoffs that perfectly silent computers have been available for a while now and are called iPhones, then name a handful of other fanless computers, then complain that half of them make noise anyway. Some daylight is burned trying to figure out what 'computer' means in the first place. Later, Hackernews lines up to name every piece of computer equipment they've ever purchased.

JavaScript is Good, Actually
May 15, 2018 (comments)
A webshit incorrectly decides that javascript is not a shitshow, because all of the bad design choices have excuses and workarounds. You just don't know javascript the way webshits do; it loves them and it only hits them when it's been drinking, which is not its fault. Hackernews is seized in a paroxysm of indecision; they can sort-of map javascript shit to the things they learned in Khan Academy computer science videos, but not quite... so is this a failing in javascript, to be a pile of bad implementations of questionable goals? Or is this a failing in computer science, to have posited concepts that javascript can't quite fully deploy? This conundrum proves to be insurmountable, so Hackernews settles in to enumerate every single programming language they've ever heard of, compare them all to javascript, and agree that as bad as it is, it's not C, which is hard and the people who use it are mean. Perl is not mentioned at all in the entire thread, which is an excellent reason to immediately use perl as often as possible.

US cell carriers are selling access to real-time phone location data
May 16, 2018 (comments)
Corporations with access to data sell the data. Hackernews spends their lunch break making secret accounts to confirm this groundbreaking news and go on to claim that it's not only endemic to the entire mobile device market but that there are in fact customers who wish to purchase access to the data. Other Hackernews take a break from buying and parsing this same data to mull over ways they can stop their employers from acting like shitheads, but soon reach the conclusion that there's no way to stop any misbehavior of any sort and the only logical response to the situation is to get paid to misbehave.

LocationSmart Leaked Location Data for All Major U.S. Carriers in Real Time
May 17, 2018 (comments)
One of the customers of the data from yesterday's story is found to have the data they paid for. A webshit figures out how to trick it into giving the data away for free. Hackernews bemoans the fact that this information was not used to cause the general population to rise up and strike down the people who employ most of Hackernews.

The Stuxnet worm may be the most sophisticated software ever written
May 18, 2018 (comments)
Some webshits glamorize malware. Hackernews disagrees, and thinks that other, more boring software should also be glamorized. To get to the bottom of whether the malware in question is sufficiently glamorous, Hackernews invents several engineering disciplines from first principles, then declares them all trivial. Once they're done deciding that nobody but Hackernews is qualified to have any opinions on warfare, they move on to clarify that nobody is qualified to have any opinion on anything at all.

A Wikipedia editor's long-running campaign
May 19, 2018 (comments)
An Internet points out that Wikipedia is unreliable because it is infested with assholes. Hackernews scrambles to be first in line to vomit forth half-baked technical solutions to get rid of assholes, then gets distracted by the question of whether it's worth getting rid of assholes, or whether there are even people alive who are not assholes. Nearly all of the discussions get derailed by pedantry regarding the complaints about the articles in question, leading to the world's first Wikipedia-editing cold war by proxy.

Getting Google to ban our entire company
May 20, 2018 (comments)
A Reddit, on a phone in a bathroom stall, accidentally flushes an entire company. Hackernews does not lend any credence to this story, because Google is flawless and would never deploy an automated system that accidentally fucks over an entire organization (except for the many, many times they do precisely that). When defending the honor of Google loses its luster, Hackernews moves on to telling war stories about other shitty customer support from other software companies, presumably to make Google feel better about being a pack of incompetent stooges.

82-Year-Old Japanese Woman Finds Success in Coding
May 21, 2018 (comments)
An old person has free time. Hackernews is smitten; any story about someone typing things on a computer is definitely the feel-good human-interest story they need after yesterday's harrowing brush with apostasy. After a while they forget what they're talking about and return to form, constructing an a-priori definition of learning and retconning dimly-remembered high school linguistics lessons to justify it. Noam Chomsky would be proud, if he weren't too busy training for the Dunning-Kruger Prize in International Politics.

by http://n-gate.com/hackernews/2018/05/21/0/

May 21, 2018

Andy Wingo

correct or inotify: pick one

Let's say you decide that you'd like to see what some other processes on your system are doing to a subtree of the file system. You don't want to have to change how those processes work -- you just want to see what files those processes create and delete.

One approach would be to just scan the file-system tree periodically, enumerating its contents. But when the file system tree is large and the change rate is low, that's not an optimal thing to do.

Fortunately, Linux provides an API to allow a process to receive notifications on file-system change events, called inotify. So you open up the inotify(7) manual page, and are greeted with this:

With careful programming, an application can use inotify to efficiently monitor and cache the state of a set of filesystem objects. However, robust applications should allow for the fact that bugs in the monitoring logic or races of the kind described below may leave the cache inconsistent with the filesystem state. It is probably wise to do some consistency checking, and rebuild the cache when inconsistencies are detected.

It's not exactly reassuring is it? I mean, "you had one job" and all.

Reading down a bit farther, I thought that with some "careful programming", I could get by. After a day of trying, I am now certain that it is impossible to build a correct recursive directory monitor with inotify, and I am not even sure that "good enough" solutions exist.

pitfall the first: buffer overflow

Fundamentally, inotify races the monitoring process with all other processes on the system. Events are delivered to the monitoring process via a fixed-size buffer that can overflow, and the monitoring process provides no back-pressure on the system's rate of filesystem modifications. With inotify, you have to be ready to lose events.

This I think is probably the easiest limitation to work around. The kernel can let you know when the buffer overflows, and you can tweak the buffer size. Still, it's a first indication that perfect is not possible.

pitfall the second: now you see it, now you don't

This one is the real kicker. Say you get an event that says that a file "frenemies.txt" has been created in the directory "/contacts/". You go to open the file -- but is it still there? By the time you get around to looking for it, it could have been deleted, or renamed, or maybe even created again or replaced! This is a TOCTTOU race, built-in to the inotify API. It is literally impossible to use inotify without this class of error.

The canonical solution to this kind of issue in the kernel is to use file descriptors instead. Instead of or possibly in addition to getting a name with the file change event, you get a descriptor to a (possibly-unlinked) open file, which you would then be responsible for closing. But that's not what inotify does. Oh well!

pitfall the third: race conditions between inotify instances

When you inotify a directory, you get change notifications for just that directory. If you want to get change notifications for subdirectories, you need to open more inotify instances and poll on them all. However now you have N2 problems: as poll and the like return an unordered set of readable file descriptors, each with their own ordering, you no longer have access to a linear order in which changes occurred.

It is impossible to build a recursive directory watcher that definitively says "ok, first /contacts/frenemies.txt was created, then /contacts was renamed to /peeps, ..." because you have no ordering between the different watches. You don't know that there was ever even a time that /contacts/frenemies.txt was an accessible file name; it could have been only ever openable as /peeps/frenemies.txt.

Of course, this is the most basic ordering problem. If you are building a monitoring tool that actually wants to open files -- good luck bubster! It literally cannot be correct. (It might work well enough, of course.)

reflections

As far as I am aware, inotify came out to address the needs of desktop search tools like the belated Beagle (11/10 good pupper just trying to get his pup on). Especially in the days of spinning metal, grovelling over the whole hard-drive was a real non-starter, especially if the search database should to be up-to-date.

But after looking into inotify, I start to see why someone at Google said that desktop search was in some ways harder than web search -- I mean we all struggle to find files on our own machines, even now, 15 years after the whole dnotify/inotify thing started. Part of it is that the given the choice between supporting reliable, fool-proof file system indexes on the one hand, and overclocking the IOPS benchmarks on the other, the kernel gave us inotify. I understand it, but inotify still sucks.

I dunno about you all but whenever I've had to document such an egregious uncorrectable failure mode as any of the ones in the inotify manual, I have rewritten the software instead. In that spirit, I hope that some day we shall send inotify to the pet cemetery, to rest in peace beside Beagle.

by Andy Wingo

May 18, 2018

Informatic school is in southwest Cameroon

Linux Friends on Thursday 17-05-2018

On Thursday the 17-05-2018 there was a demonstration on solar

 

energy at the premises of the Association of Linux Friends.

 

IMG_20180517_141453 IMG_20180517_141445 IMG_20180517_141439 IMG_20180517_141429 IMG_20180517_141423

This demonstration was done with some assistance from Mr Valentine and Mr Jones. The main aim of this activity was to use solar energy for the Association’s secretariat.

IMG_20180517_133006 IMG_20180517_133012 IMG_20180517_133032 IMG_20180517_133427

IMG_20180517_133440 IMG_20180517_133438

At about 1:30pm all those who were to take part in the demonstration as well as the students of the Association were present. The items used for the demonstration were four(4) solar panels(with 60Watts each, making a total of 240Watts. This gives us 150volts) two(2) HP printers, a LED bulb, a distributor.

IMG_20180517_143548 IMG_20180517_143544 IMG_20180517_142802 IMG_20180517_142754 IMG_20180517_142749 IMG_20180517_142017

We started by connecting the four panels. After these panels where connected, the LED bulb was used to check if the energy in the panels is powered. These panels were later connected to the distributor. From the distributor, the printers could be plugged in to the power. The printers could not receive power due to reasons which will be researched on. With this other appliance were used to check that the volt is enough to power the printers. A LED TV,  a laptop, a rechargeable lamp, a phone and an LCD Monitor. All these appliances were powered smoothly by the energy  generated from these panels.

IMG_20180517_141951 IMG_20180517_141851 IMG_20180517_141300 IMG_20180517_141257 IMG_20180517_140902 IMG_20180517_140421

It was speculated by the technicians that, the printers could not be powered because it uses an adapter with and old technology(modern technologies are build in with the ability to convert a DC to and AC depending on the need of the appliance). So for the energy to be able to reach the printer a DC AC inverter will have to be put to convert the energy.

IMG_20180517_134216 IMG_20180517_134222 IMG_20180517_134223 IMG_20180517_134250 IMG_20180517_134250 IMG_20180517_135509   IMG_20180517_140130

With this, we would not say our aim was achieved but it will give us another opportunity to do a demonstration in order to solve the problem. And another demonstration will mean a chance to create awareness to the people about the advantages of using solar energy.

IMG_20180517_134222 IMG_20180517_135112 IMG_20180517_135251 IMG_20180517_134357 IMG_20180517_134704 IMG_20180517_134250

Towards the end of the demonstration we were joined by three other gentlemen who also gave some contributions to the problem we faced of the printer not been able to receive energy. Another demonstration will be carried out to solve the problem of today in the days ahead.

by admin

Museo dell Informatica funzionante

bi

Sorry, this entry is only available in Italian.

L'articolo bi sembra essere il primo su Museo dell'Informatica Funzionante.

by admin

May 16, 2018

Andy Wingo

lightweight concurrency in lua

Hello, all! Today I'd like to share some work I have done recently as part of the Snabb user-space networking toolkit. Snabb is mainly about high-performance packet processing, but it also needs to communicate with management-oriented parts of network infrastructure. These communication needs are performed by a dedicated manager process, but that process has many things to do, and can't afford to make blocking operations.

Snabb is written in Lua, which doesn't have built-in facilities for concurrency. What we'd like is to have fibers. Fortunately, Lua's coroutines are powerful enough to implement fibers. Let's do that!

fibers in lua

First we need a scheduling facility. Here's the smallest possible scheduler: simply a queue of tasks and a function to run those tasks.

local task_queue = {}

function schedule_task(thunk)
   table.insert(task_queue, thunk)
end

function run_tasks()
   local queue = task_queue
   task_queue = {}
   for _,thunk in ipairs(queue) do thunk() end
end

For our purposes, a task is just a function that will be called with no arguments.

Now let's build fibers. This is easier than you might think!

local current_fiber = false

function spawn_fiber(fn)
   local fiber = coroutine.create(fn)
   schedule_task(function () resume_fiber(fiber) end)
end

function resume_fiber(fiber, ...)
   current_fiber = fiber
   local ok, err = coroutine.resume(fiber, ...)
   current_fiber = nil
   if not ok then
      print('Error while running fiber: '..tostring(err))
   end
end

function suspend_current_fiber(block, ...)
   -- The block function should arrange to reschedule
   -- the fiber when it becomes runnable.
   block(current_fiber, ...)
   return coroutine.yield()
end

Here, a fiber is simply a coroutine underneath. Suspending a fiber suspends the coroutine. Resuming a fiber runs the coroutine. If you're unfamiliar with coroutines, or coroutines in Lua, maybe have a look at the lua-users wiki page on the topic.

The difference between a fibers facility and just coroutines is that with fibers, you have a scheduler as well. Very much like Scheme's call-with-prompt, coroutines are one of those powerful language building blocks that should rarely be used directly; concurrent programming needs more structure than what Lua offers.

If you're following along, it's probably worth it here to think how you would implement yield based on these functions. A yield implementation should yield control to the scheduler, and resume the fiber on the next scheduler turn. The answer is here.

communication

Once you have fibers and a scheduler, you have concurrency, which means that if you're not careful, you have a mess. Here I think the Go language got the essence of the idea exactly right: Do not communicate by sharing memory; instead, share memory by communicating.

Even though Lua doesn't support multiple machine threads running concurrently, concurrency between fibers can still be fraught with bugs. Tony Hoare's Communicating Sequential Processes showed that we can avoid a class of these bugs by treating communication as a first-class concept.

Happily, the Concurrent ML project showed that it's possible to build these first-class communication facilities as a library, provided the language you are working in has threads of some kind, and fibers are enough. Last year I built a Concurrent ML library for Guile Scheme, and when in Snabb we had a similar need, I ported that code over to Lua. As it's a new take on the problem in a different language, I think I've been able to simplify things even more.

So let's take a crack at implementing Concurrent ML in Lua. In CML, the fundamental primitive for communication is the operation. An operation represents the potential for communication. For example, if you have a channel, it would have methods to return "get operations" and "put operations" on that channel. Actually receiving or sending a message on a channel occurs by performing those operations. One operation can be performed many times, or not at all.

Compared to a system like Go, for example, there are two main advantages of CML. The first is that CML allows non-deterministic choice between a number of potential operations in a generic way. For example, you can construct a operation that, when performed, will either get on one channel or wait for a condition variable to be signalled, whichever comes first. In Go, you can only select between operations on channels.

The other interesting part of CML is that operations are built from a uniform protocol, and so users can implement new kinds of operations. Compare again to Go where all you have are channels, and nothing else.

The CML operation protocol consists three related functions: try which attempts to directly complete an operation in a non-blocking way; block, which is called after a fiber has suspended, and which arranges to resume the fiber when the operation completes; and wrap, which is called on the result of a successfully performed operation.

In Lua, we can call this an implementation of an operation, and create it like this:

function new_op_impl(try, block, wrap)
   return { try=try, block=block, wrap=wrap }
end

Now let's go ahead and write the guts of CML: the operation implementation. We'll represent an operation as a Lua object with two methods. The perform method will attempt to perform the operation, and return the resulting value. If the operation can complete immediately, the call to perform will return directly. Otherwise, perform will suspend the current fiber and arrange to continue only when the operation completes.

The wrap method "decorates" an operation, returning a new operation that, if and when it completes, will "wrap" the result of the completed operation with a function, by applying the function to the result. It's useful to distinguish the sub-operations of a non-deterministic choice from each other.

Here our new_op function will take an array of operation implementations and return an operation that, when performed, will synchronize on the first available operation. As you can see, it already has the equivalent of Go's select built in.

function new_op(impls)
   local op = { impls=impls }
   
   function op.perform()
      for _,impl in ipairs(impls) do
         local success, val = impl.try()
         if success then return impl.wrap(val) end
      end
      local function block(fiber)
         local suspension = new_suspension(fiber)
         for _,impl in ipairs(impls) do
            impl.block(suspension, impl.wrap)
         end
      end
      local wrap, val = suspend_current_fiber(block)
      return wrap(val)
   end

   function op.wrap(f)
      local wrapped = {}
      for _, impl in ipairs(impls) do
         local function wrap(val)
            return f(impl.wrap(val))
         end
         local impl = new_op_impl(impl.try, impl.block, wrap)
         table.insert(wrapped, impl)
      end
      return new_op(wrapped)
   end

   return op
end

There's only one thing missing there, which is new_suspension. When you go to suspend a fiber because none of the operations that it's trying to do can complete directly (i.e. all of the try functions of its impls returned false), at that point the corresponding block functions will publish the fact that the fiber is waiting. However the fiber only waits until the first operation is ready; subsequent operations becoming ready should be ignored. The suspension is the object that manages this state.

function new_suspension(fiber)
   local waiting = true
   local suspension = {}
   function suspension.waiting() return waiting end
   function suspension.complete(wrap, val)
      assert(waiting)
      waiting = false
      local function resume()
         resume_fiber(fiber, wrap, val)
      end
      schedule_task(resume)
   end
   return suspension
end

As you can see, the suspension's complete method is also the bit that actually arranges to resume a suspended fiber.

Finally, just to round out the implementation, here's a function implementing non-deterministic choice from among a number of sub-operations:

function choice(...)
   local impls = {}
   for _, op in ipairs({...}) do
      for _, impl in ipairs(op.impls) do
         table.insert(impls, impl)
      end
   end
   return new_op(impls)
end

on cml

OK, I'm sure this seems a bit abstract at this point. Let's implement something concrete in terms of these primitives: channels.

Channels expose two similar but different kinds of operations: put operations, which try to send a value, and get operations, which try to receive a value. If there's a sender already waiting to send when we go to perform a get_op, the operation continues directly, and we resume the sender; otherwise the receiver publishes its suspension to a queue. The put_op case is similar.

Finally we add some synchronous put and get convenience methods, in terms of their corresponding CML operations.

function new_channel()
   local ch = {}
   -- Queues of suspended fibers waiting to get or put values
   -- via this channel.
   local getq, putq = {}, {}

   local function default_wrap(val) return val end
   local function is_empty(q) return #q == 0 end
   local function peek_front(q) return q[1] end
   local function pop_front(q) return table.remove(q, 1) end
   local function push_back(q, x) q[#q+1] = x end

   -- Since a suspension could complete in multiple ways
   -- because of non-deterministic choice, it could be that
   -- suspensions on a channel's putq or getq are already
   -- completed.  This helper removes already-completed
   -- suspensions.
   local function remove_stale_entries(q)
      local i = 1
      while i <= #q do
         if q[i].suspension.waiting() then
            i = i + 1
         else
            table.remove(q, i)
         end
      end
   end

   -- Make an operation that if and when it completes will
   -- rendezvous with a receiver fiber to send VAL over the
   -- channel.  Result of performing operation is nil.
   function ch.put_op(val)
      local function try()
         remove_stale_entries(getq)
         if is_empty(getq) then
            return false, nil
         else
            local remote = pop_front(getq)
            remote.suspension.complete(remote.wrap, val)
            return true, nil
         end
      end
      local function block(suspension, wrap)
         remove_stale_entries(putq)
         push_back(putq, {suspension=suspension, wrap=wrap, val=val})
      end
      return new_op({new_op_impl(try, block, default_wrap)})
   end

   -- Make an operation that if and when it completes will
   -- rendezvous with a sender fiber to receive one value from
   -- the channel.  Result is the value received.
   function ch.get_op()
      local function try()
         remove_stale_entries(putq)
         if is_empty(putq) then
            return false, nil
         else
            local remote = pop_front(putq)
            remote.suspension.complete(remote.wrap)
            return true, remote.val
         end
      end
      local function block(suspension, wrap)
         remove_stale_entries(getq)
         push_back(getq, {suspension=suspension, wrap=wrap})
      end
      return new_op({new_op_impl(try, block, default_wrap)})
   end

   function ch.put(val) return ch.put_op(val).perform() end
   function ch.get()    return ch.get_op().perform()    end

   return ch
end

a wee example

You might be wondering what it's like to program with channels in Lua, so here's a little example that shows a prime sieve based on channels. It's not a great example of concurrency in that it's not an inherently concurrent problem, but it's cute to show computations in terms of infinite streams.

function prime_sieve(count)
   local function sieve(p, rx)
      local tx = new_channel()
      spawn_fiber(function ()
         while true do
            local n = rx.get()
            if n % p ~= 0 then tx.put(n) end
         end
      end)
      return tx
   end

   local function integers_from(n)
      local tx = new_channel()
      spawn_fiber(function ()
         while true do
            tx.put(n)
            n = n + 1
         end
      end)
      return tx
   end

   local function primes()
      local tx = new_channel()
      spawn_fiber(function ()
         local rx = integers_from(2)
         while true do
            local p = rx.get()
            tx.put(p)
            rx = sieve(p, rx)
         end
      end)
      return tx
   end

   local done = false
   spawn_fiber(function()
      local rx = primes()
      for i=1,count do print(rx.get()) end
      done = true
   end)

   while not done do run_tasks() end
end

Here you also see an example of running the scheduler in the last line.

where next?

Let's put this into perspective: in a couple hundred lines of code, we've gone from minimal Lua to a language with lightweight multitasking, extensible CML-based operations, and CSP-style channels; truly a delight.

There are a number of possible ways to extend this code. One of them is to implement true multithreading, if the language you are working in supports that. In that case there are some small protocol modifications to take into account; see the notes on the Guile CML implementation and especially the Manticore Parallel CML project.

The implementation above is pleasantly small, but it could be faster with the choice of more specialized data structures. I think interested readers probably see a number of opportunities there.

In a library, you might want to avoid the global task_queue and implement nested or multiple independent schedulers, and of course in a parallel situation you'll want core-local schedulers as well.

The implementation above has no notion of time. What we did in the Snabb implementation of fibers was to implement a timer wheel, inspired by Juho Snellman's Ratas, and then add that timer wheel as a task source to Snabb's scheduler. In Snabb, every time the equivalent of run_tasks() is called, a scheduler asks its sources to schedule additional tasks. The timer wheel implementation schedules expired timers. It's straightforward to build CML timeout operations in terms of timers.

Additionally, your system probably has other external sources of communication, such as sockets. The trick to integrating sockets into fibers is to suspend the current fiber whenever an operation on a file descriptor would block, and arrange to resume it when the operation can proceed. Here's the implementation in Snabb.

The only difficult bit with getting nice nonblocking socket support is that you need to be able to suspend the calling thread when you see the EWOULDBLOCK condition, and for coroutines that is often only possible if you implemented the buffered I/O yourself. In Snabb that's what we did: we implemented a compatible replacement for Lua's built-in streams, in Lua. That lets us handle EWOULDBLOCK conditions in a flexible manner. Integrating epoll as a task source also lets us sleep when there are no runnable tasks.

Likewise in the Snabb context, we are also working on a TCP implementation. In that case you want to structure TCP endpoints as fibers, and arrange to suspend and resume them as appropriate, while also allowing timeouts. I think the scheduler and CML patterns are going to allow us to do that without much trouble. (Of course, the TCP implementation will give us lots of trouble!)

Additionally your system might want to communicate with fibers from other threads. It's entirely possible to implement CML on top of pthreads, and it's entirely possible as well to support communication between pthreads and fibers. If this is interesting to you, see Guile's implementation.

When I talked about fibers in an earlier article, I built them in terms of delimited continuations. Delimited continuations are fun and more expressive than coroutines, but it turns out that for fibers, all you need is the expressive power of coroutines -- multi-shot continuations aren't useful. Also I think the presentation might be more straightforward. So if all your language has is coroutines, that's still good enough.

There are many more kinds of standard CML operations; implementing those is also another next step. In particular, I have found semaphores and condition variables to be quite useful. Also, standard CML supports "guards", invoked when an operation is performed, and "nacks", invoked when an operation is definitively not performed because a choice selected some other operation. These can be layered on top; see the Parallel CML paper for notes on "primitive CML".

Also, the choice operator above is left-biased: it will prefer earlier impls over later ones. You might want to not always start with the first impl in the list.

The scheduler shown above is the simplest thing I could come up with. You may want to experiment with other scheduling algorithms, e.g. capability-based scheduling, or kill-safe abstractions. Do it!

Or, it could be you already have a scheduler, like some kind of main loop that's already there. Cool, you can use it directly -- all that fibers needs is some way to schedule functions to run.

godspeed

In summary, I think Concurrent ML should be better-known. Its simplicity and expressivity make it a valuable part of any concurrent system. Already in Snabb it helped us solve some longstanding gnarly issues by making the right solutions expressible.

As Adam Solove says, Concurrent ML is great, but it has a branding problem. Its ideas haven't penetrated the industrial concurrent programming world to the extent that they should. This article is another attempt to try to get the word out. Thanks to Adam for the observation that CML is really a protocol; I'm sure the concepts could be made even more clear, but at least this is a step forward.

All the code in this article is up on a gitlab snippet along with instructions for running the example program from the command line. Give it a go, and happy hacking with CML!

by Andy Wingo

Data Knightmare (Italian podcast)

DK 2x34 - La punta dell'iceberg

Il Garante Privacy europeo Buttarelli ripete da settimane che il caso Facebook/Cambridge Analytica è solo la punta dell'iceberg. A guardarsi intorno viene da dire che Buttarelli è un ottimista...

by Walter Vannini

May 15, 2018

n-gate.com. we can't both be right.

webshit weekly

An annotated digest of the top "Hacker" "News" posts for the second week of May, 2018.

Google Duplex: An AI System for Accomplishing Real World Tasks Over the Phone
May 08, 2018 (comments)
Google, the provider of reCAPTCHA, a service designed to prevent software from pretending to be people on the internet, brags about their software that pretends to be people on the phone. Hackernews reassures everyone that this is fine, since only idiots talk on the phone. The rest of the comments are all predictions of the amazing new world ushered in by robots lying on telephones.

Seaweed in Cow Feed Reduces Methane Emissions Almost Entirely
May 09, 2018 (comments)
Some Australians feed seafood to cattle. Hackernews uses the story as an excuse to talk about the ocean off the coast of San Francisco. Every single Hackernews is an agribusiness economist.

Google YOLO clickjacking
May 10, 2018 (comments)
A webshit narrates a security flaw inherent in Google trash. Google decides they won't fix it because it would be hard. Hackernews is briefly scandalized, but then Google informs them that this security problem is only available for use by people who give Google a lot of money. Hackernews whiles away the hours by poorly reinventing every single authentication security mechanism ever used.

Pyre: Fast Type Checking for Python
May 11, 2018 (comments)
Some webshits release a toy. Hackernews spends a lot of time and energy debating whether or not it's worth knowing anything about the programming language you're using, but reach no clear conclusions. Growing uncomfortably close to realizing how ill-equipped they are to perform the work they're paid to do, they set about reëvaluating the question from a project management perspective.

Build your own X: project-based programming tutorials
May 12, 2018 (comments)
A webshit sets about creating the Encyclopedia of Wheel Reinvention. Hackernews has several editions of this work and pastes all of them into the comment box. Other Hackernews get confused between 'x' as in a variable name and 'X' as in the windowing system, but it all works out when someone links to several hand-holding resources about that too.

Make front end shit again
May 13, 2018 (comments)
A webshit shits web. The result is a Geocities homage using a mere 200kb of javascript to generate over 13kb of HTML. Even Hackernews is on the fence regarding this being a poorly-executed parody or just an honest webshit who doesn't know any better. A handful of recalcitrant Hackernews opine aloud that perhaps this shit is retarded either way, but they are swiftly beaten into a pulp by passersby. Because there are no CSS gradients, Hackernews uses the word 'brutalism' a lot.

John Carmack: My Steve Jobs Stories
May 14, 2018 (comments)
An old man rambles on Facebook. Because the topic is Apple, it sets off every Google Alert in Redwood City, and Hackernews swoops in to capitalize on the Festival of Namedropping. One Hackernews wants to know how the hell you boot a NeXT box and write software for MS-DOS, which is a totally different "operative system." The answer, of course, is javascript.

by http://n-gate.com/hackernews/2018/05/14/0/

May 12, 2018

Trasformatorio

Mose’ Previti – Sorrisi Giampilieri

L’acqua che tocchi
è la prima di quella che sei
e dopo, come sei?

Antico come il greco
che sta nelle nostre ginocchia
che portano tra le nostre vecchie case

L’acqua calda è indifferente
come questo tempo
che ama i nostri capelli
i nostri capelli bianchi
come le nostre ossa
più forti della notte densa
che scorre sotto il nostro passo incerto
ma che non si stanca mai

La Madonna americana
con tutto il suo amore
dritta
non può crollare mai
la nostra sveglia
già canta tra l fontane
il filo che scivola
e ancora filo abbiamo raccolto
abbiamo cucito

La nostra festa
coi fiori che aprono il cemento
è vita come acqua
non si può fermare mai
invincibili
i nostri sorrisi Giampilieri

— ENGLISH —
The water you touch
it’s the first of what you are
and after, how are you?

Ancient like the Greek
that is in our knees
that lead between our old houses

Hot water is indifferent
like this time
who loves our hair
our white hair
like our bones
stronger than the dense night
flowing under our uncertain pace
but that never gets tired

The American Madonna
with all his love
starboard
She can never collapse
our alarm clock
already sings among the fountains
the thread that slides
and stille thread we have collected
we have sewed

Our party
with the flowers that open the cement
it is life like water
you can nver stop
invincible our smiles Giampilieri


Testo e musiche: Mosè Previti
Voce: Rosaria Sfragara
Special thanks to Giulia Deval, Hansko Visser, Gabriele Zaverio, Claire Ducène for music and smiles.

All sessions recorded during TRASFORMATORIO 2018, Giampilieri, Sicily, from 20 to 30 April 2018.

“Sorrisi Giampilieri” fa parte del disco Adesso Premium


Mose’: Sono uno storico dell’arte e un creativo. Ho scritto articoli, saggi, libri, cataloghi d’arte, soggetti per documentari, pubblicità. Ho organizzato concerti, eventi culturali e mostre. Ho curato e curo diversi blog, gestisco pagine e contenuti sui social per progetti creativi. Musicista e paroliere, nel 2009 ho fondato i Big Mimma world music band sperimentatrice di suoni e linguaggi contemporanei.
Arte e creatività devono essere presenti nella vita di tutti gli uomini, sia come espressione di una compiuta e consapevole libertà individuale, sia come rigoroso metodo di lavoro.

ENG: I am an art historian and a creative. I wrote articles, papers, books and art catalogues, subyects for documentaries and advertising. I organised concerts, cultural events and exhibitions. I curated and cure blogs,pages and other creative content on the network. I am a musician and a text writer, in 2009 I founded the BIG MIMMA, world music band, that experiments with sounds and contemporary musical languages.
Art and creativity should be present in every person life, both as a expression of a free activity than as a rigourous methodology of work.

by fredd

May 10, 2018

Informatic school is in southwest Cameroon

Visit to Secondary Schools in Mile 4 by the Association of Linux Friends Limbe, 09-05-2018

Wednesday the 9th of May 2018, a representative of the Association of Linux friends visiting schools in mile 4 Limbe.

 with the assignment to create awareness about Linux Friends and especially because these students will soon be on a 3 months vacation. Therefore it will be good for them to be occupied learning something on technology during this period. Our main target was secondary schools with our target population been form five (5) and the second cycle.

Webp.net-compress-image

IMG_20180509_131805

There are mainly three secondary institutions in this area (mile 4). Namely Kings Memorial College Bonadikombo, Renaissance secondary school Bonadikombo and Government High School Bonadikombo.

IMG_20180509_131801

My first stop was at Kings Memorial College Bonadikombo. Here, I met the principal who was very friendly. After presenting to her the courses offered at the Association, she proposed I take another date to meet the students. We decided Wednesday the 16th of May, 2018 will be more favourable day.

Mile2

With that I moved on to Renaissance secondary school Bonadikombo. I got the same response from this institution as in Kings Memorial College. The Association will send representatives to the school for a presentation and invitation to study with us during their 3 months vacation.

IMG_20180509_131651

My last stop was at Government High school Bonadikombo. I was fortunate to meet one of the vice principals of this institution by name Mr Lukong Leonel. He was very impressed about the existence of an empowerment center such as Linux Friends. I was led to the upper sixth class where  i had a small talk with the students and handed them the Association’s flyers. The students are very excited to study with Linux Friends.

With that I made my way back to the Association to give a report on my visits.

IMG_20180509_131638 Mile7

To conclude, I very much appreciate the response of the administrations of the various schools as well as the students. We need more enthusiasts like them to build and empower the youths.

by admin

Trasformatorio

Trasformatorio 2018 Press –

TV

  • RAI http://www.rainews.it/dl/rainews/TGR/media/sic-giampiliei-a9e64a39-96d3-4588-9086-9fc0d677089d.html

  • RTP min. 32.10 http://www.rtptv.it/video/rtp-giornale-del-19-04-2018-1a-ed.html#sthash.q5NrV56j.slbwkOfk.dpbs

  • TREMEDIA https://www.youtube.com/watch?v=nlNRF4sGKgY&t=9s

  • TCF https://www.youtube.com/watch?v=eNjD2GAHvAs

RADIO

  • RADIOSTREET
  • https://www.mixcloud.com/RadioStreet/il-brunch-190418-trasformatorio-federico-bonelli/
  • Trasformatorio, tutto quello che non avete visto

  • RADIO START ME UP

  • http://www.radiostartmeup.it/trasformatorio-2018-art-sicilia-sicily/
  • http://www.radiostartmeup.it/arte-contemporanea-rileggere-trasformare-luoghi/

WEB

  • GAZZETTA DEL SUD http://www.gazzettadelsud.it/news/messina/289266/il-trasformatorio-di-giampilieri.html

  • LALLERU

  • http://www.lalleru.it/2018/02/trasformatorio-2018-intervista-federico.html
  • http://www.lalleru.it/2018/03/trasformatorio-dal-20042018-dal.html

  • LETTERAEMME http://www.letteraemme.it/2018/04/19/trasformatorio-2018-da-domani-35-artisti-in-citta/

  • MESSINA7 http://www.messina7.it/2018/04/19/presentata-oggi-ledizione-2018-di-trasformatorio-il-laboratorio-internazionale-di-arti-sperimentali/

  • STRILL.IT http://www.strill.it/archivio/notizie-archivio/2018/04/messina-domani-presentazione-del-iv-laboratorio-di-arti-sperimentali/

  • KONTEMPORANEOARTE http://kontemporaneoarte.com/2018/04/18/trasformatorio-2018-what-is-trasformatorio/

  • MESSINAORA

  • http://linkis.com/www.messinaora.it/1MKxs
  • https://it.eventbu.com/messina/trasformatorio-2018-opening/10276219

Altri


Osservatorio a cura di Giuseppe Morgana

cof
cof

by fredd