Console #81 -- ML-For-Beginners, Vizzu, and everydayvirtualvacation

An Interview with Simon of Vizzu

Sponsorship

RocketHub

Why pay a high monthly subscription fee when you can save money by getting lifetime SaaS deals on your essential marketing tools?

RocketHub gives you access to amazing lifetime deals on SaaS. The company is founded by entrepreneurs who specialize in building and growing SaaS companies. 

Become a Rocketeer today and never pay full price for software ever again!


Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.

Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?


The Console Career Service

Want to make more money for your work? Let us find you a new, higher-paying job for free! Sign up for The Console Career Service today! The benefits of signing up include:

  • Automatic first-round interviews

  • One application, many jobs (1:N matching)

  • Free candidate preparation service

  • New opportunities updated regularly

  • All roles, from PM to SWE to BizOps

  • High potential, venture-backed, and open-source opportunities

Even if you’re not actively looking, why not let us see what’s out there for you?

Ready to sign up? Click below and sign up for free in less than 5 minutes👇

Find My Next Job


Projects

ML-For-Beginners

ML-For-Beginners is a 12 week, 26 lesson, 52 quiz, classic Machine Learning course from Microsoft.

language: Jupyter Notebook, stars: 27261, watchers: 565, forks: 5447, issues: 17

last commit: November 26, 2021, first commit: February 05, 2021

repo: https://github.com/microsoft/ML-For-Beginners

social: https://twitter.com/OpenAtMicrosoft

vizzu-lib

Vizzu is a library for animated data visualizations and data stories.

language: C++, stars: 643, watchers: 7, forks: 13, issues: 7

last commit: November 08, 2021, first commit: June 07, 2021

social: https://twitter.com/VizzuHQ

repo: https://github.com/vizzuhq/vizzu-lib

everydayvirtualvacation

everydayvirtualvacation is an iCal file to transport you to a new place every day.

language: Python, stars: 25, watchers: 1, forks: 3, issues: 0

last commit: November 17, 2021, first commit: October 31, 2021

social: https://twitter.com/chapmanjacobd

repo: https://github.com/chapmanjacobd/everydayvirtualvacation


Patreon

Console is powered by donations. We use your donations to grow the newsletter readership via advertisement. If you’d like to see the newsletter reach more people, or would just like to show your appreciation for the projects featured in the newsletter, please consider a donation 😊

Donate To Console


An Interview With Simon of Vizzu

Hey Simon! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program?

I’m Simon, the CTO & Founder of Vizzu, a small startup from Budapest, Hungary. I have 15 years of experience in SW development. I have worked at a multinational in the automotive industry and a small local company in the telecommunication industry before Vizzu.

I started coding at 8. First, I wrote a hangman game on our ZX Spectrum. Several hundred lines of code in several hours, then I watched my brother reimplementing it in 10 lines and 10 minutes. That day I learned the abstraction principle, and I've been hooked ever since.

What’s your most controversial programming opinion?

That tab is the objectively superior character to use for indentation. :)

What is your reasoning behind this?

I used space indentation till one of my coworkers pointed out the main benefit of tabs: every developer can set the tab size as they like, so they can view the same codebase with the visual appearance that fits their need best while rendering the endless arguments about indentation size pointless.

What is your favorite software tool?

Git, no question about it. 

If I gave you $100 million to invest in one thing right now, where would you put it?

$90 million in AI, $10 million in Vizzu. I can’t wait to have a discussion with an artificial generic intelligence. 

What branch of AI?

Neural networks and deep learning.

What are you currently learning?

Programming is both my work and a hobby for me, so I tend to spend way too much time with it. Because of this, I recently started to learn something completely different: oil painting.

What resources are you using to learn oil painting?

I have a teacher, I also watched some youtube tutorials and of course Bob Ross :)

How do you separate good project ideas from bad ones?

I’m not sure I can. At least not in the sense of financial success. For me, subjectively, a project idea is good if I have an urge to implement it, but this is because my goal is “happy engineering”. Vizzu was unique from this point of view because I wanted to “solve” it immediately after seeing the initial mockups. I also felt that it could attract plenty of users.

Why was Vizzu started?

Let me quote my co-founder, András Kangyal, who's been working in interaction design for over 20 years: 
“Being a designer, I always approach things from a visual perspective and it drove me mad how much my hands are tied when visualizing information unless I go back to algorithms and coding. So my goal was to bridge this gap between data and its visual representation, to be able to communicate and query data and discover the underlying patterns visually.”

Where did the name for Vizzu come from?

We started to use vizzu as a shorthand for data visualizations in-house. After we had some vizzus we started using it also as a verb e.g.: “We should vizzu this!”. It was the natural choice for the company and product name at the end.

Are there any overarching goals of Vizzu that drive design or implementation?

Indeed. Our goal is to build an intuitive graphical user interface for charts that anyone with basic tech skills can use to analyze their data and create a story or an interactive report. The animation capability and the generic engine for all the different chart types are the foundations of this GUI. 

What is the most challenging problem that’s been solved in Vizzu, so far (code links to any particularly interesting sections are welcomed)?

Maybe the core idea behind the engine, to view chart rendering as a continuous parameter space and implement it as such. This solution enables the library to be able to interpolate between any chart type.

Are there any competitors or projects similar to Vizzu? If so, what were they lacking that made you consider building something new?

I’d quote our CEO & co-founder Peter, for this: There are many excellent quality dataviz software products and technologies available and widely used on the market. Charting libraries like d3, Highcharts, Chart.js, Plotly, and matplotlib are used by so many developers and data scientists for a reason. Regarding our future target group of business and casual users, they too have multiple options to choose from, ranging from Excel and Google Spreadsheets to BI tools like Tableau and PowerBI. Still, our approach is so different from others that we thought it worth building Vizzu to see how it can fit into this vibrant ecosystem. The key difference is our approach to use charts as interactive elements both for exploration and explanation, within a single system.

Is Vizzu intended to eventually be monetized if it isn’t monetized already?

Using the open-source library is, obviously, totally free of charge. It is released under the liberal Apache 2.0 license, meaning anyone can implement it into their commercial product without any restrictions. But, of course, if someone needs indemnification or professional support, we are ready to provide those - for a fee. 

How do you balance your work on open-source with your day job and other responsibilities?

Fortunately, my day job is to work on an open-source project, Vizzu. :)

Do you think any of your projects do more harm than good?

No.

What is the best way for a new developer to contribute to Vizzu?

