246
 215

Jason Robinson

jaywink@jasonrobinson.me

Contact

Open source advocate, Pythonista and Djangonaut. Lead Developer at Anders Innovations.

Independent federated social web hacker. Author and maintainer of Socialhome, Social-Relay, Python federation and The-Federation.info.

Links

caseyscarborough/github-activity
github-activity - A widget for displaying GitHub activity for a user.

My projects: Socialhome

Django application that provides users the ability to create content for their profile which is then displayed in grids. Content can be Markdown or HTML, featuring a WYSIWYG editor.

All content is designed to be federated using the Diaspora protocol. In addition to profile content, users will be able to create non-profile content (in a more traditional status message way) and read streams of other user content from local users or other nodes via the federation layer.

Powers this site.

Tech stack

Django, Channels, Bootstrap 4, jQuery, Masonry, RQ, PostgreSQL, uWSGI, Circus, Mocha, federation, Django-Haystack, Whoosh.

Links

My projects: federation

Python library to abstract social federation protocols. Currently supports a subset of the Diaspora protocol.

Used by Socialhome and Social-Relay.

Tech stack

Python, lxml, pycrypto, Py.test.

Links

My projects: The-Federation.info

Statistics hub and node list for The Federation (Diaspora*, Friendica, Hubzilla).

Tech stack

Node.js, Express, Nunjucks, Sass.

Links

My projects: Social Relay

Social Relay is an application to relay public posts between nodes of The Federation (diaspora* and compatible social networking servers).

Keeps track of nodes and their subscription preferences, receives payloads and forwards the payloads to subscribers. The aim is to pass public posts around in an efficient way so any new node in the network can quickly subscribe to lots of public activity, without having to wait a long time to create social relationships.

Tech stack

Flask, RQ, PostgreSQL, Peewee, Circus, federation, Py.test.

Links

Decided work computer didn't have quite enough #stickers. Much better now.

Interviews

Hacker Public Radio @ FOSDEM'15


source

Biertaucher-Podcast @ FOSDEM'15


source

Knightwise @ FOSDEM'15

profile for jaywink at Ask Ubuntu, Q&A for Ubuntu users and developers profile for jaywink at Stack Overflow, Q&A for professional and enthusiast programmers

Support my work


     

Talks

Python Helsinki meetup at F-Secure @ 7th Jan 2015

PyLadies Helsinki meetup at Anders Innovations @ 16th Dec 2014

PyCharm <3

DJ mixes

Some mixes and live sets from my ealier breakbeat / drum'n'bass hobby.

Check more at hearthis.at.

HBD #EU <3

OK #Django #REST #Swagger docs generator is pretty damn sweet. Just install and type some docstrings, everything else is automatic ✌

Docs still WIP, but that was literally 5 minutes of work.

In related notes, #Socialhome #API got content CRUD operations and image upload merged. Now I want to install an #Android SDK and start making a photo upload app 😁

Some basic #search on #Socialhome finally starting to come together. Only on my personal node atm though. Explains why many people got a follow from me just now as I'm eagerly searching and following people from my #diaspora contacts :) Remote direct match lookup is still to come though, so can't reach all pods who don't push over the relay system (btw, you should!). Currently the search is for profiles only. Tags will be added soon, after that full text for content.

On the technical side, after prototyping some solutions, went with django-haystack for the search framework and whoosh for the engine. Whoosh is a pure #Python backend with a file index. While this might not offer the performance we will need for large index full text search (from all content!), using Haystack on top means we can just switch transparently to #Elasticsearch at any time without touching pretty much any code - or even support using one or the other. Some people running nodes might not want to install ES.

Landing soon in master, you can try it at my own site if you are interested. It's basic but works.

#django #devdiary

Social-Relay version 1.4.0 released

This release adds compatibility with the latest #Diaspora #protocol changes. Also now Social-Relay will verify received payloads to ensure receivers get payloads from only resolvable valid senders.

https://github.com/jaywink/social-relay/releases/tag/1.4.0

