<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Boris Mann</title>
    <description>The latest articles on DEV Community by Boris Mann (@bmann).</description>
    <link>https://dev.to/bmann</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F104472%2F37f174ff-f05c-4182-b736-e1da5df4a3b9.jpg</url>
      <title>DEV Community: Boris Mann</title>
      <link>https://dev.to/bmann</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bmann"/>
    <language>en</language>
    <item>
      <title>Fission Fragments May 27th Weekly Links</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Wed, 27 May 2020 23:35:39 +0000</pubDate>
      <link>https://dev.to/fission/fission-fragments-may-27th-weekly-links-1moi</link>
      <guid>https://dev.to/fission/fission-fragments-may-27th-weekly-links-1moi</guid>
      <description>&lt;p&gt;&lt;em&gt;Fission Fragments is our weekly links roundup, that has been on hiatus ... for a while. We're going to get back to weekly, usually Wednesdays, and will be &lt;a href="https://talk.fission.codes/t/fission-fragments-weekly-links-for-may-27th/649"&gt;posting in the forum&lt;/a&gt;. You can also &lt;a href="https://5d04d668.sibforms.com/serve/MUIEAD0fi3_BJE-4eieeuK6_0_XZaOPiu1_nfh56jvP1pV9uWy9OLxWLrHtjC148osZF2vcRb0XAymSdzFxhVD7XgvvODjbrp5ClBvQLmY70hyvU1JKu7ucoOP5KFJVRcfNgYN-3qvVppxg72KGyYZlWAJr2IkO7Ae9CIhnjpufaP7npZGPrBFzpmyEaKKLGYyqu0dnQIobGLAMM"&gt;subscribe by email&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Alcro, an Electron competitor that uses Chrome devtools and websockets
&lt;/h2&gt;

&lt;p&gt;Via &lt;a href="https://twitter.com/bascule"&gt;@bascule&lt;/a&gt;, we found out about &lt;a href="https://github.com/Srinivasa314/alcro"&gt;Alcro&lt;/a&gt;:&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--PkWprjDT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/450061818606522368/pjDTHFB9_normal.jpeg" alt="Tony “Abolish ICE” Arcieri 🦀 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Tony “Abolish ICE” Arcieri 🦀
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @bascule
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--52oNvK_0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-ff4bdab814039c4cb172a35ea369e0ea9c6a4b59b631a293896ae195fa26a99d.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Alcro: a Rust library for building desktop apps using web technologies by leveraging an existing installation of Chrome (rather than shipping the entire Chromium/Blink engine for each app like Electron)&lt;br&gt;&lt;a href="https://t.co/v8JBvxj8GR"&gt;github.com/Srinivasa314/a…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:50 PM - 21 May 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1263542802249465857" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-reply-action.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1263542802249465857" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-retweet-action.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      2
      &lt;a href="https://twitter.com/intent/like?tweet_id=1263542802249465857" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-like-action.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
      18
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;&lt;a href="https://talk.fission.codes/t/alcro-a-rust-library-for-building-desktop-apps/645"&gt;🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tauri Studio - An Electron competitor that uses webview
&lt;/h2&gt;

&lt;p&gt;Found via the bascule Alcro Twitter discussion, &lt;a href="https://tauri.studio/"&gt;Tauri&lt;/a&gt; is another project to build native desktop apps with web technologies. It features a Node based CLI and a Rust backend, although the project aims to be polyglot:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Today, Tauri uses Rust for the backend - but in the not too distant future, other backends like Go, Nim, Python, Csharp etc. will be possible. This is because we are maintaining the offical Rust bindings to the &lt;a href="https://github.com/webview"&gt;webview&lt;/a&gt; organisation and plan to let you switch out the backend for your needs. Since our API can be implemented in any language with C interop, full compliance is only a PR away.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/tauri-studio-native-desktop-apps-with-webview-nodejs-and-rust/646"&gt;🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git LFS with IPFS Support
&lt;/h2&gt;

&lt;p&gt;As part of some ongoing research, @ellttBen found an implementation of Git Large File Storage (LFS) integration with IPFS, &lt;a href="https://github.com/sameer/git-lfs-ipfs"&gt;sameer/git-lfs-ipfs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This has given us some good ideas of how to integrate a git-based development workflow with IPFS and Fission.&lt;/p&gt;

&lt;p&gt;Binary files of all kinds can be stored with your git repo, but then transparently stored in IPFS, rather than checked in and bloating the size of your repo. This could be particularly interesting for large photos, videos, and in general media files and assets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/sameer-git-lfs-ipfs-use-ipfs-as-a-git-lfs-endpoint/647"&gt;🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Slack vs Discord vs Discourse: the best tool for your community, Orbit Blog
&lt;/h2&gt;

&lt;p&gt;Our friends at Orbit (you know, makers of the &lt;a href="https://github.com/orbit-love/orbit-model"&gt;Orbit Model of Developer Engagement&lt;/a&gt;, also &lt;a href="https://talk.fission.codes/t/orbit-model-of-developer-engagement/635"&gt;in our forum&lt;/a&gt;) wrote up a giant community platforms blog post that’s a really good summary of pros and cons to help you decide &lt;a href="https://orbit.love/blog/slack-vs-discord-vs-discourse"&gt;Slack vs Discord vs Discourse&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We’re on Discord &lt;strong&gt;and&lt;/strong&gt; Discourse, and also use it for our private / internal company spaces, too, which isn’t really covered in the Orbit post. We’ll get around to writing up our story at some point!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/slack-vs-discord-vs-discourse-the-best-tool-for-your-community-orbit-blog-may-2020/654"&gt;🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Anil Dash, CEO of Glitch, says we need "Yes Code" rather than "No Code"
&lt;/h2&gt;

&lt;p&gt;At the beginning of May, Anil posted &lt;a href="https://www.linkedin.com/pulse/code-great-heres-why-we-need-yes-anil-dash/"&gt;No Code is great, but here's why we need Yes Code to LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We believe in a lot of these same concepts at Fission, along with additional step of making it so that users can own their own data, which should make it even easer to hack and remix apps and websites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/no-code-is-great-but-heres-why-we-need-yes-code-anil-dash-may-2020/658"&gt;🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I want to own the database that my apps use, Grant Orndorff
&lt;/h2&gt;