We welcome any contributions, bug fixes, features, addons, howtos, etc. This page is a good starting point for new developers: https://github.com/vizzuhq/vizzu-lib/wiki .  

Are there any other projects besides Vizzu that you’re working on?

Not right now. I have a pet project I always lack time to revisit, called 4dtris, a Tetris in four dimensions.

You can install the game here: https://launchpad.net/4dtris

Do you have any other project ideas that you haven’t started?

I always have more ideas than time, so a lot of project ideas have accumulated. Recently, I've been thinking a lot about writing an agent-based social simulation.

Can you elaborate on this further?

The goal would be to specify a set of rules for the simulated agents based on human behavior, and check out what kind of collective behavior would emerge. A bit like psychohistory in Asimov’s Foundation series.

Have you given any thought to what sort of "human behaviors" you'd give the simulated agents?

I was thinking of a super abstract model here. Each agent can connect with others, creating a network of agents. Each of them can share, take, and accumulate information or resources. They could also multiply or die based on their accumulated resources. Maybe their collective knowledge and resources modify the environment, allowing them to create more resources, move faster, or connect with others further away.
Not sure about their behavior/decision making though. Maybe it can be controlled implicitly by some natural selection model.

Console #80 -- Hub, Dronesploit, Create Rust App

An Interview With Davit of Activeloop

Sponsorship

Mojeek

Mojeek is on a mission to build the world's alternative search engine; a search engine that does what's right, that values and respects your privacy, whilst providing its own unique and unbiased search results from its own independently-crawled index.

Search is often considered the gateway to the Web, which is why we believe it's critical that choices exist, choices that take a different approach. By putting the people who use Mojeek first and using technology built from the ground-up, we're here to offer that choice.

Mojeek.com


Welcome to the 41 new Consolites who joined last week! 👋

Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.

Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?


The Console Career Service

Want to make more money for your work? Let us find you a new, higher-paying job for free! Sign up for The Console Career Service today! The benefits of signing up include:

  • Automatic first-round interviews

  • One application, many jobs (1:N matching)

  • Free candidate preparation service

  • New opportunities updated regularly

  • All roles, from PM to SWE to BizOps

  • High potential, venture-backed, and open-source opportunities

Even if you’re not actively looking, why not let us see what’s out there for you?

Ready to sign up? Click below and sign up for free in less than 5 minutes👇

Find My Next Job


Projects

Hub

Hub is a dataset format for AI. Easily build and manage datasets for machine and deep learning. Stream data real-time & version-control it. Datasets in Hub format get instantly visualized via app.activeloop.ai (seen in the gif above).

language: Python, stars: 3669, watchers: 54, forks: 304, issues: 62

last commit: November 17, 2021, first commit: August 09, 2019

social: https://www.activeloop.ai/

repo: https://github.com/activeloopai/Hub

dronesploit

This CLI framework is based on sploitkit and is an attempt to gather hacking techniques and exploits especially focused on drone hacking. For ease of use, the interface has a layout that looks like Metasploit.

language: Python, stars: 855, watchers: 32, forks: 150, issues: 0

last commit: November 05, 2021, first commit: September 08, 2019

social: https://twitter.com/alex_dhondt

repo: https://github.com/dhondta/dronesploit

create-rust-app

Set up a modern rust+react web app by running one command.

language: Rust, stars: 172, watchers: 2, forks: 10, issues: 1

last commit: November 17, 2021, first commit: May 08, 2021

repo: https://github.com/Wulf/create-rust-app


Console is powered by donations. We use your donations to grow the newsletter readership via advertisement. If you’d like to see the newsletter reach more people, or would just like to show your appreciation for the projects featured in the newsletter, please consider a donation 😊

Donate To Console


An Interview With Davit of Activeloop

Hey Davit! Thanks for joining us! Let’s start with your background. Where have you worked in the past and where are you from?

I'm originally from Armenia. I used to be a Ph.D. candidate at the Princeton Neuroscience Lab. We worked on reconstructing the connectome (or the connections of neurons) inside of a mouse brain. I faced lots of challenges while working with petabyte-scale computer vision data, and that's why I started Activeloop, the company behind the open-source dataset format for AI called Hub (more on this later in the newsletter).

What’s your most controversial programming opinion?

There should be a database for images. For now, most people (even on Quora!) think we should resort to old methods such as file systems to be working with large unstructured data (such as images, videos, audio, etc.). I respectfully disagree. 

Who or what are your biggest influences as a developer?

From a research perspective, Deep Learning pioneers G. Hinton, Y. LeCun, and Y. Bengio, and from a startup perspective - Paul Graham.

What is your favorite software tool?

  • Can I say Hub? :) 

  • Deep learning frameworks such as PyTorch/TensorFlow

  • Finally, Docker. Running a simulation (container) inside a simulation (VM) in real-world scenarios. (bare metal) 

If you could dictate that everyone in the world should read one book, what would it be?

Principles by Ray Dalio.

If you had to suggest 1 person developers should follow, who would it be?

Paul Graham.

If you could teach every 12 year old in the world one thing, what would it be and why?

How to train d̶r̶a̶g̶o̶n̶s̶ models. 

To train a model, you need to specify the architecture, the data, and the loss function. If the loss function is wrongly set, then the model tricks the intended behavior by the data scientist. It is very similar to how you set goals for yourself or others. You have to be very careful how to measure things objectively and how tricking the game doesn’t benefit the model (or you). 

If I gave you $10 million to invest in one thing right now, where would you put it?

We've just raised a seed fund to build a database for AI, but I definitely would not mind an additional $10 million for all the great things we envision. Other than that, I'd invest in universal basic income research and how to make it sustainable for everyone.

What have you been listening to lately?

Hanz Zimmer soundtracks and A16Z infra podcasts

How do you separate good project ideas from bad ones?

Three dimensions: Does this make you and others excited? Does it enable you to be the absolute best in something (or does it outperform all other ideas in the space)? How much value does it create?

Where did the name for Hub come from?

Based on the number of tools called Hub, I guess it's top of mind for all developers. We picked the name Hub because I had a vision of a tool that makes all the machine learning workflows easy and contains vast amounts of computer vision (and not only) datasets that a user could access instantly. A machine learning hub, if you will. 

Why was Hub started? Who, or what was the biggest inspiration for Hub?