What is the relay system?

The #relay system handles distribution of public content using the #Diaspora protocol. This helps new nodes get into the network and allows subscribing to hashtags from around the network. This is an unofficial network addition not directly related to the Diaspora protocol or project itself.

If as a #podmin you want to hook up to the relay system, do as follows:

  • Enable your outbound/inbound relay configuration in your Diaspora pod settings or for #Friendica / #Hubzilla check your own settings/documentation on how to do it.
  • Ensure your node is registered at The-Federation.info. The relay system polls this list for nodes to check.
  • Profit within one hour!

Discuss and improve

Let me know if you have ideas for improving the relay system or just questions about it. Contact me here, GitHub issues or via IRC.

Changelog

Added

  • Accept new style Diaspora public payloads without xml=payload form data.
  • Add profile model. Store remote profile handle + public key for later use, since we don't want to always fetch them.
  • Start validating signatures in sent payloads. This requires fetching remote profiles. Closes #31.

Ping @{David Morley; davidmorley@diasp.org}

jaywink/social-relay
social-relay - Public post relay for the Diaspora federated social network protocol

federation v0.14.1 released

This release includes an important #Diaspora #protocol related #security fix adding checks so that payloads cannot be sent with objects referencing another identity. Basically this means that a post payload has to have the same author in the object as it has as the sender. The exception is relayables, which are commonly sent by someone else and authored by another person. This the patch release since the latter had to be fixed due to regression.

federation is a #Python library that offers the Diaspora protocol via an opinionated API, aiming to combine multiple protocols under one API in the future.

https://github.com/jaywink/federation/releases/tag/v0.14.1

Changelog:

[0.14.1] - 2017-08-06

Fixed

  • Fix regression in handling Diaspora relayables due to security fix in 0.14.0. Payload and entity handle need to be allowed to be different when handling relayables.

[0.14.0] - 2017-08-06

Security

  • Add proper checks to make sure Diaspora protocol payload handle and entity handle are the same. Even though we already verified the signature of the sender, we didn't ensure that the sender isn't trying to fake an entity authored by someone else.

    The Diaspora protocol functions message_to_objects and element_to_objects now require a new parameter, the payload sender handle. These functions should normally not be needed to be used directly.

Changed

  • Breaking change. The high level federation.outbound functions handle_send and handle_create_payload signatures have been changed. This has been done to better represent the objects that are actually sent in and to add an optional parent_user object.

    For both functions the from_user parameter has been renamed to author_user. Optionally a parent_user object can also be passed in. Both the user objects must have private_key and handle attributes. In the case that parent_user is given, that user will be used to sign the payload and for Diaspora relayables an extra parent_author_signature in the payload itself.

#thefederation #federation

jaywink/federation
Python library for abstracting social federation protocols

Back to the Future:

The #Decentralized #Web

The Web is a key space for civic debate and the current battleground for protecting freedom of expression. However, since its development, the Web has steadily evolved into an ecosystem of large, corporate-controlled mega-platforms which intermediate speech online. In many ways this has been a positive development; these platforms improved usability and enabled billions of people to publish and discover content without having to become experts on the Web’s intricate protocols.

But in other ways this development is alarming. Just a few large platforms drive most traffic to online news sources in the U.S., and thus have enormous influence over what sources of information the public consumes on a daily basis. The existence of these consolidated points of control is troubling for many reasons. A small number of stakeholders end up having outsized influence over the content the public can create and consume. This leads to problems ranging from censorship at the behest of national governments to more subtle, perhaps even unintentional, bias in the curation of content users see based on opaque, unaudited curation algorithms. The platforms that host our networked public sphere and inform us about the world are unelected, unaccountable, and often impossible to audit or oversee.

http://dci.mit.edu/decentralizedweb

Even though a large part of #society has been alienated from these words, for the rest it is more important than ever we stick by these, no matter how difficult. Otherwise we all lose.

August has been a good month for me and #opensource 😁 Only 2,5 weeks and then back to work though :(

#github