<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Librevents: “liberating” data from Big Tech</title>
    <link>/</link>
    <description>Recent content on Librevents: “liberating” data from Big Tech</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>daline@proton.me (Data Liberation Network)</managingEditor>
    <webMaster>daline@proton.me (Data Liberation Network)</webMaster>
    <lastBuildDate>Wed, 15 Mar 2023 00:00:00 +0000</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>⏸️ The project is temporarily on hiatus.</title>
      <link>/post/third-developer-hiatus/</link>
      <pubDate>Wed, 15 Mar 2023 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/third-developer-hiatus/</guid>
      
      <description>&lt;p&gt;At the moment there is not the energy to develop the necessary progress, we need to strengthen the community to support it. &lt;em&gt;There will be new updates when we have resolved this issue and can announce an updated roadmap.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Check the &lt;a href=&#34;/about/#contacts&#34;&gt;contacts&lt;/a&gt; section if you want get in touch.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>🌱 Developer Meetup n.2; Report</title>
      <link>/post/second-developer-meetup/</link>
      <pubDate>Wed, 22 Feb 2023 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/second-developer-meetup/</guid>
      
      <description>&lt;p&gt;Highlight: &lt;strong&gt;&lt;code&gt;CURRENT VERSION ISN&#39;T WORKING&lt;/code&gt;&lt;/strong&gt;, afterall challenging Facebook has some complexities. Whatever: ✊&lt;/p&gt;
&lt;p&gt;In this report we talk about: &lt;em&gt;fixes&lt;/em&gt;, &lt;em&gt;errors&lt;/em&gt;, &lt;em&gt;fundraising&lt;/em&gt;. The meeting was about defining what should happen between February 15th and March 15th, the next of our online monthly meeting.&lt;/p&gt;
&lt;h2 id=&#34;what-to-do-in-the-next-month&#34;&gt;What to do in the next month&lt;/h2&gt;
&lt;ol start=&#34;0&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&amp;quot;&lt;em&gt;keep promoting and perhaps fundraise&lt;/em&gt;&amp;quot;&lt;/strong&gt;, the same goal of the previous meeting. We need to continue and make this community grow, or, well, &lt;strong&gt;exist&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Facebook changed its HTML structure. It is expected, we know how to handle it, but read more below on how to reduce the impact of their obfuscation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Complete a &lt;a href=&#34;https://gath.io&#34;&gt;gathio&lt;/a&gt; installation, and eventually support the cross-posting there. It should be easy to add in &lt;code&gt;mongodb&lt;/code&gt; a new event.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;By inspecting some of the errors triggered in the last month, we need to better report errors, because, for example, if someone provide a wrong login and password, should be consider a different error rather than &amp;ldquo;the server didn&amp;rsquo;t properly worked&amp;rdquo;. &lt;em&gt;reminder&lt;/em&gt; it was handy check the &lt;a href=&#34;https://mobilizon.libr.events/.well-known/nodeinfo/2.1&#34;&gt;mobilizon version&lt;/a&gt; via API.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;fundraising-narratives&#34;&gt;Fundraising narratives&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Check out this&lt;/strong&gt; &lt;a href=&#34;https://cryptpad.fr/pad/#/2/pad/view/EwvfBNWzMPUEIQoPdHqVhOv12HYIpokfE7C4lAspNuA/&#34;&gt;(read only) &lt;strong&gt;cryptpad notes&lt;/strong&gt;&lt;/a&gt;, it describes some of the narratives usable in fundraising.&lt;/p&gt;
&lt;p&gt;Note🍀 this is our biggest weak spot. There is not yet any concrete effort, and often, fundations, supports the creation of new tools rather than adversarial approaches. It makes sense, but it is an additional vulnerability this project faces.&lt;/p&gt;
&lt;h2 id=&#34;on-facebook-html-obfuscation&#34;&gt;On Facebook HTML obfuscation&lt;/h2&gt;
&lt;p&gt;HTML randomization is one of the ways by which facebook wants to make, every scraping action, more expensive. An update for them may be at no cost, and if the technology is to be maintained, for scrapers it means having to do an update every time.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;/images/sprint-2/crazy-fb-classes.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;Above you&amp;rsquo;ll see HTML from &lt;code&gt;facebook.com/events/$EVENT_ID&lt;/code&gt; page.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No meaningful classes&lt;/li&gt;
&lt;li&gt;Nesting with multiple layers meant to randomize this&lt;/li&gt;
&lt;li&gt;Usage of &lt;code&gt;span&lt;/code&gt; &lt;code&gt;div&lt;/code&gt; &lt;code&gt;h&lt;/code&gt;-* and &lt;code&gt;p&lt;/code&gt; in an arbitrary fashon, relying on CSS to produce the intended result&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The more mature and robust the scraping technology is, the more it will remain viable at the expense of upgrades. It may seem counterintuitive, but Facebook&amp;rsquo;s final interface does not change very often, and if you build a scraper attono to those elements, if &lt;code&gt;span&lt;/code&gt; becomes &lt;code&gt;div&lt;/code&gt; and &lt;code&gt;h1&lt;/code&gt; becomes &lt;code&gt;h3&lt;/code&gt;, it will only break the most delicate scrapers.&lt;/p&gt;
&lt;p&gt;Unfortunately, despite knowledge of this theory, the extension underwent major changes in 2022 to move the prototype forward, so right now it is in the &amp;ldquo;weak&amp;rdquo; stage and updating the HTML causes the title and description to be missing:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;/images/sprint-2/empty-event-bug.png&#34;&gt;
&lt;/figure&gt;

