Create budget template for Paris 2019

I cloned the Prague one, still need to do edits https://docs.google.com/spreadsheets/d/1PKimcwUvPqtjn02-jL07gq3KyDLKD3-i1K5qd6pRXg0/edit#gid=3
Talk to Jerome about:

[ ] video and/or livestream
[ ] catering
[ ] venue costs

Venue costs
@jdetychey have proposed 2-3 amphitheaters, but we have preferred a one big flat room for many working groups with few private rooms for private conversations. This is because we will not few speakers for big audience, but many (ad-hoc) working circles. It is possible too.
Video and/or livestream costs
How it depends on venue? Consider we have a big room with flexible room partitioning and with some adhoc working groups inside.  How many cameras an camera teams will we have there?
Is there some kind of formula, like RecordedHours * PricePerRecordedHour  + NumOfCameraMen *  PricePerWorkHour  ?

Still need venue costs regardless of layout.
Video: I would recommend just one crew to cover the “main stage”. I can estimate until we get some quotes, likely $2K USD for the day. If ETHCC already has a crew, catering, etc may need to extend for a day.

OK, I have done a first pass at the budget https://docs.google.com/spreadsheets/d/1PKimcwUvPqtjn02-jL07gq3KyDLKD3-i1K5qd6pRXg0/edit#gid=3
Note: I have no idea what costs actually are, so those are just estimates.
Knowing how many people will attend is a big driver of costs -- as catering is the big one.
We might just do lunch to save a bit of money, but I've kept coffee + lunch in the budget for now.
I have also modeled having people pay $25 to attend. I think this will also help with attendance.

I have created the template for the budget and additional sheets for more details about each type of cost so all the calculations can be done in one spreadsheet.

OK, great. Marking this as closed then.


Does the explorer support session enabled queue or topic?

Can I use the explore to receive or peek messages from a session enabled queue or subscription?

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

ID: 4473571e-db99-fd3c-5861-1ba66e3a6890
Version Independent ID: a2ebb61f-e901-a778-cca0-503fb10ae42b
Content: Use Azure Service Bus Explorer to perform data operations on Service Bus (Preview) - Azure Service Bus
Content Source: articles/service-bus-messaging/explorer.md
Service: service-bus-messaging
GitHub Login: @axisc
Microsoft Alias: aschhab

@shashankkr, Thanks for the question! We are taking a look into this and will get back to you soon.

@shashankkr are you talking about the service bus explorer or the explorer in the portal?

Hi @JayaChatterjee-MSFT I am talking about explorer in the portal.

@shashankkr In that case you may refer to the official documentation : https://azure.microsoft.com/en-in/updates/sesrvice-bus-explorer/
Seems that you can. Did you encounter any issues for the same?

@shashankkr Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly reopen the issue and continue the discussion.


Add additional scala track documentation

Remove dead link from RESOURCES.md
Add books and online courses to LEARNING.md
Add some additional detail to TESTS.md

Refs #248

Note that the book links are too Amazon. I wasn't sure where to link to. The C# track was linking to Amazon - so I just went with that.

Yeah, I just went with Amazon because most people know them as a relatively reliable seller, and they can just order the books quickly if they want.

What I usually do in order not to prefer an individual reseller is to give the link of the publisher, for example:

Dean Wampler, Alex Payne: Programming Scala, 2nd Edition
Paul Chiusano, Rúnar Bjarnason: Functional Programming in Scala

But it seems there is no official policy about that for exercism.io?
If you guys think that Amazon links are fine I won't resist.

I changed the book URLS to link to the publisher sites. I wasn't overly jazzed about including US Amazon links to the books. I suppose it doesn't matter that much. The most important thing is the title/author.
Also, I added a link for "Scala for the Impatient".

thanks @ricemery


Feat: Network upgrade

Moved network services to shared/api according to FSD
Removed chainSpecService
Cleaned up metadataService
Network domain utils
New tests / updated tests

Task linked: CU-8693kq4b8 Turn on Metadata saves


unnecessary_import conflicts with deprecated_export_use

Describe the issue
My code uses BytesBuilder from dart:typed_data, and other classes from dart:io. When importing explicitly dart:typed_data, the linter complains:
   info • The import of 'dart:typed_data' is unnecessary because all of the used elements are also provided by the import of
          'dart:io' • lib/link_preview.dart:3:8 • unnecessary_import

When removing the explicit import, the linter still complains:
   info • The ability to import 'BytesBuilder' indirectly is deprecated • lib/link_preview.dart:84:22 • deprecated_export_use

To Reproduce
Just use BytesBuilder.
Expected behavior
unnecessary_import should not be triggered.

Fixed in https://dart-review.googlesource.com/c/sdk/+/302080

I'm on Channel beta, 3.13.0-0.2.pre recent Flutter and have this problem. What's the solution?

Scratch that. Now that I import dart:typed_data; besides the io package the analyzer is fine.


cigien: Watch filesrecoverytools.com

cigien requests the watch of the watch_keyword filesrecoverytools\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

filesrecoverytools\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


[Bug]: Cannot add hash to redirect url

Which Remix packages are impacted?

[X] remix (Remix core)
[ ] create-remix
[ ] @remix-run/architect
[ ] @remix-run/cloudflare-workers
[ ] @remix-run/dev
[ ] @remix-run/express
[ ] @remix-run/netlify
[ ] @remix-run/node
[ ] @remix-run/react
[ ] @remix-run/serve
[ ] @remix-run/server-runtime
[ ] @remix-run/vercel

What version of Remix are you using?
1.1.3
What version of Node are you using? Minimum supported version is 14.
16.13.0
Steps to Reproduce
Add a hash to your loader function or action function redirect. It never reaches the url bar.
export const loader = () => {
   return redirect('/#hash');
}

Expected Behavior
The hash that is added to the redirect url should take effect in the browser and be accessible via the useLocation hook.
Actual Behavior
The hash never makes it to the browser and cannot be accessed via the useLocation hook.
Note
SearchParams work just fine. It's just the hash that is not working.

Loaders and Actions seems to have an issue with hash in general. Probably connected to #1574

Is this open to contribute to?

related to https://github.com/remix-run/remix/issues/1862

The hash value is never sent to the server. It's a pure client-side thing.
So you can't use them from loader or action, that are run server-side.

The hash value is never sent to the server. It's a pure client-side thing. So you can't use them from loader or action, that are run server-side.

The loader does send the hash successfully to the client using redirect since its resolved by remix with the X-Remix-Redirect header

My use case is sending a json encoded on the hash as a query 🗡

The problem lies here:
https://github.com/remix-run/remix/blob/621b392cc6151be51dc30f4e2bba4603085d5da5/packages/remix-react/routes.tsx#L226-L229
It seems after parsing the redirect string, the transition is not taking the hash anywhere, only pathname and search

