<!DOCTYPE HTML>
<html  dir="auto">
	<head>
		<meta charset="utf-8">

		<title>sottovoce &mdash; noblogo.org</title>

		<link rel="stylesheet" type="text/css" href="/css/write.css?7fbf49a0ed9c9ce4164cb" />
		
		<link rel="shortcut icon" href="/favicon.ico" />
		<link rel="canonical" href="https://noblogo.org/sottovoce/">
		
		
		<link rel="alternate" type="application/rss+xml" title="sottovoce &raquo; Feed" href="https://noblogo.org/sottovoce/feed/" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />

		<meta name="generator" content="WriteFreely">
		<meta name="description" content="Strumento di resistenza per i consumatori ">
		<meta itemprop="name" content="sottovoce">
		<meta itemprop="description" content="Strumento di resistenza per i consumatori ">
		<meta name="twitter:card" content="summary">
		<meta name="twitter:title" content="sottovoce">
		<meta name="twitter:image" content="https://noblogo.org/img/avatars/s.png">
		<meta name="twitter:description" content="Strumento di resistenza per i consumatori ">
		<meta property="og:title" content="sottovoce" />
		<meta property="og:site_name" content="sottovoce" />
		<meta property="og:type" content="article" />
		<meta property="og:url" content="https://noblogo.org/sottovoce/" />
		<meta property="og:description" content="Strumento di resistenza per i consumatori " />
		<meta property="og:image" content="https://noblogo.org/img/avatars/s.png">
		
	
	

		

		

		
		
<script>
  
  addEventListener('DOMContentLoaded', function () {
    var hlbaseUri = "/js/";
    var lb = document.querySelectorAll("code[class^='language-']");


    
    var aliasmap = {
      "elisp"      : "lisp",
      "emacs-lisp" : "lisp",
      "c"          : "cpp",
      "cc"         : "cpp",
      "h"          : "cpp",
      "c++"        : "cpp",
      "h++"        : "cpp",
      "hpp"        : "cpp",
      "hh"         : "cpp",
      "hxx"        : "cpp",
      "cxx"        : "cpp",
      "sh"         : "bash",
      "js"         : "javascript",
      "jsx"        : "javascript",
      "html"       : "xml"
    };

    
    function highlight(nodes) {
      for (i=0; i < nodes.length; i++) {
          hljs.highlightBlock(nodes[i]);
      }
    }

    
    function loadLanguages(uris, callback) {
      uris.forEach(function(uri) {
        var sc = document.createElement('script');
        sc.src = uri;
        sc.async = false; 
	  
        if (uris.indexOf(uri) == uris.length-1) {
	  
	  
	  
          sc.onload  = callback; sc.onerror = callback;
        }
        document.head.appendChild(sc);
      });
    }

    
    if (lb.length > 0) {
      
      var st = document.createElement('link');
      st.rel = "stylesheet";
      st.href = "/css/lib/atom-one-light.min.css";
      document.head.appendChild(st);

      
      var jss = [hlbaseUri + "highlight.min.js"];
      
      for (i=0; i < lb.length; i++) {
        lang = lb[i].className.replace('language-','').toLowerCase();
        
        if (aliasmap[lang]) lang = aliasmap[lang];
        lurl = hlbaseUri + "highlightjs/" + lang + ".min.js";
        if (!jss.includes(lurl)) {
          jss.push(lurl);
        }
      }
      
      loadLanguages(jss, () => {highlight(lb)});
    }
  });
</script>


	</head>
	<body id="collection" itemscope itemtype="http://schema.org/WebPage">
		

		<header>
		
		<h1 dir="auto" id="blog-title"><a href="/sottovoce/" class="h-card p-author u-url" rel="me author">sottovoce</a></h1>
		<p class="description p-note">Strumento di resistenza per i consumatori</p>
		
		<nav>
			</nav>
		
		</header>

		<section id="wrapper" itemscope itemtype="http://schema.org/Blog">

			

			

			
<article id="post-58ua3w1p0q" class="norm h-entry" itemscope itemtype="http://schema.org/BlogPosting">
	
	
<h2 class="post-title" itemprop="name">
	<time class="dt-published" datetime="2019-04-24T08:30:45Z" pubdate itemprop="datePublished" content="2019-04-24 08:30:45 &#43;0000 UTC"><a href="/sottovoce/sottovoce-torna-su-noblogo" itemprop="url" class="u-url">24 aprile 2019</a></time>
	
