Prepared statements

Previously discussed here: https://github.com/vlcn-io/typed-sql/pull/4#pullrequestreview-1526729002
We need to think on the ways to implemented prepared statements in typed-sql. The good API should be:

simple: user should have to worry about preparing queries by default, yet receive all the performance benefits of the prepared statements
flexible: user might want to explicitly control when queries are prepared for niche use cases
efficient: preparing statements should not leak memory
modern: we might want to consider supporting observable-like reactive patterns in sql parameters instead of manually binding them before each call

Here I want to explicitly discuss prepared statements in the executional part of typed-sql. Meaning if a user only uses query generation, they can already do prepared statements the way they want:
const query = sql`...`;
db.prepare(query.sql).all(query.params); // better-sqlite3 example

We want to provide an opinionated way to prepare and run SQL queries that makes common use cases simple and complex cases possible.
The API
Given that we need to prepare a statement to execute it, we can save this work to not be done twice.
const query = sql`...`;
const data = await query; // prepares & executes
// ...
const data = await query; // just executes

This satisfies simple requirement as there will be no difference in code with prepared statements vs without them from user's perspective. To satisfy flexibility, an advanced user might explicitly request preparing a statement:
const query = sql`...`;
await query.prepare();
// ...
const data = await query; // just executes

Scoped Prepare
In this approach prepared statements are tied to their query and its scope.
{
  const query = sql`SELECT * FROM foo`;
  const data = await query; // prepares & executes
}
{
  const query = sql`SELECT * FROM foo`; // same query
  const data = await query; // prepares (again) & executes
}

This assumes that better-sqlite3 or whatever provider is used does the same. Currently I found no evidence of this being the case. sqlite3_finalize should be called to free the memory from a prepared statement. From looking at the code I've found that it is called only when using exec, closing the database or incorrectly suppling multiple queries. So, maybe SQLite does some kind of automatic cleanup? Or maybe the memory impact from the prepared statements is so negligible it can be overlooked? If this is the case, the next approach might be favoured over this one.
SQL Cache Map
Another thing we can do is to maintain the cache map of all the used queries. This way we can quickly lookup a correct prepared statement from the cache to be used across multiple scopes.
{
  await sql`SELECT ${1}`; // prepares and caches as `SELECT ?`
}
{
  await sql`SELECT ${2}`; // finds `SELECT ?` is cache, quickly executes
}

Let's look at a common way people write their DB functions:
// ...
async function getUserByID(id: number) {
  return await sql`SELECT * FROM users WHERE id = ${id}`.then(x => x[0]);
}
// ...

Note, that here the query is always in its own scope and is recreated on every call. Putting stuff in the global scope can get really ugly really fast.
const getUserByIDQuery = sql`SELECT * FROM users WHERE id = ${/* what do we put here? */}`; // this one will be discussed below

async function getUserByID(id: number) {
  return await getUserByIDQuery.then(x => x[0]);
}

In this case having a global cache that is handled internally by typed-sql can bring huge benefits.
What shall we do to satisfy efficient requirement then? If the cache is global when (or should at all) we evict it? Maybe LRU or MFU or similar approaches would be appropriate here?
Observable Parameters
Given the current state of JS, observable and reactive patterns are everywhere and for a good reason. We need to think how we can integrate this behaviour with query parameters. This needs to be framework/library agnostic, yet we don't want to write our own RxJS just for this features.
I think we should integrate with the most common observable interfaces without implementing our own (similar to what we do with coercers). Some implementations we should definitely consider supporting: Solid Stores, Svelte Stores, RxJS observables, plain JS functions and maybe there is something similar in React?
const name = observable("Alice"); // this is pseudo-function just for demo purposes

const query = sql`SELECT * FROM users WHERE name = ${name}`;
await query; // returns Alice's data
//...
name.set("Bob"); // this may be triggered somewhere in UI
//...
await query; // next call to the query returns Bob's data

This declarative approach would play much nicer than the imperative call to the .bind function in many modern scenarios. We will support .bind though. The observables would be in addition to that.

So, @tantaman, what do you think? Maybe we should invite more people to discuss this?

Sounds great, going public is a big step. :)
I'm still working on prepared statements. I've been a bit busy lately, so things don't move as fast as I would want. I'll make a PR as soon as I have caching fully working (without eviction). Then we can do some tests in different environments and discuss the eviction strategy.


Error: waiting for map.

Hello,
Thanks for your nice package.
Well, after launching all necessary nodes, ready to build a new map,
I launch your package. Ok
But I have waiting for a map..
An idea?
Map server isn't working because it's a rtabmap one..
?

Hi,
Could you list the exact nodes that you have launched and the complete output that your obtain?
Thank you.

Hello Victor,
Here is my working terminals :
https://pastebin.com/gjKzYBna
an idea ?

Hi,
As you said, it seems that the exploration pkg is waiting for the map that the RTABmap should provide.
I can't reproduce your issue, but my advice is the following:

Try to isolate the problem (launch the minimal you need to get a map with RTABmap)

Check that all sensors are working properly:
The message "The origin for the sensor at (0.04, 0.00, 0.43) is out of map bounds. So, the costmap cannot raytrace for it." Is telling that there is a problem with the sensor configuration, maybe the transforms, the header, the initialization of the map... I can't tell. I would suggest you to check tools like "rqt_graph" and "rqt_tf_tree"

I hope it helps.

Hi Victor,
Please could you confirm that cam_exploration works with rtabmap 2D too ??
i dosn't work with pointclouds !
Thanks Victor.
Vincent

As far as I know,
This package performs the exploration on a 2D map (It uses the pointcloud to create a 3D map, but it explores on the projection of this 3D map).
So yes, it should work.


Error message for portrait mode of smartphones #search

When searching w/o searchterms, you get an error message.
Improve the look&feel of error message for portrait mode of  smartphones -> see screenshot

I removed the search result part because that is already a known problem. We will take care of that.


News section help out