Reopened this issue as my reason for closing was totally out of topic 😅
@andrelandgraf I just tried on a fresh remix install, it works for me (the # reaches the url bar)
Please provide a reproduce case for investigation (where are you trying to read the hash value?)

@machour @andrelandgraf
I checked also with fresh install, same thing occurs, to make it clear how it happens:
We have two routes:
index.tsx
import { Link } from "remix";
export default function Index() {
  return (

      <Link to={"/test"}>Lets test</Link>

  );
}

test.tsx
import { LoaderFunction, redirect } from "remix";
export const loader: LoaderFunction = () => {
  return redirect("/#hello");
};

My actions:
I visit directly /test creates a Location: /#hello header and redirects me at /#hello
I visit / and click on Lets test link, it sends me to /test and then creates location header X-Remix-Redirect: /#hello which redirects me to / using the transition of remix. It should redirect me to /#hello
As I stated before the bug I identified is here, which makes sense because the transition is ignoring the hash from the parsed X-Remix-Redirect header
https://github.com/remix-run/remix/blob/621b392cc6151be51dc30f4e2bba4603085d5da5/packages/remix-react/routes.tsx#L226-L229

My investigation shows that if you change to import from "@remix-run/node", the problem goes away

@machour
Even after making the changes of https://github.com/remix-run/remix/pull/2581 the transition is not triggering the hashchange event
My hashchange event listener is run only once with useEffect on a permanently mounted component
For example from my sample before, this is the new index.tsx
import { Link } from "remix";
import { useEffect } from "react";

export default function Index() {
  useEffect(() => {
    window.addEventListener("hashchange", (e) => {
      console.log("hash changed...", e);
    });
  }, []);
  return (

      <Link to={"/test"}>Lets test</Link>

  );
}

What is happening is that the URL hash did change from the new patch when transition was triggered by X-Remix-Redirect, but the hashchange event did not trigger at all.

@a3diti Are you sure that hashchange is triggered when the whole url changes ? (you did go through a redirect, and you got back to a new url with a hash baked in)

@a3diti Are you sure that hashchange is triggered when the whole url changes ? (you did go through a redirect, and you got back to a new url with a hash baked in)

@machour
The hashchange event is NOT triggered, which raises a new issue to the redirect transition with hash
For me the temporary solution was to make the patch with url.hash on transition and on the client instead of using a window.addEventListener("hashchange", hashchange), I switched to a interval that checks for a new hash change very 1sec.

yeah, I meant are you sure it SHOULD be triggered?

From my understanding, hashchange is triggered when you're already on the page, and the hash changes.

If I load foo.html#bar in the browser, I see no console log.
If I manually change it, I see the log

In your case, you are being redirected to a new page with a hash, so you're in case 1, and hashchange is not triggered.

Closing this as the original reported issue have been fixed.
@a3diti Feel free to open a new issue if you're sure this is a remix issue, and thank you for the pointers!


1.21: Not using item models for entities

When item models for entities are not used in 1.21, boomerangs are not rendered. Don't know which version(s) are affected yet

This is now fixed together with the MaterialRegistry fix (https://github.com/ThexXTURBOXx/Balkons-WeaponMod-Legacy/commit/9f69798a92918c093d9e33f7e1a7948d8082f8c5)


[projmgr] Add --frozen-packs argument to csolution

The --frozen-packs option is only applicable for the following commands:

convert
run
update-rte

This current implementation will do the command and then check if it's supposed to be failed or not. This does support the CI use case, but the project will be modified regardless of the --frozen-packs flag.
Contributed by STMicroelectronics

@Torbjorn-Svensson, is this PR ready for review or in Draft? Do you think this should/must be included in CMSIS-Toolbox 2.2.0?

As we discusses on the meetings the previous 2 weeks, this was the followup PR that should preferably be included in the 2.2.0 release, but was "optional" in case time did not allow to make it stable.
The only thing that is in "draft" mode of this PR is the naming. I hope that there will be some feedback on the PR if the name --frozen-packs is acceptable or if there is something else that would fit the need better.

Alternative names for the option I can think of are:

--no-update-packs

similar to rte file update:
--no-update-rte

--fixed-packs

This PR can make use of "Dedicated method to Update RTE folder" #1244

In the technical meeting from 2023-12-05 we agreed to use the command line option:
--frozen-packs

@edriouk Can you please take a look at the 2nd commit in this PR as it appears to fix the issue that I talked about in the meeting today.

Rebased on projmgr/2.2.1. There should be no more changes needed before this PR can be merged.
Please have a look at this and let me know if there is anything more I need to fix.


Alter output file behaviour slightly

The LLVM APIs modify the input file in-place. To avoid overwriting the input file,
the original implementation was therefore copying the input to the output and
operating on the output. This fails, however, because it means relative includes
are being resolved relative to the output path.
To resolve this, I here change the behaviour to:

Copy the input file to <src>.hipify-tmp
Operate on that temporary file
Move the temporary file to the output (which will overwrite the input if we're
in in-place mode).

This strategy has the added advantage that you won't corrupt the input source file
if the program crashes while operating in in-place mode.

source.cu -> source.hip.cu (was source.hip)
source.cuh -> source.hip.cuh (was source.hip), etc.

This was intentional to fix #206, but I think you're right it looks better to have .hip on the end. Maybe there's an existing convention for this stuff?
If there's a canonical file extension for hip-headers, then we probably should use that. So *.cu -> *.hip and *.(cuh|h|hpp) -> *.hiph (or whatever the extension is...). Might look better than just gluing .hip onto it somewhere?

If there's a canonical file extension for hip-headers, then we probably should use that. So *.cu -> *.hip and *.(cuh|h|hpp) -> *.hiph (or whatever the extension is...). Might look better than just gluing .hip onto it somewhere?

The problem here is that the source files might be with any possible extension. AFAIK, we have no any agreement on HIP header files - all the hipified files are .hip (Ben, correct me if I wrong), and that was the main reason for my first comment.

Please change the following code in order to hipified code always has *.hip extension, for instance:
source.cu -> source.cu.hip, source.cuh -> source.cuh.hip, etc.:
if (dst.empty()) {
  dst = src;
  if (!Inplace) {
    size_t pos = dst.rfind(".");
    if (pos != std::string::npos && pos + 1 < dst.size()) {
      dst = dst.substr(0, pos) + ".hip." + dst.substr(pos + 1, dst.size() - pos - 1);
    } else {
      dst += ".hip.cu";
    }
  }
}

Done.


Install an extension from a NPM registry url

For example if user wants to install @mirantis/lens-extension-cc it could be done by giving an URL http://registry.npmjs.com/@mirantis/lens-extension-cc  (which returns a json object that Lens can use for resolving latest tarball URL).

Branch hackweek-protocol-handler contains most of the implementation for this.

Decided in favour of only supporting installing extensions by name and optional version instead.


Azure HDInsight Cluster Pause issue

[Enter feedback here]
Azure HDInsight Cluster there is no option to Pause only option to delete the cluster not in use, but documentation does have reference about Pause.

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

ID: 0c1c2788-a209-6916-c7bf-fe8c6e0b6b8c
Version Independent ID: 832bd727-e03d-5f2a-93a9-04c9bfcb4f82
Content: Manage Apache Hadoop clusters in HDInsight using Azure portal
Content Source: articles/hdinsight/hdinsight-administer-use-portal-linux.md
Service: hdinsight
GitHub Login: @sreekzz
Microsoft Alias: v-sreiyer

@seaswara
Thanks for your feedback! We will investigate and update as appropriate.

@seaswara
Currently, there is no option to pause an HDInsight cluster. You can only delete the cluster when it's no longer in use.
However, you can reboot unresponsive VMs in an HDInsight cluster. You can also use the HDInsight .NET SDK to perform administrative tasks for the Apache Hadoop clusters in HDInsight, such as deleting a cluster synchronously or asynchronously.
Thanks for your contribution. Please add your ideas in below link, so our production team can review it and update the same.
Ideas · Community (azure.com)

@seaswara
We are going to close this thread,if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Episode 1 and 2 are ready for review while episode 3 still needs some help

Hi Ruobin here are my revisions to Episode 1 and 2 for your review.
E I
**When you land on KnowPulse homepage, scroll down to the data section and click on the Export to Helium to access the Helium Exporter.
When you land on KnowPulse homepage, scroll down to the Data section and click on the Export to Helium link under Phenotypic Data panel to access the Helium Data Exporter (please see image below). Alternatively, you can navigate to the Helium Data Exporter page directly by typing the address knowpulse.usask.ca/helium-exporter onto your browser's address bar.
**To use Helium Data Exporter, you will first need to install Helium Viewer Application on your local computer. You will find the setup guide on the Helium Exporter page guiding you through the process of application installation. Please use the link to select the operating system to download and install Helium
To visualize pedigree and categorical data generated by Helium Data Exporter, you will first need to install Helium Pedigree Visualization Application on your local computer. Helium Data Exporter interface contains a graphical setup guide to assist
you through the process of installing Helium. In addition, all pertinent links to get you started are also outlined in the guide, including links to download a Helium version that is compatible to your operating system (OS) in use.
**P.S. For Mac users, Apple will resist since Helium is not in Apple store and they will not guarantee it safe, just click ctrl+click the open button when you are prompted.
Please note for Mac OS user that your system will notify you upon installation about potential safety issue since Helium is not obtained through Apple store. This can be bypassed by pressing CTR key when clicking Open button (install) when prompted.
** Image
This image shows the top section of Helium Data Exporter interface showing a brief summary of Helium Pedigree Visualization and a graphical quick step by step guide on how to visialize pedigree and categorical data using Helium.
E II
**Pedigree and categorical data from your registered experiment(s) can be downloaded from Helium Exporter module(requires login to access).
Users can export pedigree and categorical data using Helium Data Exporter for visualization using Helium in the following steps.
Please note that you can only export data from experiments that you have permission to. Other experiments that you wish to download data from can be arranged by contacting KnowPulse.
This guide assumes that you have obtained a copy of Helium that matches your operating system and that you have correctly installed the software in your computer. Please see EI (Helium setup guide)
STEP 1
**Select an experiment of your interest from the Experiment selector. (You have to be the user of an experiment before you can access any data under it, talk to us if you have any permission issue).
Select an experiment of interest from the Experiment selector dropdown field. Experiments shown in this field are only the experiments assigned to your account in KnowPulse. Please contact us to gain permission to other experiments available in KnowPulse.
When an experiment is selected, germplasm and trait fields repopulate with experiment-specific germplasm and trait options that you can select.
STEP 2
** Then choose the germplasm of your interest from Germplasm/lines selector with search functionality. From here, on your left hand side, checkboxes allow you to choose the desired germplasm. Germplasm field supports an inline search for specific germplasm.
Select or deselect GERMPLASM by clicking the checkbox for each option. Use inline field controls to search specific option or to select/deselect all options.
STEP 3
** Followed by the germplasm section is the Trait/categorical data selector with search functionality. Again, on your left hand side, there is a trait search field that supports inline search for any traits of interest. On your right hand side, in the field control, you can either use Search to look up a specific trait from the field, or click on All to select all the available traits.
Select or deselect TRAIT by clicking the checkbox for each option. Use inline field controls to search specific option or to select/deselect all options.
IMAGE - FORM
This is a screenshot of Helium Data Exporter form field elements showing 50 germplasms available with the 27 out 50 lines selected (checked). On the right hand side of each field, are field controls search and select/deselect all checkbox. You can  use Search to look up for specific germplasm from the field and click on All to select the full dataset.
STEP 4
** Below the Trait, there is an additional filter called Parental Relationships Only. Click on it allows you to choose only the maternal and parental relationships of the germplasm, therefore, only male and female parents of a line are returned.
Select germplasm relationship type to return by checking Parental Relationships Only checkbox. This is field is unchecked by default and will return all germplasm relationthips types (ie. line is a selection of, line is a cultivar of etc.) in addition to parental relationships (Male and Female parents of a line). By checking this option, only parental relationships of a line will be returned.
STEP 5
** Finally, click on the Download button to submit your request.
Click Download button to submit your request. The exporter will gather all datapoints that matched your criteria and will generate the required data files.
DOWNLOAD
** Helium from there will return you two tab-separated-value files, with the extension name of .helium. One is for pedigree data, the other is for categorical data. It may take the exporter a few seconds to generate the files for you. Those two files can be saved onto your local computer, followed by loaded to Helium for visualization. We will talk more visualization details in the next episode.
Helim Data Exporter will generate two tab-separated-value files namely, pedigree data file and categorical data file. Each data file will have .helium extension to correspond the file to Helium Pedigree Visulaization program in your computer. Both files are generated simultaneously with progress being reported to user by a graphical progress bar. These two data files can be saved when enabled onto your local computer and can be loaded to Helium for visualization.
We will talk more visualization details in the next episode.


Add guests and clean up picks

Adds a guests section to each episode with a guest
Cleans up picks so...

Each pick is labeled with who picked it.
Picks are consistently organized between episodes.

thanks!


Increment CMake Version Number

Should the version number here be updated:
https://github.com/KhronosGroup/OpenCL-Headers/blob/59ac4dc2f282286d8db83143686cfe37ec658b84/CMakeLists.txt#L3-L7

Gut feeling: yes, it should, although it looks like it's currently only being used for the CMake package so it (currently) may not matter much in practice.
If we updated the version number what would we update it to?  Obvious candidates are either 3.0.X, since the headers support up to OpenCL 3.0, or a date-based versioning to match our tags/releases.


Poor contrast in help panel

There is a poor contrast as you can see in the image below:
image example
Steps to reproduce:
Press 'H' key
How can I contribute with a pull request?

This issue was fixed in the latest update.

Doesn't seem to be the case anymore 👌


Cannot attach VHD on a net share

The application can load information about VHD on a net share, but it fails with Attach action, saying file not found. Diskpart can mount the VHD on net share, is this a bug? Thanks

Yes and no. :)
It's not a bug as such but consequence of VHD Service being installed as a local system service. However, you can adjust this by changing the rights of VHD Attach service to match your user.
Go to the Computer Management -> Services and Applications -> Services and there find “VHD Attach” service. Right-click properties and then go to Log On tab. Instead of Local System account select This account and fill your user data.
After service restart you should be able to attach from network location also.


IPA: confused about the results of the Haploid assembly with polishing.

Hi,
This is the command I used:
ipa local --no-phase -i <myreads.fastq>
However I got final.a_ctg.fasta and final.p_ctg.fasta in assembly-results.
because of the --no-phase option I would have expected primary contigs only so how is it possible to get the haplotigs ?
Thanks

Hi Patrick,
Even without phasing, the layout stage extracts alternative bubble paths from the graph and stores them to the haplotigs file.
These bubbles are the product of larger variation between haplotypes (such as structural variation) which enables the overlapper to do some preliminary separation at these loci.
Additionally, if you used the purge_dups stage, it's possible that it moved some of the contigs to the haplotigs pile.
Best regards,
Ivan.


Add nullable check

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[ ] I am making a fix / change for the macOS implementation of react-native
[X] I am making a change required for Microsoft usage of react-native

Summary
There's one more spot we need a nullable type specifier due to downstream deps having the -Wnullability-completeness flag enabled.
Test Plan
Shouldn't affect user scenarios, but if it builds then should be all set.

similar to other pr, are we suppressing some warning?

similar to other pr, are we suppressing some warning?

These warnings aren't suppressed but downstream we have warnings set to throw errors which breaks our builds. We still get the warnings here but no one's taken the time to fix these warnings yet.

similar to other pr, are we suppressing some warning?

These warnings aren't suppressed but downstream we have warnings set to throw errors which breaks our builds. We still get the warnings here but no one's taken the time to fix these warnings yet.

I would argue that a warning not being treated as an error means it is effectively suppressed. If it doesn't break CI there isn't any real practical difference between whether a warning shows up or it doesn't. Ultimately should try to turn on warnings as errors and push that upstream as soon as possible as it really shouldn't be too bad to eliminate this class of failures if indeed we have it solved downstream.


We should make a clearer visual distinction between being in "production" vs. "dev" mode

Link: Conversation with Ed Cottingham

e.g. Looker does this:


Service Worker caching broken in v1.2.0 (Chromium 67.0.3372.0)??

When using the same cache folder between page loads (by passing the same userDataDir), loading the following node route the first time should say "fetched from network" and then on reloading (when stuff is cached in service worker), it should change to "retrieved from service worker cache".
You can see this behaviour in a normal chrome browser by loading the URL used below and then hitting F5 a few times.
When screenshotting this page with puppeteer/chrome, it has been working exactly as explained above... but now when I try the chromium version that is shipping with puppeteer 1.2.0, it is no longer working... however many reloads still shows "fetched from network"... and the cache quota info also displayed on the page shows as zero.
const routeHandler = async function (req, res) {
	// this demo works works when using the following version ...
	//    const browserVersion = '539001'; // xxx 66.0.3355.0
	// but not with the version shipped with puppeteer 1.2.0 ...
	const browserVersion = '543305'; // xxx 67.0.3372.0

	const browserFetcher = puppeteer.createBrowserFetcher();
	const revisionInfo = await browserFetcher.download(browserVersion);
	const userDataDir = path.join(__dirname, 'tmp', 'puppeteer');
	const launchOptions = { userDataDir: userDataDir, executablePath: revisionInfo.executablePath };
	const browser = await puppeteer.launch(launchOptions);
	const page = await browser.newPage();
	await page.goto('https://cloud3squared.com/files/sw-chromium-bug/index.html', { waitUntil: 'networkidle0' });
	const screenshotBuffer = await page.screenshot();
	await browser.close();
	res.header('Content-Type', 'image/png');
	res.send(screenshotBuffer);
};

Any ideas?  @ebidel ?  @aslushnikov ?

@drmrbrewer not looking into the website code, it looks like something happy is going on with SW here.
The following script starts reporting "retreived from service worker cache" for me for the last 4 runs:
const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  // initial run: wait for SW installation
  await Promise.all([
    page.goto('https://cloud3squared.com/files/sw-chromium-bug/index.html', {waitUntil: 'networkidle0'}),
    waitForMessage(page, 'service worker installing')
  ]);
  // second run: wait for SW activation
  await Promise.all([
    page.reload({waitUntil: 'networkidle0'}),
    waitForMessage(page, 'service worker active')
  ]);
  // other reloads
  console.log('HERE!');
  for (let i = 0; i < 5; ++i) {
    await page.reload({waitUntil: 'networkidle0'});
    console.log(await page.$eval('#message > b', e => e.textContent));
  }
  await browser.close();
})();