At Princeton, I seriously struggled when I worked with data. It took me weeks to download the public datasets like ImageNet to start working with them. I found out the hard way that the current solutions for storing the data we create, meaning databases, data lakes, and data warehouses, are completely unsuitable for storing computer vision data. There are numerous file formats, compression techniques, and multiple locations to take care of. As the dataset grows, all this becomes highly cumbersome and time-consuming to manage, and the data often ends up in silos. *cue "but there must be a better way!"* That is why I started Hub, which grew into Activeloop.

Are there any overarching goals of Hub that drive design or implementation?

Minimizing the number of intermediaries between storage and compute to stream datasets to Deep Learning models.

If so, what trade-offs have been made in Hub as a consequence of these goals?

Designing a database or even a format lies in navigating through several very complex and high-dimensional tradeoffs given the specific use case you are tackling. 

At some point, it felt like a whack a mole game where no optimal solution existed, and we had to make tradeoffs. 

One of such choices is determining how to chunk the datasets. Should you go row-wise or column-wise. A basic question that spawns widely adopted databases and data warehouses. However, when you work with unstructured data that has varying shapes across some of the dimensions, this gets even trickier. You are left on a continuum with one end of absolutely auto-indexed array storage and the opposite end represented by the blob storage, including the file system. We have tried experimenting with everything on the spectre and still think the solutions are not satisfactory to the constraints data scientists have. In any case, you default to the CAP theorem or some alternative form of it.

What is the most challenging problem that’s been solved in Hub, so far (code links to any particularly interesting sections are welcomed)?

Enabling users to access ImageNet in seconds and then connecting it effortlessly to SageMaker with high GPU utilization. I was really proud of our team for achieving that result.  I can't share that code, but uploading Places365 (a 1.8M image dataset) in under 50 minutes comes really close.

Are there any competitors or projects similar to Hub? If so, what were they lacking that made you consider building something new?

I'd say our biggest competitors right now are legacy data formats, like HDF5 (and the Snowflakes of the world). Convincing people to adopt a new format is not easy. However, as the design patterns for ML pipelines evolve, we will need to shift to a next-gen way of working with (petabyte-scale) data, to train arbitrarily large models on arbitrarily large datasets in the cloud. HDF5 (and similar formats) are not fit to enable the next-gen machine learning stack (for a couple of reasons). That's where Hub comes into play. 

What was the most surprising thing you learned while working on Hub?

You can stream data over the network as fast as you read from the disk.

What is your typical approach to debugging issues filed in the Hub repo?

Unlike others, I hate PDB; I prefer recreating the minimal reproducible script and finding the root cause by rapid development iterations cycles (e.g., applying binary search tree on the problem to identify the bug). 

What is the release process like for Hub?

We have automatic CI/CD, which runs unit/integration tests, backward compatibility tests since it’s a format, and benchmarks against previous versions on every release candidate. Then, in any case, we manually test the code to make sure new features work as expected, then push the release. 

Is Hub intended to eventually be monetized if it isn’t monetized already?

Hub is free and will always be free. We also offer any researcher / professional / citizen data scientist free storage of up to 300 GB. The dataset format for AI is free, but we're building the database for AI, with visualization, version control, and querying capabilities (the gif below shows how you can visualize the entire ImageNet in seconds in our visualization app).

Hub is an enabler for our database for AI, and the UI will help teams understand and explore their datasets, collaborate on, and stream datasets to their favorite ML tools, as well as fully utilize their GPUs. This is how we're planning to monetize the project.

What is the best way for a new developer to contribute to Hub?

