DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

Who's looking for open source contributors? (August 20 edition)

Please shamelessly promote your project. Everyone who posted in previous weeks is welcome back this week, as always. πŸ˜„

Happy coding!

Top comments (54)

Collapse
 
stargator profile image
Stargator

Bootstrap for the Dart language is looking not only for contributors, but also new maintainers!

github.com/richerlariviere/bootstr...

The current state of the project takes the JavaScript version of bootstrap and uses a transformer to allow the API to be used in a Dart context.

Tagging my fellow Dart fanatics/developers
@jvarness @graphicbeacon @stevenroose

Collapse
 
ben profile image
Ben Halpern

This looks very interesting.

Collapse
 
stevenroose profile image
Steven Roose

Don't have time for my Dart projects anymore. I'm desperately trying to keep Pointy Castle maintained with the Dart v2 changes..

Collapse
 
rajagopal2000 profile image
Rajagopal2000

Hey Steve!
I am currently working on building a platform where people can post their projects and interested developers can take up those projects. Please sign up if you are interested.
Website: hacklyst.com

Collapse
 
stargator profile image
Stargator

No problem. Let anyone know you think might be interested

Collapse
 
jamesdevto profile image
James • Edited

Bitcoin Prime (bitcoinprime.org/) and Primecoin are looking for contributors. Even if CryptoCurrency and BlockChain is not your thing, If you have some Dev skills but not BlockChain, and you are looking to get into it, they are offering some tutoring in exchange for contributions.

Primecoin is a CryptoCurrency that uses prime number searching as its proof of work, neat huh!?

Bitcoin Prime plans to extend this existing CryptoCurrency into a Platform with some cutting edge features, read the vision statement here to find out more: medium.com/btcprime/bitcoin-prime-...

And if you fancy it, join the telegram group here for Devs and say Hello!

t.me/joinchat/FTHjjA5KkVc4otYbpvESCA

Github: github.com/btcprime
Trello: trello.com/b/tDhSxZvG/primecoin-bi...

Trello has our current task backlog, and most code is in GitHub. We are currently working with c++, Python and NodeJS/React.

Thanks for Reading and see you in Telegram!

Collapse
 
bip3r profile image
Or Orsatti

Uhmm, your Telegram link is invalid. Can you resend it?

Collapse
 
rajagopal2000 profile image
Rajagopal2000

Hey Orsatti!
I am currently working on building a platform where people can post their projects and interested developers can take up those projects. Please sign up if you are interested.
Website: hacklyst.com

Collapse
 
antikytheraton profile image
antikytheraton

Hello bro, I want to contribute to the source code.

Collapse
 
rajagopal2000 profile image
Rajagopal2000

Hey!
I am currently working on building a platform called Hacklyst where people can post their projects and interested developers can take up those projects. Please sign up if you are interested.
Website: hacklyst.com

Collapse
 
bip3r profile image
Or Orsatti

Hello there, I would like to jump aboard!

Collapse
 
spalladino profile image
Santiago Palladino

OpenZeppelin is the most popular open-source shared smart contracts library for Ethereum development. We are always on the lookout for contributions from Solidity devs, and some javascript knowledge is required for writing tests.

We have several good-first-issues to get started!

Collapse
 
brianonn profile image
Brian Onn

I would love to help out on OpenZeppelin development. I'll look over the open issues.

Collapse
 
rajagopal2000 profile image
Rajagopal2000

Hey Brian!
I am currently working on building a platform where people can post their projects and interested developers can take up those projects. Please sign up if you are interested.
Website: hacklyst.com

Collapse
 
tmcsquared profile image
TMcSquared • Edited

QubΒ³d Engine Group is a brand new voxel-based engine and game project, aiming to make a mature and extensible Minecraft-like game, backed by a vibrant and friendly community.

Anyone with interest in or experience with the following technologies are encouraged to join the project. They're just starting up, so there's plenty of room to find your niche.

Current Needs:

Are you interested in helping with any of the following? We're working on building small teams for each sector.

  • Cross-platform C++ compilation w/ Clang and CMake
  • Basic application/library structure work (C++)
  • 3D block rendering (C++/OpenGL)
  • Terrain generation (C++)
  • Entity-Component system (C++)
  • Voxel storage (C++)
  • Voxel manipulation (C++)
  • UI design (C++)
  • GUI library creation (C++)
  • Pixel art creation
  • Networking (C++)
  • Lua API (C++/Lua)
  • Mod/Server Marketplace prototype (Python/Django)
  • User authentication servers
  • Implementing Agile/Scrum