&lt;p&gt;Speaking of things we believe in and owning user data, &lt;a href="https://orndorffgrant.com/own-your-data-idea/"&gt;Grant's post&lt;/a&gt; about how he envisions users owning the data of apps they use is very similar to what we're building at Fission. He covers SOLID and Urbit and how they're not quite what he has in mind.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/i-want-to-own-the-database-that-my-apps-use-grant-orndorff-may-2020/657"&gt;🔗&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Fission Updates
&lt;/h1&gt;

&lt;p&gt;Brooke explains her &lt;a href="https://blog.fission.codes/auth-without-backend/"&gt;design of UCAN&lt;/a&gt;, a user authorization method that doesn't need a backend, that we're implementing at Fission:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;User Controlled Authorization Networks (UCANs) are a way of doing authorization where users are fully in control. OAuth is designed for a centralized world, UCAN is the distributed user controlled version.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/qri-an-open-source-version-control-and-sharing-system-for-datasets-built-on-ipfs-with-brendan-obrien/626"&gt;This week's video chat is with Qri&lt;/a&gt;, an open source version control and sharing system for datasets, built on IPFS -- join us Thursday, May 28th, at 9am PDT / 12noon EDT / 1800 CEST.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://fission.codes"&gt;Fission&lt;/a&gt; is building a web native file system, plus tools to build &amp;amp; host apps with user controlled data, encryption, and local first software. This makes it easy for front end devs to build great apps without worrying about backend or deployment.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ownyourdata</category>
      <category>fission</category>
      <category>ipfs</category>
      <category>electron</category>
    </item>
    <item>
      <title>Experimenting with HLS Video Streaming and IPFS</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Wed, 22 Apr 2020 17:09:39 +0000</pubDate>
      <link>https://dev.to/fission/experimenting-with-hls-video-streaming-and-ipfs-1dkj</link>
      <guid>https://dev.to/fission/experimenting-with-hls-video-streaming-and-ipfs-1dkj</guid>
      <description>&lt;p&gt;We've been running &lt;a href="https://talk.fission.codes/c/events/dweblunchnlearn/27"&gt;weekly developer lunch &amp;amp; learn sessions&lt;/a&gt; over video. I've been downloading the video from Zoom, doing some basic trimming, and then uploading it using Fission, and embedding the IPFS link in our Discourse forum. This works pretty well – Discourse recognizes the video file extension and embeds a video player in the post automatically. I had read a bit about HTTP Live Streaming (HLS) and wanted to experiment.&lt;/p&gt;

&lt;p&gt;Originally developed by Apple, and now widely supported, HLS doesn't need any special server-side support. A bit more in this freeCodeCamp article:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The most important feature of HLS is its ability to adapt the bitrate of the video to the actual speed of the connection. This optimizes the quality of the experience.  &lt;/p&gt;

&lt;p&gt;HLS videos are encoded in different renditions at different resolutions and bitrates. This is usually referred to as the bitrate ladder. When a connection gets slower, the protocol automatically adjusts the requested bitrate to the bandwidth available.  &lt;/p&gt;

&lt;p&gt;– &lt;a href="https://www.freecodecamp.org/news/what-is-hls-and-when-to-use-it/"&gt;freeCodeCamp: HLS Video Streaming: What it is, and When to Use it&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There's an &lt;a href="https://github.com/ipfs/js-ipfs/tree/master/examples/browser-video-streaming"&gt;example in the JavaScript implementation of IPFS about using HLS with js-ipfs&lt;/a&gt;. The README explains:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The fact that HLS content is just "a bunch of files" makes it a good choice for IPFS (another protocol that works this way is MPEG-DASH, which could certainly be a good choice as well). Furthermore, the &lt;a href="https://github.com/video-dev/hls.js"&gt;hls.js&lt;/a&gt; library enables straightforward integration with the HTML5 video element.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;"Just a bunch of files" is pretty much how we're thinking about Fission. Fission and any standard IPFS gateway serves up files over HTTP and/or natively with IPFS, without plugins, in any browser. It's really great to get back to what is basically the 2020 equivalent of upload files to the server.&lt;/p&gt;

&lt;p&gt;I took the latest video file of &lt;a href="https://talk.fission.codes/t/ceramic-network-technical-discussion-with-joel-thorstensson-cto-of-3box/559"&gt;Joel talking about Ceramic Network&lt;/a&gt; and ran the &lt;code&gt;ffmpeg&lt;/code&gt; command from the js-ipfs example. On MacOS, &lt;code&gt;brew install ffmpeg&lt;/code&gt; will get you the program.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ffmpeg -i ../YOURVIDEO.mp4 -profile:v baseline -level 3.0 -start_number 0 -hls_time 5 -hls_list_size 0 -f hls master.m3u8&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;On my desktop iMac, the progress showed to be encoding at 4x - 5x speed. The video is about an hour, so it took about 20 minutes to complete. The output is 400+ files, which I uploaded with &lt;code&gt;fission up&lt;/code&gt; and then noted down the hash of the folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wdxlTB6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/hls-video-files-in-drive-600.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wdxlTB6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/hls-video-files-in-drive-600.png" alt="Experimenting with HLS Video Streaming and IPFS"&gt;&lt;/a&gt;Browse the &lt;a href="https://drive.fission.codes/#/QmYGs1ksGX3eMiGvxNuvRT6PD7zPKZpHyiUDXKGQoL4R7S"&gt;files on IPFS using Fission Drive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I went back and edited the &lt;code&gt;streaming.js&lt;/code&gt; folder and &lt;code&gt;index.html&lt;/code&gt;. The &lt;code&gt;streaming.js&lt;/code&gt; file just needs the hash of the folder that contains the HLS-encoded video, which for this video is &lt;code&gt;QmYGs1ksGX3eMiGvxNuvRT6PD7zPKZpHyiUDXKGQoL4R7S&lt;/code&gt;. Feel free to use this to experiment with! I kept the &lt;code&gt;master.m3u8&lt;/code&gt; file name so didn't need to change that.&lt;/p&gt;

