Requesting other approaches over process.env to advanced options

Environment
Just like these issues described:

#3933
#3621
#3166
#3852

Any project with Webpack 5, Vite or any similar process.env patching bundler without process been polyfilled will not work since the source code always check process existence in global.
export const SC_ATTR: string =
  (typeof process !== 'undefined' && typeof process.env !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||
  'data-styled';

This breaks the whole point of patching only the environment variable during the bundling phase and prevent polyfilling the process/browser into distributed files.
Expected Behavior

An unified options to handle these advanced options without the need of process object

Actual Behavior

Must place a process object into production code and potentially break other library if they use typeof process to determine other logic.

These can be added to StyleSheetManager

Looks like this was fixed as part of https://github.com/styled-components/styled-components/releases/tag/v5.3.7-fixed

@hikariNTU the pr part of the release https://github.com/styled-components/styled-components/pull/3957 fixes it so if process.env is not defined it won't crash.
and they mentioned it was already fixed for v6 in https://github.com/styled-components/styled-components/pull/3907
I just updated my styled components install to 5.3.8 and am running vite, and now the app will run, whereas before it was failing due to the process env issue.

@rob-swu Your are talking about other issue. Read the description carefully.
The issue here is conditional check process.env. While using directly string replacement for process.env.REACT_APP_SC_ATTR will not work since process.env will be undefined and the condition fail


No chapter names

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2023.07.06 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
--embed-chapters works to add chapter timestamps into the video file, but it doesn't include the actual chapter names.
I think I have identified the problem :

DO NOT use "-add-metadata 1" in the FFMPEG command to merge the .meta file to the video file.
Use this instead :

-> ffmpeg -i "in.ext" -i "in.meta" -c copy -map 0 "out.ext"
You can access the .meta file to test yourself by using the --embed-chapters option and renaming/removing the ffmpeg.exe, so yt-dlp doesn't know what to do with this .meta file and let it be.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[x] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', '--embed-chapters', 'https://www.youtube.com/watch?v=wAckkB-dY2M']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[b532a3481] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-07-16-git-c541ecf0dc-essentials_build-www.gyan.dev (setts)
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 5ff3e702171a50175c34397494e2d18ce35d771c2110b1e59bd173ec2fb352aa
yt-dlp is up to date<EMAIL_ADDRESS>[youtube] Extracting URL: https://www.youtube.com/watch?v=wAckkB-dY2M
[youtube] wAckkB-dY2M: Downloading webpage
[youtube] wAckkB-dY2M: Downloading ios player API JSON
[youtube] wAckkB-dY2M: Downloading android player API JSON
[youtube] wAckkB-dY2M: Downloading m3u8 information
[youtube] wAckkB-dY2M: Downloading MPD manifest
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] wAckkB-dY2M: Downloading 1 format(s): 248+251
[debug] Invoking dashsegments downloader on "https://manifest.googlevideo.com/api/manifest/dash/expire/1689737782/ei/1gW3ZNfQC4qsp-oPh6qc8A8/ip/2a02%3A842a%3A3b2%3Abe01%3Ab078%3A27de%3Aced%3Acded/id/c00724901f9d6363/source/youtube/requiressl/yes/playback_host/rr1---sn-n4g-ator.googlevideo.com/mh/dE/mm/31%2C29/mn/sn-n4g-ator%2Csn-hgn7rn7r/ms/au%2Crdu/mv/m/mvi/1/pl/47/hfr/all/as/fmp4_audio_clear%2Cwebm_audio_clear%2Cwebm2_audio_clear%2Cfmp4_sd_hd_clear%2Cwebm2_sd_hd_clear/initcwndbps/1221250/spc/Ul2Sq3QgWvAtkaORJwB0B7oUqwo5egAzamu8sRz_dA/vprv/1/mt/1689715755/fvip/1/keepalive/yes/fexp/24007246%2C24362688%2C51000024/beids/24350018/itag/0/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cas%2Cspc%2Cvprv%2Citag/sig/AOq0QJ8wRQIgSLmjTMI0TCFOIr_rsddS6vT2D0buCB8JD2JO860SW1cCIQDlevUAo2mvODOlSHyDaq28Y_828LBf1VAtfZY4mhfsWw%3D%3D/lsparams/playback_host%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps/lsig/AG3C_xAwRQIgLlHxcleJiPBzOvaf1O6UH1YiougxgdmErEBYaZ20CI4CIQCcF_-FPr0BypuKwk-QEr2KPLO1mVKObuULI1vB8GnGvQ%3D%3D"
[dashsegments] Total fragments: 25
[download] Destination: Chapters test. [wAckkB-dY2M].f248.webm
[debug] File locking is not supported. Proceeding without locking
[download] 100% of   10.46MiB in 00:00:04 at 2.12MiB/s
[debug] Invoking http downloader on "https://rr1---sn-n4g-ator.googlevideo.com/videoplayback?expire=1689737782&ei=1gW3ZIy9Muedp-oPirGh-AU&ip=2a02%3A842a%3A3b2%3Abe01%3Ab078%3A27de%3Aced%3Acded&id=o-AAtj1KVOmIuUKm17iRcBY20WM1daFYiJjaP_Kpfhr8vs&itag=251&source=youtube&requiressl=yes&mh=dE&mm=31%2C29&mn=sn-n4g-ator%2Csn-hgn7rn7r&ms=au%2Crdu&mv=m&mvi=1&pcm2cms=yes&pl=47&initcwndbps=1221250&spc=Ul2SqzFVepOhZA4Q-0h89icdiblXLYo&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=1480922&dur=127.261&lmt=1605991946037719&mt=1689715755&fvip=1&keepalive=yes&fexp=24007246&beids=24350018&c=ANDROID&txp=6211222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgbvE76peebATnO3Bf6M-A0lQsuR8oFQZRMcQgj5eMpWICIQDfeEDD1IztSKWbTX6a6XyXlczgxNjzPWnysw-J8bwyfA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpcm2cms%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAP__SXVpXYI-afZrdnAwv5Ya9CCfyS9BS_7hx-fiPowEAiEAvxGmFof091XaRs0G5TlNNecfkyfuNAvxvL90fEurDX8%3D"
[download] Destination: Chapters test. [wAckkB-dY2M].f251.webm
[download] 100% of    1.41MiB in 00:00:00 at 14.62MiB/s
[Merger] Merging formats into "Chapters test. [wAckkB-dY2M].webm"
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:Chapters test. [wAckkB-dY2M].f248.webm" -i "file:Chapters test. [wAckkB-dY2M].f251.webm" -c copy -map "0:v:0" -map "1:a:0" -movflags "+faststart" "file:Chapters test. [wAckkB-dY2M].temp.webm"
Deleting original file Chapters test. [wAckkB-dY2M].f251.webm (pass -k to keep)
Deleting original file Chapters test. [wAckkB-dY2M].f248.webm (pass -k to keep)
[Metadata] Adding metadata to "Chapters test. [wAckkB-dY2M].webm"
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:Chapters test. [wAckkB-dY2M].webm" -i "file:Chapters test. [wAckkB-dY2M].meta" -map 0 -dn -ignore_unknown -c copy -map_metadata 1 -movflags "+faststart" "file:Chapters test. [wAckkB-dY2M].temp.webm"

Duplicate of #6859
It's a regression in ffmpeg. Downgrade to ffmpeg 6.0 or earlier

Sorry for the duplicate, i tried to search...
I'm not sure ffmpeg will adress this issue soon, and if it can work with another (simplier) cmd why not implement it in yt-dlp?

yt-dlp depends on ffmpeg for all metadata/chapter embedding. The simplest "fix" is to downgrade to ffmpeg 6.0


Warnings on Mac OS X 10.10

Some warnings are triggered on Mac OS x 10.10:
https://dash.orfeo-toolbox.org/viewBuildError.php?type=1&buildid=263110
Nothing serious but also easy to fix (we can use itkNotUsed macro for some of them)

As you suggested, I used itkNotUsed to declare unused variables. I think it should be alright now. I'm closing the issue but let me if I missed something.


WIP: Make language module changes for Application -> Adaptor

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

19 of 26 (73.08%)  changed or added relevant lines in 16 files are covered.
115 unchanged lines in 35 files lost coverage.
Overall coverage decreased (-0.09%) to 73.338%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ExtensibleTopLevelParser.scala
0
1
0.0%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/GroupParser.scala
4
5
80.0%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/diagrams/DiagramsPass.scala
2
3
66.67%

language/shared/src/main/scala/com/ossuminc/riddl/language/AST.scala
1
3
33.33%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/validate/ValidationPass.scala
1
3
33.33%

Files with Coverage Reduction
New Missed Lines
%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ModuleParser.scala
1
90.91%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/StreamingParser.scala
1
90.16%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ProjectorParser.scala
1
93.75%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ExtensibleTopLevelParser.scala
1
53.33%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/Keywords.scala
1
67.52%

hugo/src/main/scala/com/ossuminc/riddl/hugo/ToDoListPass.scala
1
60.61%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/Readability.scala
1
82.61%

passes/jvm/src/main/scala/com/ossuminc/riddl/passes/translate/TranslatingState.scala
1
93.75%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/PredefTypes.scala
1
93.48%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/NebulaParser.scala
1
77.78%

Totals

Change from base Build<PHONE_NUMBER>0:
-0.09%

Covered Lines:
4921

Relevant Lines:
6710

💛  - Coveralls


Improve java documentation, fix python install bug, fix java training bug

Thanks for this contribution!  Hopefully this will make getting the package up and running a bit easier for others.


somthing custom crafting function by datapack (or other script mod like kubejs or crafttweak kind) label:feature-request

i want anthill have custom machine fuction.
because, i want add custom recipe that should use anthill.
i think about datapack like this.
custom machine
name:"text", input slot:int ,fuel_tag:(none/default/custom)
custom recipe
machine:code, input:[ingridents], output:[], fuel:value, craftting_time:value
custom fuel
item:item, fuel:value

Hi, ty for the input; already made some initial experiments a while ago about a similar use case (custom recipes with the command slot item as catalyst). I'll take this issue as an up-vote for that feature ;). May take a while until this gets tackled, as I'm currently on another project.  Cheer's.


Is there a way to tell zod to use nullish instead of nullable?

I'm encountering many cases of:
Type 'number | null | undefined' is not assignable to type 'number | undefined'.

Using nullish instead for optional fields could solve this issue.

