# play

Published articles for play.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Loony Laps Is a Toy Car Racing Game Coming to Quest 3 in Q1 2027

DevFeed: [Loony Laps Is a Toy Car Racing Game Coming to Quest 3 in Q1 2027](<https://devfeed.tech/articles/loony-laps-brings-tiny-cars-big-chaos-to-quest-3-in-2027-17286.md>)

Original publisher: [Read original article](<https://www.uploadvr.com/loony-laps-brings-tiny-cars-big-chaos-to-quest-3-in-2027/>)

Author: James Tocchio

Published: 2026-09-03T23:35:19Z

Content type: news

Language: en

Sources: [UploadVR](<https://devfeed.tech/sources/uploadvr.md>)

Topics: [arcade](<https://devfeed.tech/topics/arcade.md>), [racing-game](<https://devfeed.tech/topics/racing-game.md>)

Tags: [loops](<https://devfeed.tech/tags/loops.md>), [play](<https://devfeed.tech/tags/play.md>), [release](<https://devfeed.tech/tags/release.md>), [toys](<https://devfeed.tech/tags/toys.md>), [vr-gaming](<https://devfeed.tech/tags/vr-gaming.md>)

### AI overview

Loony Laps is a solo-developed arcade toy racing game for Quest 3 and Quest 3S, planned for release in Q1 2027. It features handcrafted tracks, customizable die-cast-style cars, and VR and mixed-reality play.

### Source excerpt

The solo-developed Loony Laps is an arcade toy racer for VR and mixed reality coming to Quest 3 headsets next year.

## Ubisoft debuts Player Council platform to expand early game development feedback

DevFeed: [Ubisoft debuts Player Council platform to expand early game development feedback](<https://devfeed.tech/articles/ubisoft-debuts-player-council-platform-to-expand-early-game-development-feedback-15083.md>)

Original publisher: [Read original article](<https://www.gamedeveloper.com/business/ubisoft-debuts-player-council-platform-to-expand-early-game-development-feedback>)

Author: Bryant Francis

Published: 2026-08-26T15:50:50Z

Content type: news

Language: en

Sources: [gamedeveloper](<https://devfeed.tech/sources/gamedeveloper.md>)

Topics: [Game Development](<https://devfeed.tech/topics/game-development.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [communication](<https://devfeed.tech/tags/communication.md>), [development-process](<https://devfeed.tech/tags/development-process.md>), [external](<https://devfeed.tech/tags/external.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [gamescom](<https://devfeed.tech/tags/gamescom.md>), [multiplayer](<https://devfeed.tech/tags/multiplayer.md>), [platform](<https://devfeed.tech/tags/platform.md>), [play](<https://devfeed.tech/tags/play.md>), [projects](<https://devfeed.tech/tags/projects.md>), [prototype](<https://devfeed.tech/tags/prototype.md>), [prototypes](<https://devfeed.tech/tags/prototypes.md>)

### AI overview

Ubisoft has launched The Player Council, a platform that invites players to provide feedback on early concepts, prototypes, and live experiences. The initiative is intended to involve players before games reach the first playable prototype stage and includes projects such as Codename Split Point and Codename Rook.

### Source excerpt

Player Council members will be invited to test 'early concepts, prototypes, and live experiences.'

## Game Builder Tutorial 1: Build a 2D Platformer -- Duke's Coffee Run

DevFeed: [Game Builder Tutorial 1: Build a 2D Platformer -- Duke's Coffee Run](<https://devfeed.tech/articles/game-builder-tutorial-1-build-a-2d-platformer-duke-s-coffee-run-19309.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/game-builder-2d-platformer/>)

Author: Shai Almog

Published: 2026-06-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Code](<https://devfeed.tech/topics/code.md>), [Java](<https://devfeed.tech/topics/java.md>), [arcade](<https://devfeed.tech/topics/arcade.md>)

Tags: [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [guide](<https://devfeed.tech/tags/guide.md>), [java](<https://devfeed.tech/tags/java.md>), [play](<https://devfeed.tech/tags/play.md>), [points](<https://devfeed.tech/tags/points.md>), [project](<https://devfeed.tech/tags/project.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A code-included tutorial for building a playable 2D platformer with the Codename One Game Builder. It covers importing an animated Duke sprite sheet, designing a level, using generated level data and companion code, and implementing win and lose behavior.

### Source excerpt

A complete, code-included walkthrough that builds a playable 2D platformer with the Codename One Game Builder -- importing an animated Duke sprite sheet, designing the level, and the win/lose code.

## Starting Your First Discord Server

DevFeed: [Starting Your First Discord Server](<https://devfeed.tech/articles/starting-your-first-discord-server-283.md>)

Original publisher: [Read original article](<https://discord.com/blog/starting-your-first-discord-server>)

Author: Cody Sanchez

Published: 2025-08-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Discord Blog](<https://devfeed.tech/sources/discord-blog.md>)

Topics: [Discord](<https://devfeed.tech/topics/discord.md>), [servers](<https://devfeed.tech/topics/servers.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Template](<https://devfeed.tech/topics/template.md>), [web browser](<https://devfeed.tech/topics/web-browser.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [browser](<https://devfeed.tech/tags/browser.md>), [channel](<https://devfeed.tech/tags/channel.md>), [discord](<https://devfeed.tech/tags/discord.md>), [games](<https://devfeed.tech/tags/games.md>), [play](<https://devfeed.tech/tags/play.md>), [server](<https://devfeed.tech/tags/server.md>), [talk](<https://devfeed.tech/tags/talk.md>), [voice](<https://devfeed.tech/tags/voice.md>)

### AI overview

A beginner-friendly guide to creating a Discord server, explaining how servers organize conversations and how to set one up for friends, gaming, and other shared interests.

### Source excerpt

Looking to create a new Discord server for the first time? How do you invite your friends to it? What even IS a text or voice channel in Discord? Follow along as we help you start up a new place to talk and play games with your friends.

## Double Fine Adventure documents the development of Broken Age

DevFeed: [Double Fine Adventure documents the development of Broken Age](<https://devfeed.tech/articles/you-should-watch-double-fine-adventure-21720.md>)

Original publisher: [Read original article](<https://oleb.net/2023/double-fine-adventure/>)

Author: Ole Begemann

Published: 2023-01-31T18:39:27Z

Content type: opinion

Language: en

Sources: [Ole Begemann](<https://devfeed.tech/sources/ole-begemann.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [development-process](<https://devfeed.tech/tags/development-process.md>), [experience](<https://devfeed.tech/tags/experience.md>), [financial](<https://devfeed.tech/tags/financial.md>), [kickstarter](<https://devfeed.tech/tags/kickstarter.md>), [people](<https://devfeed.tech/tags/people.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [play](<https://devfeed.tech/tags/play.md>), [production](<https://devfeed.tech/tags/production.md>), [project](<https://devfeed.tech/tags/project.md>), [team](<https://devfeed.tech/tags/team.md>), [video](<https://devfeed.tech/tags/video.md>), [work](<https://devfeed.tech/tags/work.md>), [youtube](<https://devfeed.tech/tags/youtube.md>)

### AI overview

This opinion article recommends the Double Fine Adventure documentary, which follows the three-year development of Broken Age and offers candid insight into game development, including financial problems, layoffs, and long work hours. It also discusses experiencing the documentary alongside the game.

### Source excerpt

I know I'm almost a decade late to this party, but I'm probably not the only one, so here goes. Double Fine Adventure was a wildly successful 2012 Kickstarter project to crowdfund the development of a point-and-click adventure game and, crucially, to document its development on video. The resulting game Broken Age was eventually released in two parts in 2014 and 2015. Broken Age is a beautiful game and I recommend you try it. It's available for lots of platforms and is pretty cheap (10-15 euros/dollars or less). I played it on the Nintendo Switch, which worked very well. Broken Age. But the real gem to me was watching the 12.5-hour documentary on YouTube. A video production team followed the entire three-year development process from start to finish. It provides a refreshingly candid and transparent insight into "how the sausage is made", including sensitive topics such as financial problems, layoffs, and long work hours. Throughout all the ups and downs there's a wonderful sense of fun and camaraderie among the team at Double Fine, which made watching the documentary even more enjoyable to me than playing Broken Age. You can tell these people love working with each other. I highly recommend taking a look if you find this mildly interesting. The Double Fine Adventure documentary. The first major game spoilers don't come until episode 15, so you can safely watch most of the documentary before playing the game (and this is how the original Kickstarter backers experienced it). However, I think it's even more interesting to play the game first, or to experience both side-by-side. My suggestion: watch two or three episodes of the documentary. If you like it, start playing Broken Age alongside it.

## Clojure Sound - 4 - Ctrl-Left-Pedal

DevFeed: [Clojure Sound - 4 - Ctrl-Left-Pedal](<https://devfeed.tech/articles/clojure-sound-4-ctrl-left-pedal-20722.md>)

Original publisher: [Read original article](<http://dragan.rocks/articles/22/Clojure-Sound-4-Ctrl-Left-Pedal>)

Published: 2022-07-13T18:45:00Z

Content type: tutorial

Language: en

Sources: [Dragan Djuric](<https://devfeed.tech/sources/dragan-djuric.md>)

Topics: [Clojure](<https://devfeed.tech/topics/clojure.md>), [MIDI](<https://devfeed.tech/topics/midi.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [audio](<https://devfeed.tech/tags/audio.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [debug](<https://devfeed.tech/tags/debug.md>), [devices](<https://devfeed.tech/tags/devices.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [music](<https://devfeed.tech/tags/music.md>), [play](<https://devfeed.tech/tags/play.md>), [sound](<https://devfeed.tech/tags/sound.md>), [usb](<https://devfeed.tech/tags/usb.md>)

### AI overview

This article explores using Clojure to build a basic audio player controlled by MIDI input. It describes playing selected segments of a WAV recording with arbitrary repetitions and connecting both a USB MIDI controller and a MIDI-connected foot pedal.

### Source excerpt

In the last article we managed to connect a MIDI controller and receive updates whenever something happens to its knobs and buttons. So what? As it is, nothing. Printing out messages is not of much use, beyond perhaps getting informed about how these messages look like, and what kind of data they typically contain. On another thought, exactly that is often valuable, because how else can we debug what's happening and learn how to use these devices. They typically don't come with terrific manuals. Luckily, basic use revolves around receiving one of a few kind of standard messages, that typically contain only a handful of bytes, more or less conforming to the MIDI standard, so it's up to us to assign the meaning according to our use case. If we care to read the standard, we could try to pick the closest meaning in our application, but if that's not possible, or practical, well... you live only once. Let's celebrate creativity and be silly. What I would like Cool, so, at first, I have an audio recording of a few chords interposed with some talk and noise, just a single wav file. I'd like to discover how to play only selected segments (i.e. the chords I'm interested in guessing), with arbitrary repetitions. The purpose of this is not to create a perfect looper or learning device, at least not yet. At first, I'm just interested in creating the crudest audio player, and discovering how to connect the player to react to the input from the MIDI controller that we connected last week. After that, it would be nice to see whether the foot pedal works in the same way, or it needs more poking. As we discovered last week, the more modern Faderfox MX12 connects through USB and is listed as one of the connected MIDI devices. The Roland FC-300 foot pedal, does not support USB, so I connect it via a 5-pin MIDI cable to my USB sound card. It will probably be displayed as a MIDI in/out of that sound card (more on that later). MIDI Controller (hands) The usual imports: (ns my-midi) (requir

## Integrating and Testing Google In-App Review in an Android App

DevFeed: [Integrating and Testing Google In-App Review in an Android App](<https://devfeed.tech/articles/in-app-review-37999.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/koshelek/articles/552468/>)

Author: android\_sumin (Кошелёк)

Published: 2021-04-15T09:23:21Z

Content type: tutorial

Language: ru

Sources: ["Кошелёк" RU](<https://devfeed.tech/sources/ru.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [App](<https://devfeed.tech/topics/app.md>), [Google](<https://devfeed.tech/topics/google.md>), [huawei](<https://devfeed.tech/topics/huawei.md>)

Tags: [android-development](<https://devfeed.tech/tags/android-development.md>), [api](<https://devfeed.tech/tags/api.md>), [app](<https://devfeed.tech/tags/app.md>), [google](<https://devfeed.tech/tags/google.md>), [huawei](<https://devfeed.tech/tags/huawei.md>), [in-app-review](<https://devfeed.tech/tags/in-app-review.md>), [play](<https://devfeed.tech/tags/play.md>), [review](<https://devfeed.tech/tags/review.md>), [tag-029e6de181be](<https://devfeed.tech/tags/tag-029e6de181be.md>), [tag-64fbfec0bb2f](<https://devfeed.tech/tags/tag-64fbfec0bb2f.md>), [tag-cc870f3d2b0d](<https://devfeed.tech/tags/tag-cc870f3d2b0d.md>), [tag-ff8611445bc5](<https://devfeed.tech/tags/tag-ff8611445bc5.md>)

### AI overview

This article describes integrating Google In-App Review into an app and testing its review dialog. It discusses Play Market build requirements, callback limitations, and handling failures on Huawei devices without Google Play services.

### Source excerpt

Ни для кого не секрет, что, если пользователю не нравится ваше приложение -- он с большой вероятностью оставит негативный отзыв. Но если его все устраивает -- далеко не факт, что он захочет тратить время, чтобы поставить оценку в маркете. Читать далее

## Serverless supports experimentation without upfront cost concerns

DevFeed: [Serverless supports experimentation without upfront cost concerns](<https://devfeed.tech/articles/serverless-is-the-ultimate-place-to-experiment-14181.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/experiment-with-serverless>)

Author: Gareth McCumskey

Published: 2020-07-06T00:00:00Z

Content type: opinion

Language: en

Sources: [Serverless Blog](<https://devfeed.tech/sources/serverless-blog.md>)

Topics: [Serverless](<https://devfeed.tech/topics/serverless.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [experiment](<https://devfeed.tech/tags/experiment.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [play](<https://devfeed.tech/tags/play.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>)

### AI overview

The article presents serverless as a suitable option for experimenting and trying things without worrying about bills and costs.

### Source excerpt

If all you want to do is play around and try stuff without worrying bills and costs, serverless is the place for you!

## Introducing Vectordrawable-Seekable

DevFeed: [Introducing Vectordrawable-Seekable](<https://devfeed.tech/articles/introducing-vectordrawable-seekable-23103.md>)

Original publisher: [Read original article](<https://medium.com/android-news/introducing-vectordrawable-seekable-b96ef57ffe36?source=rss----8fca399d4de---4>)

Author: Alistair Sykes

Published: 2020-05-11T13:35:28Z

Content type: tutorial

Language: en

Sources: [Android & Tech News -- Medium](<https://devfeed.tech/sources/android-tech-news-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [media3](<https://devfeed.tech/topics/media3.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Library](<https://devfeed.tech/topics/library.md>), [SDK](<https://devfeed.tech/topics/sdk.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [animation](<https://devfeed.tech/tags/animation.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [library](<https://devfeed.tech/tags/library.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [play](<https://devfeed.tech/tags/play.md>), [repeat](<https://devfeed.tech/tags/repeat.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [screen](<https://devfeed.tech/tags/screen.md>), [vector](<https://devfeed.tech/tags/vector.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This tutorial introduces the Vectordrawable-Seekable library for Android. It explains how Core-Animation and SeekableAnimatedVectorDrawable add pause and seek controls to animated vector drawables, then demonstrates creating vector, animation, and drawable XML resources and displaying the result.

### Source excerpt

Using the new and improved AnimatedVectorDrawable to pause and seek your animations.AnimatedVectorDrawable Android SDK 21 introduced both the VectorDrawable and the AnimatedVectorDrawable. This allowed you to use vector assets within your app, and even animate them. They've iterated on these since then, but AnimatedVectorDrawable was still missing something. You couldn't manipulate and control the animation. There was no pause or seek functionality. Core-Animation The Android team has been hard at work backporting the framework Animator APIs. They have created a separate unbundled AndroidX library called Core-Animation. The Animator APIs have been around for some time. But they didn't provide the capabilities needed for this pause and seek functionality. So they needed to be unbundled and then iterated on. Vectordrawable-Seekable Once Core-Animation was available the Android team could create the Vectordrawable-Seekable library. This library revolves around the class SeekableAnimatedVectorDrawable. Under the hood, this class uses the AnimatorSet and subsequently Animator from Core-Animation. These provide the pause and seek functionality. How toCreate the vector Firstly, you need a vector asset of the image you wish to animate. This works best if it is simple and optimised. See these resources for information on optimising assets: - https://www.brightec.co.uk/blog/creating-vector-drawables-android - https://arturdryomov.dev/posts/optimizing-android-vector-images/ For this example I am going to use an Android: https://medium.com/media/c1f49ee65961374471c7019479d595cf/href This XML file should be placed in your res/drawable directory. Notice the group names, as these allow us to reference each part of the image later. Notice also the pivot points defined. These define the pivot around which rotation would happen. Create the animation To define the animation itself you can create another XML file. This defines an ObjectAnimator. https://medium.com/media/51350379510a257

## Async Play and Pause Support

DevFeed: [Async Play and Pause Support](<https://devfeed.tech/articles/async-play-and-pause-support-19363.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/media-async-play-and-pause-support/>)

Author: Steve Hannah

Published: 2019-12-12T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Playback](<https://devfeed.tech/topics/playback.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [async](<https://devfeed.tech/tags/async.md>), [browser](<https://devfeed.tech/tags/browser.md>), [play](<https://devfeed.tech/tags/play.md>), [playback](<https://devfeed.tech/tags/playback.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

The article introduces Codename One's AsyncMedia interface, which adds asynchronous play and pause support to Media APIs. It explains that browser media permissions can create significant delays between a play request and actual playback, and describes how the new API helps applications track playback state and failures.

### Source excerpt

We've recently released a few updates to our Media APIs in order to support a wider variety of use cases. One of these upgrades is the new AsyncMedia interface, which includes async play and pause support. The Media interface has always had play() and pause() methods, but it didn't provide an easy way to detect when they had taken effect. On most platforms, this hasn't been a major issue because the delay between when play() is called, and when the media actually starts playing is small, or negligible. But our Javascript port presented some new challenges due to strict browser permissions surrounding media playback. In some cases, which I'll discuss in detail in my next blog post, the user will be prompted to provide permission to play audio, or access the microphone, when play() is called. This means that the delay between play() and when the media actually starts playing may be significant.

## Consume less, create more

DevFeed: [Consume less, create more](<https://devfeed.tech/articles/consume-less-create-more-37249.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/consume-less-create-more/>)

Author: Stanko

Published: 2018-01-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [craft](<https://devfeed.tech/tags/craft.md>), [new-year](<https://devfeed.tech/tags/new-year.md>), [play](<https://devfeed.tech/tags/play.md>), [write](<https://devfeed.tech/tags/write.md>)

### AI overview

A personal new year's resolution to consume less and create more through coding, writing, playing, and crafting.

### Source excerpt

That's my new year's resolution. Code, write, play and craft more!

## Grafana - installation and configuraton with InfluxDB and CollectD on Debian/Ubuntu

DevFeed: [Grafana - installation and configuraton with InfluxDB and CollectD on Debian/Ubuntu](<https://devfeed.tech/articles/grafana-installation-and-configuraton-with-influxdb-and-collectd-on-debian-ubuntu-27633.md>)

Original publisher: [Read original article](<https://gagor.pro/2016/01/grafana-installation-and-configuraton-with-influxdb-and-collectd-on-debian-ubuntu/>)

Author: Tom

Published: 2016-01-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Grafana](<https://devfeed.tech/topics/grafana.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [collectd](<https://devfeed.tech/tags/collectd.md>), [debian](<https://devfeed.tech/tags/debian.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [https](<https://devfeed.tech/tags/https.md>), [influxdb](<https://devfeed.tech/tags/influxdb.md>), [installation](<https://devfeed.tech/tags/installation.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [packages](<https://devfeed.tech/tags/packages.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [play](<https://devfeed.tech/tags/play.md>), [port](<https://devfeed.tech/tags/port.md>), [scripted](<https://devfeed.tech/tags/scripted.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

A tutorial on installing and configuring Grafana with InfluxDB and CollectD on Debian or Ubuntu. It covers configuring the Grafana package repository, installing Grafana, choosing SQLite or configuring MySQL, connecting to Grafana on port 3000, and adding InfluxDB source data.

### Source excerpt

Now when you have CollectD and InfluxDB installed you may configure Grafana 😃 First configure repo with current Grafana version (select your distro): curl https://packagecloud.io/gpg.key | sudo apt-key add - deb https://packagecloud.io/grafana/testing/debian/ wheezy main Now install package (on wheezy I needed to install apt-transport-https to allow installation of packages from repo via HTTPS): apt-get update apt-get install -y apt-transport-https apt-get install -y grafana By default Grafana will use sqlite database to keep information about users, etc:

## Using Play validation with Scala for strongly typed Hadoop and Spark data pipelines

DevFeed: [Using Play validation with Scala for strongly typed Hadoop and Spark data pipelines](<https://devfeed.tech/articles/strange-bedfellows-how-a-web-tier-validation-framework-enables-strongly-typed-big-data-pipelines-20850.md>)

Original publisher: [Read original article](<http://themodernlife.net/scala/validation/play/spark/2014/08/07/serlialization-validation-in-play-and-spark/>)

Published: 2014-08-07T11:50:13Z

Content type: article

Language: en

Sources: [Ian Hummel](<https://devfeed.tech/sources/ian-hummel.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>), [Hadoop](<https://devfeed.tech/topics/hadoop.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Exception](<https://devfeed.tech/topics/exception.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [big-data](<https://devfeed.tech/tags/big-data.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [framework](<https://devfeed.tech/tags/framework.md>), [hadoop](<https://devfeed.tech/tags/hadoop.md>), [play](<https://devfeed.tech/tags/play.md>), [scala](<https://devfeed.tech/tags/scala.md>), [spark](<https://devfeed.tech/tags/spark.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

The article examines whether Play's validation API, commonly used for HTML form and JSON submissions, can also support backend data pipelines powered by Hadoop or Spark. It describes applying validation during translation of encoded records into strongly typed Scala data.

### Source excerpt

The other day I was talking with a colleague about data validation and the Play web framework came up. Play has a nice API for validating HTML form and JSON submissions. This works great when you're processing small amounts of data from the web-tier of your application. But could that same tech benefit a Big Data team working on a backend powered by Hadoop or Spark? We decided to find out and the results were encouraging. The secret sauce? Play's combinator-based approach to data validation. Whether your data is big or small, garbage in is garbage out MediaMath processes TBs of online user behavior and advertising data every day. It's inevitable that with hundreds of machines spread across multiple datacenters, legacy systems and partner provided APIs we receive bad data or invalid records from time to time. Systems built around file formats like CSV or TSV are especially susceptible to encoding errors that can cause headaches for downstream processing systems. So what are your options? Quite often the first step for most data processing pipelines (be they single node scripts or massive Hadoop jobs) is translating some kind of encoded wire format T into a record of type D for partitioning, joining, filtering or aggregating. In mathematical terms, you need a function translate: (input: T) => D where input could be a parsed JSON object, a snippet of XML, an array of bytes or an array of stings in the case of tab or comma delimited files. But what if the translation fails? Think about the scenario of processing a CSV file line by line. Each line has columns of different types (strings, integers, floating point numbers). What if someone puts "#@$?" where you were expecting a number? Or leaves a required field blank? In other words, our function is only defined for some values of T (it's a partial function). At MediaMath we use Scala, so the natural choice would be to model this by throwing an exception or returning an Option[D]. That said, a richer validation API would