DEV Community

loading...
Cover image for Potherca's Weekly Github Stars - 2020 Week 24

Potherca's Weekly Github Stars - 2020 Week 24

potherca profile image Ben Peachey ・5 min read

Week 24

Alt Text

This week's Github Stars overview is a couple of days late. I was so busy, it was hard to find the time to sit down and write it all out.

What has been taking up all my time you ask?

Besides preparing my Grant for the Web application, I started on a new project that will keep me busy in the coming months: Solid-Nextcloud.

I am joining some brave folks in an attempt to create an app that turns a Nextcloud server into a fully functional Solid server. I'll be sure to write about it here, so you can keep track of our progress.

And, if that wasn't enough, I am also building a Roblox game in the evening with my son.

Pfew. Let's see what repos that made me stars!

Last week's starred repos

theryangeary/choose

GitHub logo theryangeary / choose

A human-friendly and fast alternative to cut and (sometimes) awk

Choose

This is choose, a human-friendly and fast alternative to cut and (sometimes) awk

choose demo

Features

  • terse field selection syntax similar to Python's list slices
  • negative indexing from end of line
  • optional start/end index
  • zero-indexed
  • reverse ranges
  • slightly faster than cut for sufficiently long inputs, much faster than awk
  • regular expression field separators using Rust's regex syntax

Rationale

The AWK programming language is designed for text processing and is extremely capable in this endeavor. However, the awk command is not ideal for rapid shell use, with its requisite quoting of a line wrapped in curly braces, even for the simplest of programs:

awk '{print $1}'

Likewise, cut is far from ideal for rapid shell use, because of its confusing syntax. Field separators and ranges are just plain difficult to get right on the first try.

It is for these reasons that I present to you choose. It…

This is the only non-themed discovery this week.

If you spend a lot of time on the CLI, you've probably encountered situations where you want to grab some fields from a set of data. The go-to tools are
usually awk, cut, or grep. Although powerful, they require a lot of knowledge and have some weird quirks and shortcomings.

Written in Rust, choose offers an easier and more intuitive alternative.

To give you an example, let's say we have a data.txt that contains lines of data separated by an :. We want the first, third, and last item from a line. To make it more excited, the amount of fields is flexible.

How would that look with choose?

choose -f ':' 0 3 -1

Now compare that with cut:

cat ./data.txt | cut -d ':' -f "1,3,$(cat ./data.txt | tr -cd ':' | wc -c)-"

Or awk:

awk -F ':'  '{print $1 $3 $NF}'  ./data.txt

And you'll understand why this repo got a star!

Awesome Lists

As there wasn't one, I created an Awesome List for Solid. There were some tools I found useful along the way.

GitHub logo dar5hak / generator-awesome-list

😎 Yeoman generator for GitHub awesome lists

generator-awesome-list

Yeoman generator for GitHub awesome lists 😎

build npm version license

Usage

npm install -g yo generator-awesome-list
yo awesome-list

What's included?

This stuff is heavily stolen from Sindre Sorhus's lists.

  • readme.md with a CC0 license
  • code-of-conduct.md based on Contributor Covenant
  • contributing.md skeleton
  • a simple .gitattributes to make contributing easier

Screenshot of generator running

License

Apache-2.0 Β© Darshak Parikh

The Yeoman generator is really helpful to get started creating an Awesome List.

It is just a simple thing, but it saves you from having to research what rules an Awesome List should adhere to. It generates a readme.md, license, code-of-conduct.md, and skeleton contributing.md file.

Everything you need to get up and running!

GitHub logo sindresorhus / awesome-lint

Linter for Awesome lists


awesome-lint


Linter for Awesome lists

Build Status

Intended to make it easier to create and maintain Awesome lists.

Includes a bunch of general Markdown rules and some Awesome specific rules.

CLI

Install

$ npm install --global awesome-lint

Usage

