Add a Sink.extract function which pre-materializes data from a Sink and lets you replay that entire data stream into an existing Sink

This is another commonplace problem that happens when using pekko-streams which arises when you have a Sink that has some parameters (i.e. lets say an id) but the data to create that id is in the stream that is being sent to the Sink itself.
More concretely, lets assume we have a simple sink that stores some data in some object storage, i.e. def putData(id: String): Sink[ByteString, _]. In order to call putData we need an id however that is contained within the data being sent to the sink itself, i.e.
val source = Source.single(
   ByteString("id:1;moreData")
)

source.to(putData(???))

In this case we want the extract the id (i.e. ??? in above code snippet) from the actual data (i.e. "id:1"). Most importantly is that assuming we do figure out a way to extract the id, we still want all of the data (i.e. "id:1;moreData") to be sent to the Sink.
Now while there are tools to do this, i.e.Framing they aren't exactly idea. Framing usually only works when you have a very basic/primitive structure (i.e. lets say comma or new line delimited). If we have more complex data structures, lets say JSON we do have options available but solving the issue is still messy because honestly Framing is not really the right tool, i.e. its not that we want to frame the data coming in in a certain way but rather we wan't to consume + buffer the data until we manage to extract some data (i.e. the id) field and then once that id field is extract then send the buffered data along with the rest of the incoming data to a supplied Sink, i.e.
/**
 * Defers invoking the `create` function to create a sink until data from upstream is sent
 * to the `extractor` Sink and that `extractor` Sink completes. The materialized value
 * of completed `extractor` Sink is provided as a parameter to `create`.
 *
 * The primary use of this function is when you have a pre-existing `Sink` that requires
 * input which is derived from the data itself, i.e. the Sink requires an id as a parameter
 * however that id is contained within the upstream data that is being sent to the Sink
 *
 * @param extractor A Sink which upon completion sends the materialized value as
 *                  a parameter into the `create` function
 * @param extractorFinalizer A sink which tells how to complete the extractor Flow.
 * @param inclusive Whether the already sent data to the `extractor` Sink should be included
 *                  alongside with the rest of the upstream data that is yet to be processed
 *                  to the `create` Sink.
 */
def extract[T, E, M](extractor: Graph[FlowShape[T, E], _], extractorFinalizer: Graph[SinkShape[E], _], inclusive: Boolean, create: E => Sink[T, M]): Sink[T, M] =
  ???

def extract[T, E, M](extractor: Graph[FlowShape[T, E], _], extractorFinalizer: Graph[SinkShape[E], _], create: E => Sink[T, M]): Sink[T, M] =
  extract(extractor, extractorFinalizer, inclusive = true, create)

The design of this is still debatable, i.e. of particular note is how to model the extractor part. My initial thought was to have extractor as a Sink but I realized that practically creating a Sink from a Flow (which is how the extractor's are going to be typically designed) is quite cumbersome so I came up with this API instead, the usage would look like this
val json: String =
  s"""
     |{
     |  "id":"someId",
     |  "size": 3,
     |  "rows": [
     |    {"doc": "doc1",
     |    {"doc": "doc2",
     |    {"doc": "doc3"
     |  ]
     |}
  """.stripMargin
val source: Source[ByteString, NotUsed] = Source.single(ByteString(json))
val extractorFlow: Flow[ByteString, ByteString, NotUsed] = JsonReader.select("$.id")
source.via(Sink.extract(extractorFlow, Sink.head, id => putData(id.utf8String)))

With the above following example, we would extract the "someId" field from "id" using JsonReader.select("$.id") and then pass the someId into the putData sink argument and the entire contents of the Source will be fed into putData Sink since inclusive = true.
@He-Pin @pjfanning @jrudolph @raboof  @jxnu-liguobin Thoughts?

What about the flatMapPrefix? I think you can do the same with flatMapPrefix(1) and then prepend the first element to the flow.


Question - What is the preferable csv and text annotation format (so i could parse it for data generator)

Hi, Is there a preferable csv or text annotation format so i could pare it myself.
I was using YOLO implementation by qqwweee with format
path/to/image xmin1,ymin1,xmax1,ymax1,class1 xmin2,ymin2,xmax,ymax2,class2\n

Okay, just found it in code. Nevermind


Tensorflow environment variables breaking python import

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Rocky Linux 8.4
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): Both source and Pip
TensorFlow version: 2.7.0, 2.4.1
Python version: 3.9
Installed using virtualenv? pip? conda?: pip
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: cuda 11.4/ cudnn 8.2
GPU model and memory: Nvidia A100 40 GB

What environment variables does TF look for when being imported in Python? I have 2 installations on my system: 1 is compiled from source (2.4.1) and stored in a user directory. This installation is only for linking to the C++ libraries. The second is installed with pip for use in Python.
I discovered that by setting the environment variable TF_LIB_PATH, the Python installation fails to import Tensorflow with this error:
Traceback (most recent call last):
  File "/home/username/.local/lib/python3.9/site-packages/tensorflow/python/pywrap_tensorflow.py", line 64, in <module>
    from tensorflow.python._pywrap_tensorflow_internal import *
ImportError: /home/username/.local/lib/python3.9/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: undefined symbol: _ZNK10tensorflow8OpKernel11TraceStringERKNS_15OpKernelContextEb

I use various environment variables to set the paths to my source compiled C++ libraries.
But, by not setting the environment variable TF_LIB_PATH, I am able to import Tensorflow. Is this expected behavior?

I narrowed it down to TF_LIB_PATH=<path to libtensorflow_cc.so> being added to LD_LIBRARY_PATH. By removing this, I am able to import Tensorflow in Python again.

I had the same problem with TF 2.8 and jonwittmer's answer was the solution


Next 13 compatibility

Next 13 isn't listed as a valid peerDep. I know it's just been released, but I thought I'd post this as a heads up, since it's currently failing my build: https://github.com/ismay/portfolio/pull/96#issuecomment-1291573650

Thanks for reporting this! Just added Next 13 as a supported peer dep.
You can download the latest version:
npm install @panelbear/panelbear-nextjs@latest

# or with yarn
yarn add @panelbear/panelbear-nextjs@latest

Awesome, thanks for the quick fix 🙏!


aks create failed via cli while creating aks well by manual on the portal

az feedback auto-generates most of the information requested below, as of CLI version

azure-cli (2.0.46)
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior.
running cmd as below output:
Expected behavior
A clear and concise description of what you expected to happen.
Environment summary
Install Method (e.g. pip, interactive script, apt-get, Docker, MSI, edge build) / CLI version (az --version) / OS version / Shell Type (e.g. bash, cmd.exe, Bash on Windows)
Additional context
[work@monitor-vm ~]$ az account list-locations --output=table | grep chinaeast2
China East 2   31.3209     121.5891     chinaeast2
[work@monitor-vm ~]$ az aks create --resource-group xxxx --name xxxxx --node-count 1 --enable-addons monitoring --generate-ssh-keys --node-vm-size Standard_D2s_v3 --kubernetes-version 1.13.5 --subscription xxxxx --location chinaeast2
u'chinaeast2'
Traceback (most recent call last):
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/knack/cli.py", line 197, in invoke
cmd_result = self.invocation.execute(args)
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/core/commands/init.py", line 369, in execute
six.reraise(*sys.exc_info())
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/core/commands/init.py", line 343, in execute
result = cmd(params)
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/core/commands/init.py", line 182, in call
return self.handler(*args, **kwargs)
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/core/init.py", line 436, in default_command_handler
result = op(**command_args)
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/command_modules/acs/custom.py", line 1459, in aks_create
workspace_resource_id
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/command_modules/acs/custom.py", line 1726, in _handle_addons_args
cmd, subscription_id, resource_group_name)
File "/home/work/local/azure-cli/lib/lib/python2.7/site-packages/azure/cli/command_modules/acs/custom.py", line 1842, in _ensure_default_log_analytics_workspace_for_monitoring
rg_location] if AzureRegionToOmsRegionMap[rg_location] else default_region_name
KeyError: u'chinaeast2'
[work@monitor-vm ~]$ az --version
azure-cli (2.0.46)

@dragonsappire
You need to use az cloud set ... to set your cloud to the China cloud.
We should print a better error than this, though.


Fix pairing crash in physics Octree

Remove section of code that should not run and was causing crash.
Fixes #70322
Notes

Regression caused by #55640
The section of code previously passed nullptr to SpaceSW::_broadphase_pair in p_pair_data, this meant that the middle of the removed section never should have ran.
Only relevant in 3.x as we removed octree from 4.x

That one user still using octree physics will be overjoyed! :grinning:

Thanks!

Cherry-picked for 3.5.2.


feat: tenderly simulation button in transaction builder

Motivation
We want to simulate transaction before the proposal gets posted on chain.
screenshots

im not sure how to do this, but we may need to pr this to the snapshot repo rather than uma/master

getting some strange behavior with the proxy vs implementation logic.

create new proposal, https://snapshot-goerli-ijoq16vqw-uma.vercel.app/#/osnap-v2.eth/create
select contract interaction: 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
select implementation
put in spender address local wallet
set value to 0, see that simluation succeeds:

cut "To" and paste it back to retrigger proxy/implementation modal
select implementation ( again )
see that you cannot publish or simulate with a valid form:

accepted upstream


Typical MS DOCs: GetJsonAsync

This error in the example has still not been address.  I have always found Microsoft Docs to be the last resort after StackOverflow has been totally searched and then come here to find nothing ever makes sense or works.  The partial examples and complete lack of flow on how to get examples to work is just so frustrating on almost everything linked to Microsoft Docs.  Sure hope they don't buy StackOverflow!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8b5e2e10-ff7b-2b9f-84da-f16028ae2c53
Version Independent ID: c7e59a08-1c60-32c2-75fd-33cb77ff7a5d
Content: Call a web API from ASP.NET Core Blazor
Content Source: aspnetcore/blazor/call-web-api.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

See: https://github.com/aspnet/AspNetCore.Docs/issues/15430#issuecomment-553644665
Since a few developers are hitting this, I'll note it in the topic.

The topic tries to explain that it's focused on Blazor WebAssembly and the experimental package. The second line says ...

Blazor Server apps call web APIs using HttpClient instances typically created using IHttpClientFactory. For more information, see Make HTTP requests using IHttpClientFactory in ASP.NET Core.