Good catch! This makes perfect sense, I'll get that change made here in the next update!

0.5.0 has been published with this change!

Aside from breaking lots of things, I'm not sure this makes sense. I need to take a closer look at the Prisma generated types to see when undefined is necessary.

@zomars can you provide a reproduction for the original error this issue relates to?

@CarterGrimmeisen would you kindly publish 0.5.2 to npm?

Published.


[monorepo-builder "localize-composer-paths"] Extract $packageComposerFiles from out of loop

I'm creating my monorepo, which contains over 200 packages. When running:
vendor/bin/monorepo-builder localize-composer-paths ...

it would take over 5 min!
Debugging, I found out it happened because this operations is very expensive:
$packageComposerFiles = $this->packageComposerFinder->getPackageComposerFiles();

And it was being called inside a loop, for every package. So I extracted it out and provide it as a param. Now it takes much less time

This line was also within the loop:
$json = $this->jsonFileManager->loadFromFileInfo($packageComposerFile)

So I created a var $this->packageComposerFileJSONs to cache it also

$json = $this->jsonFileManager->loadFromFileInfo($packageComposerFile)

Same here, the loadFromFileInfo() should be cached internally. Proabably by sha1 of the file

Done caching directly in the services.
Small notice: Please notice that I'm doing:
private $cachedPackageComposerFiles = [];

and
if ($this->cachedPackageComposerFiles === []) {

This is not completely ideal to initialize the cache. It's better to compare against null instead of [], as to also be able to cache empty results. (I guess in this case is right, because we will never have empty results!?)

When PR #2711 is merged, the tests should all pass

This is not completely ideal to initialize the cache. It's better to compare against null instead of [], as to also be able to cache empty results. (I guess in this case is right, because we will never have empty results!?)

Understood. If we have empty results here, there is either bug or we don't use the tool. Spliting 0 packages does not make sense .)
Also, if we introduce nullable arrays, sudently all arrays are possibly nullable.
This is nullable false positive array. Try to foreach it: https://3v4l.org/HWHNR
/**
 * @var string[]
 */
private $items;

Having strict array drops 50 % of thinking "is the item array?", "have I set it somewhere", "what if someone tries to access it before the initial call" (yes, they will)?
/**
 * @var string[]
 */
private $items = [];

You can foreach it, issets it etc.
This will make even more sense on typed property in PHP 7.4, where this starts to crash.
/**
 * @var string[]
 */
private array $items;

I think the branch alias will only work after the split first. Let's merge it now


[Call of Cthulhu 5e/Spanish] corrected some i18n

I changed the Call_of_Cthulhu_Spanish sheet. Added i18n to the firearms area and the Medicine roll.
Changes / Comments
The 5th edition sheet in my campaign seems to use the internationalised Spanish version (English being the language we use). However, some of the text wasn't translated into English (see image below).

I put existing i18n attributes into the firearms roll template. I added some JavaScript attributes to insert i18n text into the Medicine roll template.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


winePackages.wine: add SDL support

Motivation for this change
To build the SDL driver for game controllers that has been present but disabled at compile time since wine 3.3.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (I tested wineWow 3.20 unstable and staging)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@grahamcofborg build winePackages.stable wine

Thank you


Support environment variable settings to download mirror

Version
All
OS
macOS、Linux、Windows
Describe the bug
Like nvm, users can set the nodejs download mirror location.
NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

Instead of adding additional plugins.
https://github.com/version-fox/vfox/issues/24

i hope can use vfox available to list mirror plugins .
it will implement this feature better.

i hope can use vfox available to list mirror plugins . it will implement this feature better.
vfox available can show flutter and flutter-cn now. maybe can add vfox available -u cmd to refresh list by version-fox-plugins

em，vfox available can auto refresh by version-fox-plugins not need any arg。 😄
after my mirror plugin accept. it added in list.

@lovelope  now, you can use vfox add nodejs/npmmirror  --alias nodejs to use https://cdn.npmmirror.com(aliyun mirror) as node download source

LGTM

Looking at it this way, the original option 2 is more reasonable. ;)


Intellisense Bug with Global Types

Issue Type: Bug
Create a javascript project.
Add a globals.d.ts file and declare a const with string type.
While the globals.d.ts file is open, intellisense works as expected.
Close the globals.d.ts file and observe that intellisense no longer works for values decalred in globals.d.ts.
VS Code version: Code - Insiders 1.41.0-insider (455d8f73cd7c73285fba70ab039a26279f19bb57, 2019-12-10T12:58:00.299Z)
OS version: Darwin x64 18.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 x 2200)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
16.00GB (0.03GB free)

Process Argv
-psn_0_1982948

Screen Reader
no

VM
0%

Extensions: none

Does your workspace contain a jsconfig or tsconfig?

Neither.  Maybe I'm confused as to how the intellisense is supposed to work.  Is it supposed to pick up the types defined in globals.d.ts automatically?

If you use globals instead of explicit imports, you need to tell VS Code that these files are part of the same project. That's what a jsconfig does. See the documentation for help creating one

Thanks!


Including build manifest when upload min snapshot to S3

Description
Including build manifest when upload min snapshot to S3

+ cp -v /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64.tar.gz /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz
'/var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64.tar.gz' -> '/var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz'
+ cp -v /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64.tar.gz.sha512 /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz.sha512
'/var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64.tar.gz.sha512' -> '/var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz.sha512'
+ cp -v /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/../manifest.yml /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz.yml
'/var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/../manifest.yml' -> '/var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz.yml'
+ sed -i s/.tar.gz/-latest.tar.gz/g /var/jenkins/workspace/bundle-build-zhujiaxi/tar/builds/opensearch/dist/opensearch-min-2.8.0-SNAPSHOT-linux-x64-latest.tar.gz.sha512

Issues Resolved
https://github.com/opensearch-project/OpenSearch/issues/8087
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Mend error unrelated.


Docker setup improvements

Adds a one-stop script to setup terrastories for offline and/or local development.
Updates Rails 6 to latest patch, removes spring, and fixes annotations.

Thanks @lauramosher, this is so great.
Having played with this, I think there is just one piece of the puzzle missing: setting things up so Terrastories can be served on a WiFi hotspot via a local device (as shown here).
I reviewed and went through our old notes and got this working with the current setup by setting up terrastories.local as <IP_ADDRESS> (instead of <IP_ADDRESS>) in etc/hosts, and also adding address1=<IP_ADDRESS>/24 in the ipv4 section of /etc/NetworkManager/system-connections/Hotspot.
It seems we could adapt the setup script to ask "Do you intend to serve Terrastories via a Hotspot connection? This means that any device connected to your Field Kit device can load Terrastories in the browser once connected to the Hotspot." and then set the ip to either <IP_ADDRESS> or <IP_ADDRESS> depending on the answer. (Plus adding that address1 line to the Hotspot file if Y).
Or is there a way to have both? So terrastories.local will always work both locally AND if served on a Hotspot.
Hopefully that's a quick and painless addition, but you might think about something I'm not considering Laura. Also happy to keep this as a future issue to be resolved since we have other stuff to work on :)

Related to that, is there any harm in setting all of the Docker services to restart: always for the offline profile? The db service does not auto restart when you turn off/on a Terrastories field kit.

Hey @rudokemper! I reviewed the setup notes and the NUC instructions.
I think we need to start thinking about "Offline Mode" for development and Offline Mode for field kit installation. The script here is intended to get Terrastories built in standard or offline mode for feature development / ensure that it all works before it gets deployed to our online server or an actual NUC. While it does do several of the steps needed to install on a NUC, configuring network pieces is not exactly an application specific requirement for development.
Plus, once we start creeping into Network territory, things get less..scriptable. Network configuration varies based on the OS — setting up a hotspot / adding an entry to ipv4 (or ipv6) on a Mac is vastly different than on a Linux machine. And even with linux, it can vary by distro.
Thinking about this more, it may be worthwhile for us to not specify a local domain in offline development mode (e.g. terrastories.local) or modify the /etc/hosts file. If you skip that step, localhost at port 80 works just fine with nginx-proxy; and when specified, a local network hostname (machine name or the using ngrok etc) would also work without modification to the /etc/hosts file.
For those that do want to have a local domain, adding it to /etc/hosts or configuring a local hotspot could be a separate how-to/walk through tutorial.
FWIW: I'm good with leaving this as-is since most will be developing in online mode.

Related to that, is there any harm in setting all of the Docker services to restart: always for the offline profile?

No, I don't think there is any issue with this.

Thanks @lauramosher, that all makes sense.
I do agree that defining terrastories.local does not really seem necessary for the local development script setup. And I think the idea of having two separate offline workflows (for dev and field kit installation) makes good sense.
Hear you on the difficulties of scripting for different networks. Maybe we script what we can, and add any instructions about e.g. setting up hotspot, stable ip address, to the script for the user to manually configure from there. As well as documenting the whole process in a guide page in the upcoming Gitbook that I plan to work on for Terrastories.
Shall we go ahead and consider any further development on an offline field kit workflow as a separate bucket of work, and ship this?

Yes, lets! :D


Listing all statuses

Support question rather than bug or feature, I think. I want to show a list of recent job activity - is it possible to find all the available statuses?

I've worked out a way to get all the keys when using a redis store at least:
ActiveJob::Status.store.redis.keys("activejob:status:*")

Won't work for other backends though.

There is no support in ActiveSupport::Cache::Store to list all cached keys.
It's not that easy because you'll definitely have to deal with expired entries.
On another side, if you need to list statuses of the running jobs, this is what I do with Sidekiq (in a custom extension of Sidekiq::Web):
@statuses = []

Sidekiq::WorkSet.new.each do |_pid, _tid, work|
  @statuses << JobStatus.new(work)
end

Thanks for the help - I've arrived at a solution which works for a Redis backend at least. I'll link it here in case anyone else is interested in the future! https://github.com/manyfold3d/manyfold/pull/2056


add session to app.py

fix #81

@lioramilbaum hi liora, i closed the previous pr because the conflicts i had. i open a new PR with help of @morbitton. i would like to get a new review, thank you.

Ping me in Slack and we will work on it together.

@lioramilbaum  why, still have conflicts?


Feature/workflow permission registration

Registers the workflow permissions properly so they can be added to groups in the admin, allowing non-superusers to set up workflows
Only shows the workflow menu icon if the index view is accessible
Adds tests for accessing workflow views with and without permissions in the Wagtail Admin