function waitForMessage(page, text) {
  return new Promise(resolve => {
    page.on('console', function listener(msg) {
      if (msg.text() !== text)
        return;
      page.removeListener('console', listener);
      resolve();
    });
  });
}

Overall, it looks like the script doesn't wait enough time for SW installation/activation. I'm not an expert on service workers though :)
If you think there's a bug with SW, please file it upstream to Chromium on https://crbug.com/new


awscurl: WARN maxLength is not explicitly specified, use modelMaxLength: 512

Description
When requesting tokens per second in benchmark metrics (-t option specified) while providing the path to the tokenizer.json file as well as a payloads dataset, aws curl return the warning: WARN maxLength is not explicitly specified, use modelMaxLength: 512
I used a vLLM engine for which OPTION_MAX_MODEL_LEN was set to a higher value than 512.
(1) Are modelMaxLength and  OPTION_MAX_MODEL_LEN?
(2) Is modelMaxLength overwriting OPTION_MAX_MODEL_LEN?
(3) Are token metrics impacted by this truncation?
Remark: A "tps" metric (requests per second) is included in the benchmark response. Since "tps" is usually used as an acronym for Tokens per second within the inference domain, requests per second could benefit from another abbreviation. Does "tokenThroughput" represent in this case tokens per second?
Expected Behavior
Use model server parameter as opposed to setting it to a default value
Error Message
WARN maxLength is not explicitly specified, use modelMaxLength: 512
How to Reproduce?
TOKENIZER=<path_to_tokenizer> ./awscurl -c 1 -N 10 -X POST -n sagemaker <endpoint_url> --dataset <path_to_dataset> -H 'Content-Type: application/json' -P --connect-timeout 60 -t

The warning is just for the awscurl tool. awscurl uses the tokenizer to calculate the number of output token.
I created a PR that allows you to configure the max length with env var: https://github.com/deepjavalibrary/djl-serving/pull/2341

@CoolFish88 The PR is now merged. Let us know if you need anything else.


Compactor & Store pod has Permission denied for block

After updating thanos from v0.30.2 to v0.33.0, I am facing below for compactor and store pods
For Store Pods
ts=2024-02-01T13:56:58.877009934Z caller=bucket.go:742 level=warn msg="failed to remove block we cannot load" err="unlinkat /data/01HNAVR1BF982DF8SEGT02RB33/index-header: permission denied"
ts=2024-02-01T13:56:58.877057835Z caller=bucket.go:745 level=warn msg="loading block failed" elapsed=12.751151ms id=01HNAVR1BF982DF8SEGT02RB33 err="create index header reader: write index header: new index reader: get TOC from object storage of 01HNAVR1BF982DF8SEGT02RB33/index: open temp file: open /data/01HNAVR1BF982DF8SEGT02RB33/b9ca90e4-6e3e-4a31-bc5e-16833f3144cb.part-0: permission denied"
ts=2024-02-01T13:56:58.879092091Z caller=bucket.go:742 level=warn msg="failed to remove block we cannot load" err="unlinkat /data/01HNHYTR10SCTYS2KDQBZHH5XM/index-header: permission denied"
ts=2024-02-01T13:56:58.879129492Z caller=bucket.go:745 level=warn msg="loading block failed" elapsed=14.615302ms id=01HNHYTR10SCTYS2KDQBZHH5XM err="create index header reader: write index header: new index reader: get TOC from object storage of 01HNHYTR10SCTYS2KDQBZHH5XM/index: open temp file: open /data/01HNHYTR10SCTYS2KDQBZHH5XM/f8b096dc-4b6a-4124-9775-120c315e6d6a.part-0: permission denied"
For Compactor Pods
ts=2024-02-01T14:29:39.774372006Z caller=compact.go:1466 level=info msg="start of GC"
ts=2024-02-01T14:29:39.776717329Z caller=compact.go:1486 level=warn msg="failed deleting non-compaction group directories/files, some disk space usage might have leaked. Continuing" err="delete file/dir: read dir: open /data/compact/0@15098824445636559513: permission denied" dir=/data/compact
ts=2024-02-01T14:29:39.77676093Z caller=compact.go:1489 level=info msg="start of compactions"
ts=2024-02-01T14:29:39.777212434Z caller=compact.go:1109 level=info group="0@{region="EastUS", tier="stg"}" groupKey=0@15098824445636559513 msg="compaction available and planned" plan="[01HNG0HFB60N575CXSX85G2ZEK (min time:<PHONE_NUMBER>004, max time:<PHONE_NUMBER>000) 01HNG0HFTSWD1QT1JPH1C07EDE (min time:<PHONE_NUMBER>004, max time:<PHONE_NUMBER>000)]"
ts=2024-02-01T14:29:39.777238034Z caller=compact.go:1118 level=info group="0@{region="EastUS", tier="stg"}" groupKey=0@15098824445636559513 msg="finished running pre compaction callback; downloading blocks" plan="[01HNG0HFB60N575CXSX85G2ZEK (min time:<PHONE_NUMBER>004, max time:<PHONE_NUMBER>000) 01HNG0HFTSWD1QT1JPH1C07EDE (min time:<PHONE_NUMBER>004, max time:<PHONE_NUMBER>000)]" duration=4.1µs duration_ms=0
ts=2024-02-01T14:29:39.777400836Z caller=compact.go:502 level=error msg="retriable error" err="compaction: group 0@15098824445636559513: download block 01HNG0HFB60N575CXSX85G2ZEK: create dir: mkdir /data/compact/0@15098824445636559513/01HNG0HFB60N575CXSX85G2ZEK: permission denied"
ts=2024-02-01T14:30:23.363501959Z caller=fetcher.go:529 level=info component=block.BaseFetcher msg="successfully synchronized block metadata" duration=43.588950552s duration_ms=43588 cached=560 returned=450 partial=0
ts=2024-02-01T14:30:23.363725662Z caller=clean.go:34 level=info msg="started cleaning of aborted partial uploads"
ts=2024-02-01T14:30:23.363751762Z caller=clean.go:61 level=info msg="cleaning of aborted partial uploads done"
ts=2024-02-01T14:30:23.363764162Z caller=blocks_cleaner.go:44 level=info msg="started cleaning of blocks marked for deletion"
ts=2024-02-01T14:30:23.363845663Z caller=blocks_cleaner.go:58 level=info msg="cleaning of blocks marked for deletion done"
ts=2024-02-01T14:31:20.279298591Z caller=fetcher.go:529 level=info component=block.BaseFetcher msg="successfully synchronized block metadata" duration=41.121057077s duration_ms=41121 cached=560 returned=560 partial=0
Please help me solve this issue

