continuous delivery – Blurred lines between deployment (Terraform) and build processes (Bazel) leading to an awkward build and release process

I am building a system that consists of multiple programs on many machines, some cloud services (such as RDS) and so on.

In an ideal world, I would like to supply some configuration (e.g. deployment keys, AWS credentials) and run a single “deploy all” command that will build and deploy everything.

I would also like it to be smart enough to not rebuild artefacts that have already been built or redeploy infrastructure that already exists.

Currently, I am using Bazel to build my artefacts (.so, .jar, Docker images, etc) and Terraform to provision my architecture (ECs, RDS, etc.).

Each of these tools is very good at what it does, and together, they cover builds and deployments. However, neither does everything (the desired “deploy all” command) and there are cases where they must interact in awkward ways.

For example, suppose I have a microservice written in JavaScript. This is compiled / bundled by Bazel. The bundle is then included in a Docker image along with some secrets generated by Terraform. The Docker image is built by Bazel. Finally, The Docker image is deployed using Terraform!

  1. Bazel builds the application code
  2. Terraform generates / fetches secrets
  3. Bazel builds a Docker image
  4. Terraform deploys the Docker image

I am jumping between the two tools and it doesn’t feel like the right way to approach this.

  • Should I wrap Terraform in Bazel and only interact with Bazel?
  • Should I wrap Bazel in Terraform and only interact with Terraform?
  • Should I use some third tool to manage them?
  • How can I resolve this?

dnd 3.5e – Can the continuous effect of Power Word Pain be negated?

As this fine answer explains, a dispel magic effect may end a power word pain effect, but the earliest such an effect’s available is typically the 2nd-level Sor/Wiz spell dispelling touch (abjur) (Player’s Handbook II 110). This makes a potion of dispelling touch (300 gp; 0.1 lbs.) or an arcane scroll of dispelling touch (150 gp; 0 lbs.) (both created using a 2nd-level spell at caster level 3) a reasonable purchase for anyone in a party that—so far—has only been watching the spell power word pain be used against foes.

Any effect that renders a creature immune to mind-affecting effects likewise renders a creature immune to the effects of power word pain as all spells of the school of enchantment are mind-affecting. However, immunity to such effects is typically a high-level effect (e.g. the 8th-level spell mind blank (abjur) (Player’s Handbook 253), the face slot magic item third eye conceal (Magic Item Compendium 141) (120,000 gp; 1 lb.)).

A DM that’s struggling to challenge a group that’s decided to run away after opening every encounter with a power word pain spell—letting the spell do the killing for them—might find the game more interesting if he confronts such PCs with more creatures of the types construct, ooze, plant, undead, vermin, and so forth as such creatures are, by default, immune to mind-affecting effects.