There's a good amount of unit tests so should be easy to integrate this with my branch, thanks!


Simplify TemplateSource, CombinedSource and SpectrumTemplateSource

What does the code in this PR do / what does it improve?
The functionality of TemplateSource, CombinedSource, and SpectrumTemplateSource are unchanged.
Add test of CombinedSource.
The weights can be set as shape parameters in the config. You can check it by:
config = load_yaml('unbinned_wimp_statistical_model.yaml')
blueice_model = BlueiceExtendedModel(
    parameter_definition=config['parameter_definition'],
    likelihood_config=config['likelihood_config'],
)

llh_term = blueice_model.get_likelihood_term_from_name('sr2')
zs = np.asarray([-2, 0])

blueice_model._likelihood.likelihood_list[llh_term].mus_interpolator(zs)
blueice_model._likelihood.likelihood_list[llh_term].ps_interpolator(zs).std()

But the SpectrumTemplateSource is not tested, also the configuration is too complex, especially the normalization.
Can you briefly describe how it works?
I already tested that the results are the same in main and simplify_source.
Can you give a minimal working example (or illustrate with a figure)?
Please refer to test_blueice_extended_model.py.
What are the potential drawbacks of the codes?
Please include the following if applicable:

[x] Update the docstring(s)
[x] Update the documentation
[x] Tests to check the (new) code is working as desired.
[ ] Does it solve one of the open issues on github?

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

47 of 94 (50.0%)  changed or added relevant lines in 1 file are covered.
8 unchanged lines in 1 file lost coverage.
Overall coverage increased (+8.4%) to 69.679%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

alea/template_source.py
47
94
50.0%

Files with Coverage Reduction
New Missed Lines
%

alea/template_source.py
8
43.24%

Totals

Change from base Build<PHONE_NUMBER>:
8.4%

Covered Lines:
586

Relevant Lines:
841

💛  - Coveralls

Maybe we also want to test SpectrumTemplateSource.

This PR depends on https://github.com/XENONnT/alea/pull/68.

I think histogram_multiplier is a bad name, actually it is the absolute rate.

I think histogram_multiplier is a bad name, actually it is the absolute rate.

It depends on how you use it and I think we agreed that we try to avoid people using it. But really, the histogram is just multiplied with it, right?

I think histogram_multiplier is a bad name, actually it is the absolute rate.

It depends on how you use it and I think we agreed that we try to avoid people using it. But really, the histogram is just multiplied with it, right?

First, the histogram is normalized to one and then multiplied by it.

histogram_scale_factor is also multiplied on the histogram.

Ah, right @dachengx ! The histogram_multiplier was renamed to histogram_scale_factor in the TemplateSource. For the CombinedSource it indeed is the rate before slicing the way it is implemented. I never worked with the CombinedSource, do we need/want this behaviour? Otherwise we might consider sticking to a histogram_scale_factor for both that do the same thing i.e. just being multiplied to the template. If you want to normalize things to one you should do so yourself. But in any case, the intended usage is to only use the multiplier if you very quickly want to check or vary something. For production you should update the normalization of the template according to the expectation value, at least this is what we discussed with @kdund I think.

Ok I see that for now there is no urgency to have a meaningful test but it would be very useful to have an idea when this source could be used and how one would want to use it, I think. Maybe we could also make this a bit clearer in the docstring since rn I have no idea what to do with it tbh 😄

For this to be merged, we need more example templates like https://github.com/XENONnT/alea/pull/30 provided. Especially the 3D template with (E, cS2, cS2).

@kdund I moved the test of sources into another test module. They will not participate in CL calculation, to save time.


[REQUEST] New PCB with both an ESP32-S3 and an xCORE chip from XMOS for advanced audio processing as a ESPHome compatible voice-kit?

Any chance someone with PCB engineering skills + interest can redesign an updated custom "Onju Voice" PCB (for Google Nest Mini and Google Home Mini speaker series) that include xCORE xCORE DSP (XU316-1024-QF60B-C32) IC chip from XMOS on the same board?

https://www.xmos.com/processor-catalogue/

https://www.xmos.com/download/XU316-1024-QF60B-xcore.ai-Datasheet(3).pdf

Not sure if all of you have followed news about Nabu Casa's upcmoing voice-assistant hardware project, but just heard Paulus Schoutsen reveal on their Home Assistant's ESPHome Summer Release Party on YouTube that Nabu Casa's ESPHome developers are working on a new open-source "Assist Satellite" development platform with matching open-source reference hardware for their voice-assistant products that will based on ESP32-S3 in combination with a very powerful XMOS xCORE DSP chip for advanced audio processing), with the ESP32 running ESPHome firmware with many new voice, speaker, and media player features that are in the works (or at least in the theoretical planning stages).
Update! Check out ESPHome + Nabu Casa developers are experimenting with custom Voice Satellite firmware for ESP32 + XMOS:

https://github.com/esphome/home-assistant-voice-pe

https://github.com/esphome/voice-kit/

Some other independent ESPHome developers are by the way also working on related audio component enhancements, see links:

https://github.com/esphome/feature-requests/issues/2859

As I understand it, once new feature/function components or enhancement/changes to existing ESPHome components have been tested enough there they plan on back-port those upstream to the main ESPHome repository for mainlining them. The goal to create a single, standardize and homogeneous development environment for Home Assistant's "Assist Satellite" (remote voice satellite hardware for voice control of Home Assistant):

https://github.com/home-assistant/architecture/discussions/1114

https://www.home-assistant.io/voice_control/

Anyway, XMOS xCORE DSP (Digital Signal Processor) chips that are designed to use I2S (Inter-Integrated Circuit Sound) interface for high-speed powerful interprocessor communication to work like a low latency and performance sound/audio co-processor for microcontrollers like ESP32.

https://www.xmos.com/xcore-ai

For the use case for ESPHome Voice Satellite Development is to add in-line off-loading of audio noise removal (voice clean-up) from the microphone(s) input, like Interference Cancellation (IC), Acoustic Echo Cancellation (AEC), Noise Suppression (NS), and Automatic Gain Control, etc. and/and other audio post-processing algorithms to improve the solution's voice recognition capabilities). As well as similar in-line off-loading to multichannel audio output to speakers. Depending on which XMOS chip they use their XCORE-VOICE framework could technically also allow for up to 16 PDM microphones to be connected to a single xCORE device with a different PCB design).

https://www.xmos.com/develop/xcore-voice

https://www.xmos.com/usb-multichannel-audio/

UPDATE: News about the upcoming ESPHome voice-kit hardware platform by Nabu Casa is also Home Assistant roadmap, and that ESPHome-based voice-kit hardware has since also mentioned by Mike and Kevin during the Voice Chapter 7 livestream:
https://www.home-assistant.io/blog/2024/06/12/roadmap-2024h1/#current-priority-2-make-assist-easier-to-start-with
"Current priority 2: Make Assist easier to start with" ... "we’re exploring building our voice satellite hardware to create a more plug-and-play experience."
https://www.home-assistant.io/blog/2024/06/26/voice-chapter-7/
I'm paraphrasing but one of the representatives that is working on that "voice-kit"project more or less wrote there that while ESPHome and Home Assistant voice developers from Nabu Casa are now focusing to work on voice assistant features they are still figuring all this around making use of external audio processors and while they are currently only testing the XMOS xCORE chip as a candidate for an ESPHome-based voice-kit reference hardware design for official Home Assistant Voice Assistant development kit they also plan to work on "audio processor" component for ESPHome with hardware-independent architecture that will not be reliant on specific hardware configurations or dependent specifically on the XMOS xCORE DSP chip but instead allow others to add support for additional DSPs as audio processors (i.e. sound co-processors) in the future, (plus the fact that they will make it so that all the I2S settings and pins are still configurable in YAML, meaning that it should at least be possible add support for DSP types to the  "audio processor" component if they work similar to XMOS xCORE DSP chips, as well as different board designs that uses other I2S settings and pins).  That representative also wrote; "we will add all the code to the base ESPHome project once things are stable and working well".m and noted that ESPHome and Home Assistant / Nabu Casa developers are right now moving very fast and breaking things as they go so working on code for the new voice-kit related components for ESPHome in a separate repository on GitHub here:

https://github.com/esphome/voice-kit/

By the way, I think similar chips from XMOS like their XU-316 AI (xCORE XU316) is by the way used in Amazon Alexa Voice Service (AVS) Development Kit(s), and is used in some Amazon Echo products as well as other popular :

https://www.xmos.com/develop/xcore-voice
https://www.xmos.com/xk-voice-l71
https://www.xmos.com/xmos-delivers-first-amazon-alexa-voice-service-development-kit-with-linear-mic-array-for-far-field-voice-capture/
https://www.xmos.com/fully-offloaded-giving-smart-tvs-the-voice-power-they-deserve/
https://www.xmos.com/making-smart-speakers-feel-at-home/
https://developer.amazon.com/en-US/blogs/alexa/post/edde861e-65a4-4319-b5f1-422b0c626673/xmos-expands-device-types-supported-by-dev-kits-for-avs-with-a-far-field-linear-mic-array-based-reference-solutio
https://developer.amazon.com/en-US/alexa/devices/alexa-built-in/development-resources/sdk