Join our Slack Community, say hi (we're a fun bunch of people). Pick a good first issue, and follow our contribution guidelines for a more streamlined approach.

If you plan to continue developing Hub, where do you see the project heading next?

Applying machine learning on the storage layer itself.

What motivates you to continue contributing to Hub?

Inefficiencies data scientists face every day while operating on top of data. As a data scientist myself, it was (and still is) a problem I face daily, and I won't stop until I fully fix the problem. :)

Do you have any other project ideas that you haven’t started?

In another life, I'm starting my own Pixar and producing thought-provoking, inclusive animated movies that inspire curiosity in people of all ages.

Where do you see software development heading next?

Online differential programming - Basically, end-to-end systems which are learnable while in production (Software 2.0 coined by Andrej Karpathy). Deep Neural Networks is just one subset of it. A great example is JAX. When it comes to ML specifically, I think data-centric AI will be a prominent direction for a while. In almost every decade, we witness a new epoch in the field of machine learning. The preceding ten years have been about improving machine learning models and making them accessible to regular data scientists and developers. The next decade will be about datasets (more on this here).

Where do you see open-source heading next?

I love open-source because it allows people to build or help the software they'd love to use. This decade saw the establishment of open-source software within enterprises, startups, and universities alike (let's hope the recent news around prophet and Zillow won't impact it as much). The next decade of open source lies in the interoperability of projects and adding incentive mechanisms for developers (possibly through crypto?). Hopefully, Hub will help unify the ML stack through a unified dataset format for AI.

Do you have any suggestions for someone trying to make their first contribution to an open-source project?

Just… do it. A lot of us don't know where to start. Discover new projects by enrolling in Hacktoberfest or enrolling in Google Summer of Code. If you're slightly older, pick a project/tool that you used or one that excites you. Community is super important for a first-timer’s experience, so seek out projects that care about their contributors, are welcoming, and guide you when needed.

Console #79 -- Medusa, Firezone, and Unoriginal Rice Patties

An Interview With Sebastian of Medusa

Sponsorship

Boost employee engagement with Axios HQ

Fortune 100s and startups alike are elevating company-wide comms with Axios HQ — intuitive software that helps your team think more clearly, communicate more crisply, and send focused, effective updates.

What you can expect: rising transparency, engagement, and trust across the organization.

Easy to start, unlimited seats. Get your teams smarter, faster with Axios HQ.

See how it works. Get a sample newsletter built with Axios HQ.


Welcome to the 59 new Consolites who joined last week! 👋

Not subscribed to Console? Join thousands of other engineers, early-stage CTOs, and VCs in subscribing to a weekly roundup of the latest in open-source software, curated by an Amazon engineer.

Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?


The Console Career Service

We’ve decided to re-vamp the Console job board to make it more engineer-centric! Where previously the job board was a curation of jobs that I felt the Console readers would be interested in, we’ll now provide a free white glove job finding service to our readers. The benefits of signing up include:

  • Automatic first-round interviews

  • One application, many jobs (1:N matching)

  • A free candidate preparation service

  • New opportunities updated regularly

  • Every role, from PM to SWE to BizOps

  • High potential, venture-backed, and open-source companies

Even if you’re not actively looking, why not let us see what’s out there for you?

Ready to sign up? Click below and sign up for free in less than 5 minutes👇

Find My Next Job


Projects

medusa

Medusa is an open-source headless commerce engine that enables developers to create amazing digital commerce experiences.

language: JavaScript, stars: 1648, watchers: 18, forks: 138, issues: 141

last commit: November 11, 2021, first commit: January 18, 2020

social: https://twitter.com/medusajs

Github: https://github.com/medusajs/medusa

firezone

Firezone is a self-managed WireGuard-based VPN server and Linux firewall designed for simplicity and security.

language: Elixir, stars: 736, watchers: 8, forks: 18, issues: 8

last commit: November 12, 2021, first commit: April 22, 2020

Social: https://twitter.com/firezonevpn

GitHub: https://github.com/firezone/firezone

Unoriginal-Rice-Patty

Unoriginal-Rice-Patty is an example replay-based attack on Honda and Acura vehicles.

stars: 222, watchers: 11, forks: 20, issues: 1

last commit: August 04, 2021, first commit: August 03, 2021

Social: https://twitter.com/HackingInHeart

GitHub: https://github.com/HackingIntoYourHeart/Unoriginal-Rice-Patty


Patreon

Console is powered by donations. We use your donations to grow the newsletter readership via advertisement. If you’d like to see the newsletter reach more people, or would just like to show your appreciation for the projects featured in the newsletter, please consider a donation 😊

Donate To Console


An Interview With Sebastian of Medusa

Hey Sebastian! Thanks for joining us! Let’s start with your background. Where have you worked in the past and how did you learn how to program?

I have always been very interested in computers and programming, which resulted in me studying computer science; while studying I began working on different projects and eventually focused all my efforts on helping e-commerce businesses. When Oliver and I started working together we had a customer who wanted to migrate away from WooCommerce, we weren't able to find a solution that accommodated their requirements so we ended up building a custom solution, which after many iterations became Medusa.

Who or what are your biggest influences as a developer?

Interestingly my granddad happens to be one of the biggest influences in my path to becoming a developer. That is in spite of him not knowing anything about computers - he still calls me whenever he has to download a new app for his smartphone. The story is that he gave me one of his old work laptops when I was 12. It was my first computer and it didn't have an internet card so I couldn't use it to browse the internet; however, it did have internet explorer installed and together with the computer my grandad gave me HTML for Dummies which I read end to end. From this I learned to create small sites that I could browse for myself - it was really ridiculous the sites I made: things like a personal website with pictures of me and my family and buttons that changed the background color, that sort of stuff.

What is your favorite software tool?

VIM - in the age of VSCode everyone thinks I am a lunatic, but the native feel and portability of vim will keep me locked in forever.

If you could dictate that everyone in the world should read one book, what would it be?

Black Swan by Nassim Taleb has made a pretty big impression on me - am currently rereading for the 3rd time. The book stresses the fact that it is the rare, high impact events that dictate our world, not the steady and predictable. Understanding this fact and really allowing the idea to develop makes it clear that most of what so-called experts are saying on the news is based on wrong presumptions.

Have experienced this first hand while studying economics; while the mechanics of economic models are interesting at a mathematical level they are mostly useless as a foundation for planning the future.

If you had to suggest 1 person developers should follow, who would it be?

Brandur - despite not being the most active on social media he pretty much only posts high quality stuff that is worth the feed real estate.

If you could teach every 12 year old in the world one thing, what would it be and why?

Learn programming fundamentals; surely pursuing a career as a developer is not something that everyone should do, but I think everyone could benefit from just having a little understanding of programming. Why? Primarily efficiency:

  • Knowing a bit of programming gives you a framework for understanding at an abstract level what is possible with tech.

  • Most jobs involve repetitive tasks from time to time; being able to write small scripts to automate many of these don't require advanced programming knowledge; so having a bit of fundamental knowledge could really superpower you.

If I gave you $100 million to invest in one thing right now, where would you put it?

At Medusa we are trying to change what is possible for e-commerce - the first step to doing that is to make developers more powerful. We have experienced the joy that comes with good tooling and our goal is to give that joy to the users of Medusa, so that they can do more and be more creative. This is a pretty hard problem to be working on and it requires a lot of resources, so if I was given a large sum of money I'd probably throw a lot of it into Medusa, so we can double down on the product and engineering efforts - maybe keep a small chunk for some crypto :D

Why was Medusa started?

Oliver and I did agency work for a couple of e-commerce businesses and saw a pretty clear issue with too often not being forced to "hack" our way into a solution. We had a customer, Tekla Fabrics, who wanted a good long term solution that could support their growth over many years so we decided to create something that was flexible and extendable enough for us to never be in a situation where we felt that we were doing a "hacky" solution.

Where did the name for Medusa come from?

Our project actually didn't have a name for a long time until we decided to open-source it.  When brainstorming names with our customers, Kristoffer from Tekla Fabrics came up with Medusa as she was decapitated, we liked the name and the subtle link so we ended up going with it.

Where does the phrase “headless commerce” come from?

The phrase headless commerce comes from the fact that the data layer and presentation layer are decoupled.

Who, or what was the biggest inspiration for Medusa?

Obviously the fact that we built the solution with Tekla makes them a pretty strong source of inspiration. That being said, I would say that the entire approach that we have taken to the architecture and the design decisions is heavily inspired by Gatsby. Similar to Gatsby, we have a core Medusa API that ships as an NPM package to be installed in a Node project. Plugins and extensions ship as separate packages and can be configured in a medusa-config.js file. We really enjoyed this workflow and felt more powerful due to it so it made a lot of sense to us to draw some inspiration from them.

Are there any overarching goals of Medusa that drive design or implementation?

As mentioned earlier our overarching goal so to speak is to make it possible for developers to be more powerful when developing e-commerce solutions. This means that we listen a lot to what developers have to say and we focus on making our tooling cater to their needs. Of course, we also need to be driven by the needs of e-commerce businesses, but generally that comes naturally through the interactions with developers.

Where are you typically getting feedback from developers?

We have a Discord channel with developers in our community, which is a pretty good source for new ideas and features, but we also receive feedback from GitHub issues.

What is the most challenging problem that’s been solved in Medusa, so far?

A major challenge of headless commerce in general is that a lot of systems have to communicate with each other. This first and foremost requires a good architecture that can easily support integrations to different tools, but it also requires a level of robustness to ensure that data doesn't get lost in between systems. A thing that we have spent quite a bit of effort on is support for idempotent operations in our API - this essentially allows you to retry an API request as many times as you want without triggering side effects more than once; an example of this can be found here: https://github.com/medusajs/medusa/blob/master/packages/medusa/src/api/routes/store/carts/complete-cart.js

Are there any competitors or projects similar to Medusa? If so, what were they lacking that made you consider building something new

The headless commerce space is growing and there are a couple of players who are doing similar things. Most of them focus on enterprise customers, which makes sense due to the fact that headless commerce traditionally is something that requires a lot of resources. Our approach is more focused on making developers capable of doing more with less, we therefore cater to a different set audience with the belief that putting the product in the hands of developers will make e-commerce businesses more capable of doing groundbreaking things.

Is Medusa intended to eventually be monetized if it isn’t monetized already?

Right now we are focusing all efforts on the community and product development and have not begun any monetization path yet. Our thesis is that if we have a strong community with skilled people who are actively sharing ideas and helping each other we will be able to support that community in some way that will add value to them. One thing that we have considered is a hosting platform where developers can bring their own repo and then we will make sure to deploy to optimized servers and automatically upgrade Medusa as new versions are pushed. I think this is something that many developers would love as you get rid of the headaches that come with infrastructure and devops. 

What is the best way for a new developer to contribute to Medusa?

We have a good handful of issues that are pretty straight forward for new developers to pick up. We are generally pretty good at using the good-first-issue label so I would suggest filtering the issues based on this label to find something that sparks an interest. There are also a lot of more advanced issues if you already feel comfortable with working with e-commerce.

Where do you see open-source heading next?

I believe that we will see a much bigger part of the software we use on a daily basis turn into open-source software. Historically speaking it is typically the building blocks of a system that are open-source primarily because you need to be able to trust that the libraries and tools you use will not damage the things that you build yourself. Furthermore, you need to be able to control the direction of your own projects and using closed source solutions restrict you in this regard. With this in mind it makes sense that many of the most successful open-source projects are OSes and databases, but as the scope of software expands we will begin looking at systems higher up the stack as fundamentals as well. A clear indication of this direction is the whole trend around Web 3.0, blockchains, open-state, etc.

Do you have any suggestions for someone trying to make their first contribution to an open-source project?

Find a project that is scratching an itch you have for yourself. It is much more fun to be part of solving a problem that you can understand and where you can see the value of the solution.

Console #78 -- pyWhat, laser_control, and deptoolkit

An Interview With Basile Simon of The Digital Evidence Preservation Toolkit

Sponsorship

Axolo

Still waiting to get your pull request reviewed?

Axolo is a GitHub - Slack app that helps tech teams resolve pull requests faster by creating 1 channel for 1 code review. Oh! and the best part? We don’t require any code access! Get started in 2 minutes for free with no credit card at axolo.co


Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.

Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?


Projects

30-seconds-of-code

30-seconds-of-code is short JavaScript code snippets for all your development needs.

language: JavaScript, stars: 87864, watchers: 2383, forks: 9314, issues: 6

last commit: November 03, 2021, first commit: November 29, 2017

social: https://twitter.com/30secondsofcode

pyWhat

Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it’ll tell you what it is!

language: Python, stars: 4729, watchers: 60, forks: 224, issues: 19

last commit: November 01, 2021, first commit: March 19, 2021

social: https://twitter.com/bee_sec_san

Laser_control

Laser_control is an in-progress laser device for neutralizing mosquitoes, weeds, and other pests.

language: Python, stars: 324, watchers: 11, forks: 11, issues: 1

last commit: October 26, 2021, first commit: December 23, 2020

social: https://twitter.com/ildarRakhmatul1

deptoolkit

DEPToolkit is proof-of-concept software for researchers and small teams sifting through online material. With only one click of the mouse, the material will be archived in a framework demonstrating chain of custody and stored durably.

language: TypeScript, stars: 6, watchers: 5, forks: 3, issues: 6

last commit: August 23, 2021, first commit: May 12, 2021

social: https://twitter.com/deptoolkit


Console is powered by donations. We use your donations to grow the newsletter readership via advertisement. If you’d like to see the newsletter reach more people, or would just like to show your appreciation for the projects featured in the newsletter, please consider a donation 😊

Donate To Console


An Interview With Basile Simon of The Digital Evidence Preservation Toolkit

Hey Basile! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program, what languages or frameworks do you like?

My background is in journalism. I studied law and political science, but I worked in news organisations of different kinds, from the BBC (a large broadcaster), the Times & Sunday Times (a newspaper) and Reuters (a gigantic news agency). My thing is data journalism, which I mean in a really broad sense, but I think the industry calls it creative technology, or “data hyphen something”.

I'm self-taught and I picked up some JS first to do imperative D3 for a long time. Then React came along, and I went down the R and tidy data route (look it up if this doesn't ring a bell). Recently, I've gone freelance and got to learn a huge amount from the declarative and dare I say functional world, and I've rediscovered JS through TypeScript and Svelte. This plays amazingly well with this D3-less way of writing bespoke data visualisations.