&lt;p&gt;One change I made was to to also include the IPFS script from a CDN in the &lt;code&gt;index.html&lt;/code&gt; file (the js-ipfs example assumes you're running things locally and working with js-ipfs from there). Just add this line:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://drive.fission.codes/#/events.fission.name/2020/04-16-dweb-lunchnlearn-joel-ceramic-network"&gt;browse all the files directly using Fission Drive&lt;/a&gt;, including the source video that was encoded. &lt;a href="https://events.fission.name/2020/04-16-dweb-lunchnlearn-joel-ceramic-network/"&gt;Visiting the index page&lt;/a&gt; will load the player and HLS stream the video.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example HLS Video
&lt;/h2&gt;

&lt;p&gt;Here's the source and video embedded via Codepen – hit the HTML button to view source. Note the Fission gateway link to the published version of the &lt;code&gt;streaming.js&lt;/code&gt; file, also remotely included:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/borismann/embed/GRprJoZ?height=600&amp;amp;default-tab=html,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video isn't very high quality to begin with, and adding width/height to the video element could constrain it to different sizes.&lt;/p&gt;

&lt;p&gt;More about &lt;a href="https://talk.fission.codes/t/ceramic-network-technical-discussion-with-joel-thorstensson-cto-of-3box/559"&gt;Joel and Ceramic Network on the forum event page »&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This is a very manual process, and there are lots of dedicated video encoding services. It was a good experiment to see that anything that is a "bunch of files" can just work over the distributed IPFS network, and easily published and hosted on Fission.&lt;/p&gt;

&lt;p&gt;Experimenting with a large, high quality video and testing across different devices and network speeds (and whether or not nearby peers had a copy of the video) would need to be done vs. just embedding the original video to see what the user experience is actually like.&lt;/p&gt;

&lt;p&gt;This also leads to some interesting thoughts about distributed encoding. Once an original video is encoded and added to the network by one person, it never needs to be encoded again. From some brief research, &lt;a href="https://mastodon.social/@Gargron/11088922"&gt;ffmpeg is not deterministic, which lead to this thread on Mastodon&lt;/a&gt;. This means that different people encoding a video could get different output files, which means different hashes in IPFS.&lt;/p&gt;

&lt;p&gt;However, the original video file is unique, so adding metadata to the original source video file for discovery of the unique, permanent hash of an HLS-encoded version could work.&lt;/p&gt;

&lt;p&gt;We're currently doing some work on how to do this for images, so that different sizes are automatically available and cached in the network.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Fission is an app &amp;amp; web hosting platform that implements a web native file system powered by IPFS. Build and run locally, &lt;code&gt;fission up&lt;/code&gt; to host everywhere. &lt;a href="https://guide.fission.codes"&gt;Read our guide&lt;/a&gt; to get started and sign up right from the command line.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ipfs</category>
      <category>hls</category>
      <category>video</category>
    </item>
    <item>
      <title>What colour is your yak? Visualizing developer jargon</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Tue, 21 Apr 2020 18:05:00 +0000</pubDate>
      <link>https://dev.to/fission/what-colour-is-your-yak-visualizing-developer-jargon-aag</link>
      <guid>https://dev.to/fission/what-colour-is-your-yak-visualizing-developer-jargon-aag</guid>
      <description>&lt;p&gt;We're creating illustrations for developer concepts, catch phrases, and other jargon. &lt;em&gt;Yak shaving&lt;/em&gt; is one of those terms. It's fun to dig into the concepts and learn about their background, teach other people about them, and we get some cool images to use in a number of different ways that aren't just company branding. We have ideas for some new illustrations, we're happy to take other suggestions and have people &lt;a href="https://talk.fission.codes/t/vote-for-and-suggest-developer-concepts-to-illustrate/590"&gt;vote for their favourites&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bear and Penguin
&lt;/h2&gt;

&lt;p&gt;We had fun last year &lt;a href="https://blog.fission.codes/bear-penguin-bounty-for-boss/"&gt;sourcing the Bear and Penguin illustration for the Berlin Open Source Salon&lt;/a&gt;. The inner meaning here is that the bear is the coat of arms for the city of Berlin – the "Berliner Bär". The bear is holding a Club Mate drink, traditional drink of German hackers (although I know at one time the Mozilla Vancouver team imported it for their office fridge, too!). And the penguin is the long time mascot of Linux.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_mk68SOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/bear---penguin-02-2000px-white.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_mk68SOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/bear---penguin-02-2000px-white.jpg" alt="What colour is your yak? Visualizing developer jargon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wizards and Snakes
&lt;/h2&gt;

&lt;p&gt;Since then, we've worked with &lt;a href="https://www.behance.net/brunomonts"&gt;Bruno Monts&lt;/a&gt;, an illustrator based in Brasil, to create a number of other illustrations.&lt;/p&gt;

&lt;p&gt;We just released the &lt;strong&gt;Haskell Wizards&lt;/strong&gt; series, written up in our &lt;a href="https://haskellfortypescriptdevs.fission.codes/appendix/haskell-wizards"&gt;Haskell for Typescript Devs book&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3Wn5O3Sn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/haskell-wizard-trio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3Wn5O3Sn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/haskell-wizard-trio.png" alt="What colour is your yak? Visualizing developer jargon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.fission.codes/screaming-snake-case/"&gt;SCREAMING SNAKE CASE&lt;/a&gt; was just a pure piece of fun, with the vaporwave stylings pushed to the max. We did a first run of stickers with this image, and can't wait to come up with t-shirts or other swag with this fun image:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6HGeo5WW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/screaming_snake_case-1024.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6HGeo5WW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/04/screaming_snake_case-1024.png" alt="What colour is your yak? Visualizing developer jargon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Vote for developer jargon to illustrate
&lt;/h2&gt;

&lt;p&gt;We're going to get some more illustrations made, and have a couple of ideas already:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kebab case&lt;/strong&gt; wouldn't be vaporwave, but maybe a sort of comic / graphic art – a delicious kebab, dripping sauce.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Elm programming language&lt;/strong&gt; is a favourite of ours at Fission, so vote for this one if you want an Elm-y character in the style of the Haskell Wizards&lt;/li&gt;
&lt;li&gt;We recently added some &lt;a href="https://talk.fission.codes/t/yak-shaving-programming-term/582"&gt;definitions for Yak shaving to our forum&lt;/a&gt;. It's only about 20 years old – but of course software development has changed dramatically in the last 20 years, so it's a term that's not well known.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bike shedding&lt;/strong&gt; and&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pets vs. Cattle&lt;/strong&gt; are the last two suggestions we have so far.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/t/vote-for-and-suggest-developer-concepts-to-illustrate/590"&gt;Read more about these ideas, vote in the forum for your favourites to get illustrated, or suggest your own »&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We're working with Bruno now, and will run the vote for a couple of weeks, and then get at least 2 or 3 of the developer jargon ideas turned into high quality illustrations.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Post header photo by &lt;a href="https://unsplash.com/@lievemax"&gt;Lieve Ransijn&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>haskell</category>
      <category>elmlang</category>
      <category>art</category>
      <category>jargon</category>
    </item>
    <item>
      <title>Fission on the IPFS Community Call</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Mon, 09 Mar 2020 19:34:27 +0000</pubDate>
      <link>https://dev.to/fission/fission-on-the-ipfs-community-call-nof</link>
      <guid>https://dev.to/fission/fission-on-the-ipfs-community-call-nof</guid>
      <description>&lt;p&gt;Thanks to the IPFS team for hosting us on the weekly community call! These &lt;a href="https://talk.fission.codes/t/ipfs-weekly-community-calls/521"&gt;community calls happen weekly on Mondays at 1600 UTC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We presented an intro to what we're building at Fission, including our hosted services, open source contributions, and more.&lt;/p&gt;

&lt;p&gt;We've started to use the phrase "web native apps" to describe Fission's app creation platform that decouples storage from apps, with user controlled data, and secure by default. Which is what is expected by users  from native mobile apps.&lt;/p&gt;

&lt;p&gt;You can watch the video on the IPFS Youtube channel here:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wvmZj7IE9Bo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The slides are &lt;a href="https://events.fission.name/2020/ipfs-community-call/Fission-IPFS-Community-Call-March2020.pdf"&gt;available on IPFS as a PDF&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---9y3PUf8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/03/Screen-Shot-2020-03-09-at-12.19.32-PM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---9y3PUf8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/03/Screen-Shot-2020-03-09-at-12.19.32-PM.png" alt="Fission on the IPFS Community Call"&gt;&lt;/a&gt;&lt;a href="https://noti.st/bmann/TltFLG/fission-building-web-native-apps"&gt;Also on Notist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the final slide, here are all the places where you can find out more and connect with us:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/fission-suite"&gt;fission-suite&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install Guide &amp;amp; Docs: &lt;a href="https://guide.fission.codes"&gt;guide.fission.codes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Technical Whitepaper: &lt;a href="https://whitepaper.fission.codes"&gt;whitepaper.fission.codes&lt;/a&gt;  – this is a work in progress! 🚧 👷‍♀️✍️&lt;/li&gt;
&lt;li&gt;Discourse forum: &lt;a href="https://talk.fission.codes"&gt;talk.fission.codes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Discord chat: &lt;a href="https://fission.codes/discourse"&gt;fission.codes/discourse&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Twitter: &lt;a href="https://twitter.com/fissioncodes"&gt;@fissioncodes&lt;/a&gt;, team accounts &lt;a href="https://twitter.com/expede"&gt;@expede&lt;/a&gt;,  &lt;a href="https://twitter.com/bmann"&gt;@bmann&lt;/a&gt;, &lt;a href="https://twitter.com/icidasset"&gt;@icidasset&lt;/a&gt;, and &lt;a href="https://github.com/dholms"&gt;@dholms on Github&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ipfs</category>
      <category>video</category>
      <category>presentations</category>
    </item>
    <item>
      <title>Fission Drive Preview</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Thu, 13 Feb 2020 18:51:41 +0000</pubDate>
      <link>https://dev.to/fission/fission-drive-preview-2</link>
      <guid>https://dev.to/fission/fission-drive-preview-2</guid>
      <description>&lt;p&gt;We're pleased to present the Preview release of &lt;strong&gt;Fission Drive&lt;/strong&gt; , the web native file system browser that we're including as a base component of the Fission stack.&lt;/p&gt;

&lt;p&gt;We've been hosting files, static websites, and client-side apps on Fission since we launched our CLI tool in October of 2019.&lt;/p&gt;

&lt;p&gt;Underneath, we use IPFS, but increasingly that's a detail that we don't think most users of our service should have to care about. It's a dependency, just like using MySQL or Redis.&lt;/p&gt;

&lt;p&gt;Of course, if you &lt;strong&gt;do&lt;/strong&gt; know what IPFS, great! We want to make it as easy to use as any existing Web2 component, while having capabilities at the protocol level – like file de-duplication, a global CDN, peer-to-peer sync, immutability, and offline support, to name a few– that let us empower all developers to build new and interesting tools.&lt;/p&gt;

&lt;p&gt;Fission Drive is the app that we're building to showcase what the entire Fission stack can do, hosted on our own infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/icidasset"&gt;Steven @icidasset&lt;/a&gt; joined the team in December and has been full time since January. He designed and built Fission Drive, as well as our &lt;a href="https://fission.codes"&gt;slick new home page&lt;/a&gt;, which is also now running on Fission. Next up for Steven is building out web-based passwordless login for Drive, as well as the TypeScript libraries that will let all developers build apps like this.&lt;/p&gt;

&lt;p&gt;Drive has a few features to play with, like image previews and support for dark mode. We'll keep the &lt;a href="https://guide.fission.codes/drive"&gt;guide docs updated&lt;/a&gt; as we add features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jjKkQs0F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/02/fission-drive-dark-mode.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jjKkQs0F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/02/fission-drive-dark-mode.png" alt="Fission Drive Preview"&gt;&lt;/a&gt;Fission Drive in Dark Mode, with an image preview&lt;/p&gt;

&lt;p&gt;This preview release supports browsing any public IPFS hash, not just those on Fission. You can use this example hash &lt;code&gt;QmbCLefkFuXbhHBWSW7PWmJzBL7W7e8zm41HK4DGJ1RDwV&lt;/code&gt; to see it in action at &lt;a href="https://drive.fission.codes"&gt;drive.fission.codes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Want to add your own files? Follow the &lt;a href="https://guide.fission.codes/apps/installation"&gt;install instructions for the Fission CLI&lt;/a&gt; to easily upload using &lt;code&gt;fission up&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://5d04d668.sibforms.com/serve/MUIEAD0fi3_BJE-4eieeuK6_0_XZaOPiu1_nfh56jvP1pV9uWy9OLxWLrHtjC148osZF2vcRb0XAymSdzFxhVD7XgvvODjbrp5ClBvQLmY70hyvU1JKu7ucoOP5KFJVRcfNgYN-3qvVppxg72KGyYZlWAJr2IkO7Ae9CIhnjpufaP7npZGPrBFzpmyEaKKLGYyqu0dnQIobGLAMM"&gt;subscribe to keep up to date with Fission Drive and other product updates&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>fission</category>
      <category>fissiondrive</category>
      <category>ipfs</category>
    </item>
    <item>
      <title>Screaming Snake Case</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Tue, 28 Jan 2020 20:24:20 +0000</pubDate>
      <link>https://dev.to/fission/screaming-snake-case-43kj</link>
      <guid>https://dev.to/fission/screaming-snake-case-43kj</guid>
      <description>&lt;p&gt;Did you know that different programming languages and certain developer preferences have led to different standards in naming functions, variables, constants, and other programming terms?&lt;/p&gt;

&lt;p&gt;Camel case (&lt;a href="https://en.wikipedia.org/wiki/Camel_case"&gt;wikipedia&lt;/a&gt;) – or should I say, camelCase – is probably the best known programming naming convention, in either &lt;strong&gt;PascalCase&lt;/strong&gt; (initial capital) or &lt;strong&gt;dromedaryCase&lt;/strong&gt; versions.&lt;/p&gt;

&lt;p&gt;While researching, we were delighted to learn about &lt;strong&gt;kebab-case&lt;/strong&gt; -being-a-thing, and you can find a bunch more &lt;a href="https://en.wikipedia.org/wiki/Letter_case#Special_case_styles"&gt;letter cases on Wikipedia&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But we're here to tell you about &lt;strong&gt;snake_case&lt;/strong&gt; :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The use of underscores as word separators in identifiers in programming languages is old, dating to the late 1960s. It is particularly associated with C, being found in &lt;em&gt;&lt;a href="https://en.wikipedia.org/wiki/The_C_Programming_Language"&gt;The C Programming Language&lt;/a&gt;&lt;/em&gt; (1978), and contrasted with &lt;a href="https://en.wikipedia.org/wiki/Pascal_case"&gt;PascalCase&lt;/a&gt; (a type of &lt;a href="https://en.wikipedia.org/wiki/Camel_case"&gt;camel case&lt;/a&gt;). However, the convention traditionally had no specific name: the Python style guide refers to it simply as "lower_case_with_underscores".  &lt;/p&gt;

&lt;p&gt;Within &lt;a href="https://en.wikipedia.org/wiki/Usenet"&gt;Usenet&lt;/a&gt; the name "snake_case" was first seen in the &lt;a href="https://en.wikipedia.org/wiki/Ruby_(programming_language)"&gt;Ruby&lt;/a&gt; community in 2004, used by Gavin Kistner  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Snake_case"&gt;https://en.wikipedia.org/wiki/Snake_case&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This, of course, leads us to SCREAMING_SNAKE_CASE – all capitals, often used when defining constants.&lt;/p&gt;

&lt;p&gt;And now, a vapourwave inspired illustration:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zf5CNANO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/01/F621DB83-9E43-4C37-B409-2828F22B3ECF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zf5CNANO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2020/01/F621DB83-9E43-4C37-B409-2828F22B3ECF.png" alt="Screaming Snake Case"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We're a developer focused company, which means we have fun with developer-centric in jokes and illustration. We've made a first run of stickers that you can fill out your postal address on our &lt;a href="https://swag.fission.codes"&gt;swag signup page&lt;/a&gt; and we'll get some sent to you.&lt;/p&gt;

&lt;p&gt;We've got some other programming related illustrations that will get turned into stickers and other artwork lined up, with &lt;strong&gt;Haskell&lt;/strong&gt; -related characters being up next. Haskell also happens to be what we're &lt;a href="https://github.com/fission-suite/web-api"&gt;writing our backend services in&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The artist behind this first set of work is &lt;strong&gt;Bruno Monts&lt;/strong&gt; , a freelance illustrator and designer from Brazil. You can see his &lt;a href="https://www.behance.net/brunomonts"&gt;portfolio on Behance&lt;/a&gt;. Thank you Bruno for your great work!&lt;/p&gt;

&lt;p&gt;Stay tuned for more fun developer art!&lt;/p&gt;

</description>
      <category>fission</category>
      <category>screamingsnakecase</category>
      <category>swag</category>
    </item>
    <item>
      <title>IPFS on Hackage</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Fri, 20 Dec 2019 21:27:05 +0000</pubDate>
      <link>https://dev.to/fission/ipfs-on-hackage-28il</link>
      <guid>https://dev.to/fission/ipfs-on-hackage-28il</guid>
      <description>&lt;p&gt;&lt;em&gt;Authored by &lt;a href="https://blog.fission.codes/author/daniel/"&gt;Daniel&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We just published version &lt;code&gt;1.0.0&lt;/code&gt; of our IPFS package on &lt;a href="https://hackage.haskell.org/package/ipfs-1.0.0"&gt;Hackage&lt;/a&gt; 🎉&lt;/p&gt;

&lt;p&gt;This library offers a high level API for interacting with IPFS nodes. Most of the functionality was refactored out of our &lt;a href="https://github.com/fission-suite/web-api%5C"&gt;Web API&lt;/a&gt;, which provides a convenient HTTP interface for accessing the IPFS network.&lt;/p&gt;

&lt;p&gt;The library can communicate with IPFS nodes in two different ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Locally: This is done by shelling out to an IPFS daemon that is running on the same machine. This would be the equivalent of running an IPFS command in your terminal.&lt;/li&gt;
&lt;li&gt;Remotely: This is done by communicating with a node's HTTP interface. This could either be a node running on the same machine or on another machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The package is not currently fully featured, but the base functionality is present: &lt;code&gt;add&lt;/code&gt;, &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;pin&lt;/code&gt;, and &lt;code&gt;dag put&lt;/code&gt; (for building IPLD structures). The existing code provides helpful building blocks for adding additional functionality.&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://github.com/fission-suite/ipfs-haskell"&gt;the code on GitHub&lt;/a&gt;. Let us know what features would be helpful for you and any issues that you might run into along the way!&lt;/p&gt;

&lt;p&gt;When you're ready to start building, head over to &lt;a href="https://hackage.haskell.org/package/ipfs"&gt;Hackage&lt;/a&gt; and grab the library.&lt;/p&gt;

</description>
      <category>ipfs</category>
      <category>haskell</category>
      <category>hackage</category>
    </item>
    <item>
      <title>IPFS Storage Adapter for Ghost Blog with Heroku Deploy</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Fri, 20 Dec 2019 00:51:05 +0000</pubDate>
      <link>https://dev.to/fission/ipfs-storage-adapter-for-ghost-blog-with-heroku-deploy-38pe</link>
      <guid>https://dev.to/fission/ipfs-storage-adapter-for-ghost-blog-with-heroku-deploy-38pe</guid>
      <description>&lt;p&gt;Back in May, as part of putting the Fission blog on Ghost, I &lt;a href="https://blog.fission.codes/ghost2-blog-on-heroku/" rel="noopener noreferrer"&gt;packaged it up to be a one-click deploy on Heroku&lt;/a&gt;. We've gone one step further and gotten an IPFS Storage Adapter completed, and upgraded to Ghost v3.x.&lt;/p&gt;

&lt;p&gt;This one-click deploy is possible because our &lt;a href="https://elements.heroku.com/addons/interplanetary-fission" rel="noopener noreferrer"&gt;IPFS Heroku Add-on is in beta&lt;/a&gt;! 🙌 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fs3.fission.codes%2F2019%2F12%2Fheroku-add-on.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fs3.fission.codes%2F2019%2F12%2Fheroku-add-on.png" alt="IPFS Storage Adapter for Ghost Blog with Heroku Deploy"&gt;&lt;/a&gt;Our &lt;a href="https://elements.heroku.com/addons/interplanetary-fission" rel="noopener noreferrer"&gt;IPFS Heroku Add-on&lt;/a&gt; is in beta with a free "test" plan.&lt;/p&gt;

&lt;p&gt;This means you can package up apps to be deployed on Heroku that automatically add our add-on. This provisions you a username and API key and your app can use our Web API to read and write to IPFS, manage DNS, and anything else accessible through our API.&lt;/p&gt;

&lt;p&gt;Check the &lt;a href="https://github.com/fission-suite/heroku-ipfs-ghost" rel="noopener noreferrer"&gt;Github repo for more details&lt;/a&gt;, or go ahead and deploy a new Ghost 3 blog here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://heroku.com/deploy?template=https://github.com/fission-suite/heroku-ipfs-ghost" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.herokucdn.com%2Fdeploy%2Fbutton.svg" alt="IPFS Storage Adapter for Ghost Blog with Heroku Deploy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To complete the Ghost deploy, the only configuration you'll need to do is to set the public URL for your blog – e.g. &lt;code&gt;https://boris-ghost-test1.herokuapp.com&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We've set the IPFS gateway to use ours by default, but you can put in any gateway you like. Images are included from this gateway, but of course using the &lt;a href="https://github.com/ipfs-shipyard/ipfs-companion" rel="noopener noreferrer"&gt;IPFS Companion extension&lt;/a&gt; means you can serve the images from your local machine.&lt;/p&gt;

&lt;p&gt;Go ahead and setup your first user, create a new post, and add an image – voila! Interplanetary Ghost Blogging! &lt;a href="https://boris-ghost-test1.herokuapp.com/i-am-testing-ipfs/" rel="noopener noreferrer"&gt;Here's my sample post&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;We're working on adding IPFS support for basic file uploads to a number of other platforms. This is a first step in getting more content natively available in IPFS. Imagine managing your blog's media assets or a gallery page from your desktop, being able to login to any system and have all your photos and files available for you there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://talk.fission.codes/c/app-ideas" rel="noopener noreferrer"&gt;Join our App Ideas forum&lt;/a&gt; to suggest other things you'd like to see. Thanks to &lt;a href="https://mktlr.com" rel="noopener noreferrer"&gt;Mike Taylor&lt;/a&gt; &lt;a href="https://twitter.com/MKTLRwho" rel="noopener noreferrer"&gt;@mktlrwho&lt;/a&gt; for working on this with us!&lt;/p&gt;

</description>
      <category>ipfs</category>
      <category>ghost</category>
      <category>heroku</category>
    </item>
    <item>
      <title>Exporting your Facebook photos to Fission</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Sun, 10 Nov 2019 09:01:10 +0000</pubDate>
      <link>https://dev.to/fission/exporting-your-facebook-photos-to-fission-28j0</link>
      <guid>https://dev.to/fission/exporting-your-facebook-photos-to-fission-28j0</guid>
      <description>&lt;p&gt;&lt;em&gt;I wrote this post as a quick weekend HOWTO on the Fission blog because it turned out people were excited to try this on their own. At Fission, we're building developer tools to make it easy to build and deploy serverless apps directly from your desktop. Our first service uses IPFS, a p2p file system, so that files stream directly from your computer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Facebook has a fairly extensive data export system built in. I decided to export my photos and videos and put them up on Fission.&lt;/p&gt;

&lt;p&gt;For now, this is a manual process and involves some command line usage. I'll write this up as an &lt;a href="https://talk.fission.codes/c/app-ideas"&gt;App Idea in our forum&lt;/a&gt; and see if we can spend some time making this "one-click".&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--OZe170ZQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/777494809632210944/aFre3Pzz_normal.jpg" alt="Jamie Burke profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jamie Burke
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @jamie247
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--52oNvK_0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-ff4bdab814039c4cb172a35ea369e0ea9c6a4b59b631a293896ae195fa26a99d.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/bmann"&gt;@bmann&lt;/a&gt; &lt;a href="https://twitter.com/FISSIONcodes"&gt;@FISSIONcodes&lt;/a&gt; Please make that one click for me dude
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      08:32 AM - 09 Nov 2019
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1193083841826770944" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-reply-action.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1193083841826770944" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-retweet-action.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      0
      &lt;a href="https://twitter.com/intent/like?tweet_id=1193083841826770944" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-like-action.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
      2
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Read the Facebook help article on &lt;a href="https://www.facebook.com/help/1701730696756992/"&gt;Accessing &amp;amp; Downloading Your Information&lt;/a&gt; for instructions on how to navigate to the right section of your Facebook account.&lt;/p&gt;

&lt;p&gt;On a desktop browser, it should be under the triangle in the upper right hand corner, then &lt;em&gt;Settings&lt;/em&gt;, then &lt;em&gt;Your Facebook Information&lt;/em&gt;, then &lt;em&gt;Download Your Information&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HmS_gKPC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/11/Screenshot-2019-11-09-at-8.29.37-AM-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HmS_gKPC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/11/Screenshot-2019-11-09-at-8.29.37-AM-1.png" alt="Exporting your Facebook photos to Fission"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I don't upload much to Facebook and only cross-post my Instagram photos (which are cross-posted to my personal blog), so I clicked &lt;em&gt;Deselect All&lt;/em&gt; (says &lt;em&gt;Select All&lt;/em&gt; in the screenshot above), and only selected Photos and Videos. I also set Media Quality to "High" (although some people still report that these are still not as large as the originals, which may only be accessible through the API).&lt;/p&gt;

&lt;p&gt;You can experiment with including other items. But, be aware that because there aren't any permissions, you may be sharing information you don't want to if you publish the files. Same goes for the photos. I have posted most things on Facebook the assumption that they are "public".&lt;/p&gt;

&lt;p&gt;Click the &lt;em&gt;Create File&lt;/em&gt; button and go make a coffee. Facebook will notify when your download is ready.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T7ykOc4T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/11/Screenshot-2019-11-09-at-8.38.38-AM-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T7ykOc4T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/11/Screenshot-2019-11-09-at-8.38.38-AM-1.png" alt="Exporting your Facebook photos to Fission"&gt;&lt;/a&gt;Just over 13 years of Facebook.&lt;/p&gt;

&lt;p&gt;To download, you'll need to click on the &lt;em&gt;Download&lt;/em&gt; button and enter your Facebook password. You now have a zip file with browse-able HTML files and your photo and video files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting your files online with Fission
&lt;/h2&gt;

&lt;p&gt;You'll need to type a few commands into the command line Terminal on your machine, but everything should just work if you copy-paste.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ipfs-shipyard/ipfs-desktop#install"&gt;Install the IPFS Desktop&lt;/a&gt; and run it. You've got a graphical interface to explore your local IPFS server, which is running in the background.&lt;/p&gt;

&lt;p&gt;On Mac, make sure you've got &lt;a href="https://brew.sh"&gt;homebrew installed&lt;/a&gt;, then open the Terminal app and install the Fission tools using these commands:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew tap fission-suite/fission
brew install fission-cli
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You can find extended &lt;a href="https://guide.fission.codes/installation"&gt;installation instructions in our Fission Guide&lt;/a&gt;, and I expect our friends running Linux will have no problem.&lt;/p&gt;

&lt;p&gt;Now, you're going to register for Fission.&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fission register
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Your username will be your subdomain, e.g. &lt;code&gt;boris.fission.name&lt;/code&gt;. Pick a password and enter an email address. We are adding support for custom domain names, stay tuned!&lt;/p&gt;

&lt;p&gt;Now, you've got a zip file in your Downloads folder from Facebook, called something like "facebook-YOURNAME.zip". Unzip it and you'll have a "facebook-YOURNAME" folder.&lt;/p&gt;

&lt;p&gt;Back to the terminal! This is the last step!&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;fission up&lt;/code&gt; command is going to add all your files to IPFS, through your local IPFS Desktop. Then, Fission's server will get sent the hash that represents the folder, we'll use IPFS to keep a copy of all your files, and update DNS of your subdomain.&lt;/p&gt;

&lt;p&gt;The following command will be correct if you're on a Mac and downloaded to the standard downloads folder. Otherwise, just enter the path to where the unzipped Facebook folder is:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fission up ~/Downloads/facebook-YOURNAME/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I only had about 200MB of files, so this happened pretty quickly. Visit YOURNAME.fission.name in your browser and you should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HmsRT1dG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/11/Screenshot-2019-11-09-at-9.33.57-AM-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HmsRT1dG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/11/Screenshot-2019-11-09-at-9.33.57-AM-1.png" alt="Exporting your Facebook photos to Fission"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your Facebook photos are online and browse-able! You can see mine at &lt;a href="https://boris.fission.name/Photos/facebook/"&gt;boris.fission.name/Photos/facebook&lt;/a&gt; (I put mine in a subfolder, because I already host a bunch of public files on my Fission site).&lt;/p&gt;

&lt;p&gt;Technically the files are being served directly from your computer, when you're online and have IPFS Desktop running. The Fission service is also serving those files, and stays online when you're offline. As a next step, you can explore installing the &lt;a href="https://github.com/ipfs-shipyard/ipfs-companion"&gt;IPFS Companion browser extension&lt;/a&gt; which will access IPFS content natively.&lt;/p&gt;

&lt;p&gt;Join us in our &lt;a href="https://fission.codes/discord"&gt;Discord chat forum&lt;/a&gt; if you have questions or just come say "hi"!&lt;/p&gt;

</description>
      <category>howto</category>
      <category>facebook</category>
      <category>photos</category>
      <category>ipfs</category>
    </item>
    <item>
      <title>Open Source Licensing Evolution at Diffusion 2019</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Mon, 04 Nov 2019 02:07:41 +0000</pubDate>
      <link>https://dev.to/fission/open-source-licensing-evolution-at-diffusion-2019-47nj</link>
      <guid>https://dev.to/fission/open-source-licensing-evolution-at-diffusion-2019-47nj</guid>
      <description>&lt;p&gt;Boris gave this talk at &lt;a href="https://diffusion.events"&gt;Diffusion 2019&lt;/a&gt; in Berlin.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://player.vimeo.com/video/369824474" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The slides and links to licenses and other resources are &lt;a href="https://noti.st/bmann/aOkl8w/open-source-licensing-evolution"&gt;available on Notist »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>diffusion</category>
      <category>opensource</category>
      <category>licensing</category>
    </item>
    <item>
      <title>Commons Based Peer Production</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Thu, 10 Oct 2019 17:14:46 +0000</pubDate>
      <link>https://dev.to/bmann/commons-based-peer-production-2kh9</link>
      <guid>https://dev.to/bmann/commons-based-peer-production-2kh9</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C7aii9dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wbn3olod8u69r2jqaea2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C7aii9dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wbn3olod8u69r2jqaea2.jpg" alt="Commons Based Peer Production - Ted Leung"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was reminded today after speaking to &lt;a href="https://twitter.com/twleung"&gt;Ted Leung @twleung&lt;/a&gt; that he uses the phrase “commons based peer production” rather than “open source”, because:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The problem with the term open source is that everyone means something different when they use it. Some people just mean licensing. Some people think of a particular community’s set of practices. Others think that it means some kind of fuzzy democracy and mob rule.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which of course is exactly what I was trying to capture in my post from last year on &lt;a href="https://blog.bmannconsulting.com/blockchain-open-source-definitions/"&gt;Blockchain &amp;amp; Open Source Definitions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Researching that phrase further brought me to a bunch more posts from Ted that make for good reading to see what parts of them apply to today.&lt;br&gt;
This early post was where we were all still trying to explain open source as it came out of the shadows a bit, in the shallows of Web 2.0 and open APIs: &lt;a href="https://www.sauria.com/py-bin/pyblosxom/pyblosxom.cgi/computers/open_source/1233.html"&gt;Explaining Commons Based Peer Production, er, Open Source (2005)&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is not communism, it’s about preserving the freedom/openness of the web at a basic level, since the software in the commons will be available to anyone, and not controlled by a corporation with a profit motive. It’s about fostering innovation by providing a base that can easily adapted or used as a ground for experimentation. We foster innovation by lowering the threshold so that passionate, talented people can get involved right where they can help the most.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The topic of &lt;a href="https://www.sauria.com/blog/2009/08/27/design-and-commons-based-peer-production/"&gt;Design and Commons Based Peer Production (2009)&lt;/a&gt; is still being wrestled with today:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can we actually do design using the commonly accepted tools of e-mail, version control, wiki’s and bug trackers? The design process relies very heavily on visual communications. The code (including design and architecture of code) process is predominantly a text based process. It is very difficult to do design efficiently in a distributed setting using the existing stable of tools. This is going to be a challenge not just for designers but for many other problem domains that could benefit from commons-based peer production.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In various open source projects, we talk about “Core Devs”, but we do not talk about “Core Designers”. And maybe we should be. Or maybe, in 2018 where we may be able to have a single “backend” of a blockchain, and multiple front-ends, then benevolent design dictators may be able to more appropriately fund themselves.&lt;/p&gt;

&lt;p&gt;Further reading leads me to &lt;a href="http://www.benkler.org/CoasesPenguin.html"&gt;Yochai Benkler’s Coase’s Penguin, or Linux and the Nature of the Firm (2002)&lt;/a&gt;, which is where Ted got the phrase “commons based peer production”.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In this paper I explain that while free software is highly visible, it is in fact only one example of a much broader social-economic phenomenon. I suggest that we are seeing is the broad and deep emergence of a new, third mode of production in the digitally networked environment. I call this mode “commons-based peer-production,” to distinguish it from the property- and contract-based models of firms and markets. Its central characteristic is that groups of individuals successfully collaborate on large-scale projects following a diverse cluster of motivational drives and social signals, rather than either market prices or managerial commands.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Full paper lives on the &lt;a href="http://www.yalelawjournal.org/article/coases-penguin-or-linux-and-the-nature-of-the-firm"&gt;Yale Law Journal&lt;/a&gt; (direct &lt;a href="https://www.yalelawjournal.org/pdf/354_t5aih5i1.pdf"&gt;link to PDF&lt;/a&gt;). Coase is of course something that is talked about a lot these days with DAOs and fully distributed teams.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>coase</category>
    </item>
    <item>
      <title>A new open source deal for Web3</title>
      <dc:creator>Boris Mann</dc:creator>
      <pubDate>Sat, 05 Oct 2019 17:55:56 +0000</pubDate>
      <link>https://dev.to/fission/a-new-open-source-deal-for-web3-3pp9</link>
      <guid>https://dev.to/fission/a-new-open-source-deal-for-web3-3pp9</guid>
      <description>&lt;p&gt;I gave the morning keynote at the &lt;a href="https://etcsummit.com"&gt;ETC Summit&lt;/a&gt; in Vancouver. Thank you to Bob Summerwill and the entire Ethereum Classic community for the opportunity.&lt;/p&gt;

&lt;p&gt;While I do talk about next gen "code" technology a lot, I am increasingly talking about innovation in licensing, principles, and ways of organizing people as crucial "technology".&lt;/p&gt;

&lt;p&gt;In this case, we may have new tools like blockchain to use for incentives and trust, but they themselves are built on open source as a foundation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dRTuk6Vj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/stackgov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dRTuk6Vj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/stackgov.png" alt="A new open source deal for Web3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wrote about the &lt;a href="https://blog.bmannconsulting.com/ethereum-governance/"&gt;Ethereum Governance Stack on my blog explaining these layers&lt;/a&gt;. This pretty much applies to the Ethereum Classic community as well, just with some different companies and people involved.&lt;/p&gt;

&lt;p&gt;Probably my most controversial point of view is that higher level dapp developers should be involved in lower level blockchain infrastructure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Bcxt-xJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/contributing.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Bcxt-xJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/contributing.png" alt="A new open source deal for Web3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're treating the built-on-open-source-contributors global blockchain as something you just pay gas fees to, you don't fully understand the network of code AND people you are involved with.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UHcmHN2i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/makersandtakers.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UHcmHN2i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/makersandtakers.png" alt="A new open source deal for Web3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dri.es/balancing-makers-and-takers-to-scale-and-sustain-open-source"&gt;Dries Buytaert's post on Balancing Makers and Takers&lt;/a&gt; is an excellent read about the nature of open source software systems that include commercial entities. It's a must read for an overview of the current state of things, as well as great links to many resources.&lt;/p&gt;

&lt;p&gt;There is an excellent explanation of Public Goods and Common Goods that provided a real "ah ha!" moment for me about how different resources are shared or fought over when considering open source code / community.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mFA193Qg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/newdeal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mFA193Qg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.fission.codes/2019/10/newdeal.png" alt="A new open source deal for Web3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Getting involved in the evolution of data ethics, licensing, and many other open source adjacent topics is non-optional for blockchain &amp;amp; web3 builders.&lt;/p&gt;

&lt;p&gt;Video of my talk is available at the beginning of the &lt;a href="https://www.youtube.com/watch?v=f4T9o0Ev26k&amp;amp;start=3240"&gt;ETC Summit Day Two Livestream, which you can view on YouTube »&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://noti.st/bmann/jdWV9f/"&gt;view the full presentation on Notist »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>etcsummit</category>
      <category>ethereum</category>
      <category>opensource</category>
      <category>video</category>
    </item>
  </channel>
</rss>