Hi, please see: https://github.com/thanos-io/thanos/pull/6107. You'll have to make adjustments in Kubernetes


math.h NormalizeAngleDifference infinite loop

Consider the case of:
NormalizeAngleDifference(std::numeric_limits<double>::max());

The previous version of this function will be stuck in an infinite loop because:
std::numeric_limits<double>::max() == std::numeric_limits<double>::max() - M_PI

In addition to eliminating the infinite loop, the updated version is frequently noticeably faster when the the value is well outside the -pi to pi range.
This file change is based on the following stackoverflow post of my own creation:
http://stackoverflow.com/a/11126083/99379
Also, please consider switching to this function name as it may be more clear:
template<typename T>
inline T NormalizeRadiansPiToMinusPi(T rad);

Going to need help with that compiler error as I'm not familiar with how to deal with a Ceres::Jet. I enabled edits from maintainers.

Hi, I don't think this is a good change for several reasons:

Normalizing std::numeric_limits<double>::max() does not make sense in the first place, and changing it from an infinite loop does not improve the situation. If you wanted to document more clearly that this is only reasonable up to some magnitude, rather add a CHECK to the function. Note that this is a theoretical discussion and large values should not appear. In practice, you'd expect this function to take at most one iteration for each loop.

The current code is more readable.

I'm pretty sure performance of this function does not matter. If you think it does: Did you profile?

The reason this does not compile is because of automatic differentiation. The functions copysign and fmod are not defined for jets to my knowledge. If they were, you'd still have to remove the std::. Fixing this would be trivial though, since you can just take the scalar value of the jet, do the computation, and convert back to a jet. The reason why this is possible is because this function is piecewise constant.

Please let me know if you have further questions.

I was just giving an example failure case, it fails on many values smaller than max which was just convenient for describing the problem. Yes, I profiled but it was years ago in 2012 so I no longer have the data. I previously worked on autonomous vehicles and a similar implementation with while loops was a difficult to detect cause of our system stalling out. It was triggered by some bad data from a sensor getting through. The worst case behavior of the pre-pull code, O(n) or even an infinite loop, is much worse than the overhead of a call to fmod.
There are several other implementations on the linked page if you find one of them mathematically cleaner.

Is there any example code for converting jets to/from scalars you can point me to? I assume that would be a template instantiation.
Also, if your typical case is already between -pi and pi it is easy enough to check if the value is already in the correct range and skip the fmod call altogether at the cost of an extra branch. I doubt it matters either way unless profiling determines this call is a bottleneck.
Honestly, I was just looking for examples of integrating protobufs with eigen matrices and saw a exact replica of a serious bug I've encountered in the past, fixed, and ran on a robot and in testing for many many hours. I actually won't have a use case for googlecartographer for a while, as I'm currently working on stationary arms with an RGBD camera. Or perhaps if the time comes when 3D slam + RGBD support with colorized pixels is implemented. :-)

Thanks for your comments. We agree that this function will not work well for large values, no need to convince me. The point is that this function serves the purpose of normalizing angle differences that arise during SLAM, i.e. they will almost always be small. From this point of view adding support for large input values does not make sense since this only happens when the algorithm is not working as intended. For the same reason, one could add a CHECK, since this would make it obvious.
Regarding the performance: Of course I meant profiling the Cartographer code. I'm pretty sure this function is not contributing significantly to the running time. I prefer readability in this case.
Regarding jets: You just access the scalar member as .a, and specialize in the case of double where this is neither needed nor possible. After the computation you construct a new jet, again only in the templated version intended for handling jets. But if this complicates the code for no measurable gain, I would suggest not doing it.

Sure, feel free to close this pull request if desired. This conversation will still be here in the history if someone encounters the problem.

For future reference: Of course the function is not piecewise constant, but the
difference between function argument and result. An implementation that supports
automatic differentiation would be along these lines:
inline double NormalizeAngleDifference(double difference) {
  // Copy the sign of the value in radians to the value of pi.
  double signed_pi = std::copysign(M_PI,difference);
  // Set the value of difference to the appropriate signed value between pi and -pi.
  difference = std::fmod(difference + signed_pi,(2 * M_PI)) - signed_pi;
  return difference;
}

// For jets:
template <typename T>
T NormalizeAngleDifference(T difference) {
  const double piecewise_constant =
      NormalizeAngleDifference(difference.a) - difference.a;
  return difference + T(piecewise_constant);
}


feat: add modal CTA rotation

Checklist:

[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 main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

This pr is blocked until one of the experiment variations reach 100 conversions.

This could go in.


CASMINST-6817 add UAN to IUF products list that required mods to customizations

Description
If this UAN procedure is needed, it should be done after the iuf process-media and pre-install-check and before the IUF deliver product stage since it needs to edit some data in customizations.yaml.  Best to do early in the process OR at the end of everything.   https://github.com/Cray-HPE/docs-uan/blob/release/uan-2.7/docs/portal/developer-portal/advanced/Enabling_K3s.md
In this PR, I have added to the IUF deliver-product workflow that the UAN documentation needs to be reviewed. @keopp-hpe is working on the UAN documentation to make sure it is correct. He is using ticket: CASMUSER-3275.
This change is needed in CSM 1.4, 1.5, 1.6

Checklist

[x] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[x] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[x] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

/backport release/1.5

manually backported to release/1.5: https://github.com/Cray-HPE/docs-csm/pull/4879


Support Python 3.11

Let's add support for building Python environments using Python 3.11

I will be dropping Python 3.7 support in order to be able to update numpy to its latest version.

Licensing was improved as well.

I will also work on updating all builtins that use older python versions.

@kamadorueda Take a look at this:
https://github.com/fluidattacks/makes/blob/main/makes/cli/env/runtime/pypi/pypi-sources.yaml#L5
https://pypi.org/project/textual/#history
They changed so much in just in 8 months!
I tried to update it but mypy started to fail with weird errors. I think that the textual code written for the TUI is actually no longer compatible with that latest version. 😆
This looks like one of the cons of adopting such early-stage libraries, they change too much if they haven't gained enough stability.
I will open a separate issue for upgrading Makes to Python 3.11 and updating all its pypi dependencies to the current version.

let's upgrade it to Rust ;)
btw I discovered this project today: https://github.com/pvolok/mprocs
maybe useful for the dev environments

maybe would be nice to ask people if they find the TUI useful first, if not, then using a CLI with emojis would be equally good for less. If they find the TUI useful but migrating to the newer version of textual is hard, then we can replace the useful features of the TUI with an equivalent in the CLI, for example, TUI visual search -> terminal autocompletion. Some market research would help taking a decision here

https://github.com/fluidattacks/makes/issues/989

We now support Python 3.11 and all builtins were updated to such version. Makes still uses Python 3.10 due the TUI issue mentioned before.

There are issues when running lintPython using 3.11: https://gitlab.com/fluidattacks/universe/-/jobs/3562147270
I will try updating nixpkgs so we get an even newer Python version.

Updating nixpkgs breaking lintNix. I ended up not having to do it as the error in lintPython was due to incompatible pypi libraries. I managed to solve it in https://github.com/fluidattacks/makes/pull/992


Add the dark version of the IQX color scheme

Summary
Add the dark version of the IQX color scheme, as we don't yet support any "dark mode" circuit visualizations which would be very handy e.g. for dark presentations or similar.
Details and comments
The color codes are taken from IQX and it looks like

I adapted the background color to the proper IQX one (#262626) and I think the PR is ready 👍🏻

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
2180 unchanged lines in 118 files lost coverage.
Overall coverage increased (+0.8%) to 82.965%

Files with Coverage Reduction
New Missed Lines
%

qiskit/algorithms/phase_estimators/phase_estimator.py
1
85.71%

qiskit/circuit/library/n_local/qaoa_ansatz.py
1
88.79%

qiskit/opflow/converters/two_qubit_reduction.py
1
87.8%

qiskit/opflow/gradients/qfi.py
1
94.44%

qiskit/opflow/primitive_ops/circuit_op.py
1
89.84%

qiskit/pulse/utils.py
1
97.37%

qiskit/qasm/node/if_.py
1
85.71%

qiskit/qasm/node/reset.py
1
85.71%

qiskit/qobj/common.py
1
94.74%

qiskit/quantum_info/operators/mixins/group.py
1
96.15%

Totals

Change from base Build<PHONE_NUMBER>:
0.8%

Covered Lines:
50774

Relevant Lines:
61199

💛  - Coveralls

Thanks for catch @jakelishman! Also, I adjusted the color of the CX cross to be the same as the background:

The contrast question should be solved since we now have the same as IQX, so we're deferring to them 😉


Gracefully handle SETUP packets whose wLength > 255.

This isn't an exactly elegant solution, but since this device isn't responding to SETUP xfers with > 255 bytes anyway, I think saturating wLength to 255 is a reasonable solution.
The old behavior was to send back wLength % 256 bytes. At least for this device, Windows will deliberately send a SETUP packet w/ length > 255- 265 in my case. The device responds with 9 bytes only, which is 265 % 256. This is legal per USB, but the Windows driver interprets this as a malfunctioning device.
By forcing wLength to 255, we still don't send 255 bytes back, but we at least send all the data back we mean to send.

Thanks @cr1901 for reporting and investigating on this, this is merged.

Thanks @cr1901 for reporting and investigating on this, this is merged.


Add in-viewport handles to resize RectExtents

Create a tool script to modify the size of RectExtents interactively on the canvas.
It's not that it's necessary but I'm looking to learn more about in-viewport interactions for tutorials, and to start to make use of Godot's powerful plugin api and tool modes

I think this could be a Plugin itself, instead of a simple tool script as with an EditorPlugin you can have access to some Editor related classes that I think would be necessary, such as:

EditorInterface
EditorSelection

And some other stuff that can be useful:

Add Controls to Containers
Foward Canvas GUI Input (for shortcuts?)

Also to get some events to control the display of the handlers with:

EditorSelection.selection_changed signal to get when a RectExtents is actually selected and show/hide the handlers properly

I couldn't find a way on how to actually display the handlers like Godot does with Shape2Ds, Line2Ds, Polygon2Ds etc... while searching in the Godot Editor repository, but I imagine you can use some sort of Button or TextureButton and instance them, just like in a game.

Actually I got it well started already. You can draw textures or shapes in the viewport directly. I'll try to finish and push it a little later

Got the drawing started, just got to fix the input and make setting the rect extents work now

@Zireael07 it needs more work but the plugin is up. Tutorials will follow :)

Left to do: fix the plugin stealing input from other tools. It should only consume input when the user clicks and drags on one of the anchors


Non-Trailing named arguments in C# 7.2

Fixes # .
Changes proposed in this pull request:

The feature implemented here is disclosed in #3491.


Fix Webkit image aliasing during transform

Fixes an issue in Webkit browsers where applying multiple filters in the same property and applying a transform causes aliasing/stepping, by distributing filters to parent elements so that each element has at most one filter applied.

O_O
THIS IS SO MUCH BETTER.

LSFGTM.


Upgrade versions of null and random providers for M1/ARM macOS machines

Describe the bug
Mac M1-based machines require null and random providers to be minimum v3.1
Expected behavior
Able to use modules on Mac M1-based machines
Current behavior
Mac M1-based machines fail to use modules with older versions of the null and random providers
Possible solution
Increase version numbers in versions.tf for the modules (and examples ideally)
Steps to reproduce
Use modules on a Mac M1-based machine
Your Environment
Terraform v1.1.9 on darwin_arm64
macOS 12.4

Fixed by #103


pip package of flask-uploads is not update

in this Repository of flask-uploads, in 26 line the from werkzeug import secure_filename, FileStorage
is updated to
from werkzeug.datastructures import FileStorage
from werkzeug.utils import secure_filename
but when you download the flask-uploads from pip you don't get this update
when you create a docker container and the app is included this package your app in docker goes wrong and that container doesn't create
please help me

Having stumbled upon this myself recently upon a legacy app migration, here's the issue:

PyPI version 0.2.1 dates back to 2016
Despite the fact that setup.py in the repository also displays the version of this package as being 0.2.1, several changes have been made to the codebase since. So technically the version is no longer 0.2.1.

If you really need to install it, I would suggest doing so directly from git, like so:
pip install git+https://github.com/maxcountryman/flask-uploads.git#master or
poetry add git+https://github.com/maxcountryman/flask-uploads.git#master
However, considering the lack of any meaningful activity and development, I wouldn't recommend using this package. At best, in its current state it could be used as inspiration.

@born2discover I have create a fork over at https://github.com/jugmac00/flask-reuploaded which has been in active development for two years now.

@jugmac00 Wasn't aware of its existence. Thank you!

thanks for you all.
@jugmac00
@born2discover


Update tcp_proxy.py (ininstance -> isinstance)

Hello, fixed: black-hat-python3-code/tcp_proxy.py:44:19: F821 undefined name 'ininstance'. Changed to isinstance.

Thanks a lot! :+1:


added dependencies to package.json

There was few problem in the dependency list in the master branch, now rectified with this commit. Please review.

Can you revert the whitespace changes?

Updated the file as per suggestions, please review.

@techunits thanks. Which packages specifically did you add to fix the errors? What errors were you facing?

"libmime": "~0.1.6"
"hyperquest": "~1.0.1",
"base64-url": "~1.1.0",
"buildmail": "~1.2.0",
Those packages was requested while starting application and was missing from package.json list.

@techunits I haven't had to add any of those...and I don't think anyone else has had to.

@techunits as @ilanbiala said, I'm not sure these packages were required. Can you show some output log errors for that? the travis build environment also does npm install IIRC and there weren't any build failures recently due to packages missing

I just did a fresh install of meanjs with the 'master' branch and everything works fine out of the box. @techunits let us know please if you think this is still relevant.

Now it seems to be working from after taking checkout from master branch just now. Thanks a lot.


set text from url - non 200 response - return

Describe the bug
I wrote mini api app with python fastapi, and when skquery gets non-200 respone - it take me just <none>, but in browser i see (for example) {"detail": "forbidden"}
To Reproduce
make simple skript with set text from url and find url with no 200 response, it will returns <none>
Information:

Skript version: 2.7.2
Server software: Paper
Server version: 1.20.1

https://github.com/SkQuery/SkQuery/blob/d3b9bd12559e018d719c49db4a882aa1e08a61a2/src/main/java/com/w00tmast3r/skquery/elements/expressions/ExprURLText.java#L35
can you write in this - if catched error - print it to console, please


[examples] Replace wrong import with @mui/material/styles

closes #43221

[x] I have followed (at least) the PR section of the contributing guide.

Nice catch, luckily it's the only example that has this import.

It takes me 30 minutes to find the root cause 🥲. I started to think that exporting MuiThemeProvider is a better way. I have seen issues related to emotion import many many times.


Validator Requirement Collection/Documentation

Details
Collect requirements for running validators:

~Minimum system specs. @oxade provided these.~
Public containers?  Need to determine if we're providing these.  @tharbert
Docs for deploying a node from containers.  @Clay-Mysten - we've got a starting point for this in the (private) sui-operations repo README.md (might be in the k8s directory if not top level).

Dependent Tasks

#1367

@oxade, do you have any GitHub Issues already filed for tracking the machine-spec, benchmark-collection work we've started looking at more closely in the last few days?

@todd-mystenlabs nope. I just began writing a script which can iterate through all pertinent AWS machines and run benches.
Should I create an issue or do you have one for me?

 Sustained tps was about 18k

@todd-mystenlabs nope. I'm still in early stages. Was thinking to write a script which can iterate through all pertinent AWS machines and run benches. Should I create an issue or do you have I should use?

@oxade - please create an issue.

@Clay-Mysten - we'll want @longbowlu, @lxfind and @bmwill .  I'll add them if I can to the meeting; otherwise, you may need to.

closing this as duplicate to other similar issues


Conventionally use RejectedExecutionException for load issues

Updating Elasticsearch's HttpBulkIndexer to check for "too many requsts" error and throw more descriptive exception.

I found the ElasticsearchSpanConsumerTest and the MockWebServer it uses.  However, I didn't notice any tests for span indexing to base things off of.  So I wrote a more direct HttpBulkIndexerTest to validate this behavior.  Does that work?

we can merge on green. as this is a minor change I suspect it isnt blocking on iCLA such as the major refactoring change is..

thanks. let me know if you want a hand rebasing your other branch/PR


Fix duoble speed tick duration ns.

Currently it's 20x.

Whoops, guess I didn't actually test that. Thanks!


Write a proper (K)PCA notebook

Illustrating what PCA does, with proper eye candy.
Some ideas:

Explain the math of the method (both versions, Eigendecomposition or SVD), some background
Gaussian pancakes of 3D Gaussian where PC is just noise. Plot the subspace and the projection into it.
Plot the principal components and show how choosing different numbers of them affects the projections.
PCA on real data (for example Eigenfaces?)
All this for Kernel PCA illustrating the main differences (non-linear manifold rather than a linear subspace). What does the kernel choice do to the projections?

Have a toy example where N>>D and D>>N

This can be combined with many different dimension reduction methods such as Factor analysis, PPCA, etc. Creating cool looking examples is always fun!
Many examples and explanations (including the pancake idea) can be found in http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage
Or here http://www.gatsby.ucl.ac.uk/teaching/courses/ml1-2013/lect2-handout.pdf

We long have a PCA notebook


Make Non-Copyable and Move Friendly

Non-Copyable
Original code just assumed that you would never copy, but because assumptions are rubbish we should remove copy and have move semantics.

[x] Make non-copyable but move friendly.

This is rolling, but adding it as it comes in.


Update -b flag to work on linux

Add linux command to open chrome and add check to see if command
is being run on linux. Up rev'd to 2.1.3
@loganhasson @peterbell

Hey @aturkewi is this something we should look at or did you say someone else had a PR for this? Let me know. Also, I'll have to defer to @loganhasson as he knows how the gem works 😄

hey @aturkewi sorry, had to make a few changes so that this would work at all on the ILE and created some conflicts that'll need to be resolved before we can merge.

thanks @aturkewi !!

w00t - thanks @loganhasson and @aturkewi awesome to get a fix in!


flip find convos check

This guy changed a lot though, might want to double check this is the only thing that needs to get changed.

I'm just going to merge


chore(SchwartzSpace): clean up white space

Definitions in term mode using mkCLM are indented by 6 spaces, but formulating things with refine drops it to a more reasonable 2 spaces. Absolutely no math change, just unindenting.

@grunweg refine is one exception to that rule, because it creates a clean proof term in a predictable way. Tactics like rw and simp don't.

@grunweg refine is one exception to that rule, because it creates a clean proof term in a predictable way. Tactics like rw and simp don't.

Thanks for educating me - makes sense!


a2ltool can't parse XCP settings in the test .a2l-file (attached).

Hello,
a2ltool can't parse XCP settings in the test .a2l-file (attached). Here is the console output:
>>> ./a2ltool.exe --check --show-xcp ./TestXcpServer.a2l

XCP settings in ./TestXcpServer.a2l:
No XCP settings found in module TestXcpServer

Consistency check complete. No problems found.

Bests
TestXcpServer.zip

Your file does not contain any XCP settings.
It only has an A2ML block, which defines the layout for IF_DATA blocks.
The file needs to have "/begin IF_DATA XCP ..."

Actually, I just saw that you have that at the beginning of the file. It might just be an ordering issue. I will have to debug that when I have more time.

Thx for the quick reply, looking forward to your update :)

I know what's going on now: parsing of your XCP settings fails, because the data model doesn't contain the option TIME_CORRELATION_PROPERTIES, or the OPTIONAL_LEVEL1_CMD GET_VERSION.
If you comment out those two lines, you should see:
  XCP on UDP/IP
    address: <IP_ADDRESS>
Port: 5555

I'll have to try and find out what these things are - I've never seen either of them before.

I know what's going on now: parsing of your XCP settings fails, because the data model doesn't contain the option TIME_CORRELATION_PROPERTIES, or the OPTIONAL_LEVEL1_CMD GET_VERSION. If you comment out those two lines, you should see:
  XCP on UDP/IP
    address: <IP_ADDRESS>
Port: 5555

I'll have to try and find out what these things are - I've never seen either of them before.

Hello,
thanks again. The two options comes originally from here:
https://github.com/vectorgrp/XCPlite/blob/master/C_Demo/CANape/C_Demo.a2l
bests

I just updated the built-in XCP definition with the elements from XCP version 1.4
Now your file works without changes.


Minor typo to be fixed

Great app, as always.
There are 2 occurrences of inseret instead of insert:
printf -- '%s\n' "Inseret Your Password To Procceed."

Thanks for the catch @perez987
Done commits


Add a tool to check releases

Add a tool in Rust that can be used to do some release version checks.
Currently supports two things:

Checking if the latest released version on crates.io is the same as in the config file.

Checking that a local crate uses the latest released dependencies (used to check that we have upgraded all deps before releasing a new version).