What are you currently learning?

For fun, I'm picking up a couple of projects in Clojure/Clojurescript, which I find fascinating due to the way writing code feels. It's concise and encourages thinking about isolating (or concentrating and deferring) risky steps. "Does this function do this one thing and this one thing only?" If yes, I can fold it away and stop worrying about it.

And with the REPL, you can test and play as you write. A fresh perspective!

What’s the funniest GitHub issue you’ve received?

Not an issue per se, but a bug report. It’s election night in the UK in 2017, and I was working at The Times and The Sunday Times. It's the big show: all the work goes out as the results start coming in, all of it was planned and built in only a few weeks. It's fairly high-traffic and the moment that the digital teams across news orgs look at each other's work very closely.

In the thick of it, we get word from the project's editor that his name had been changed to some kind of pun. Or at least that’s what the man says his mates are telling him. That’s at the top of the page, at its busiest. Some folks say they saw it, but I’m not sure I did. To this day we're still not quite sure what happened, and kind of think it was some sort of git history trick...

Why was the DEPToolkit started?

A buddy of mine who was outside Minsk in October last year during the protests asked me what they should set up to archive some of the content they had access to, so that Lukashenko would pay the price for his actions. I didn't know what to tell them. I knew of things that were a bit difficult to set up, or not really geared towards the individual researchers, or unable to capture content behind authentication (e.g. private groups).