&lt;hr&gt;
&lt;p&gt;This is a backend problem, as it should not allow posting of events with no &lt;code&gt;title&lt;/code&gt;/&lt;code&gt;description&lt;/code&gt;, and should be reported as an Error. And also, scraping reliability problem cannot be, in 0.3.x version, solved once and for all. It is an improvement part of a larger refactor and redesign that would come along with Manifest V3.&lt;/p&gt;
&lt;h2 id=&#34;at-least-three-kinds-of-errors&#34;&gt;(at least) three kinds of &lt;code&gt;Errors&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;At the moment the error collecton in mongodb looks like this. Below you&amp;rsquo;ll find an error triggered when I changed the username in something invalid:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{
  &amp;#34;message&amp;#34;: &amp;#34;User not found: {\&amp;#34;response\&amp;#34;:{\&amp;#34;data\&amp;#34;:{\&amp;#34;login\&amp;#34;:null},\&amp;#34;errors\&amp;#34;:[{\&amp;#34;code\&amp;#34;:\&amp;#34;user_not_found\&amp;#34;,\&amp;#34;field\&amp;#34;:null,\&amp;#34;locations\&amp;#34;:[{\&amp;#34;column\&amp;#34;:7,\&amp;#34;line\&amp;#34;:2}],\&amp;#34;message\&amp;#34;:\&amp;#34;User not found\&amp;#34;,\&amp;#34;path\&amp;#34;:[\&amp;#34;login\&amp;#34;],\&amp;#34;status_code\&amp;#34;:404}],\&amp;#34;status\&amp;#34;:200,\&amp;#34;headers\&amp;#34;:{}},\&amp;#34;request\&amp;#34;:{\&amp;#34;query\&amp;#34;:\&amp;#34;mutation Login($email: String!, $password: String!)\\n    { login(email: $email, password: $password)   \\n    { accessToken refreshToken user  \\n    { id  \\n      email    \\n      role   \\n      __typename }  \\n    __typename}\\n}\\n\&amp;#34;,\&amp;#34;variables\&amp;#34;:{\&amp;#34;email\&amp;#34;:\&amp;#34;mobilibr@mt2015-\&amp;#34;,\&amp;#34;password\&amp;#34;:\&amp;#34;experiment\&amp;#34;}}}&amp;#34;,
  &amp;#34;publicKey&amp;#34;: &amp;#34;E1CdKsPZLCrfhsrRYYR8t8snahxx1LAaDNkSX9DJvWEh&amp;#34;,
  &amp;#34;when&amp;#34;: {
    &amp;#34;$date&amp;#34;: {
      &amp;#34;$numberLong&amp;#34;: &amp;#34;1674805040484&amp;#34;
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But we should not tread all the errors as the same, we might need to identify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Login/Password errors, coming from authentication failures in Mobilizon backend. This require an adopters intervention.&lt;/li&gt;
&lt;li&gt;Inconsistecy errors, like the faulty scraping, that might provide inappropriate data. This require us to fix it, or potentially the adopter editing the event and manually fixing it.&lt;/li&gt;
&lt;li&gt;Any other kind of failures as unexpected bug. This require us to further investigate.&lt;/li&gt;
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>The harvest 🍂 after January&#39;23 planning</title>
      <link>/post/the-harvest-1/</link>
      <pubDate>Fri, 10 Feb 2023 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/the-harvest-1/</guid>
      
      <description>&lt;p&gt;🎉 Librevents has a &lt;a href=&#34;https://mobilize.berlin/@librevents&#34;&gt;Mobilizon group&lt;/a&gt;. Check out the &lt;a href=&#34;https://mobilize.berlin/events/b234a22b-6fe2-4dc9-8394-75f8983b568c&#34;&gt;🌱 Developer Meetup n.2 event announcement&lt;/a&gt;.
It would be in February 15th at 18:00 CET; Join the &lt;a href=&#34;https://matrix.to/#/#mobilize.berlin:systemli.org&#34;&gt;Matrix channel&lt;/a&gt; to introduce yourself and get a Jitsi link.&lt;/p&gt;
&lt;p&gt;Read more to get a summary of the achievements after the &lt;a href=&#34;/post/first-developer-meetup/&#34;&gt;🌱 Developer Meetup n.1&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;software-and-site-updates&#34;&gt;Software and site updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Version 0.3.6 published - due to a critical bug detected immediately after the first series of announcements - as usual. The bug was discovered because the statistics were not showing any updates, so they actually worked ;)&lt;/li&gt;
&lt;li&gt;The software was contextually extended, &lt;a href=&#34;https://observablehq.com/@vecna/libr-events-usage-statistics&#34;&gt;and so were the statistics&lt;/a&gt;, to see total activities, errors, and successfully released events. This should help to understand the overall stability.&lt;/li&gt;
&lt;li&gt;The pages &lt;a href=&#34;/about&#34;&gt;about&lt;/a&gt; and &lt;a href=&#34;/post/who-are-we-talking-to&#34;&gt;who are we talking to&lt;/a&gt; have been revised.&lt;/li&gt;
&lt;li&gt;Added an API to retrieve errors. Useful for debugging, but currently requires an admin key to access it because it may contain information we don&amp;rsquo;t want to get out.&lt;/li&gt;
&lt;li&gt;Presented &lt;a href=&#34;https://foss.events/2023/02-04-offdem.html&#34;&gt;librevents at OFFDEM&lt;/a&gt;, got fascinating contacts and a fully new context where to talk about it!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;heard-from-the-fediverse&#34;&gt;Heard from the Fediverse&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Friendica visualizes events &lt;a href=&#34;https://poliverso.org/display/84776f5b-d782-4beb-9a67-89ca1969250c&#34;&gt;in this very readable format&lt;/a&gt; great for integration!&lt;/li&gt;
&lt;li&gt;We also get to know about &lt;a href=&#34;https://github.com/freeCodeCamp/chapter&#34;&gt;freeCodeCamp/chapter&lt;/a&gt; which is a software that handles events, but &lt;a href=&#34;https://github.com/freeCodeCamp/chapter/issues/33&#34;&gt;does not seem to handle activitypub yet?&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;From that &lt;code&gt;issue&lt;/code&gt; you can find this detailed analysis on &lt;em&gt;Event Sharing In The Fediverse&lt;/em&gt; at &lt;a href=&#34;https://socialhub.activitypub.rocks/t/federated-events/305/9&#34;&gt;socialhub.activitypub.rocks&lt;/a&gt;, among them also:&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/pterotype-project/activitypub-php&#34;&gt;Wordpress PHP ActivityPub support for events&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>🌱 Developer Meetup n.1; Report</title>
      <link>/post/first-developer-meetup/</link>
      <pubDate>Sun, 22 Jan 2023 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/first-developer-meetup/</guid>
      
      <description>&lt;p&gt;This is the report of the first librevent developer meeting; a hybrid solution between physical and digital meeting to discuss what to do between Jan. 15 and Feb. 15 at 6 p.m., the date of the second and next meeting.&lt;/p&gt;