❯ awesome-lint
  readme.md:1:1
  βœ–    1:1  Missing Awesome badge after the main heading      awesome-badge
  βœ–   12:1  Marker style should be -                          unordered-list-marker-style
  βœ–  199:3  Remove trailing slash (https://sindresorhus.com)  trailing-slash
  3 errors

Special comments

You can enable, disable, and ignore rules using special comments. This is based on remark-message-control.

By default, all rules are turned on. For example, 4 errors (2 of no-dead-urls and 2 of awesome-list-item) will be generated for following code snippets.

- [foo](https://foo.com) - an invalid description.
- [foo](https://foo.com) - invalid description.
disable

The disable keyword turns off all messages of the given rule identifiers. If no identifiers are specified, all messages are turned off.

Don't leave spaces after the last…

If you create an Awesome List, you want it to be Awesome. The Linter helps do just that. It checks for all sorts of things and tells you what you need to fix.

As it is written in NodeJS, it can be added to your package.json and be run using npm test:

    {
      "devDependencies": {
        "awesome-lint": "^0.13.0"
      },
      "scripts": {
        "test": "awesome-lint"
      }
    }

This also makes it trivial to add a GitHub action for it, for any future merge-requests your awesome list is bound to get 😏

GitHub logo sdras / awesome-actions

A curated list of awesome actions to use on GitHub



Awesome Actions Awesome GitHub Actions status | sdras/awesome-actions

A curated list of awesome things related to GitHub Actions.

Actions are triggered by GitHub platform events directly in a repo and run on-demand workflows either on Linux, Windows or macOS virtual machines or inside a container in response. With GitHub Actions you can automate your workflow from idea to production.

Contents

Official Resources

Workflow Examples

Official Actions

Workflow Tool Actions

Tool actions for your workflow.

Looking into GitHub actions for my own Awesome List, I came across an Awesome List for GitHub action. So, yeah, I starred it further research.

NextCloud

GitHub logo nextcloud / server

☁️ Nextcloud server, a safe home for all your data

Nextcloud Server ☁

Scrutinizer Code Quality codecov CII Best Practices

A safe home for all your data.

Why is this so awesome? 🀩

  • πŸ“ Access your Data You can store your files, contacts, calendars and more on a server of your choosing.
  • πŸ”„ Sync your Data You keep your files, contacts, calendars and more synchronized amongst your devices.
  • πŸ™Œ Share your Data …by giving others access to the stuff you want them to see or to collaborate with.
  • πŸš€ Expandable with hundreds of Apps ...like Calendar, Contacts, Mail, Video Chat and all those you can discover in our App Store
  • πŸ”’ Security with our encryption mechanisms, HackerOne bounty program and two-factor authentication.

You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your organization? Learn about all our Features.

Get your Nextcloud 🚚

In case you are not familiar with it, Nextcloud is a self-hosted productivity platform. Think of it as a simpler version of Dropbox, Google Calendar, Microsoft Office 365, and Trello all rolled into one.

If that isn't something worth starring, I don't know what is!

GitHub logo andreasjacobsen93 / awesome-nextcloud

List of awesome tools for NextCloud and OwnCloud

awesome-nextcloud

List of awesome tools for NextCloud and OwnCloud

Apps

Unofficial

Official

  • activity - Activity app for NC
  • bookmarks - Bookmarks app for NC
  • calendar - Calendar app for NC
  • circles - Create groups in NC
  • contacts - Contacts app for NC
  • deck - Kanban-style project & personal management tool for NC, similar to…

As Nextcloud is awesome there is an Awesome List for it, of course.

A good place to get some ideas about how the already awesome Nextcloud can be made even more so!

GitHub logo nextcloud / docker

β›΄ Docker image of Nextcloud

What is Nextcloud?

Build Status Travis amd64 build status badge arm32v5 build status badge arm32v6 build status badge arm32v7 build status badge arm64v8 build status badge i386 build status badge mips64le build status badge ppc64le build status badge s390x build status badge

A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.

logo

How to use this image

This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from.

The apache tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the latest tag and version tags that are not further specified.

The second option is a fpm container. It is based on the php-fpm image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container.

Try in PWD

Using the apache image

The apache image…

Developing something for Nexcloud, I will obviously need to have a running Nextcloud server. So, besides starring the main NextCloud repo, I also gave a star to this official Docker images repo.

GitHub logo nextcloud / coding-standard

Nextcloud coding standards for php cs fixer

Nextcloud Coding Standard

Nextcloud coding standards for the php cs fixer.

Installation

Add the package to your dev dependencies

composer require --dev nextcloud/coding-standard

and create a .php_cs.dist like

<?php
declare(strict_types=1)
require_once './vendor/autoload.php'
use Nextcloud\CodingStandard\Config;

$config = new Config();
$config
    ->getFinder()
    ->ignoreVCSIgnored(true)
    ->notPath('build')
    ->notPath('l10n')
    ->notPath('src')
    ->notPath('vendor')
    ->in(__DIR__);
return $config;

To run the fixer you first have to install it. Then you can run php-cs fix to apply all automated fixes.

For convenience you may add it to the scripts section of your composer.json:

{
    "scripts": {
        "cs:check": "php-cs-fixer fix --dry-run --diff",
        "cs:fix": "php-cs-fixer fix"
    }
}

…

Any code I'll be creating for Nextcloud will have to adhere to the Nextcloud coding standard. This repo helps do that.

When in Rome...

Solid

GitHub logo solid / solid

Solid - Re-decentralizing the web (project directory)

Solid

Solid Logo

Re-decentralizing the web

Read more about Solid information.

Solid (derived from "social linked data") is a proposed set of conventions and tools for building decentralized Web applications based on Linked Data principles. Solid is modular and extensible. It relies as much as possible on existing W3C standards and protocols.

Solid is made possible by a community of contributors.

Table of Contents

  1. About Solid
  2. Standards Used
  3. Project directory
  4. Contributing to Solid

About Solid

Specifically, Solid is:

  • A tech stack -- a set of complementary standards and data formats/vocabularies that together provide capabilities that are currently available only through centralized social media services (think Facebook/Twitter/LinkedIn/many others), such as identity, authentication and login, authorization and permission lists contact management, messaging and notifications, feed aggregation and subscription, comments and discussions, and more.
  • A Specifications document that describes…

Solid is an exciting new idea (and set of specifications to go along with it). It is part of the distributed web movement, aimed at data portability and identity/authentication.

Check out https://solidproject.org for all the details.

This repo is where the magic happens, so starred it is!

GitHub logo joinsolid / joinsolid.org

website for joinsolid.org




Although no longer maintained, I liked the idea of https://joinsolid.org.
From a marketing perspective, having an easily identifiable domain with a one-click join button is rather appealing, so I starred it for future reference.

GitHub logo linkeddata / ldphp

Linked Data server for PHP

ldphp

About

Linked Data Store for PHP

Installation

  • Check the apache conf files and change paths to your own system

  • Requires librdf for php ( sudo apt-get install php5-librdf )

  • Directories should automatically be generated in /data/ you may wish to check permissions

  • To enable WebID authentication, install mod_authn_webid on your Apache2 server

License

MIT




Solid works with linked data. Nextcloud is written in PHP. As we are building an app to turn Nextcloud into a Solid server, any Linked Data server is of interest to me. Even if the last commit is from 2018

GitHub logo michielbdejong / solid-app-kit

A server that includes both a pod server and an app

solid-app-kit

A server that includes both a pod server and an app

See https://github.com/michielbdejong/solid-app-kit/blob/master/src/cli.ts for an example.

On localhost

Previously there were several ways to test https-based systems on localhost but in the last few years, browsers have tightened that up a lot, meaning you want to steer clear of using 'localhost' or '127.0.0.1' as the hostname. You can use a domain name which you point to 127.0.0.1 in your /etc/hosts. I personally like to use https://lolcathost.de/ which is a domain name that exists but is pointed to 127.0.0.1 in DNS. Long story short, you'll need to generate a CA root certificate, and import it into your browser, then sign a cert for the domain name you wil be testing with See https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate for more info on that. Once you've done that, you can:

npm install
npm run build
NODE_EXTRA_CA_CERTS=myCA.pem DEBUG=* node lib/cli public/

and visit https://lolcathost.de/ (or whichever…

Solid servers can also run apps. To give you an idea of what that looks like, solid-app-kit contains both a server and an app.

GitHub logo solidpayorg / docs

documentation for solidpay

description
Version 0.1 draft - work in progress

Solid Pay

Solid Pay!

This guide is an early draft and should be considered a work in progress.

Solid Pay is about making payments between two people on the Web. It builds heavily on the Solid framework and the webcredits specification.

Instantaneous, zero cost transactions, that scale to millions per second

Solid Pay is not a crypto currency it is a higher layer technology that lives above existing currencies. However, Solid Pay, itself, is currency agnostic and any currency is usable with it.

Being a higher layer protocol it is capable of thousands or even millions of transactions per second, instantaneously and at zero cost. The aim is that this will facilitate new use cases and business models.

Why not use a block chain?

While block chains are a great technology, solid pay builds on top of existing networks. For example, the bitcoin block…

Doing some research for Solid, I came across SolidPay.

Solid Pay is about making payments between two people on the Web. It builds heavily on the Solid framework and the webcredits specification.

As I am also working on Web Monetization, I found this quite interesting. It is mostly an idea at the moment, but I'll definitely be keeping tabs on the implementation! ⭐

GitHub logo pdsinterop / awesome-solid

⬣ Awesome list of Solid (social inked data) tools, libraries, resources, and shiny things.

Awesome Solid Awesome

⬣ Awesome list of Solid (social linked data) tools, libraries, resources, and shiny things.

Solid (Social Linked Data) is a web decentralization project led by Tim Berners-Lee, developed collaboratively at the Massachusetts Institute of Technology (MIT).

Contents

Applications

Apps build on top of/using Solid

On the Solid Project there is an overview of more Solid Apps.

Articles and Blog Posts

Things written about Solid.

Community

Places to talk to others, ask for help, and generally socialize.

https://pdsinterop.org/awesome-solid/

If you haven't noticed yet, Solid is awesome! But, as it turns out, there wasn't an Awesome List for it yet... so I created one!

Naturally, I also starred it. πŸ€—

Roblox

What can I say? I love awesome lists and this curated list of ROBLOX resources, plugins, and frameworks looks good enough to star!.

GitHub logo JodeRBX / awesome-roblox

A curated list of awesome libraries, plugins, and resources for Roblox game development.

Awesome Roblox

A curated list of awesome libraries, plugins, and resources for Roblox scripting and game development.

(TODO: Table of Contents)


Scripts

Libraries and Frameworks

##Plugins

Building tools


A curated list of awesome libraries, plugins, and resources for Roblox game development.

GitHub logo RobloxAPI / ref

Roblox Lua API Reference Pages

Although the official API documentation is nice, it is also rather verbose.

For beginners that is good but for more seasoned developers it can be rather distracting. The Roblox Lua API Reference Pages offer a non-thrills, quick-access overview of the Roblox Lua API.

Visit it at https://robloxapi.github.io/ref/

Monetization

GitHub logo WICG / webmonetization

Proposed Web Monetization standard

Web Monetization

This repo is the code behind webmonetization.org

It is the home of the proposed Web Monetization standard currently incubating at the WICG.

You can view the explainer, or read the proposed spec.

Contribute

This website was created with Docusaurus and contributions are welcome as pull requests.

Local Development

  1. Make sure all the dependencies for the website are installed:
# Install dependencies
$ cd website
$ yarn
  1. Run your dev server:
# Start the site
$ yarn start

Directory Structure

Your project file structure should look something like this

webmonetization.org
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ docs
β”‚Β Β  β”œβ”€β”€ api.md
β”‚Β Β  β”œβ”€β”€ assets
β”‚Β Β  β”‚Β Β  └── flow.svg
β”‚Β Β  β”œβ”€β”€ explainer.md
β”‚Β Β  β”œβ”€β”€ getting-started.md
β”‚Β Β  β”œβ”€β”€ receiving.md
β”‚Β Β  β”œβ”€β”€ sending.md
β”‚Β Β  └── specification.md
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
└── website
    β”œβ”€β”€ core
    β”‚Β Β  └── Footer.js
    β”œβ”€β”€ i18n
    β”‚Β Β  └── en.json
    β”œβ”€β”€ package.json
    β”œβ”€β”€ pages
    β”‚Β Β  └── en
    β”‚Β Β      β”œβ”€β”€
…

If you haven't yet, check out https://webmonetization.org That's okay. I'll wait...

Are you blown away? You should be! I expect big things from this.

This repo contains the proposed standard that underpins Web Monetization.

It may be a bit dry to read but it will change the internet!

GitHub logo interledgerjs / minute

Using Interledger, support content creators

Minute

Support content creators with ILP

Quick Start

Before you use this module, install and run Moneyd Make sure you start moneyd with the --unsafe-allow-extensions flag, which will permit this chrome extension to access the local port.

git clone https://github.com/sharafian/minute.git
cd minute
npm install
npm run build

Now go to chrome://extensions, select "Load unpacked extension", and nagivate to the folder where you cloned this repository.

Enable your Site

Add the following tag to your site's body:

<script>
  if (window.monetize) {
    monetize({
      receiver: /* Put your SPSP payment pointer here */
    }).then(() => {
      // Make sure to thank the user!
    })
  }
</script>

Now any user who navigates to your site and has Minute (or another extension that enables Web Monetization) enabled will stream payments…

If you do anything with Web Monetization, you'll need a Web Monetization Provider. Currently, the only one out there is Coil.

With this library, you don't need Coil as you can connect with Wallets directly, using the Internet Ledger Protocol .

If you want to understand a bit more about how all of this work, read the code.

It'll be worth your investment!

Closing notes

As you can see, I've been keeping busy. This week's stars reflect that.

No doubt, the coming weeks will bring you more Nextcloud, Solid, Roblox, and Web Monetisation repos.

What else will be on the list? Tune in next week to find out!

potherca image

Discussion (0)

Forem Open with the Forem app