</h2>


<div lang="it" dir="auto" class="book e-content"><p>Sottovoce torna su Noblogo</p>

<p>Bentornati su sottovoce</p>

<p>Strumento di resistenza per i consumatori ora su piattaforma writefreely/fediverse.</p>
</div></article>


		

		
    


		</section>

		
		<footer>
			<hr />
			<nav dir="ltr">
				<a class="home pubd" href="/">noblogo.org</a> &middot; powered by <a style="margin-left:0" href="https://writefreely.org">writefreely</a>
			</nav>
		</footer>
		
	</body>

	
	<script src="/js/h.js"></script>
	<script src="/js/postactions.js"></script>
	<script src="/js/localdate.js"></script>
	<script type="text/javascript" src="/js/menu.js"></script>
	<script type="text/javascript">
var deleting = false;
function delPost(e, id, owned) {
	e.preventDefault();
	if (deleting) {
		return;
	}

	
	if (window.confirm('Are you sure you want to delete this post?')) {
		
		deletePost(id, "", function() {
			
			var $postEl = document.getElementById('post-' + id);
			$postEl.parentNode.removeChild($postEl);
			
		});
	}
}

var deletePost = function(postID, token, callback) {
	deleting = true;

	var $delBtn = document.getElementById('post-' + postID).getElementsByClassName('delete action')[0];
	$delBtn.innerHTML = '...';

	var http = new XMLHttpRequest();
	var url = "/api/posts/" + postID;
	http.open("DELETE", url, true);
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			deleting = false;
			if (http.status == 204) {
				callback();
			} else if (http.status == 409) {
				$delBtn.innerHTML = 'delete';
				alert("Post is synced to another account. Delete the post from that account instead.");
				
				
				
			} else {
				$delBtn.innerHTML = 'delete';
				alert("Failed to delete." + (http.status>=500?" Please try again.":""));
			}
		}
	}
	http.send();
};

var pinning = false;
function pinPost(e, postID, slug, title) {
	e.preventDefault();
	if (pinning) {
		return;
	}
	pinning = true;

	var callback = function() {
		
		var $postEl = document.getElementById('post-' + postID);
		$postEl.parentNode.removeChild($postEl);
		var $header = document.getElementsByTagName('header')[0];
		var $pinnedNavs = $header.getElementsByTagName('nav');
		
		var link = '<a class="pinned" href="/sottovoce/'+slug+'">'+title+'</a>';
		if ($pinnedNavs.length == 0) {
			$header.insertAdjacentHTML("beforeend", '<nav>'+link+'</nav>');
		} else {
			$pinnedNavs[0].insertAdjacentHTML("beforeend", link);
		}
	};

	var $pinBtn = document.getElementById('post-' + postID).getElementsByClassName('pin action')[0];
	$pinBtn.innerHTML = '...';

	var http = new XMLHttpRequest();
	var url = "/api/collections/sottovoce/pin";
	var params = [ { "id": postID } ];
	http.open("POST", url, true);
	http.setRequestHeader("Content-type", "application/json");
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			pinning = false;
			if (http.status == 200) {
				callback();
			} else if (http.status == 409) {
				$pinBtn.innerHTML = 'pin';
				alert("Post is synced to another account. Delete the post from that account instead.");
				
				
				
			} else {
				$pinBtn.innerHTML = 'pin';
				alert("Failed to pin." + (http.status>=500?" Please try again.":""));
			}
		}
	}
	http.send(JSON.stringify(params));
};

	try {
	  WebFontConfig = {
		custom: { families: [ 'Lora:400,700:latin', 'Open+Sans:400,700:latin' ], urls: [ '/css/fonts.css' ] }
	  };
	  (function() {
		var wf = document.createElement('script');
		wf.src = '/js/webfont.js';
		wf.type = 'text/javascript';
		wf.async = 'true';
		var s = document.getElementsByTagName('script')[0];
		s.parentNode.insertBefore(wf, s);
	  })();
	} catch (e) {}
	</script>
</html>