Team Dynamic:

We are a growing, distributed team of volunteers at varying experience levels, helping and learning from one another. The teams are led by a group of dedicated volunteer leaders, who work together to build a healthy, open, collaborative environment.

Currently, we meet once a week for a DevTalk on Discord, to discuss current project goals and to solve design and logistical problems. Most of us are available at Discord and will respond within a day typically.


Tech Stack:

  • C++ (especially C++17)
  • Clang compiler (GCC secondary)
  • OpenGL
  • SDL2
  • Lua
  • Sphinx (documentation)
  • CMake
  • Python/Django (marketplace)
  • Grav (static website)
  • Git (VCS)
  • Phabricator (development platform)

Jump In!

The easiest way to get started is to join the Discord room. The link is on the website: qub3d.tk

Collapse
 
adhocore profile image
Jitendra • Edited

i need someone to help with phint - a PHP scaffolding &/or code generating tool. we shall be working together. 😁
edit: after a good PR or two, i will be happy to mention the credit in visible part of readme and invite as project collaborator πŸ‘

Collapse
 
ogfris profile image
Fris

i'd love to help you on this, can you add me and message me on discord: Fris#5390 or on twitter: @GangMemberFris.

Collapse
 
rajagopal2000 profile image
Rajagopal2000

Hey Fris!
I am currently working on building a platform where people can post their projects and interested developers can take up those projects. Please sign up if you are interested.
Website: hacklyst.com

Collapse
 
adhocore profile image
Jitendra

thanks for coming forward 😊 if you could follow back we can have quick chat here in devto

Thread Thread
 
ogfris profile image
Fris

sure thing !

Collapse
 
lsm profile image
Marc Liu • Edited

Looking for users, testers and contributors.

Project link: github.com/lsm/alfa

Alfa

Effortless React State Management.

Alfa - Effortless React State Management

Why Alfa?

React is an excellent library for creating interactive and stateful views. However, things become unclear when you need to share & change data across components.

Alfa is an intuitive and straightforward way to manage React state. It completely decouples the complex relationships between components and let you focus on making components that work anywhere.

Its simple design allows you to adopt it in a matter of minutes while at the same time provides your essential tools to keep your application code easy to change and understand. Here is a list of things why it is the perfect fit for your next React app:

  • Easy - Only 4 functions/APIs to learn.
  • Fast - Alfa wraps your components with a thin layer. It introduces a little or no performance impacts.
  • Small - ~ 190LOC & 3KB minified + gzipped.
  • Async - Alfa supports asynchronous operation natively without additional packages.
  • Explicit - Alfa lets you know what a component requires (input) and what it changes (output).
  • Transparent - You can use and unit test your components as it is without Alfa. Users of your lib/component could but don't have to use Alfa at all.
  • React Native - Support React Native out of the box.
  • Server Render - Support isomorphic app out of the box.
  • Production Ready - 100% test coverage and being used in productions.

Links

Quick Guide

Installation

Use npm to add it to your package.json.

npm install --save alfa

Alternatively, use yarn if you prefer:

yarn add alfa

Getting Data for Components

Alfa converts your regular React component into a dependency injected component by injecting application data from a key/value store. Let Alfa handle the data if you use it in different components:

// hello.js
import React from 'react'
import { subscribe } from 'alfa'

// A stateless functional component.
function HelloMessage(props) {
  // Data is injected as the property of props.
  return <div>Hello ${props.name}!</div>
}

export default subscribe(HelloMessage, ['name'])

subscribe makes a new component which gets the variable name and feeds it into the HelloMessage as props.name on (re)rendering.

Now let's see how to use the above component in our app:

// index.js
import React from 'react'
import { render } from 'react-dom'
import { provide, subscribe } from 'alfa'

import HelloMessage from './hello.js'

// Define the root app which renders HelloMessage as a child.
const App = () => (
  <div>
    <HelloMessage />
  </div>
)

// Create the Root component by wrapping the App component with initial data
// using `provide(Component, data)`.
const Root = provide(App, { name: 'Motoko' })

// Render it!
render(<Root />, document.getElementById('root'))

You don't need to pass the variable name to HelloMessage as alfa gets it from the store and pass it to HelloMessage component automatically. It allows us to quickly move the component around without worrying about how to get the data it depends on.

Changing Data

The simplest way to modify the data of the Alfa store is to inject the built-in set function to the component.