Currently the output (colour ticks and crosses in my terminal):
$ cargo run -- check-latest-dependencies ~/build/github.com/tcharding/rust-bitcoin/master bitcoin
Checking latest dependencies for:
    crate: bitcoin
    version: "0.32.0-rc1"
    manifest: /home/tobin/build/github.com/tcharding/rust-bitcoin/master/bitcoin/Cargo.toml

    - serde                ✓      1.0.103 latest: 1.0.198
    - base58ck             ✓      0.1.0
    - base64               ✗      0.21.3 latest: 0.22.0
    - bech32               ✓      0.11.0
    - bitcoinconsensus     ✗      0.105.0+25.1 latest: 0.106.0+26.0
    - bitcoin_hashes       ✓      0.14.0
    - hex-conservative     ✓      0.2.0
    - hex_lit              ✓      0.1.1
    - bitcoin-internals    ✓      0.3.0
    - bitcoin-io           ✓      0.1.1 latest: 0.1.2
    - ordered              ✓      0.2.0 latest: 0.2.2
    - secp256k1            ✓      0.29.0
    - bitcoin-units        ✓      0.1.0 latest: 0.1.1

I'd like to extend it with all the ideas in  https://github.com/rust-bitcoin/rust-bitcoin/issues/2524#issuecomment-2037261829.
Close: #2524

Based on https://github.com/rust-bitcoin/rust-bitcoin/issues/2524#issuecomment-2037261829, still has some work to do. This works as it is and can be used to run basic checks before doing the release if you want.

Do we want to try updating bitcoinconsensus before release of rust-bitcoin?

When I change the hardcoded line, I get the same local output as you.

Cool, I'm not sure of priorities right at this second since the release just dropped. Perhaps I'll put some more work into this as a Friday job. I just wanted it up for you to use to release yesterday, thanks for doing so!

The ticks/crosses look better in my terminal than in the PR description. I wasn't able to find the plain green tick (without a box around it).

The ticks and crosses are in color now :)

I used this today to check over bitcoincore-rpc and found that it cannot handle dependencies that only use the major version ie., serde = 1. I'm going to consider that a feature not a bug but the error messages are pretty bad, since this is a brand new tool that is intended for our own use only I think that is ok for now.

I see a lot of iteration here -- please ping me when you want me to review and/or merge it!

I have a feeling I will iterate every time I go to use it :) (as long as the PR is open anyways). I believe it is useful and good to merge in its current state.

Yeah the error handling leaves a lot to be desired. I was basically assuming one had to have the script open in an editor while running it - bit slack I know.

The green and red colors are pretty awesome though ;)


Does geetest solver work with android geetest? Android version has the same challenge, api key etc... But in the request it is said what platform it is.

it's better to address the question to 2captcha support team


Simple waiting feedback for leo

adds some simple feedback for when users run leo read --follow right after a leo create and there aren't any logs yet.

Please print to os.Stderr

Is that really necessary? In this case the output is purely for UX, stdout is perfectly valid.
Granted, leo could use a quiet mode that's more automation friendly, but we've got more pressing issues

Currently leo read only outputs script logs to standard output, and all the other user-oriented messages to standard error. While we still don't provide any stability guarantees, it would be nice to stick to that principle.


Added an Elastic Side Navigation Bar

Fixes Issue🛠

Closes #181
Description👨💻

Added an elastic Side Navigation Bar
Type of change📄

[x] New feature (non-breaking change which adds functionality)

This has been tested✅

Checklist✅

[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
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷
https://github.com/Rakesh9100/Beautiify/assets/125905089/b57ceb10-2316-4849-b8b3-a49458600b15

Pls rename your folder to Elastic-Side-Navigation-Bar and make the necessary changes @saurav2208

Merged 🎉 @saurav2208


FileViewFinder exception on AWS EC2

After having successfully deployed Laravel using Elasticbeanstalk, Laravel throws InvalidArgumentException in FileViewFinder.php because the view path that is generated somehow still remains /var/app/ondeck/resources/views/ which is a temporary location for the app during deployment instead of /var/app/current/resources/views/ which is the directory where the application resides after it has been deployed.
This means the whole site is down because Laravel is trying to look for views in the wrong directory.
I couldn't find any solution to this on AWS forums. Any help?

Perhaps the config is being cached in the first directory during deployment? If so, that can cause problems.

Interestingly I run php artisan config:cache

Okay, so if you run php artisan config:cache it needs to be done after AWS has moved the app to the new directory (unless you can setup symlinks with EC2 deployments). I'm not familiar enough with AWS to tell you how to achieve that so I'll have to defer to someone who knows.

Great

Not familiar with Elasticbeanstalk or deployment on AWS but @thecrypticace assumption can be true, the config is cached somewhere.

@themsaid I think that is true because doing DIR in production actually confirms that the app is being served from /var/app/current which is good only that the view path is wrong. I'll have to find why cache:clear isnt working

After battling with it, I managed to use a post deployment script /opt/elasticbeanstalk/hooks/appdeploy/post/artisan_clear_cache.sh to run php artisan config:cache. Unfortunately this method is not documented.

I had to create the directory because it didnt exists by default.
I had to set the permissions for Laravel to write to storage.
Finally i had to put artisan command within the .sh.

This way the script will automatically run post deployment and clear the cache.

Thanks for the hint @kyonkopa. I found and article that might be helpful to someone :) http://junkheap.net/blog/2013/05/20/elastic-beanstalk-post-deployment-scripts/ it did help me setting up Laravel in AWS Elastic Beanstalk 👍

@kyonkopa Worked for me thanks, been struggling for few hours about it.


Bitmap too large to be uploaded into a texture error in some phones even after reducing size an quality in android

When I am trying to pick image from gallery it giving me the error:
[OpenGLRenderer] Bitmap too large to be uploaded into a texture (3120x4208, max=4096x4096)
And my image is showing as blank in the app. I tried reducing the size using the compression and quality.
Please, Can you help me on this. Its urgent. I will be highly thankful if you can look into this.
Version Number of Plugin: 3.0.1
Device Tested On: Mi Note 1 (Xiaomi)
Version of VS:  7.0.1(build 24)
Version of Xamarin: <IP_ADDRESS>0
Versions of other things you are using:
Android Kitkat

@varun13487 Could you share a sample project demonstrating the problem? It will help us to accelerate identifying the fix

