flow.ci Weekly Mashup 15

AI Deathmatch, JavaScript, Rack Web Server and More

This week, we cover:

- Controversial AI Has Been Trained to Kill Humans in a Doom Deathmatch
- How to Choose a JavaScript Framework to Learn
- Building a Rack Web Server in Ruby
- Data Mining in Python: A Guide
- Top 10 Programming Language and Their Inventors Name
- Manage Your Biases as a Tester
- Artificial Intelligence-Powered Malware Is Coming, and It’s Going to Be Terrifying

Controversial AI Has Been Trained to Kill Humans in a Doom Deathmatch

The competition of training AI to kill other players in a Doom deathmatch had sparked scientific interest and controversy. The original purpose of the game was to exhibit the advancements in AI learning techniques. But the fact that AI agents were designed to kill human players while navigating the “world” like humans shows that AI might pose a danger to people if its development is not controlled properly. Read more at sciencealert.com.

How to Choose a JavaScript Framework to Learn

When you are getting started with JavaScript, finding the right framework to learn can be quite overwhelming. Arguments about this topic often end by saying “It depends on the project”. Edem Kumodzi rather thinks it depends more on your personal preferences and on your previous programming experiences. If you are a backend developer you might be better off starting with Ember.js while if you are web designer it might be easier to learn Angular.js first. Learn more at edemkumodzi.com.

Building a Rack Web Server in Ruby

Rack is a minimal interface that structures web applications written in Ruby. Rack web servers handle sockets, HTTP requests, and process management. Kevin Sylvestre provides a step by step guide to building a Reck web server in Ruby including the following:

  • Setting up a Library as a Gem.
  • Getting Started with Logging.
  • Exploring a Command Line Interface in Ruby.
  • Using Sockets in Ruby.
  • A Crash Course on HTTP and Rack.

Data Mining in Python: A Guide

Data mining is an interdisciplinary field of computer science, the process (art) of discovering predictive information from analysing of large databases. It includes a variety of methods such as machine learning and artificial intelligence. Data mining requires a diverse set of skills and knowledge in statistics and different programming languages. This example-packed guide from Springboard introduces the fundamentals of data mining using Python. The article explains basic definitions, algorithms, data mining techniques such as regression and clustering.

Top 10 Programming Language and Their Inventors Name

Ever wondered who made JavaScript and C++ ? (hint: not the same person) Do you know who Yukihiro Matsumoto is? From Prophet Hacker’s post, you can learn who are the masterminds behind some of the most widely use programming languages.

Manage Your Biases as a Tester

In the first part of this four-part series, Stéphane Colson talks about cognitive biases caused by “Too Much Information” from software testers point of view. Four main biases are discussed and illustrated with situations that software testers are likely to be familiar with:

  • Availability bias
  • Anchoring effect
  • Confirmation bias
  • Naive realism

If you tend to pay more attention to results that are confirming your hypothesis or often think that people who disagree with you are uninformed, irrational, or biased, then this might be a good article for you.

Artificial Intelligence-Powered Malware Is Coming, and It’s Going to Be Terrifying

The evolution of artificial intelligence-related technologies is moving forward at a rapid pace. It is a great opportunity but it is also a great risk. As AI gets more and more sophisticated it can inevitably find its into malware causing disastrous outcome for individuals and businesses. According to Business Insider, within years, AI based smart viruses could hold industrial equipment to ransom and could learn to mimic people you know. Read more and get your IT security ready.


flow.ci is a hosted continuous integration and delivery service, designed for teams who need a flexible and scalable solution but prefer not to maintain their own infrastructure. In flow.ci, development pipelines or automation workflows are simply called flows. In a flow, every step is a plugin that can be added by two clicks. You can add as many steps to your flow as you need, and there is no time limit on builds.