# generators

Published articles for generators.

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

## Why the AWS PACE Team Built Its Full-Stack Scaffolding as an Nx Plugin

DevFeed: [Why the AWS PACE Team Built Its Full-Stack Scaffolding as an Nx Plugin](<https://devfeed.tech/articles/why-the-aws-pace-team-built-its-full-stack-scaffolding-as-an-nx-plugin-21437.md>)

Original publisher: [Read original article](<https://nx.dev/blog/nx-plugin-for-aws-devkit>)

Author: Juri Strumpflohner

Published: 2026-09-10T00:00:00Z

Content type: article

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [coding](<https://devfeed.tech/topics/coding.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [Template](<https://devfeed.tech/topics/template.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [aws](<https://devfeed.tech/tags/aws.md>), [blog](<https://devfeed.tech/tags/blog.md>), [coding](<https://devfeed.tech/tags/coding.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [devkit](<https://devfeed.tech/tags/devkit.md>), [generators](<https://devfeed.tech/tags/generators.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [nx](<https://devfeed.tech/tags/nx.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The article explains why the AWS PACE team built full-stack scaffolding as an Nx plugin using Nx Devkit generators. It discusses predictable prototyping, generated code ownership, infrastructure and application components, and how coding agents affect plugin development.

### Source excerpt

How the AWS PACE team built the Nx Plugin for AWS on the Nx Devkit, and why coding agents make building your own Nx plugin cheaper than ever.

## Range-Over Functions in Go

DevFeed: [Range-Over Functions in Go](<https://devfeed.tech/articles/range-over-functions-in-go-22234.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/04/range-over-functions-in-go.html>)

Published: 2026-02-16T00:00:00Z

Content type: article

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [examples](<https://devfeed.tech/tags/examples.md>), [generators](<https://devfeed.tech/tags/generators.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This article explains Go's range-over-functions experiment, which proposes a standardized iterator model while preserving the familiar for range syntax. It introduces the iter package and sequence abstractions, compares iteration patterns, and uses stack examples to show how iterator logic can be implemented.

### Source excerpt

Iteration has long been one of the more fragmented areas of Go, with developers relying on ad hoc patterns to traverse custom data structures. This article explores the range-over-functions experiment, a proposed evolution of the language that introduces a standardized iterator model while preserving Go's familiar for range syntax. Using the new iter package and sequence abstractions, it shows how iteration logic can be expressed more clearly, flexibly, and idiomatically. Originally published in April 2024, the concepts remain highly relevant as Go continues to evolve toward more expressive yet simple language features.

## Configure Tailwind v4 with Angular in an Nx Monorepo

DevFeed: [Configure Tailwind v4 with Angular in an Nx Monorepo](<https://devfeed.tech/articles/configure-tailwind-v4-with-angular-in-an-nx-monorepo-21450.md>)

Original publisher: [Read original article](<https://nx.dev/blog/setup-tailwind-4-angular-nx-workspace>)

Author: Juri Strumpflohner

Published: 2026-01-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Angular](<https://devfeed.tech/topics/angular.md>), [monorepo](<https://devfeed.tech/topics/monorepo.md>), [PostCSS](<https://devfeed.tech/topics/postcss.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [css](<https://devfeed.tech/tags/css.md>), [generators](<https://devfeed.tech/tags/generators.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [nx](<https://devfeed.tech/tags/nx.md>), [sync](<https://devfeed.tech/tags/sync.md>), [sync-generators](<https://devfeed.tech/tags/sync-generators.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tailwind-css](<https://devfeed.tech/tags/tailwind-css.md>)

### AI overview

A tutorial on configuring Tailwind CSS v4 with Angular in an Nx monorepo. It explains how Angular's PostCSS setup can scan the workspace broadly and produce bloated production CSS, then presents @source directives and Nx Sync Generators as ways to limit scanning and manage library dependencies.

### Source excerpt

Learn how Tailwind CSS v4 scanning works with Angular in Nx monorepos, why you may have bloated CSS, and how to optimize it with @source directives and Nx Sync Generators.

## Combining Predictability and Intelligence With Nx Generators and AI

DevFeed: [Combining Predictability and Intelligence With Nx Generators and AI](<https://devfeed.tech/articles/combining-predictability-and-intelligence-with-nx-generators-and-ai-21431.md>)

Original publisher: [Read original article](<https://nx.dev/blog/nx-generators-ai-integration>)

Author: Juri Strumpflohner

Published: 2025-05-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Code](<https://devfeed.tech/topics/code.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [context](<https://devfeed.tech/topics/context.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [coding](<https://devfeed.tech/tags/coding.md>), [context](<https://devfeed.tech/tags/context.md>), [development](<https://devfeed.tech/tags/development.md>), [generators](<https://devfeed.tech/tags/generators.md>), [llms](<https://devfeed.tech/tags/llms.md>)

### AI overview

The article explains how Nx generators provide predictable project, library, and component scaffolding, while LLM assistants add awareness of workspace-specific context. Combining the two can preserve consistent structures and standards while handling context-dependent development tasks.

### Source excerpt

Learn how you can combine the predictability of Nx generators code generators with the intelligence of LLMs which are able to integrate them into your workspace specific context.

## Integrating Spin with Static Site Generators

DevFeed: [Integrating Spin with Static Site Generators](<https://devfeed.tech/articles/integrating-spin-with-static-site-generators-15147.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/2023-06-07-integrating-with-ssgs>)

Author: David Flanagan

Published: 2023-06-07T10:00:00Z

Content type: article

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: [Front end](<https://devfeed.tech/topics/frontend.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [generators](<https://devfeed.tech/topics/generators.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [generators](<https://devfeed.tech/tags/generators.md>), [static](<https://devfeed.tech/tags/static.md>), [static-site](<https://devfeed.tech/tags/static-site.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

The article discusses integrating Spin with static site generators to provide a frontend for a WebAssembly backend.

### Source excerpt

Providing a Frontend for Your WebAssembly Backend

## Setup React and Tailwind -- The Easy Way

DevFeed: [Setup React and Tailwind -- The Easy Way](<https://devfeed.tech/articles/setup-react-and-tailwind-the-easy-way-21449.md>)

Original publisher: [Read original article](<https://nx.dev/blog/setup-react-and-tailwind-the-easy-way>)

Author: Juri Strumpflohner

Published: 2023-02-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Code](<https://devfeed.tech/topics/code.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Vite](<https://devfeed.tech/topics/vite.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [generators](<https://devfeed.tech/tags/generators.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [migration](<https://devfeed.tech/tags/migration.md>), [nx](<https://devfeed.tech/tags/nx.md>), [react](<https://devfeed.tech/tags/react.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [vite](<https://devfeed.tech/tags/vite.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

A tutorial on setting up React with Tailwind CSS using Nx code generators. It covers creating an Nx-based React project, configuring Tailwind and related CSS tooling, and migrating Create React App projects to Nx with Vite or Webpack.

### Source excerpt

Learn how to quickly set up React with Tailwind CSS using Nx's code generators, including migration from Create React App and automated configuration tools.

## How We Unified on One Graph at Block

DevFeed: [How We Unified on One Graph at Block](<https://devfeed.tech/articles/how-we-unified-on-one-graph-at-block-15684.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/how-we-unified-on-one-graph-at-block>)

Author: Alex Hancock

Published: 2022-10-05T19:00:00Z

Content type: article

Language: en

Sources: [Square Corner Blog](<https://devfeed.tech/sources/square-corner-blog-medium.md>), [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [API](<https://devfeed.tech/topics/api.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [backend](<https://devfeed.tech/tags/backend.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [generators](<https://devfeed.tech/tags/generators.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [graphql-federation](<https://devfeed.tech/tags/graphql-federation.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

Block describes how it used federated GraphQL to unify internal and public GraphQL APIs into a supergraph. The architecture aggregates data from backend subgraphs while allowing teams to maintain scoped services independently.

### Source excerpt

Using GraphQL federation to unify under one "supergraph"

## supabase-js v2

DevFeed: [supabase-js v2](<https://devfeed.tech/articles/supabase-js-v2-643.md>)

Original publisher: [Read original article](<https://supabase.com/blog/supabase-js-v2>)

Author: Inian Parameshwaran; Alaister Young

Published: 2022-08-16T07:00:00Z

Content type: release

Language: en

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

Topics: [Supabase](<https://devfeed.tech/topics/supabase.md>), [Library](<https://devfeed.tech/topics/library.md>), [Development](<https://devfeed.tech/topics/development.md>), [API](<https://devfeed.tech/topics/api.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [auth](<https://devfeed.tech/tags/auth.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [generators](<https://devfeed.tech/tags/generators.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [js](<https://devfeed.tech/tags/js.md>), [release](<https://devfeed.tech/tags/release.md>), [v1](<https://devfeed.tech/tags/v1.md>)

### AI overview

This release candidate for supabase-js v2 focuses on quality-of-life improvements and an incremental upgrade path from v1. It adds improved type support, more explicit Auth methods, minimal data returns by default, server-side Auth Admin methods, and a broad asynchronous Auth overhaul.

### Source excerpt

A look at supabase-js v2, which brings type support and focuses on quality-of-life improvements for developers.

## Using Nx Workspace generators to scaffold new blog posts

DevFeed: [Using Nx Workspace generators to scaffold new blog posts](<https://devfeed.tech/articles/using-nx-workspace-generators-to-scaffold-new-blog-posts-21386.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2021/07/nextjs-workspace-generator-blog-draft/>)

Published: 2021-07-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Boilerplate](<https://devfeed.tech/topics/boilerplate.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [React](<https://devfeed.tech/topics/react.md>), [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Storybook](<https://devfeed.tech/topics/storybook.md>), [Cypress](<https://devfeed.tech/topics/cypress.md>), [MDX](<https://devfeed.tech/topics/mdx.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [developers](<https://devfeed.tech/tags/developers.md>), [generators](<https://devfeed.tech/tags/generators.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [mdx](<https://devfeed.tech/tags/mdx.md>), [next](<https://devfeed.tech/tags/next.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [react](<https://devfeed.tech/tags/react.md>), [storybook](<https://devfeed.tech/tags/storybook.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tailwindcss](<https://devfeed.tech/tags/tailwindcss.md>)

### AI overview

This tutorial explains how Nx Workspace generators can scaffold new blog drafts in a blog project built with Next.js and Nx. It introduces generators as a way to reduce repetitive setup work, improve naming and component consistency, and lower collaboration friction as projects scale.

### Source excerpt

Lorem ipsum dolor sit amet

## Understanding the Power of rails g scaffold

DevFeed: [Understanding the Power of rails g scaffold](<https://devfeed.tech/articles/understanding-the-power-of-rails-g-scaffold-28254.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rails/2020/01/22/understanding-the-power-of-rails-g-scaffold.html>)

Author: Fuzzygroup

Published: 2020-01-22T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [generators](<https://devfeed.tech/topics/generators.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [authorization](<https://devfeed.tech/tags/authorization.md>), [controllers](<https://devfeed.tech/tags/controllers.md>), [generators](<https://devfeed.tech/tags/generators.md>), [models](<https://devfeed.tech/tags/models.md>), [rails](<https://devfeed.tech/tags/rails.md>), [route](<https://devfeed.tech/tags/route.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This Rails tutorial explains how the `rails g scaffold` command generates a model, migration, controller, routes, views, helpers, stylesheets, and tests. It also discusses its benefits for rapid prototyping and quality, along with limitations such as no built-in factories or authorization.

### Source excerpt

Wow. I am a damn idiot who has literally made his life harder than it ever needed to be -- for years. Sigh. I am referring to the Rails generator and the scaffold command. When you have complex software tools, sometimes you don't discover features - great damn features - for a long time. In this case I'm referring to: rails g scaffold pluralized_object_name In my case, I'm building a project where the ultimate goal is to create a label on something. Never mind what a label is or what the something is. A friend I've been helping with Rails recently asked me what rails g scaffold does and I muttered something about "makes the model and controller in one go" but I never thought to try it myself until just now. HOLY CRAP! Wow. rails g scaffold labels And here's what this generated for me: rails g scaffold Labels Running via Spring preloader in process 78104 [WARNING] The model name 'Labels' was recognized as a plural, using the singular 'Label' instead. Override with --force-plural or setup custom inflection rules for this noun before running the generator. invoke active_record create db/migrate/20200122100533_create_labels.rb create app/models/label.rb invoke test_unit create test/models/label_test.rb create test/fixtures/labels.yml invoke resource_route route resources :labels invoke scaffold_controller create app/controllers/labels_controller.rb invoke erb create app/views/labels create app/views/labels/index.html.erb create app/views/labels/edit.html.erb create app/views/labels/show.html.erb create app/views/labels/new.html.erb create app/views/labels/_form.html.erb append app/views/shared/_left_nav.html.erb invoke test_unit create test/controllers/labels_controller_test.rb create test/system/labels_test.rb invoke helper create app/helpers/labels_helper.rb invoke test_unit invoke assets invoke scss create app/assets/stylesheets/labels.scss And this isn't just creating a raw file structure, the core controller itself and the tests are actually built for you. Here's th

## Angular 8 and the Future - NGConf 2019 Roundup

DevFeed: [Angular 8 and the Future - NGConf 2019 Roundup](<https://devfeed.tech/articles/angular-8-and-the-future-ngconf-2019-roundup-21338.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019-05-01-ngconf-2019-roundup/>)

Published: 2019-05-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Angular CLI](<https://devfeed.tech/topics/angular-cli.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [cli](<https://devfeed.tech/tags/cli.md>), [feature](<https://devfeed.tech/tags/feature.md>), [features](<https://devfeed.tech/tags/features.md>), [generators](<https://devfeed.tech/tags/generators.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [videos](<https://devfeed.tech/tags/videos.md>), [youtube](<https://devfeed.tech/tags/youtube.md>)

### AI overview

A personal roundup of NGConf 2019 announcements focused on Angular 8, including its positioning as a platform, differential loading, and Angular CLI builders. The article says differential loading creates separate bundles for modern and legacy browsers, potentially reducing bundle size by about 7-20% without server-side infrastructure changes.

### Source excerpt

Lorem ipsum dolor sit amet

## How to Build a Ruby on Rails Engine

DevFeed: [How to Build a Ruby on Rails Engine](<https://devfeed.tech/articles/how-to-build-a-ruby-on-rails-engine-21068.md>)

Original publisher: [Read original article](<https://jakeyesbeck.com/2016/03/20/how-to-build-a-ruby-on-rails-engine/>)

Published: 2016-03-20T12:00:00Z

Content type: tutorial

Language: en

Sources: [Jake Yesbeck](<https://devfeed.tech/sources/jake-yesbeck.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [App](<https://devfeed.tech/topics/app.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [applications](<https://devfeed.tech/tags/applications.md>), [building](<https://devfeed.tech/tags/building.md>), [generate](<https://devfeed.tech/tags/generate.md>), [generators](<https://devfeed.tech/tags/generators.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [rails](<https://devfeed.tech/tags/rails.md>), [routing](<https://devfeed.tech/tags/routing.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

A tutorial on building a Ruby on Rails Engine, a miniature application that supplements a larger Rails application. It covers generating an Engine or creating its directories and files manually, defining the Engine, isolating its namespace, and organizing it as a gem.

### Source excerpt

Ruby on Rails Engines are miniature applications whose purpose is to supplement a larger Ruby on Rails application. If functionality can exist independent from a main application, an Engine can provide a wonderful degree of encapsulation. Recently, I created the and "gemified" the Passages Ruby on Rails Engine to help alleviate some routing frustration. This gem will be the be used as the example for demonstrating what goes into creating a Ruby on Rails Engine. Revving Up There are two ways to start building an Engine. One option is to use the built in generators to create directories and dummy classes. These generators behave in the same way as standard Rails generators. To generate an Engine in this way, use the plugins built in generator: $ rails plugin new passages --mountable Note: Engines and Plugins are not exactly the same in the Ruby on Rails world but the --mountable flag tells the plugin generator to generate a full Engine. The other approach is to simply create the needed directories and files by hand. This is was the way the Passages Engine was built, resulting in the following directory structure: |-app |--controllers |---passages |----<controller directories> |--views |---passages |----<views directories> |-config |--routes.rb |--initializers |---assets.rb |-lib |--passages |---engine.rb Some directories that the rails generator would have added are missing (i.e. models, helpers, mailers). These directories might be necessary for some projects, but the Passages Engine did not have use for them. The file at the heart of it all is engine.rb. This file is responsible for defining the engine and will also be utilized later to add optional enhancements an Engine can take advantage of: module Passages class Engine < ::Rails::Engine isolate_namespace(Passages) end end An interesting line in this file is the isolate_namespace method call. This method helps ensure encapsulation for the Engine by isolating its controllers, helpers, views, routes, and any other

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

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

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

Author: Ruslan Spivak

Published: 2015-09-11T11:00:00Z

Content type: tutorial

Language: en

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

Topics: [Parser](<https://devfeed.tech/topics/parser.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [generators](<https://devfeed.tech/topics/generators.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [bnf](<https://devfeed.tech/tags/bnf.md>), [code](<https://devfeed.tech/tags/code.md>), [generators](<https://devfeed.tech/tags/generators.md>), [programming](<https://devfeed.tech/tags/programming.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

Part 4 of a series on building a simple interpreter. It explains how to parse and interpret arithmetic expressions containing multiplication and division, including integer division, and introduces context-free grammars and modified EBNF notation for specifying programming-language syntax.

### Source excerpt

Have you been passively learning the material in these articles or have you been actively practicing it? I hope you've been actively practicing it. I really do :) Remember what Confucius said? "I hear and I forget." "I see and I remember." "I do and I understand." In the previous ...

## Introducing JavaPoet

DevFeed: [Introducing JavaPoet](<https://devfeed.tech/articles/introducing-javapoet-15708.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/introducing-javapoet>)

Author: Square Engineering

Published: 2015-01-29T17:08:00Z

Content type: article

Language: en

Sources: [Square Corner Blog](<https://devfeed.tech/sources/square-corner-blog-medium.md>), [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Java](<https://devfeed.tech/topics/java.md>), [Library](<https://devfeed.tech/topics/library.md>), [Dagger](<https://devfeed.tech/topics/dagger.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [generate](<https://devfeed.tech/tags/generate.md>), [generators](<https://devfeed.tech/tags/generators.md>), [java](<https://devfeed.tech/tags/java.md>), [library](<https://devfeed.tech/tags/library.md>)

### AI overview

Square introduces JavaPoet, a Java library for generating source code. It models Java files as structured types, methods, and fields and handles imports automatically, aiming to make code generators easier to build and integrate.

### Source excerpt

Square has a new library for generating Java code.

## Streaming Median

DevFeed: [Streaming Median](<https://devfeed.tech/articles/streaming-median-40277.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2012/06/14/streaming-median/>)

Published: 2012-06-14T22:03:55Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Streaming](<https://devfeed.tech/topics/streaming.md>), [Python](<https://devfeed.tech/topics/python.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [generators](<https://devfeed.tech/topics/generators.md>), [iteration](<https://devfeed.tech/topics/iteration.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [approximation](<https://devfeed.tech/tags/approximation.md>), [big-data](<https://devfeed.tech/tags/big-data.md>), [data-analysis](<https://devfeed.tech/tags/data-analysis.md>), [element](<https://devfeed.tech/tags/element.md>), [generators](<https://devfeed.tech/tags/generators.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [infinite](<https://devfeed.tech/tags/infinite.md>), [input](<https://devfeed.tech/tags/input.md>), [iteration](<https://devfeed.tech/tags/iteration.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [median](<https://devfeed.tech/tags/median.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [sequence](<https://devfeed.tech/tags/sequence.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [streaming-data](<https://devfeed.tech/tags/streaming-data.md>), [yield](<https://devfeed.tech/tags/yield.md>)

### AI overview

This tutorial presents a Python generator that approximates the median of a potentially infinite integer sequence using constant space. The algorithm adjusts its current estimate by one for each input value that is above or below the estimate, and the article discusses how changing stream distributions affect the result.

### Source excerpt

Problem: Compute a reasonable approximation to a "streaming median" of a potentially infinite sequence of integers. Solution: (in Python) def streamingMedian(seq): seq = iter(seq) m = 0 for nextElt in seq: if m > nextElt: m -= 1 elif m < nextElt: m += 1 yield m Discussion: Before we discuss the details of the Python implementation above, we should note a few things. First, because the input sequence is potentially infinite, we can't store any amount of information that is increasing in the length of the sequence.

## A new App Engine datastore API

DevFeed: [A new App Engine datastore API](<https://devfeed.tech/articles/a-new-app-engine-datastore-api-38889.md>)

Original publisher: [Read original article](<http://neopythonic.blogspot.com/2011/01/new-app-engine-datastore-api.html>)

Author: Guido van Rossum (noreply@blogger.com)

Published: 2011-01-07T20:20:00Z

Content type: release

Language: en

Sources: [Guido van Rossum](<https://devfeed.tech/sources/guido-van-rossum.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [API](<https://devfeed.tech/topics/api.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [generators](<https://devfeed.tech/topics/generators.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [appengine](<https://devfeed.tech/tags/appengine.md>), [classes](<https://devfeed.tech/tags/classes.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [design](<https://devfeed.tech/tags/design.md>), [generators](<https://devfeed.tech/tags/generators.md>), [kind](<https://devfeed.tech/tags/kind.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

Guido van Rossum introduces Datastore Plus, a preliminary redesign of the Python datastore API for App Engine users. The proposal includes cleaner Key, Model, Property, and Query implementations and a high-level asynchronous API using Python generators as coroutines. The implementation is available as an open-source project for review, with feedback requested on its documentation, implementation, and API design.

### Source excerpt

This post is primarily intended for App Engine users (and of those, only Python users :-). Over the past months I've been working on a new design for the Python datastore API, under the code name Datastore Plus. The new design is very ambitious, and changes a lot of things: New, cleaner implementations of Key, Model, Property and Query classes High-level asynchronous API using Python generators as coroutines (PEP 342) The design is meant to eventually replace the existing db package in the App Engine runtime library, but for now, it is just an open source project which you have to download and copy into your application. I am not at all finished with this design, but I believe in listening to users, so I am making a preliminary version of the new API available for review. Please send me your thoughts, either in this blog, or via private mail to guido (at) google.com. Note that the implementation works, but I cannot guarantee that it won't change. Documentation is here: http://goo.gl/D6Onw The project to check out is here: http://goo.gl/GapXI You must use Mercurial to check out the project, but it's fine to check it out anonymously -- I don't require anybody to log in to look or comment. (If using Mercurial is too much of a burden, there's also a zipfile on the site, but I don't plan to update it frequently.) I'm interested in receiving any kind of feedback at all. It would help me if you could clarify whether your feedback is about an issue with the documentation, an issue with the implementation, or an issue with the API design -- though I realize you can't always tell the difference. :-) (You can also comment on the thread in the google-appengine-python group here: https://groups.google.com/group/google-appengine-python/browse_thread/thread/454cb81d49e759f2.)