# simple

Published articles for simple.

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

## Kotlin Coroutines Compared with Reactor for Sequential and Asynchronous Operations

DevFeed: [Kotlin Coroutines Compared with Reactor for Sequential and Asynchronous Operations](<https://devfeed.tech/articles/coroutines-vs-reactor-when-elegance-and-simplicity-crush-complexity-39263.md>)

Original publisher: [Read original article](<https://kt.academy/article/coroutines-vs-reactor>)

Published: 2025-10-06T00:00:00Z

Content type: comparison

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Reactive Streams](<https://devfeed.tech/topics/reactive-streams.md>), [RxJava](<https://devfeed.tech/topics/rxjava.md>), [async/await](<https://devfeed.tech/topics/async-await.md>), [Android](<https://devfeed.tech/topics/android.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [async](<https://devfeed.tech/tags/async.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [await](<https://devfeed.tech/tags/await.md>), [backend](<https://devfeed.tech/tags/backend.md>), [compare](<https://devfeed.tech/tags/compare.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [reactive-streams](<https://devfeed.tech/tags/reactive-streams.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [simple](<https://devfeed.tech/tags/simple.md>), [time](<https://devfeed.tech/tags/time.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This article compares Kotlin Coroutines with Reactor for backend and Android development. It argues that coroutines provide more readable and straightforward syntax for sequential and asynchronous operations, while Reactor requires additional operators, concepts, and patterns.

### Source excerpt

A comparison of Kotlin Coroutines and Reactor, highlighting the elegance and simplicity of Coroutines over the complexity of Reactor.

## My Simple Knowledge Management and Time Tracking System

DevFeed: [My Simple Knowledge Management and Time Tracking System](<https://devfeed.tech/articles/my-simple-knowledge-management-and-time-tracking-system-29063.md>)

Original publisher: [Read original article](<https://henrikwarne.com/2024/11/09/my-simple-knowledge-management-and-time-tracking-system/>)

Author: Henrik Warne

Published: 2024-11-09T16:10:58Z

Content type: opinion

Language: en

Sources: [Henrik Warne](<https://devfeed.tech/sources/henrik-warne.md>)

Topics: [knowledge-management](<https://devfeed.tech/topics/knowledge-management.md>), [time tracking](<https://devfeed.tech/topics/time-tracking.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Git](<https://devfeed.tech/topics/git.md>), [Script](<https://devfeed.tech/topics/script.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [commands](<https://devfeed.tech/tags/commands.md>), [curl](<https://devfeed.tech/tags/curl.md>), [files](<https://devfeed.tech/tags/files.md>), [git](<https://devfeed.tech/tags/git.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [knowledge-management](<https://devfeed.tech/tags/knowledge-management.md>), [notes](<https://devfeed.tech/tags/notes.md>), [python](<https://devfeed.tech/tags/python.md>), [script](<https://devfeed.tech/tags/script.md>), [shell](<https://devfeed.tech/tags/shell.md>), [simple](<https://devfeed.tech/tags/simple.md>), [time-tracking](<https://devfeed.tech/tags/time-tracking.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

The author describes a simple personal system using notes.txt to record commands, procedures, and other important information, and worktime.txt to track daily hours and tasks. A Python script calculates daily and weekly hours. The notes provide reusable instructions and command examples, while repeated use helps the author remember them.

### Source excerpt

I am using a very simple system for remembering commands and procedures, and for tracking what I work on. I have two plain text files called notes.txt and worktime.txt. In the notes file, I write down things that are important ... Continue reading ->

## Run SpinKube on Rancher Desktop

DevFeed: [Run SpinKube on Rancher Desktop](<https://devfeed.tech/articles/run-spinkube-on-rancher-desktop-15383.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/spinkube-rancher>)

Author: Matt Butcher

Published: 2024-03-19T12:00:00Z

Content type: tutorial

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [rancher](<https://devfeed.tech/topics/rancher.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [build](<https://devfeed.tech/tags/build.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [rancher](<https://devfeed.tech/tags/rancher.md>), [run](<https://devfeed.tech/tags/run.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

A tutorial that builds a simple JavaScript app and deploys it into a Rancher Desktop cluster using SpinKube.

### Source excerpt

Let's build a simple JavaScript app and deploy it into our Rancher Desktop cluster via SpinKube.

## How I Built an AI Inferencing API With Llama2 on Spin

DevFeed: [How I Built an AI Inferencing API With Llama2 on Spin](<https://devfeed.tech/articles/how-i-built-an-ai-inferencing-api-with-llama2-on-spin-15253.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/how-i-built-an-ai-inferencing-api-with-llama2-on-spin>)

Author: Caleb Schoepp

Published: 2023-09-21T01:00:00Z

Content type: tutorial

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [api](<https://devfeed.tech/tags/api.md>), [build](<https://devfeed.tech/tags/build.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [simple](<https://devfeed.tech/tags/simple.md>), [using](<https://devfeed.tech/tags/using.md>)

### AI overview

A tutorial on building a simple sentiment analysis API with Fermyon Serverless AI and Spin.

### Source excerpt

We build a simple sentiment analysis API using Fermyon Serverless AI and Spin.

## Fibery vs. Monday. Complex vs. simple processes.

DevFeed: [Fibery vs. Monday. Complex vs. simple processes.](<https://devfeed.tech/articles/fibery-vs-monday-complex-vs-simple-processes-40875.md>)

Original publisher: [Read original article](<https://medium.com/fibery/fibery-vs-monday-complex-vs-simple-processes-8a5ac913c889?source=rss-854c3da48589------2>)

Author: Michael Dubakov

Published: 2021-11-24T21:22:29Z

Content type: comparison

Language: en

Sources: [Stories by Michael Dubakov on Medium](<https://devfeed.tech/sources/stories-by-michael-dubakov-on-medium.md>)

Topics: [Product Management](<https://devfeed.tech/topics/product-management.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [complex](<https://devfeed.tech/tags/complex.md>), [databases](<https://devfeed.tech/tags/databases.md>), [mondaydotcom](<https://devfeed.tech/tags/mondaydotcom.md>), [product-development](<https://devfeed.tech/tags/product-development.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [product-management-tool](<https://devfeed.tech/tags/product-management-tool.md>), [simple](<https://devfeed.tech/tags/simple.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [software-development-tool](<https://devfeed.tech/tags/software-development-tool.md>), [ui](<https://devfeed.tech/tags/ui.md>), [vs](<https://devfeed.tech/tags/vs.md>)

### AI overview

A comparison of Fibery and Monday.com for organizing team processes. It presents Monday as feature-rich and flexible but complicated, with weaker support for modeling hierarchies and relationships, while Fibery uses connected spaces, databases, relations, and views to represent product-management structures such as Epics and Features.

### Source excerpt

Usually posts X vs. Y are shallow. This post is not. As the Fibery CEO, I have to switch off the bias. Take this post with a grain of salt. The major goal is to explain how Fibery is different and what strengths and weaknesses it has. Monday is a very feature-rich product. However, it's quite complicated. Let's dig something interesting together. General feelings Monday is very similar to ClickUp in many ways, but it seems that Monday is slightly less feature-reach (surprisingly). UI is high-contrast and snappy, but very flickery. When you move the mouse, everything blinks and changes, and this is quite distracting. It is visible that some parts of the system are new, while others are old, so the general feelings about the user interface are mixed. I can't say that I like it, but I feel that I can get used to it with time. The first 30 minutes are hard, but if you overcome the initial resistance, then the system starts to make sense. PhilosophyMonday = Work OSmonday.com is a Work Operating System (Work OS) that powers teams to run projects and workflows with confidence. Monday is a platform to build your processes. In this regard, the main mission is very similar to Fibery. Flexibility is the most important feature here. Monday has all important building blocks to organize processes: Flexible databases, Views, integrations, rules, and many productivity features. 🦐 One serious problem is that you can't model hierarchies and processes in a nice way. It's not possible to have a tree view that shows Epics and Features. It's not possible to have a board that shows Features by Epics, etc. Connections and relations are not a strong part of Monday. For complex processes, you will have to live with many workarounds. Fibery = Set of connected Spaces In Fibery everything is connected. The main building blocks are Space, Database, Relation, and View. Here is an example of a connected workspace for product development. Several connected apps in product development workspace. Spa

## send.firefox.com rocks

DevFeed: [send.firefox.com rocks](<https://devfeed.tech/articles/send-firefox-com-rocks-28165.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/firefox/2020/03/28/send-firefox-com-rocks.html>)

Author: Fuzzygroup

Published: 2020-03-28T00:00:00Z

Content type: opinion

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Firefox](<https://devfeed.tech/topics/firefox.md>)

Tags: [firefox](<https://devfeed.tech/tags/firefox.md>), [https](<https://devfeed.tech/tags/https.md>), [large-files](<https://devfeed.tech/tags/large-files.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

The article recommends Mozilla's send.firefox.com for sending large files to individuals, describing it as simple, easy to use, and powerful.

### Source excerpt

If you have to send a large file to an individual, use: https://send.firefox.com/ It is brilliantly simple, easy to use and powerful. Recommended.

## Let's Build A Simple Interpreter. Part 17: Call Stack and Activation Records

DevFeed: [Let's Build A Simple Interpreter. Part 17: Call Stack and Activation Records](<https://devfeed.tech/articles/let-s-build-a-simple-interpreter-part-17-call-stack-and-activation-records-33320.md>)

Original publisher: [Read original article](<https://ruslanspivak.com/lsbasi-part17/>)

Author: Ruslan Spivak

Published: 2019-08-28T15:00:00Z

Content type: tutorial

Language: en

Sources: [Ruslan Spivak](<https://devfeed.tech/sources/ruslan-spivak.md>)

Topics: [function](<https://devfeed.tech/topics/function.md>), [data](<https://devfeed.tech/topics/data.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [build](<https://devfeed.tech/tags/build.md>), [function](<https://devfeed.tech/tags/function.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [implement](<https://devfeed.tech/tags/implement.md>), [memory](<https://devfeed.tech/tags/memory.md>), [series](<https://devfeed.tech/tags/series.md>), [simple](<https://devfeed.tech/tags/simple.md>), [values](<https://devfeed.tech/tags/values.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

Part 17 of a series on building an interpreter explains plans to implement a new memory system for programs, procedure calls, and function calls, replacing the GLOBAL_MEMORY dictionary. It introduces memory as a way to store and access data and distinguishes physical memory from interpreter-level storage by variable names.

### Source excerpt

You may have to fight a battle more than once to win it. - Margaret Thatcher

## Using DTMF tones to route phone calls offline in the Simple healthcare app

DevFeed: [Using DTMF tones to route phone calls offline in the Simple healthcare app](<https://devfeed.tech/articles/reinventing-the-dial-up-modem-29024.md>)

Original publisher: [Read original article](<https://saket.me/dtmf-tones/>)

Author: Saket Narayan

Published: 2019-08-18T00:55:04Z

Content type: article

Language: en

Sources: [Saket Narayan](<https://devfeed.tech/sources/saket-narayan.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Android](<https://devfeed.tech/topics/android.md>), [Internet](<https://devfeed.tech/topics/internet.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [communication](<https://devfeed.tech/tags/communication.md>), [data](<https://devfeed.tech/tags/data.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [dtmf](<https://devfeed.tech/tags/dtmf.md>), [offline-first](<https://devfeed.tech/tags/offline-first.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [simple](<https://devfeed.tech/tags/simple.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

The article explains how the Simple healthcare app used DTMF tones to send a patient's phone number to a server during calls, enabling phone-number masking and offline-first operation when internet access was unavailable.

### Source excerpt

While working on a healthcare app called Simple at my previous company, we wanted to improve how nurses follow up with their patients. The aim was to replace traditional paper registers + landline phones with the app, which could intelligently suggest patients who are potentially at risk based on their medical history, age, and other [...] The post Reinventing the dial-up modem appeared first on Saket Narayan.

## Writing Consistent Tools

DevFeed: [Writing Consistent Tools](<https://devfeed.tech/articles/writing-consistent-tools-30166.md>)

Original publisher: [Read original article](<https://www.netmeister.org/blog/consistent-tools.html>)

Published: 2019-02-20T22:13:02Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [Tool](<https://devfeed.tech/topics/tool.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [set](<https://devfeed.tech/tags/set.md>), [simple](<https://devfeed.tech/tags/simple.md>), [tools](<https://devfeed.tech/tags/tools.md>), [unix](<https://devfeed.tech/tags/unix.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

The article presents simple guidelines for writing consistent Unix tools.

### Source excerpt

A set of simple guidelines to write consistent unix tools.

## Using Goss to validate Packer builds

DevFeed: [Using Goss to validate Packer builds](<https://devfeed.tech/articles/using-goss-to-validate-packer-builds-37820.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/packer-goss/>)

Author: Carlos Alexandro Becker

Published: 2018-12-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [test](<https://devfeed.tech/topics/test.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [builds](<https://devfeed.tech/topics/builds.md>), [Server](<https://devfeed.tech/topics/server.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [download](<https://devfeed.tech/tags/download.md>), [example](<https://devfeed.tech/tags/example.md>), [file](<https://devfeed.tech/tags/file.md>), [fork](<https://devfeed.tech/tags/fork.md>), [git-tags](<https://devfeed.tech/tags/git-tags.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [releases](<https://devfeed.tech/tags/releases.md>), [run](<https://devfeed.tech/tags/run.md>), [simple](<https://devfeed.tech/tags/simple.md>), [test](<https://devfeed.tech/tags/test.md>), [tool](<https://devfeed.tech/tags/tool.md>), [useful](<https://devfeed.tech/tags/useful.md>), [using](<https://devfeed.tech/tags/using.md>)

### AI overview

A practical tip for validating Packer-built images with Goss. The article describes using a Packer plugin and a Goss test suite to check an image before pushing it to Google Cloud.

### Source excerpt

Ever wanted to validate your Packer image with Goss? Well, you can!

## HelloKeystore: A Small Android Keystore Experiment

DevFeed: [HelloKeystore: A Small Android Keystore Experiment](<https://devfeed.tech/articles/hellokeystore-32056.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/hellokeystore/>)

Published: 2017-11-12T21:36:13Z

Content type: tutorial

Language: en

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

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [experiments](<https://devfeed.tech/tags/experiments.md>), [project](<https://devfeed.tech/tags/project.md>), [simple](<https://devfeed.tech/tags/simple.md>), [small](<https://devfeed.tech/tags/small.md>)

### AI overview

A small Android project explores saving and retrieving data from the keystore, including differences across Android versions.

### Source excerpt

Curious Keystore experiments. A small simple project that saves something in the keystore and gets it out again. Tricksiness happens across versions of Android. code

## Easy Approach to Requirements Syntax and the segue to Behavior Driven Development

DevFeed: [Easy Approach to Requirements Syntax and the segue to Behavior Driven Development](<https://devfeed.tech/articles/easy-approach-to-requirements-syntax-and-the-segue-to-behavior-driven-development-20778.md>)

Original publisher: [Read original article](<https://conductofcode.io/post/easy-approach-to-requirements-syntax-and-the-segue-to-behavior-driven-development/>)

Author: {"twitter"=\>"hlaueriksson"}

Published: 2017-07-31T20:00:00Z

Content type: article

Language: en

Sources: [Henrik Lau Eriksson](<https://devfeed.tech/sources/henrik-lau-eriksson.md>)

Topics: [Requirements](<https://devfeed.tech/topics/requirements.md>), [Behavior-driven development](<https://devfeed.tech/topics/bdd.md>), [Specifications](<https://devfeed.tech/topics/specifications.md>), [User Stories](<https://devfeed.tech/topics/user-stories.md>)

Tags: [bdd](<https://devfeed.tech/tags/bdd.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [event](<https://devfeed.tech/tags/event.md>), [feature](<https://devfeed.tech/tags/feature.md>), [features](<https://devfeed.tech/tags/features.md>), [format](<https://devfeed.tech/tags/format.md>), [precision](<https://devfeed.tech/tags/precision.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [simple](<https://devfeed.tech/tags/simple.md>), [specflow](<https://devfeed.tech/tags/specflow.md>), [specifications](<https://devfeed.tech/tags/specifications.md>), [state](<https://devfeed.tech/tags/state.md>), [test](<https://devfeed.tech/tags/test.md>), [user-stories](<https://devfeed.tech/tags/user-stories.md>)

### AI overview

The article introduces Easy Approach to Requirements Syntax (EARS) as a structured way to write requirements and examines how its templates may help translate user stories and acceptance criteria into Behavior-Driven Development tests. It describes five requirement types and the problems EARS aims to reduce, including ambiguity, vagueness, complexity, omission, duplication, wordiness, inappropriate implementation detail, and untestability.

### Source excerpt

I was attending a conference six months ago and listened to a talk about quality. During the talk, I was introduced to EARS -- Easy Approach to Requirements Syntax. This way of writing requirements struck a chord with me, given my prior experience reading and writing requirement specifications.

## Using VueJS 2.0 with Craft CMS

DevFeed: [Using VueJS 2.0 with Craft CMS](<https://devfeed.tech/articles/using-vuejs-2-0-with-craft-cms-31319.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/using-vuejs-2-0-with-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2016-12-09T20:12:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Vue.js](<https://devfeed.tech/topics/vue.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [jQuery](<https://devfeed.tech/topics/jquery.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [building](<https://devfeed.tech/tags/building.md>), [cms](<https://devfeed.tech/tags/cms.md>), [craft](<https://devfeed.tech/tags/craft.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [great](<https://devfeed.tech/tags/great.md>), [insights](<https://devfeed.tech/tags/insights.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [manipulation](<https://devfeed.tech/tags/manipulation.md>), [modern](<https://devfeed.tech/tags/modern.md>), [powerful](<https://devfeed.tech/tags/powerful.md>), [simple](<https://devfeed.tech/tags/simple.md>), [vuejs](<https://devfeed.tech/tags/vuejs.md>), [works](<https://devfeed.tech/tags/works.md>)

### AI overview

This tutorial explains VueJS 2.0 and demonstrates replacing jQuery with VueJS on a Craft CMS website. It contrasts Vue's architecture for building interactive, data-driven frontend interfaces with jQuery's DOM-manipulation toolkit.

### Source excerpt

VueJS is a simple yet powerful library for building modern web interfaces, and it works great with Craft CMS

## Let's Build A Simple Interpreter. Part 10.

DevFeed: [Let's Build A Simple Interpreter. Part 10.](<https://devfeed.tech/articles/let-s-build-a-simple-interpreter-part-10-33313.md>)

Original publisher: [Read original article](<https://ruslanspivak.com/lsbasi-part10/>)

Author: Ruslan Spivak

Published: 2016-08-04T13:15:00Z

Content type: tutorial

Language: en

Sources: [Ruslan Spivak](<https://devfeed.tech/sources/ruslan-spivak.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Code](<https://devfeed.tech/topics/code.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [example](<https://devfeed.tech/tags/example.md>), [github](<https://devfeed.tech/tags/github.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [simple](<https://devfeed.tech/tags/simple.md>), [types](<https://devfeed.tech/tags/types.md>), [variable](<https://devfeed.tech/tags/variable.md>), [variables](<https://devfeed.tech/tags/variables.md>)

### AI overview

This tutorial continues a series on building a Pascal interpreter. It updates the interpreter to parse and interpret a complete Pascal program, covering program headers, variable declarations, integer and floating-point division, comments, and grammar changes.

### Source excerpt

Today we will continue closing the gap between where we are right now and where we want to be: a fully functional interpreter for a subset of Pascal programming language. In this article we will update our interpreter to parse and interpret our very first complete Pascal program. The program ...

## Simple React slider with touch support

DevFeed: [Simple React slider with touch support](<https://devfeed.tech/articles/simple-react-slider-with-touch-support-37353.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/simple-react-slider/>)

Author: Stanko

Published: 2016-03-12T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [React](<https://devfeed.tech/topics/react.md>), [Code](<https://devfeed.tech/topics/code.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [dependencies](<https://devfeed.tech/tags/dependencies.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

A lightweight React slider component with touch support is presented as a dependency-free implementation of about 200 lines of code. The article mentions a demo, GitHub source code, extensibility, and browser support including modern browsers and IE10+.

### Source excerpt

I needed simple React slider component, as we are building our new website as a universal React application. But I did not find anything lightweight. There is a crazy trend in JavaScript world - add gazillion dependencies. So again, I made something myself. Check the demo. It has no dependencies, and about 200 lines of code. Very simple and extensible. Every modern browser is supported and IE10+. IE9 should work (if you adapt the CSS), but I didn't test it. Grab the code on GitHub.

## Dasherize, Turbolinks 3 and Parallel

DevFeed: [Dasherize, Turbolinks 3 and Parallel](<https://devfeed.tech/articles/dasherize-turbolinks-3-and-parallel-20065.md>)

Original publisher: [Read original article](<http://jollygoodcode.com/blog/2015/10/08/dasherize-turbolinks-3-and-parallel.html>)

Published: 2015-10-08T10:37:04Z

Content type: tutorial

Language: en

Sources: [Jolly Good Code](<https://devfeed.tech/sources/jolly-good-code.md>)

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

Tags: [parallel](<https://devfeed.tech/tags/parallel.md>), [projects](<https://devfeed.tech/tags/projects.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

The article explains how the author used Turbolinks 3 and the Parallel gem to build Dasherize, a material-designed dashboard for projects.

### Source excerpt

Dasherize is a simple, material-designed dashboard for your projects. In this post, I'll talk about I used Turbolinks 3 and the Parallel gem to build Dasherize.

## lish(1) -- a limited shell

DevFeed: [lish(1) -- a limited shell](<https://devfeed.tech/articles/lish-1-a-limited-shell-30070.md>)

Original publisher: [Read original article](<http://www.netmeister.org/blog/lish.html>)

Published: 2014-11-01T17:34:38Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [Shell](<https://devfeed.tech/topics/shell.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [commands](<https://devfeed.tech/tags/commands.md>), [execution](<https://devfeed.tech/tags/execution.md>), [shell](<https://devfeed.tech/tags/shell.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

lish(1) is a simple, restricted command-line interpreter that permits execution of only a fixed set of commands.

### Source excerpt

lish(1) implements a very simple, restricted command-line interpreter or shell to allow execution of only a fixed set of commands.

## Converting ssh(1) RSA public keys to PKCS8 format

DevFeed: [Converting ssh(1) RSA public keys to PKCS8 format](<https://devfeed.tech/articles/converting-ssh-1-rsa-public-keys-to-pkcs8-format-30125.md>)

Original publisher: [Read original article](<http://www.netmeister.org/blog/ssh2pkcs8.html>)

Published: 2013-12-30T03:02:43Z

Content type: tutorial

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [ssh](<https://devfeed.tech/topics/ssh.md>), [public key](<https://devfeed.tech/topics/public-key.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [example](<https://devfeed.tech/tags/example.md>), [format](<https://devfeed.tech/tags/format.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [rsa](<https://devfeed.tech/tags/rsa.md>), [simple](<https://devfeed.tech/tags/simple.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

A brief tutorial showing how to convert an ssh(1) RSA public key into PKCS8 format using a simple code example.

### Source excerpt

A brief walk-through of a simple code example to show how to convert an ssh(1) RSA public key into PKCS8 format.

## clogger(1) -- a campfire logger

DevFeed: [clogger(1) -- a campfire logger](<https://devfeed.tech/articles/clogger-1-a-campfire-logger-30037.md>)

Original publisher: [Read original article](<http://www.netmeister.org/blog/clogger.html>)

Published: 2013-11-15T18:24:12Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [Logging](<https://devfeed.tech/topics/logging.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>)

Tags: [command](<https://devfeed.tech/tags/command.md>), [interface](<https://devfeed.tech/tags/interface.md>), [logger](<https://devfeed.tech/tags/logger.md>), [messages](<https://devfeed.tech/tags/messages.md>), [simple](<https://devfeed.tech/tags/simple.md>), [syslog](<https://devfeed.tech/tags/syslog.md>)

### AI overview

clogger(1) is a simple logging and messaging interface analogous to the common logger(1) command. It sends messages to Campfire instead of syslog(3).

### Source excerpt

clogger(1) implements a simple logging/messaging interface analogous to the common logger(1) command. However, instead of logging messages to syslog(3), clogger(1) will write the message to Campfire.

## Common Lisp Scoping, Lexical Binding, and Closures

DevFeed: [Common Lisp Scoping, Lexical Binding, and Closures](<https://devfeed.tech/articles/lost-in-scope-34489.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/01/lost-in-scope/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-01-09T10:07:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [function](<https://devfeed.tech/tags/function.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

An article demonstrates Common Lisp scoping through examples involving lexical binding, variable shadowing, generalized booleans, closures, and REPL-based experimentation.

### Source excerpt

Thanks to Mickael on twitter I got to read an article about loosing scope with some common programming languages. As the blog article Lost in scope references functional programming languages and plays with both Javascript and Erlang, I though I had to try it out with Common Lisp too. So, here we go with a simple Common Lisp attempt. The Lost in scope article begins with defining a very simple function returning a boolean value, only true when it's not monday.

## Updating Jira tickets via mail

DevFeed: [Updating Jira tickets via mail](<https://devfeed.tech/articles/updating-jira-tickets-via-mail-30062.md>)

Original publisher: [Read original article](<http://www.netmeister.org/blog/jiramail.html>)

Published: 2012-08-23T02:23:44Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

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

Tags: [jira](<https://devfeed.tech/tags/jira.md>), [mail](<https://devfeed.tech/tags/mail.md>), [reverse](<https://devfeed.tech/tags/reverse.md>), [simple](<https://devfeed.tech/tags/simple.md>), [updating](<https://devfeed.tech/tags/updating.md>)

### AI overview

The author describes writing a simple reverse mail filter to update Jira tickets via email.

### Source excerpt

I wrote a simple reverse mail filter to update Jira via mail.

## How to generate error log from nested exceptions.

DevFeed: [How to generate error log from nested exceptions.](<https://devfeed.tech/articles/how-to-generate-error-log-from-nested-exceptions-38414.md>)

Original publisher: [Read original article](<https://khmylov.com/2012/04/how-to-generate-error-log-from-nested-exceptions/>)

Author: Andrew Khmylov

Published: 2012-04-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Despite the odds](<https://devfeed.tech/sources/despite-the-odds.md>)

Topics: [Exception](<https://devfeed.tech/topics/exception.md>), [exceptions](<https://devfeed.tech/topics/exceptions.md>), [Code](<https://devfeed.tech/topics/code.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [console](<https://devfeed.tech/topics/console.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [error](<https://devfeed.tech/tags/error.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [gist](<https://devfeed.tech/tags/gist.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [logging](<https://devfeed.tech/tags/logging.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

This code-focused tutorial demonstrates how to generate readable error logs from nested exceptions in C#. It recursively traverses inner exceptions and handles AggregateException by flattening its InnerExceptions collection.

### Source excerpt

Working on error logging for my new application I've realized that I always use the same pattern when it comes to converting actual exceptions into a text form. And since I started posting rare code snippets that I write down all the time on Gist recently, there will be a number of 'sharing code' blog posts in the foreseeable future. The code is rather simple, it traverses down the entire nested exception hierarchy and populates StringBuilder with the appropriate error information. There is a slightly different workflow for AggregateException - we want to flatten its InnerExceptions collection. public string GetExceptionLog(Exception exception) { return UnwrapExceptionTextLoop(new StringBuilder(), 0, exception); } private string UnwrapExceptionTextLoop(StringBuilder sb, int level, Exception e) { if (e == null) { return sb.ToString(); } for (int i = 0; i < level; i++) { sb.Append(">>"); } var aggregate = e as AggregateException; sb.AppendFormat("{0} - {1} [{2}] {3}", e.GetType(), aggregate == null ? e.Message : String.Empty, e.StackTrace, Environment.NewLine); if (aggregate != null) { return String.Join(Environment.NewLine, aggregate.InnerExceptions.Select(inner => UnwrapExceptionTextLoop(sb, level + 1, inner))); } return UnwrapExceptionTextLoop(sb, level + 1, e.InnerException); } Let's put on a simple method that throws several exceptions: public void TestMethod() { try { try { throw new Exception("Inner exception"); } catch (Exception ex) { throw new Exception("Outer exception"); } } catch (Exception ex) { Console.WriteLine(ErrorHelper.GetExceptionLog(ex)); } } And here is the result (I've omitted the large stack trace information): System.Exception - Outer exception [ at Client.App.TestMethod()..] >>System.Exception - Inner exception [ at Client.App.TestMethod()..]

## XePatch Released

DevFeed: [XePatch Released](<https://devfeed.tech/articles/xepatch-released-32587.md>)

Original publisher: [Read original article](<https://eaton-works.com/2011/08/20/xepatch-released/>)

Published: 2011-08-20T21:09:52Z

Content type: release

Language: en

Sources: [Eaton Works Feed](<https://devfeed.tech/sources/eaton-works-feed.md>)

Topics: [Xbox](<https://devfeed.tech/topics/xbox.md>)

Tags: [editor](<https://devfeed.tech/tags/editor.md>), [simple](<https://devfeed.tech/tags/simple.md>), [small](<https://devfeed.tech/tags/small.md>), [xbox](<https://devfeed.tech/tags/xbox.md>)

### AI overview

XePatch is a small, simple Xbox 360 patch viewer and editor.

### Source excerpt

A small and simple Xbox 360 patch viewer/editor.

## Reformater avec pgloader

DevFeed: [Reformater avec pgloader](<https://devfeed.tech/articles/reformater-avec-pgloader-34446.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2011/08/reformater-avec-pgloader/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2011-08-05T09:26:00Z

Content type: tutorial

Language: fr

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

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

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [etl](<https://devfeed.tech/tags/etl.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

This article explains how to use pgloader's reformatting function. It presents reformatting as the Transform phase of an ETL process and describes pgloader as a simple solution for ETL needs.

### Source excerpt

Dans la série de nos articles sur pgloader, le dernier venu détaille comment utiliser la fonction de reformatage de cet outil. Dans le cadre d'utilisation d'un ETL, cela est assimilé à la phase Transform, ce qui fait de pgloader une solution simple pour vos besoins d'ETL.