As far as I can tell the complete source code for XMOS's xcode-voice firmware is available on Github under sln_voice repo:
https://github.com/xmos/sln_voice
More information about that in their user-guide for their XK-VOICE-L71 Evaluatuion board:
https://www.xmos.com/download/XVF3610-User-Guide(v5_7_3).pdf
Since Nabu Casa's designs it said to be open-source hardware and XMOS integration will probably be added to the ESPHome's Media Player Components (and Microphone Components) I for one am hoping that it could and will be extended to different types of speakerless solutions with appliance solutions with AUX-output/audio-output and AUX-input/audio-input port and not only for voice-assistant.
Personally I would also love to see inexpensive speakerless network-streamer player/receiver hardware without microphones but only with with AUX-out that can connect to any of your existing amplifiers or speakers with built-in amplifiers in order to replace products like Chromecast Audio and Amazon Echo Input / Echo Link Amp, (e.i. devices with no on-board speakers that must be connected to external speakers for audio output (AUX-output).
That is, I am sure that not everyone only wants "smart speakers" with voice-assistant and that instead many would be also happy to have network streamers/players without microphone which only purpose is to receive and output highest quality audio possible from Music Assistant to your "dumb" speakers.
I for one still have loads of Chromecast Audio audio-only receivers connected to various models and brands of different speaker/reciever systems in each room used to achieve multi-room music playback on a budget (because could not afford Sonos speakers in all rooms).
So even if though Nabu Casa's hardware will initially primarly be designed for "Home Assistant Satellite" (also known as "Wyoming Satellite") for voice-assistant appliances, such open-source hardware it just like the ESPHome firmware does have a lot of potential for different use cases.
Also on my wishlist if a network streamer receiver hardware with AUX-input and ADC to get music from analog audio source. As an easy way to achieve a remote AUX input into Music Assistant from an external analog audio source like a vinyl record player (LP turntable) or cassette player.
What I want to achieve is a solution that is easy to install/maintain and use that allow my wife to stream music from a vinyl record player (LP turntable) to any speaker or group of speakers in our home. The vinyl record player (turntable) setup she has a pre-amp with phono (RCA) output ports for analog audio in stereo.

Architecture example: Analog audio source with preamp -> ADC network appliance -> music stream -> Music Assistant -> Any speakers

I would therefore prefer if we could buy some kind of networked (Wi-Fi) enabled appliance like a music streamer with stereo AUX input port that it will use for on-the-fly perform analog-to-digital conversion (ADC) + encoding for streaming to a Music Provider inside Music Assistant.
I do however think that both such a solution does need its own non-propriatory audio-only streaming protocol for high-quality music streams?

@justLV  and others who may be interested; FYI, Seeed Studio’s new Voice Assistant Kit hardware where they are combining an ESP32-S3 with a XMOS XU-316 MCU chip for advanced audio processing into a voice-kit hardware board solution for ESPHome:

https://www.seeedstudio.com/ReSpeaker-Lite-Voice-Assistant-Kit-p-5929.html
https://www.seeedstudio.com/ReSpeaker-Lite-Voice-Assistant-Kit-Full-Kit-of-2-Mic-Array-pre-soldered-XIAO-ESP32S3-Mono-Enclosed-Speaker-and-Enclosure.html
https://wiki.seeedstudio.com/respeaker_lite_ha/
https://wiki.seeedstudio.com/xiao_respeaker/
https://www.youtube.com/watch?v=I9KOY2ik5nw&embeds_referring_euri=https%3A%2F%2Fcommunity.home-assistant.io%2F&source_ve_path=Mjg2NjY

CNX Software has a nice summary blog article with details on the technical hardware specification:

https://www.cnx-software.com/2024/08/05/respeaker-lite-voice-assistant-kit-combines-xmos-xu-316-and-esp32-s3-for-advanced-voice-processing-home-assistant-integration/

In addiion to that, in good timing the ESPHome developers have now published a new  experimental "voice-kit" GitHub repository where ESPHome developers are developing new or improved components for I2S audio support and a new native media player with support for FLAC, MP3, etc. for the upcoming "official" Home Assistant voice-kit hardware made Nabu Casa and based on a XMOS xCORE chip + an ESP32-S3:

https://github.com/esphome/voice-kit/

https://github.com/esphome/voice-kit/tree/dev/esphome/components

https://github.com/esphome/voice-kit/tree/dev/esphome/components/nabu
https://github.com/esphome/voice-kit/tree/dev/esphome/components/i2s_audio

https://github.com/esphome/voice-kit/tree/dev/esphome/components/i2s_audio/speaker
https://github.com/esphome/voice-kit/tree/dev/esphome/components/i2s_audio/microphone

https://github.com/esphome/voice-kit/tree/dev/esphome/components/media_player
https://github.com/esphome/voice-kit/tree/dev/esphome/components/speaker
https://github.com/esphome/voice-kit/tree/dev/esphome/components/voice_assistant

ESPHome developers have so far added many new features and functions or improvements/enhancements to ESPHome, such as:

New: Nabu Media Player - new "nabu" media player from Nabu Casa running natively on ESP32

Music Assistant streams work (both mp3 and flac), but since it requires resampling, the audio quality isn't great

New: Added support for FLAC files
New: Added a proper WAV decoder (that parses WAV headers with LIST, INFO, etc. chunks.)
New: Initial support for playing back local files
New: Playback Control for the VoiceKit
New: Added an is_paused condition for media players.
New: Add Click to Converse to button
New: LED animation
New: Scripts for controlling LEDs
New: Update Button Behaviour for the Voice kit
New: Dial Volume Control
New: Timer basic implementation
New: Dial Volume Control
New: Added HTTP(s) OTA updates
New: Dial Volume Control
New: Added Buttons for force ota update.
New: Software Mute Switch
Improvement: A basic resampler adjusts sample rates
Improvement: Configurable output sample rate (for experimental 48kHz XMOS firmware)
Improvement: The DAC mute state is read on boot
Improvement: volume/mute control via the DAC (the wheel works for increasing/decreasing volume)
Improvement: Logs what element failed if the pipeline breaks
Improvement: Fails gracefully if the incoming stream can't be processed
Improvement: Differentiate between user facing LED Ring and Internal LED ring
Point external component to dev branch

They also have many TODO inline coments in the code there if anyone are interested in helping them:
https://github.com/search?q=repo%3Aesphome%2Fvoice-kit todo&type=code
Note! Be aware that there are many comments there to that most of the new stuff are not yet stable.
PS: Even if XMOS is proprietary hardware they are very popular and have open-source compatible libraries:

https://github.com/xmos

As far as I can tell the complete source code for XMOS’s xcode-voice firmware is insln_voice repository on GitHub:

https://github.com/xmos/sln_voice

More information about that is in their user-guide for their XK-VOICE-L71 Evaluation Board which is based on the same chip:

https://www.xmos.com/download/XVF3610-User-Guide(v5_7_3).pdf
https://www.xmos.com/xk-voice-l71
https://www.xmos.com/develop/xcore-voice

@justLV and others who may be interested; FYI, Seeed Studio’s new Voice Assistant Kit hardware where they are combining an ESP32-S3 with a XMOS XU-316 MCU chip for advanced audio processing into a voice-kit hardware board solution for ESPHome:

https://www.seeedstudio.com/ReSpeaker-Lite-Voice-Assistant-Kit-p-5929.html
https://www.seeedstudio.com/ReSpeaker-Lite-Voice-Assistant-Kit-Full-Kit-of-2-Mic-Array-pre-soldered-XIAO-ESP32S3-Mono-Enclosed-Speaker-and-Enclosure.html
https://wiki.seeedstudio.com/respeaker_lite_ha/
https://wiki.seeedstudio.com/xiao_respeaker/
https://www.youtube.com/watch?v=I9KOY2ik5nw&embeds_referring_euri=https%3A%2F%2Fcommunity.home-assistant.io%2F&source_ve_path=Mjg2NjY

As far as I can tell picture  show a 60-pin package, or at least I counted 15 pins on each visable side. I'm looking at the one on their wiki which looks sharper than the others:

https://wiki.seeedstudio.com/xiao_respeaker/

As far as I can tell the text printed on the XMOS chip in the picture reads:
XMOS
V16A0
G12342P2
TF1148.00

And if do a search for "V16A0 AND XMOS" I only find the datasheet for "XU316-1024-QF60A" SKU in a 60pin package, and from a cost-effectiveness perspective I guess it makes more sense to use "XU316-1024-QF60A-C24" (offering 2400 MIPS) over the faster "XU316-1024-QF60A-C32" (offering 3200 MIPS) even though from developers and end-user perspective we probably almost always want the faster variant if we had a choice 😄
https://www.xmos.com/file/xu316-1024-qf60a-xcore_ai-datasheet?version=latest
https://www.xmos.com/download/XU316-1024-QF60A-xcore_ai-Datasheet(26).pdf
And I believe that would also make sense from a hardware developer point-of-view to use either XU316-1024-QF60A-C24 (or XU316-1024-QF60A-C32) since XU316-1024-QF60A-C24 is what is used by XMOS's "XK-VOICE-L71 Voice Reference Design Evaluation Kit" so it is very well documented and tested:
https://www.xmos.com/xk-voice-l71
https://www.xmos.com/file/xu316-1024-qf60a-datasheet/?version=latest
https://www.xmos.com/file/xk-voice-l71-hardware-manual/?version=latest
https://www.xmos.com/file/xk-voice-l71-pcb-design-files/?version=latest

@justLV more new projects are coming as, FYI, FutureProofHomes has now also announced a similar XMOS and ESP32-based two-board voice vatellite hardware development kit for Home Assistant that they call ”Satellite1 PCB Dev Kit”
https://futureproofhomes.net/products/satellite1-pcb-dev-kit

Unclear what XMOS xCORE chip he is using but I assume he is also using XU316-1024-QF60A-C24 or XU316-1024-QF60A-C32?
Satellite1 HAT Board:
This board features 4 PDM microphones, 12 NeoPixel LEDs, humidity/temp/lux sensors, 4 buttons (volume up/down, action button & hardware mute), plus the XMOS audio processing chip and a power DAC with for amplified speaker-out connection or 3.5mm headphone connection. All remaining GPIOs are also exposed.
The Satellite1 Hat connects easily to the Sat1 Core Board but can also be paired with a Raspberry Pi or a PC/Mac via USB! Perfect for all your voice assistant and audio projects!
Satellite1 Core Board:
The Satellite1 Core Board contains the ESP32-S3 n16r8, USB-C Power Delivery and 40-pin connection. This board attaches to the companion Sat1 HAT Board.
Looks like he also posted a future roadmap showing that he working on a a nice enclosure and more:

PS: Noticed that FutureProofHomes had a preview video on YouTube mentioning this project as "HomeX" 4-months ago:
https://www.youtube.com/watch?v=dRTLjQHfjSM

A good base for your reverse engineering will be to take a look over the xmos xk-voice-l71 eval kit, that almost all of these project are using as a refference design.
I would guess that seeed studio is using the XU316-1024-QF60B family of chips, as that chip is native 3.3v IO, as apposed to XU316-1024-QF60A that would need logic level shifters to convert to 1.8v for the ESP32.
Im currently working with the team at FutureProofHomes to build the Satellite1, We will be using the XU316-1024-QF60B. We have yet to decide on using the C24/C32 variant, if economy of scale allows, we will be going for the latter

Update: @FutureProofHomes wrote that they specifically use the "### XU316-1024-QF60B-C32" SKU of the XMOS xCORE AI chips, which not only is native 3.3v IO but "C32" models offer 3200 MIPS in performance compared to 2400 MIPS of "C24" models:
https://community.home-assistant.io/t/voice-chapter-7-supercharged-wake-words-and-timers/743625/92
https://community.home-assistant.io/t/respeaker-lite-new-seeed-studio-voice-assistant-kit-hardware-combine-esp32-with-xmos-xu316-chip-for-advanced-audio-processing-as-esphome-based-voice-kit-for-ha/756944/13

For current-hw onju voice owners, what do we really miss out on? Assuming we can do wakeword etc off-device instead of using mww?

I updated original post to mention the features you can use with XMOS xCORE chip that the essential benefits to voice pic-up:
The XMOS xCORE chip adds in-line off-loading voice cleanup from the microphone(s), like Interference Cancellation (IC), Acoustic Echo Cancellation (AEC), Noise Suppression (NS), and Automatic Gain Control, etc. and/and other audio post-processing algorithms to improve the solution's voice recognition capabilities). (Depending on which XMOS chip they use their XCORE-VOICE framework could technically also allow also for up to 16 PDM microphones to be connected to a single xCORE device with a different PCB design).
You will are still using microWakeWord running in ESPHome on the ESP32 unless someone manage to run  microWakeWord nativly on the XMOS xCore chip, which is not impossible.
You can think of the XMOS xCORE AI as an in-line audio post-processing chip that runs several different custom "noise reduction" AI models algorithms (running custom firmware) and sits in between the microphone and the ESP32 (that runs ESPHome).
That XMOS xCORE will as such automatically clean-up the audio coming from the microphone on-device and thus it makes it easier for microWakeWord to hear the wake-word correctly in a noisy room.
It is important to understand that this audio clean-up does not only work for microWakeWord, it will also clean-up all other voice comnig in via the microphone, so it will also make it easier for the speech-to-text engine that the Assistant's pipeline to understand what is being said.
The XMOS xCORE AI chip is technically also not limited to audio input from the microphone, so it can also be used for audio output to improve music playback, etc. using other custom AI models algorithms adding EQ options, and other features such as DRC (Digital Room Correction), etc. to achieve improved sound fidelity. Many products only XMOS chip just for music playback, like example music network streamers, to get great HiFi quality audio for low cost. See ex. https://www.hifistudio79.nl/launch-topping-d70-pro-octo-8x-cs43198-a-new-era/?lang=en

FutureProofHomes posted a nice introduction video to his upcoming voice devkit here:
https://youtube.com/watch?si=ccfrCRx9MgynGkYz&v=Vp5q4RIwCX4

A good base for your reverse engineering will be to take a look over the xmos xk-voice-l71 eval kit, that almost all of these project are using as a refference design.

FYI, FutureProofHomes have posted a new video on their YouTube channel showing off the current design of their ESP32-based hardware prototype upcoming FutureProofHomes Satellite1 voice control development board which looks to now be using such a XU316-1024-QF60A-C24 based XK-VOICE-L71 (XMOS Voice Reference Design Evaluation Kit connected externally, check it out here:

https://www.youtube.com/watch?v=Vp5q4RIwCX4

By the way, also check out ESP32-Korvo V1.1 project which does not contain a DSP but does feature ES7210 (high performance four channels audio ADC ) + ES8311 (audio code and DAC) chips which be interesting for high quality music playback on new PCB:
https://github.com/espressif/esp-skainet/blob/master/docs/en/hw-reference/esp32/user-guide-esp32-korvo-v1.1.md
Related Documents

ESP32-Korvo V1.1 Mainboard Schematics (PDF)
ESP32-Korvo V1.1 Subboard Schematics (PDF)
ESP32-Korvo V1.1 Mainboard PCB Layout (PDF)
ESP32-Korvo V1.1 Subboard PCB Layout (PDF)
ESP32 Datasheet (PDF)
ESP32-WROVER-E & ESP32-WROVER-IE Datasheet (PDF)
Espressif Product Ordering Information (PDF)

PS: ESPHome config for ESP32-Korvo V1.1 here:

https://github.com/joey-90/ESP32-S3-Korvo-1---Voice-Assistant

https://github.com/joey-90/ESP32-S3-Korvo-1---Voice-Assistant/blob/main/voiceassistant.yaml

https://github.com/esphome/feature-requests/issues/2430

FYI, to make all these eventually become useful to the avérage Home Assistant user they not only need to be fully supported in the upstream ESPHome project, they also need to standardize those devices in both ESPHome and the Home Assistant core, and ESHome developers are now working on several new components related to this, including a new entity component as assist_satellite platform for that which will represent a standard VoIP-based voice satellite for Home Assistant Assist voice control. Check out this architecture discussion (which sounds like it has essentially been approved)

https://github.com/home-assistant/architecture/discussions/1114

And the initial entity component for this new assist_satellite platform has been merged to Home Assistant core now:

https://github.com/home-assistant/core/pull/123830

Also see related patches with new features submitted to both ESPHome and the Home Assistant core:

https://github.com/esphome/voice-kit/
https://github.com/esphome/esphome/labels/integration%3A voice_assistant
https://github.com/home-assistant/architecture/discussions/1114
https://github.com/home-assistant/core/pulls?q=is%3Apr+label%3A"integration%3A+assist_satellite"
https://github.com/home-assistant/core/pulls?q=is%3Apr+label%3A"integration%3A+voip"

FYI, Home Assistant founders announced in the latest release party video that Nabu Casa will open sale for their first voice hardware on the 19th of December 2024 and the product launch for it will be officially presented during the planned "Voice Chapter 8" live video stream on that date:
https://www.youtube.com/live/ZgoaoTpIhm8
They also mention this in the Home Assistant 2024.12 release notes blog post:
https://www.home-assistant.io/blog/2024/12/04/release-202412/
Really hoping that someone will copy most of the specifications with same xCORE xCORE DSP chip from that final product and fit that into a new custom PCBs for the Google Home / Google Nest smart speaker series!
PS: Their ESPHome repository on GitHub for that specific product is already public and can be found here:

https://github.com/esphome/home-assistant-voice-pe

FYI, Nabu Casa has now released official ”Home Assistant Voice Preview Edition” hardware with fully open-source PCB design and schematics:
https://www.home-assistant.io/blog/2024/12/19/voice-preview-edition-the-era-of-open-voice/
https://www.youtube.com/live/ZgoaoTpIhm8
https://voice-pe.home-assistant.io/resources/
Diagrams posted as PDF now but they said that they will soon upload all source files to a repository on GitHub:
https://voice-pe.home-assistant.io/resources/ha_voice_preview_edition_pcb_design_files.pdf
https://voice-pe.home-assistant.io/resources/home_assistant_voice_pe_schematic_v1.0_241009.pdf
Plus they keep updating and maintaining the matching ”Home Assistant Voice PE” firmware based on ESPHome:
https://github.com/esphome/home-assistant-voice-pe

Thanks a lot Hedda
I wonder if will be possible (for someone) to change onju in order to (just) support XMOS.

FYI, FutureProofHomes has now also launched of their much more advanced ”Satellite1 Dev Kit” (or rather announced a public beta pre-launch with pre-order for the USA only) so that hardware looks fully ready too even if not yet as available to all.
https://youtu.be/RoGTLnAQEOY

https://github.com/

https://github.com/FutureProofHomes/Satellite1-Hardware

https://github.com/FutureProofHomes/Satellite1-ESPHome

https://github.com/FutureProofHomes/Documentation

This one will cost a lot of money in my opinion...
If you have 5-10 pieces to put in place, will be much money for most of users.
But if someone just add XMOS on Onju, I think will be the best for cost/performance.
Even better if that onju hardware can be adapted at HASS PE source.

For what it's worth the FutureProofHomes Sat1 is using XU316-1024-QF60B-C32 as it's DSP chip. Most of the cost is the XMOS chip, at between $7-15 depending on quantities purchased.
Currently the cost is quite high because we are trying to get a good value factory to manufacture the boards at scale, and cheaper chips at scale.
Our goal is to make private smart speakers available to as many as possible, though if you try to compare costs against the mega corps who are making money from mining your information, we can't come close to being $30 a unit (Amazon is most likely making a loss on that, and hoping you have subscriptions, and data worth mining)
Hopefully when we start hitting higher economy of scales we will be able to bring our costs down

As for open source for the FutureProofHomes Sat1, it's partly open. We will be releasing all Source Code, and schematics. But production Gerbers will be delayed release (likely 12 months) to minimise chances of clones bringing down out ability to continue development of the system

I actually have a question! I am working on a "Onxu" PCB (Onju with XU316). How are you flashing the initial firmware to the XU316? As far as I understand from the HA Voice PE, that firmware includes a I2C-DFU functionality. But that is implemented in the firmware which initially needs to be flashed at the factory. As I understand the XMOS datasheet, besides JTAG (or xSYS2?) and pre-flashing the SPI Flash, there is no way to program the XU316 if the SPI Flash is empty? Or am I missing something? Ideally, it would be programmable via the USB Connection, which I would then expose the same way that is done for the HA Voice PE.

Sorry... I don't know how to help you
...but I answer just for tell you: thanks a lot for your work !!!
Denis

Ideally, it would be programmable via the USB Connection, which I would then expose the same way that is done for the HA Voice PE.

Not sure if it would even work but would it be overkill (and too costely) for initial flashing and recovery to add a USB to Multiple UART bridge/converter chip?
That is, a USB-to-UART Bridge chip (USB-to-Serial converter chip) that have more than one UART/serial port so could connect and expose both the ESP32 and XMOS chips as seperate virtual com ports over USB (i.e. a single USB port upstream presenting multiple virtual serial ports as connected to several UART devices downstream).
At least I believe there are several such bridge/converter chips that can connect a single USB 2.0 to Dual Serial/UART, (or single UART to dual UART?)? See example CH9344 and CH348 (by WCH) and others
https://www.wch-ic.com/application/357.html
https://www.wch-ic.com/products/CH9344.html?from=list
https://www.cnx-software.com/2022/03/04/wch-ch348-8-port-usb-to-serial-chip-with-up-to-48-gpios/?amp=1
https://www.asix.com.tw/en/product/Interface/USB_Bridge/AX78120

AFAIK the XU316 is not programmable via UART or a direct USB-Connection if no firmware is present yet. That's why I'm hoping for an answer by @alextrical on how they are doing the initial flashing of the SPI Chips.

@jhbruhn you are indeed correct, the XU316 is designed to have its initial flash burned at the factory. There are 2 options to work around this, you can clock in the firmware at boot time from the ESP32, or the route we chose was to switch the SPI bus the XU316's flash is connected to, to one the ESP32 can directly write to, while holding the XU316 in reset

It's possible to boot entirely without a flash chip, by clocking in data directly from the ESP32, but would be quite involved to setup a driver for the ESP32 to do so, from it's own memory or a remote server.
Section 9.3 from the datasheet gives some information on how to do this.

Thanks for the pointers. Flashing the SPI Flash from the ESP32 somehow didn't come into my mind. I at least want to add that capabilities to my hardware. Did you just connect the flash chip to a normal SPI Bus on the ESP32, including the CS Pin of the flash?

I cant give out the full schematic as it hasnt been cleared with the FPH project owner yet, but this should help clarify what we are doing. We communicate with the XMOS using SPI (instead of i2c for data throughput of future upgates) and effectively short out the XMOS using 2 usb switches, when the XMOS is held in reset

Ah I see, smart solution! I was looking at your ESPHome implementation and was confused where the chip-select of the Flash vs the XMOS would be set, but this explains it.
I will probably mimic this implementation, perhaps a bit differently by switching the SPI flash between the ESP32 and the XMOS as I won't add a XMOS SPI interface like you did.
Is there a specific reason you used a USB Switch for this instead of a proper 4 channel Mux? Probably it was on the BOM already for the mux of the USB Interfaces of the ESP32 and XMOS?

I have started to create a schematic based on the Voice PE. I then incorporated all parts relevant to the Google Home Mini device from the Onju schematic and also prepared the basic board layout. Because I wanted to use KiCad, I created everything from scratch again. Thus I am not even sure whether the original license applies to this anymore.
Before I start routing the PCB it would be nice if someone familiar with ESP32s could sanity-check this schematic. Maybe there is something obvious I forgot or where I made a mistake. I can also provide the schematic files but for now I have this PDF export:
onju.pdf

@jhbruhn Great to hear you started!
Do you think that you can and will do do designs for both the first-generation "Google Home Mini" (Micro-USB power-supply) and the second-generation "Google Nest Mini" (barrel-jack power-supply)?

I only have gen 2 minis so I do not have a reason or reference to make such a PCB. Also at this stage it's a bit early to think about that.


Add comments for custom method in this controller

Methods in the controller - action_allowed, index, finished_quiz, self.take_quiz, calculate_score, multiple_answer_evaluation, single_answer_evaluation, record_response, graded? and review_questions need to have comments added or improved.

Added comments for most of the methods in the controller.


"Update" change logs are not created in the main test system

Hi colleagues,
We are working on the project https://github.tools.sap/erp4sme/crypto-for-business.
Some time ago we have discussed missing possibility to add changelog changes for an entity that is being processed not from a service (for example, UI service) but is inserted or updated directly on DB.
Meanwhile this issue was solved: we created Wrapper-Services for the involved entities and this solved even the second issue where a view was defined as a union of three different entities and we were not sure how to define change tracking for this.
It looks like (srv\payment\wrapper\wrapper-service.cds):
service PaymentWrapperService @(requires: 'system-user') {
entity Payments             as projection on db.payments.Payments;
entity Payables             as projection on db.payables.Payables;
entity PaymentOrders        as projection on db.paymentOrders.PaymentOrders;
entity Receivables          as projection on db.receivables.Receivables;
entity BusinessTransactions as projection on db.businessTransactions.BusinessTransactions;
}
BusinessTransactions is the mentioned view which is a union of Payments, Receivables and Payables.
Now all our DB operations relevant for change-tracking are defined via this service, for example
UPDATE.entity(WrapperService.Entity.Payments).where({ ID: paymentToUpdate.ID }).with(paymentToUpdate);
This works; the changes for all involved entities are written back and shown in the app “business Transactions” based on an UI service defined on the entityBusinessTransactions.
However there is one strange thing.
For creating the entities change logs are written both if you test locally or in the main test system https://c4b-main02-subscriber-1.c4b-main02.dev01.eu.canary.clusters.cs.services.sap/.
However these entities can be also updated. This is happening not from UI but from an Event Handler reacting on some events. For example if a Transfer Order which was created for a Payment becomes completed then the corresponding Payment gets status “Completed” as well. The event is thrown during a job run. Updating the Payment  is fulfilled via WrapperService in lib\payment\payments\DbPaymentRepository.ts.
Now if I am testing this event processing locally then I see that the changes with modification = “update” are inserted into CHANGELOG and CHANGES. Unfortunately I cannot execute the mentioned job (it is running only in MAIN system). But I tested this from a unit test firing the same event and the update changes were created.
When the job is running in MAIN and payments are updated with the new status “Completed” it is however not reflected in CHANGELOG and CHANGES.
Do you have any idea what can be the difference? We supposed that this was due to the job execution. But we have other events which are creating new instances of Payment – and this works; the “create” changes are created.
What in MAIN environment could inhibit creating “update” change logs?
Kind regards,
Elena Gurevich

Hi colleagues,
I executed some tests and checked created entities. Could you please confirm that an "update" modification creates a change log only if "modifiedAt" or "modifiedBy" has changed after this update?
I suppose that it is so because there is:
// Since req.diff() will record the managed data, change history will filter those logs only be changed managed data
const managedAttrs = ["modifiedAt", "modifiedBy"]
if (curChange.modification === "update") {
const rowOldAttrs = Object.keys(childNodeChange._old)
const diffAttrs = rowOldAttrs.filter((attr) => managedAttrs.indexOf(attr) === -1)
if (!diffAttrs.length) {
return
}
}
If I am right then you can close this issue because I found out that neither modifiedAt nor modifiedBy was changed for the entities for which update change log is missing.
Kind regards,
Elena

Hi colleagues,
I enforced modifiedAt to be changed at updating. However I still do not see any changelogs.
Is it necessary to change also modifiedBy?
Or am I wrong when I suppose that "modified" fields can affect creating changelogs?
Kind regards,
Elena


register receiver on Application context

this is giving :
android.content.ReceiverCallNotAllowedException:
at android.app.ReceiverRestrictedContext.registerReceiver (ContextImpl.java:155)
at android.app.ReceiverRestrictedContext.registerReceiver (ContextImpl.java:144)
Overview

Test Plan

can reopen if any of my comments are addressed


Add extra axis

Summary by CodeRabbit

New Features

Introduced a new RMotorButton component for controlling motor rotation.
Expanded motor control options with a new r axis type.

Enhancements

Updated AxesControls with additional styling for better user interface consistency.

test comment

[ ] fix this


Add support for additional template instructions

This PR adds support for Sprig library of template functions, as well as a custom "exec" function that can run commands on the user's computer. This enables fun and novel use cases like including randomness (Roll a d20 if needed?) analyzing local system details/data and more.
Prototype/thought experiment: What if you could dramatically expand what the Modelfile templates could do by adding Sprig as well as custom commands like exec that will provide users with the ability to do things on their computer?
Two new examples to demonstrate the idea.
history
Which will set the context's "date" to a random previous era, making the characters generated relatively novel:
Einstein

Benjamin Franklin

Thomas Jefferson

top
Which uses top to performance an analysis of the user's desktop system.

  I'll have to think about that some more though. Like maybe there's a way to sandbox things.

hey @nathanleclaire, I'd be super nervous about having exec run something on your machine, because that could be a massive security nightmare. I'll have to think about that some more though.

Yea, this isn't necessarily a direct request for merge, more of a sketch of an idea.

Like maybe there's a way to sandbox things.

Yea, like run a container or container equivalent where some things are mounted in read only.

Since this is really more of an exploration that request for merge, I'm gonna close, but want to keep exploring related ideas.


Update readme and other documentation once we settle on new methodologies

Especially, once #59 and #60 are done.

The readme + wiki have been updated to reflect the changes from issue #60.
updated architure/flow chart ppt: web-crawler-architecture.pptx

The readme + wiki have been updated to reflect the changes from issue https://github.com/privacy-tech-lab/gpc-web-crawler/issues/59.
updated architure/flow chart ppt: web-crawler-architecture.pptx


SDRAM fpgaportrst writing 0xFFFF touches reserved memory segments

I am currently implementing the SDRAM control for my project on De0-Nano SoC (Cyclone V). According to the Cyclone V manual:

writing 0xFFFF as done in bootscript post touches reserved memory. Maybe we should be writing just 13 bits instead?

Nice find - I think that's a valid point. If you are currently working on this part, could you give it a try and let me know if it works by writing just 0x1FFF  instead? If yes, then I will update the references accordingly.

I am still trying to get the FPGA2SDRAM communication going... I will let you know once it works.


GeoJson pointerEvents = 'none' any effects

[X] I'm reporting a bug, not asking for help
[X] I've looked at the documentation to make sure the behaviour is documented and expected
[X] I'm sure this is a Leaflet code issue, not an issue with my own code nor with the framework I'm using (Cordova, Ionic, Angular, React…)
[X] I've searched through the issues to make sure it's not yet reported

How to reproduce

Leaflet version I'm using: 1.0.3
Browser (with version) I'm using: Chrome 55
OS/Platform (with version) I'm using: Windows

What behaviour I'm expecting and which behaviour I'm seeing
I have to display two GeoJson overlays : one which can interact with user (click, mouse over) and the second with non interaction, just for displaying visual information.
The first layer is under the second and only the stroke has to be drawn.
I have specify "pointerEvents" to none for the second layer style, but LeafLet doesn't use this property : the generated svg is without this property.
Minimal example reproducing the issue

[X] this example is as simple as possible
[ ] this example does not rely on any third party code

var interactiveLayer = L.topoJson(epci2014TopoJson, {
        style: function (feature) {
            return {
                weight: 0.0,
                fillOpacity: 0.7,
                color: 'rgb(200,200,200)',
                fillColor: getColor(feature.properties.siren_epci || feature.properties.SIREN_EPCI)
            }
        },
        onEachFeature: function (feature, layer) {
            layer.on({
                mouseover: highlightFeature,
                mouseout: resetHighlight,
                click: zoomToFeature
            });

        }
    }).addTo(map);

    var justForDrawLayer=L.geoJson(departementsGeoJson, {
        style: function (feature) {
            return {
                pointerEvents : 'none',
                clickable:false,
                weight: 3,
                fillOpacity: 0.0,
                color: 'rgb(220,220,220)'
            }
        }
    }).addTo(map);

I have tried to put "clickable" to "false", no change.
Excuse me if my english is not enough right. Thank you.
Using http://playground-leaflet.rhcloud.com/ or any other jsfiddle like site.

I have specify "pointerEvents" to none for the second layer style, but LeafLet doesn't use this property

Well, pointerEvents it's not a recognised option for L.Path, so I'm not sure what were you expecting.

I have tried to put "clickable" to "false", no change.

That option changed name to interactive in 1.0.0, see "Options inherited from Interactive layer" in the documentation.

Thanks for your response.
For the "pointerEvents" : as i was not enable to make the layer "inactive" for user interactions, i have tried to follow the example given here : http://leafletjs.com/examples/map-panes/ for the pane and the pointerEvents applied to the geoJson layer. Maybe i misunderstood this notion.
I will try with the inactive property for the geojson style.
My goal is to display some small countries (polygons) as a cloropleth map. Under this layer the tile layer, et at the top another geojson layer displaying larger countries, each one is a "container" for small countries. I want that this overlay displays only the polygon stroke with total transparency for the inner.  I want the "small countries" overlay interacts with the user and the "larger countries" layer not.
Thx

I have tried with "interactive:false", it works.
I'm sorry (to have solicited communauty) and happy (because it works).
Thx.

I have the same task to render two layers and the top layer should be inactive. "interactive:false" helped, thanks!


New version - "Reload Test Cases" must show action indication, such as simple text "Tests reloaded" for 2 sec hard-coded

It is shown in the console. No interactive nor complicated JS will be implemented in injected objects.

It is shown in the console. No interactive nor complicated JS will be implemented in injected objects.


feat: update to see-lingua v1.1.1

feat: update to see-lingua v1.1.1

:tada: This PR is included in version 13.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release
v13.1.0

Your semantic-release bot :package::rocket:


Revert "Update Slack bot connection instructions and images"

Reverts Microsoft/bot-framework-docs#8

@RobStand,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


DocC Setup

Some thing off topic around the in-depth guide: is it possible for us to support only Swift 5.5+ (with @TaskLocal) in the initial release, so that users don't have to carry a context: LoggingContext around everywhere?

LoggingContext will not be a thing in the 1.0 release.
These docs are just a port of what was there, don't worry about the wording too much

Thanks @ktoso @stevapple for reviewing. All comments addressed I believe. Merging.

Thank @yim-lee, looking good!


Add/tidy API doxygen for the new pico_i2c_slave library

Add/tidy API doxygen for the new pico_i2c_slave library (see PR #1205)

yeah, i can review it sill, but need to actually generate the docs to check how the link works


Complete README and meta.yaml comments

@rwegener2 @rabernat, I believe this will work well.
If you click the Binder link in the README, you should be taken to a JupyterLab session with recipe.py already opened. Following the instructions at the top of recipe.py should make it clear how to open it as an executable notebook (this uses jupytext, but users need not concern themselves with the implementation).
My thought is that we will provide additional instructions in the README regarding how to open a PR, including:

Delete all the comments from recipe.py
Fork staged-recipes etc. etc.

I also need to complete similar commentary for meta.yaml to what is already in recipe.py, and recipe.py comments could use a bit more work too. Look forward to your feedback.

Fantastic!
For interactive sessions, if we decide we need more RAM in the user environment, we can point it at https://aws-uswest2-binder.pangeo.io/ (github login required)

Following the instructions at the top of recipe.py should make it clear how to open it as an executable notebook

I can't help but wonder whether it is possible to get a direct link to the notebook (rather than the text file). For reference, here is the url we are using now:
https://mybinder.org/v2/gh/pangeo-forge/sandbox/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fpangeo-forge%252Fsandbox%26urlpath%3Dlab%252Ftree%252Fsandbox%252Frecipe.py%26branch%3Dmain

This is really neat @cisaacstern!  Thoughts:

The jupytext is impressive. It's nice how the .py file becomes a notebook. (Thanks for de-risking!)
I like that you provided a template recipe.py. It seems like this nice commented recipe.py and meta.yml should also be in staged-recipes, so we have some duplication. I guess if Binder - Github integration was better we could just have the binder environment open staged recipes directly.
Interesting that you included "INTERLUDE: INSPECT FILE PATTERN" in the template. My reaction was to remove it, since a user writing recipe.py should theoretically be writing their final draft of a recipe and not need to inspect objects. That raises the question, I think, are we thinking the main point of the sandbox is to build a final recipe, work on the tutorials, or both?

Looks really nice, Charles!

I can't help but wonder whether it is possible to get a direct link to the notebook (rather than the text file).

In the words of @gjoseph92 from pangeo-forge-recipes#259, I have been nerd-sniped
The binder link in the README now takes you directly to

I still need to update the commentary to remove the Open With > Notebook instructions.

The custom workspace was created by:

Opening JupyterLab with the default workspace
Manually organizing the tabs into the desired configuration
Navigating to File > Save Current Workspace As... and saving the workspace as sandbox.jupyterlab-workspace, then downloading and committingsandbox.jupyterlab-workspace to main
In the README Binder link, changing urlpath%3Dlab%252Ftree%252Fsandbox%252Frecipe.py to urlpath%3Dlab%252Ftree%252Fsandbox%252Fsandbox.jupyterlab-workspace

You will notice this now functions as a redirect: JupyterLab launches, opens sandbox.jupyterlab-workspace, and opening this file triggers the redirect to the three-pane layout. Maybe there's a way to do it without the redirect, but I'm not aware of how.
Now that we have the workspace spec in the repo root, maybe it makes sense to organize the content files (recipe.py and meta.yaml) into a subdirectory.

Now that we have the workspace spec in the repo root, maybe it makes sense to organize the content files (recipe.py and meta.yaml) into a subdirectory.

Done. Directory structure is now IMHO more readable as
.
├── LICENSE
├── README.md
├── recipe
│   ├── meta.yaml
│   └── recipe.py
└── sandbox.jupyterlab-workspace

I'll get on with the actual README / comments updates after a short detour to some other work.

That raises the question, I think, are we thinking the main point of the sandbox is to build a final recipe, work on the tutorials, or both?

As Rachel and I just discussed offline, we are now thinking that this sandbox is really the same thing as the Intro Tutorial Part 3.

rather than https://github.com/pangeo-forge/sandbox/issues/2#issue-1148502777, we'll just instruct users in the README to open a blank notebook in the existing sandbox, if they want a place to run the tutorials themselves

rather than https://github.com/pangeo-forge/sandbox/issues/2#issue-1148502777, we'll just instruct users in the README to open a blank notebook in the existing sandbox, if they want a place to run the tutorials themselves

Noting that in the end I did end up implementing #2 via #4


Added consts for better team usability

Hi @s-krawczyk - thanks for the PR, I like the idea of "team constants" so there can be consistency if required. I'm not sure whether these should be baked into the library or not though, I think it would be ok to do this though. It should be noted that there's noting preventing a developer from just using any value in the attribute usage rather than a constant.
Just a couple of minor changes would be cool for the PR:
1 Can you delete the Pain.cs and just use the numeric constants in LegoPain.cs itself
2 In EffortToFix can we replace the abbreviations with actual words, e.g. Medium rather than just M
3 Is there a more specific name we can think of for EffortToFix, like TShirtEffort RelativeEffort or something to enable other effort classification constant schemes to be introduced in the future?

Not sure why but all the lines in the files are showing up as different in the PR diff, makes it hard to review the PR in GitHub.

Thanks again for the contribution :)


[Bug]: Trouble adding custom component for property

Contact Details
No response
What happened?
On my user resource, I added an ephemeral field for password, as authentication is handled by a 3rd party.
It largely worked with no configuration, except that the browser things that because I have 'email' and 'password' int he form it should auto populate with my credentials.
I tried passing autocomplete="new-password" tot he props section of the property definition, but that attribute is not passed on to the react component.
From what I can tell, only these properties are passed on:

In another place, I found a component that seems like it should be passing on the property, but inspecting the element never showed the prop in question.

So, moving on, I followed the documentation at https://docs.adminjs.co/ui-customization/writing-your-own-components. I have followed highlighted because i must have missed something.

in the documentation I found this section:

and in the link for useRecord(), there is a readme file, which i followed:

Here is my component:

I had to change the imports as they threw errors with the ones in the readme.
The issue I am having, is showing this component seems to cause an infinite loop of re-rendering.

And obv this locks up the browser and explodes everything.
Bug prevalence
Always
AdminJS dependencies version

What browsers do you see the problem on?
No response
Relevant log output
No response
Relevant code that's giving you issues
No response

The issue I am having, is showing this component seems to cause an infinite loop of re-rendering.

Try importing CleanPropertyComponent from adminjs instead of BasePropertyComponent. CleanPropertyComponent strips your custom component part from property to prevent the infinite loop.
https://github.com/SoftwareBrothers/adminjs/blob/master/src/frontend/components/property-type/clean-property-component.tsx

I see that this wont work either.

BaseProperty doesnt pass the props into the component.

Is that from core or is that your custom component? The props from config should be in property as property.props.

autoComplete seems to have worked


mj-button click works only for text not entire button Windows outlook issue

<mjml>   <mj-body>     <mj-section>       <mj-column>         <mj-button href="https://www.google.com/" width="230px">Click</mj-button>       </mj-column>     </mj-section>   </mj-body> </mjml>
does for work all the email clients, but  for windows outlook, only text inside button is clickable, but entire button is not clickable,
Is there any fix for this, or it is still an issue

That's the most we can do about thi, please check #359


Dead link https://www.visualstudio.com/features/azure-tools-vs.aspx

Found in  docs/data-tools//accessing-data-in-visual-studio.md

@nschonni Thank you!


Fixed bug in RenderSystem

Whenever an item requiring the RenderSystem, didn't have a SpaceComponent, engi would crash.
This is fixed now.

No need to debate long about this. Obvious mistake, obvious fix.

:+1:


Adds alembic-managed migrations

This adds alembic-managed migrations to the service, allowing its data to be safely upgraded along with the implementation for newer versions.

When applying this migrations to an existing db 0.2.x DB the stamp procedure worked correctly but the migrate not so much reporting the following errror:
INFO  [alembic.env] About to migrate tenant pgq
INFO  [alembic.runtime.migration] Running upgrade 6beff7876a3a -> fabf2ca39860, empty message
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
psycopg2.ProgrammingError: relation "attrs" does not exist

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/flask", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/flask/cli.py", line 513, in main
    cli.main(args=args, prog_name=name)
  File "/usr/local/lib/python3.6/site-packages/flask/cli.py", line 380, in main
    return AppGroup.main(self, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask/cli.py", line 257, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask_migrate/cli.py", line 134, in upgrade
    _upgrade(directory, revision, sql, tag, x_arg)
  File "/usr/local/lib/python3.6/site-packages/flask_migrate/__init__.py", line 259, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/usr/local/lib/python3.6/site-packages/alembic/command.py", line 254, in upgrade
    script.run_env()
  File "/usr/local/lib/python3.6/site-packages/alembic/script/base.py", line 427, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/usr/local/lib/python3.6/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
    module = load_module_py(module_id, path)
  File "/usr/local/lib/python3.6/site-packages/alembic/util/compat.py", line 83, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "migrations/env.py", line 100, in <module>
    run_migrations_online()
  File "migrations/env.py", line 93, in run_migrations_online
    ctx.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/usr/local/lib/python3.6/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/usr/local/lib/python3.6/site-packages/alembic/runtime/migration.py", line 330, in run_migrations
    step.migration_fn(**kw)
  File "/usr/src/app/migrations/versions/fabf2ca39860_.py", line 27, in upgrade
    sa.PrimaryKeyConstraint('attr_id', 'device_id')
  File "<string>", line 8, in create_table
  File "<string>", line 3, in create_table
  File "/usr/local/lib/python3.6/site-packages/alembic/operations/ops.py", line 1120, in create_table
    return operations.invoke(op)
  File "/usr/local/lib/python3.6/site-packages/alembic/operations/base.py", line 319, in invoke
    return fn(self, operation)
  File "/usr/local/lib/python3.6/site-packages/alembic/operations/toimpl.py", line 101, in create_table
    operations.impl.create_table(table)
  File "/usr/local/lib/python3.6/site-packages/alembic/ddl/impl.py", line 194, in create_table
    self._exec(schema.CreateTable(table))
  File "/usr/local/lib/python3.6/site-packages/alembic/ddl/impl.py", line 118, in _exec
    return conn.execute(construct, *multiparams, **params)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/sql/ddl.py", line 68, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1009, in _execute_ddl
    compiled
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "attrs" does not exist
 [SQL: '\nCREATE TABLE pre_shared_keys (\n\tattr_id INTEGER NOT NULL, \n\tdevice_id VARCHAR(8) NOT NULL, \n\tpsk BYTEA NOT NULL, \n\tPRIMARY KEY (attr_id, device_id), \n\tFOREIGN KEY(attr_id) REFERENCES attrs (id), \n\tFOREIGN KEY(device_id) REFERENCES devices (id)\n)\n\n'] (Background on this error at: http://sqlalche.me/e/f405)


PSF stage does not work interactively with 64-bit IRAF

The interactive option of the PSF stage does not work with 64-bit IRAF.
This is an issue for anyone running the pipeline on Catalina and for the current docker file
This stage is recommended for creating the PSF for template images and is useful for troubleshooting a poor PSF (say one of your PSF stars is a close to another star - creating a double peaked PSF).
This is the error you get:
Killing IRAF task `psf'
Traceback (most recent call last):
 File "/usr/local/lib/python2.7/site-packages/lsc/lscpsfdef.py", line 382, in ecpsf
  photmag, pst, fitmag = psffit(img, fwhm, psfstars, hdr, interactive, _datamin, _datamax, psffun, fixaperture)
 File "/usr/local/lib/python2.7/site-packages/lsc/lscpsfdef.py", line 208, in psffit
  verify=False, verbose=False)
 File "/usr/local/lib/python2.7/site-packages/pyraf/iraftask.py", line 767, in __call__
  return self.run(*args, **kw)
 File "/usr/local/lib/python2.7/site-packages/pyraf/iraftask.py", line 359, in run
  self._run(redirKW, specialKW)
 File "/usr/local/lib/python2.7/site-packages/pyraf/iraftask.py", line 811, in _run
  "\n"+str(value))
IrafError: Error running IRAF task psf
IRAF task terminated abnormally
ERROR (851, "Cannot restore graphics world coordinate systems")

If this is something we actually want to fix - these links might be useful (although I'll note the STScI trac links and the NOAO ftp link is broken)

https://iraf.net/forum/viewtopic.php?showtopic=1469330
https://github.com/iraf-community/iraf/issues/40

We tried having the docker build a 32-bit machine with 32-bit IRAF but ran into issues with having the files stored outside IRAF on a 64 bit machine (the inode number was 64 bit). It appears this issue is not solvable without rewriting IRAF.


Downloads badge

Request details
Download badges require dedicated permission layer to enable/disable public access to protected by default statistics.

+1


Fix the warning found by https://github.com/apache/incubator-nuttx/pull/7391

Summary
Fix the compiler waring
Impact
Minor
Testing
Pass CI

Let's sue relative path in first commit message

Testing
Pass CI

@xiaoxiang781216
Hmm, the CI is still failing. How did you test this PR?
====================================================================================
Configuration/Tool: zkit-arm-1769/nxhello,CONFIG_ARM_TOOLCHAIN_GNU_EABI
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Disabling CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI
  Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Building NuttX...
chip/lpc17_40_serial.c: In function 'arm_earlyserialinit':
Error: chip/lpc17_40_serial.c:1602:25: error: implicit declaration of function 'lpc17_40_uartcclkdiv'; did you mean 'lpc17_40_uartdl'? [-Werror=implicit-function-declaration]
 1602 |   g_uart0priv.cclkdiv = lpc17_40_uartcclkdiv(CONFIG_UART0_BAUD);
      |                         ^~~~~~~~~~~~~~~~~~~~
      |                         lpc17_40_uartdl
cc1: all warnings being treated as errors
make[1]: *** [Makefile:144: lpc17_40_serial.o] Error 1

Testing
Pass CI

@xiaoxiang781216 Hmm, the CI is still failing. How did you test this PR?

This PR try to fix the warning reported by clang, all changes are minor fix without the functionality change, so all CI pass is good to verify the change is good.

@xiaoxiang781216 please update commit message in the first commit to use relative file path or just a file name

Done.

https://github.com/apache/incubator-nuttx/pull/7391


Question about Pybryt and Jupyter notebook installation

Sorry about I did not raise the issue until now.
As I mentioned previously in this issue, the Pybryt  cannot work properly on my machine.
Though everything works fine when I use Jupyter Lab, I will always receive the same error message ( ' ValueError: max() arg is an empty sequence' ) whenever I tried to run the Pybryt to check the same code on my own machine, no matter what the code does, like this one.

ValueError                                Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_13396/4254411162.py in
1 with pybryt.check(pybryt_reference(1, 11)):
----> 2     num_digits(999_999_999)
D:\STUDY\ANACONDA\envs\introduction-to-python\lib\site-packages\pybryt\student.py in exit(self, exc_type, exc_value, traceback)
422
423     def exit(self, exc_type, exc_value, traceback):
--> 424         tracing_off(save_func=False)
425
426         if self._frame is not None:
ValueError: max() arg is an empty sequence

I suspect that the pybryt does not work properly because my installation, but am not sure that this error message is necessarily related to it. Months ago, after I installed jupyter notebook and tried to run the lectures on my machine, I kept encountering with the problem of dead kernel, and the Anaconda prompt gave error message like this

ImportError: DLL load failed while importing win32api: 找不到指定的模块。

('找不到指定的模块' means 'The specified module could not be found')
And after lots of searching, I solved this problem by running these lines while I do not really understand what cause my problem either what exactly these lines actually do.
conda install -c conda-forge pywin32
conda install -c anaconda jupyter_client
conda install -c conda-forge jupyter_core

Is there anyway to fix the problem? Thank you very much in advance.

Hi @acse-20449ecc, thank you for your question, and we are sorry you encountered this issue.
We recommend installing all packages you need for the pre-sessional materials using environment.yml file. This way, we can ensure all your dependencies are correct and installed in a separate conda environment. You will learn about conda environments in Modern Programming Methods course :)
I suspect that, in your case, by installing JupyterLab and PyBryt separately, you installed ipykernel >= 6.0 which is incompatible with PyBryt at the moment.
I will close this issue, but please feel free to reopen it if this does not resolve your issue. Thank you for your valuable feedback.


fix: VisionCamera/VisionCameraProxy.h file not found

In v4 of VisionCamera the public headers changed from
ios/Frame Processor/VisionCameraProxy.h
to
ios/FrameProcessors/VisionCameraProxyHolder.h
But this was not updated in vision-camera-resize-plugin.
There is an issue reported #65 that can be re-created if you install the pods with
USE_FRAMEWORKS=static pod install
and then a build.
With the changes in this PR, builds are successful and the example app has been successfully installed on an iPhone.

nice, thank you!

Just wanting to let anyone know, I had a hard time receiving that updated version/fix by just installing the package and with @latest.
This command fixed it: yarn add mrousavy/vision-camera-resize-plugin#main
Dont know if this is on me or something else.

Just wanting to let anyone know, I had a hard time receiving that updated version/fix by just installing the package and with @latest.
This command fixed it: yarn add mrousavy/vision-camera-resize-plugin#main
Dont know if this is on me or something else.

The latest release is 3.1.0 and there has not been any new release made after this PR was merged to main. This is why you only get the fix when using the main branch instead of the latest version.
Here you can see the diff between version 3.1.0 and the current main:
https://github.com/mrousavy/vision-camera-resize-plugin/compare/v3.1.0...main

@mrousavy hey
When can we see this in an official release?
Could you make a patch version that will include this fix?
installing it though v3.1.0...main is not very safe so I'd rather not
many thanks

@mrousavy is it possible to have a small release to fix this problem ?


Interval intersect with null throws java null pointer exception

Try to run this CQL:
define x: Interval[1, 10] intersect Interval[5, null)

Expected result is null, but actual result is the CQL Engine dies with a java.lang.NullPointerException.
This bug is demonstrated in a CQL Engine test failure of CqlIntervalOperatorsTest.xml -> TestIntersectNull.

I consider pull request #82 in particular and also possibly #80 to block any attempt to fix issue #44, as they might have the same cause; or, if the cause is different, the fix probably involves the same area of the code.  When the above 2 pull requests are merged, then #44 would be un-blocked.

Resolved by #80