I am willing to help out with the "NEWS" and spread the word of any announcements, update of any kind.
I will do it for FREE.
I just want for me and all the community to be aware of the coming updates.
Contact me<EMAIL_ADDRESS>telegram: @lamTheM8 (https://t.me/lamTheM8)
Best. Go Monyx GOOOO
The Dude

The trading platform on mobile is now fix..thank u @monyxcoin

@IamTheM8 I'll let you know once we start getting new information, thanks.


[rooch-framework] define address types for ETHAddress, BTCAddress, NOSTRAddress and ROHAddress.

Define address types in Move following naming of ChainID: https://github.com/satoshilabs/slips/blob/master/slip-0044.md.
Should be consistent with the address_mapping Move feature.
Address types:

ETHAddress: for custom Ethereum address types.

[x] #652

BTCAddress: for custom Bitcoin address types.

[x] #650

ROHAddress: for custom Rooch address types.

[x] #661

NOSTRAddress: for custom Nostr address types.

[x] #662

address: for built-in Move address types, default to 32 bytes.

Discussion:
https://github.com/rooch-network/rooch/pull/610#discussion_r1291197294
References:
https://github.com/starcoinorg/starcoin-framework/blob/1f8ebec924fe8768888b02975614650c4a1c63c9/sources/Signature.move#L46

Close it as completed bitcoin and ethereum address definitions.


Remove AddressBook and ReadOnlyAddressBook

Part of #163
Currently, there still exists the AddressBook and ReadOnlyAddressBook classes in the model layer. Since this is no longer used, let's remove them.

Delay for the future after storage classes is done


cannot load such file -- mercenary/program (LoadError)

Is there a Fix for this issue works fine on gitHub but am unable to run the same locally
WARN: Unresolved specs during Gem::Specification.reset:
redcarpet (~> 3.1)
jekyll-watch (~> 1.1)
classifier-reborn (~> 2.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
/usr/local/lib/ruby/gems/2.1.0/gems/mercenary-0.3.4/lib/mercenary.rb:20:in program': cannot load such file -- mercenary/program (LoadError) 	from /usr/local/lib/ruby/gems/2.1.0/gems/jekyll-2.5.0/bin/jekyll:20:in <top (required)>'
from /usr/local/bin/jekyll:23:in load' 	from /usr/local/bin/jekyll:23:in '

But for me it didn't help at all. Same error.

@icaroabreu https://github.com/jekyll/jekyll/issues/3084

Have you installed the mercenary package of ruby? For me sudo apt-get install ruby-mercenary fixed the problem. (Using Ubuntu 14.10.)


New-FreshServiceConnection - Fails to run on macOS (and presumably any non-Windows OS)

New-FreshServiceConnection references the global variable "$FreshServiceConfigPath" (defined in FreshservicePS.psm1) which itself references "$env:APPDATA". "$env:APPDATA" is an environment variable that only exists on Windows. Since it doesn't exist, it generates the path string as "/FreshservicePS/FreshservicePS.config" which tries to write to the root directory and this fails due to permissions (as expected).
Expected Behavior
New-FreshServiceConnection runs and creates config file in appropriate directory
Current Behavior
New-FreshServiceConnection fails due to lack of $env:APPDATA directory on macOS
Possible Solution
Include logic to detect non-Windows systems and reference an appropriate environment variable to store the config file in a suitable location.
Steps to Reproduce (for bugs)

Install module in PowerShell Core on macOS
Run New-FreshServiceConnection cmdlet with required parameters
Error occurs (due to attempting to write to the root directory)

Context
Would like to actually use the module on any system.
Your Environment

Module version used: FreshservicePS 0.1.3
Operating System and PowerShell version: macOS 13.5.1, Powershell Core 7.3.6

Code merged.  Thank you for the contribution.

Code merged. Thank you for the contribution.

No problem @rasimmers .
Will you be updating it on the PSGallery as well?


Improve Mobile UI

I've never looked at the app in Mobile, but on Survey #1 someone indicated it could use some improvement.

Here's at least one thing to handle if testing doesn't reveal other problems (Survey #1 free response):

I wish it didn't show the "player disconnected" popup alert every time my phone goes dark/sleeps

I think Survey 2 should have Mobile Improvements as a section we gather interest on, so that we can decide how deeply to investigate this.

Low priority according to the survey.


docs(provider/kubernetes): document --only-spinnaker-managed flag

Added documentation to the kubernetes account add/edit commands to set the only-spinnaker-managed flag. Related to https://github.com/spinnaker/halyard/pull/1067.

@mnalsup This page is generated. Doc for --only-spinnaker-managed should be added automatically.


Pin all the dependencies

Currently, most of the mlem dependencies aren't being pinned to exact versions, and some of them aren't being pinned at all. Because of this, mlem can and will[^1] break unexpectedly.
Consider using a dependency lock file (e.g. poetry.lock) or manually pinning all the dependencies on setup.py if that makes more sense.
[^1]: As it did today, and will remain broken until https://github.com/iterative/mlem/pull/349 is released; typer wasn't pinned, and the last release included expected breaking changes.

(Related to this thread on Discord)

Yes, MLEM will break from time to time with no limitations. Also curious why DVC doesn't limit upper versions for install_requires. cc @skshetry
MLEM is a library, so we need to maintain limitations to be as broad as possible. To my knowledge, this means we need to keep lower and upper bounds for each library. Do you know some holistic way to find out lower and upper limits, @0x2b3bfa0? I guess that includes taking a package, installing all versions, and figuring out which ones let MLEM work. Then repeat for all packages. Doing this from time to time, we could get the exact bounds for each package.

We deliberately dont pin exact version because of what @aguschin said. I set upper bounds for some of them, but this does not guarantee there will be no errors like that. It makes sense to set upper bounds for major versions, but sometimes maintainers break compatibility even in minor releases. I don't know what is the best approach here - set upper bounds, update them with renovate and hope everything will work or just fix errors as they come

If you want to constrains versions as loosely as possible, you may want to follow https://semver.org sanity guidelines: e.g. major version 0 means that a minor version bump can include breaking changes.


Create Posts “20221125-basic-vs-basis”

Automatically generated by Netlify CMS

👷 Deploy Preview for monetaboot processing.

Name
Link

🔨 Latest commit
25f1050807e2d24456765247eabe798e59a4ff6d

🔍 Latest deploy log
https://app.netlify.com/sites/monetaboot/deploys/6380c445617f230009d659e2


Writing source dependencies to a file

So, build tools like ninja have a way to instruct compilers to save a file with dependencies of whatever is being compiled (see https://ninja-build.org/manual.html#ref_headers), because it's easier to have the compiler output the files it touched than having to specify them up front. The logic is that the first compile needs to build everything anyway, but subsequent builds may not need to.
It would be nice if fontc had something similar :) that would make writing build system scripts more pleasant.

For context, fontc supports incremental compilation when IR is written to disk, including finer grained increments than whole files (crucial for .glyphs). For example, if you compile a .glyphs file, change one glyph, and compile the updated .glyphs file the compile should (modulo bugs) only rebuild that glyph and things that depend on that glyph such as the final glyf table, any glyph that uses that glyph as a component, etc.
We don't use separate executables and we don't explicitly write down the graph. The user isn't meant to have to care.

make writing build system scripts more pleasant.

Is "supports incremental compilation" all you need or is there some specific need to write down the dependency graph?

My concern is build systems, which maintain their own dependency graph. Consider a rule like
font.ttf: my.designspace
    fontc $input -o $output

How would I get the build system to run fontc again when a constituent UFO source changes? fontc doesn't get a say in the matter at this level. I have to list all the underlying source files for the build system, somehow :/ This problem doesn't exist for self-contained .glyphs files, because updating it will tell the build system all it needs, but as soon as external feature files come into play, we're back again.

I see your point but I tend to think it would be weird for the compiler to take on this job.
What is it you are trying to build exactly, what scope does the "build system" take on?
Running with guesses at the answer to ^, perhaps you could have an orchestrator whose job it is to write ninja file? - we do that for nanoemoji and found it quite effective. Something that speaks designspace, e.g. norad, could presumably help to enumerate the files of a designspace.
It will also play out slightly oddly that both ninja and fontc want to handle concurrency. I suppose you'd want to decide who you want to do that and set limits on the other.

Yes, I can discover file dependencies myself and write the build files. My thought was doing so is costly, and it would be nice if it's done only once, but alas.

I think Rod's argument would be, since fontc already takes care of incremental builds and concurrency, one should not need to use a separate build tool like make or ninja to control fontc execution, but may simply run it directly, or if you have to use such build tool you make the target calling fontc a forced one or .PHONY such that it runs all the time, and then fontc takes care of rebuilding only if needed.
Though it would be nice if fontc could optionally emit a depfile similarly to how gcc/clang do for C/C++ headers, especially when sources are scattered in different files like with designspaces or included feature files. Who else better than the font compiler itself knows what these releationships are for a given build target.

The problem with always-run targets would be that all subsequent tasks would be run, too, defeating the purpose of a build system, unless you worked around that, somehow.

I wouldn't make the target always-run, I would make a tool to list sources and use that in the make rule, similar to how Noto Emoji builds. Ex:
FILES_IN_MY_DESIGNSPACE = $(ls_designspace my.designspace)
...
font.ttf: $(FILES_IN_MY_DESIGNSPACE)
    fontc --source my.designspace

https://github.com/googlefonts/noto-emoji/blob/main/Makefile does this sort of thing a fair bit.

Who else better than the font compiler itself knows what these relationships are for a given build target.

For a .glyphs file the answer from the pov of any tool that reasons about whole files is simple. For designspace ... is it common it's not just "all files in some directory"?

Yes, just listing the files works. I'm interested in going to ninja-levels of efficiency by collecting implicit dependencies as a side-effect of just running the command :) It would simply be nice to avoid I/O where possible, especially on Windows.

Ninja is designed to work with a higher level tool that generates the ninja file but that doesn't seem like it's a job for fontc, rather I would expect ninja to run fontc. I imagine we'd want a tool to generate a ninja file, including materializing the list of files required to build the font. If that tool emits a file with directory mtimes then a nop build just reads those and confirms nothing changed. If a directory changed you rewrite the ninja file and update it if it changed before kicking off ninja.
Have you tried something along these lines and found it to be too much IO for Windows?

I haven't done that, and my idea is to avoid doing that and use what ninja gives us.
Ninja would run fontc rather than the other way around, and remember the deps the compiler gives it for next time, so that the build recipe is just the input DS and output TTF and the command to get from one to the other. The ninja manual says

Consider: if the file has never been compiled, it must be built anyway, generating the header dependencies as a side effect. If any file is later modified (even in a way that changes which headers it depends on) the modification will cause a rebuild as well, keeping the dependencies up to date.

My understanding is that you run a generator once and then ninja figures out what it has to run on each invocation, similarly how you run cmake/meson setup once and then call cmake --build/meson compile after each source change. Therein lies my desire to signal to ninja which files it has to check, rather than enumerating them on each invocation. That would surely work, but it would waste IO.

I haven't done that, and my idea is to avoid doing that and use what ninja gives us.
Ninja would run fontc rather than the other way around

That is what I am suggesting also: you would have a tool to generate a ninja file that invokes fontc.

remember the deps the compiler gives it for next time

I believe this will trip on new files. If your ninja rule says something like a.glif and b.glif are dependencies then when you add c.glif and rebuild it may think nothing has changed. By having your ninja generator tool detect that it needs to rebuild the ninja file this case Just Works.

In re-reading I think a ninja-generator is a valid thing to want but its not part of fontc, rather it's a separate higher level thing that usees fontc.


Add a hover style selector

This adds a hover style selector to the Style type. It can be used like:
style(|s| s.hover(|s| s.scroll_bar_color(Color::ROYAL_BLUE)));

Currently it only works with the properties defined by the prop! macro.

This is the API I want for all hover/modifier styles. This would make it really easy to make a single style that can be applied to a view that would be fully reactive. Reactivity using some predefined colors/styles would become beautifully trivial.


🐛 BUG: Error: Failed to publish your Function. Got error: Script startup timed out.

What version of Wrangler are you using?
2.0.6
What operating system are you using?
Cloudflare Pages, Linux
Describe the Bug
I'm getting an error while hosting project on Cloudflare Pages but sometimes it work:
Error: Failed to publish your Function. Got error: Script startup timed out. This could be due to script exceeding size limits or expensive code in the global scope.

It's annoying and wondering where is the problem.
Can't duplicate that locally on MacOS.
Run commands:
"build": "npm-run-all -p build:*",
"build:css": "sass app/:app/ --style=compressed",
"build:remix": "cross-env NODE_ENV=production remix build",
"build:worker": "esbuild ./app/entry.worker.ts --outfile=./public/entry.worker.js --minify --bundle --format=esm --define:process.env.NODE_ENV='\"production\"'",

Extended log:
01:16:50.635 | NPM modules installed using Yarn
-- | --
01:16:50.923 | Installing Hugo 0.54.0
01:16:51.602 | Hugo Static Site Generator v0.54.0-B1A82C61A/extended linux/amd64 BuildDate: 2019-02-01T10:04:38Z
01:16:51.606 | Started restoring cached go cache
01:16:51.631 | Finished restoring cached go cache
01:16:51.815 | go version go1.14.4 linux/amd64
01:16:51.836 | go version go1.14.4 linux/amd64
01:16:51.841 | Installing missing commands
01:16:51.841 | Verify run directory
01:16:51.842 | Executing user command: yarn build
01:16:52.080 | yarn run v1.22.4
01:16:52.123 | $ npm-run-all -p build:*
01:16:52.582 | $ sass app/:app/ --style=compressed
01:16:52.588 | $ cross-env NODE_ENV=production remix build
01:16:52.607 | $ esbuild ./app/entry.worker.ts --outfile=./public/entry.worker.js --minify --bundle --format=esm --define:process.env.NODE_ENV='"production"'
01:16:52.782 |
01:16:52.783 | public/entry.worker.js  3.4kb
01:16:52.783 |
01:16:54.344 | Building Remix app in production mode...
01:16:57.605 | Built in 3.2s
01:16:57.635 | Done in 5.56s.
01:16:57.651 | Finished
01:16:58.092 | 🚧 'wrangler pages <command>' is a beta command. Please report any issues to https://github.com/cloudflare/wrangler2/issues/new/choose
01:16:58.929 | Compiled Worker successfully.
01:16:58.944 | Validating asset output directory
01:16:59.599 | Deploying your site to Cloudflare's global network...
01:17:03.068 | Parsed 1 valid header rule.
01:17:05.169 | Success: Assets published!
01:17:06.088 | Error: Failed to publish your Function. Got error: Script startup timed out. This could be due to script exceeding size limits or expensive code in the global scope.

Sucess log:
01:13:12.980 | NPM modules installed using Yarn
01:13:13.279 | Installing Hugo 0.54.0
01:13:14.001 | Hugo Static Site Generator v0.54.0-B1A82C61A/extended linux/amd64 BuildDate: 2019-02-01T10:04:38Z
01:13:14.006 | Started restoring cached go cache
01:13:14.033 | Finished restoring cached go cache
01:13:14.224 | go version go1.14.4 linux/amd64
01:13:14.248 | go version go1.14.4 linux/amd64
01:13:14.253 | Installing missing commands
01:13:14.253 | Verify run directory
01:13:14.253 | Executing user command: yarn build
01:13:14.498 | yarn run v1.22.4
01:13:14.545 | $ npm-run-all -p build:*
01:13:15.025 | $ sass app/:app/ --style=compressed
01:13:15.042 | $ cross-env NODE_ENV=production remix build
01:13:15.072 | $ esbuild ./app/entry.worker.ts --outfile=./public/entry.worker.js --minify --bundle --format=esm --define:process.env.NODE_ENV='"production"'
01:13:15.269 |
01:13:15.270 | public/entry.worker.js  3.4kb
01:13:15.270 |
01:13:16.837 | Building Remix app in production mode...
01:13:19.879 | Built in 3s
01:13:19.908 | Done in 5.42s.
01:13:19.925 | Finished
01:13:20.394 | 🚧 'wrangler pages <command>' is a beta command. Please report any issues to https://github.com/cloudflare/wrangler2/issues/new/choose
01:13:21.247 | Compiled Worker successfully.
01:13:21.262 | Validating asset output directory
01:13:22.152 | Deploying your site to Cloudflare's global network...
01:13:25.728 | Parsed 1 valid header rule.
01:13:27.499 | Success: Assets published!
01:13:29.709 | Success: Your site was deployed!

We had a similar issue a while ago, could it be related? https://github.com/cloudflare/wrangler2/issues/771#issuecomment-1099537855

@threepointone using remix version 1.5.1 and serverBuildTarget: 'cloudflare-pages'

This usually means you have too much work in the global scope of your application. There is a limit set on how long a script can take to initialize, and this is unfortunately not configurable. Try to move work into your request/response handlers.


Can't build on linux

I am trying to run Install.sh and have got an error
XBuild Engine Version 12.0
Mono, Version <IP_ADDRESS>
Copyright (C) 2005-2013 Various Mono authors
Build started 1/7/2015 2:55:04 AM.

Project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.sln" (Build target(s)):
Target ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
Target Build:
Project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/MonoDevelop.Addins.Tasks.csproj" (default target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: AnyCPU
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target CoreCompile:
Skipping target "CoreCompile" because its outputs are up-to-date.
Target _CopyDeployFilesToOutputDirectoryPreserveNewest:
Skipping target "_CopyDeployFilesToOutputDirectoryPreserveNewest" because its outputs are up-to-date.
Done building project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/MonoDevelop.Addins.Tasks.csproj".
Project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.csproj" (default target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: AnyCPU
Target ResolveMonoDevelopLocations:
MDConfigDir:   /home/sergey/.config/MonoDevelop-5.0
MDAddinsDir:   /home/sergey/.local/share/MonoDevelop-5.0/LocalInstall
MDBinDir:      /usr/lib/monodevelop/bin
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target _MDGenerateDependencyAttributes:
Skipping target "_MDGenerateDependencyAttributes" because its outputs are up-to-date.
Target CoreCompile:
Skipping target "CoreCompile" because its outputs are up-to-date.
Target _CopyDeployFilesToOutputDirectoryPreserveNewest:
Skipping target "_CopyDeployFilesToOutputDirectoryPreserveNewest" because its outputs are up-to-date.
Done building project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.csproj".
Done building project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.sln".
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.8517760
XBuild Engine Version 12.0
Mono, Version <IP_ADDRESS>
Copyright (C) 2005-2013 Various Mono authors
Build started 1/7/2015 2:55:05 AM.

Project "/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.csproj" (InstallAddin target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: AnyCPU
Target ResolveMonoDevelopLocations:
MDConfigDir:   /home/sergey/.config/MonoDevelop-5.0
MDAddinsDir:   /home/sergey/.local/share/MonoDevelop-5.0/LocalInstall
MDBinDir:      /usr/lib/monodevelop/bin
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target _MDGenerateDependencyAttributes:
Skipping target "_MDGenerateDependencyAttributes" because its outputs are up-to-date.
Target CoreCompile:
Skipping target "CoreCompile" because its outputs are up-to-date.
Target _CopyDeployFilesToOutputDirectoryPreserveNewest:
Skipping target "_CopyDeployFilesToOutputDirectoryPreserveNewest" because its outputs are up-to-date.
Target CreatePackage:
Created package: bin/Debug/MonoDevelop.AddinMaker_1.1.0.mpack
Target InstallAddin:
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/bin/Debug/MonoDevelop.Addins.targets: error : Error executing task Exec: Task does not have property "StandardOutputImportance" defined
: error : Error building target InstallAddin: Object reference not set to an instance of an object
MonoDevelop.AddinMaker.csproj: error : Object reference not set to an instance of an object
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.TaskFinishedHandler (Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.TaskFinishedHandler (System.Object sender, Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.BuildEvent.ExecuteFinishedHandler (Microsoft.Build.Framework.BuildStatusEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.PopEvent[ProjectFinishedEventArgs] (Microsoft.Build.Framework.ProjectFinishedEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.PopEvent[ProjectFinishedEventArgs] (System.Object sender, Microsoft.Build.Framework.ProjectFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.EventSource.FireProjectFinished (System.Object sender, Microsoft.Build.Framework.ProjectFinishedEventArgs pfea) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.LogProjectFinished (Microsoft.Build.BuildEngine.Project project, Boolean succeeded) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.EndProjectBuild (Microsoft.Build.BuildEngine.Project project, Boolean succeeded) [0x00000] in :0
at Microsoft.Build.BuildEngine.Project.Build (System.String[] targetNames, IDictionary targetOutputs, BuildSettings buildFlags) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.BuildProjectFileInternal (System.String projectFile, System.String[] targetNames, Microsoft.Build.BuildEngine.BuildPropertyGroup globalProperties, IDictionary targetOutputs, BuildSettings buildFlags, System.String toolsVersion) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.BuildProjectFile (System.String projectFile, System.String[] targetNames, Microsoft.Build.BuildEngine.BuildPropertyGroup globalProperties, IDictionary targetOutputs, BuildSettings buildFlags, System.String toolsVersion) [0x00000] in :0
Build FAILED.
Errors:
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.csproj (InstallAddin) ->
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/bin/Debug/MonoDevelop.Addins.targets (InstallAddin target) ->
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/bin/Debug/MonoDevelop.Addins.targets: error : Error executing task Exec: Task does not have property "StandardOutputImportance" defined
: error : Error building target InstallAddin: Object reference not set to an instance of an object
MonoDevelop.AddinMaker.csproj: error : Object reference not set to an instance of an object

 0 Warning(s)
 3 Error(s)

Time Elapsed 00:00:01.3823090
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.TaskFinishedHandler (Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.TaskFinishedHandler (System.Object sender, Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.BuildEvent.ExecuteFinishedHandler (Microsoft.Build.Framework.BuildStatusEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.PopEvent[BuildFinishedEventArgs] (Microsoft.Build.Framework.BuildFinishedEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.BuildFinishedHandlerActual (Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.BuildFinishedHandler (Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.BuildFinishedHandler (System.Object sender, Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.EventSource.FireBuildFinished (System.Object sender, Microsoft.Build.Framework.BuildFinishedEventArgs bfea) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.LogBuildFinished (Boolean succeeded) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.EndEngineBuild (Boolean succeeded) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.BuildProjectFile (System.String projectFile, System.String[] targetNames, Microsoft.Build.BuildEngine.BuildPropertyGroup globalProperties, IDictionary targetOutputs, BuildSettings buildFlags, System.String toolsVersion) [0x00000] in :0
at Mono.XBuild.CommandLine.MainClass.Execute () [0x00000] in :0
at Mono.XBuild.CommandLine.MainClass.Main (System.String[] args) [0x00000] in :0
Build succeeded.
Errors:
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.AddinMaker.csproj (InstallAddin) ->
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/bin/Debug/MonoDevelop.Addins.targets (InstallAddin target) ->
/home/sergey/Projects/MonoDevelop/MonoDevelop.AddinMaker/MonoDevelop.Addins.Tasks/bin/Debug/MonoDevelop.Addins.targets: error : Error executing task Exec: Task does not have property "StandardOutputImportance" defined
: error : Error building target InstallAddin: Object reference not set to an instance of an object
MonoDevelop.AddinMaker.csproj: error : Object reference not set to an instance of an object

 0 Warning(s)
 3 Error(s)

Time Elapsed 00:00:01.3868540
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.TaskFinishedHandler (Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.TaskFinishedHandler (System.Object sender, Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.BuildEvent.ExecuteFinishedHandler (Microsoft.Build.Framework.BuildStatusEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.PopEvent[BuildFinishedEventArgs] (Microsoft.Build.Framework.BuildFinishedEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.BuildFinishedHandlerActual (Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.BuildFinishedHandler (Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.BuildFinishedHandler (System.Object sender, Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.EventSource.FireBuildFinished (System.Object sender, Microsoft.Build.Framework.BuildFinishedEventArgs bfea) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.LogBuildFinished (Boolean succeeded) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.UnregisterAllLoggers () [0x00000] in :0
at Mono.XBuild.CommandLine.MainClass.Execute () [0x00000] in :0
at Mono.XBuild.CommandLine.MainClass.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.TaskFinishedHandler (Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.TaskFinishedHandler (System.Object sender, Microsoft.Build.Framework.TaskFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.BuildEvent.ExecuteFinishedHandler (Microsoft.Build.Framework.BuildStatusEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.PopEvent[BuildFinishedEventArgs] (Microsoft.Build.Framework.BuildFinishedEventArgs finished_args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.BuildFinishedHandlerActual (Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger+BuildRecord.BuildFinishedHandler (Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.ConsoleLogger.BuildFinishedHandler (System.Object sender, Microsoft.Build.Framework.BuildFinishedEventArgs args) [0x00000] in :0
at Microsoft.Build.BuildEngine.EventSource.FireBuildFinished (System.Object sender, Microsoft.Build.Framework.BuildFinishedEventArgs bfea) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.LogBuildFinished (Boolean succeeded) [0x00000] in :0
at Microsoft.Build.BuildEngine.Engine.UnregisterAllLoggers () [0x00000] in :0
at Mono.XBuild.CommandLine.MainClass.Execute () [0x00000] in :0
at Mono.XBuild.CommandLine.MainClass.Main (System.String[] args) [0x00000] in :0

Should be fixed in 1565fa03a52cc60207cc956bea969cf093dd02f4


Fix deadlock in host shutdown

The first commit in this PR fixes the deadlock. The rest of the commits are suggestions. I ask that you evaluate them individually.
The deadlock was possible because it was possible for the listener to start before the host is closed, but for the closer-goroutine to start after the host is closed. This is fixed by calling Add outside of the goroutine. The exact same deadlock existed in the gateway in #1178. Add should always be called outside of the goroutine when starting a closer-goroutine.

I know you just made a bunch of PRs, but if you want stuff to be evaluated individually you should make a separate PR for each.

This PR looks good, except for separating the code that closes the listener from the code that creates the listener. Those definitely need to be next to eachother.

Needs rebase, otherwise LGTM. Can confirm that this PR fixes a deadlock that currently exists in the host.

Rebased and also removed the listener closer-coroutine in favor if ThreadGroup.OnStop.

34 comments, a diff size of 40. lol


Labs Topic "Manage Trainable Classifiers" instructions are not given up to the point.

Module: 00
Lab/Demo: 00
Task: 00
Step: 00
Description of issue:
Point 1- Student are able to create Custom Trainable Classifiers whethere on labs its mentioned to wait for 14 days for this activity.
Point 2- Steps to upload Positive and Negative samples is missing.
Point 3- As per Labs instructions SharePoint sites needs to be included as samples, but some sites does not display in the list.
Point 4- Even Github Document has similar details:
https://github.com/MicrosoftLearning/SC-400T00A-Microsoft-Information-Protection-Administrator/blob/master/Instructions/Labs/LAB_AK_01_Lab1_Ex3_Trainable_Classifiers.md
Repro steps:

Thank you for bringing this to my attention. The Trainable Classifiers lab has been updated.


Range input highlight first selected date in next month

Describe the bug
Range input highlight first selected date in next month
To Reproduce
Select date 08/29/2023 first and 10/05/2023 second
Expected behavior
first selected date not selected
Screenshots

OS: [all]
Browser [chrome, safari]
Version [117, 16]

up

please fix this issue for version 4 as well

Up guys, we need this fix for our production app. Can we help you ?


Since the phase plot has changed, what about those values in tables?

@andrew-edwards changed the phase plot to show Rel. Fish. Intensity as (1-spr(t-1))/(1-spr(40%)), so the numerator is now from the year before the denominator. Do the tables (24 and 25) need to be changed to make these comparable? The question may come up as now they don’t line up.

Example: 2020 appears in the plot but the table has it as a blank because it’s defined differently

For the plot, we do now say exactly what the labels refer to so I think we are okay.  And I think the values need to stay in the table as they are.  I'd suggest that we add more to the table captions saying that spawning biomass is at the start of the year and relative fishing intensity is calculated over the entire year (or accumulated and reported at the end of the year), or something similar.  Further, I suggest we ask the SRG if they like the way the phase plot is reported or if they have any suggestions to ease interpretation - never hurts to turn the tide and ask THEM questions, ha!

If okay, with folks I can add caption text.

@aaronmberger-nwfsc I like the way you think because I checked and to change those values would be a nightmare at this stage. the model outputs that ratio as 'SPR' so we would have to re-run the base model mceval at a minimum.

thumbs down to additional mceval - not the way I think - :)

OK, so I'll close this. I just wanted to give everyone a heads-up

Just say in Table captions that biomass and relative fishing intensity both refer to year $t$. Or could just change B0 to $B_t / B_0$ and the final (1-SPR) to (1-SPR$_t$) to be explicit. We haven't used terminology SPR$t$ much, but we do in the phase plot axis (where it's SPR${t-1}$).

Okay, after considering Andy's suggestion I've changed my mind.  The tables are actually correct (you just need to know the definitions - which is why we have a glossary).  For SSB it says beginning of year, so I was thinking of just adding for the definition for fishing intensity that it is across the whole year (i.e., end of year total).  I think we are then covered.  The phase plot is a bit different, but we describe that in the caption.  So I'll only add the timing part to the definition for fishing intensity and then we should be good.

One other thought.. And this is relatively easy to do. Bump the table values down by one row. Redefine the caption and the plot and tables will be directly related without confusion.
So 2020 in the table would have 76.4%, 2019 would have 75.4%, etc.

No, I say keep things defined as year t. Then only the phase plot has the SPR for year t-1.  You'd have to change figures as well if you start changing definitions....

I'm not a fan of that, because the literal interpretation would be fishing intensity in 2020 is 76.4%, but we don't include catch in 2020 so how would we know fishing rates.  I think the glossary thing is the easiest.  Also, the way we have it conforms to the way most people do it.  The only reason this comes up is because of the phase plot.  But we can ask SRG....

It's more fun to also give Chris a thumbs down ;)

Luckily I know how to deal with rejection haha. I'll stop trying to create more work now. Roll with your idea.

Maybe someone who has taken Trevor's R graphics class (or the instructor himself) can come up with a better way than the phase plot to portray such info (i.e., fishing and biomass based reference points at the same time).  The last time a group came up with such a plot the location where they did became the plot name (Kobe, JP) so maybe it may become a Johnson plot!?!


Question: relation to christocracy plugin

How is this related to the plugin here: https://github.com/christocracy/cordova-plugin-background-geolocation
I realize that you built yours based on that one, and both seem to be maintained and been around for years. That other one costs money, this one is free. They have slightly different APIs. But is there anything that one does which this one doesn't do? Does yours also support callbacks on both iOS and Android even when app is not running? The author says he switched to using Android FusedLocationProvider. Does it use background app refresh to try to update the location even when the app has been killed on iOS? I figured maybe the geofencing is more advanced there. But can you please explain the difference for someone considering which one to use?

Hey @EGreg.
So the android version is roughly based on an old version of his plugin but they've diverged quite a bit, and yes the android version also supports callbacks.
The iOS version is a complete re-write in swift, and doesn't share any code with christocracys.
I haven't checked out his version in a  very long time but the main differences are probably:
A.  This means you can also collect data about how the user is moving as well (walking, driving, etc).
B. Both send callbacks. There is no support for out of the box HTTP requests by the plugin, you have to perform them in your JS (this is because the plugin actually keeps your application alive and there is no need for internal HTTP requests).
C. Free.
The reason for this is because when I set out to make this plugin I wanted consistent updates and callbacks for all platforms. Using the significant locations library on iOS poses a serious problem to some use cases where you might not be traveling more than a couple blocks in a long span. So instead of setting up geofences or using significant locations to keep your app alive and save battery life, we just turn off GPS while your still and wake it up when you start moving. Doing this, while your moving at least, you always get updates every X seconds (whatever you asked the plugin) instead of updates after you go a couple blocks and then X seconds after you've triggered the significant location change.

Thank you for answering the questions. I had one in there that I was particularly interested in, "Does it use background app refresh to try to update the location even when the app has been killed on iOS" ... let me explain what I meant:
I know that iOS kills the app from time to time (e.g. to save memory), in which case the background processing wouldn't work unless you have one of the background processing modes . I was asking because Christocracy's plugin seems to make use of the significant locations API to wake the app up even if it was killed.
And on Android it says it uses AlarmManager. But elsewhere it says it uses FusedLocationAPI. Does the latter wake up the app?
In short, I am basically asking how the app is woken up if it was killed by the OS. (I am OK with the app not working in background if it was killed manually, though it seems from the linked docs that SLC still works to wake it up then.) Sorry if the question is kind of arcane.

Nope not inane, I see what your asking. So each platform use different strategies.
iOS: Uses background tasks and our location callback to refresh background task timing execution, this one is a little hard to explain but, generally an app has 10 minutes of execution time in the background, but if you fire off a background task from your received location callback, this seems to completely sidestep the 10 minute time limit. I've tested this plugin on an iphone for a few days and it never turned off.
Android: Uses FusedLocationAPI + Detected Activities API + Foreground process + Service Connection to keep the app alive. What this means is that the plugin is literally attached at the hip to your application and it tells the OS that your application should be treated like its in the foreground, even when its in the background, hence the notification on android saying that the application is tracking you. There is a lot more that could be done here to keep the app alive (like the AlarmManager you mention, but in my testing, it hasn't failed yet on my devices.
TLDR: If the app is killed by the OS, there is no strategy in place to retrieve it (yet). All of my code has focused on preventing the OS from ever killing your app to begin with. In testing I find this works extremely well and I didn't need to build in functions to wake up the app if its destroyed.


Round buttons

Hi,
Could you share the code for the round buttons?

Hi, please see the updated version of this card:
https://github.com/fredrikpersson92/minihass/tree/main/custom_cards/custom_card_scene


intel realsense camera d435i not connect to Intel RealSense Viewer

librealsense
2.29.0 RELEASE

OS
Windows

Please provide a description of the problem
Camera d435i shows up in Device Manager, but Intel RealSense Viewer will crash as Camera d435i is connected. Also, not able to use firmware upgrade tool to update the firmware. This issue appears since last time I disconnected and powered off the device while firmware upgrading was still processing.
Please help!
Thanks

Hello
The camera may be bricked if power is disconnected while firmware updating is in progress. In your case, the camera doesn't seem to be completely bricked but likely is no longer functional as normal.
Since you know how to use the DFU tool, please try the Option 3 which is for device recovery and see if you're lucky to get your camera back. If not, I think you may have to return it for repair.
Thanks and Good Luck.
**Please be informed that we will close this ticket in seven (7) days if we have not heard back from you.


Update libunwindstack

This udpates libunwindstack to a newer version (branch head from somewhen last week.)
It also changes the recipe to not use any polyfills for Android libraries anymore.
It will use the real Android libraries instead (mostly just headers, some static linking for some symbols is necessary though.)

Thanks, I'm very happy we're updating!
I can only review so much as it's mostly CMake and conan stuff but it looks good.
The question I have is the following: This time there seems to be more machinery than last time to make this compile properly (CMakeLists.txt is quite big, and especially the diff files). In this configuration, how hard is it going to be to update again next time?

I hope actually that it's going to be easier because it will be a lot simpler to import additional android libraries if needed.
If it turns out to be too much work we can also ditch support for the tests. This would avoid compiling most of the dependencies. We can also try to upstream the patches - not sure though whether they get accepted.

I hope actually that it's going to be easier because it will be a lot simpler to import additional android libraries if needed.
If it turns out to be too much work we can also ditch support for the tests. This would avoid compiling most of the dependencies. We can also try to upstream the patches - not sure though whether they get accepted.

Sounds good, thanks for clarifying.


CI: Check code coverage also on Windows

The Code Coverage CI step on Windows is currently deactivated, because there is some issue around the crate profiler_builtins: #6534
After several months of wasted compute power and apparently noone caring enough to fix the bug, the CI step was removed in #6687. This issue exists as a reminder to re-enable this feature, in some form or another.

Do you know if the issue has been reported upstream (profiler_builtins ?)

I wouldn't know either way.


Generic Property Types Not Properly Compared When Detecting Duplicate Keys

I have a custom type which more or less encapsulates a string and its used as a key for a dictionary. Its definition looks like:
[Serializable]
public class DictionaryTypeObject : SerializableDictionary< SerializableType, UnityEngine.Object> { }

However when I try and use the inspector to add more than one element, nothing happens. I tracked down the issue to the following line in SerializableDictionaryPropertyDrawer

This works for non arrays/generic types. For generic properties which are managed as dictionaries in this implementation it's doing a reference comparison which will result in the equality check always being false. I haven't tested this for arrays types, but I assume it would be the same.
I tried this:

And then it started correctly identifying duplicate keys with generic serialized properties.
I don't know if this actually a good implementation or not, and I am pretty sure it still wont work with arrays. I also have no idea if it would still work with nested custom serializeable classes.
This is by far the best Serialized Dictionary Implementation I have come across for Unity though. Well done, saved me a lot of time.

Hi,
Another user has reported a reported a similar problem. You have correctly identified the problem!
The comparison is not working properly and the property drawer fails to identify the conflict in the keys.
I think the solution to this problem would be to do recursive comparison of the dictionaries, like you did, with a few more checks (keys present in dict2 but not in dict1, and a recursive comparison if any of the key is also a string/object dictionary)
However, this comparison is not correct if the dictionary's TKey type implements Equals() or GetHashCode() because they will be used by the dictionary to compare the keys but not by the custom property drawer.
The correct solution would be to get the key values as a proper TKey instance instead of a Dictionary<string, object> instance.
This is not possible at the moment because the SerializedProperty class can only return values of simple types and cannot return the real type (a Type instance) of the property.
But a recursive dictionary comparison should work a lot better than the current implementation.
I will be able to work again on SerializableDictionary soon.
Cheers and thank you for the kind words.


Airtable in responders

Gathering some thoughts. API equivalents coming.

when assigning reviewers

if there is NOT a reviewer with the username in the reviewers-prod table, create an entry with their username as github field. In the answer remind the person to fill the volunteering form https://airtable.com/shrnfDI2S9uuyxtDw.
then in all cases

add the link to the issue in the field "current assignment"
add an entry in the reviews table with the issue id, issue link, a link to the reviewer, the package name.

have a command that the editor can call with the link to the review issue comment

when approving the package, clear the "current assignment" field of reviewers.

Maybe for submitting a review the easiest thing is to have the editor submit it. @ropensci-review-bot submit review <link to comment> time <8>.
I would expect editors to have to come to the issue to thank the reviewer with a non-bot answer anyway.

Created a test airtable base (duplicated the real base but without records) at https://airtable.com/tblEeFgNuJiyUoVT1/
The airtable base ID should be a parameter this way when things work I can replace it with the actual base ID, and I'd save a token of mine in the Heroku secrets.
when assigning reviewers (tweaking the reviewer assignment responder)

listing all existing reviewers https://airtable.com/appJ3ZFvnT27TImCY/api/docs#curl/table:reviewers-prod:list
creating an entry with the person's username (and name + email from their GitHub profile if they are present) https://airtable.com/appJ3ZFvnT27TImCY/api/docs#curl/table:reviewers-prod:create
to add the link to the current issue as current_assignment cf https://airtable.com/appJ3ZFvnT27TImCY/api/docs#curl/table:reviewers-prod:update (so one needs the ID of the reviewer record, that one would get either after listing all existing reviewers, or after creating it)
to add an entry in the reviews table with the issue id, issue link, a link to the reviewer, the package name. For now there is no way to get the package name so use the issue title. something like if package name is defined in an issue comment in the issue body, use it; if not use the isuse title (later when submissions happen via a form the package name will always be available) https://airtable.com/appJ3ZFvnT27TImCY/api/docs#curl/table:reviews:create

when approving the package (tweaking the approve responder)

clear the "current assignment" field of reviewers. https://airtable.com/appJ3ZFvnT27TImCY/api/docs#curl/table:reviewers:update

New responder for submitting reviews
to be done by editors (cc @noamross: this way the editor can have a look at whether the review has all the info in particular reviewing time, and can add a human thank you)
@ropensci-review-bot submit review <review url> time 8

add review URL and date and duration to the corresponding record of the reviews table (now how to know what reviewer and what date it was? does it make sense to use GitHub API to see who authored the comment that's at review URL?) https://airtable.com/appJ3ZFvnT27TImCY/api/docs#curl/table:reviews:update
once all reviewers that were assigned have a review submitted, remove the label "3/reviewer(s)-assigned" and add the label "4/review(s)-in-awaiting-changes".

addendum for when assigning reviewers
create entries in the slack-invites table. One line per person, email and name from GitHub API, if no name in GitHub profile use username (GitHub username). Date = date of entry creation. Invited unchecked.

as author1 use either author1 if that's in the issue body, or the submitter.
as author-others entries, author-others from the issue body (there can be none).
reviewers.

Also, once as many reviews as reviewers have been submitted via @ropensci-review-bot submit review <review url> time 8, the badge should be changed to 4/review-in-awaiting-changes

@xuanxu for the responder for submitting reviews it'd be nice if it could parse, for "height hours and a half", both 8.5 and 8,5.

Everything now implemented, thank you @xuanxu!


DropDown display out of screen

Hello developer friends,
I noticed a small problem with the library when the button is on the right, the dropdown is displayed partly outside the screen.
I made a fix for this if it is possible to have the authorization to create a pr that would be great. thank you in advance

modification:
ligne 7: const {height, width} = Dimensions.get('window');
ligne 101 & 104:
if(px+dropdownWIDTH>width) { setDropdownPX(px-dropdownWIDTH+w); } else { setDropdownPX(px); }

I will also add that from where i stand line 106 setDropdownWIDTH(dropdownStyle?.width || w); should be before line 99 if (height - 18 < py + h + dropdownHEIGHT) {

And also line 7 const {height, width} = Dimensions.get('window'); should be before line 96 to be more responsive in web

Fixed in v4.0 take a look at the changes made in v4.0
https://github.com/AdelRedaa97/react-native-select-dropdown?tab=readme-ov-file#-major-changes
Feel free to open the issue again if it still exists


Simplify CLI setup

Currently setting up the CLI is quite an involved process. The biggest issue is that all the scopes for the Auth0 Management API client grant have to be set up ahead of time for the non-interactive client that represents the CLI. If the scopes need to change, then a manual update is required.
Instead we should only set it up the following scopes:

read:client_grants
update:client_grants
create:client_grants
delete:client_grants

And then do what the authz API library does activate the scopes that are needed at runtime.

Fixed in v2 (672e46b8198c562c5fbf8e99df40aa9348f17cc7)


Deploy AudioVideoPlaybackBot: the only domain that can be set in "Site URL" is "cloudapp.net"

In the AudioVideoPlaybackBot project, in the part of the deployment, it's said that the "Site URL" should be directed to my domain for my signed certificate.
The problem is that this is impossible because when creating a cloud service in Azure Portal does not allow to set custom domain, the domain must be "cloudapp.net".
So I added a CNAME in DNS that will redirect from mybot.contoso.com to mybot.cloudapp.com and then I get an error when trying to deploy the project: "cannot resolve DNS host".
When I use the self-sign certificate, I receive response code 200 when I try to add the bot to the meeting, but in practice, the bot does not join ...

Okay, that's how I solved it"
https://support.microsoft.com/en-us/help/10065/associating-a-custom-domain-name-and-securing-communication-with-azure


Fix showing error message when validation fail

Changes
When step action is used in step, and feature flag is not enabled, the
error message is not shown correctly and would show a %s.
We are now using fmt.Sprintf to format the error message and show the
feature flag that need to be enabled properly. apis.ErrGeneric need a
empty string as second argument to be able to show the path steps so
adding this.
errror message should now show:
Error from server (BadRequest): error when creating "task.yaml": admission webhook "validation.webhook.pipeline.tekton.dev" denied the request: validation failed: feature flag enable-step-actions should be set to true to reference StepActions in Steps.: spec.steps[0]

instead of:
Error from server (BadRequest): error when creating "task.yaml": admission webhook "validation.webhook.pipeline.tekton.dev" denied the request: validation failed: feature flag %s should be set to true to reference StepActions in Steps.: spec.steps[0].enable-step-actions

Fixes bug #7493
Signed-off-by: Chmouel Boudjnah<EMAIL_ADDRESS>Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[X] Has Docs if any changes are user facing, including updates to minimum requirements e.g. Kubernetes version bumps
[X] Has Tests included if any functionality added or changed
[X] Follows the commit message standard
[X] Meets the Tekton contributor standards (including functionality, content, code)
[X] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[X] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings). See some examples of good release notes.
[X] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

/kind misc

/lgtm


Lack of lambda permissions in post scan action plugin promote or quarantine

"Within the "serverlessrepo-cloudone-filestorage-plugin-action-promote-or-quarantine" stack the "serverlessrepo-cloudone-filestorage-plugin-action-promote-or-quarantine" role lacks the permissions below in order for the lambda to be configured to run within a VPC.
•	"ec2:CreateNetworkInterface",
•	"ec2:DescribeNetworkInterfaces",
•	 "ec2:DeleteNetworkInterface"
Could we please fix this, so that the post-scan action promote and quarantine plug-in can work within a VPC?

@jack-c-tang any thoughts on this?

Hi @Chiragkansara, would you please elaborate what serverlessrepo-cloudone-filestorage-plugin-action-promote-or-quarantine role is? That role doesn't seem to be deployed along with app. Is it the role you created to configure VPC for the Lambda, and it doesn't have those permissions?

Hi @jack-c-tang the customer had to create the role "serverlessrepo-cloudone-filestorage-plugin-action-promote-or-quarantine" and assigned it the specific permissions of:  "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface" in order for the lambda to be configured to run within a VPC. These permissions are lacking as FSS post-scan action plug-in's do not run within a VPC

@Chiragkansara take a look at PR #139, as soon is merged, that should fix your issue.

It's supported now.


404 on links to section headers that exist in the same file

I've found some strange 404 errors when running markdown-link-check on the attached file zng.md.
Testing that file locally with v3.11.0, the two 404 errors are unexpected. The headers for all three of these sections look much the same in the markdown.
$ npm install -g markdown-link-check

$ markdown-link-check --version
3.11.0

$ markdown-link-check zng.md

FILE: zng.md
  [✓] #21-types-frame
  [✖] #22-values-frame
  [✖] #23-control-frame

  3 links checked.

  ERROR: 2 dead links found!
  [✖] #22-values-frame → Status: 404
  [✖] #23-control-frame → Status: 404

Then if I remove a particular line from the file, the 404 errors go away.
$ sed 's/A named type is encoded as follows://' zng.md > zng-edited.md

$ markdown-link-check zng-edited.md

FILE: zng-edited.md
  [✓] #21-types-frame
  [✓] #22-values-frame
  [✓] #23-control-frame

  3 links checked.

I went to clone the repo so I could try debugging the problem myself, but oddly once I did that, I found my version installed from source didn't trigger the problem, even though the version is the same, which also struck me as odd.
$ npm uninstall -g markdown-link-check

$ git clone https://github.com/tcort/markdown-link-check.git

$ cd markdown-link-check/

$ git checkout v3.11.0

$ npm install

$ npm install -g

$ markdown-link-check --version
3.11.0

$ markdown-link-check zng.md

FILE: zng.md
  [✓] #21-types-frame
  [✓] #22-values-frame
  [✓] #23-control-frame

  3 links checked.

I noticed the same thing, via MegaLinter.
✅ Linted [MARKDOWN] files with [markdown-link-check]: Found 6 non blocking error(s) - (3.51s) (expand for details)
- Using [markdown-link-check v3.11.2] https://megalinter.io/7.10.0/descriptors/markdown_markdown_link_check
- MegaLinter key: [MARKDOWN_MARKDOWN_LINK_CHECK]
- Rules config: [.markdown-link-check.json]
- Number of files analyzed: [2]
--Error detail:
(node:24) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
  ERROR: 6 dead links found in README.md !
  [✖] #requirements → Status: 404
  [✖] #providers → Status: 404
  [✖] #modules → Status: 404
  [✖] #resources → Status: 404
  [✖] #inputs → Status: 404
  [✖] #outputs → Status: 404

and my code looks like:
- [Table of Contents](#table-of-contents)
- [Usage](#usage)
  - [Examples](#examples)
- [Requirements](#requirements)
- [Providers](#providers)
- [Modules](#modules)
- [Resources](#resources)
- [Inputs](#inputs)
- [Outputs](#outputs)
- [GitLab Groups and Projects (Repositories)](#gitlab-groups-and-projects-repositories)
- [Maintainers](#maintainers)
- [Contributing](#contributing)

To resolve this, I put <!-- markdown-link-check-disable --> before the code and <!-- markdown-link-check-enable --> after the code. Then I received this:
✅ Linted [MARKDOWN] files with [markdown-link-check] successfully - (3.47s) (expand for details)
- Using [markdown-link-check v3.11.2] https://megalinter.io/7.10.0/descriptors/markdown_markdown_link_check
- MegaLinter key: [MARKDOWN_MARKDOWN_LINK_CHECK]
- Rules config: [.markdown-link-check.json]
- Number of files analyzed: [2]

I'm currently encountering an issue that seems to be similar across different software versions, though there appears to be some variation in the specific versions impacted.
Initially, I experienced this problem with version 3.11.0. However, after some troubleshooting, version 3.11.0 is now functioning correctly for me, but I don't know why. And, the issue persists with the latest release, version 3.12.1. The problem may be consistent across these versions, albeit manifesting under slightly different conditions or configurations.


[fix][broker] Record GeoPersistentReplicator.msgOut before producer#sendAsync

Motivation
GeoPersistentReplicator.msgOut metric records the message output data from the local cluster to the remote cluster. Right now, this metric has been updated before getting the shema. If it fails,  we don't send the message to the remote cluster, so I don't think the metric should be updated.
GeoPersistentReplicator.msgOut should be recorded before producer#sendAsync.
Modifications
Move msgOut.recordEvent(headersAndPayload.readableBytes()); before producer#sendAync.
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

/pulsarbot rerun-failure-checks


Chore: Upgrade GraphiQL to 1.11.4

So, this is the first step on a bigger journey to get the GraphiQL client(s) up to date.
I might need little guidance here and there since I only started wokring with the codebase this evening, and not everything might be optimal ( looking at you, build_asset_path/2)
I also have s semi-functional version of graphiql 2.0 behind a new :beta interface key, but that one needs some more work to get headers to work, and to figure out whether we still need the @absinthe/absinthe-socketlibs or whethercreateGraphiQLFetcher()from@graphiql/toolkit` can solve whatever prompted the creation of that in the first place out of the box now.

If someone has more context/knows, why some decisions were made, that would be greatly appreciated!
This PR
the package still used the 5 year old<EMAIL_ADDRESS>which has a bunch of security issues and could benefit from an update in general (bundle size reduction from react@16 among others). This PR updates graphiql and introduces a way to have two react versions in the asset list, so graphiql-workspace(the :advanced interface) stays functional, since it break with newer react versions.
Next Steps
The next big step would be to get graphiql@2 working, especially with headers and subscriptions. The is quite a bit of plumbing going on atm, which I will need to figure out first, plus the new createGraphiQLFetcher function is not shipped in a browser-compatible version, so we might need another intermediary package... 😨
Once 2.0 ships and graduates beta stage, we can probably remove/alias the :advancedinterface, since graphiql provides those enhancements out of the box. Also,graphiql-workspace` hasn't seen an update in ~4 years, so I wouldn't expect and update on that front.
Happy about any and all feedback !

@benwilson512 can't request a review formerly yet, would be great if you could take a look at this after your parental leave :)

Thanks for your work on this @luhagel, I don't have time to help with the initial work, but can definitely try it when you think it's ready for testing as we are using the old version at the moment.

Adding to the convo to say this would be a huge boost for Absinthe on my team. Due to the age and limitations of the available GraphiQL interfaces we are currently dropping in Apollo Sandbox. Now that GraphiQL is up to a stable 2.2.0 release it might be reasonable to target an update to 2.x.

Bump. Curious if an upgrade will be merged in the near term?
cc: @benwilson512 @luhagel

Bump. Curious if an upgrade will be merged in the near term? cc: @benwilson512 @luhagel

Probably needs an upgrade at this point, given that graphiql 3 is underway, I'll try and find some time to get this all cleaned up in the next few weeks @derekbrown

Looking forward to this very needed refresh.


ConsoleCaptor#clearOutput doesn't reset System.out and System.err

Describe the bug
The method ConsoleCaptor#clearOutput creates new streams but doesn't register them to System.out and System.err.
So subsequent calls to #getStandardOutput() and #getErrorOutput() always return empty lists.
To Reproduce
try (ConsoleCaptor console = new ConsoleCaptor()) {
    System.out.println("hello");
    // ok
    assertThat(console.getStandardOutput()).containsExactly("hello");

    console.clearOutput();

    System.out.println("world");
    // ko
    assertThat(console.getStandardOutput()).containsExactly("world");
}

My only concern is that it might not work on parallel tests but I don't see a solution giving the way the JDK API is designed.

I am pretty limited to the capabilities of the System.out and System.err functions as the library depends on them so not quite sure if this library will work with parallel tests. I haven't tried it out yet, but maybe it will work


snapshot is produced with non-unique IDs

In some cases calling snapshot(document) produces a tree with elements which IDs are not unique. In most cases these elements are the root element document and the first element from <head> e.g. <link> or <style>.
It leads to the situation where in Player the root element document with id = 1 is overwritten by some child node, that also has id = 1. In this case IncrementalSource.Event, which is fired for document, won't be correctly processed by the Player instance.
Here the assignment of non-unique IDs happen:
https://github.com/rrweb-io/rrweb-snapshot/blob/master/src/snapshot.ts#L693

Is this happening when you snapshot a page more than once?

No, it isn't happening when requesting a page snapshot more than once.
I was able to identify that for some websites the assignment node.__sn = /* serialized node */ gets transferred through the page reload. So if you create a snapshot for a page and then refresh it, you'll be able to see that, for instance, document has __sn property assigned even if you don't load rrweb-snapshot after the page refresh.
Unfortunately, I don't have any strong case to share. However, I've noticed that this issue is happening more often in Safari than in any other browser (probably only in Safari).
I was able to fix it by collecting the serialized objects into a WeakMap instead of directly modifying the Node element.
In a separate file:
export const serializedCache = new WeakMap<Node, serializedNodeWithId>();

Restoring cache:
let serializedNode = serializedCache.get(node);
// Try to reuse the previous id
if (serializedNode) {
  id = serializedNode.id;
}

Caching a serialized node:
const serializedNode = Object.assign(_serializedNode, { id });
serializedCache.set(n, serializedNode);

I can create a PR if you approve this modification.


setup external etcd on demand.

Current e2e testing will always setup external ETCD, which is not used by multicluster-controlplane, because they are by default using embed ETCD.

/assign @clyang82 @yanmxa

Good catch
/lgtm


Steam VR not loading controllers

Hi,
SteamVR doesn't seem to pick up the move controllers as devices. I tried running "vrcmd.exe" and it lists 2 entires for "psmove" but doesn't list any devices for them (0 counts for both).
I ran through the whole process from your wiki for installation. I'm using the "CL-Eye" $3 USD driver for the playstation eye and was able to run through the configurations in PSMoveConfigTool.exe as described in the wiki using the "attach to HMD" method.
A couple of notes:

I'm using the Oculus CV1 and the PSMove w/ normal playstation eye camera (3 devices total)
When running PSMoveConfigTool --> HMD settings --> Test HMD tracking, I couldn't see my HMD in that screen on initial load until I reset the default position in steam vr to standing only in the steam VR Room setup. After re-running room setup, it seemed fine.
When co-registering the ps move controller and HMD, it seemed like they were quite far away from each other after the whole config was done, is this normal? I am thinking once it's done that if I move the PS move controller close to the HMD, they should be close to the same space on the little display of the DK2 model.
I previously had the razer hydra drivers installed for steam vr, could that be messing things up?
Before re-configuring as standing only, I had a room scale setup using my razer hydra controllers

Any ideas of something else I can try?

I had this problem too, then i tried to uninstall SteamVR and reinstall it (not the beta version) and it worked. It seems a little random, as i already had this issue before.
Also, for co registration, i prefer to use calibration mat method, it worked better for me (even with 1 camera).
Be sure to launch psmove service before launching SteamVR.

Thank you! That actually did the trick! The co-registration was off, so I'll have to explore the mat technique like you said. This is pretty not bad! Any tips doing the mat thing? I am really confused by it. For what it's worth, I also uninstalled the hydra drivers, as I thought: why not. The issue is pretty much resolved though, good tip! I was using the beta before too, maybe that was it.

Great ! I'd like to know how does it compare with hydra in terms of tracking.

It's not as good as the hydra for tracking. However, it being wireless is a big win for me. Also, the Hydra is EXTREMELY sensitive to EMF fields. For instance, it's summer now, and my A/C unit is outside my office (central air). If the A/C unit kicks in, the tracking degrades to unusable state, it might as well have gone completely off. So, when hydra is working well, it works fantastic. Also, the tracking mat worked flawlessly! I'm currently re-calibrating with camera positioned higher so I can try setting up roomscale.
With Hydra, you can setup roomscale with CV1 & get a reasonable 2.5 meter by 2.5 meter usually fairly well. I saw someone run a hydra from a ceiling which is cool. It has 360 tracking, but the drawback is that the EMF field is so sensitive, even your body can sometimes occlude the tracking. The PS Move would be good with a second camera, I'm definitely going to have to go pick one up or something. So far, this is working pretty half decent honestly. Good job guys on this! It's better tracking with the move than it is with Hydra and the EMF field being disturbed.

Sorry I just noticed this issue. Thanks for the debugging help @toto5100! I'll update the troubleshooting steps with the SteamVR tips.
@dignifiedweb Yeah the second tracking camera definately helps stabilize the z depth. There is still a bunch of work @cboulay and I have to do to improve the tracking quality too. We're currently no undistorting the camera image (need to port over the camera calibration tool). This causes the tracking to become more inaccurate as you get near the edge of the video frame. We also are only using a simple low-pass filter on the position data which is still pretty noisy at times. Hopefully we can get the tracking quality improved over the next month. Thanks for bearing with the alpha-ness.

@HipsterSloth great work! I appreciate the effort!
Any tips on getting a second camera to work? My brother had an extra one kicking around, wanted to try it. I can't seem to get it to recognize in the PSMoveConfigTool.exe. I re-installed the drivers and it all seems to be setup correct. The CL-Eye drivers came with a test app and I get a picture from both cameras if I unplug one, but I think that software may have a limitation of one camera at a time.
Thoughts? Thanks so much for doing this, it's so cool.

Yes, CL Eye driver is limited to one at a time. You have to use their platform SDK (CLEyeMulticam) if you want multiple cameras... or use the PS3EYEDriver for free, warts and all.

With the cl eye driver for multiple cameras I think you you have to buy the multicam driver and additional credits per camera you want to use. It's been a while since I tried that configuration though. Do the libusb drivers not work for you with the alpha release?

Thanks guys, wasn't sure about that. Maybe I'll buy the multicam driver. libusb just wouldn't work for me this time around. I had it working on windows 8 a while back with your unity version of all this. I just couldn't get libusb working this time around and CL Eye was $4 bucks, worked right away. Maybe I can try libusb again and see if I can get it going.

I still couldn't get the libusb method to work. I went ahead and bought the $4.99 USD SDK version and I copied over my own CLEyeMulticam.dll and replaced the one in the release binaries provided. Do I have to build the whole project myself again rather than use your release binaries?
The SDK came with SDK examples and their own precompiled binaries. I checked both and I can build their WPF multi-camera example and run their binaries just fine. I copied the DLL from %WINDIR%\syswow64 is that the correct DLL to copy? When i startup PSMoveService.exe, it says "failed to open" on one of my PS Eye cameras. When I open the tool, it only displays one in the camera. Then, as an added bonus, one of the PS Eyes stays red like you guys said might happen in your wiki.
Excellent wiki by the way, I should have seen that part about the CL EYe driver only working w/one camera, since it's listed there on the top table.

Hey guys, came back to report that I accidentally didn't actually copy the DLL. The DLL was in use and for some reason windows didn't say it had a problem copying.  Cheers!

With the Multicam DLL you can install the developer version or the redistributable version. The redistributable version, i.e. the one that we supply, allows you to link just fine but when running it only opens cameras that are properly registered. The developer version works with unregistered cameras but cannot be distributed by us. Somewhere in the platform SDK tools it's possible to switch which version is installed. Maybe you did that between copy attempts. Actually, all you have to do is delete the supplied DLL and then it'll pickup whichever one is installed because it's on the path.

Yesterday I tried using multiple cameras and I was getting weird behavior. Using a USB 2 powered hub, I was able to get an image from both, but it was slow bandwidth. Thinking the hub was causing slow bandwidth, switched back to using 2 USB ports and re-installed driver. After this, 1 camera wouldn't get an image and the other had weird artefacts. When it was delayed using the hub, I tried using calibration mat, but had weird ghosting issues when viewing the orb.
In both cases, I used the included binary executable with the CL EYE SDK and could get a perfect responsive image from it. In the PS Move config tool, though, not able to get a good image for 2 cameras. It says Libusb still as type, could that be the problem? I double-checked and it's "WinUSB" type using that usb configure tool. I think I'm hitting a wall here, sorry guys really wanted to test this.

Sorry for the camera woes!
I think the "libusb" displayed in the psmoveconfig tool is a bug (I recall noticing it always said that regardless of driver). The usb configure tool is definitely the authority.
Hubs can sometimes be problematic, though usually because it's easier to overload the usb root hub they are plugged in to.
I haven't used the cleye camera tools in a while, but is it possible to get the video streams for both up at the same time using them or just one at a time? I suspect you have both cameras connected to the same usb root hub. When psmove service opens up both cameras at once you are saturating the available bandwidth. You can tell which root hub you are connected to in the windows device manager.
For what it's worth, i'm going to revisit the libusb camera support next week when i'm working on adding support  for the ps4 camera.

No worries. I wasn't very clear, also. The binary that I was talking about from the SDK is the one that shows two cameras at once. It shows both camera pictures at once and there's no noticeable lag at all from that. They are both plugged into my front usb, I could try one in the hub (back USB) and one in the front USB, maybe that'll get it going lol. I may be pre-occupied though, possibly getting Oculus Touch controllers soon for a project I'm working on. That might sway me to not try the PS move... sorry lol.

The weird part though, was with the SDK example binary, it showed both cameras at once, but one camera was tilted (diamond shape in a square frame). I attribute that to a bug in the software, but maybe that camera is just wacky and done. The original camera I tried was good! This has good picture, just on an angle.
If you want to have another go at libusb-win32 first install libusbK then replace it with libusb-win32.


Missing response header Content-Type: text/html; charset=utf-8 in axum integration

When trying to use VSCode Remote Tunnels, it adds more headers that end up with the browser considering the page as non-HTML content.
In the generate_response function, adding these lines fixes the problem:
res_headers.insert(
    CONTENT_TYPE,
    HeaderValue::from_static("text/html; charset=utf-8"),
);

I believe there is a better solution than this, there seem to be many points where it could be implemented. I don't know if it would be that simple, so I didn't create a PR.

I'd say the canonical way to do this is just, in something like an <App/> component so it's rendered on every page,
#[cfg(feature = "ssr")]
if let Some(res_options) = use_context::<leptos_axum::ResponseOptions>(cx) {
  res_options.append_header(CONTENT_TYPE, HeaderValue::from_static("text/html; charset=utf-8"));
}

This should you to do it once in a few lines and then forget about it.


Run all notebooks in the applications folder. Added initialized parameter while creating OdeModel object for test_ode method

Also added automatic legend creation for each variable when creating plots for the notebooks in the applications folder as well as automatically setting the plot legend to the right outside of each plot. Added an "initialized=False" parameter when creating an OdeModel object in the test 'test_ode' method in the test_ode.py file.

@nanglo123 we can actually open this pull request against indralab:main rather than indralab:troubleshoot_simulate_ode so that we can integrate all the other changes on that branch into main. Let me try to edit that.

I also forgot to mention that the test 'test_ode' in the test_ode.py file fails with the newly comitted code that doesn't allocate placeholder params. I think that is why these automated checks are failing.

I think the best soltion would be to update the test: we should make the TemplateModel constructed in the failing test to have proper rate laws and declared parameters. You don't need to open a new PR, rather, you can continue pushing further commits to the same branch and the PR will automatically update with the changes.


Space in the script path name and Reload

The reload options trigger an Error "script file not found", if the absolute path to it seems to have spaces in it.

Ffixed it with this commit: 4cfca78

Fixed in release 3.6.4.


Deploy experience share

tag v1.0.0

Open DEBUG
Com not add Owner
LDAP User import method
Azkaban Lineage import error
Chinese garbled（中文乱码）
can't add comments

1. Open DEBUG
wherehows-frontend/conf/logback.xml
wherehows-backend/conf/logback.xml

And you need to rebuild the project and redeploy.
Then you can click the UI, and you can find the query SQL from the WEB log
2. Com not add Owner
Analysis the debug log..
#1446
Then you nedd to import the LDAP Users, will share it soon..
3. LDAP User import method
My company use OpenLDAP........
The important config:
ldap.search.domains=["cn=xxx,ou=xxx,dc=xxx,dc=com"]
ldap.search.return.attributes=["uidNumber", "cn", "sn","sn","sn","uid","cn","mail","gidNumber","cn","createTimestamp","uid"]
ldap.inactive.domain=

ldap.group.search.domains=["cn=xxx,ou=xxx,dc=xxx,dc=com"]
ldap.group.search.return.attributes=["gidNumber", "cn"]

You need known Openldap administrator username/password, and you can use the tool ApacheDirectoryStudio to connect openladp, then you can see the attributes etc.
And the attributes  need to Corresponding to the shell wherehows-etl/src/main/resources/jython/LdapExtract.py
return_attributes_standard = ['user_id', 'distinct_name', 'name', 'display_name', 'title', 'employee_number',
                                  'manager', 'mail', 'department_number', 'department', 'start_date', 'mobile']
return_attributes_standard = ['group_id', 'member_ids']

4. Azkaban Lineage import error

NullPointerException

HadoopJobHistoryNodeExtractor.java
System.setProperty("java.security.auth.login.config", findFileInSearchPath(searchPath, "gss-jaas.conf"));
System.setProperty("java.security.krb5.conf", findFileInSearchPath(searchPath, "krb5.conf"));
System.setProperty("java.security.krb5.realm", prop.getProperty(Constant.KRB5_REALM));
System.setProperty("java.security.krb5.kdc", prop.getProperty(Constant.KRB5_KDC));

You need to set those some parameters or delete it.
I hope someone can solve the.

After import the Azkaban data, but com't see at the UI

#1441

Can't import Azkaban metadata

#1448

Then Azkaban metadata imported, but UI can't see the Lineage

Analysis the Debug log, I find abstracted_object_name can't match the values
SELECT ca.app_id, ca.app_code as cluster, jedl.job_name, fj.job_path, fj.job_type, jedl.flow_path, jedl.storage_type,
jedl.source_target_type, jedl.operation, MAX(jedl.source_srl_no), MAX(jedl.srl_no), MAX(jedl.job_exec_id) as job_exec_id
FROM job_execution_data_lineage jedl
JOIN cfg_application ca on ca.app_id = jedl.app_id
LEFT JOIN job_execution je on jedl.app_id = je.app_id and jedl.flow_exec_id = je.flow_exec_id and jedl.job_exec_id = je.job_exec_id
LEFT JOIN flow_job fj on je.app_id = fj.app_id and je.flow_id = fj.flow_id and je.job_id = fj.job_id
WHERE abstracted_object_name in ("/xx/xx")
and jedl.flow_path not REGEXP '^(rent-metrics:|tracking-investigation:)'
and FROM_UNIXTIME(job_finished_unixtime) >  CURRENT_DATE - INTERVAL (1) DAY
GROUP BY ca.app_id, cluster, jedl.job_name, fj.job_path, fj.job_type, jedl.flow_path, jedl.source_target_type, jedl.storage_type, jedl.operation
ORDER BY jedl.source_target_type DESC, job_exec_id

The UI query SQL is /xx/xx
But the mysql values is viewfs://xx/xx/xx/hive/warehouse/xx.db/xx/xx/dt=20181022
So I change the code LineageCombiner.java and AzLineageExtractor.java
LineageCombiner.java
+        String abo = "";
+        if(datasetPath.abstractPath.contains("viewfs")  & datasetPath.abstractPath.length() > 7) {
+          String[] aboArray = datasetPath.abstractPath.split("/");
+          for(String s:aboArray){
+            logger.debug("add by yc abstractPath1===================" + s);
+          }
+          abo = "/" + aboArray[7].replace(".db", "") + "/" + aboArray[8];
+          logger.debug("add by yc abstractPath1===================" + abo);
+        }else{
+          abo = datasetPath.abstractPath;
+          String[] aboArray = datasetPath.abstractPath.split("/");
+          for(String s:aboArray){
+            logger.debug("add by yc abstractPath2===================" + s);
+          }
+          logger.debug("add by yc abstractPath2 FULL===================" + abo);
+        }
+        lr.setAbstractObjectName(abo);

AzLineageExtractor.java
+    logger.error("add by yc: get flowSequence value");
     String[] flowSequence = message.azkabanJobExecution.getFlowPath().split(":")[1].split("/");
+    logger.error("add by yc: get flowSequence length:"+flowSequence.length);
+    for(String s: flowSequence) {
+      logger.error("add by yc: get flowSequence value: \""+s+"\"");
+    }
     String jobPrefix = "";
-    for (int i = 1; i < flowSequence.length; i++) {
-      jobPrefix += flowSequence[i] + ":";
+
+    if(flowSequence.length > 2) {
+      for (int i = 1; i < flowSequence.length; i++) {
+        logger.error("add by yc: flowSequence[i] \""+flowSequence[i]+"\"");
+        jobPrefix += flowSequence[i] + ":";
+      }
     }

.....

-    lineageCombiner.addAll(oneAzkabanJobLineage);
+    lineageCombiner.addAllWoPartitionUpdate(oneAzkabanJobLineage);
....
-    lineageCombiner.addAll(lineageFromLog);
+    lineageCombiner.addAllWoPartitionUpdate(lineageFromLog);

For reference only, such as have mistake please correct me
So I can see the HIVE metadata and can owner it、Azkaban metadata、Lineage.
But part of the lack of Lineage, Feeling is that some rules table configuration problems.
Chinese garbled（中文乱码）

add
?useUnicode=true&characterEncoding=UTF-8

to mysql WHZ_DB_URL
jdbc:mysql://x.x.x.x/wherehows?useUnicode=true&characterEncoding=UTF-8

can't add comments
#1460
@Ash-Mishra thanks

5. Could someone knwon this?
#1447
Why Metrics/Schema History no data? And how to import?
Thanks.

#1457
加微信群讨论

Schema History can import
select id as dataset_id, urn,  FROM_UNIXTIME(modified_time) as modified_date, `schema` from dict_dataset order by dataset_id desc limit 10

insert into dict_dataset_schema_history(dataset_id,urn,modified_date,`schema`) select id as dataset_id, urn,  FROM_UNIXTIME(modified_time) as modified_date, `schema` from dict_dataset where id > 0

Anyone knowns how to auto import ?

I have got a solution for this. After every Etl job we want the schema history to be updated based on the data in dict_dataset.
I have added an extra function in the corresponding Load.py file for which you want the schema history.
Just use this funtion in your load.py file
def update_schema_history(self):
    update_schema_history_cmd = '''
    insert into
      dict_dataset_schema_history(dataset_id, urn, modified_date, `schema`)
    select
      id as dataset_id,
      urn,
      FROM_UNIXTIME(modified_time) as modified_date,
      `schema`
    from
      dict_dataset as s
    where
      s.id > 0
      and date(FROM_UNIXTIME(s.modified_time)) not in (
        select
          modified_date
        from
          dict_dataset_schema_history
        where
          urn = s.urn
      );

    update
      dict_dataset_schema_history
      inner join dict_dataset on (
        dict_dataset_schema_history.dataset_id = dict_dataset.id
        and dict_dataset_schema_history.modified_date = date(FROM_UNIXTIME(dict_dataset.modified_time))
      )
    set
      dict_dataset_schema_history.schema = dict_dataset.schema;
    '''
    self.logger.info(update_schema_history_cmd)
    self.executeCommands(update_schema_history_cmd)
    self.logger.info("finish updating schema history")```

Dear issue owner,
Thanks for your interest in WhereHows. We have recently announced DataHub which is the rebranding of WhereHows. LinkedIn improved the architecture of WhereHows and rebranded WhereHows into DataHub and replaced its metadata infrastructure in this direction. DataHub is a more advanced and improved metadata management product compared to WhereHows.
Unfortunately, we have to stop supporting WhereHows to better focus on DataHub and offer more help to DataHub users. Therefore, we will drop all issues related to WhereHows and will not accept any contribution for it. Active development for DataHub has already started on datahub branch and will continue to live in there until it's finally merged to master and project is renamed to DataHub.
Please check the datahub branch to get familar with DataHub.
Best,
DataHub team


Uncaught ReferenceError: exports is not defined

Hello: Please help with the following issue:
We want to use your great lib in our typo3 pageflip extension clientside, we do not have node running on the apache webserver, and ran into the following problem:
Configuration:

Web browser and its version: Apache WITHOUT node!!
Operating system and its version: Linux
PDF.js version: 1.8.557

Steps to reproduce the problem:

Installed pdfjs-dist with bower install pdfjs-dist
included in html file

What went wrong? (add screenshot)

this is ui_utils.js

I am one step ahead,
obviously bower is not a good choice for downloading the dist files.
i now installed it with npm install pdfjs-dist, then i installed browserify , did a
node_modules/.bin/browserify node_modules/pdfjs-dist/lib/pdf.js  > bundle.all.js and included this file to my html.
Unfortunately i get an error Uncaught TypeError: Cannot read property 'WorkerMessageHandler' of undefined in the following function.

My questions now are:

Do i need the Worker, if not, howto deactivate it
if i need the worker, how do i bundle pdf.worker.js with pdf.js to get rid of the errors

See https://github.com/mozilla/pdf.js/tree/master/examples/browserify and https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website#with-browserify

Do i need the Worker

Yes

how do i bundle pdf.worker.js with pdf.js to get rid of the errors

Follow the example/instructions above.
Closing as answered.