// change.js
import { subscribe } from 'alfa'
import React, { Component } from 'react'

// A stateful class component.
class ChangeName extends Component {
  handleChange = event => {
    // Calling `set('mykey', 'my value')` will change the data `mykey`
    // in store to value `my value`.
    this.props.set('name', event.target.value)
  }

  handleSubmit = event => {
    event.preventDefault()
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input
            type="text"
            value={this.props.name}
            onChange={this.handleChange}
          />
        </label>
      </form>
    )
  }
}

export default subscribe(ChangeName, ['set', 'name'], ['name'])

As mentioned earlier Alfa makes things explicit. So we need to define the output (the 3rd argument when calling function subscribe) of the component explicitly if we want to change a value of a key in the data store. Otherwise, Alfa complains we are trying to use set without defining the correct output.

Now add the ChangeName component to App and your index.js ends up like this:

// index.js
import React from 'react'
import { render } from 'react-dom'
import { Provider, subscribe } from 'alfa'

import HelloMessage from './hello.js'

const App = () => (
  <div>
    <HelloMessage />
    <ChangeName />
  </div>
)

// Alternatively, you can use Provider - the declarative interface of the
// provide function.
render(
  <Provider data={{ name: 'Motoko' }}>
    <App />
  </Provider>,
  document.getElementById('root')
)

Now each time you make a change in the input box React will rerender both HellowMessage and ChangeName components to reflect the change.

You can find the finished version of the above example in the folder examples/hello.

Please check documentation for API and advanced usages.

License

MIT

Collapse
 
agusnavce profile image
Agustin Navcevich

How can I contribute? Are there issues to start?

Collapse
 
lsm profile image
Marc Liu

That's an excellent question. You can first try Alfa for your side projects and see if you have any problems when using it. Please feel free to create any issues on GitHub - suggestions, bugs or everything is welcomed.

Collapse
 
rajagopal2000 profile image
Rajagopal2000

Hey Agustin!
I am currently working on building a platform where people can post their projects and interested developers can take up those projects. Please sign up if you are interested.
Website: hacklyst.com

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

MousePaw Media is looking for C++ and Python developers who are interested in working on unusual, cutting-edge libraries, tools, and games.

Current Projects

Here's a look at a few of our current projects:

PawLIB 1.1: High-performance, memory efficient containers and utilities for the C++ language. We're expanding our testing library (Goldilocks), improving and expanding our data structures (Flex), making message output a delight again (IOChannel), and building a tool for streamlining the design of CLI interfaces (Blueshell).

Right now, we're working on iterators for the Flex data structures, adding a new high-performance, doubly-linked list implementation, and building our collection of sorting algorithms.

Omission is a game written in Python 3. It currently uses the Kivy GUI toolkit, but needs to be re-implemented in Qt5 (PySide2).

DiamondQuest is a brand new Python 3 game, which will use the Qt5 (PySide2) GUI toolkit. We're especially needing someone with pixel-art skills to create the retro-style graphics.

Ratscript: A brand new language which seeks to combine an innovative, obvious syntax with a powerful combination of paradigms. Ratscript is being designed specifically for the next generation of game development. Takes cues from Python and Rust, among others.

Anari: A vector-based animation engine implemented in C++, allowing for memory-efficient interactive animations to be deployed onto old and new hardware alike.

Infiltrator is an upcoming Python 3 party game. We have an earlier version implemented in C++, but we want to recreate it in Python3 and Qt5 (PySide2).

Our Stack

  • C++14 (C++17 proposed)
  • Compilers: Clang and GCC
  • CMake
  • Python 3
  • Qt 5/PySide 2
  • CPGF
  • Eigen
  • Git
  • Phabricator

Getting Involved

See something you like? Jump right in! We have a robust development platform, centered around a carefully-honed Phabricator instance.

For more information, visit mousepawmedia.com/opensource or contact developers (at) mousepawmedia (dot) com. You can also ask questions and join the discussion us on the Lobby chatroom on our Phabricator.

Collapse
 
josephmancuso profile image
Joseph Mancuso

Masonite is looking for new community members. We're a rapidly growing Python web framework. Here is some recent feedback:

"I've never written any laravel (PHP makes me shudder), but I've been doing ruby and rails for about 5 years now, and this is the first python framework that's made any sense from that perspective."

"I checked out Masonite yesterday, and I ported my Flask app over in under 30 min. It took me 6 hours of figuring out how to get my flask set up and refactor it to get to a production level."

Collapse
 
ghaberek profile image
Gregory Haberek