&lt;h2 id=&#34;main-outcomes&#34;&gt;Main outcomes&lt;/h2&gt;
&lt;p&gt;The priority is to spread the &lt;a href=&#34;/concept&#34;&gt;concept&lt;/a&gt; (of both data liberation and librevents). To spread the extension that we have. Talk about it in the fediverse. Improve the explanation of what is going on, and measure how much, how, and whether this tool is appreciated and used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Therefore, if you&lt;/strong&gt; &lt;em&gt;more than once per year&lt;/em&gt; access &lt;code&gt;facebook.com&lt;/code&gt; to look at an Event invitation, &lt;em&gt;even if unlogged because you don&amp;rsquo;t have an account&lt;/em&gt;, please consider installing:&lt;/p&gt;
&lt;style type=&#34;text/css&#34; media=&#34;screen&#34;&gt;

.aligner {
  padding-top: 30px;
  padding-bottom: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.extension-button img {
  height: 25px;
  margin-top: -5px;
  margin-left: 5px;
  transition: all 0.2s;
}

.extension-button {
  padding: 0.5em 1em 0.5em 1em;
  font-size: 18px;
  background-image: none;
  background-color: #AA0000;
  border: 1px solid #AA0000;
  color: white !important;
  border-radius: 4px;
  font-weight: 900;
  text-decoration: none !important;
}

a:hover.extension-button {
  padding: 0.5em 1em 0.5em 1em;
  font-size: 18px;
  background-color: #fafafa;
  color: #AA0000 !important;
  border: 1px solid #AA0000;
  border-radius: 4px;
  font-weight: 900;
}

&lt;/style&gt;

&lt;div class=&#34;row aligner&#34;&gt;

  &lt;span&gt;
    &lt;a class=&#34;extension-button&#34; title=&#34;Add to Chrome&#34;
      href=https://chrome.google.com/webstore/detail/librevents/kjklnndemgmhlogoigglkpkaklenommj
      target=&#34;_blank&#34;
      rel=&#34;noopener noreferrer&#34;&gt;
      Chrome
      &lt;img src=&#34;/images/browsers/chrome.png&#34;&gt;
    &lt;/a&gt;
  &lt;/span&gt;

  &lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;

  &lt;span&gt;
    &lt;a class=&#34;extension-button&#34; title=&#34;Add to Chrome&#34;
				href=https://addons.mozilla.org/en-US/firefox/addon/librevents/
      target=&#34;_blank&#34;
      rel=&#34;noopener noreferrer&#34;&gt;
      Firefox
      &lt;img src=&#34;/images/browsers/firefox.png&#34;&gt;
    &lt;/a&gt;
  &lt;/span&gt;

&lt;/div&gt;

&lt;p&gt;In the next month will be secondary to work on new features and new platforms (source and target), so &lt;strong&gt;gath.io and eventbrite&lt;/strong&gt; are postponed.&lt;/p&gt;
&lt;p&gt;Several “&lt;a href=&#34;https://0xacab.org/daline/librevents/-/issues&#34;&gt;gitlab issues&lt;/a&gt;” have been opened to keep track of the most anticipated improvements and the most trivial bugs. These are features that could help in the months ahead to make the data liberation process more pleasant, complete, and robust. But more prioritarian than improvements &lt;strong&gt;we need to prioritize outreach and team consolidation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;There should be no programmer-single-point-of-failure in development, and this condition should be addressed before making the tool more sophisticated and complex. Considering the code is has 6 years of baggage (being a heavily modified fork of &lt;code&gt;facebook.tracking.exposed&lt;/code&gt;) and considering the looming migration to manifest V3, rewriting the extension and reorganizing the backend is a refactor to consider.&lt;/p&gt;
&lt;h2 id=&#34;goals-for-the-next-meeting&#34;&gt;Goals for the next meeting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Raise awareness about the project&lt;/strong&gt;. We should find early adopters, developers, and moral support. In support of this we should spread the current produced material and produce new media.&lt;/p&gt;
&lt;h2 id=&#34;the-talk-gave-at-hip22-is-now-on-peertubehttpsdiodezonewwy8ndtaqy7hrrtjdejrlp7&#34;&gt;The talk gave at HIP&#39;22 &lt;a href=&#34;https://diode.zone/w/wy8nDtAQy7HRRtjdeJrLP7&#34;&gt;is now on peertube&lt;/a&gt;&lt;/h2&gt;
&lt;iframe title=&#34;Librevent presentation at HIP 2022&#34; src=&#34;https://diode.zone/videos/embed/f76e811c-831b-481e-a8c6-a7b24f5b2184&#34; allowfullscreen=&#34;&#34; sandbox=&#34;allow-same-origin allow-scripts allow-popups&#34; width=&#34;800&#34; height=&#34;640&#34; frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;Slides: &lt;a href=&#34;/pdf/2022-12-28-HIP-mobe.pdf&#34;&gt;7 slides (first part)&lt;/a&gt;, &lt;a href=&#34;/pdf/2022-12-28-HIP-libr.pdf&#34;&gt;17 slides (second part)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;how-to-measure-progress&#34;&gt;How to measure progress&lt;/h2&gt;
&lt;p&gt;Since one way to measure success is to know how many people are using it, an important thing is to know how many users there are, so statistics must be prioritized. So an API (&lt;code&gt;https://libr.events/api/stats&lt;/code&gt;) has been implemented to export aggregate counters.&lt;/p&gt;
&lt;h4 id=&#34;-data-is-consumed-and-visualized-in-this-_observable_httpsobservablehqcomvecnalibr-events-usage-statistics&#34;&gt;👉 &lt;a href=&#34;https://observablehq.com/@vecna/libr-events-usage-statistics&#34;&gt;data is consumed and visualized in this &lt;em&gt;observable&lt;/em&gt;&lt;/a&gt;.&lt;/h4&gt;
&lt;h2 id=&#34;minor-bugfix&#34;&gt;Minor bugfix&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://0xacab.org/daline/librevents/-/issues/6#note_501003&#34;&gt;incorrect text strings at the end of text&lt;/a&gt; has been fixed.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Recurring developers meetup: how and what</title>
      <link>/post/recurring-developer-meetup/</link>
      <pubDate>Sun, 15 Jan 2023 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/recurring-developer-meetup/</guid>
      
      <description>&lt;p&gt;From 2023 this project will have a recurring meeting: &lt;strong&gt;on the 15th of each month&lt;/strong&gt;, regardless of the day of the week or time zone, &lt;strong&gt;at 18:00 CET&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is the &lt;a href=&#34;https://mobilizon.libr.events/events/754072e2-3fd7-4e01-aae6-a73b0f11e706&#34;&gt;first developer meeting&lt;/a&gt; event. To participate remotely, join our &lt;a href=&#34;https://matrix.to/#/#mobilize.berlin:systemli.org&#34;&gt;matrix channel&lt;/a&gt;, a jitsi link will be shared before the event.&lt;/p&gt;
&lt;p&gt;A report should be posted on the website the days after the meeting.&lt;/p&gt;
&lt;p&gt;The meeting is online, as it should be attended by people in different time zones. If some of the participants are in the same city, they can connect from the same space.&lt;/p&gt;
&lt;h3 id=&#34;agenda-points&#34;&gt;Agenda points&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Fix the upload of images. It is necessary to download the main image of an event and publish it.&lt;/li&gt;
&lt;li&gt;Fix the HTML sent to mobilizon, because it is dirty from the metadata at the end of the post.&lt;/li&gt;
&lt;li&gt;Tell about the event at HIP on the fediverse, and try to embed material from the fediverse into this site (made on &lt;a href=&#34;https://gohugo.io&#34;&gt;hugo&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Design a unit test for a robust date extraction.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure&gt;&lt;a href=&#34;https://mobilizon.libr.events/events/754072e2-3fd7-4e01-aae6-a73b0f11e706&#34;&gt;&lt;img src=&#34;/images/libr.rocket.png&#34;&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;!--
Also, about the HIP talk, there is not yet a video online, but https://streaming.media.ccc.de/jev22/relive/49208 this was the full livestream, and joseph and I are at minute 18:40
--&gt;</description>
      
    </item>
    
    <item>
      <title>Software operation flow for version 0.3.x</title>
      <link>/post/operational-flow-version-0.3.x/</link>
      <pubDate>Sun, 25 Dec 2022 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/operational-flow-version-0.3.x/</guid>
      
      <description>&lt;p&gt;This post has been written In preparation for the HIP talk (&lt;a href=&#34;/pdf/2022-12-28-HIP-mobe.pdf&#34;&gt;7 slides first part&lt;/a&gt;, &lt;a href=&#34;/pdf/2022-12-28-HIP-libr.pdf&#34;&gt;17 slides second part&lt;/a&gt;, &lt;a href=&#34;https://diode.zone/w/wy8nDtAQy7HRRtjdeJrLP7&#34;&gt;video on peertube&lt;/a&gt;), and contains a quite deep explanation on how the Librevents workflow connects: Facebook → Extension → Backend → Mobilizon.&lt;/p&gt;
&lt;p&gt;In this post you&amp;rsquo;ll also read about some current design limits in version 0.3.x, and the digital spaces where we can coordinate our efforts toward a stable 1.x release.&lt;/p&gt;
&lt;h2 id=&#34;software-operation-flow&#34;&gt;Software operation flow&lt;/h2&gt;
&lt;figure&gt;&lt;img src=&#34;/images/flow/034-intro.jpeg&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;The first figure takeaways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You should use the extension without being logged in&lt;/li&gt;
&lt;li&gt;The Rocket icon only should work in Event page. Meaning the URL has to match this format &lt;code&gt;https://facebook.com/events/NUMERIC_EVENT_ID&lt;/code&gt;, optionally with some &lt;code&gt;?parameter&lt;/code&gt; after the &lt;code&gt;NUMERIC_EVENT_ID&lt;/code&gt;, and those parameters are ignored. (for example: &lt;code&gt;https://www.facebook.com/events/456737733157167&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The event need to be &lt;strong&gt;expanded&lt;/strong&gt;. Facebook often cut the text and you&amp;rsquo;ve to press &lt;em&gt;See More&lt;/em&gt; to see the complete event. This need to be clicked before liberating the event.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure&gt;&lt;img src=&#34;/images/flow/034-sending.jpeg&#34;&gt;
&lt;/figure&gt;

&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Once the event have been acquired, a few colored border would appear in the facebook page. It talks about the section captured and sent.&lt;/li&gt;
&lt;li&gt;The backend is an intermediary step between the extension and the mobilizon instance. This is a design issue/feature that would likely to change in next version, but in this phase of development is necessary to pass through this approach (even if not privacy nor security wise)&lt;/li&gt;
&lt;/ol&gt;
&lt;figure&gt;&lt;img src=&#34;/images/flow/034-final.jpeg&#34;&gt;
&lt;/figure&gt;

&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;This graph display the connections made between the &lt;code&gt;mobilizon-poster&lt;/code&gt; library and the Mobilizon instance; Follow the &lt;a href=&#34;https://github.com/vecna/mobilizon-poster&#34;&gt;git repository&lt;/a&gt; to know more.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;design-limits&#34;&gt;Design limits&lt;/h2&gt;
&lt;p&gt;At this time, the extension must be aware of a backend server and have the necessary login and password to send the event to mobilizon. It means that a password is sent to a third party to do the authentication. This is not a clean or at the very least appropriate method, but there are reasons why I have come to this point:&lt;/p&gt;
&lt;ol start=&#34;7&#34;&gt;
&lt;li&gt;mobilizon supports the &lt;a href=&#34;https://docs.joinmobilizon.org/administration/configure/auth/&#34;&gt;OAuth protocol&lt;/a&gt; but need to be configured at instance level, so not all the instances can be supported. It would be better to use that, but we haven&amp;rsquo;t followed that implementation yet. It will happen in future versions, and is still unclear if the token exchange should be done either with libr.events website or from the extension.&lt;/li&gt;
&lt;li&gt;having a server that can keep track of freed IDs is useful to avoid duplication in the fediverse, although this should be solved with a DHT or other non-centralized technology.&lt;/li&gt;
&lt;li&gt;at the moment the mobilizon interaction library is very sparse, it can barely do event updates, thinking about how to improve is part of the role separation between mobilizon support (which should be coupled with support for gath.io and hook) and the necessary registration one must have to interact with instances.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;technical-details-on-how-the-reposting-works-in-the-backend&#34;&gt;Technical details on how the reposting works in the backend&lt;/h2&gt;
&lt;p&gt;This is a commented description on what happen when you run &lt;code&gt;npm run watch&lt;/code&gt;. Assume you just clicked on the event with URL &lt;code&gt;https://www.facebook.com/events/4760265773991156&lt;/code&gt;:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;/images/mobi-poster/event-liberated.jpg&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;This happens in the backend, comments below the piece of logs:&lt;/p&gt;
&lt;pre&gt;
&lt;font color=&#34;#268BD2&#34;&gt;&lt;b&gt;lib:api &lt;/b&gt;&lt;/font&gt; * Supporter papaya-kumquat-succotash [active on 22:59] last activity 22:58 26/12 (a minute ago) &lt;font color=&#34;#268BD2&#34;&gt;+1m&lt;/font&gt;
&lt;font color=&#34;#268BD2&#34;&gt;&lt;b&gt;lib:api &lt;/b&gt;&lt;/font&gt;Saved for debug /tmp/1203.json &lt;font color=&#34;#268BD2&#34;&gt;+1ms&lt;/font&gt;
&lt;/pre&gt;
&lt;p&gt;The backend identify a &lt;code&gt;supporter&lt;/code&gt; (someone with the extension installed) by their &lt;code&gt;publicKey&lt;/code&gt;. The publicKey is normally not display in bytes, but with a pseudonym made of three random food words.&lt;/p&gt;
&lt;pre&gt;
&lt;font color=&#34;#268BD2&#34;&gt;&lt;b&gt;lib:api &lt;/b&gt;&lt;/font&gt;Time travel problem! &lt;font color=&#34;#268BD2&#34;&gt;+2ms&lt;/font&gt;
&lt;font color=&#34;#268BD2&#34;&gt;&lt;b&gt;lib:api &lt;/b&gt;&lt;/font&gt;dissectDates from [SATURDAY, DECEMBER 31, 2022 AT 7:00 PM – 2:00 ] start: 2022-12-31 23:59 end 2022-12-31 23:59 &lt;font color=&#34;#268BD2&#34;&gt;+0ms&lt;/font&gt;
&lt;/pre&gt;
&lt;p&gt;The dates might take different shape and formats. At the moment we didn&amp;rsquo;t yet test all the possible conditions, but in cases like this (7pm on the last day of the year, till 2am of New Year Eve) and other complex combination, the software might fail in understand the meaning.&lt;/p&gt;
&lt;p&gt;Every time the end date seems to be earlier than the start date, it is printed &lt;code&gt;Time travel problem!&lt;/code&gt; and it is a bug.&lt;/p&gt;
&lt;pre&gt;
&lt;font color=&#34;#D78700&#34;&gt;&lt;b&gt;mobi:login &lt;/b&gt;&lt;/font&gt;perform: Connecting to graphQL endpoint [https://mobilizon.libr.events/api] &lt;font color=&#34;#D78700&#34;&gt;+1m&lt;/font&gt;
&lt;font color=&#34;#D78700&#34;&gt;&lt;b&gt;mobi:login &lt;/b&gt;&lt;/font&gt;getIdentityInfo: Connecting to graphQL endpoint [https://mobilizon.libr.events/api] &lt;font color=&#34;#D78700&#34;&gt;+2s&lt;/font&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mobilizon-poster&lt;/code&gt; connects to the mobilizon server, to get a valid authentication token. The token is necessary to post a new event.&lt;/p&gt;
&lt;pre&gt;
&lt;font color=&#34;#B58900&#34;&gt;&lt;b&gt;lib:core &lt;/b&gt;&lt;/font&gt;Trying to resolve location in [ &lt;font color=&#34;#859900&#34;&gt;&amp;apos;Market Grounds&amp;apos;&lt;/font&gt;, &lt;font color=&#34;#859900&#34;&gt;&amp;apos;Pub&amp;apos;&lt;/font&gt;, &lt;font color=&#34;#859900&#34;&gt;&amp;apos; &amp;apos;&lt;/font&gt;, &lt;font color=&#34;#859900&#34;&gt;&amp;apos; · Restaurant&amp;apos;&lt;/font&gt; ] &lt;font color=&#34;#B58900&#34;&gt;+3s&lt;/font&gt;
&lt;font color=&#34;#5F00D7&#34;&gt;&lt;b&gt;mobi:shared &lt;/b&gt;&lt;/font&gt;Connecting to https://mobilizon.libr.events/api &lt;font color=&#34;#5F00D7&#34;&gt;+1m&lt;/font&gt;
&lt;font color=&#34;#00D787&#34;&gt;&lt;b&gt;mobi:shared:IO &lt;/b&gt;&lt;/font&gt;Status: 200 &lt;font color=&#34;#00D787&#34;&gt;+1m&lt;/font&gt;
&lt;font color=&#34;#875FD7&#34;&gt;&lt;b&gt;mobi:location &lt;/b&gt;&lt;/font&gt;Available 1 locations, selected [Market Grounds](115.855594;-31.949454) &lt;font color=&#34;#875FD7&#34;&gt;+1s&lt;/font&gt;
&lt;font color=&#34;#5F00D7&#34;&gt;&lt;b&gt;mobi:shared &lt;/b&gt;&lt;/font&gt;Connecting to https://mobilizon.libr.events/api &lt;font color=&#34;#5F00D7&#34;&gt;+1s&lt;/font&gt;
&lt;font color=&#34;#00D787&#34;&gt;&lt;b&gt;mobi:shared:IO &lt;/b&gt;&lt;/font&gt;Status: 200 &lt;font color=&#34;#00D787&#34;&gt;+814ms&lt;/font&gt;
&lt;font color=&#34;#875FD7&#34;&gt;&lt;b&gt;mobi:location &lt;/b&gt;&lt;/font&gt;Available 10 locations, selected [PUB](18.061288438256224;59.33456245) &lt;font color=&#34;#875FD7&#34;&gt;+815ms&lt;/font&gt;
&lt;font color=&#34;#5F00D7&#34;&gt;&lt;b&gt;mobi:shared &lt;/b&gt;&lt;/font&gt;Connecting to https://mobilizon.libr.events/api &lt;font color=&#34;#5F00D7&#34;&gt;+815ms&lt;/font&gt;
&lt;font color=&#34;#00D787&#34;&gt;&lt;b&gt;mobi:shared:IO &lt;/b&gt;&lt;/font&gt;Status: 200 &lt;font color=&#34;#00D787&#34;&gt;+726ms&lt;/font&gt;
&lt;font color=&#34;#B58900&#34;&gt;&lt;b&gt;lib:core &lt;/b&gt;&lt;/font&gt;Not found a location for [ ] &lt;font color=&#34;#B58900&#34;&gt;+3s&lt;/font&gt;
&lt;font color=&#34;#5F00D7&#34;&gt;&lt;b&gt;mobi:shared &lt;/b&gt;&lt;/font&gt;Connecting to https://mobilizon.libr.events/api &lt;font color=&#34;#5F00D7&#34;&gt;+726ms&lt;/font&gt;
&lt;font color=&#34;#00D787&#34;&gt;&lt;b&gt;mobi:shared:IO &lt;/b&gt;&lt;/font&gt;Status: 200 &lt;font color=&#34;#00D787&#34;&gt;+924ms&lt;/font&gt;
&lt;font color=&#34;#875FD7&#34;&gt;&lt;b&gt;mobi:location &lt;/b&gt;&lt;/font&gt;Available 10 locations, selected [Neubau (Metzgerei, Hotel, Restaurant, Tagungsräume) Hotel Wittmann](11.458678257358994;49.274438599999996) &lt;font color=&#34;#875FD7&#34;&gt;+923ms&lt;/font&gt;
&lt;font color=&#34;#B58900&#34;&gt;&lt;b&gt;lib:core &lt;/b&gt;&lt;/font&gt;Unusual condition where both of the label worked [ &lt;font color=&#34;#859900&#34;&gt;&amp;apos;Market Grounds&amp;apos;&lt;/font&gt;, &lt;font color=&#34;#859900&#34;&gt;&amp;apos;Pub&amp;apos;&lt;/font&gt;, &lt;font color=&#34;#859900&#34;&gt;&amp;apos; &amp;apos;&lt;/font&gt;, &lt;font color=&#34;#859900&#34;&gt;&amp;apos; · Restaurant&amp;apos;&lt;/font&gt; ] &lt;font color=&#34;#B58900&#34;&gt;+923ms&lt;/font&gt;
&lt;/pre&gt;
&lt;p&gt;This piece of log need a few clarification:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mobilizon expect a location resolved with a determined format, the same format of Open Street Map; every mobilizon instance wrap a query to OSM to so interactively offer the right spot&lt;/li&gt;
&lt;li&gt;During the scraping you might acquire one or more possible location, this is a scraping problem, but this is the reason why three labels have been searched in this case.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;Successful event created: {
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  __typename: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;Event&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  attributedTo: &lt;b&gt;null&lt;/b&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  beginsOn: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;2022-12-31T23:59:59Z&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  category: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;MEETING&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  description: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;&amp;lt;p&amp;gt;Motif and Market Grounds presents...&lt;/font&gt;[...]
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  draft: &lt;font color=&#34;#B58900&#34;&gt;false&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  endsOn: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;2022-12-31T23:59:59Z&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  id: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;165&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  joinOptions: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;FREE&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  local: &lt;font color=&#34;#B58900&#34;&gt;true&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  onlineAddress: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;https://www.facebook.com/events/4760265773991156/&amp;apos;&lt;/font&gt;,
[...]
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  title: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;The Night Market NYE 2023&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;  url: &lt;font color=&#34;#859900&#34;&gt;&amp;apos;https://mobilizon.libr.events/events/df6791ef-f3e7-4234-92a9-c26ab8a8c6f1&amp;apos;&lt;/font&gt;,
&lt;font color=&#34;#AFD700&#34;&gt;&lt;b&gt;mobi:poster &lt;/b&gt;&lt;/font&gt;} &lt;font color=&#34;#AFD700&#34;&gt;+2m&lt;/font&gt;
&lt;font color=&#34;#B58900&#34;&gt;&lt;b&gt;lib:core &lt;/b&gt;&lt;/font&gt;createEvent [The Night Market NYE 2023] successful! &lt;font color=&#34;#B58900&#34;&gt;+1s&lt;/font&gt;
&lt;font color=&#34;#268BD2&#34;&gt;&lt;b&gt;lib:api &lt;/b&gt;&lt;/font&gt;Written event post [SUCESSFUL] (https://mobilizon.libr.events/events/df6791ef-f3e7-4234-92a9-c26ab8a8c6f1) supporter papaya-kumquat-succotash, took a few seconds &lt;font color=&#34;#268BD2&#34;&gt;+10ms&lt;/font&gt;
&lt;font color=&#34;#2AA198&#34;&gt;&lt;b&gt;librevent:server &lt;/b&gt;&lt;/font&gt;API success, returning JSON &amp;lt;31 bytes&amp;gt; &lt;font color=&#34;#2AA198&#34;&gt;+0ms&lt;/font&gt;
&lt;/pre&gt;
&lt;p&gt;The event has been created and inserted in the DB.&lt;/p&gt;
&lt;p&gt;From the popup you can click &amp;ldquo;Access the Personal Page&amp;rdquo; where you can see the link of the event liberated, the mobilizon link just created, and few more information.&lt;/p&gt;
&lt;h3 id=&#34;-in-version-03x-the-scrapingreposting-bug-can-only-be-solved-by-editing-the-event-in-mobilizon&#34;&gt;⚠️⚠️⚠️ In version 0.3.x the scraping/reposting bug can only be solved by editing the event in Mobilizon.&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;/images/mobi-poster/personal-page-0.3.x.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;And below you can see how the event liberated looks like on mobilizon. The user &lt;code&gt;experiment&lt;/code&gt; is the one provided by default in the browser extension.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;/images/mobi-poster/liberated-event-0.3.x.png&#34;&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;coordination-spaces&#34;&gt;Coordination spaces&lt;/h2&gt;
&lt;p&gt;We use the &lt;a href=&#34;https://en.wikipedia.org/wiki/Matrix_(protocol)&#34;&gt;Matrix Protocol&lt;/a&gt;, to chat. And please don&amp;rsquo;t propose a slack/mattermost solution, thank you.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://matrix.org/docs/projects/try-matrix-now/&#34;&gt;Use matrix&lt;/a&gt; and then connect to our chatroom: &lt;code&gt;#mobilize.berlin:systemli.org&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;On the 15th day of every month, at 18:00 CET&lt;/strong&gt; we meet to chat and discuss last month progress and next month goal. This habit would be true for the &lt;code&gt;0.x&lt;/code&gt; release and perhaps if the project proceed would be updated.&lt;/p&gt;
&lt;h2 id=&#34;repository-summary-extension-and-backend&#34;&gt;Repository summary (extension and backend)&lt;/h2&gt;
&lt;p&gt;The command below have been tested on Ubuntu 20+ Linux. Also on MacOSX and Windows, potentially, this codebase can work. You might need to open the &lt;code&gt;buildall.sh&lt;/code&gt; script and execute command line by line. It requires mongodb, nodejs, npm.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone https://0xacab.org/daline/librevents.git
cd librevents
./buildall.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If everything has worked, you can then:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Load the extension locally. The extension for &lt;code&gt;DEVELOPMENT&lt;/code&gt; mode should be in &lt;code&gt;librevents/extension/build&lt;/code&gt;. If you&amp;rsquo;re new with this, it might help &lt;a href=&#34;https://developer.chrome.com/docs/extensions/mv2/getstarted/&#34;&gt;Chrome install extension locally&lt;/a&gt; or &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension#installing&#34;&gt;Firefox install extension locally&lt;/a&gt;. When the extension is loaded, please access a Facebook event at your choice and check if the rocket icon is appearing on the left.&lt;/li&gt;
&lt;li&gt;from &lt;code&gt;librevents/backend&lt;/code&gt; run &lt;code&gt;npm run watch&lt;/code&gt; this would load the backend locally. the extension you just built would send data there, and because of the verbosity, you&amp;rsquo;ll notice the activities.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;compile-the-site-try-to-edit-it-and-potentially-make-a-pull-request&#34;&gt;Compile the site, try to edit it, and potentially make a pull request&lt;/h2&gt;
&lt;p&gt;It requires &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;, as it is a static website generator, which is normally installed via &lt;code&gt;snap&lt;/code&gt;, &lt;code&gt;flatpak&lt;/code&gt;, and other package manager.
The repository also has a &lt;code&gt;submodule&lt;/code&gt;, which is the &lt;a href=&#34;https://github.com/queensferryme/hugo-theme-texify.git&#34;&gt;hugo-theme-texify&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone https://0xacab.org/daline/librevents.git
cd librevents/site
git submodule sync
hugo -D server
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then you can change the &lt;code&gt;librevents/site/content/**&lt;/code&gt; files, and by accessing &lt;code&gt;http://localhost:1313&lt;/code&gt;, see the website preview.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>The 0.3.4 release; bugfix and new iconography</title>
      <link>/post/release-december-2022/</link>
      <pubDate>Tue, 20 Dec 2022 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/release-december-2022/</guid>
      
      <description>&lt;p&gt;This is the new extension icon: 🚀 What&amp;rsquo;s better than a rocket to shoot free events in the Fediverse?&lt;/p&gt;
&lt;p&gt;0.3.4 version for &lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/librevents/&#34;&gt;Firefox&lt;/a&gt; and &lt;a href=&#34;https://chrome.google.com/webstore/detail/librevents/kjklnndemgmhlogoigglkpkaklenommj&#34;&gt;Chrome&lt;/a&gt;. Or manually install the extension from the &lt;a href=&#34;https://0xacab.org/daline/librevents/-/releases/v0.3.4&#34;&gt;git release&lt;/a&gt;.&lt;/p&gt;
&lt;h5 id=&#34;fixes&#34;&gt;Fixes&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;To get better insight, follow the list of the &lt;a href=&#34;https://0xacab.org/daline/librevents/-/issues/?sort=created_date&amp;amp;state=closed&amp;amp;first_page_size=20&#34;&gt;closed issues&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;fix&lt;/strong&gt;: updating settings via popup is correctly recorded. So to test the tool now you can use your login and password.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;fix&lt;/strong&gt;: new iconography. The rocket appears on the right of the Facebook Event pages, and should be clicked.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;fix&lt;/strong&gt;: typos and trimming in the popup, give a look on how it looks like:&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;img src=&#34;/images/popup-0.3.4.png&#34;&gt;
&lt;/figure&gt;

&lt;br /&gt;
&lt;h5 id=&#34;what-do-the-options-mean&#34;&gt;What do the options mean?&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mobilizon&lt;/strong&gt;: this is the mobilizon server, you should add &lt;code&gt;/api&lt;/code&gt; at the end, because what is needed is the API endpoint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Login&lt;/strong&gt; and &lt;strong&gt;Password&lt;/strong&gt;: login and password for the Mobilizon account.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backend server&lt;/strong&gt;: keep &lt;code&gt;libr.events&lt;/code&gt; as it is the only backend I know of, but if you run the &lt;a href=&#34;https://0xacab.org/daline/librevent&#34;&gt;librevents backend&lt;/a&gt; you can configure your own.&lt;/li&gt;
&lt;li&gt;💡 Access the &lt;strong&gt;Personal page&lt;/strong&gt;: this link brings you to the list of events you liberated, so you can review if they are correct and access to the Mobilizon entry where they can be updated if any detail was wrong.&lt;/li&gt;
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>30 minutes talk at HIP 2022</title>
      <link>/post/hip-talk-december-2022/</link>
      <pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/hip-talk-december-2022/</guid>
      
      <description>&lt;p&gt;The talk proposed for HIP 2022 (Hacking in Parallel, the covid-safe replacement of the Chaos Computer Congress) &lt;a href=&#34;https://pretalx.c3voc.de/hip-berlin-2022/schedule/&#34;&gt;was accepted! and would happen on the 28th of December&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;/TODO&#34;&gt;TODO slides link&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;abstract&#34;&gt;Abstract&lt;/h3&gt;
&lt;p&gt;Librevents is a browser extension allowing any user to copy and republish (“scrape”) data about events posted on proprietary platforms onto free libre and open source decentralized networks.&lt;/p&gt;
&lt;p&gt;For now, Librevents focuses on liberating events data (description, date and time, location) from Facebook onto Mobilizon, an event-management platform alternative part of the Fediverse*.&lt;/p&gt;
&lt;p&gt;The intention behind Librevents is to feed alternative ethical platforms like Mobilizon with content, in order to help them counter the “network effect” (users staying on Facebook because the information is only available there). The concept of “data liberation” could later be applied to other types of contents and platforms.&lt;/p&gt;
&lt;p&gt;The data we liberate is initially posted as a “public event” by the organizer. We make this data truly “public” and accessible on free platforms, without violating the organizer’s original intentions.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;/images/fediverse.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;* &lt;a href=&#34;https://en.wikipedia.org/wiki/Fediverse&#34;&gt;Fediverse&lt;/a&gt;: a federated network of free libre and open source alternatives to Twitter, Facebook, Youtube. The networks within the Fediverse communicate together through the &lt;a href=&#34;https://en.wikipedia.org/wiki/ActivityPub&#34;&gt;ActivityPub protocol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this talk we will present the browser extension Librevents, ready to be used, and allowing any user to scrape and republish themselves events onto a Mobilizon instance.&lt;/p&gt;
&lt;p&gt;Our goal is to grow our community of developers, event organizers, and Mobilizon instance administrators in order to improve Librevents, to promote Mobilizon and the Fediverse, and make data liberation happen.&lt;/p&gt;
&lt;h4 id=&#34;keywords-fediverse-mobilizon-data-liberation-adversarial-interoperability&#34;&gt;keywords: Fediverse, Mobilizon data liberation, adversarial interoperability.&lt;/h4&gt;</description>
      
    </item>
    
    <item>
      <title>Private activity log</title>
      <link>/personal/</link>
      <pubDate>Fri, 18 Nov 2022 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/personal/</guid>
      
      <description>&lt;h2 id=&#34;-private-activity-log&#34;&gt;&lt;a href=&#34;/&#34;&gt;🏠&lt;/a&gt; Private activity log&lt;/h2&gt;
&lt;hr&gt;
&lt;br&gt;
&lt;h4 id=&#34;your-profile&#34;&gt;Your profile&lt;/h4&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;First access&lt;/th&gt;
      &lt;th&gt;Last access&lt;/th&gt;
      &lt;th&gt;Events liberated&lt;/th&gt;
      &lt;th&gt;Errors&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td id=&#34;first--access&#34;&gt;&lt;/td&gt;
      &lt;td id=&#34;last--access&#34;&gt;&lt;/td&gt;
      &lt;td id=&#34;events--liberated&#34;&gt;&lt;/td&gt;
      &lt;td id=&#34;errors&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;event-you-liberated&#34;&gt;Event you liberated&lt;/h4&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;When&lt;/th&gt;
      &lt;th&gt;Title&lt;/th&gt;
      &lt;th&gt;Event Time&lt;/th&gt;
      &lt;th&gt;Links&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody id=&#34;event--list&#34;&gt;
    &lt;!-- 
      here a bunch of &lt;td&gt; gets injected by personal.js,
      wrapped in a &lt;tr&gt;&lt;/tr&gt; 
    --&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Discuss improvements in the &lt;a href=&#34;https://0xacab.org/daline/librevent/-/issues&#34;&gt;git repository&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;
&lt;script src=&#34;/js/jquery-3.3.1.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;/js/lodash.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;/js/global.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;/js/personal.js&#34;&gt;&lt;/script&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
    /* personal() is implemtended in personal.js and fetch remotely the support and events data */
    $(&#34;#header&#34;).hide();
    $( document ).ready(function() {
        personal();
    });
&lt;/script&gt;
</description>
      
    </item>
    
    <item>
      <title>The 0.3.3 release and Lisbon Privacy Cafè</title>
      <link>/post/release-november-2022/</link>
      <pubDate>Fri, 18 Nov 2022 00:00:00 +0000</pubDate>
      <author>daline@proton.me (Data Liberation Network)</author>
      <guid>/post/release-november-2022/</guid>
      
      <description>&lt;p&gt;The upcoming presentation of Librevents in Lisbon, at the &lt;a href=&#34;https://privacylx.org/&#34;&gt;Privacy Cafè&lt;/a&gt;, has pushed to deliver some of the progress foreseen at the last Hackathon. &lt;a href=&#34;/pdf/libr.events-0.3.x-PrivacyLX.pdf&#34;&gt;Slides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The 0.3.x release branch is the beginning of many parallel improvements! Get the browser extension for (&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/librevents/&#34;&gt;for Firefox&lt;/a&gt;, &lt;a href=&#34;https://chrome.google.com/webstore/detail/librevents/kjklnndemgmhlogoigglkpkaklenommj&#34;&gt;for Chrome&lt;/a&gt;.)&lt;/p&gt;
&lt;h3 id=&#34;whats-new&#34;&gt;What&amp;rsquo;s new?&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;A new &amp;ldquo;conceptual space&amp;rdquo; hosts this software. The name is &lt;strong&gt;Data Liberation Network&lt;/strong&gt; or &lt;em&gt;dalina&lt;/em&gt; for those in the family; Librevents was born under the  &lt;a href=&#34;https://tracking.exposed/manifesto&#34;&gt;Tracking Exposed Manifesto&lt;/a&gt; two years ago. Then, between 2021-2022 Tracking Exposed grew significantly, and was able to focus in algorithm analysis. It became natural, to highlight the different focus of Librevent, to move it to a more precise space.&lt;/li&gt;
&lt;li&gt;There is a new dedicated &lt;a href=&#34;https://0xacab.org/daline/librevent&#34;&gt;git repository&lt;/a&gt; hosted on riseup.&lt;/li&gt;
&lt;li&gt;The new extension has a calendar as an icon, and some scribbles that appear to the left of Facebook pages need to be clicked on.  The user experience is still problematic. We can aspire that by version 0.4 we will have &lt;a href=&#34;https://0xacab.org/daline/librevent/-/issues&#34;&gt;fixed most of these shortcomings&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;https://www.npmjs.com/package/@_vecna/mobilizon-poster&#34;&gt;mobilezon-poster&lt;/a&gt; has been updated to version 1.1.5.&lt;/li&gt;
&lt;li&gt;This website still runs under hugo, like the previous one, but the LaTeX-inspired style gives it a whole other tone. Perhaps inappropriate with the revolutionary concept that data liberation might expect to be, which perhaps it is this dissonance to make this appealing.&lt;/li&gt;
&lt;li&gt;As part of the stylistic experiment, the extension popup also has this font and has abandoned the psychedelic animated gif found at the bottom of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;commitment&#34;&gt;Commitment&lt;/h3&gt;
&lt;p&gt;We’ll have to build an international community of people who want to liberate data. The monopolistic social media model would keep frustrating us.&lt;/p&gt;
&lt;p&gt;Of course, would have been more exciting if, for example, Twitter had gone out of business because people go on the fediverse, and not because some crazy billionaire drives you to there.&lt;/p&gt;
&lt;p&gt;We would have all wanted communities to leave Facebook because it is a toxic and exploitative environment, and not because there are only bots, hate-filled boomers, and poorly targeted advertising.&lt;/p&gt;
&lt;p&gt;If this is a phase of transition, &lt;strong&gt;data liberation can be a bridge&lt;/strong&gt;, to help breaking the critical mass constraint, and leave those blazing dumpster once and for all.&lt;/p&gt;
&lt;h4 id=&#34;references&#34;&gt;References&lt;/h4&gt;
&lt;p&gt;The Privacy Cafè invite:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://privacylx.org/img/privacy-cafe-mill-nov2022.jpeg&#34;&gt;
&lt;/figure&gt;

&lt;br /&gt;
To not forget the thousands, if not the millions, of you lusting over an image morphing made by deep neural networks, mashed up to build a 90s-style banner for a web site.
&lt;br /&gt;
&lt;br /&gt;
&lt;figure&gt;&lt;img src=&#34;/images/libr.events.morphing.gif&#34;&gt;
&lt;/figure&gt;</description>
      
    </item>
    
  </channel>
</rss>