async void OnAddButtonClicked(object sender, EventArgs args)
        {
            if (imageByteMap != null && imageByteMap.Count() == 3)
            {
                await DisplayAlert("Attachment limit exceeded", "Cannot attach more than 3 images. Remove image to attach a new one.", "Ok");
            }
            else if (imageByteMap != null && imageByteMap.Count() < 3)
            {
                Device.BeginInvokeOnMainThread(async () =>
                {
                    MediaFile file = null;
                    var action = await DisplayActionSheet("Add Photo", "Cancel", null, "Choose Existing", "Take Photo");
                `  if (action == "Choose Existing")
                    {

                        file = await SelectImageFromGallery();
                    }
                    else if (action == "Take Photo")
                    {
                        //isCancelled = false;
                        file = await TakePhotoFromCamera();

                    }

                    if (file != null)
                    {
                        String path = file.Path;
                        string filename = Path.GetFileName(path);
                        string fileext = Path.GetExtension(path);
                        string mimetype = Utilities.getMimeType(fileext);
                        MemoryStream memoryStream = new MemoryStream();
                        file.GetStream().CopyTo(memoryStream);
                        StackLayout stack = new StackLayout();
                        stack.Orientation = StackOrientation.Vertical;

                        Image image = new Image
                        {
                            Source = ImageSource.FromStream(() =>
                            {
                                var stream = file.GetStream();
                                imageStreamList.Add(stream);
                                imageStreamMap.Add(file.GetStream(), filename);
                                imageMimetypeMap.Add(file.GetStream(), mimetype);
                                Device.BeginInvokeOnMainThread(() =>
                    {
                        overlay.IsVisible = false;
                    });
                                return stream;
                            })

                        };

                        imageByteMap.Add(memoryStream.ToArray(), filename);

                        imageToIndex.Add(image.Id,memoryStream.ToArray());
                        image.WidthRequest = 100;
                        image.HeightRequest = 100;

                        var tapGestureRecognizer = new TapGestureRecognizer();
                        tapGestureRecognizer.Tapped += async(s, e) =>
                        {

                            var attachmentAction = await DisplayActionSheet("Choose Action", "Cancel", null, "Preview Attachment", "Delete Attachment");
                            Image attachment = (Image)s;
                            if (attachmentAction != null)
                            {
                                if (attachmentAction.Equals("Preview Attachment"))
                                {
                                    await PreviewAttachmentAsync(attachment.Source);
                                }
                                else if (attachmentAction == "Delete Attachment")
                                {
                                    DeleteAttachment(attachment, stack);
                                }
                            }
                            else{
                                return;
                            }

                        };

                        image.GestureRecognizers.Add(tapGestureRecognizer);
                        Label imgTitle = new Label
                        {
                            Text = "img" + count,
                            Margin = new Thickness(20, 5, 0, 0),
                            TextColor = Color.Gray,
                        };

                        count = count + 1;

                        stack.Children.Add(image);

                            mainLayout.Children.Add(stack);

                    }

                });
            }
        }

public async Task<MediaFile> SelectImageFromGallery()
        {
            overlay.IsVisible = true;
            if (!CrossMedia.Current.IsPickPhotoSupported)
            {
                await DisplayAlert("Photos Not Supported", "Permission not granted to photos.", "OK");
                return null;
            }
            var file = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions
            {
                //PhotoSize = Plugin.Media.Abstractions.PhotoSize.Full,
                PhotoSize = Plugin.Media.Abstractions.PhotoSize.Custom,
                CustomPhotoSize = 80,
                CompressionQuality = 80,

            });

            return file;
        }

This is only what I can share....

You have to resize it. The photo is too big. This is why I have options for resizing. Welcome to Android bitmaps.

I tried resizing it even then it is not showing. And also how can I find out that when to resize and when not. I am picking images from gallery of different sizes, If I will pick an image of very small size on resizing it and applying to an image view of a particular size, it will be pixelated. I am very new to Xamarin.forms. Can you suggest something ?

Are there any solutions for this problem?


⚠ ClamAV has degraded performance

In c14bb3a, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 209 ms

Resolved: ClamAV performance has improved in 2eb874f.


typo

Hello @wassname,
Nice catch! However, it was noticed and corrected on the development branch (plus numerous other bugs, speed, docs, et al).
$ pip install -U git+https://github.com/twopirllc/pandas-ta.git@development

Thanks for looking out! 😎
KJ

Oh, my bad!
I'll check dev next time 😃
On Wed, 21 Sep 2022, 6:08 am Kevin Johnson, @.***>
wrote:

Hello @wassname https://github.com/wassname,
Nice catch! However, it was noticed and corrected on the development
branch (plus numerous other bugs, speed, docs, et al).
$ pip install -U @.***
Thanks for looking out! 😎
KJ
—
Reply to this email directly, view it on GitHub
https://github.com/twopirllc/pandas-ta/pull/589#issuecomment-1252965858,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAINOYSRBVP7P4NCGLIPFCDV7IYWXANCNFSM6AAAAAAQLASAKM
.
You are receiving this because you were mentioned.Message ID:
@.***>

@wassname,
No worries. Thanks for looking out. 😎


Make "Filtering options" work

Some steps to break it down:

[ ] Make the controller work correctly, if you do ?sort=id or ?sort=-title
[ ] Add a button(s) in the template, to trigger the sorting
[ ] Make the controller work on ?filter=FooBar
[ ] Add input and button in the UI to trigger the filtering
[ ] Make sure it works with both: ?filter=FooBar&sort=id
[ ] Make the buttons/inputs in the UI work with both.
[ ] Add a button to "clear filtering and sorting" (so, basically go to path('bolt_content_overview', {'contentType': foobar}) )


CentOS安装jdk1.8，tomcat9.0，部署项目 - 雷园的博客 | Lei Yuan

https://imlcl.store/2018/10/08/CentOS安装jdk1.8-tomcat9.0-部署项目/
Every failure is leading towards success.

开启评论


cli validate should take multiple config files

also ensure uniqueness of policy names.

It looks like there’s already a check for duplicates in schema.validate, but it was there before your comment above. Should it be checking for dupes across all files?

yup duplicates across files, we typically segment files by periodicity of execution, so would like validate to take multiple files to check for duplicates across all the files we execute for account.

This should have been closed with the merge of #593


feature request: scale extents a bit more than the absolute fit

Right now:
hv.Scatter([[-1,-1], [-1, 1], [0, 1], [1,1]])

gives points that you cannot even see:

Preferably the plot would take the extent and make it 10% bigger or so, like:
hv.Scatter([[-1,-1], [-1, 1], [0, 1], [1,1]])[-1.1:1.1, -1.1:1.1]

which does show the points:

Agreed, this is something we should have added a long time ago. All our plots should automatically pad the axis ranges by a few percent. The question has always been how precisely the padding is calculated. Is it a fixed 10% or is there special handling around zero? Other plotting libraries have had this discussion (see https://github.com/matplotlib/matplotlib/issues/4891) and have generally settled on a fixed 4-5% padding along each axis:

The easiest way to handle this is to simply ensure that the axis limits are slightly larger than necessary to cover all the data, and then leave it at that. It avoids the really nasty cases, avoids surprises, and if people want something fancier than they almost always have to tweak the limits by hand anyway. As further evidence that this works, this is what R does and it basically just works -- no-one complains.

Specifically, base R calculates default axis limits by: taking the min and max of the data, and then setting the limits 4% further beyond each of those. ggplot2 uses a similar algorithm, but uses 5% by default. (See here, semantics of expand= is (multiplicative expansion, additive expansion).)

If we agree with both matplotlib and ggplot2 that's what we can use by default as well. It's trivial to do and I strongly believe this belongs in 1.7 as part of changing our global styling defaults (https://github.com/ioam/holoviews/issues/823).

I agree.

I think this is a good idea and I agree that we should use someone else's magic value for this parameter (and stick to it). My preference for conventions would be to follow that matplotlib does, then bokeh and then ggplot2.

They all do the same thing 5% padding on each end of an axis.

5% it is, then!

Note that I do not want to add automatic padding to raster types because it's ugly. Therefore I'd suggest a plot option, which has different defaults for chart and raster plots. The difficulty then is figuring out what happens when overlaying the two. I'd suggest the bottom layer determines the padding since that will usually be the raster type.

I would be tempted to say that if there is any raster type in the overlay, don't apply any padding.

Either of those two policies seems fine, as long as we choose it and stick with it.  Whichever one seems more consistent with other things we do where one layer needs to determine the overall behavior.
Presumably a GeoViews tile source wouldn't count as a raster, for this purpose?  Those generally have effectively infinite extent, and thus expanding to show the points or box seems appropriate.

Let's try implementing this for 1.7, setting the margin parameter to zero and then add some default padding in 2.0.

Sounds like a good plan.  Do we want to make a 2.0 branch now, to include these breaking changes, that we keep rebasing as needed, so that we can try out the new version in practice?

So this turns out to be a bit more complex than anticipated. The main question is what this should apply to, we have the data ranges, explicitly set ranges and extents. Presumably it should not apply to explicitly set values, but currently we have no way of distinguishing a Dimension.range from a data range and the get_extents method in plotting and the normalization system are not set up to handle the distinction between the two. The other complication are log axes where computing padding requires some transforms.
At minimum this will require https://github.com/ioam/holoviews/issues/1212 to be implemented but probably requires at least a partial rewrite of range handling in general. I'm unfortunately going to have to postpone this until 2.0.

This has finally been merged, we should however decide whether to enable padding by default in 1.11 or wait on another release and pre-announce the change as part of the 1.11 release notes.

We have definitely decided not to enable this by default in 1.11.

@philippjfr @jbednar I assume it is now time to switch this on immediately after the upcoming release?
I assume the diff will be to set this value to 0.05. To achieve 5% padding. Then we can add something in the release notes to help people set it back to zero if they want to restore the old behavior.

I assume the diff will be to set this value to 0.05

Not sure, I usually use 0.1 for 5% padding on each end.

I hope padding can be added as a default in one of the upcoming releases, as I find myself continuously setting xlim and ylim manually.


[WIP] Finding tsserver inside cygwin

Targetting issue #1180

fnameescape added after the resolving current bufname.
Now the correct tsserver executable is found

(started) ['/bin/bash', '-c', '/home/Galke Lukas/git/locdb-frend/node_modules/.bin/tsserver']

Still, the problem is not completely solved: no errors from tsserver are reported at all

The following vim error is reported sometimes when opening a typescript file:
"src/app/appwrapper/appwrapper.component.ts" 83L, 2235C
Fehler beim Ausführen von "function ale#Queue[9]..ale#CallWithCooldown[9]..<SNR>47_ALEQueueImpl[41]..ale#Lint[12]..ale#CallWithCooldown[9]..<SNR>47_ALELintImpl[16]..ale#engine#RunLinters[12
]..<SNR>109_RunLinter[2]..<SNR>109_CheckWithLSP[2]..ale#linter#StartLSP[54]..ale#lsp#Send[33]..<SNR>113_SendMessageData[2]..ale#job#SendRaw":
Zeile    4:
E631: ch_sendraw(): Schreiben fehlgeschlagen.

which translates to Error on execution of,..., ch_sendraw(): Write failed.
Do you have an idea of what is causing this?

Yes, I know about the ch_sendraw error. That's down to a bug in some implementation of the socket library Vim uses. You can see it in older versions of Mac OSX too, but not the latest version. There's no easy answer for how to fix that, other than trying different Vim installations.

Cheers! :beers:


functions.md file not found

It is written towards the bottom of the main README.md file here that

The index of (max,+) functions is available at docs/src/functions.md

but the link https://lecrapouille.github.io/MaxPlus.jl/dev/docs/src/functions.md is dead:

404 File not found

And yet the file can be found manually, it is at: https://github.com/Lecrapouille/MaxPlus.jl/blob/dev/docs/src/functions.md. Perhaps the automatic configuration of the docs page has not been done correctly.

@hurak Hi ! The link on the README.md (dev branch) is working. The link on the online doc is KO. I'll check how to fix it.

Seems ok now !

Yes, that is what I learnt today by myself. Frustrated a bit that I cannot get the value through a.λ, because the dev version uses a.v internally while in the notebook it documents the former :-)
If only you polish this at least a bit, so that it is clear with which version one should do the development, I think I might occasionally contribute with some pieces, be it just some documentation and tutorial material.

@hurak I gave you invitation to be collaborator to this repo. You have to accept it. Then normally you can git push directly on this repo (no more need to fork and do pull request).

@hurak For the .λ my father reviewing the code did not like, preferring .v.
At the same time the nightmare (Julia coding speaking) has started when for implementing some (max,+) function we had to introduce (min,+) operations (the lib was supposed to be (max,+) only) then I added the Trop to factorize some code, plus my father did not like my way of adding comments, preferred I move docstrings into a separate file, plus ε was ok for (max,+) but how to use it for (min,+). The whole code had to be redone in once, and I gave up that is why the dev branch is still is poor status and Julia package is still referring to the master branch. For example, MI([1 2; 3 8]) .+ 5 is returning 2×2 Max-Plus dense matrix: :( I'm a little rusty with Julia but I'll start fixing things. Give me time !

I understand perfectly how some design decision can send the project into a direction from which it is difficult to maneuver elegantly any further. But I think it is perfectly normal. Inevitable. Every other project has it like this. But remember that in this case of an open-source project, it must primarily be a fun for you. You do not owe anyone, it is just a fun, isn't it?  No stress :-)

If the dead URLs are fixed, I close this ticket, let's talk on the other.


Scrollable Waveform

Hell, is there any way to make it fixed (stretch ) to the width of device not scroll-able waveform view

I am getting the same issue please let me know if anyone get solution.

anyone got this solved? I want to make it fixed (stretch ) to the width of device not scroll-able waveform view

Anyone get the solution?

Anyone get the solution?


Could not find s3db-backup-0.8.2 in any of the sources

is the 0.8.2 discontinued now ?
im getting this error
Could not find s3db-backup-0.8.2 in any of the sources

https://rubygems.org/gems/s3db-backup/versions/0.8.2
If you see this, this version has been yanked and so not available to download. Gem is not maintained anymore as well. So if you absolutely need it, install from github source.


Rewrite of the _shift_key_indices function to make if faster

I rewrote the _shift_key_indices function using dictionary comprehension, to make it run a lot faster (from 21 seconds down to 4.7 on a big blueprint). This function was responsible for more than 75% of the time spent. (Total time got from 47 seconds down to 14)
This was especially true for big blueprints with many entities.
I ran the test suite and coverage, and all 396 tests passed.
(I left the old code commented to make it easier to understand, as it's more verbose)
Before:

After:

Awesome, thanks. I've yet to set up any performance tests or analyze it rigorously, so if you find any other problem areas that you don't want to handle yourself, feel free make an issue for them and I'll take a look later on.
I should also probably make a formal contributing page, but the basic process is this:

Run tox against Python 2.7 and 3.10 and ensure it passes (This runs the tests for both versions, I've already done this for this pull)
Run coverage run to check that code coverage is 100% (I've also verified this for this pull)
Format all modified python files with black (I'll do this on my end for version 0.9.7)


set_total missing in v0.5

I need set_total to keep updating the total as I iterate, otherwise I have no total on initialization and have no bar

total field has pub visibility. You can directly modify it's value.
https://github.com/clitic/kdam/blob/51e6c7727a9c96750b1add3c4fda24aad80c566a/kdam/src/std/bar.rs#L62

Oh nice!


Merge sequential fields with common prefix and same size to arrays

Symbolic fields names in registers make it more complicated to create generic abstractions which work with numerical indices. As an example, the ODR register in the STM32 GPIO peripheral is composed of 16 bits, and setting a pin requires passing in a struct to the write function. I've been experimenting with creating that struct at comptime, but it doesn't seem very elegant.
One way to simplify this would be what svd2ada does when generating fields, which is to generate an array of fields if subsequent fields have the same size and share a common prefix, see here for an example of the resulting code.

To clarify the common prefix a bit more, it would probably also make sense to check if it is followed by a digit, especially the MSP430 SVD files seem to use a lot of common prefixes.

After further experiments it unfortunately seems that it is not possible to have arrays in extern structs where the element sizes are not multiple of 8, not sure if the array approach would work at all.

Could you explain some of the use cases you're wanting to see? I can imagine some, but I'm sure I'm missing context. I'll share some of my thoughts:
I understand that the struct pattern is less elegant in some scenarios, but it has two qualities:

the struct corresponds with mutating multiple fields in a single register read/write (in the modify() method)
declarative nature improves readability

It does make something like iterating GPIO bitfields more difficult, it can be done with comptime and a wrapping function, but there's also something like StaticBitSet that you can cast to to get an array-like interface.

it is not possible to have arrays in extern structs where the element sizes are not multiple of 8

it is also not possible to have arrays of bitfields in a packed struct. Not sure if there are any special cases

generate an array of fields if subsequent fields have the same size and share a common prefix

I've explored incorporating convention parsing before and the problem with it is when you automate it completely, it doesn't scale:

not everyone uses the same conventions (slightly different usage means shotgun code)

you either have to edit SVD/ATDF or regz to deal with nonconforming patterns

confusing in this specific scenario because SVD can communicate an array of fields, so now there's two ways to do things: naming conventions that regz specifically supports, and the SVD spec itself

Instead I plan to automate importing the different xml registers schemas, and then have tools for refactoring the register structure that provide suggestions that the user explicitly opts in to (as well as manual edits ofc), so an interactive, semi-automatic process. With suggestions for type deduplication, repeated fields, etc, we could improve the generated code, user experience of bringing up a chip, and share these benefits with other communities.

Thanks for the reply! I'm currently working on yet another iteration of an embedded driver library, this time using Zig (after C++ and Ada), it's very much work in progress, but seems very well suited to do in Zig because of the metaprogramming capabilities: https://gitlab.com/40hz/zig/ezdl
While working on the Ada version, I realized that it would make sense to create MCU specific wrappers based on collections of peripherals which are shared between the different MCUs, e.g. on STM32. As an example, using comptime in Zig, this is a GPIO layer which works with duck typing: https://gitlab.com/40hz/zig/ezdl/-/blob/main/src/stm32/peripherals/gpio_v2.zig
Creating support for a new MCU is then quite easily done by adding a new wrapper: https://gitlab.com/40hz/zig/ezdl/-/blob/main/src/stm32/mcus/stm32f072x.zig
The array approach allows for things like GPIOs to use simple integers on the high level API.
I do like the approach to add a refactoring step though, I think that would help with more tricky cases like MSP430, where the definitions are not really usable out of the box (e.g. encoding the peripheral name in the field name).

Let me close this issue, as it's not going to work, looking forward to the postprocessing appoach!

That's an awesome project! Chime in anytime because I want to make device support and writing drivers enjoyable.
Doing a bit more thinking, instead of using the bitset in the standard library, there's precedence for an embedded version (we need a volatile pointer), it'll be part of the mmio namespace in microzig, and we can have something like a BitArray for single bit fields, and FieldArray for multi-bit, repeated fields. Then all you'd have to do to get them is define it in the schema properly. Looking forward to putting that together :)

A note here:
packed struct { bool, bool, bool, bool, bool, bool, bool, bool }

is a thing and is an 8 bit "array" of integers, that you can index with comptime known indices

That's an awesome project! Chime in anytime because I want to make device support and writing drivers enjoyable.

Thanks :) ezdl is in this half experimenting, half doing some real stuff phase, so far I've been able to take it  much further than with C++ or Ada. I'll definitely check how to contribute to Microzig, it has some nice traction and better out of the box experience.


Please make hiding top bar optional

I love your theme! Please make the hiding top bar configurable - I really would love to disable this ;-)

+1 😊

I want to do this but I likely won't be adding settings to the theme for a while. Feel free to comment out lines 937-953 in the CSS in the meantime
https://github.com/gavinmn/logseq-luma/blob/e0ec83f41be467aea334781d48e1173008b587f3/custom.css#LL937-L953C2

@gavinmn no problem. I forked your repo and commented this out. If anyone want this disabled they can use this line in their custom css:
@import url('https://hphoeksma.github.io/logseq-luma/custom.css');


Safari Mobile keeps virtual keyboard open on submit

After the CardElement field is filled out, hit Pay, you will see that it triggers the blur (since that is where the alert test is to see if the field actually blurs). In Safari Mobile, the way to make the virtual keyboard disappear is hitting the Done button or causing the focused field to blur. If a user hits the Pay button in the window, (without hitting the done first, which is very normal), the virtual keyboard should disappear, since the field is blurred. Not sure how to fix this issue after some long hours on it.
Tested on Safari mobile on iPhone. Here's a fiddle showing the issue.

Hi @MovingGifts, thanks for your report! I just wanted to add a note here saying we are aware of this and considering ways to resolve it.
The problem comes from some odd Safari Mobile behavior. When switching focus between an iframe and a parent document, blur events in the iframe don't reliably get fired.
We know of one possible fix: in the click handler for the pay button, add code to re-focus and re-blur the element after the form is submitted, which will force the keyboard to hide. Here's an updated version of your fiddle that works for me on Mobile Safari.
We are reluctant to put this fix into the library code, because applications may have their own complex focus or animation logic that would get messed up by this re-focus and re-blur. But if it works for your use-case, adding this to your integration should get rid of this problem.

Hi @asolove-stripe, the possible fix shown in your fiddle works correctly (it hides the mobile safari virtual keyboard on form submit). Thanks for providing a workaround solution to this issue.


Support 301 redirects

What/Why?
Adds a lookup for existing 301 redirects on a Route and redirects as appropriate.
⚠ this changes the schema of the data stored in KV, so perhaps we should mark the keys with a v2_?
Testing
Confirmed that both manual and entity-targeted redirects work on a real store, and that existing Route functionality is unaffected.

Need to fix types/linting

Thanks @chanceaclark for helping me fix up the types. This is ready for review.

The way I did it in the past @bookernath  was to do a v2_ prefix, and then a few days later remove it. It's not perfect, you could still have stale data if the routes have never been revalidated in that time, but don't see a strong reason not to do it.

@christensenep ♻


False warnings about rule subsummation

For example, I have these rules:
%s A

%%

// match anytime
"a"    push_state(A);
// match only in state A
<A>"b" pop_state();
// match in any state besides A
"b"    printf("b found");

When I compile, it would produce this warning:
file.l:line: warning: rule cannot be matched because a previous rule subsumes it,
perhaps try to move this rule up?

I think it's wrong because the second rule subsumes the third one only when the A start condition is on. The program works as intended though.

You're using an inclusive start condition state A, which means that both the INITIAL state and the A state are active to match the third rule for "b".
This means that the third rule is subsumed by the second rule.
Perhaps you meant to use an exclusive start condition state:
%x A

Hmm yeah, there's no issue with the states 🤔
Actually, the behaviour I wanted to achieve is more like ‘flags’. Perhaps, it should be a different start condition type.
%f A

%%

// matches in state A or any other.
"a"       push_state(A);
// matches in state A only.
<A>"b"    printf("b A");
// matches in any state but A.
"b"       printf("b ^A");

They work like that: if there are two patterns <x>y and y where x is a flag start state then the first one matches when the state is on and the second one matches when the state is off.
It may come in handy when you have a long list of rules and want to change them for a little time without copying all the rules for the new exclusive state.
Nevertheless, this behaviour can be easily obtained by using boolean variables and some ifs:
%f A

%%

"a"       push_state(A);
"b"       {
  if (flagA) printf("b A");
  else printf("b ^A");
}

Being able to write these flags on the left is just handy though not really necessary. I'll go on with the ifs.

// matches in state A or any other.
"a"       push_state(A);
// matches in state A only.
<A>"b"    printf("b A");
// matches in any state but A.
"b"       printf("b ^A");

You can already do this by making start condition state A exclusive with %x A for the example above. If you want to keep A inclusive, then you can use negation (which does not exist in Flex but only RE/flex) to remove certain start condition states from rules. For example:
// matches in state A only.
<A>"b"    printf("b A");
// matches in any state but A.
<^A>"b"       printf("b ^A");

One more last thing: avoiding problems with start condition states is important. At least we get warnings about rule subsumption, like Flex does. To better understand what you were hinting at in your last example:
%f A

%%

"a"       push_state(A);
"b"       {
  if (flagA) printf("b A");
  else printf("b ^A");
}

In this case a mechanism with flags can help as you point out, without using start condition states. Note that you can declare such flags in your lexer class defined with %class and initialized with %init.


android notif: Set a distinct vibration pattern

For detailed discussion of choosing this particular pattern, see:
https://chat.zulip.org/#narrow/stream/48-mobile/topic/notification.20vibration.20pattern/near/1284530
This also makes the first time we're discarding an old notification
channel / category and making a new one, in order to change the
settings that can't be changed on an existing channel.  So add a bit
of infrastructure to handle that: just look for channels that aren't
at the current channel ID, and delete them.
Before putting this in a prod release, I'd like to bunch it up with
setting a distinct notification sound too, to avoid repeatedly
clobbering users' settings.  But it's fine to do that for us few
alpha users, so that isn't an obstacle to merging this now.
Also delete the comments about settings being added recently and not
necessarily applying, because with the new channel ID they will now
always have been applied.
Fixes: #5136

Thanks, LGTM! Merged.