spells – What does this lines from Reverse Gravity mean?

Reverse Gravity includes that

Once an object or creature reaches the top of the area, it floats, caught between the normal and reversed gravity. The creature can move along the plane where the two forms of gravity meet. Creatures that can levitate or fly can use those abilities to mitigate the effects of reverse gravity.

What does the bolded sentence mean? It sounds like you can ‘walk’ on the top of the effect, but that doesn’t make a lot of sense to me (lacking traction) so I was wondering if that’s the case (because magic) or if there is another interpretation that is more accurate.

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?

geometry – Area of surface between two lines of latitude?

Start with a sphere of radius R, then take the part of the surface that exists between any two lines of latitude. I drew a pic with two examples, one near the equator and one near the pole.

enter image description here

What is the area of this blue section of surface? I don’t know what it’s proper name is, maybe a band or zone.

I did search around for this but I found a site that has a suspicious answer. There, they say it is simply 2piR*h, where h is the altitude between layers.

First of all, I don’t know how to determine altitude except at the equator where I can use a chord function C = 2R*sin(a/2), but you have to use twice the angle there and then take half the chord to get the altitude.

Second of all, I don’t understand how it can be purely based on h and not the cosine of latitude. A band near the pole will wrap around a much smaller part of the sphere. So the position of the band must be taken into account, not just its altitude (aka thickness in the projected cylinder).

So what is a good formula to find the area of a band between two lines of latitude? And if it really is only based on altitude, how and why?

beginner – Count characters, words, and lines in files (wc in rust)

I wrote a barebones version of wc in rust. wc is a program that counts the number of characters, words, and lines in a file and outputs those values to the command line. Here is an example of the output:

   9   25  246 Cargo.toml
  52  163 1284 src/main.rs
  61  188 1530 total

My version currently lacks the proper output alignment, and it doesn’t print the total (it also lacks the command line options, and it panics when fed a directory). But I would like to get some feedback before I go any further.

use std::env;
use std::fs::read_to_string;

struct InputFile {
    words: u32,
    lines: u32,
    characters: u32,
    name: String,
}

impl InputFile {
    fn new(name: &String) -> Self {
        let content = read_to_string(name).unwrap();
        let (mut characters, mut words, mut lines) = (0, 0, 0);
        let mut spaced: bool = false;
        for c in content.chars() {
            if c as u8 != 0 {
                characters += 1;
            }
            if c != ' ' && c != 'n' {
                spaced = false
            }
            if c == 'n' {
                lines += 1;
                if !spaced {
                    words += 1;
                    spaced = true;
                }
            }
            if c == ' ' && !spaced {
                words += 1;
                spaced = true;
            }
        }
        Self { lines, words, characters, name: name.to_string() }
    }
}

impl std::fmt::Display for InputFile {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        write!(f, "{} {} {} {}",
            self.lines, self.words, self.characters, self.name
        )
    }
}

fn main() {
    let files: Vec<String> = env::args().collect();
    for f in &files(1..) {
        println!("{}", InputFile::new(f));
    }
}

plotting – Why are my polar grid lines limited by the maximum radial value?

I am wondering why the displayed polar grid lines are limited by the maximum plotted value (see minimal example below) – is it possible to show polar grid lines beyond the largest radial value?

Thanks and Best,
Tim

{ListPolarPlot({{(Pi)/4, 0.5}}, PlotRange -> {{-1, 1}, {-1, 1}}, 
  PolarGridLines -> {Range(0, 2 (Pi), 2 (Pi)/24), Range(0, 1, 0.1)}),
 ListPolarPlot({{(Pi)/4, 0.8}}, PlotRange -> {{-1, 1}, {-1, 1}}, 
  PolarGridLines -> {Range(0, 2 (Pi), 2 (Pi)/24), 
    Range(0, 1, 0.1)})}

Hamburger menu icons – Recent trend of moving away from three full-width lines to having two full-width lines and a shortened line?

Some examples in various iOS apps:

  1. US BankUS Bank

  2. RentCafe enter image description here

  3. Uber enter image description here

The first two kinda reminds me of the icon for aligning text justified left.

I’m quite curious about the reason for this change. I couldn’t really find anything about it online. Could someone provide some insight and perhaps some online resources that talk about this?

Extracting points and lines from Graph

I was wondering if there is an easy way to extract lines and/or points from a Graph e.g.

myGraph=Graph({1 (UndirectedEdge) 2, 2 (UndirectedEdge) 3, 3 (UndirectedEdge) 1})

One way to extract the lines and points (together with their styles) from the above graph would be to “Copy as” the output of the graph in the form of a Notebook Expression and then paste it without interpreting the context of the text (there is a dialogue box appearing, select “No”). Then with some more lines of code we could extract the desired information e.g. from the GraphicsComplexBox, EdgeForm etc.

Note that you can add axes to your graph, in order to get a rough idea about the coordinates, by adding Axes->True i.e.

myGraph=Graph({1 (UndirectedEdge) 2, 2 (UndirectedEdge) 3, 3 (UndirectedEdge) 1},Axes->True)

Is there any other more straightforward way to extract the lines and/or points from a Graph?

Thanks,

Dimitris

C++: How to ignore word in a certain position in lines being read?

My code first opens the file and gets each line from it, each line taking the form:

HEX_NUM CHAR HEX_NUM

The code I have is

stringstream s( line );
s >> std::hex >> addr >> letter >> std::hex >> target ; 

However, I would like to only get the CHAR section (without having the create the variables addr and target). How can I rewrite the 2nd line of my code to do so?

How does the WPA2 crack work with Hashcat 22000 format hash lines?

I’m trying to understand the format and functionality of WPA2 hash lines that start with WPA*02* used with -m 22000 on hashcat.

The way I understand it, this format was created as an improvement and replacement to the .hccapx file format, and should thus contain the exact same data elements. However, when comparing it, I noted that when compared to the Hashcat wiki: https://hashcat.net/wiki/doku.php?id=hccapx for hccapx files, it is notably missing the nonce_sta field that is present in .hccapx files.

My question is, how does cracking a hash with such a hash line work without the nonce_sta field? What exactly does the EAPOL field contain?

Given a WPA*02* hash line, and its correct password, could you show me through each step of how to verify that that password is in fact the correct password from that hash line?

Thank you!