Note that even the handful of things that should prevent the effects of a power word pain spell often, in fact, don’t. For instance,—and I’m not making this up—the nipple clamp of exquisite pain (Book of Vile Darkness 118) (8,000 gp; 0 lbs., and let’s thank heavens for that) that makes “(t)he wearer… immune to debilitating pain effects” also says that the wearer “is not immune to actual damage described as pain,” which should likely include the damage dealt by a power word pain spell’s effect. Similarly, the 2nd-level Clr spell ease pain (conj (Book of Exalted Deeds 97) says, “If the target creature is under some effect that causes continuing damage, the pain is eased only for a moment,” and so the power word pain spell’s effect would be briefly abated… then start up again! It’s almost like the power word pain spell was written to bypass such effects deliberately.

In short, the spell power word pain kills creatures… and PCs. If the PCs are using it in every fight, then enemy wizards should be just as willing to use it in return… as should clerics that pick the domain Magic and anyone with sufficient ranks in the skill Use Magic Device, an arcane scroll of power word pain costing a mere 25 gp. The spell’s big limiter at low levels is its range, so wizards—or those mistaken for wizards—should remain the obvious target in any group of foes if the spell is common in the campaign. And any foe affected by a power word pain spell should behave like a PC who knows that he’s going to die anyway: by extravagantly expending all of his resources to kill the dude who has already killed him, especially since his death will be—in terms of combat rounds—slow and, of course, painful.

Also, although the spell power word pain lacks the descriptor evil, the spell is, by any measure, cruel, and this DM has many folks treat with contempt and hatred those dishonorable casters that employ the spell against intelligent creatures. Your campaign, of course, may vary.

linear algebra – How can one create a continuous function that transitions a 2d input through a

This is my first question here, hopefully it isn’t too bad. Apologies in advance if it isn’t formulated in a manner coherent with the expected formalism. Let me know if I need to make corrections and I will do so immediately.

I am trying to create a 3D function for which the first 2 (x;y) are parameters are contiguous of a 2D space. i.e. example 2d function graphs

and the third (z) acts to transition/”morph” the function that is applied to the prior 2 rational numbers through the possible relations between x and y.
A discrete (naive) implementation of this might be merely to instantiate a case statement

X(x;y;z) = { 
          |y|, for z=1 // absolute
          y^2, for z=2 // quadratic
          y^3, for z=3 // cubic
          x*y  for z=n

Are there any methods by which one might transition the expression of the relation between x and y values with respect to a space parameterized by z. e.g

(identity(x;y) -> absolute(x;y) -> quadratic(x;y) -> cubic(x;y) .... // positive function (0<z)
-identity(x;y) <- -absolute(x;y) <- -quadratic(x;y) <- -cubic(x;y)) // negative functions (0>z)

How might one implement something like this?
Best regards and thanks in advance.

general topology – Checking Existence of a Surjective Continuous Map between Spaces

I am studying topology and recently tried to solve these two questions concerning the existence of a surjective continuous map between spaces. But I am not sure how to construct one, or to claim that there is no such surjective continuous map. The questions(in the form of T/F question) are as follows:

  1. There exists a surjective continuous map from $S^2$ to $mathbb{R^2}$ where $S^2$ is the unit sphere $S^2 := {(x,y,z) in mathbb{R^3}: x^2+y^2+z^2=1}.$
  1. There exists a surjective continuous map from $S^1$ to $S^1 times S^1$, where $S^1$ is the unit circle $S^1 := {(x,y) in mathbb{R^2}: x^2+y^2=1}.$

From what I think, I am guessing question 2 is False. (One of my friend told me it seems false due to topological group… But as I did not learn the concept of topological group, I felt there should be some other way to solve this.) That is, there is no surjective continuous map between spaces. But overall, I am not sure whether these statements are true or not. Also, I am not sure of a way to construct a surjective continuous map for them.

Is there some method or way of constructing surjective continuous map in this kind of situations? (Or some criteria that can tell whether these kinds of map exist or not.)

Thank you.

continuous integration – Big static web site build system design

We are running a relatively large size static website, which serves over 200K static web pages. We use Next.js to generate these static pages and we host the generated HTML and asset files in AWS S3.

Currently, we are using a dedicated EC2 instance as our build machine for two reasons: 1. the build needs some powerful computation power to populate 200K pages; 2. once the HTML files are generated, the network transfer speed between EC2 to S3 is fast.

I’m looking for some advice about how to automate this build process, so that it can automatically do the following:

  1. Turn on the build instance on-demand when I need to build the project.
  2. Run custom build command with pre-defined configurations.
  3. Automatically upload the generated HTML files and assets to S3 after the build is completed.
  4. Automatically switch to serve the new directory of HTML files in S3 after it’s uploaded.

Ideally, this workflow can be started by a simple trigger or push of a button.


Why is there no continuous bijection from (0,1] to R?

Why is there no continuous bijection from (0,1) to R?

I read somewhere that the reason is due to the fact that (0,1) is a connected set and the image of a connected set must be connected, so why can’t we have a connected image?

continuous integration – Clarifying the steps in a CI/CD, but namely if if unit testing should be done building a Docker image or before

I’m building at a Build and Deployment pipeline and looking for clarification on a couple points. In addition, I’m trying to implement Trunk Based Development with short-lived branches.

The process I have thus far:

  1. Local development is done on the main branch.

  2. Developer, before pushing to remote, rebases on remote main branch.

  3. Developer pushes to short-lived branch: git push origin main:short_lived_branch.

  4. Developer opens PR to merge short_lived_branch into main.

  5. When PR is submitted it triggers the PR pipeline that has the following stages:

    1. Builds the microservice.
    2. Unit tests the microservice.
    3. If passing, builds the Docker image with a test-latest tag and push to container registry.
    4. Integration testing with other microservices (still need to figure this out).
    5. Cross-browser testing (still need to figure this out).
  6. If the PR pipeline is successful, the PR is approved, commits are squashed, and merged to main.

  7. The merge to main triggers the Deployment pipeline, which has the following stages:

    1. Builds the microservice.
    2. Unit tests the microservice.
    3. If passing, builds the Docker image with a release-<version> tag and push to container registry.
    4. Integration testing with other microservices (still need to figure this out).
    5. Cross-browser testing (still need to figure this out).
    6. If passing, deploy the images to Kubernetes cluster.

I still have a ton of research to do on the integration and cross-browser testing, as it isn’t quite clear to me how to implement it.

That being said, my questions thus far really have to do with the process overall, unit testing and building the Docker image:

  1. Does this flow make sense or should it be changed in anyway?

  2. Regarding unit testing and building the Docker image, I’ve read some articles that suggest doing the unit testing during the building of the Docker image. Basically eliminating the first two stages in my PR and Deployment pipelines. Some reasons given:

    • You are testing the code and not the containerized code which is actually what will be run.
    • Even if unit testing passes, the image could be broke and it will be even longer before you find out.
    • Building on that, it increases the overall build and deployment time. From my experience, the first two stages in my pipelines for a specific service take about a minute and half. Then building and pushing the image takes another two and half minutes. Overall about four minutes. If the unit tests were incorporated into the Docker build, then it could possibly shave a minute or more off the first three stages in my pipeline.

    Would this be a bad practice to eliminate the code build and unit testing stages, and just moving unit testing into the Docker build stage?

Thanks for weighing in on this while I’m sorting it out.

Continuous daily exchange | Forum Promotion

real analysis – Is the Feller-Dynkin Semigroup continuous in the following sense

Let $(P_{t})_{tgeq 0}$ be a Feller-Dynkin Semigroup,i.e. it satisfies on $C_{0}(E)$ where $E$ is lccb (locally compact with countable base):

$1.$ $P_{t}: C_{0}(E)to C_{0}(E)$ is a linear operator
$2.$ $P_{t+s}=P_{t}P_{s}$ and $P_{0}=I$
$3.$ $0leq fleq 1implies 0leq P_{t}fleq 1$
$4.$ for all $fin C_{0}(E)$: $lvert lvert P_{t}f-frvertrvertxrightarrow{t downarrow 0}0$

Can I deduce that for any $fin C_{0}(E)$, the map $tmapsto P_{t}f$ is continuous?

Clearly by $4.$ and the semigroup property, right-continuity is not a problem but I cannot see how to prove left-continuity, any ideas?

Example of a function continuous almost everywhere

I am looking for an example of a function in [0,1]x[0,1] that is continuous in almost everywhere but which doesn’t coincide in almost everywhere with any other continuous function.