... and that link takes the reader over to the topic that they should follow (indeed, where the reader won't see GetJsonAsync).
Now that a couple of these remarks have come in (I think you're the second to ask), I take it that the first two lines introducing the topic and the following call outs ...

"For Blazor WebAssembly ..."
"In Blazor WebAssembly ..."
"When running on WebAssembly in a Blazor WebAssembly app, ..."

... don't go far enough that the HttpClient for Blazor Server isn't the service (and examples) described by this topic. On a broader point, I'm a little concerned about the two hosting models being sufficiently clear in readers minds to pick up on these distinctions because many topics use similar language to call out concepts that pertain to one hosting model or the other. I'll keep an :ear: open for that happening as we go.
For this issue, I'll clarify it further so that readers don't get tripped up. Thanks for writing in. I'll ping you on the PR.

I think MS docs makes a huge assumption of knowledge when looking at the docs. Even you pointing out the paragraph that should how have redirected me to another page, I’m still not sure why that tells me to leave that example alone and go to another page. I guess I only know enough to be dangerous (and frustrated). Thanks for listening to our feedback though.
My whole objective was to figure out how to utilize a web api call inside of blazor. I’m ok with server side but couldn’t put that puzzle together from any of the docs. That’s probably too much of a newbie thing to search but I’m still not able to do it.

On Nov 24, 2019, at 6:47 AM, Luke Latham<EMAIL_ADDRESS>wrote:

The topic tries to explain that it's focused on Blazor WebAssembly and the experimental package. The second line says ...
Blazor Server apps call web APIs using HttpClient instances typically created using IHttpClientFactory. For more information, see Make HTTP requests using IHttpClientFactory in ASP.NET Core.
... and that link takes the reader over to the topic that they should follow (indeed, where the reader won't see GetJsonAsync).
Now that a couple of these remarks have come in (I think you're the second to ask), I take it that the first two lines introducing the topic and the following call outs ...
"For Blazor WebAssembly ..."
"In Blazor WebAssembly ..."
"When running on WebAssembly in a Blazor WebAssembly app, ..."
... don't go far enough that the HttpClient for Blazor Server isn't the service (and examples) described by this topic. On a broader point, I'm a little concerned about the two hosting models being sufficiently clear in readers minds to pick up on these distinctions because many topics use similar language to call out concepts that pertain to one hosting model or the other. I'll keep an 👂 open for that happening as we go.
For this issue, I'll clarify it further so that readers don't get tripped up. Thanks for writing in. I'll ping you on the PR.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/aspnet/AspNetCore.Docs/issues/15843?email_source=notifications\u0026email_token=AHSVCGTNM24H6PQZ2DF7DETQVJZUDA5CNFSM4JQ5GFYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAKNZQ#issuecomment-557885158", "url": "https://github.com/aspnet/AspNetCore.Docs/issues/15843?email_source=notifications\u0026email_token=AHSVCGTNM24H6PQZ2DF7DETQVJZUDA5CNFSM4JQ5GFYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAKNZQ#issuecomment-557885158", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Yes, I thought that was the case ... it's earlier in the coverage.
One has to recognize that Blazor Server and Blazor WebAssembly are two different hosting models and thus sometimes how to do things will diverge ... in this case, the coverage diverges a lot. In this case, this entire topic is for Blazor WebAssembly. With Blazor WebAssembly, everything here works. When using the Blazor Server hosting model, nothing here works.
It's covered earlier ... https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.0
If you haven't already seen it on the PR, I'm going a lot further to try and get readers to the right spot. In the end tho, they will need to know from reading the earlier topic what the difference is.
... indeed, the best way to learn Blazor via the docs from stratch is to read the topics from the top of that TOC (table of contents) node right down the list.

Thanks. I had read them and watched a ton of videos but didn’t realize I was in webassembly until I downloaded the sample code. I was hoping I could somehow still make it work but as you pointed out, that wasn’t going to happen. I found that page by searching how to do web api through blazor and unfortunately I didn’t get the context of the page as it was standalone. I think that’s typical of MS docs that the reader would be reading from the beginning and not jump directly to that topic or in the middle of it due to a search.
Again, thanks. Stop working on your day off!  I’m old and can assure you that you don’t get that time back. :)

On Nov 24, 2019, at 1:28 PM, Luke Latham<EMAIL_ADDRESS>wrote:

Yes, I thought that was the case ... it's earlier in the coverage.
One has to recognize that Blazor Server and Blazor WebAssembly are two different hosting models and thus sometimes how to do things will diverge ... in this case, the coverage diverges a lot. In this case, this entire topic is for Blazor WebAssembly. With Blazor WebAssembly, everything here works. When using the Blazor Server hosting model, nothing here works.
It's covered earlier ... https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.0
If you haven't already seen it on the PR, I'm going a lot further to try and get readers to the right spot. In the end tho, they will need to know from reading the earlier topic what the difference is.
... indeed, the best way to learn Blazor via the docs from stratch is to read the topics from the top of that TOC (table of contents) node right down the list.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/aspnet/AspNetCore.Docs/issues/15843?email_source=notifications\u0026email_token=AHSVCGQTVVZRQV5FEP5HMFDQVLIU7A5CNFSM4JQ5GFYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAS4RI#issuecomment-557919813", "url": "https://github.com/aspnet/AspNetCore.Docs/issues/15843?email_source=notifications\u0026email_token=AHSVCGQTVVZRQV5FEP5HMFDQVLIU7A5CNFSM4JQ5GFYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAS4RI#issuecomment-557919813", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

I hear u on that, but this isn't my day off. The repo is quiet on the weekends ... MS engineers and docs cats are OOF, and corporate devs around the world are OOF.
🔧 Finally, I can get some work done around here! 🔨 :smile:


added content to paragraph three

re: comments helpful to self!

[x ] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[x ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Hey @deboutlaw
You haven't actually added any content so I will be closing this PR and marking it as invalid. 😓
Feel free to open another PR though! 👍


contributation

@all-contributors please add @jonataslaw for code

@all-contributors please add @jonataslaw for code

@all-contributors please add @Nipodemos  for doc

@all-contributors please add @RodBr for tutorial

@all-contributors please add @chimon2000 for test

@all-contributors please add @Nipodemos for doc

@all-contributors please add @RodBr for tutorial

@all-contributors please add @chimon2000 for test


HTTP ERROR 403 [ Access to rr1---sn-vgqskn6d.googlevideo.com was denied ]

Showing videos.How to solve this?Can you help me on this

Its showing some youtube videos only.

In Browser Console we got  [HTTP/1.1 403 Forbidden 394ms]. when we got 403 Error.Can you help how to solve this.
Please welcome for anyone facing that kind of issue.Give me a Solution for that.
Thanks

What video url was it?

I encountered the same problem. Change the machine or change the IP address


Update README.md install dependencies

Update Dependencies

Updated project dependencies for people to run your projects easier.

Please review and merge this update. Thank you!

Closed due to no reply.


Debian packaging for Pop!_OS

Whenever you're ready, I'll package and add this to our Pop repository. This seems like a very useful tool for us.

You mean CLI app, right?
Do you have any integration process documentation or anything similar worth to read out of curiosity?

Yes, the CLI application, or any available user-facing binary project. A GTK application would be nice to have, for example.
There's no documentation for the packaging process. We set up cargo packages to create a source tarball that contains an inner vendor tarball, so that the build system can build the Cargo project without Internet access in Launchpad. No work has to be done on your part.

@mmstick, okay, got it, thank you.
Yet as I was said a couple times before on reddit, CLI application was basically a proof of concept and from my point of view it is not ready to be used everywhere.
First of all, it would be nice to get a community feedback (as in #13, for example), stabilize it a little and move on then.
Any way, this idea sounds amazing :)


Add "Not exposed" status in the services dropdown

Description
Show the running services that are exposed in the Services dropdown to improve clarity.
Fixes: #1070
Checklist

[x] The documentation reflects the changes.
[x] The PR branch is set up to merge into dev instead of master.
[x] I haven't introduced breaking changes that would disrupt existing jobs, i.e. backwards compatibility is maintained.
[x] In case I changed the dependencies in any requirements.in I have run pip-compile to update the corresponding requirements.txt.
[x] In case I changed one of the services' models.py I have performed the appropriate database migrations (refer to the DB migration docs).
[x] In case I changed code in the orchest-sdk I followed its release checklist.
[x] In case I changed code in the orchest-cli I followed its release checklist.

Nice fix! This works for me. But can you make the fonts a bit more in balance:

I won't prescribe exact sizes but at a high level I feel like the "Port 8080" text is "too large" and the service name and "Not exposed" text too small. If you tweak it and find it's balanced and consistent with the surrounding UI that's good enough for me :+1:

LGTM!


403 CSRF Token Mismatch

I get this error after installing the package and submitting a form in nuxt 3. The backend is using Nuxt server components.
403
CSRF Token Mismatch

Please provide a reproduction link, or at least your configuration and environment. I can't help without it

Please provide a reproduction link, or at least your configuration and environment. I can't help without it

#43 Same issue

@iforgetyounow @montythemack @Morgbn Can you guys check https://github.com/Morgbn/nuxt-csurf/issues/28#issuecomment-2194360017

@Morgbn The "Broken examples" are a result of a few console.logs to see what's happening in the background because of the silently suppressed error - the root cause of this is fixed by setting csurf.encryptSecret in prod env (Vercel, serverless). It worked well in local env, without the secret being set, even on the homepage (see below).
The second issue with this library is that it doesn't support pre-rendered pages with client-side rendering (where the CSRF token is statically rendered there). A workaround for this is to call routes.clear() in the prerender:routes hook as proposed by Nuxt docs in the rendering section, but this results in a broken Nuxt Content module (because of required pre-rendered json route), so our current solution is to call routes.delete('/') instead (as / is the only entry left in the routes, in addition to Nuxt Content's json).

@bojanrajh thanks for your detailed comment !
When you say "pre-rendered pages with client-side rendering" you mean that you have routeRules: { '*': { prerender: true } } in your nuxt.config ?
If so try adding '/api/**': { prerender: false } as mentioned here, to prevent nuxt to pre-render your API routes

@bojanrajh I tried the digital-ocean preset + ssr: false on the playground, and launch it locally, but I don't encounter any errors 😥. With this config:
export default defineNuxtConfig({
  modules: [...],
  ssr: false,
  nitro: {
    preset: 'digital-ocean'
  },
  routeRules: {
    '/api/nocsrf': {
      csurf: false
    }
  },
  csurf: {
    https: false, // for localhost
    methodsToProtect: ['POST'],
  }
})

digital-ocean

Modify configuration and solve problems
methodsToProtect: ['GET','POST', 'PUT','DELETE']-->        methodsToProtect: ['POST', 'PUT','DELETE']
cannot configure GET

@bojanrajh I tried the digital-ocean preset + ssr: false on the playground, and launch it locally, but I don't encounter any errors 😥. With this config:
export default defineNuxtConfig({
  modules: [...],
  ssr: false,
  nitro: {
    preset: 'digital-ocean'
  },
  routeRules: {
    '/api/nocsrf': {
      csurf: false
    }
  },
  csurf: {
    https: false, // for localhost
    methodsToProtect: ['POST'],
  }
})

Modify configuration and solve problems
methodsToProtect: ['GET','POST', 'PUT','DELETE']-->        methodsToProtect: ['POST', 'PUT','DELETE']
cannot configure GET

@iforgetyounow you can configure GET, but not globally ! GET routes are generally not protected with CSRF protection because GET requests are intended to be idempotent and safe, meaning they should only retrieve data without causing any side effects or modifications on the server. CSRF attacks typically exploit state-changing operations, which are usually performed through POST, PUT, DELETE, or PATCH requests. Thus, CSRF protection is applied to these methods to prevent unauthorized actions.

@Morgbn
Here's a no-diff reproduction from main branch, you don't even need to change the preset.
git clone git@github.com:Morgbn/nuxt-csurf.git
cd nuxt-csurf
pnpm i
cd playground
npx nuxi@latest dev
# test, works okay - test without csrf header throws error, test with csrf header is successful
# ctrl + c
npx nuxi@latest build
node .output/server/index.mjs
# test, throws error with and without csrf header, csrf token is always the same (view-source:http://localhost:3000/ in different browsers)

Anyways, only homepage is affected by default because it's prerendered + the error happens if you start on the homepage, navigate to another page and post the form (because token stays the same, hardcoded).
The issue with '/api/**': { prerender: false } (and routes.clear()) is that is conflics with Nuxt Content (it prerenders some routes in /api/_content/query/foo.timestamp.json) and possible other modules as well. But the idea here is correct: one needs to remove all standard routes from prerendering, but keep the one generated programatically (by plugins or modules for example).
I guess another approach to implement CSRF token and avoid all those SSR, pre-rendering and caching issues would be to receive it on-the-fly, right before the actual request is made so you can also connect it to the session (which would be also more secure?).

@bojanrajh yes, I think the real problem is this prerender behavior. The csrf token is added in the html head when nitro renders the page. I don't know how to mitigate that quickly, and I don't have time to investigate more now..


Upgrade debezium version to 0.7.4

Hello,
Debezium has released a new version 0.7.4 recently (http://debezium.io/blog/2018/03/07/debezium-0-7-4-released/).

This change is

Thanks for this! A couple hours earlier we also updated Kafka Connect UI to 0.9.5 which has proper support for Debezium connectors. Thus this is a very well timed PR. :)


Elm

There is Elm support, you may want to add it: https://github.com/ElmCast/elm-vim

There is no point in moving it to syntastic.  It should work out of the box once you install both syntastic and elm-vim, and external checkers are encouraged.  Also the checker itself is tied to elm-vim, it doesn't work stand-alone.

I mean in the documentation

I'm not trying to collect links for all external checkers (among other reasons, the quality of these things varies greatly).  I expect whoever cares about about ELM and Vim will find elm-vim soon enough.

Ok, fair enough. Let your documentation lack essential things for no reason. Good to know, how to work :slightly_smiling_face:


add cursor based pagination

Hi!
I think this feature suitable for this gem.
Solution based on Kaminari and works independently.

👍

@davidcelis hi! Could you please review the PR?

Hey folks; I'm definitely thinking about this, but there's a lot of potential with this cursor based paginator. I'm weighing the removal of Kaminari and WillPaginate as possible dependencies, as cursor-based pagination works better than LIMIT/OFFSET. This could be a big breaking change for anybody already using the gem, though, so it'd be a major version update.
I'm just weighing my options as to whether this should be an additional paginator, or basically a rewrite of the gem. Thanks!

Hey! Just a idea: api-pagination with cursor based pagination, and api-pagination-adapters which supports Kaminari and WillPaginate. Or even api-pagination-kaminari, api-pagination-will-paginate

@accessd That's definitely another possibility, and it'd make it easier to support patches to the kaminari/will_paginate paginators instead of having to backport them to previous versions…
So far I think I like that idea the best. Let me ruminate on it a bit more for a day or two 😄

very anxious to see this PR merged. Any updates?

Looks amazing! Any updates :) ?

Hey @davidcelis did you have the time to think about this?
We ended up writing it ourselves, but I would have loved to use this gem feature instead.
For me it makes sense to have this along with the traditional pagination.

@jvenezia Could you share the library that you wrote since it feels like this library isn't active anymore?


[TA] Language API target error format.

In the legacy API, the target error format version before 2022-10-01-preview, is like
      // "#tasks/
       String.format("#/tasks/(%s|%s|%s|%s|%s|%s|%s|%s|%s)/(\\d+)", KEY_PHRASE_EXTRACTION_TASKS,
            ENTITY_RECOGNITION_PII_TASKS, ENTITY_RECOGNITION_TASKS, ENTITY_LINKING_TASKS, SENTIMENT_ANALYSIS_TASKS,
            EXTRACTIVE_SUMMARIZATION_TASKS, CUSTOM_ENTITY_RECOGNITION_TASKS, CUSTOM_SINGLE_CLASSIFICATION_TASKS,
            CUSTOM_MULTI_CLASSIFICATION_TASKS);

but in the  2022-10-01-preview, the format changed, it is still not confirmed but might be something like,

"#/tasks/items/2"

The service team confirmed the error format will be like "#/tasks/items/2" in Language API


Is Storage Sync Services movable across the subscription to CSP subscription ?

I need to check if Storage Sync Services are movable to CSP offering subscription in azure.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 76c1c185-685f-27e0-e634-844b510b1834
Version Independent ID: 09375778-5354-ab44-c5c6-94c2aebe34bc
Content: Move Azure resources to new subscription or resource group
Content Source: articles/azure-resource-manager/resource-group-move-resources.md
Service: azure-resource-manager
GitHub Login: @tfitzmac
Microsoft Alias: tomfitz

@Jayesh040 Thanks for the comment! We will check on this ask and get back to you soon.

@Jayesh040 - yes, it can be moved. I have submitted an update to add that service. Also, you can find details about which resource types can be moved at https://docs.microsoft.com/en-us/azure/azure-resource-manager/move-support-resources#microsoftstoragesync.


BLEURT score calculation raises UnrecognizedFlagError

Calling the compute method for bleurt metric fails with an UnrecognizedFlagError for FLAGS.bleurt_batch_size.
My environment:
python==3.8.5
datasets==1.2.0
tensorflow==2.3.1
cudatoolkit==11.0.221

Test code for reproducing the error:
from datasets import load_metric
bleurt = load_metric('bleurt')
gen_text = "I am walking on the promenade today"
ref_text = "I am walking along the promenade on this sunny day"
bleurt.compute(predictions=[test_text], references=[test_text])

Error Output:
Using default BLEURT-Base checkpoint for sequence maximum length 128. You can use a bigger model for better results with e.g.: datasets.load_metric('bleurt', 'bleurt-large-512').
INFO:tensorflow:Reading checkpoint /home/ubuntu/.cache/huggingface/metrics/bleurt/default/downloads/extracted/9aee35580225730ac5422599f35c4986e4c49cafd08082123342b1019720dac4/bleurt-base-128.
INFO:tensorflow:Config file found, reading.
INFO:tensorflow:Will load checkpoint bert_custom
INFO:tensorflow:Performs basic checks...
INFO:tensorflow:... name:bert_custom
INFO:tensorflow:... vocab_file:vocab.txt
INFO:tensorflow:... bert_config_file:bert_config.json
INFO:tensorflow:... do_lower_case:True
INFO:tensorflow:... max_seq_length:128
INFO:tensorflow:Creating BLEURT scorer.
INFO:tensorflow:Loading model...
INFO:tensorflow:BLEURT initialized.
---------------------------------------------------------------------------
UnrecognizedFlagError                     Traceback (most recent call last)
<ipython-input-12-8b3f4322318a> in <module>
      2 gen_text = "I am walking on the promenade today"
      3 ref_text = "I am walking along the promenade on this sunny day"
----> 4 bleurt.compute(predictions=[gen_text], references=[ref_text])

~/anaconda3/envs/noved/lib/python3.8/site-packages/datasets/metric.py in compute(self, *args, **kwargs)
    396             references = self.data["references"]
    397             with temp_seed(self.seed):
--> 398                 output = self._compute(predictions=predictions, references=references, **kwargs)
    399
    400             if self.buf_writer is not None:

~/.cache/huggingface/modules/datasets_modules/metrics/bleurt/b1de33e1cbbcb1dbe276c887efa1fad68c6aff913885108078fa1ad408908778/bleurt.py in _compute(self, predictions, references)
    103
    104     def _compute(self, predictions, references):
--> 105         scores = self.scorer.score(references=references, candidates=predictions)
    106         return {"scores": scores}

~/anaconda3/envs/noved/lib/python3.8/site-packages/bleurt/score.py in score(self, references, candidates, batch_size)
    164     """
    165     if not batch_size:
--> 166       batch_size = FLAGS.bleurt_batch_size
    167
    168     candidates, references = list(candidates), list(references)

~/anaconda3/envs/noved/lib/python3.8/site-packages/tensorflow/python/platform/flags.py in __getattr__(self, name)
     83     # a flag.
     84     if not wrapped.is_parsed():
---> 85       wrapped(_sys.argv)
     86     return wrapped.__getattr__(name)
     87

~/anaconda3/envs/noved/lib/python3.8/site-packages/absl/flags/_flagvalues.py in __call__(self, argv, known_only)
    643     for name, value in unknown_flags:
    644       suggestions = _helpers.get_flag_suggestions(name, list(self))
--> 645       raise _exceptions.UnrecognizedFlagError(
    646           name, value, suggestions=suggestions)
    647

UnrecognizedFlagError: Unknown command line flag 'f'

Possible Fix:
Modify _compute method https://github.com/huggingface/datasets/blob/7e64851a12263dc74d41c668167918484c8000ab/metrics/bleurt/bleurt.py#L104
to receive a batch_size argument, for example:
def _compute(self, predictions, references, batch_size=1):
    scores = self.scorer.score(references=references, candidates=predictions, batch_size=batch_size)
    return {"scores": scores}

Upgrading tensorflow to version 2.4.0 solved the issue.

Upgrading tensorflow to version 2.4.0 solved the issue.

I still have the same error even with TF 2.4.0.

I still have the same error even with TF 2.4.0.

And I have the same error with TF 2.4.1. I believe this issue should be reopened. Any ideas?!

And I have the same error with TF 2.4.1. I believe this issue should be reopened. Any ideas?!

@aleSuglia @oscartackstrom - Are you getting the error when running your code in a Jupyter notebook ?
I tried reproducing this error again, and was unable to do so from the python command line console in a virtual environment similar to the one I originally used (and sadly no longer have access to) when I first got the error.
However, I've managed to reproduce the error by running the same code in a Jupyter notebook running a kernel from the same virtual environment.
More environment details:
OS: Ubuntu Linux 18.04
conda==4.8.3
python==3.8.5
datasets==1.3.0
tensorflow==2.4.0
BLEURT==0.0.1
notebook==6.2.0

This happens when running the notebook on colab. The issue seems to be that colab populates sys.argv with arguments not handled by bleurt.
Running this before calling bleurt fixes it:
import sys
sys.argv = sys.argv[:1]

Not the most elegant solution. Perhaps it needs to be fixed in the bleurt code itself rather than huggingface?

I got the error when running it from the command line. It looks more like an error that should be fixed in the BLEURT codebase.

Will open an issue on the bleurt repository and link to this issue.

Hi, the problem should be solved now.


Glimpse re-rendering output within a single page

This may be related to https://github.com/Glimpse/Glimpse/issues/107.  I ran across an instance where Glimpse is taking my entire page contents and outputting it a second time, right in the middle of a Javascript variable I'm setting in the output. I'm using IIS Express.
My raw output is on: http://pastebin.com/Hq8ejkkm
You'll see the issue on line 252: this only happens with Glimpse turned on.

I've noticed this issue in our MVC app as well.  It seems to be related to the size of the HTML generated.  I will try to get a sample of our HTML code to send up here that exhibits the problem.
The page seems to be rendered correctly up to a point, and then unexplicably restarts the rendering mid-stream (including header tags and doctype declaration).
When turning Glimpse off (not removing the NuGet package), the page renders correctly.  I'm using IIS Express as well.

Getting this issue as well, after fixing the blank html output issue by turning off urlCompression. Getting exactly what @Bunk has described: For smaller pages it's working great, for anything longer it stops the render at some point and re-renders the whole page again in its entirety.
We're using IIS7.

Not a lot of info to add, but I'm seeing the same thing. In my case, it's when running in IIS and the page is webforms, but the overall application is MVC3. And it happens on multiple pages. There doesn't seem to be anything significant about where it starts over, as one time it's line ~60 right after a , and the next it's line ~340 in the middle of a javascript assignment.

All,
We believe we have fixed this issue.
Can you please test and confirm by installing the alpha build of Glimpse 0.87 from MyGet at http://www.myget.org/F/getglimpse/
If we get confirmation that this fixes your issue - we will release to the main NuGet.org repository.
Thanks,
Nik

I just installed Glimpse 0.87 beta and this issue appears to be fixed. Love your work :)

After battling with MyGet getting 400 errors and fixing those issues with their support team, I finally was able to download and update to Glimpse 0.87.
Happy to report that this has appeared to also fix my issues.
Great work, btw!

Looks good to me on the original page I posted.  Thanks for all your work - this is an amazing tool!

I can confirm that 0.87 fixed the issue for me as well.


Add API to configure which specific thrift files get compiled

Adds an API to allow configuring include and exclude patterns on sourceDir entries in the Gradle plugin extension.
@jparise please take a look and let me know whether this addresses your use-case.  You're welcome to comment on anything here but probably the most interesting thing will be the readme changes which document the new API, and its direct implementation in ThriftyExtension.kt should you be so inclined.
Fixes #365

Codecov Report

Merging #367 into master will decrease coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #367      +/-   ##
============================================
- Coverage     76.75%   76.69%   -0.07%
  Complexity      381      381
============================================
  Files            29       29
  Lines          1665     1665
  Branches        148      148
============================================
- Hits           1278     1277       -1
  Misses          292      292
- Partials         95       96       +1

Impacted Files
Coverage Δ
Complexity Δ

...com/microsoft/thrifty/service/AsyncClientBase.java
61.62% <0.00%> (-1.17%)
7.00% <0.00%> (ø%)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d1ca5cc...da72e2d. Read the comment docs.

I'm try to get this running locally so I can run through it fully, but I could use a little help that may be related to how I'm building/using this branch locally.
I'm able to load the plugin with a little buildscript help, but something as simple as this:
buildscript {
    repositories {
        flatDir { dirs /* paths to locally-built jars */ }
    }
    dependencies {
        classpath 'com.microsoft.thrifty:thrifty-gradle-plugin:2.1.1-SNAPSHOT'
    }
}

apply plugin: 'com.microsoft.thrifty'
apply plugin: 'kotlin'

thrifty {
    kotlin {
        omitFileComments true
    }
}

... barks back at me this error when I run the generateThriftFiles task:
A problem occurred evaluating project ':modules:schemas'.
> No signature of method: schemas_lfo0wux2ge0pedca69lbazbc.thrifty() is applicable for argument types: (schemas_lfo0wux2ge0pedca69lbazbc$_run_closure1) values: [schemas_lfo0wux2ge0pedca69lbazbc$_run_closure1@707e1a69]
  Possible solutions: notify(), print(java.lang.Object), print(java.io.PrintWriter), print(java.lang.Object)

thrifty { kotlin {} } (which I see through the test suite) "works" because it doesn't have any closures, but that's not too helpful in my case.

Yikes, that sure is unfriendly.  The error is that omitFileContents isn't a valid option.  I'll see if there's a way to make that less cryptic.

Yikes, that sure is unfriendly. The error is that omitFileContents isn't a valid option. I'll see if there's a way to make that less cryptic.

I don't think that's quite it in my case. I run into the same problem when I use a valid option (thanks for spotting my goof!) or something like:
thrifty {
    includePath 'commons/thrift'
    kotlin { }
}

Again, I'm sorry to say that your example isn't well formed.  As you noted, while the option should be includePath it is in fact includeDir.

Ah. And correcting that gets me to an error like this:
> Failed to query the value of task ':modules:schemas:generateThriftFiles' property 'includePath'.
   > Cannot convert the provided notation to an object of type Dependency: /<removed>/modules/schemas/thrift.
     The following types/formats are supported:
       - Instances of Dependency.
       - String or CharSequence values, for example 'org.gradle:gradle-core:1.0'.
       - Maps, for example [group: 'org.gradle', name: 'gradle-core', version: '1.0'].
       - FileCollections, for example files('some.jar', 'someOther.jar').
       - Projects, for example project(':some:project:path').
       - ClassPathNotation, for example gradleApi().

... for includePath 'thrift'. If I pass a non-existent directory name instead, it gives me a error, so it appears to be finding the path just fine.

That one is clearly down to my misunderstanding of the dependency APIs; will fix.

I'm afraid cfa1483 didn't fix that error for me.

Also, if I use something like:
thrifty {
    sourceDir 'thrift'
}

... I get path must be a directory. If I use a non-existent directory name, I don't receive any error.
And if I try:
thrifty {
    sourceDir('thrift') {
        include 'base.thrift'
    }
}

... I get this unfriendly result:
> No signature of method: schemas_lfo0wux2ge0pedca69lbazbc.thrifty() is applicable for argument types: (schemas_lfo0wux2ge0pedca69lbazbc$_run_closure1) values: [schemas_lfo0wux2ge0pedca69lbazbc$_run_closure1@95e3289]

There must be something very different between the integration tests and your actual usage, because I can't seem to reproduce most of the issues you're encountering :(

Thanks for spending so much time with this today.  I finally got a repro, but have to confess that I don't quite understand why the error happens.
As with most things in Gradle, the problem goes away when I stop doing things in the officially-recommended way.

Now I'm stuck trying to resolve this (apparently common) ANTLR dependency issue that pops up sometimes in Android projects:
ANTLR Tool version 4.8 used for code generation does not match the current runtime version 4.5.3ANTLR Runtime version 4.8 used for parser compilation does not match the current runtime version 4.5.3

Lol, wtf.  Could it be that you are depending on multiple thrifty versions (one for the plugin, another for the rest of it)?

I think aside from the fact that I can't quite test it in-to-end, the code in this branch should do what I want it to. :)
The one additional thing that would be nice to customize is the output directory. There doesn't appear to be an option for that.

Can you say more about the output directory?  I'm thinking that the files generated here are ephemeral, not to be preserved or checked in.  What would configuring the output directory enable for you?

Can you say more about the output directory? I'm thinking that the files generated here are ephemeral, not to be preserved or checked in. What would configuring the output directory enable for you?

It's not a very important requirement. We currently generate the files in $projectDir/src/main/kotlin and check them into source control (for historic reasons so that every build didn't need to have the thrift binary back in our pre-Thrifty days). We can revisit this, but for the sake of parity, I was going to configure the output path to be the same as it is currently.


HARPOON 2.0

Harpoon has always been a public source more than open source
i want to make Harpoon 2.0 to make everything you all want.  PLEASE LET ME KNOW THE THINGS YOU NEED TO CHANGE ABOUT Harpoon.
the problem is that Harpoon requires too much integration for any changes, i want to make harpoon generic retriever
i'll start creating harpoon 2.0 in the next couple of weeks

scoping a harpoon list to a git branch could be nice

If there are terminal features in the new version (though I think you've mentioned wanting to remove them) it would be nice to have more control over how the terminal commands get dispatched. This way users can make use of their preferred multiplexer, and the burden of maintaining integrations falls less on Harpoon and more on extensions / user configs.

@willothy 2 things

i want to completely remove the idea of terminal features
i want to make harpoon work in such a way that ANY TERMINAL can have commands issued to

i want to create an extensible architecture

make it a Entity Component System like overseer and/or steal reuse the bits. The design of overseer is excellent, but personally I dont like the interface choice with 1. toggle overview, 2. jump into overview, 3. select item, 4. select action, 5. enter

the temporary buffer functionality of overseer is excellent except for :q!/ZQ closing the content
terminal functionality could remain and adding any should be avoided unless for extracting autocompletions

provide the user an api to access to the underlying (id, buffer, path) and the same for terminal
slider from left, right, top or bottom for path actions ie for applying multiple filters is my preference, but overall the popup should be never needed to prevent losing context
provide lua api + commands to select local commands and/or how to invoke those commands externally for non-vim users
Preconfigured Terminal Commands, sounds like windows-specific, since the standard on unix seems to be direnv or not?
Outline your planned design and/or make a writeup or alike format.
once the baseline for the ECS is done, consider adding git worktree as one implementation. Others could be inspired by https://github.com/cbochs/grapple.nvim#project-scopes.

Feature wise, I think less is more unless you plan to do buffer-annotations for serialization and deserialization of complete system states. In that case, you can take a look at my messarounds in https://github.com/matu3ba/libbuf.nvim.

@nikfp
what about key() as an abstract function.

defaults to cwd()
allow for override (which could then have git_branch() + cwd())

make it a Entity Component System like overseer and/or ~steal~ reuse the bits. The design of overseer is excellent, but personally I dont like the interface choice with 1. toggle overview, 2. jump into overview, 3. select item, 4. select action, 5. enter

the temporary buffer functionality of overseer is excellent except for :q!/ZQ closing the content
terminal functionality could remain and adding any should be avoided unless for extracting autocompletions

provide the user an api to access to the underlying (id, buffer, path) and the same for terminal
slider from left, right, top or bottom for path actions ie for applying multiple filters is my preference, but overall the popup should be never needed to prevent losing context
provide lua api + commands to select local commands and/or how to invoke those commands externally for non-vim users
Preconfigured Terminal Commands, sounds like windows-specific, since the standard on unix seems to be direnv or not?
Outline your planned design and/or make a writeup or alike format.
once the baseline for the ECS is done, consider adding git worktree as one implementation. Others could be inspired by https://github.com/cbochs/grapple.nvim#project-scopes.

Feature wise, I think less is more unless you plan to do buffer-annotations for serialization and deserialization of complete system states. In that case, you can take a look at my messarounds in https://github.com/matu3ba/libbuf.nvim.

i honestly don't understand about 1/3 of this
point 4 seems really confusing... why would i even have an api outside of vim?  this is a vim plugin.  its not a stand alone library.
point 6 will be done on next programming stream

I only use harpoon to cycle between a few files at once.  My bindings:
a: Add a file
d: Delete file
l: Show harpoon
[[ and ]]: prev and next file
I use other neovim plugins and a tmux plugin to dispatch commands.  I don't really need harpoon for that.

i want to completely remove the idea of terminal features
i want to make harpoon work in such a way that ANY TERMINAL can have commands issued to

i want to create an extensible architecture

That sounds perfect, a system similar to telescope or overseer in that sense would be very useful.

why would i even have an api outside of vim?

Sorry for not being explicit on this one. Afaik, there is no way to log the command execution and the bits to read a command under cursor and logging in lua are also missing (say to read commands from/to command database or local file).
lua require("harpoon.term").sendCommand(1, 1)           -- sends command 1 to term 1

@nikfp
what about key() as an abstract function.
* defaults to `cwd()`

* allow for override (which could then have `git_branch()` + `cwd()`)

sounds like a simple and elegant API to this.

merge this: https://github.com/ThePrimeagen/harpoon/pull/300

not sure if im just dumb since no one mentioned this, but no longer existing files stay in the harpoon list. feels kind of awkward. it sends you to an empty buffer. checking if files exist on start and doing garbage clean up for no longer existing files seems cool. or an option to do so?
aside from that everything works how i want. i dont use any of the terminal/tmux functionality.

not sure if im just dumb since no one mentioned this, but no longer existing files stay in the harpoon list. feels kind of awkward. it sends you to an empty buffer. checking if files exist on start and doing garbage clean up for no longer existing files seems cool. or an option to do so?
aside from that everything works how i want. i dont use any of the terminal/tmux functionality.

You need to be careful about removing files from the list if you don't keep track of the git branch though. I sometimes have files in one branch that I add to harpoon and want to keep in the list even after using harpoon in another git branch of the same project where said file doesn't exist.
Also even if you are in a different branch without the file, you might want to use your harpoon shortcut to quickly create and start editing in a corresponding new file in this other branch.

not sure if im just dumb since no one mentioned this, but no longer existing files stay in the harpoon list. feels kind of awkward. it sends you to an empty buffer. checking if files exist on start and doing garbage clean up for no longer existing files seems cool. or an option to do so?
aside from that everything works how i want. i dont use any of the terminal/tmux functionality.

You need to be careful about removing files from the list if you don't keep track of the git branch though. I sometimes have files in one branch that I add to harpoon and want to keep in the list even after using harpoon in another git branch of the same project where said file doesn't exist.
Also even if you are in a different branch without the file, you might want to use your harpoon shortcut to quickly create and start editing in a corresponding new file in this other branch.

yea true. i think if its an option than you can get the combination of settings thats ideal for everyone.
or maybe even better, if theres just as an easy :harpoon garbagecollect we can call in our own autocmds at our own frequency if we want it only at start, only whenever the menu is opened, or more frequent than that, it is easy to control for each user.

@habanerotostitos this is where having a list keyed to a cwd and git branch would be useful. If you want to clean the state of a list while on a particular branch it will be as easy as opening the list and deleting what you don't need. However you could switch from a feature branch to a bugfix, do what you need with a discrete list, and then switch back and your previous list would be intact.

I am still new to this Vim/Neovim stuff.
Adding file with an optional line position to harpoon.
i.e.
1 - file2.c  , line 28
2 - main.c  , line 11
3 - file2.c  , line 257
4 - header.c  , no line saved
I am not sure how useful it is to others.
I often find the need to refactor a section of a code and end up changing the whole section of a function when doing my uni project, I probably should change my workflow and start looking at what other c/cpp devs do.
or maybe there is already a function like that in nvim that I am not aware of... :|

I don't really use the terminal stuff, so I primarily use harpoon for keeping a short list of open files in my current working context (think the "stuff or section I'm working in now"). So I agree with @victorscomma in the comment above, that it would be interesting to be able to have a "list" of contexts.
For example, I've got 4 files marked in harpoon related to "project details" code files.

ProjectHandlers.go
ProjectService.go
project-details.tmpl
project-details.js

Then let's say I need to switch context to "user management", with a different set of files/harpoon marks. Perhaps if there was a way to pin these sets of files to different "lists" and easily switch between them.
That could be useful.

I am still new to this Vim/Neovim stuff. Adding file with an optional line position to harpoon. i.e. 1 - file2.c , line 28 2 - main.c , line 11 3 - file2.c , line 257 4 - header.h , no line saved
I am not sure how useful it is to others. I often find the need to refactor a section of a code and end up changing the whole section of a function when doing my uni project, I probably should change my workflow and start looking at what other c/cpp devs do. or maybe there is already a function like that in nvim that I am not aware of... :|

instead of the line number, could pick the context with tree-sitter, like:
file.c:(f)find_user
file.c:(v)name

I have a custom function written where, if I am in a buffer that is marked, I can remove the mark then rebuild the marks list so there isn't an empty file, and then refresh the tab line. Something like that would be a good functionality to just have as a default I could put a keymap on.
https://github.com/ThePrimeagen/harpoon/pull/309 - This Pull request addresses an issue with file normalization in Windows that prevents the tabline from displaying properly

It would be nice to have a way to truncate the path.
When working in a large monorepo all marks sometimes just have the same start and that can be a bit annoying.

Thanks very much for harpoon. It is amazing.
A few features I thought I would have liked when using Harpoon.

My use case is that I always navigate back to a file I want using the pop-up menu instead of the 1/2/3 key directly. Because I can't remember which I put what on.

I would like more qol for the popup

hovering over an item in the popup opens a preview window like telescope, and you can move around in it with ctrl d/u (like telescope)
Being able to annotate or rename the list items instead of it being just the file name

I commonly have a set of files that I am going between (for example, header files and their source files). Frequently I find I might want to start a new header/source pair of files and work on them. But I don't want to clear the harpoon list each time. I would like to maintain separate 'working sets' of harpoon files

Harpoon code have those actions to anyfile:

Rename
Delete
Move (or just use rename to move)

Those actions could work on anyfile, but if the target file is on harpoon, also change on harpoon.

If there are no marked files, harpoon will automatically create marks (max 5 marks) based on frecency

These have been very incredible suggestions.
Be prepared for November 3rd, that is when the rewrite will happen, on stream, for 12 hours or until done

kinda late, but adding my 2 cents:

keep it simple - a way to add, reference, and cycle important files I'm working on NOW
no terminal, dispatch, etc etc
making it easy to populate, reset, modify, maybe even save that list is great
the "it's just a buffer" is great.
integrating quickfix (easy to populate with lua-fzf or telescope) and something like :cdo would be nifty and maybe also swell.

Another thing, harpoon should have an option to enable/disable remembering the last edit in a file when opening, because if a user has an autocmd or something else setup to do this for all files, harpoon doing it as well messes things up when transitioning between harpoon marked files and non-harpoon marked files.

Anime Girl Icons?
ok, PHP, JS, React icons for the files in the list.
or just a waifu background in the floating window.
well, whatever waifu you want, from MrMomMusic would suffice.

I would love to be able to first select a project that has marks and then open a marked file in that project. Would make my life so much easier.

Already made a feature request for this..multiple named harpoon lists..instead of just one list, this would take it to the next level.

I ask for one feature!
Allow for a max amount of added files/buffers.
Whenever the buffer overflows, then use a queue approach (first-in, first-out).
For example:

I have 5 set as a max amount of files.
Harpoon shows: File 1 (Oldest), File 2, File 3, File 4, File 5 (Newest)
Add a file here (File 6) causing the max number of buffers to overflow
Now Harpoon looks like this: File 2 (Oldest), File 3, File 4, File 5, File 6 (Newest)

We could even try something else, but a way to drop and replace files with newer files would be appreciated!

May I suggest per-tab Harpoon lists?

line

Already mentioned @michaelPotter

I am still new to this Vim/Neovim stuff. Adding file with an optional line position to harpoon. i.e. 1 - file2.c , line 28 2 - main.c , line 11 3 - file2.c , line 257 4 - header.h , no line saved
I am not sure how useful it is to others. I often find the need to refactor a section of a code and end up changing the whole section of a function when doing my uni project, I probably should change my workflow and start looking at what other c/cpp devs do. or maybe there is already a function like that in nvim that I am not aware of... :|

Already mentioned @michaelPotter

Anime Girl Icons? ok, PHP, JS, React icons for the files in the list.
or just a waifu background in the floating window. well, whatever waifu you want, from MrMomMusic would suffice.

https://github.com/ThePrimeagen/harpoon/pull/300 Already did here, just need to merge

ok... @victorscomma

Some things I think would be cool

Allow us to make more harpoon lists, which can have custom contexts. Allowing maybe something like a global harpoon list. Rather than just the current dir, the global harpoon list can work wherever you are for example.
Allow some means of a dynamic path so we can have things in the harpoon list that don't exist yet.
Options for what happens when you switch to it, i.e currently just switches the active buffer but could also open selected harpoon path on a new split, open as a pop up, etc.
For example if I wanted to harpoon some file related to my health and diet. I want that accessible and jump-to-able from wherever I am currently working. But at the same time I might not want to context switch entirely from my work so being able to set it just a pop up to jot something down quick might make sense.

I think we can do most of this.  the contexts may be a bit interesting and i'll have to think about that as that is not very obvious how this would work.  but please feel free to join during Nov 3rd while i rebuild harpoon 2 live on stream.

Would be great if you could mark two separate spots in the same file... e.g. for working on really large files or two related functions in the same file

this is ackshually really difficult.  i would recommend local marks for this (ma to mark a and 'a to recall a)
The reason is this, when i close down vim, and your cursor has moved, which of the two entries do i update the cursor to?
to me this is what local marks are great at

@mrs4ndman

May I suggest per-tab Harpoon lists?

i think my idea for how to generate the "key" could work well, but you may find yourself in an annoying situation where the file you want is in tab 2 and you have open up tab 2 to get there or furthermore, you may mind yourself annoyed by trying to remember 8 separate files
:)

@TangerineGameDev i think this would be possible with my new idea on lists

I ask for one feature!

Allow for a max amount of added files/buffers.
Whenever the buffer overflows, then use a queue approach (first-in, first-out).

For example:

I have 5 set as a max amount of files.
Harpoon shows:
File 1 (Oldest), File 2, File 3, File 4, File 5 (Newest)
Add a file here (File 6) causing the max number of buffers to overflow
Now Harpoon looks like this:
File 2 (Oldest), File 3, File 4, File 5, File 6 (Newest)
We could even try something else, but a way to drop and replace files with newer files would be appreciated!

I want to make it so that you can have your own "lists" and have them defined however you would like.  this would potentially involve a callback with op and list and args and you get to chose how you want to store / add / delete

@otavioschwanck

Harpoon code have those actions to anyfile:

Rename
Delete
Move (or just use rename to move)
Those actions could work on anyfile, but if the target file is on harpoon, also change on harpoon.

these are already available both programmatically and through the UI (just delete or move or manually add a line to the UI and it saves the current state as the list (removes empties))

@sjclayton

Another thing, harpoon should have an option to enable/disable remembering the last edit / cursor location in a file when opening, because if a user has an autocmd or something else setup to do this for all files, harpoon doing it as well messes things up when transitioning between harpoon marked files and non-harpoon marked files.

great idea

@ThePrimeagen

The reason is this, when i close down vim, and your cursor has moved, which of the two entries do i update the cursor to?

Update whichever one I jumped to last... You'd have to carry some extra data around about jump history but doesn't seem incredibly hard (famous last words)
All good if that's not feasible. I'll give local marks some love

@ThePrimeagen

May I suggest per-tab Harpoon lists?

i think my idea for how to generate the "key" could work well, but you may find yourself in an annoying situation where the file you want is in tab 2 and you have open up tab 2 to get there or furthermore, you may mind yourself annoyed by trying to remember 8 separate files :)

Yeah, kinda. I was thinking more like fully-independent harpoon lists for each tab. Either way, gonna be watching Nov 3rd how it draws out :heart:

I would like to see Harpoon similar to telescope in the way one can make plugins to extend it. Eg. support neovim marks out of the box then make a plugin api so if someone wants to support something they can

Ohayou gozaimasu, senpai! (´∩｡•
Your promise to create Harpoon 2.0 in the next couple of weeks is like a blossoming sakura tree in spring, senpai! 🌸✨
So, lemme get this straight, you wanna change Harpoon, like, drastically into a kawaii generic retriever, but you need some tips and tricks from the community to make it purrfect! (¬‿¬) Nyan-tastic! (^‿^)
I guess it's time to gather our senpais and senseis and brainstorm the way to make Harpoon 2.0 the ultimate, uhm, waifu of retrievers, senpai! (¬‿¬) Let's make it so sugoi that everyone's hearts will go doki-doki~ 💖💖💖
Ganbatte, senpai! (*≧ω≦) We're here to support you in your kawaii quest for Harpoon 2.0! (人 •͈ᴗ•͈) ✨

Maybe adding support for "commenting" out some buffers from the harpoon buffer list by prefixing them with // for example?

I would love to have a functionality that will allow me to execute unix command on file selected in harpoon terminal. Sometime I need to really jump around the repo in order to execute something and this would save some hustle ;)

Will harpoon 2 use a beautiful UI like the mason.nvim or lazy.nvim? Not a necessity but it would be nice if we had some beauty in it.

Feature Request: Highlight Current Buffer Name if Listed in Harpoon
I'm suggesting an enhancement for the harpoon.nvim plugin. It would be highly beneficial to have the buffer's filename highlighted when it's included in the Harpoon list. This would offer immediate visual confirmation and prevent confusion, especially when dealing with files with similar names.
For instance, if the open files are bar.ts, Bar.ts, and baz.ts, and the Harpoon list contains bar.ts, barr.ts, and barz.ts, the highlight would make it instantly clear when the current buffer (bar.ts in this case) is part of the Harpoon list.
This feature would be a significant usability boost for quickly navigating and recognizing files within the Harpoon interface.

highlighting current buffer file name in harpoon list
this would offer immediate visual confirmation and prevent confusion, especially when dealing with files with similar names.
for example, if the open files are bar.ts, Bar.ts, and baz.ts, and the Harpoon list contains bar.ts, barr.ts, and barz.ts, the highlight would make it instantly clear when the current buffer (bar.ts in this case) is part of the Harpoon list.

This is probably more of a skill issue. If I delete or renamed a file that I already have in my harpoon list. The harpoon list will still have the reference to the old file.

Ohayou gozaimasu, senpai! (´∩｡•
Your promise to create Harpoon 2.0 in the next couple of weeks is like a blossoming sakura tree in spring, senpai! 🌸✨
So, lemme get this straight, you wanna change Harpoon, like, drastically into a kawaii generic retriever, but you need some tips and tricks from the community to make it purrfect! (¬‿¬) Nyan-tastic! (^‿^)
I guess it's time to gather our senpais and senseis and brainstorm the way to make Harpoon 2.0 the ultimate, uhm, waifu of retrievers, senpai! (¬‿¬) Let's make it so sugoi that everyone's hearts will go doki-doki~ 💖💖💖
Ganbatte, senpai! (*≧ω≦) We're here to support you in your kawaii quest for Harpoon 2.0! (人 •͈ᴗ•͈) ✨

What in the actual fuck?

How about a harpoon vscode plugin?
I nearly got fired for installing nvim on my work computer and am stuck using it for work. Would be cool if, you know, I had harpoon there too.

How about a harpoon vscode plugin?
I nearly got fired for installing nvim on my work computer and am stuck using it for work. Would be cool if, you know, I had harpoon there too.

already created
fired for neovim?  cray

HARPOON 2 Base is almost done
will be opening it up for community feedback / contributions and we are going from beta/public source to open source and i will ackshually maintain and allow for contributions.  they will be narrow, but it will great

Allow working with different vcs


[chore] docs page

Create the docs.page adding all the content needed

Hope your docs.page experience was good :) let us know if you had any issues

It was amazing! Never created a documentation faster! ⚡ Just opened an issue for a little feature I'd love here


[ docs ] Add make to pre-requisites

Different environments install make differently. I've flopped between Mac, Linux (Ubuntu) and Windows now. Every clean install environment needs make and they're all installed differently.

OSX: Install XCode
Linux: Use APT/Yum
Windows:
WSL: See above *recommended
Native: https://leangaurav.medium.com/how-to-setup-install-gnu-make-on-windows-324480f1da69


Implementing a parallel Sieve of Eratosthenes in C and exploring basic concepts of MPI

Proposed title of article
Implementing a parallel Sieve of Eratosthenes in C and exploring basic concepts of MPI
Introduction paragraph (2-3 paragraphs):
MPI stands for Message Passing Interface. It’s exactly what it says: it defines the syntax and semantics of several routines of message passing that users of several languages are able to use. But what messages? From who? To whom? Well, the messages are the data, transmitted between processes, in order to execute a task in parallel using that data. Thus, MPI is a pattern of data communication for parallel computing.
For this article, we are going to use the Open MPI implementation for C. But first, we need to choose a suitable algorithm for a parallel implementation. There are several algorithms that we can implement. In this article, we are going to implement the Sieve of Eratosthenes because:

It’s simple to understand and implement;
It’s good to parallelize and we can clearly see the effects of parallelization with a large number of elements.

Key takeaways:

Understanding what MPI is;
Understanding the concepts of Ranks, Messages, and the basics of MPI routines;
Parallelizing an algorithm using Open MPI in C;
Measures of Speed Up and Efficiency for a parallel algorithm.

References:

Open MPI: Open Source High Performance Computing
Message Passing Interface - Wikipedia
Sieve of Eratosthenes - Wikipedia

Templates to use as guides

Tutorial Template

Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

@csamuelsm
We're really looking for unique/original content, and based on the content provided, it seems that information that you intend to cover is already readily available through the documentation or via many other blog sites.
Could you please expand upon how your content will differ from what is already available through other websites and documentation? We lean towards content that offers an original viewpoint/approach around programming-centric topics.

Well, actually I did my research but I didn't find those results you showed and because of this, I wanted to write about this theme. But now, seeing all those results, I really think there's no need. Thank you for pointing this. I'll close this issue and think about another theme.


net: openthread: Mesh Local IPv6 is not in zephyr stack

Hello,
I'm facing with a problem. I have a OpenThread setup where I have a raspberry pi as border router and an device nrf52840 where I'm flashing it with the echo_client and in raspberry I have a TCP echo_server in python.
What is happening is that when the nrf52 sends the packet to border router and when it will send it back an error is being raised.
receive data:  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum id cursus felis, sit amet suscipit velit. Integer facilisis malesuada porta. Nunc at accumsan mauris. Etiam vehicula, arcu consequat feugiat venenatis, tellus velit gravida ligula,   from: ('fdde:ad00:beef::1', 42479, 0, 0)

As you can see, the IP that nrf52 is sending is the one defined by MY_IPV6_ADDR and not the one that the openthread generate by DHCPv6 in openthread, this IP I would to add a route manually in borderrouter.
net iface

Interface 0x20010e00 (<unknown type>) [0]
=========================================
Link addr : 38:12:85:F7:33:85:DB:82
MTU       : 1280
IPv6 unicast addresses (max 3):
        fdde:ad00:beef::1 manual preferred infinite
IPv6 multicast addresses (max 2):
        ff33:40:fd11:1111:1122::1
        ff32:40:fd11:1111:1122::1
IPv6 prefixes (max 2):
        <none>
IPv6 hop limit           : 64
IPv6 base reachable time : 30000
IPv6 reachable time      : 40480
IPv6 retransmit timer    : 0

ot cmd ipaddr
fdde:ad00:beef:0:0:0:0:1
fd11:1111:1122:0:0:ff:fe00:8001
fe80:0:0:0:42d:87ff:da3:ba27
fd11:1111:1122:0:28e1:5018:7106:40cb
Done

I think that zephyr should use the Mesh local IP that OpenThread generate so the message can reach it back to the device. I've start to develop a solution for that but I don't think if that is the right approach:
https://github.com/ramonhpr/zephyr/commits/devel_ot_dhcp

Has this been working before? There was recently config file change in echo-client in this commit a1594472f20ce9336251adc452041a41133876f5 that might affect things. Can you try your setup without this commit?

Yes. This was happening before this commit too.

Hi,
Indeed it looks that OT unicast adresses are not registered in Zephyr. I've talked to the original author, and he said that it was done on purpose - not all OpenThread's unicast addresses should be used by the application. Still, using ML-EID address actually makes sense for the application, so perhaps it makes sense as well to register unicast addresses in Zephyr, especially that you seem to have an use case for that.
I wanted to clarify a few things though.

I can see that you've modified ML prefix for you Thread Network (to fd11:1111:1122), yet statically assigned MY_IPV6_ADDR  remained the same. In result you use an address for an unregistered prefix (this is not correct according to Thread specification), which is the most likely reason for your routing problems in BR.
Both in the description and the code you mention DHCPv6 while referring to ML-EID address. I guess we're mixing terms here. There is no DHCP in Thread network by default, ML-EID is choosen randomly, and no DHCPv6 is involved here. Still, a Border Router can provide DHCPv6 service, but I don't think it is a case here according to your description (unless I miss something).

I've done some testing with unicast address registration in Zephyr, you can check it here: https://github.com/rlubos/zephyr/commits/ot-register-unicast-adresses-in-zephyr. Let me know if they're useful for you, perhaps they could be PRed.

I could, with your patch, use ML-EID in my server border router and it seems to work fine. And indeed I was mixing this terms, thanks for explaining that.

Thanks for veryfing, I'll create a PR with the changes then. Can we assume that they fix this issue?


Issue/8294 strip more

Description
Strip  version and status
closes #8252
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[x] Attached issue to pull request
[x] Changelog entry
[x] Type annotations are present
[x] Code is clear and sufficiently documented
[x] No (preventable) type errors (check using make mypy or make mypy-diff)
[x] Sufficient test cases (reproduces the bug/tests the requested feature)
[x] Correct, in line with design
[X] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Processing this pull request

Merged into branches master in c595ef69a98a745262b378d8127186796af552a8


KeyError: 'id'

Hi,
I am running aetros 0.9.9 on a Windows 7 machine. I managed to successfully run the mnist-digits classifier with no errors. (Thanks by the way for fixing https://github.com/aetros/aetros-cli/issues/17 ).
I created my own digits dataset which I uploaded to aetros. I duplicated the mnist model and updated it to load my new dataset. I also updated the input dimensions. When I run the job I get the following error:
 File "F:\Development\Python35-keras2-tf-gpu\lib\site-packages\aetros\auto_dataset.py", line 544, in get_images     if image['id'] in images and os.path.isfile(images[image['id']]): KeyError: 'id'

Can you give me the name of your dataset and model? Then I can take a look into it.

The dataset is soulis/dataset/alpr_digits and the model is soulis/alpr_digits_cnn

Alrighty, that should be fixed in the newest version.


Explicit types of class properties should not be refined

TypeScript Version:  3.4.0-dev.201xxxxx

Search Terms: class generic definition declaration property
This is a minimal use case from React
Code
class Component<S> {
  state: S;
}

type State = {
  a: string,
  b?: string,
}

class Foo extends Component<State> {
  state = {
    a: 'asdf'
  }

  method() {
    this.state.b
  }
}

Expected behavior:
this.state.b should be of type string | undefined
Actual behavior:

Property 'b' does not exist on type '{ a: string; }'

Playground Link: playground
Related Issues:

n/m, realized it's the react definition that's wrong here


Update gems

Coverage remained the same at 99.367% when pulling 416ef98379b18a1af5a3b729dd231472eef9b909 on update-gems into 698b0ae99f4e81ea3f32a5f1c88c27995d3265e2 on master.


Morris documentation

Add documentation for the Morris method.

Thanks, the failed codecov is not an issue.


Support Universal Links for "Go To Link" button action

We set a universal link to the app opening an Appcues campaign here:

We expect a user to stay within the app once he taps this button and link to be handled as a deeplink bringing the user to the relevant experience.
The actual result: the external browser is opened
I believe this is due to how the method you use to open links works:

Can you please support the universal links so the above scenario will be handled?
Possible solutions are:

using alternative opening methods
adding a new "Open in the app" configuration and use this option to open such urls.

Note: I know that today we're able to achieve the desired result using the app url scheme. However, we prefer not to do so as it carries potential risks, makes campaigns iOS specific and creates unnecessary conventions.

Thank you!

Hi @GermanVelibekovHouzz - thank you for the feedback and excellent details in the request! This sounds like a valid use case that we would want to enable, and we're looking over the options you noted to see what we can make work. We will follow up soon with findings here. Thanks!

Hi @GermanVelibekovHouzz, we've just released a new version of the SDK, 1.1.0 that supports universal links.
We adopted the first possible solution you proposed, so the details hopefully are familiar to you, but we've also put together a brief document explaining how the SDK supports universal links: https://appcues.github.io/appcues-ios-sdk/documentation/appcueskit/universallinking

Hey @mmaatttt. This is awesome! 👏. Thank you for your quick response to the issue. What you did guys will help us a lot. 🙏


chore: Export app and fetch remote in parallel when git status

Description
This PR changes the code flow in get status API by running export app and fetch remote operations in parallel. Goal of this change is to improve the time taken in get status API.
PR fixes following issue(s)
Fixes #24649
Media
Type of change

Chore (housekeeping or task changes that don't impact user perception)

Testing
How Has This Been Tested?

[x] Manual
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/ok-to-test

@nayan-rafiq Can you share the time consumed before and after this change?

/ok-to-test

@nayan-rafiq Can you share the time consumed before and after this change?

I just checked by calling the get status API five times for the same application - before and after this changes. From the results, I can see that there is no improvement. The reason is - although Mono.zip executing the tasks in parallel, it's running them in the same thread. Currently I'm trying to improve the process.

@nayan-rafiq Can you share the time consumed before and after this change?

@AnaghHegde I've done a comparison by mocking the fetch remote API call. The mocked service call takes a fixed 3s time. With this condition, if I call the get status API from release branch and from this branch for the same Application, there is a 800 milliseconds of improvement on average. It's not too much because the export application process is taking 1 second in this case.
Consider a case where export takes m seconds and fetch remote takes n seconds. Earlier, executing both of them was taking m+n seconds. But now, with this change, it'll take m seconds, plus few milliseconds to combine the results. So it's save the time taken to export the app.

/build-deploy-preview

@nayan-rafiq When I regenerate ssh key from git sync modal and try to commit something it gives internal server error and doesn't show uncommitted changes ideally it should give SSH Key error. Attaching screenshot from DP vs Release:

/ok-to-test sha=c9bb8bccdbb7b7899e99fca3ab9b597be6096165

/ok-to-test sha=522f745347e0402a6113e10b82418fd8e9ca30ff

/build-deploy-preview skip-tests=true

/perf-test

/ok-to-test

/ok-to-test sha=5a5af6e


Fix footer to bottom

Sticks the footer to the bottom of the page (except in report view). Minor change.
Note: position: sticky is not supported in IE.

Codecov Report

Merging #159 (f175cb5) into main (7553d10) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head f175cb5 differs from pull request most recent head 821256a. Consider uploading reports for the commit 821256a to get more accurate results

@@           Coverage Diff           @@
##             main     #159   +/-   ##
=======================================
  Coverage   93.84%   93.84%
=======================================
  Files         110      110
  Lines        2780     2780
=======================================
  Hits         2609     2609
  Misses        171      171

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7553d10...821256a. Read the comment docs.


[Logging] Save information about training progress to disk

Currently the only way that we log training accuracy and loss is to the console stdout. We would like a structured way to save the progress of training after every model eval to disk so that plots and analysis can be made. I welcome your suggestions on my design.
Included in this PR:

A new file called logging_utils.py.
When --log_dir [DIR] is used on CLI with submission_runner.py, output files will be written to disk.
Three files are written to disk:

"metadata.json" is created at the start of a workload and it includes the
datetime, workload name, and system configuration.
"measurements.csv" is created for each hyperparameter tuning trial and a row is
appended for every model evaluation. The information included is loss,
accuracy, training step, time elapsed, hparams, workload properties,
and hardware utilization.
"packages.txt" is created at the start of a workload and it includes a
list of the currently installed OS and python packages.

A new folder called experiments which includes a README.md with more detailed usage instructions and an example of measuring a loss curve and plotting it. Please read this README.md as it explains more about this PR. I welcome suggestions for a different location of this folder, or to not included at all.
Checked with yapf and isort.
I fixed as many pylint issues as I could. Some warnings remain but they are preferred or necessary.
Includes typing hints and docstrings.

Why was the MLCommons Logging library not used?
After speaking to a developer of the mlcommons/logging library, I found it to be unsuitable to our needs. This library is designed for the training and hpc benchmarks (example usage). It produces a single log in a JSON format that primarily records the start and stop time of training (example log), but we want to record more than training runtime. We are interested in training dynamics so we want to additionally log training loss, step count, hyperparameters, details about the workload, and more. They do have an interesting file called constants.py which includes standard names for hyperparameters and optimizers, but at this point in my opinion it is not necessary or easy to build on this for our purposes.

I have some additional improvement plans, inspired by the batch_science repo, that I will implement after getting some feedback. I welcome feedback on plans:

metadata.json should include the hyperparameter config if an external tuning.json was given. The batch_science repo uses a "parameter_configs" key for this.
Rename metrics.csv to measurements.csv, as per the batch_science repo
Add  "status" key  to measurements.csv and metadata.json to be one of:
- COMPLETE: If the trial was completed.
- INCOMPLETE: If the trial was not completed for some reason (these trials can usually be ignored).
- INFEASIBLE: If training diverged at any point.
Improve the documentation to look more like the batch_science repo here.

Question: Are there train/eval measurements that are missing? There is a long list of Metrics and scoring for model evaluation in sklearn, but are eval metrics are always workload specific?

One high-level comment is: instead of making an experiments/ dir, can you put your example code in a new dir baselines/logging_example? I (very soon) plan on moving all the existing "baselines" in baselines/ into tests/, because they are not really baselines that run across all workloads, they are really test submissions for a single workload that exercise all the workload-specific functionality. baselines/ should really be a collection of training algorithms that run across all workloads

Done. Now there is just a single file called baselines/logging_example/README.md. I deleted the other files that were wholly contained in the README.

Hi @znado,
Thank you so much for the feedback. There we a lot of helpful tips! I really enjoyed it.
Take a look again at the PR and if you're happy, can we merge it?
Summary of major changes:

Added logging_utils_test.py. Huzzah!
Renamed output files to make more sense:

metadata.json --> workload_results.json
trial_[n]/metadata.json --> trial_[n]/trial_results.json
trial_[n]/measurements.csv --> trial_[n]/eval_results.csv

Removed experiments folder, keeping only README.md.

Added "Summary of Measurements Collected" markdown table to README.md.

Synced with the main banch
All checks pass

we're taking some of this logging logic and reusing it in a new PR, so I'm closing this.


Array cannot be Un-Typed, or Array.is_typed() is broken.

Godot version
4.0.beta.16
System information
N/A
Issue description
var typed_array: Array[Node] = []
var array : Array = typed_array
print(array.is_typed())
print((typed_array as Array).is_typed())
var array2 : Array[Variant] = typed_array
print(array2.is_typed())
print((typed_array as Array[Variant]).is_typed())

All prints true
Steps to reproduce
N/A
Minimal reproduction project
godot.4.0.beta15.bugs.0.zip

This may have changed with the big #69248 PR of @vonagam's. Would you be able to check in Beta 17?

Well, the code that shown would not change. But there is a way to make array untyped now:
var array: Array = []
array.assign(typed_array)

I checked the description and MRP (please don't combine many issues in one MRP) and I don't think there are any bugs/issues that are currently unresolved or not tracked in other threads.
Since arrays are passed by reference, it makes no sense to make an already existing array untyped, which would break the following code:
var a: Array[int] = []
var b = a
b.set_untyped()
b.append("string") # Now `a` contains string?!

Instead, you should create a new array. Note that var array : Array = typed_array does not create a new array. But you can use the assign() method, which assigns (copies) the contents rather than a reference.
See also:

GDScript reference - Typed arrays
#80586
godotengine/godot-proposals#7364
#71336

Note that there are bugs that may cause this to work incorrectly in some cases:

https://github.com/godotengine/godot/pull/72514#issuecomment-1628893636
#81332

If you still have any issues with typed arrays, please post here, in the appropriate thread from the list above, or open a new issue.
Thanks for the contribution nonetheless!


Convert remaining unittest to pytest

🐞 Bug Report
Convert the remaining test suites from the unittest module to pytest. We converted to pytest for the fixtures, so far have been loving it and, more importantly, it's much lower maintenance and the fixtures are composable (more DRY).
The remaining tests based on the unittest module have a large amount of setup boilerplate, there's a bunch of json fixtures which we should also be able to get rid of. They tend to cause false positives because and are a pain to debug b/c of those setup methods usually.

PR with partial conversions are appreciated


FindAsync in context of web app

On update the Edit page section it says: "FirstOrDefaultAsync has been replaced with FindAsync. When you don't have to include related data, FindAsync is more efficient."
How can it be more efficient in a web app?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8f592059-3328-88a8-5c6c-43121ac8a0a5
Version Independent ID: f8a63abf-824b-5b80-e03d-abcb2c162b95
Content: Razor Pages with EF Core in ASP.NET Core - CRUD - 2 of 8
Content Source: aspnetcore/data/ef-rp/crud.md
Product: aspnet-core
Technology: aspnetcore-data
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Hello! Thanks for contacting us. This sounds like a general question about using EF. While we try to look at and respond to all issues, for questions like this we recommend posting to a community support group like Stack Overflow with the asp.net-core tag.


feat(autoware_launch): move config from autoware.universe for control

Description
Move config to autoware_launch.
Two PRs should be merged at the same time.
https://github.com/autowarefoundation/autoware.universe/pull/2544
https://github.com/autowarefoundation/autoware_launch/issues/66

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@kminoda Could you approve this.

@kminoda Could you approve this.


Encoder frontend fails only for ETC1S encoding

I'm trying to integrate basisu as a static library. To do so I've created the class that is listed below. The strange thing is that everything seems to work when I use uastc encoding. But when I use etc1s encoding the compresser fails with cECFailedFrontEnd.
The source file is a 1024x1024 TGA file with alpha channel. When I build basis as a command line tool, and try to encode it, I encouter no problems.
I guess this means I'm doing something wrong, but I can't figure it out. The basis set-up in my code looks exactly the same as in the README.
I'm using the latest version in this repository at this time (commit 1f4b564ae0b8ec1e67f21f058e53112d0405a25a),
#include <basisu_enc.h>
#include <basisu_comp.h>
// ... snip
using namespace basisu;

void NativeEncoder::Init()
{
	basisu_encoder_init();
}

const uint8_vec NativeEncoder::Encode(const std::string &filename)
{
	image image;
	if (!load_image(filename, image)) { throw std::exception(); }

        basis_compressor_params params;
	params.m_source_images.push_back(image);
	params.m_perceptual = false;
	params.m_mip_srgb = false;

	params.m_write_output_basis_files = true;
	params.m_out_filename = "test.basis";

	params.m_uastc = false; // If I put true here everything works fine!
	params.m_rdo_uastc_multithreading = false;
	params.m_multithreading = false;
	params.m_debug = true;
	params.m_status_output = true;
	params.m_compute_stats = true;

	job_pool jpool(1);
	params.m_pJob_pool = &jpool;

	basis_compressor compressor;

	if (!compressor.init(params)) { throw std::exception(); }

	auto result = compressor.process();
	if (result != basisu::basis_compressor::cECSuccess)
	{
               // with params.m_uastc = false this result in result == cECFailedFrontEnd
		throw std::exception();
	}

	return compressor.get_output_basis_file();
}

void NativeEncoder::Deinit()
{
	basisu::basisu_encoder_deinit();
}

After comparing the values in my basis_compressor_params with those generated by the command line tool I figured it out.
By default m_quality_level is set to -1 . In the command line tool there is an extra check to make sure the quality level is set to a reasonable value.
		if (m_comp_params.m_quality_level != -1)
		{
			m_comp_params.m_max_endpoint_clusters = 0;
			m_comp_params.m_max_selector_clusters = 0;
		}
		else if ((!m_comp_params.m_max_endpoint_clusters) || (!m_comp_params.m_max_selector_clusters))
		{
			m_comp_params.m_max_endpoint_clusters = 0;
			m_comp_params.m_max_selector_clusters = 0;

			m_comp_params.m_quality_level = 128;
		}

This check should probably be moved to basisu_comp.cpp to make sure m_quality_level always has a reasonable value. I think it should be placed in basisu_comp.ccp:1045 (the start of the bool basis_compressor::process_frontend() method).
I'll try to create a MR to fix this.
This also explains why it only happens in ETC1S mode as the -q or m_quality_level setting only applies to ETC1S.

Sorry for the confusion - the encoder was first written as part of the command line tool, then over time it got separated out. I will integrate your PR either tonight or tomorrow.


Add customizable realm icon

Add the ability to choose an icon to represent a realm.
This would be useful in the context of multi-account support because we can show the icons for each realm the user is logged in to.

This is fairly high priority, if someone wants to take a pass at it, since it'd make the multiaccount experience on mobile a lot nicer.  In terms of technical approach, I'd do the following:

Add a field to Realm for the realm's avatar (realm.avatar) URL; follow the "new application feature" feature tutorial on RTD for this.
We can follow the same flow we use for uploading user avatars for this,  except we just need to resize to the normal size of zulip avatars (no need for a "medium size" version).  I think we can still return a gravatar if one hasn't been uploaded yet, based on just a hash of the realm ID and the server's AVATAR_SALT, so that something reasonable happens for realms that haven't uploaded an avatar yet.
Add an endpoint, realm/avatar, that returns a redirect to the realm's avatar URL.
Add tests for the above.

@neerajwahi I assume the same size we use for user avatars is good?

@kkanahin do you want to take this project?

@timabbott yes I want


Support for accessing files from local filesystem with in html

As of now, I am not able to access files from the local file system within HTML.
Reading files as binary then converting to base64 cant be considered as a solution to this issue as this is super slow especially for video files.
I believe local file system access within the renderer is a very basic requirement.

You don't need to file the same issue in 2 repos. Closing in favor of wry.

For those arriving from elsewhere: this was superseded by https://github.com/tauri-apps/tauri/issues/2103 AFAICT