markdown guide
 

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 !


Also, I started working on a 3D rendering lib using OpenGL : Zavtrak.

I want to create a library to do 3D rendering easily using OpenGL (currently 3.3.x) with a nearly zero cost abstraction.

Currently, I have utilities to play with the keyboard, the mouse, create a window and handle it more easily (using GLFW), play with VAO, VBO, EBO, vertices, and shaders.

The stack :

  • C++ 17
  • OpenGL 3.3
  • GLFW
  • glad

If want to have a look at it, the GitLab is here : gitlab.com/SuperFola/Zavtrak, and if you want to talk about, you can PM here (or on my twitter, or even on my discord : SuperFola#4234)

Have a good day guys !

 
 

Hi ! Thanks for your reply, as for the websites, one would be needed for Zavtrak but none for Kafe, since I am using a template (and writing documentation to markdown converted to html later).

We can talk about that in PM ?

seems like I miss your reply, sorry about that I've been busy of my work. You can contact me on discord mandaputtra#8332

 

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

 

This looks like a nice project, with lots of potential!
I will keep an eye on it for sure.

 

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.

 

Hi devs. Do you have your small utilities, scripts, cli? Don't just use scripts, REUSE them.

Scripts kept in our github repos or local file systems are forgetable and eventually stale unless we share them with community. SparrowHub - Linux scripts repository is a good spot to distribute your sctipts. We support scripts written on one 4 languages - Perl, Bash, Pyhton and Ruby. Dependency managers, versioning, markdown documentation and configuration are out of the box. A few dozens scripts are already here, come and add your creation.

 

Everyone who posted in previous weeks is welcome back this week, as always.

OK! So, as usual:

  • My static blog generator: blogcpp.org (Mercurial repository). I have updated it yesterday, a new release is scheduled for September or so, depending on how much I want to work on it. I would love to have a search functionality in it...
  • My bookmarks synchronization service: ymarks.org (Mercurial repositories). Currently, it has 43 users on Chrome and 67 on Firefox (yes, the one review was a bug... that happens when nobody helps me). This is your chance to participate in an upcoming cross-browser project. If you feel like it: I planned an Android client months ago as well, but I won't manage to do that in 2018 anymore.
  • My Twitter client: ZenTweet.net (Mercurial repository). If you have ever wondered how Twitter's API works, this is for you. You might see that the repository and the code are German-only ... this could be an easy first task? ;-)
 

Might I ask why you use Mecurial for your projects?

 

Mercurial is common enough (used by Mozilla and similar projects) to be an interesting VCS for projects which could need contributors (I have others on Darcs and SVN), it has a good, mature and very alive ecosystem (unlike Bazaar), it has a lot of useful plug-ins (e.g. for history rewriting) and not a totally broken branching/merging mechanism (like Git).

Edit: at least I have managed to fsck up a Git repository twice while merging two incompatible branches. Never happened with Mercurial.

 

Hello!

I made a tiny Python library called perfect_game_player that helps predict the best move you can play in games. I made use of minimax and its variants. You can make your own AI by implementing the Node class and calling the minimax function.
Currently, I have tried it on Tic tac toe and connect 4.

I just made it because I loved the idea of a game playing AI! :)
There are a ton of things left to do. Initially I wanted to make a graphical client XO game and visual minimax stepper but spent a lot of time getting the games to run.

Here's the project, would love it if you could take a look! Contributions and even feedback is welcome.

Cheers!

 

Masonite is an awesome community of developers so far. We are all building the next great Python web framework and looking for some awesome players to join the community!

You can join the Slack channel to learn more if you like.

 

The Elixium Network is an open source blockchain looking for contributors!

Elixium is an anonymous, fast, and javascript contract scriptable blockchain written in Elixir, and has the potential to process up to 20,000 transactions per second (roughly the speed of the Visa network, at 24,000 transactions per second).

We're currently building out a base layer for the blockchain, so this is an opportunity to get in early. Come join the team, any contribution (especially documentation) helps!

Links:

Telegram Group
Github
Twitter
Reddit
Facebook
Website

 
 

Hop in the Telegram group and let's figure something out!

 

zuixjs / zuix

zUIx is a JavaScript library for creating component-based websites and web apps.

zUIx logo

Build Status npm dist License

zUIx

A lightweight JavaScript library to support you in creating amazing component-based websites and applications.