Archiving in view of prosecution is tricky because preserving the chain of custody of a digital item involves a bit of care from the get-go. You can't move it about and make copies because at some point there will be a human error and the original file will be lost.

In 2014, when the West went all guns blazing in Iraq and then Syria to bomb ISIS, which the public was just discovering, I worked on setting up an NGO/ reporting project called Airwars.org, which was assessing claims of civilian harm as a result of these airstrikes. The project was really, really successful in terms of changing the way the military proactively reports these mistakes.

But, I really felt we were handling this "open source" material (as in, freely available, it's weird lingo but has somehow stuck) in a bit of a funny way. This was fine for talking to the media but I always wondered what would be the probative value of this stuff in court.

Can you give some examples of some of these “difficult to set up” tools?

Hunchly, which is expensive, SugarCube, which is the motherlode, or recently-Console’d ArchiveBox which we couldn’t run on their machine.

Who, or what was the biggest inspiration for the DEPToolkit?

Without a doubt, the Syrian Archive. I met Jeff in 2015 when they were getting started properly and their work is just stellar. They're vacuuming social media platforms at a huge scale and verifying so much material... The North Star goal of theirs being to enable all that have a claim during an eventual international prosecution for what's been happening in Syria.

Are there any competitors or projects similar to the DEPToolkit? If so, what were they lacking that made you consider building something new?

Yeah, there's direct competition, and quite frankly some duplication. The Digital Evidence Vault, out of Carnegie Mellon University, does quite a few of the same things we do, but... it's closed source (rather: soon-to-be-open-source), you can't get to the guy (at least, I couldn’t), and you know that's something that comes up time and time again when talking to their users.

There's real value in the openness of open source software. For small projects like this, particularly, there's nothing you can hide. So far, it seems that this has an appeal.

How do you intend to monetize the DEPToolkit?

Monetized is a bit too strong a word in this instance. The project got off the ground thanks to a grant by a German federal ministry and the Open Knowledge Foundation and I feel a responsibility towards this support to keep things out there and for free. That said, improvements and fixes ideally don't depend on one's happiness to throw some spare time at it – that's not sustainable.

On the other hand, I've got first-hand experience of doing the philanthropy and grants and fellowships dance and reporting and matching funders' objectives. That's not my profession, and it's too much work for me, so I won't do that.

The leads I'm exploring right now are to fund the open source side through commercial engagements with enterprise software providers, some of whom appear to be interested in integrating some of what the Toolkit does in the workflows they have. More on that later (I really hope).

What was the most surprising thing you learned while working on the DEPToolkit?

There's still a huge amount of interest for anything that mentions blockchain or crypto (be it -graphy or -currency). I got the weirdest people reaching out of absolutely nowhere because this project does involve Merkle trees, which are the basis of immutable chains which are cryptographically verifiable.

I can't attest to the quality of these leads but yeah, buzzwords do have an effect.

Console #77 -- Janet, Little, and CSML

Interview with François of CSML

Sponsorship

Fulton - the world’s most comfortable, supportive, and sustainable insole

Fulton is a modern brand of arch support. They developed sustainable, supportive and comfortable insoles that improve your alignment and posture, preventing injury through:

  • A cork base, which absorbs shock and molds to your unique arch to provide custom support

  • A deep heel cup to provide maximum stability and prevent injury

  • Arch support and natural latex foam to improve overall comfort

  • Entirely natural and biodegradable materials to support not only you, but the planet.

Fulton is offering free shipping and free returns, so your order is risk free, learn more about Fulton here: walkfulton.com


Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.

Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?


Projects

janet

Janet is a functional and imperative programming language and bytecode interpreter.

language: C, stars: 2179, watchers: 54, forks: 163, issues: 33

last commit: October 26, 2021, first commit: February 09, 2017

social: https://janet-lang.org/

csml-engine

CSML is an easy-to-use chatbot programming language and framework.

language: Rust, stars: 487, watchers: 13, forks: 29, issues: 10

last commit: October 22, 2021, first commit: February 21, 2019

social: https://twitter.com/sayCSML

little-lang

Little was a statically typed C-like scripting language, ideated by BitKeeper.

language: Shell, stars: 205, watchers: 10, forks: 17, issues: 9

last commit: May 03, 2016, first commit: April 05, 2016


Console is powered by donations. We use your donations to grow the newsletter readership via advertisement. If you’d like to see the newsletter reach more people, or would just like to show your appreciation for the projects featured in the newsletter, please consider a donation 😊

Donate To Console


An Interview With François of CSML

Hey François! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program, what languages or frameworks do you like?

I have a slightly unusual background. I have a degree in musicology and studied cello professionally at the Paris conservatory, then decided I wanted to have a career as a photographer instead. After about 7 years of doing that I stumbled more or less by chance upon School 42 which happened to be right next to my home. 42 is a coding school created by a French billionaire with a revolutionary new model, open 24/7, with no teachers and where you learn with projects. It was the first one but there are now 35 campuses all over the world now! I loved it so much when I visited it one Saturday morning that I decided to apply while still working as a photographer. I kind of progressively did more of this while doing less of that and that’s how I eventually changed careers, I guess! Then I worked as a devops for a while at Danone, which is a large non-tech company where I was lucky to get a lot of freedom to do very interesting things and have a global impact even though I was just a junior. Then I started an agency business with a friend from 42, and we ultimately founded another company, Clevy.io, where we launched a product for creating internal chatbots and conversational automation tools for large companies.

What’s your most controversial programming opinion?

The DRY principle as it is usually presented is not a good one. It drives developers to find overcomplicated abstractions over simpler, readable, maintainable code. I get why you want to reuse components that you are using multiple times but the way it is often misinterpreted, especially by junior developers, is to over-engineer the simplest code “just in case you might need the abstraction later”.

What is your favorite software tool?

I don’t really care so much for the software I use. It should get the work done and not require too much configuration. I try to get productive with what I have, and not spend too much time thinking about the newest trend: most of my setup I’ve been using for 5+ years! I think the latest addition to my must-have stack was about 2 years ago, and it was a screenshotting tool called CleanShot X. I do a LOT of screenshots that I need to annotate, and the built-in tools in macOS are terrible. It might very well be the tool I use the most besides the obvious IDE, browser etc. It’s been a life changer for me!

What IDE are you using?

I settled on VS Code about 5 years ago, and don’t plan to change anytime soon. It’s quite complete, extensible if needed (although I don’t spend much time looking for new extensions), and quite versatile as I need to be productive in a few different languages at the same time (on a daily basis at least JS, Rust, Python, HTML/CSS…).

If you could teach every 12 year old in the world one thing, what would it be and why?

That it’s ok to be wrong, and neither you nor your neighbor should feel bad for it - and it’s definitely not OK to ridicule someone for being on the wrong side of things. Besides, “being wrong” is oftentimes a relative concept, and it never defines you as a person. Everybody is wrong all the time. Many things would be so much better if everyone was able to take a step aside and discuss without ego and pride stepping in: we’re all in it together. If the “wrong” person “wins” the argument, you still have to live with them somehow.

But I guess that by 12 it’s already a bit too late to have this discussion!

What are you currently learning?

I just moved to Sweden with my family. Fabulous place, especially if you have young kids. So I’m trying to learn all things Sweden - the language obviously, the politics, the geography, the pop culture, the administration… 

What are some interesting things you’ve learned about Sweden?

One of the more interesting things I found about Sweden is how open the country is to immigrants - at least from other EU countries. But, from what I’ve seen it’s also significantly easier to move to Sweden from most places in the world than it is in other EU countries, even France or other Nordic countries like Denmark. Everything is super centralized so it makes things relatively easy once you have been properly registered in the system. It took us less than 5-6 weeks after we set foot in Stockholm to receive our physical Swedish ID card! Every single person I have talked to so far in my quest has been extremely helpful, and quite efficient. Whenever you have a question, you will absolutely get a complete answer, probably right now in the same phone call, or they will tell you when they will call you back with an answer - and they always do. Otherwise, Swedes live outside most of the day even when it rains (they say that there is no bad weather, only bad clothes) so I try to do that as well, and I find myself in a much better (physical and psychological) shape than when I left Paris. Now we’ll see how the winter goes...

What have you been listening to lately?

It really depends on what I need to get done. If I’m coding and it’s late in the night and I need an extra kick, some form of electronic music that gets me going. Solomun, Weval, Rone, Archive, Modeselektor, SebastiAn...  Otherwise, I listen to a lot of classical music. This one is even harder to classify because it’s quite vast… Whenever one of my former colleagues or friends has a new album coming out, I try to give it a listen! 

I feel that Spotify has made me listen to more music in terms of quantity, but I kind of find myself always listening to the same things, especially when it comes to classical music. I used to discover many more things before the streaming era than I do now, and that’s made me a bit sad. Discoverability is still very much an unsolved problem. Recommendation algorithms just give you the same thing over and over by trying to optimize for time spent on the platform and making sure that you already know and like what you are going to hear/watch next.

How do you separate good project ideas from bad ones?

It’s actually a question that I’ve been asking myself a lot recently. I don’t have a good answer, because I don’t think I’m really able to tell by myself what’s a good or bad project, assuming we are talking about the project’s eventual success (commercial, usage, fame, whatever) and not the biblical good/bad dichotomy. I think it all comes down to marketing at some point rather than just the idea. There are many cases where a product shouldn’t exist but does, and is even successful for some reason. I think it was Justin Kan (twitch) who said: “Startups mostly don't compete against each other, they compete against no one giving a shit” and that sums it up: people didn’t need your project until they found it 5 minutes ago, chances are they can continue their life without you. So my current answer to this question is that I don’t, and sometimes I fail, sometimes I succeed, and most of the time there is a bit of both depending on how we look at the project. A project that eventually succeeds is usually just a project that gets worked on the most and the longest.

Why was CSML started?

We have been developing tons of chatbots - through our no-code NLP platform, but also by hand with regular programming languages (javascript, python, etc.). There are issues with both approaches: when using a GUI, you are ultimately limited to what the interface is letting you do. If you need something that’s not available, too bad: you can request the feature, but that’s about all you can do. And as a developer, it’s always super frustrating to be locked into an incomplete tool, that you can’t easily extend, not speaking about saving your own stuff or exporting/migrating your content to a different platform if you were to need it sometime down the line. There are advantages to no-code tools (it’s supposedly easy to work on) but it just doesn’t scale well, especially if you don’t yet entirely know where you will be with your project in just a few months.

On the other hand, whilst using a more generic programming language will solve these problems as you can do basically anything, it requires so much work and effort that it’s often not worth it (and it also takes so much more time).

We thought that there was a way to solve this problem by providing a developer experience that’s as close as possible to just writing code with all of the advantages and flexibility, but also provide so much more comfort for developers by solving most of the complexities that are common in every chatbot. At its core, a chatbot is a fancy state machine: you need to know where you are in a conversation, remember what’s been said before, give some context, connect with other APIs… so we have created a programming language that provides interfaces for all of that, and even the most complex scenarios are written in just a few lines of very simple, readable, and extensible code, that you can host just about anywhere, compatible with many database engines. A few years in, this language has become quite extensive, but remains very easy to pick up, with a very, very easy learning curve. It powers chatbots with millions of conversations, it is able to securely deal with super sensitive data if needed (we know of some really secure companies that are using it), and even works fully offline if needed.

You can try CSML on the playground here: https://play.csml.dev

Where did the name for CSML come from?

We are notoriously bad at naming things… The basic idea behind the CSML name was that we wanted to assert a few things about the language. It stands for Conversational Standard Meta Language. So you know that it’s for creating Conversational experiences. We also aim to make it the de facto standard for writing cool chatbots, so that’s where the S comes from. And it’s a Meta Language - technically, it’s a DSL, but it also makes it sound a bit like HTML, and basically we would like that people consider it like the HTML of chatbots.

Are there any overarching goals of CSML  that drive design or implementation?

There is one main goal, and one secondary goal. The main goal is that everything should be more or less intuitive and about the same as describing your logic in plain English, so that it’s really, really simple to pick up.

The secondary goal however is to make it as unlimited as possible. There should not be one single thing that’s impossible to achieve.

The reason the goals are in that order is that 90% of the CSML users will use just 10% of the possibilities of CSML so we should make that as easy as possible, but it should never limit you in what you need to do. That’s why, from the very first version of CSML, we have included a way to add external code in a CSML script, just so that we could bypass any inherent limitation, if needed, without waiting for the feature to be natively implemented (but you should definitely speak up and say what you need or why! Ideally through Slack or simply a github issue).

I would say that there are not many things from the first goal that are still missing, so we focus more on the second goal now. Also, some of our users are starting to be very proficient with CSML and to do things that we couldn’t imagine ourselves, so we need to heavily invest in many niche features now. But we do find some “things that should be easy, but are hard AF” from time to time. For example: believe it or not, there is no for-loop/while-loop in CSML right now as of v1.7.0 (there are other ways to iterate over stuff) but it was only very recently, after all those years, that a user ever wondered about how to achieve something that would be so much easier with a for-loop. So that’s going into the next release!

If so, what trade-offs have been made in CSML  as a consequence of these goals?

I think the most important trade-off is that the code that you write in CSML can simply not be too smart. It’s a language to write dumb code. This is super powerful for junior developers as they have a lot of freedom and not too many constraints, it’s very easy to learn, but it can also be a bit frustrating for expert programmers who wish they would find some advanced concepts from C++ or Go or Rust, like better control over memory allocation, more optimization, strong types, etc. But it doesn’t matter! We are not writing code that puts a rover on Mars: we are helping people create great chatbots. One of the most important parts of CSML is basically to add sleep(2000) more or less everywhere, because you actually do NOT want the chatbot to go too fast (it feels horrible to read otherwise)!

There is actually a vast majority of junior developers on Earth. We’re happy to create something that’s focused on making it the best experience for that audience and that actually helps them grow in their development career with a not-so-scary programming language that still gives them a lot of control.

Are there any competitors or projects similar to CSML? If so, what were they lacking that made you consider building something new?

There are basically 2 types of chatbot-related products out there.

Some like Rasa (also open source), Google Dialogflow, Amazon Lex, Microsoft Luis etc. focus mostly on the Natural Language Understanding part of the problem, which is in my opinion the wrong problem. It stops short of what makes a chatbot really valuable by only focusing on understanding the input, but not doing much to help the developer handle it, remember stuff from one session to another, connect to other APIs etc., which is what the end user actually needs. So either the developer has to write a LOT of code to make the chatbot useful, or the users are left with a funny chatbot that can do some nice small talk but is not capable of much. We address that by focusing on the developer experience to actually be able to build complex conversational assistants very easily but we consider that NLU is just a feature, not a product.

Other products are no-code platforms like Manychat, Chatfuel, Landbot etc. which let you make a simple chatbot in a few minutes but lack in ways to make your chatbot truly scale. It’s usually a nightmare to work on larger chatbots, or with a team. Also, let’s say you want to export your bot and re-import it elsewhere: since all you have is a fancy graphical interface, how are you exactly going to do that? All you can do is print it, and that is of no use. So those products are great for prototypes and quick and dirty experiences, but the tradeoffs at scale can be really an issue, which we obviously handle by creating a programming language that you can write with any text editor, host anywhere, run on an open-source engine and standard/non-locking dependencies, version as you like on git or any other version control tool...

What is the release process like for CSML?

We have 2 main branches, dev and master. On master we only have the code that goes in final releases, and we use dev to create pre-releases and merge all our feature branches. Each feature has its own branch and gets a full run of tests using Github actions before it can be merged. When we want to create a new release we also use a Github action which will compile a new version of the CSML interpreter then build a new binary and docker image for the server then publish it everywhere it needs to go. The great thing about Github actions (although the syntax is hideous compared to gitlab-ci.yml files) is that it’s easy to compile things on multiple platforms/architectures! So we publish binaries for Mac and Linux, and are going to add Windows builds soon.

How is CSML eventually intended to be monetized?

We have created CSML Studio, a SaaS version available with various plans (free/pro/enterprise) on https://studio.csml.dev which includes a lot of extra features that are kind of “satellites” to CSML. For example one of our latest features on CSML Studio is a built-in, mini Customer Data Platform that allows you to save data from your chatbot users in a database that you can then export to a BI tool of your choice. It also contains connectors to all the most popular communication channels (while the CSML Engine is API-based only), and 100+ ready-to-use connectors with popular APIs and software. But at its core it will always be the exact same CSML engine as what you can find on Github!

How do you balance your work on open-source with your day job and other responsibilities?

We have decided early on that even though CSML was going to be a major part of our company (we sell no-code conversational automation products to large enterprise customers - which in the background uses the CSML engine), it would be open-source. So the decisions on what I spend time on in general are always business-driven, but if I’m spending time on CSML, it will mostly be open-source.

What is the best way for a new developer to contribute to CSML?

We don’t actually expect most CSML users to contribute to CSML itself. The goal of CSML is to make it really easy, even for beginners/not-so-great developers, to develop complex chatbots. We do so by maintaining a chatbot engine in a very advanced, complex programming language, Rust. There is usually not a whole lot of intersection between beginners/junior developers who need a very simple but powerful chatbot engine AND understand and can write more complex, low-level code in Rust. So what we usually recommend when people ask us how they can contribute is that they report their issues or give us feedback and insights into how they are using CSML either in the repo or on Slack, and that they produce and publish content, entire chatbots or smaller modules that perform interesting tasks. And if they are missing a bit of documentation or something is unclear, this could also lead to a very valuable contribution!

If you plan to continue developing CSML, where do you see the project heading next?

We are focusing more and more on the “Automation” part of “Conversational Automation”. We feel that CSML as a language is starting to look pretty good features-wise, and now we want to focus on making it easier to do more complex things - better serve our power-users. So there will be a powerful CSML CLI very soon, and more powerful ways to extend the language and connect to other APIs.

Also, I feel that we have not been doing error handling and logging correctly, so we might look at this soon.

Are there any other projects besides CSML that you’re working on?

I have one toddler and a second one coming soon. I’m good for now…

Do you have any other project ideas that you haven’t started?

A few actually. I used to do a lot of hackathons in the past and we had many very cool ideas back then, some are still quite relevant even 3-5 years later. But I think that if I have time to start working on something new, it might just be a personal, non code-related project, or just teaching myself something new.

Where do you see open-source heading next?

There have been some cool evolutions to the open source model recently, I think. There are still issues but I find that many fully open-source companies are funded now, and this was not so much the case just 2-3 years ago. It was very rare! So I believe there will be a lot of change in the business model of open-source projects, more companies will turn to OSS for their products and I’m quite excited about that.

Do you have any suggestions for someone trying to make their first contribution to an open-source project?

Don’t think too much about it. If you want to do something, you might as well publish it in open-source, unless you have a good reason not to. Otherwise, if you want to do something with an existing library and the feature does not exist, just propose creating a PR and see where it goes! Chances are the maintainers will be super happy - even if at the end you don’t succeed, they will always love the boost to know that somebody is using their project in a way they didn’t imagine and wants to push it further!

Also, asking “what can I do to help” is always a good way to start...

Loading more posts…