OpenEuphoria

Euphoria is an interpreted language with a C backend and Euphoria frontend (so it's mostly self-hosted). The Euphoria interpreter is very fast and uses reference-counting dynamic memory management. Euphoria uses only two types: atom for storing numbers and sequence for storing dynamic arrays and strings.

Homepage: openeuphoria.org/
Project: github.com/OpenEuphoria/Euphoria

We could really use a few people with any of the following skills:

  • C development in general
  • Compiler and interpreter design
  • Cross-platform build systems (make, autotools, etc.)
  • Linux software packaging (dpkg/rpm, private repos, etc.)
  • MacOS development in general
  • Learn Euphoria and use it for your projects!

Anyone who's interested, please check us out and join the discussion on our forum. If you sign up, please send an email to openeuphoria@gmail.com with the subject "all_admins email verification" so we can activate your account. (Sorry for that, but we contended with some bad actors recently so this policy is in effect for a while.)

Collapse
 
lexplt profile image
Alexandre Plt • Edited

Hi !

I have started working on a programming language named Kafe a while ago, and I am searching for someone (or sometwo, somethree... you get the joke :p ) to help me in this project.

What is it ? a scripting language for video games.

Basically, a programmer will have to follow those steps to use Kafe code in his game/project :

  • code something in Kafe
  • compile it using kafec (the kafe code compiler)
  • add the generated bytecode file to his project
  • #include<kafe/vm/VM.hpp>, then create his/her Kafe VM, feed it with the filename of the bytecode file, and then execute it !

Syntax examples and goals

cls Character
    dyn name
    dyn life
    dyn weapon

    # comma in argument list is optional
    fun __init__(self name life)
        self.name = name
        self.life = life
        ret

    fun __add__(self other)
        self.life += other.life
        other.life = 0
        ret self.life

end

cst default_life = 110

dyn harry_potter = new Character("Harry Potter" default_life)
dyn voldemort = new Character("Voldemort" default_life)

# let's say this is to attack voldemort
# some kind of syntaxic sugar, somehow
harry_potter + voldemort

My ultimate (unachievable) goal is to replace Lua, because it lacks proper classes and arrays (imo).

A most affordable goal would be to be able to use Kafe with a minimal performances loss in video games.

Can we compile Kafe code without using kafec ?

No, we can't. The goal is to provide only the bytecode files because they are smaller, and it's a huge performance improvement for your game/project, since it's already compiled and you don't have to wait for it to be compiled before executing Kafe code.

How is the project structured ?

It is split in 7 or 8 projects :

C++:

  • the Kafe VM
  • the Kafe compiler using ANTLR
  • the plug-ins system (I will explain how it works below)
  • the Kafe (assembler) disassembler, to be able to read bytecode more easily. It will probably be helpful to compile "text bytecode" to bytecode (as nasm does for example)
  • cup, the package manager, to download plugins

HTML/CSS/JS:

  • the website of the project, hosting the documentation
  • the KEP (Kafe Enhancement Proposals, yes my imagination is very limited), similar to the PEP of Python part of the website : kafe-lang.github.io/kep.html

Python:

  • the tests suite (linked to cmake) for the VM, can easily be adapted for the compiler

The plug-ins

A plug-in must follow a specific pattern to be used by the Kafe VM, because it will compiled into a .dll/.so, and loaded at runtime by the VM. It will only have a 3 functions :

  • KafeVMversionRequired, to know the version of the VM used to create the plugin
  • PluginVersion, useful for debugging, and version tracking in the package manager cup
  • registerFunctionsAndObjects, to load C++ functions and Kafe classes definitions into the VM, to use them in Kafe code

Current progress

  • the website is done, just a bit empty
  • all the documentations are set up, I just need to complete them
  • I fixed a template for the KEP (to be able to convert them from Markdown to HTML for the website)
  • the Kafe Compiler is using ANTLR, so I just need a grammar (already have one, but I need to rewrite it), and a visitor (not done). The parser and lexer are done as well as the CLI
  • the Kafe VM is done by 90%. I still a bunch of things to do with the classes and plugins but I described everything in a book (I was on holydays the past 2 weeks)
  • I have templates for cup, Kafe ASM (the (assembler) disassembler), and the plugin-system (I already have something to load .dll/.so/.dynlib but I did not push it yet)
  • I also started a Kafe CLI, to be able to rule them all use cup/kafec/Kafe VM/Kafe ASM with only one program

You can join the project on Discord and/or follow it on GitHub !