Examples

  • WebFlix Web app template inspired to Netflix mobile app (PWA)
  • HTML-PWA Web app template of a modern mobile app, made with just HTML, CSS, JavaScript (PWA)
  • Web Book Web app template of a web book, suitable for reading but not only (PWA)
  • z-Kit reusable components for modern web
  • TodoMVC the classic To-Do MVC application
  • Hacker News Reader example web app using list_view component with progressive/lazy loading

Online Playgrounds

Getting Started

Start using zUIx with the zUIx Web Starter project or start from scratch by including it in your project using one of the methods described below.

Local copy

Download and copy the .js file to your project folder and include it in your HTML page:

…

zuix.js is a new library for modular and component-based web development.

You can contribute by start using it and sharing your thoughts about it. Constructive critics are also appreciated =)

Getting started with it only requires basic HTML/CSS/JavaScript knowledge and nothing else.

Examples/Demos:

WebFlix - Netflix app clone
HTML-PWA - A generic purpose app template
zKit - a collection of ready to use components

If you need help you can contact me at any time I'll be glad to give you all the support and guidance you might need to get started also by writing code for you =)

How to reach me:

-

 
 

No one should choose it.
I mean, it's really subjective if you feel comfortable with a product rather than another one.
So I think that one might give it a try and then eventually decide what to do with it.
Did you had any chance to try zuix.js?

 

I just started a new project yesterday to add JSON output formatting to Dokka, the code documentation tool for Kotlin. I'm just starting to get my feet wet and figure the thing out, and I would love some help getting the right information in the JSON output.

copper-leaf / dokka-json

Dokka formatter to output JSON

dokka-json

Dokka formatter to output JSON

Usage

build.gradle

configurations { dokka }
repositories {
    maven { url 'https://jitpack.io' }
}
dependencies {
    dokka 'org.jetbrains.dokka:dokka-fatjar:0.9.17'
      dokka 'com.github.copper-leaf:dokka-json:0.1.0'
}
task runDokkaWithJsonFormatter(type: JavaExec) {
    dependsOn classes
    outputs.files(fileTree("${project.buildDir}/docs/dokkaJson"))

    main = "org.jetbrains.dokka.MainKt"
    classpath = configurations.dokka
    args = [
            "-format", "json",
            "-src", "${project.projectDir}/src/main/kotlin",
            "-output", "${project.buildDir}/docs/dokkaJson"
    ]
}
project.tasks.assemble.dependsOn runDokkaWithJsonFormatter

The default output of Dokka is pretty minimalistic and not very pretty, and is created to be deployed directly, which makes it not very useful for other tools to do cool things with the output. The ultimate end-goal for this small project is to add full KDoc support to the Orchid static site generator, my main project, which I would also love feedback on and help with documentation.

JavaEden / Orchid

A beautiful and truly unique documentation engine and static site generator.

Orchid

Linux and Mac Build Status Windows Build status Current Version License: LGPL-3.0 Codacy Grade Codacy Coverage Gitter chat

A beautiful and truly unique documentation engine and static site generator.

Example Orchid site

Orchid is a brand-new, general-purpose static site generator for Java and Kotlin, with a focus on extensibility and aimed at developers looking to improve their technical documentation. Orchid was born out of a desire for better-looking Javadocs and frustration with how difficult is it to manage large Jekyll sites and keep it up-to-date with your code.

Orchid supports a variety of plugins, including a wiki, static pages, blogs, and much more. It aims to have high compatibility with many of the existing static site generators, such as Jekyll, Gitbook, and Hugo, so that migration to Orchid is painless. And if you can't find a plugin to do what you need, Orchid provides an intuitive way to add your own private plugins and a rich API so you can make your site as beautiful and unique as an Orchid.

…
 

By no means a huge OSS project, but for those that use Gatsby for their blog or other purposes, feel free to contribute to my Gatsby code snippets extension

VS Code Gatsby Snippets Extension screen shot

 

Hey, everyone!

I've created a Ruby gem that when added to a Rails application will profile memory and/or CPU of controllers and jobs when running specs. At the end of the execution, it can generate a JSON or HTML output with the results (depending on how the gem has been configured).

I started it out for fun and now I'm not really sure where to go with it (if anywhere).

If anyone is interested in contributing, suggesting ideas or simply taking a look, you can find it here.

Happy coding, everybody!

 
Classic DEV Post from Apr 15

The Many Flavors of Technical Presentations

Learn about various technical presentation formats to choose the best one for you

Ben Halpern profile image
A Canadian software developer who thinks he’s funny.

dev.to now has dark mode.

Go to the "misc" section of your settings and select night theme ❀️