Bug Fixes and Test Script Update

This pull request addresses a bug related to incorrect byte seeking in obfuscated scripts when using Python 3.6. Additionally, it updates the test scripts to include a Dockerfile for creating virtual environments using Miniconda and a test script (test.sh) to execute pytest across various Python versions (3.6 to 3.10). The README.md file is also updated to provide instructions for running the updated test scripts with Docker Engine.
Changes Made:

Bug Fixes:
Fixed the issue where obfuscated scripts were seeking an incorrect byte position in Python 3.6.
The fix ensures that byte seeking now operates correctly.

Test Script Updates:
Add dockerfile for creating virtual environments using Miniconda.
Add test.sh to execute pytest across various Python version (3.6 ~ 3.10).

Documentation:
Update README.md to provide instructions for running the updated test scripts with Docker Engine.

Summary by CodeRabbit

New Features

Added timezone configuration for Asia/Taipei in the Docker environment setup.
Enhanced package obfuscation tool to determine header size based on Python version.

Documentation

Added testing section with Docker instructions in README.md.

Tests

Automated Python environment creation and testing across multiple versions.

Hey @weber12599 for some reason I wasn't notified about your PR, thanks so much, first every PR on this repo :) Will review it the next days, and update should be out in a few days.

Thanks for update! Looking forward to the review.

@weber12599 This is now released in 1.0.0


ISPN-9016 Component metadata serialVersionUUID

https://issues.jboss.org/browse/ISPN-9016

Oops, I had made this change a really long time ago but now ComponentMetadata already has a serialVersionUUID. And yet the IDE-build classes are still sometimes not able to load the component metadata generated by the Maven build for some reason...


Add Core to network.c

Adding Core to network.c and add the stax/core logo to gylphs.
Homepage: https://coredao.org/
Documentation: https://docs.coredao.org/developer/
Chain ID: 1116
slip-0044: https://github.com/satoshilabs/slips/pull/1629/files

Hello @denalimarsh , looks like the Stax icon doesn't pass the CI. Can you please fix it ?
Here is the template, this tool may help as well.

@vforgeoux-ledger generated a new Stax icon using the tool and updated the PR. Could you rerun the CI? Thanks!

@vforgeoux-ledger generated a new Stax icon using the tool and updated the PR. Could you rerun the CI? Thanks!

✅ , remaining failing checks are on our side. Thanks @denalimarsh

Already added in #516


feat: Make the command server shortcut configurable

Sounds good. We also need to discuss what default shortcut we want for people to use on the different platform, see https://github.com/hands-free-vim/neovim-talon/issues/20
then I guess we need to set the setting for the different platforms by default in neovim-talon?

Me changing this is pending on if ctrl-` works on Windows, in which case we can have a single default, otherwise I will set the default based on the platform. See https://github.com/saidelike/cursorless/pull/2

Me changing this is pending on if ctrl-` works on Windows, in which case we can have a single default, otherwise I will set the default based on the platform. See saidelike/cursorless#2

I would be tempted to keep different shortcuts for different platform as ctrl-shift-f12 is better for Windows so each platform has its own prefered one

We might be able to not even set a default setting at all in talon and let the user set it only if needed?

Fixed now. I mix linux and mac shortcut for now, as I did that in cursorless.nvim as well. Can change it if/when it becomes an issue to actually separate, but I think it should be ok for now.

I would set the default setting in neovim-talon based on platform


Home-assistant doesn't build on unstable

Issue description
Home assistant package, version 0.86.4 does not build in unstable channel.
It seems it tries to build a wheel file (command bdist_wheel), but fails because python-wheel is probably missing.
Steps to reproduce
Use services.home-assistant.package = unstable.home-assistant in nixos config.
Technical details
building '/nix/store/w9kg3n0yyfdrrksrd1iis5s317gs1xp4-homeassistant-0.86.4.drv'...
unpacking sources
unpacking source archive /nix/store/pxv5z4gm2wc4rwza3rnvpsw0lcn218bi-source
source root is source
setting SOURCE_DATE_EPOCH to timestamp 315619200 of file source/virtualization/vagrant/provision.sh
patching sources
configuring
building
usage: nix_run_setup [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: nix_run_setup --help [cmd1 cmd2 ...]
   or: nix_run_setup --help-commands
   or: nix_run_setup cmd --help

error: invalid command 'bdist_wheel'
builder for '/nix/store/w9kg3n0yyfdrrksrd1iis5s317gs1xp4-homeassistant-0.86.4.drv' failed with exit code 1
cannot build derivation '/nix/store/zh1vshn4pr0pgkdvxn1vx297wghwxh28-unit-home-assistant.service.drv': 1 dependencies couldn't be built

Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

system: "x86_64-linux"
host os: Linux 4.14.95, NixOS, 18.09pre-git (Jellyfish)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.1.3
channels(root): "nixos-18.09.2127.5225d4bf019, unstable-19.03pre168613.ffc604e5579"
nixpkgs: /var/nixpkgs

I don't see any failure at https://hydra.nixos.org/job/nixpkgs/trunk/home-assistant.x86_64-linux or https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.home-assistant.x86_64-linux.
Can you please tell me exactly what unstable.home-assistant refers to so I can reproduce it?
Next time, please ping the maintainer.

Actually, using nix build -f https://github.com/NixOS/nixpkgs/archive/ffc604e5579.tar.gz home-assistant (commit ffc604e5579 is apparently what your unstable refers to) yields a different package (/nix/store/iqgjd1b3mlk5fgd73m1zn9a6kx5y7y9q-homeassistant-0.86.4).
Your configuration of the Home Assistant service might add some additional dependencies which cause the build failure. You might want to paste that configuration or, even better, find out which packages are added to extraComponentPackages.

Thank you for your answer ! Sorry for not mentioning you when I opened the issue (I sort of thought it was automatic)...
I do have a specific configuration because my lifx lights were not detected because of an import problem (which reminds me I should have opened an issue/fix at the time...). I didn't think this was causing the problem because I didn't see it in the stack trace...
For the record, I had the following stack trace with the lifx component:
 Traceback (most recent call last)
   File "/nix/store/mkgffgcfk63fkrqz1f7pnfyms1ffq91j-homeassistant-0.86.4/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
     SLOW_SETUP_MAX_WAIT, loop=hass.loop)
   File "/nix/store/ydk0mfpvn9smcmn72wc9i20slv1d2b79-python3-3.7.2/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
     return fut.result()
   File "/nix/store/mkgffgcfk63fkrqz1f7pnfyms1ffq91j-homeassistant-0.86.4/lib/python3.7/site-packages/homeassistant/components/light/lifx.py", line 157, in async_setup_entry
     lifx_manager = LIFXManager(hass, async_add_entities)
   File "/nix/store/mkgffgcfk63fkrqz1f7pnfyms1ffq91j-homeassistant-0.86.4/lib/python3.7/site-packages/homeassistant/components/light/lifx.py", line 211, in __init__
     self.effects_conductor = aiolifx_effects().Conductor(loop=hass.loop)
   File "/nix/store/mkgffgcfk63fkrqz1f7pnfyms1ffq91j-homeassistant-0.86.4/lib/python3.7/site-packages/homeassistant/components/light/lifx.py", line 129, in aiolifx_effects
     import aiolifx_effects as aiolifx_effects_module
 ModuleNotFoundError

I use the following configuration to build the home-assistant (where aiolifx/default.nix and aiolifx_effects/default.nix are python packages I will try to submit upstream - both build correctly):
{config, pkgs, ...}:
with pkgs.python3Packages;
let
unstable = import <unstable> {};
python = unstable.python3.override {
    packageOverrides = self: super: rec {
      aiolifx = super.callPackage ./hass/lifx/aiolifx/default.nix { };
      aiolifx_effects = super.callPackage ./hass/lifx/aiolifx_effects/default.nix { };
    };
  };
in
{
      services.home-assistant = {
        enable = true;
        # package = unstable.home-assistant;
        package = unstable.home-assistant.override {
          extraPackages = ps: with ps; [
            xmltodict
            distro
            python.pkgs."aiolifx_effects"
            # pyopenuv
          ];
        };
        autoExtraComponents = true;
    };
}

Unstable is the current unstable channel (nix-channel --add unstable https://nixos.org/channels/nixos-unstable unstable).
If I switch back to original unstable.home-assistant, it works.
Am I missing something ?

I think the problem is that python is different from the home-assistant package is using. It's even a different version (3.6 vs 3.7).
Try the following:
package = unstable.home-assistant.override {
  extraPackages = ps: let
    aiolifx = ps.callPackage ./hass/lifx/aiolifx/default.nix { };
    aiolifx_effects = ps.callPackage ./hass/lifx/aiolifx_effects/default.nix {
      inherit aiolifx;
    };
  in with ps; [
    xmltodict
    distro
    aiolifx_effects
  ];
};

Actually, the best way to do this is
package = unstable.home-assistant.override {
  packageOverrides = self: super: {
    aiolifx = self.callPackage ./hass/lifx/aiolifx/default.nix { };
    aiolifx_effects = self.callPackage ./hass/lifx/aiolifx_effects/default.nix { };
  };
  extraPackages = ps: with ps; [
    xmltodict
    distro
    aiolifx_effects
  ];
};

Since
nix-build -I nixpks=https://github.com/NixOS/nixpkgs/archive/ffc604e5579.tar.gz -E "with import ./. {}; home-assistant.override { extraPackages = ps: with ps; [ distro xmltodict ]; }"

builds just fine, the only thing I can recommend doing is setting autoExtraComponents = false and removing the extraPackages one by one to nail down which dependency is causing the build failure.

THANK YOU!
I tried the last version you suggested and it worked 😄 !
The thing I had before always seemed awkward to me (but it used to work with previous hass versions...). It is difficult to find up-to-date information regarding python and nix because there has been a lot of evolutions (.override, overlays...).
Should I try to submit a PR to add those package to the lifx component dependencies and nixpkgs ?

I tried the last version you suggested and it worked  !

I'm glad I was able to help.

It is difficult to find up-to-date information regarding python and nix because there has been a lot of evolutions (.override, overlays...).

Your previous usage of packageOverrides was almost correct. You would have had to add home-assistant.override { python3 = python; } to make it perfect. However, that would not have worked because of https://github.com/NixOS/nixpkgs/issues/44426. That's why I added the home-assistant-specific packageOverrides argument in https://github.com/NixOS/nixpkgs/commit/33be3c463022748449c46e4027d23ceb3d74671c#diff-7ce5df58d1f5c8bb8215b0f75c81b8a0R9. It won't work for other packages.

Should I try to submit a PR to add those package to the lifx component dependencies and nixpkgs ?

I'd warmly welcome such a PR :)


Fix when() behavior for empty array case

Currently, calling when on an empty array returns a promise that will never be resolved. This modifies it to instead return an immediately-fulfilled promise.

Thanks. I am upset this snuck through. The object version has this test.

Pushed 2.0.6

Thanks!


Get current location automatically

I think it would be better if sourceLatitude & sourceLongitude is not defined, capture the current location automatically. It would be a good feature for this package. Thanks in advance 🙏🏻

In most cases, you are not required to specify those, they are optional.

Thank you for your response @tschoffelen. Yes you are right they are optional, But what I suggest is setting the devices current location for it would be more useful. Then the user can simply click the Directions and found best route. This is my own suggestions for improvement. Please feel free to close this issue if it is not acceptable in this place 😊

I see what you mean. The reason we don't do that at the moment is that it would make the library more difficult to use, because:

You'd always need to ask permission to use the user's location if you want to use this library.
There would be a delay between the user pressing the button and actually opening the directions app, since getting the user's current location is an asynchronous task.

And since most apps that you can open with the maps link already assume you want directions from your current location, I don't think this is something we should add ourselves.

I agree with you @tschoffelen. Thanks for your valuable comments and you time. I will close this issue.


Global launch configuration type gets ignored

VSCode Version: 1.45.0-1588868285
OS Version: Ubuntu 20.04

Steps to Reproduce:

Follow the documentation to create a "launch" object inside settings.json (or use the attached example).
Add a configuration in it, for example: "type": "cppdbg".
This then works fine and the user can launch .cpp files with it.
But when the user opens e.g. a python file, the "cppdbg" launch method is used again, making it impossible to run anything other than cpp files.

Shouldn't the launch "type": "cppdbg" only apply to .cpp files, and not to e.g. python files?
It is possible that I misunderstood something from the documentation, I'm a new vscode user.

Does this issue occur when all extensions are disabled?: No

Yeah you need to create a new configuraton for your python files.
I suggest you ask this on stack overflow, our gitter https://gitter.im/Microsoft/vscode or to simply read our docs https://code.visualstudio.com/docs/introvideos/debugging

Oh I know how to create per-project .vscode/launch.json files; the problem was that there's no way to set global configurations per language.
I would call this a bug, others could call it a feature-request, but in any case, the answer is "won't fix". :)
Thank you for the feedback!


File Organiser

I can create file organiser using python using os , which can seperate files into different folders like images / music  / docs etc .

I can create file organiser using python using os , which can seperate files into different folders like images / music / docs etc .

yeah sure do it.

I have completed the task !!


Update example applications

I've been trying to update to 0.7.3 to 0.8.0-beta.2 and remove the warnings about deprecated mixins without success.
It's hard to grasp the overall picture of how a 0.8.0-style authentation without a sample application.
Updating the current sample applications (or create new examples while this branch is still in beta) will help a lot.

It would be great if the examples were Ember CLI applications - definitely would have to be once #522 merge of course. PR would be great!

The example applications will have to be rewritten and moved to another app when 1.0 is ready anyway.


Issue with Kanji

Windows Terminal version (or Windows build number)
1.7.1033.0
Other Software
No response
Steps to reproduce

This file name, track 36, contains Kanji. OneDrive shows an error but displays the kanji. Explorer doesn't show the kanjis at all. cmd.exe (top left) shows with placeholder and Terminal (boton left) does something really weird. Looks like it kinda fuses its name with Track 35.
Expected Behavior
Showing the actual filename
Actual Behavior
Behaving weird. Pic related

It's curious that we're not emitting this through conpty as a C1 control character and not in fully-realized UTF-8. 🤔
Can you capture the output to a file, and share that with us?
dir > blah.txt
type blah.txt
REM - ensure that it still reproduces in the copy^ :)

We're wondering whether the filenames are encoded in SHIFT-JIS (and that's why OneDrive's failing and has replaced them with an unexpected character?)

output.txt

output.txt

It looks like those control characters have just been converted to question marks when piped to the file. However, this is really quite easy to reproduce. If you open a WSL bash shell, you can do something like this to create an equivalent file:
echo Test > $'\u0090Shinjitsu no Shi \u008D(TV-Size).flac'
Then go and view that file from a cmd shell in conhost and Windows Terminal.
In conhost, the C1 controls are displayed as error glyphs, and in Windows Terminal they are interpreted. The U+0090 is the start of a DCS sequence, so that eats all the following characters up to the U+008D. And U+008D is a Reverse Index control, which moves the cursor up to the previous line. You then end up overwriting the start of the previous filename with the remaining characters - (TV-Size).flac.

It's curious that we're not emitting this through conpty as a C1 control character and not in fully-realized UTF-8. 🤔

I'm assuming it is converted to UTF-8, but that doesn't change its meaning. It probably starts out as a single byte value in code page 850 (e.g. 0x90), is converted to a two byte UCS-2 value (0x00 0x90) when read in by an ANSI API and stored in the text buffer, and finally converted to a UTF-8 sequence (0xC2 0x90) when written out to the conpty pipe. No matter what the encoding, though, it's still the same value. And on the other side of the pipe, that UTF-8 sequence is just going to be converted back to the UCS-2 code point and interpreted as the C1 control character U+0090.

Okay, great explanation! This sounds exactly like #4363 to me then!
/dup #4363


Add CLI

Description
Add CLI: From command line, let user choose workspace, copy template notebook there, update filepaths and open notebook in JLab.
Todos

[x] Dynophore.from_file: Change input folder to DynophoreApp (not DynophoreApp.data)
[x] Change xxx-dynophore.pml to dynophore.pml (this needs to be changed in ilib as well)
[x] Add CLI that allows users to start their own dynophore notebook from the command line.
dynoviz create --dyno path/to/dyno/folder --pdb path/to/pdb/file --dcd path/to/dcd/file --workspace path/to/workspace/folder opens user notebook in JLab

Questions
None.
Status

[x] Ready to go

Closing this PR - will need to iterate over CLI unit tests in a separate PR though (more thorough testing).


feat: add a shorebird_tester for aot testing

Doesn't work yet.

Requires:
rustup target add x86_64-apple-darwin
cargo build --release --target=x86_64-apple-darwin

Current status:
eseidel@erics-mbp src % ./out/host_profile_unopt/shorebird_tester foo.vmcode
[FATAL:flutter/runtime/dart_snapshot.cc(98)] Failed to load ELF at foo.vmcode error: Architecture mismatch.
zsh: abort      ./out/host_profile_unopt/shorebird_tester foo.vmcode

Actually:
rustup target add x86_64-apple-darwin
cd third_party/updater
MACOSX_DEPLOYMENT_TARGET=10.14 cargo build --target=aarch64-apple-darwin --release


When Python global path is not correctly defined no error message is shown and Hydrogen silently fails

Prerequisites

[ ] Have you checked the solutions in our troubleshooting guide for common problems ? YES
[ ] Have you checked that your issue isn't already filed ? YES

Description
If the Python global path is not correctly set, Hydrogen fails without showing any message to the Atom user.
Steps to Reproduce

Install Anaconda with the default settings (also allowing registration of Anaconda Python to the global path)
==> Python fails to be added to the global path and cmd -> Python says "File not found"
Install Atom
Install Hydrogen
Install IJavascript
conda install nodejs
npm -g IJavascript
ijsinstall
Hydrogen: Update Kernels
IJavascript found!
Open a js file and run Hydrogen: Run from the command palette or SHIFT+ENTER
==> cursor goes to the next line and nothing happens
What happened?!
a) CTRL+SHIFT+I
b) Look into the console
c) See that an error was thrown related to "Python

Versions

OS version:
Windows 10

atom --version

1.41.0, the latest Atom version

apm --version

Not relevant

Hydrogen version:

[2.31.1] , the latest Hydrogen version as of now
Plugins
Have you installed and activated any of the Hydrogen plugins below ?

[ ] hydrogen-python
[ ] Hydrogen Launcher
[ ] Data Explorer
None of them

Logs
[Please post any error logs and the output of the developer tools as described in our Debugging Guide.]
Uncaught (in promise) Error: UNKNOWN: unknown error, lstat 'C:\Users\myUser\AppData\Local\Microsoft\WindowsApps\python.EXE'
    at Object.realpathSync (fs.js:1435:7)
    at Object.fs.realpathSync (ELECTRON_ASAR.js:306:40)
    at pathext.some.ext (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\jupyter-paths\index.js:55:44)
    at Array.some (<anonymous>)
    at PATH.some.bin (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\jupyter-paths\index.js:48:20)
    at Array.some (<anonymous>)
    at guessSysPrefix (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\jupyter-paths\index.js:44:8)
    at dataDirs (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\jupyter-paths\index.js:200:19)
    at Promise (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\jupyter-paths\index.js:196:15)
    at new Promise (<anonymous>)
    at Object.dataDirs (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\jupyter-paths\index.js:193:12)
    at Object.findAll (C:\Users\myUser\.atom\packages\Hydrogen\node_modules\kernelspecs\lib\traverse.js:91:13)
    at KernelManager.<anonymous> (file:///C:/Users/myUser/.atom/packages/Hydrogen/lib/kernel-manager.js:89:34)
    at Generator.next (<anonymous>)
    at step (C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:273)
    at C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:443
    at new Promise (<anonymous>)
    at KernelManager.<anonymous> (C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:99)
    at KernelManager.<anonymous> (file:///C:/Users/myUser/.atom/packages/Hydrogen/lib/kernel-manager.js:136:36)
    at Generator.next (<anonymous>)
    at step (C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:273)
    at C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:443
    at new Promise (<anonymous>)
    at KernelManager.<anonymous> (C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:99)
    at KernelManager.<anonymous> (file:///C:/Users/myUser/.atom/packages/Hydrogen/lib/kernel-manager.js:104:17)
    at Generator.next (<anonymous>)
    at step (C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:273)
    at C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:443
    at new Promise (<anonymous>)
    at KernelManager.<anonymous> (C:\Users\myUser\.atom\packages\Hydrogen\lib\kernel-manager.js:11:99)

Expected behavior
I expected a message to be shown saying the following:

Python is not installed or Python is not correctly registered in the global system PATH. Please install Python or add it to your global system PATH if already installed for Hydrogen to correctly connect to the kernel.

Screenshots
[If applicable, add screenshots to help explain your problem.]
Additional context
[Add any other context about the problem here.]

I don't know if we can truly tell that python path is incorrect. But we could do a catch all that let's users know python was not installed correctly and provide a stack trace. I'll look into for you.

@wadethestealth Thank you! I think that would be a great addiction to have for all the users that are experiencing problems during the installation.

Hi, do you have any new information on how to resolve this bug?
Thank you

@jj-404 you set your python path to a valid install of python. This issue is only open to track better reporting of these errors and is not an actual issue.

@jj-404 you set your python path to a valid install of python. This issue is only open to track better reporting of these errors and is not an actual issue.

How do we change python path?

@jonnythemarketer it's in your systems environment variables or your kernel.json file depending on how you set everything up. A quick google search can show you where to locate both of these options.

@wadethestealth , thanks for the help. I've updated the Path variable. However, hydrogren is still pointing to the same location in OPs screenshot 'Microsoft\WindowsApps\python.exe'. This is not the path listed in my environment variable.

@jonnythemarketer there are two types of environment variables one for system wide and one for a specific user.  There are two OK buttons you have to hit to save changes, the updates werent being saved because I was closing menus before hitting the second ok. Confirming this fixed my problem. I hit a slew of other problems but Google searches solved all of those.
Thanks again for your help!


MS Partner API to get License subscription and pricing details

https://docs.microsoft.com/en-us/partner/develop/api-authentication#application-and-user-access
I've created application with permissions as mentioned in above document.
While requesting for access token, tried with following scopes one by one, with no luck.
https://api.partner.microsoft-int.com/.default
https://reseller.microsoft.com/.default
https://api.partner.microsoft.com
When I use the token to call api, I get a AccessDenied.
API Response
StackOverflow links:
https://stackoverflow.com/questions/72830645/ms-partner-api-to-get-license-subscription-and-pricing-details
https://stackoverflow.com/questions/64783363/microsoft-partner-api-access-denied

Hopefully you figured this out but if anyone stumbles on this, I think the scope you want is "https://api.partnercenter.microsoft.com/user_impersonation".


how to use the lib with express res.sendFile

Did you see https://github.com/Kikobeats/cacheable-response#send ?
Essentially, calling res.sendFile instead of res.send


Introduce Structured logging

https://structlog.readthedocs.io/en/stable/
https://logmatic.io/blog/python-logging-with-json-steroids/

Might be useful this: https://github.com/nigma/django-common-configs


Latest release won't build in Carthage with Xcode 10.2

The latest release won't build in Carthage with Xcode 10.2 due to Swift 3.0 being deprecated.
The master branch is compatible, but a new release hasn't been created yet. @toineheuvelmans would it be possible to create a new release including the new changes on master?

@rzulkoski 1.0.3 should fix this. Let know if there're any troubles?

Works great, thanks @ianbytchek!


Async core and import-once example

Makes codebase fully async, and also adds an example to the readme for working with the import-once module.
Note: this is branched off of my earlier PR (#34) because I believe that there would be conflicts otherwise. However, I'm targeting develop with this PR.
Fixes #35

Published in v2.8.0

Whoot!


"No ALB hostnames for ingress" when creating Ingress in private VPC

Thanks for your work on ALB Ingress controller it works in public VPC for me. But I am facing issue when trying to use it in private VPC. The error I get is coming from https://github.com/coreos/alb-ingress-controller/blob/2478759de3b5ecbfc7ca0933a326b8e0a50ee4ec/controller/controller.go#L189
I0804 01:48:52.940898       1 controller.go:423] ingress backend successfully reloaded...
I0804 01:48:56.456720       1 log.go:63] [ALB-INGRESS] [2048-game-2048-ingress] [ERROR]: No ALB hostnames for ingress
I0804 01:48:56.456756       1 status.go:358] updating Ingress 2048-game/2048-ingress status to [{<IP_ADDRESS> }]
I0804 01:48:56.461073       1 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"2048-game", Name:"2048-ingress", UID:"0efa4f4f-78b7-11e7-8cdb-0a52ab23916e", APIVersion:"extensions", ResourceVersion:"4782", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress 2048-game/2048-ingress
I0804 01:49:26.455541       1 log.go:63] [ALB-INGRESS] [2048-game-2048-ingress] [ERROR]: No ALB hostnames for ingress

These are the logs from ingress controller. Is private VPC not supported ?

Looking at the code:
	if a.LoadBalancer.Current != nil && a.LoadBalancer.Current.DNSName != nil {
		hostnames = append(hostnames, api.LoadBalancerIngress{Hostname: *a.LoadBalancer.Current.DNSName})
	}

	if len(hostnames) == 0 {
		a.logger.Errorf("No ALB hostnames for ingress")
		return nil, fmt.Errorf("No ALB hostnames for ingress")
	}

In the albingress.go there is a check against DNSName (from api.go in aws-sdk-go)
type LoadBalancer struct {

        ...

	// The public DNS name of the load balancer.
	DNSName *string `type:"string"`

        ...

Judging the outcome and aws-sdk documentation  the DNSName is empty.

@venth Thanks for looking into this.
The ALB provisioning fails actually so there is no ALB or target group created for this. Think the hostname error is misleading that happens on the latest/host-based-routing image.
IMO, the message is misleading.
I am not quite clear on how ingress on private VPC are suppose to work and what I am missing that my ingress does not have an IP assigned to endpoint. My k8s resource yaml is:
apiVersion: v1
kind: Namespace
metadata:
  name: "2048-game"
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: "2048-deployment"
  namespace: "2048-game"
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: "2048"
    spec:
      containers:
      - image: alexwhen/docker-2048
        imagePullPolicy: Always
        name: "2048"
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: "service-2048"
  namespace: "2048-game"
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
  selector:
    app: "2048"
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: "2048-ingress"
  namespace: "2048-game"
  annotations:
    alb.ingress.kubernetes.io/scheme: internal
    alb.ingress.kubernetes.io/subnets: subnet-blahblah
    alb.ingress.kubernetes.io/security-groups: sg-blahblah
    kubernetes.io/ingress.class: "alb"
  labels:
    app: 2048-ingress
spec:
  rules:
  - host: 2048.smalli.nearmap.com
    http:
      paths:
      - path: /
        backend:
          serviceName: "service-2048"
          servicePort: 80

Also I tried the same on quay.io/coreos/alb-ingress-controller:0.8 which gives me correct error at least that ALB create failed:
I0901 02:16:16.351538       1 util.go:98] Request: elasticloadbalancing/&{CreateLoadBalancer POST / %!s(*request.Paginator=<nil>) %!s(func(*request.Request) error=<nil>)}, Payload: {
  Name: "smallapi-391b53bfbd6525f",
  Scheme: "internal",
  SecurityGroups: [
    "sg-2587d755",
    "sg-3a84d44a",
    "sg-619bcb11",
    "sg-8486d6f4",
    "sg-8a84d4fa",
    "sg-ca87d7ba",
    "sg-cd82d2bd"
  ],
  Subnets: ["subnet-7290cf5e","subnet-ba4818e0","subnet-cdc4d985"],
  Tags: [{
      Key: "Namespace",
      Value: "2048-game"
    },{
      Key: "IngressName",
      Value: "2048-ingress"
    },{
      Key: "Hostname",
      Value: "2048.small.nearmap.com"
    }]
}
I0901 02:16:16.403371       1 log.go:62] [ALB-INGRESS] [2048-game-2048-ingress] [ERROR]: Failed to create ELBV2 (ALB). Error: InternalFailure:
	status code: 500, request id: 88d5c98c-8ebb-11e7-a850-07564dc23592

Although this version tries without exponential backoff causing rate limiting shortly afterwards.

That hostname is in fact the ALB's hostname so that project such as kubernetes-incubator/external-dns are able to setup the appropriate DNS record for you.
An example echoservice shows the following ingress status update at the end of the manifest.
status:
  loadBalancer:
    ingress:
    - hostname: dev1-echoserver-echoserver-2ad7-asdfdasfa.us-east-2.elb.amazonaws.como

Reading through this ticket i'm a little confused where the root issue is. I'm sure much of the issue is rooted that our docs are out of date. We're working on this with https://github.com/coreos/alb-ingress-controller/pull/197.
I'd recommend trying version b30d8d28 and walk me through your observations if possible.
If an issue seems to persist, we'll consider adding it to the 1.0 milestone.

@joshrosso Thanks for that .. looking forward to 1.0
Tried #b30d8d28,  still no joys thought!
E0915 00:58:06.928913       1 albingress.go:282] [ALB-INGRESS] [2048-game/2048-ingress] [ERROR]: No ALB hostnames for ingress
I0915 00:58:06.928933       1 status.go:337] updating Ingress 2048-game/2048-ingress status to [{<IP_ADDRESS> }]
I0915 00:58:06.933267       1 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"2048-game", Name:"2048-ingress", UID:"d687fe44-99b0-11e7-a40a-0a01dc37f754", APIVersion:"extensions", ResourceVersion:"681012", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress 2048-game/2048-ingress

At least endpoint was assigned this time so I suspect its now upto the controller

@suneeta-mall, Yeah - if the ALB fails to provision or has some kind of issue, the update ingress status call can report this.
We've since added a check for the ingress status to ensure we only attempt ALB hostname sync on things that have reconciled correctly (see https://github.com/coreos/alb-ingress-controller/pull/197/commits/fd79f6a6c991aca2b262edd0c939824c87d0cd5a). We also did an update the core ingress library that impacted this to a degree.
You won't see this fix unless you run the version continued_stabilization. Note this branch/version if in flux right now as we're using it as the basis for getting the controller to 1.0.
If the issue does persist in that version, feel free to re-open this issue.

@joshrosso Thanks for that. I finally got around to retrying this. I can confirm that the ALB is provisioned correctly now. Having said that the route 53 entries are not created that alias to the ALB DNS. Am I missing something?
I manually created the record set alias for this and it was not quite functional hereafter too .. Any advise? Thanks!


A listener for Crop Overlay pressed

Like on setOnSetCropOverlayReleasedListener works when the touch overlay is released I didnt find any listener which works when Crop Overlay is touched and dragged. It would be really helpful in cases when one would like to hide all other views when dragging crop overlay.

PR is always welcome


Example code snippets in docstrings

The following breaks the docs:

Inconsistent code example indentation. These leads to broken markdown files. The easiest fix is to remove Examples since lazydocs picks that up and (out of the box) had weird formatting.   * wandb/apis/public/api.py (none have testing)

create_run_queue   Remove code at "Expected format of:..."
from_path Output builds, but the code snippet in markdown file is indent
runs
wandb/sdk/data_types

class Image
class Video
def box3d Missing ` around equal signs in: 0 <= r,g,b <= `

wandb.init This is how it renders, note how the unit tests impacts format:  `wandb.init()` spawns a new background process to log data to a run, and it also syncs
  data to wandb.ai by default, so you can see live visualizations.

  Call `wandb.init()` to start a run before logging data with `wandb.log()`: <!--yeadoc-test:init-method-log--> ```python
  import wandb

  wandb.init()
  # ... calculate metrics, generate media
  wandb.log({"accuracy": 0.9})

def log wandb_run.py Code examples work render fine so long as we don't have Examples indentation. E.g. If you look above in the description:

Not all code snippets are tested.

Note: The above list only breaking issues. There are other code indentation to fix throughout the docs.

Next steps:

Do we want to have the word Examples to have h3 title weight? Or can we remove this and have the content and code inline with the rest. Alternatively, I can create function(s) that look for the word "Examples" and processes them to render properly in markdown.
Do we want to test ALL code snippets? If yes, we'd need to modify some in order to satisfy these conditions.

Update: Testing the output markdown files in Hugo/Docsy, Hugo is not as picky with characters such as curly braces. So it seems that point #1 can be ignored.
However, point #2 is still relevant. Also, there are code snippets that need format fixing.

See this Jira ticket for latest updates: https://wandb.atlassian.net/browse/DOCS-1092


ChatBedrock doesn't work with Cohere Command R and Command R+ models

Running the ChatBedrock model with Cohere's new Command R and Command R+ models will throw a ValidationException.
When you invoke the following model:
llm = ChatBedrock(
    model_id="cohere.command-r-v1:0",
    model_kwargs={
        "temperature": 0.3,
        "max_tokens": 4096
    },
)

You will get the following error:
ERROR: Error raised by bedrock service: An error occurred (ValidationException) when calling the InvokeModel operation: Malformed input request: #: extraneous key [prompt] is not permitted, please reformat your input and try again.

This is likely because the new Command R models do not accept "prompt" as an input. It accepts "message". (Source).
This should be refactored to pass in a message key instead of prompt if Command R or R+ is used.

The Command R models also no longer accept "stream" as a parameter.
Opened up a pull request to fix this (https://github.com/langchain-ai/langchain-aws/pull/101).

@Adam-Thometz
For ChatBedrock use with the command models, use the converse API, here is some sample code.
params = {
    "region_name": "us-west-2",
    "model_id": "cohere.command-r-v1:0",
    "beta_use_converse_api": True
}
model = ChatBedrock(**params)
response = model.invoke("Hello!")

Closing this in favor of #238, where we are tracking the cohere model gaps.


mini.statusline: vim.diagnostic.is_enabled null reference

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md
[X] I have updated 'mini.nvim' to latest version

Module(s)
mini.statusline
Description
mini.statusline attempts to use the vim.diagnostic.is_enabled but it seems like this is a property that doesn't exist on vim.diagnostic. I'm fairly unfamiliar with the diagnostic api and a quick :h vim.diagnostic didn't produce anything for is_enabled. Leads me to think this call is just an "inverted" version from vim.diagnostic.is_disabled.
source: statusline.lua:648
if vim.fn.has('nvim-0.10') == 1 then
  H.diagnostic_is_disabled = function(_) return not vim.diagnostic.is_enabled({ bufnr = 0 }) end

Neovim version
0.10
Steps to reproduce
open file and navigate it
Expected behavior

Actual behavior
statusline crashes and produces an error notification: error executing lua .../share/nvim/lazy/mini.statusline/lua/mini/statusline.lua:649 attempt to call field 'is_enabled' (a nil value)

Switched it to
if vim.fn.has('nvim-0.10') == 1 then
  H.diagnostic_is_disabled = function(_) return vim.diagnostic.is_disabled({ bufnr = 0 }) end

Worked, I'll see if I have time to create a PR for this.

Ah, looks like I was running a neovim 0.10 build from an ancient commit, pulling that upstream fixed this for me.

Ah, looks like I was running a neovim 0.10 build from an ancient commit, pulling that upstream fixed this for me.

Yes, vim.diagnostic.is_enabled() is a (very) late addition to Neovim 0.10, but it is present in released version.

Thanks. I had this issue after an update recently and upgrading neovim helped


feat: Ability to generate CRD on maven compile phase (not only package)

Is it possible to generate by default the CRD on the compile phase with maven ?
If I well understand the CRD is generated in the package phase or when we use the dev mode.
I think it will be more convenient to generate it also in the compile phase.

It's generated during the compile phase, or, at least, it should be!

This is what I remember but for one day the CRD is generated only in the package phase.
I test with the sample (joke) of the extension and I have the same behavior.
What trigger the CRD generation ?

Here is a simple project generateed with the operator SDK:
operator-sdk init --plugins quarkus --domain fr.wilda --project-name hello-world-quarkus
Next: define a resource with:

operator-sdk create api --version v1 --kind HelloWorld

The mvn clean compile doesn't generate a CRD:
mvn clean compile
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< wilda.fr:hello-world-quarkus >--------------------
[INFO] Building hello-world-quarkus 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hello-world-quarkus ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hello-world-quarkus ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ hello-world-quarkus ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.400 s
[INFO] Finished at: 2022-03-12T23:49:20+01:00
[INFO] ------------------------------------------------------------------------
❯ ll target/classes
total 8
-rw-r--r--  1 sphilipp  staff   344B Mar 12 23:49 application.properties
drwxr-xr-x  3 sphilipp  staff    96B Mar 12 23:49 wilda
❯ ll target/
total 0
drwxr-xr-x  4 sphilipp  staff   128B Mar 12 23:49 classes
drwxr-xr-x  3 sphilipp  staff    96B Mar 12 23:49 generated-sources
drwxr-xr-x  3 sphilipp  staff    96B Mar 12 23:49 maven-status

The mvn clean package generate the CRD:
mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< wilda.fr:hello-world-quarkus >--------------------
[INFO] Building hello-world-quarkus 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hello-world-quarkus ---
[INFO] Deleting /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hello-world-quarkus ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ hello-world-quarkus ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ hello-world-quarkus ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ hello-world-quarkus ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ hello-world-quarkus ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ hello-world-quarkus ---
[INFO] Building jar: /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/target/hello-world-quarkus-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- quarkus-maven-plugin:2.6.3.Final:build (default) @ hello-world-quarkus ---
[INFO] [org.jboss.threads] JBoss Threads version 3.4.2.Final
[WARNING] [io.quarkus.kubernetes.deployment.KubernetesDeployer] A Kubernetes deployment was requested, but the container image to be built will not be pushed to any registry because "quarkus.container-image.registry" has not been set. The Kubernetes deployment will only work properly if the cluster is using the local Docker daemon. For that reason 'ImagePullPolicy' is being force-set to 'IfNotPresent'.
[WARNING] Found multiple Kubernetes config files [[/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml, /Users/sphilipp/dev/ovh/k8s/k8s-colima.yml, /Users/sphilipp/dev/ovh/k8s/kubeconfig-trillio.yml]], using the first one: [/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml]. If not desired file, please change it by doing `export KUBECONFIG=/path/to/kubeconfig` on Unix systems or `$Env:KUBECONFIG=/path/to/kubeconfig` on Windows.
[WARNING] Found multiple Kubernetes config files [[/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml, /Users/sphilipp/dev/ovh/k8s/k8s-colima.yml, /Users/sphilipp/dev/ovh/k8s/kubeconfig-trillio.yml]], using the first one: [/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml]. If not desired file, please change it by doing `export KUBECONFIG=/path/to/kubeconfig` on Unix systems or `$Env:KUBECONFIG=/path/to/kubeconfig` on Windows.
[WARNING] Found multiple Kubernetes config files [[/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml, /Users/sphilipp/dev/ovh/k8s/k8s-colima.yml, /Users/sphilipp/dev/ovh/k8s/kubeconfig-trillio.yml]], using the first one: [/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml]. If not desired file, please change it by doing `export KUBECONFIG=/path/to/kubeconfig` on Unix systems or `$Env:KUBECONFIG=/path/to/kubeconfig` on Windows.
[WARNING] Found multiple Kubernetes config files [[/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml, /Users/sphilipp/dev/ovh/k8s/k8s-colima.yml, /Users/sphilipp/dev/ovh/k8s/kubeconfig-trillio.yml]], using the first one: [/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml]. If not desired file, please change it by doing `export KUBECONFIG=/path/to/kubeconfig` on Unix systems or `$Env:KUBECONFIG=/path/to/kubeconfig` on Windows.
[WARNING] [io.quarkus.kubernetes.deployment.KubernetesDeployer] An openshift deployment was requested, but the container image group:sphilipp is not aligned with the currently selected project:default.it is strongly advised to align them, or else the image might not be reachable.
[WARNING] Found multiple Kubernetes config files [[/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml, /Users/sphilipp/dev/ovh/k8s/k8s-colima.yml, /Users/sphilipp/dev/ovh/k8s/kubeconfig-trillio.yml]], using the first one: [/Users/sphilipp/dev/ovh/k8s/kubeconfig.yml]. If not desired file, please change it by doing `export KUBECONFIG=/path/to/kubeconfig` on Unix systems or `$Env:KUBECONFIG=/path/to/kubeconfig` on Windows.
[INFO] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] Registered 'wilda.fr.HelloWorld' for reflection
[INFO] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] Registered 'wilda.fr.HelloWorldSpec' for reflection
[INFO] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] Registered 'wilda.fr.HelloWorldStatus' for reflection
[INFO] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] Processed 'wilda.fr.HelloWorldReconciler' reconciler named 'helloworldreconciler' for 'helloworlds.fr.wilda' resource (version 'fr.wilda/v1')
[INFO] Generating 'helloworlds.fr.wilda' version 'v1' with wilda.fr.HelloWorld (spec: wilda.fr.HelloWorldSpec / status wilda.fr.HelloWorldStatus)...
[INFO] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] Generated helloworlds.fr.wilda CRD:
[INFO] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor]   - v1 -> /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/target/kubernetes/helloworlds.fr.wilda-v1.yml
[INFO] Checking for existing resources in: /Users/sphilipp/dev/talks/cloud-sud/hello-world-quarkus/src/main/kubernetes.
[WARNING] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] 'helloworldreconciler' controller is configured to watch all namespaces, this requires a ClusterRoleBinding for which we MUST specify the namespace of the operator ServiceAccount. This can be specified by setting the 'quarkus.kubernetes.namespace' property. However, as this property is not set, we are leaving the namespace blank to be provided by the user by editing the 'helloworldreconciler-cluster-role-binding' ClusterRoleBinding to provide the namespace in which the operator will be deployed.
[WARNING] [io.quarkiverse.operatorsdk.deployment.OperatorSDKProcessor] 'helloworldreconciler' controller is configured to validate CRDs, this requires a ClusterRoleBinding for which we MUST specify the namespace of the operator ServiceAccount. This can be specified by setting the 'quarkus.kubernetes.namespace' property. However, as this property is not set, we are leaving the namespace blank to be provided by the user by editing the 'helloworldreconciler-crd-validating-role-binding' ClusterRoleBinding to provide the namespace in which the operator will be deployed.
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Starting container image build
[WARNING] [io.quarkus.container.image.jib.deployment.JibProcessor] Base image 'fabric8/java-alpine-openjdk11-jre' does not use a specific image digest - build may not be reproducible
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] The base image requires auth. Trying again for fabric8/java-alpine-openjdk11-jre...
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] LogEvent [level=INFO, message=Docker config auths section defines credentials for index.docker.io]
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] LogEvent [level=LIFECYCLE, message=Using credentials from Docker config (/Users/sphilipp/.docker/config.json) for fabric8/java-alpine-openjdk11-jre]
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Using base image with digest: sha256:b459cc59d6c7ddc9fd52f981fc4c187f44a401f2433a1b4110810d2dd9e98a07
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Container entrypoint set to [java, -Djava.util.logging.manager=org.jboss.logmanager.LogManager, -jar, quarkus-run.jar]
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Created container image sphilipp/hello-world-quarkus-operator:0.0.1-SNAPSHOT (sha256:5209c306034d6a1f09b450665468ef35d8a2586d7b7e698228b8836e3a9f6eaa)

[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 6212ms
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  8.322 s
[INFO] Finished at: 2022-03-12T23:53:56+01:00
[INFO] ------------------------------------------------------------------------

ll target/kubernetes
total 40
-rw-r--r--  1 sphilipp  staff   557B Mar 12 23:53 helloworlds.fr.wilda-v1.yml
-rw-r--r--  1 sphilipp  staff   5.8K Mar 12 23:53 kubernetes.json
-rw-r--r--  1 sphilipp  staff   4.6K Mar 12 23:53 kubernetes.yml

I try with my laptop and with gitpod with the same result.
My settings:
mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /Users/sphilipp/Applications/homebrew/Cellar/maven/3.8.4/libexec
Java version: 17.0.2, vendor: Homebrew, runtime: /Users/sphilipp/Applications/homebrew/Cellar/openjdk/17.0.2/libexec/openjdk.jdk/Contents/Home
Default locale: en_FR, platform encoding: UTF-8
OS name: "mac os x", version: "12.1", arch: "aarch64", family: "mac"

The project can be found here: https://github.com/philippart-s/hello-world-quarkus

I'll look into it, thanks for the report!

Any particular reason why you'd want it to be triggered on compile?

Not specially but, just when my code is note quite stable I like just to compile to see if it's ok and the state of the CRD.


Fix README collisions

This fixes:
          @zkoppert looks like merging this has accidentally done some of the changes that we did in https://github.com/github/issue-metrics/pull/137 prior to this.

Originally posted by @spier in https://github.com/github/issue-metrics/issues/139#issuecomment-1760199843
Proposed Changes

Fix overwrite of pr's that were merged in at a similar time.

Readiness Checklist
Author/Contributor

[x] If documentation is needed for this change, has that been included in this pull request
[x] run make lint and fix any issues that you have introduced
[x] run make test and ensure you have test coverage for the lines you are introducing

Reviewer

[x] Label as either bug, documentation, enhancement, infrastructure, or breaking

Let me know if I missed something @spier. I looked here to see what got overwritten: https://github.com/github/issue-metrics/pull/137/files


hubot foursquare approve is a placebo

It says it approved the user, but it is not actually updating the record through the API.

 This will at least let you know what error code is being returned.


postinstall script in 1.1.4 causes install issues

Hey folks,
In 007b1343180e6b40471c2494a74557185d340c5d a postinstall script was added, and when I now install the package it tries to run tsc on my entire repo which I don't think is intended (and fails spectacularly 🙂). Is this script needed?
Cheers

@jagregory thank you for raising the issue.
yes, indeed it's not intended. I added it in case people would like to install the package from Github repo directly, so the dist folder is generated, but didn't expect this behavior, will remove it, anyway the latest master is always pushed to npm by semantic-release


Support conditional flattening

#[derive(Deserialize)]
struct Response<T> {
    #[serde(flatten_if = "Result::is_err")]
    result: Result<T, ResponseErr>,
}

I think I would prefer not to build this directly into serde_derive, but it would be reasonable for https://github.com/jonasbb/serde_with or a similar library to provide this functionality.


Make send API non-blocking

Separate implementations will be needed for:

[ ] MemoryNetwork
[ ] CentralizedServerNetwork
[ ] Libp2pNetwork

We changed our design to not do this


various errors and slow (MacOS)

Hi
since i installed the client, it has been very slow to load anything,
when i send myself a chat message, i get "error creating conversation: timeout calling chat server"
when i try to create a git repository, i get "Unknown RPC Error"
the /keybase folder doesnt load. (tried enabling / disabling it through the client)
$ cd /Keybase
cd: error retrieving current directory: getcwd: cannot access parent directories: Input/output error
OSX sierra 10.12.6 (16G29)
Keybase client Version 1.0.34-20171027003854+8e989533a (1.0.34-20171027003854+8e989533a)
I have tried rebooting, quiting / reopening keybase, reinstalling keybase.
I have 2 log ids, (not sure if reinstalling keybase removed logs)
before reinstall: 3f4cc17afe79a3f85da2f71c
after reinstall: 9a385faed4b8362004e9541c

we had a service outage this morning, can you try it now? thank you

thanks, it seems to be working now


Replace setup.py with pyproject.toml

Fix #40
Signed-off-by: John Speed Meyers<EMAIL_ADDRESS>

Thank you, @linynjosh!


git clone with  --recurse-submodules does not pull cardano-node

Environment
git clone with  --recurse-submodules does not pull cardano-node but a submodule named ogmios
# git clone --recurse-submodules https://github.com/input-output-hk/cardano-graphql.git
Cloning into 'cardano-graphql'...
remote: Enumerating objects: 9749, done.
remote: Counting objects: 100% (1007/1007), done.
remote: Compressing objects: 100% (461/461), done.
remote: Total 9749 (delta 600), reused 901 (delta 527), pack-reused 8742
Receiving objects: 100% (9749/9749), 81.47 MiB | 29.88 MiB/s, done.
Resolving deltas: 100% (5037/5037), done.
Submodule 'ogmios' (https://github.com/CardanoSolutions/ogmios.git) registered for path 'ogmios'
Cloning into '/tmp/cardano-graphql/ogmios'...
remote: Enumerating objects: 10728, done.
remote: Counting objects: 100% (3448/3448), done.
remote: Compressing objects: 100% (1143/1143), done.
remote: Total 10728 (delta 1985), reused 3220 (delta 1823), pack-reused 7280
Receiving objects: 100% (10728/10728), 9.48 MiB | 7.59 MiB/s, done.
Resolving deltas: 100% (5831/5831), done.
Submodule path 'ogmios': checked out 'c2eabd97ee9f260685c2e0355bb7f7e923d4746b'
Submodule 'hugo-theme-learn' (https://github.com/matcornic/hugo-theme-learn.git) registered for path 'ogmios/docs/themes/learn'
Submodule 'modules/hjsonpointer' (https://github.com/KtorZ/hjsonpointer.git) registered for path 'ogmios/server/modules/hjsonpointer'
Submodule 'modules/hjsonschema' (https://github.com/KtorZ/hjsonschema.git) registered for path 'ogmios/server/modules/hjsonschema'
Submodule 'modules/wai-routes' (https://github.com/KtorZ/wai-routes.git) registered for path 'ogmios/server/modules/wai-routes'
Cloning into '/tmp/cardano-graphql/ogmios/docs/themes/learn'...
remote: Enumerating objects: 2605, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 2605 (delta 5), reused 10 (delta 2), pack-reused 2586
Receiving objects: 100% (2605/2605), 14.09 MiB | 29.38 MiB/s, done.
Resolving deltas: 100% (1454/1454), done.
Cloning into '/tmp/cardano-graphql/ogmios/server/modules/hjsonpointer'...
remote: Enumerating objects: 180, done.
remote: Total 180 (delta 0), reused 0 (delta 0), pack-reused 180
Receiving objects: 100% (180/180), 38.00 KiB | 2.38 MiB/s, done.
Resolving deltas: 100% (89/89), done.
Cloning into '/tmp/cardano-graphql/ogmios/server/modules/hjsonschema'...
remote: Enumerating objects: 1136, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 1136 (delta 1), reused 3 (delta 1), pack-reused 1128
Receiving objects: 100% (1136/1136), 315.99 KiB | 5.02 MiB/s, done.
Resolving deltas: 100% (652/652), done.
Cloning into '/tmp/cardano-graphql/ogmios/server/modules/wai-routes'...
remote: Enumerating objects: 2510, done.
remote: Total 2510 (delta 0), reused 0 (delta 0), pack-reused 2510
Receiving objects: 100% (2510/2510), 425.35 KiB | 4.34 MiB/s, done.
Resolving deltas: 100% (1354/1354), done.
Submodule path 'ogmios/docs/themes/learn': checked out '6cfd61e0f675b45ba85f8325e206d23a4337a14c'
Submodule path 'ogmios/server/modules/hjsonpointer': checked out '75ed0d049c33274a6cb4c36c8538d4bf2ef9c30e'
Submodule path 'ogmios/server/modules/hjsonschema': checked out 'fde6e676f79f3f3320a558f20492ad816a2543a7'
Submodule path 'ogmios/server/modules/wai-routes': checked out 'd74b39683792649c01113f40bf57724dcf95c96a'
# cd cardano-graphql
# ls
CHANGELOG.md  NOTICE     default.nix         nix           packages        scripts    tsconfig.json
Dockerfile    README.md  docker-compose.yml  ogmios        packages-cache  shell.nix  wallaby.conf.js
LICENSE       config     docs                package.json  release.nix     test       yarn.lock

[PASTE_REPORT_HERE]
Alternatively, what release or Git revision are you using:
Platform

[x] Linux / Ubuntu
[ ] Linux / Other
[ ] macOS
[ ] Windows

Platform version:
Runtime

[ ] Node.js
[x] Docker

Runtime version:
node -v
docker version

Steps to reproduce the bug
What is the expected behavior?

Ignore that, missing VERSION.


fix: update open to 6.3.0 to fix exiting after opening webpage

This PR updates version of open to 6.3.0 for fix exiting after opening webpage. You can see this on screencasts below. It's not critical for CI setup, but this remove confusing why it's still active.
Before
Script still active after webpage opened.

After
Script exiting after webpage opened.

/cc @zeke (I'm not sure who should review, so i'm ping you)

Thanks!
semantic-release is set up on this repo, so hopefully we'll see an npm release soon. 🤞


Provider scripts may include html tags in record titles

Description

Discovered in #614 with Wikimedia. The scripts ingests some records that include html tags in the record title.
Reproduction

Run the Wikimedia provider script locally
Inspect the ingested records, either through the db shell by running just db-shell or by accessing the generated tsv file through MinIO. You should see multiple records with tags in the title, like
 Silver penny of Henry I

Additional context

It would be worth investigating to see how these records are appearing on the frontend.
We should consider fixing this in the MediaStore as it may apply to other providers than just Wikimedia.
Resolution

[ ] 🙋 I would be interested in resolving this bug.

It would be worth investigating to see how these records are appearing on the frontend.

FWIW the frontend safely handles contents like this, but it would still be good for us to find an example of an ID to check for unexpected styling or visual problems. But the output is definitely safe from code injection; no HTML from the data will be rendered.


Switch from springfox to springdoc

Initial PR - currently DRAFT to solicate review comments and aid in bug analysis with springdoc project
See #1124

Removes springfox
Adds springdoc https://github.com/springdoc/springdoc-openapi
Now moves us on to OpenAPI 3.0
Better compatibility with newer spring versions & features

This does not (yet) start adding additional swagger2 annotations, groups etc - but is intended to provide a foundation for doing that
NOTE: In draft. If established working will raise proposal at next meeting , prior to any merge.

(Working through https://github.com/springdoc/springdoc-openapi/issues/486 )

Commit 6b90615 fixes up some usage of @JSonIdentityInfo that was causing the NPE (see the linked issues above).
It would be very useful if someone more familar with this annotation & specifically InformationView could verify by inspection & execution (ideally). Beyond any unit tests I have no easy way of testing. The owner in CODEOWNERS has left. @danielaotelea perhaps you may know?
With this change the default API docs are now generated, and visible through swagger at http://localhost:8080/swagger-ui.html
I will bring up the proposal  on the next functionality call.
This change only sets up the basic framework - next we have plenty of work to do on using the proper annotations.

You can see an example of the generated json at https://gist.github.com/d0d38bafe8f50b355e81cc4df714a534

Noted by @davidradl - ensure the developer docs are updated to refer to new approach

As discussed - checking whether we need to update  docs

I have not made any process updates yet.
I propose we discuss this on the next status call 19 Mar 2020.

See https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations for annotation info

Corrected documentation as per status call today.
Will run an OWASP scan prior to merging


mod_http2 not honouring KeepAliveTimeout since 1.10.16

mod_http2 is closing HTTP/2 sessions after 1 second of timeout and this appears to have started since 1.10.16
To repeat:

Install mod_http 1.10.16 or later
Set a KeepAliveTime value (the default of 5 seconds in extra/httpd-default.conf is fine)
Open Chrome and go to chrome://net-internals/#events&q=type:HTTP2_SESSION%20is:active
Visit your site in another tab and click on that session.
Note that approximately 1000 milliseconds (1 second) after the last frame is received, Chrome receives a timeout go away frame - no matter what your KeepAliveTime value is set to:

t=150102 [st= 675]    HTTP2_SESSION_UPDATE_RECV_WINDOW
                      --> delta = 311
                      --> window_size = 15728640
t=151055 [st=1628]    HTTP2_SESSION_RECV_GOAWAY
                      --> active_streams = 0
                      --> debug_data = "timeout"
                      --> error_code = "0 (NO_ERROR)"
                      --> last_accepted_stream_id = 9
                      --> unclaimed_streams = 0
t=151055 [st=1628]    HTTP2_SESSION_CLOSE
                      --> description = "Finished going away"
                      --> net_error = 0 (?)
t=151055 [st=1628]    HTTP2_SESSION_POOL_REMOVE_SESSION
t=151055 [st=1628] -HTTP2_SESSION

Install mod_http2 1.10.15 and repeat the test.
Note it now takes approximately 5 seconds (or whatever KeepAliveTimeout you have set) to receive the GOAWAY timeout frame:

t=434838 [st= 837]    HTTP2_SESSION_UPDATE_RECV_WINDOW
                      --> delta = 311
                      --> window_size = 15728640
t=440849 [st=6848]    HTTP2_SESSION_RECV_GOAWAY
                      --> active_streams = 0
                      --> debug_data = "timeout"
                      --> error_code = "0 (NO_ERROR)"
                      --> last_accepted_stream_id = 9
                      --> unclaimed_streams = 0
t=440849 [st=6848]    HTTP2_SESSION_CLOSE
                      --> description = "Finished going away"
                      --> net_error = 0 (?)
t=440850 [st=6849]    HTTP2_SESSION_POOL_REMOVE_SESSION
t=440850 [st=6849] -HTTP2_SESSION

It's not just in Chrome, saw the same behavior in Firefox, Opera and Edge as well.
So it's definitely a bug due to which I had to disable HTTP/2 until a fix is issued.

Agreed. It's a mod_http2 bug, it's just easier to verify in Chrome (or Opera) thanks to the net-internals page. It's not ideal I admit, but at least it's not on most page loads (as they typically don't leave over a second between requesting a resource) - it's just on browsing around the site. But still, needs to be fixed. You can always roll back to 1.10.15 until it is fixed.

That was a change httpd did in an attempt to clean up mpm_event connection handling and it did backfire for HTTP/2. Sorry about that. Talking to the persons involved about how we can fix this.

@bazzadp, I assume you can compile yourself. Could you check if this patch (applies to 2.4.x also) brings back the correct behaviour for you too?

Works for me. Tested on 2.4.33 on Centos 7.4

Thanks for verifying! Released as v1.10.20.


Errors in Unity playground - The script needs to derive from MonoBehavior

Trying to use Unity Playground with the latest Unity Hub results in errors. I tried with Unity Version 2018.4.12f1 and 2019.2.12f1.
Screenshot:

Also if I try to run the examples I get the message that the project has compile errors.


OIPA-2327

https://app.zenhub.com/workspaces/iaticloud-5b8e865bb2cc7b6c78ece322/issues/zimmerman-zimmerman/iati.cloud/2327

:tada: This PR is included in version 5.3.2-develop.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 5.3.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


When tree-view is open, narrow-scan moves cursor into tree-view instead of Narrow UI

When the tree view of files is open (on the left by default), my cursor is taken there when I start narrow-scan.
I then need to return control to the Narrow UI by hitting, e.g. Ctrl-0.
If the tree view is closed, the cursor is taken to the narrow UI, as expected.
Thanks!

Can't understand your issue.
Please describe your action step by step. and what step is unexpected behavior.

To replicate:

Open File in Atom

If Tree View is not open, open it using cmd-\ or "Tree View: Show" command in Command Palette.

Use "Narrow: Scan"

Narrow UI (a buffer with title like scan-1) appears

Expected: Cursor is active in scan-1, and typing causes scan results to be refined.
Actual: Cursor is active in the Tree View instead

Workaround: Use Tree View: toggle Focus to return control back to scan-1

Ok will check after. Are you using latest narrow?

I am using the latest.
I think it might be caused by an interaction with another plugin called Synced Sidebar https://atom.io/packages/synced-sidebar. This plugin moves the highlight in the Tree View when you move to files in your project. (but does not move cursor to tree view)
When I disable Synced Sidebar, this behavior doesn't happen.

Ok. Do you think this fixable by narrow side?

I'm not sure. I'll take a look at the atom-narrow code and issues at synced sidebar and let you know. For now I'll just disable synced-sidebar, since Narrow is more useful to me :+1:

OK, I'll check too. But as a quick impression, this seem to be issue of synced-sidebar.
Btw, are you using narrow with vim-mode-plus?
Since I'm using with vim-mode-plus, narrow without vim-mode-plus behavior is not well checked by my side.

Yes, I'm using vim-mode-plus.
On Mon, Feb 13, 2017 at 1:41 PM, t9md<EMAIL_ADDRESS>wrote:

OK, I'll check too. But as a quick impression, this seem to be issue of
synced-sidebar.
Btw, are you using narrow with vim-mode-plus?
Since I'm using with vim-mode-plus, narrow without vim-mode-plus behavior
is not well checked by my side.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/t9md/atom-narrow/issues/138#issuecomment-279482231,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJxfg5RwfFX2zaaIvsk6_hxv4GRT4Vf7ks5rcKPWgaJpZM4L_fRM
.

I found this issue
https://github.com/peterdotjs/atom-synced-sidebar/issues/25
And trying to this setting seems what you want. How do you think?

Yes, unchecking that seems to fix this issue. Not sure if "Focus On Reveal"
ever added value for me before, so this works. Thanks!
On Mon, Feb 13, 2017 at 1:47 PM, t9md<EMAIL_ADDRESS>wrote:

I found this issue
peterdotjs/atom-synced-sidebar#25
https://github.com/peterdotjs/atom-synced-sidebar/issues/25
And trying to this setting seems what you want. How do you think?
[image: utils_coffee_ ___github_atom-narrow]
https://cloud.githubusercontent.com/assets/155205/22897750/419bf30a-f268-11e6-8189-becc26988bb8.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/t9md/atom-narrow/issues/138#issuecomment-279483825,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJxfg0ZOATowt0FAbfM2fndAGKL7D7ohks5rcKUygaJpZM4L_fRM
.

OK! so close now.


background-attachment fixed

Hi Jay
Thank you for an outstanding script!
Any idea how I can get the slide container to be fixed? The background-attachment: fixed seems to be ignored.
Tks
Ray

Anything ?

Hello.
It seems fixed backgrounds don't work with background-size cover/contain.
We can't do much.
Tell me if you find something.
Thanks.


Performing active learning on magic data

🚀 The feature
I would like to know if you have already applied techniques to clean your magic data?
Indeed, it only takes a few corrections of labeling errors on the data to achieve better performance:  like the active learning technique for example.
After obtaining the checkpoint on the best val_loss, making an inference on the training data and ordering the data in descending order of loss would make it possible to see the few hundred (sometimes more) of mistagged data.
With your agreement, I would be very interested in doing this task once the parseq model is trained :)
Motivation, pitch
allows to boost models performances
Alternatives
No response
Additional context
No response

Hey @nikokks If i understood it correctly .. i think to get access to the internal data isn't possible because it contains sensible personal data. Ping @odulcy-mindee @charlesmindee for a more data specific answer ^^


add compiled band limited oscillators

hopefully with support for phase modulation and hard sync
@timothyschoen is also interested in this one

https://github.com/agraef/purr-data/blob/master/externals/creb/modules%2B%2B/blosc~.cc may be of help for figuring out the algorithms. It also appears to have sync.
Currently, it's a single object that supports all shapes. I'd rather have this replace the existing [bl.] objects in ELSE. The good news is that this appears to contain implementations for exactly the same shapes the [bl.] objects ELSE already has.

ok, so, that's what I thought, when you mentined "purr data's band limited oscillators", these aren't really purr data's, but creb's ;) which long existed before purr data! Here is where creb lives now: https://github.com/electrickery/pd-creb
Please be carefu, when you say it's somethign from purr data it gives us the idea it's something special to them not possible in vanilla... while creb is a library that works just fine like any other in Vanilla.

It also appears to have sync

It does.
My ambition was to have something more powerful than creb but we can start by using it, there are also other algorithms out there

The good news is that this appears to contain implementations for exactly the same shapes the [bl.*] objects ELSE already has.

Not all of them, nope :/
ok, let's start by stealing from this one, I'll make it [bl.osc~] for starters

there are other algorithms around we should also look into, and I'd definitely need help with that

@timothyschoen , I can't build creb, I get:
"fatal error: 'iostream' file not found"
can you help me?

I can't build creb

yeah, I was trying to build the whole library package and not just blosc~, but blosc~ uses this too, it's in DSPIcomplex.h

I didn't know crab works with Pd-vanilla too, that's cool!
blosc.cc is a C++ file, are you compiling it as C++? If you prefer C, I can help you convert it if you want?

are you compiling it as C++?

not sure what that means, I just used pd-lib-builder with "make"

If you prefer C, I can help you convert it if you want?

That's wierd cause the code for blosc~ itself really looks like a regular plain c code... what about that? but yeah, anyway, plain C is what ELSE is all about, no objects' sources are ".cc" in ELSE.
Hopefully this is easy to adapt. Should we fork creb and make it compile easily? I opened a ticket at https://github.com/electrickery/pd-creb/issues/1

It appears the DSPIcomplex/DSPIfilter classes are the C++ part. It's mostly code for biquads, I'll try to convert this to C!

ok, let's do it here then https://github.com/porres/pd-creb

ok, let's do it here then https://github.com/porres/pd-creb

or maybe not :)

Turned out to be a bit more work than I thought, converting many lines of OOP C++ code to C is no fun...
Are you planning to only copy the blosc~ part? In that case it would be much easier to just replace this filter for another stacked biquad implementation.

Are you planning to only copy the blosc~ part?

yup

Turned out to be a bit more work than I thought

that's why I said "maybe not", I thought it'd be too much work to get the whole library in plain C

I'm on vacation right now, I'll be back Thursday. Sorry if this is inconvenient for your ELSE schedule, I'll try to work on this as soon as I get back. I'm hoping to finish the blep oscillators before RC3, and work on store/rec and memory leaks after that, if that's okay with you?

I actually need to work more on the new filtergraph object to make it more presentable

I've started working on it here:
https://github.com/timothyschoen/pd-else/blob/master/Classes/Source/blosc~.c
The [bl.saw~] object seems to work, square/triangle/pulse still need work. The creb library contains objects for both single-sided and two-sided pulse, how would you go about naming those? [bl.pulse~] and [bl.pulse2~]?
There was no triangle implementation, but I think it shouldn't be hard to derive it from the square implementation. The square implementation is a bit strange, it currently takes a phasor as input. I'm probably going to turn it into a regular square object with PWM.
Only a small amount of the filtering code was actually used, so I just converted those functions/structs to C. I have to test it a bit more but I'm pretty sure it works.

for reference https://cycling74.com/tools/antialiased-oscillators

Very interesting, I'll take a look at these!

I've moved to using the polyBLEP oscillators from here: https://github.com/LabSound/LabSound/blob/dcd96dc7f3434482ec5e91fe525a3dbbca3e3664/src/extended/PolyBLEPNode.cpp
The code is a bit cleaner, and I hope polyBLEP will bring slightly better results. I have the basics working in Pd already, now I have to figure sync.

Just quickly tested this https://github.com/timothyschoen/pd-else/blob/master/Classes/Source/blosc%7E.c
I would probably create a new temporary bl.osc~ object with arguments specifying which function, then split it into different objects afterwards. I see you have a float phase input for 'phase', but that's actually 'sync'. I can work on it.
If we're writting code, can we not use the gnu license? I don't do that in ELSE unless I'm using other code like in giga.rev~

I've moved to using the polyBLEP oscillators from here: https://github.com/LabSound/LabSound/blob/dcd96dc7f3434482ec5e91fe525a3dbbca3e3664/src/extended/PolyBLEPNode.cpp
The code is a bit cleaner, and I hope polyBLEP will bring slightly better results. I have the basics working in Pd already, now I have to figure sync.

Nice. I'm completely ignorant in all of this, so I can't say much. I see that blosc~ has sync already figured out, seemingly, not sure how this other technique works with hard sync and phase modulation. Phase modulation does generate partials that can fold over, so I'm not sure if these techniques take care of that, or even if this is taken care of in MAX's oscilltors.
If you need help understanding hard sync and stuff, I can help.

Thanks, I'm not sure if I understand the difference between phase modulation and sync, considering that they will both affect phase. If there's an inlet to set the phase, couldn't you use that for both sync and phase modulation? If you could explain the difference, that would help a lot!
In Max, the [saw~] object only has 2 inlets, frequency and sync. The triangle and square have an extra inlet for "duty cycle".
The code from LabSound has a  "syncToPhase" function, I'm hoping that will help.
The good news is that I've seen the PolyBLEP oscillators from LabSound being used in multiple projects, which gives me hope for the quality of the oscillators. This code is more liberally licensed as well, so we can get rid of the GPL license without breaking the law. Maybe @sebshader could take a listen once I finish a prototype, he seems to know more about this.
If we're unable to figure out all the features of ELSE's current bl oscillators, we could also consider copying Max's interface and putting it into cyclone instead. An advantage is that they'll be called "rect~/saw~/tri~", which makes them very easy to discover (more of a PlugData concern, admittedly). That way, there's no loss of features. But I can understand it if you'd rather make improvements to ELSE.

I tested this, Max' oscillators work with both phasors and impulses. I guess it only pays attention to the jump part of the phasor?
I have working objects for saw/square/triangle, implemented with polyBLEP now, they sound pretty good imo. The hard sync doesn't sound like what I would expect yet, so that still needs work. I do see a serious performance improvement compared to the oversampled oscillators, which was to be expected. I'll work on phase modulation as well, thanks for your explanation!
I agree that it might be good to keep the oversampled ones, because their simplicity makes them very reliable for things like FM synthesis and other complicated tasks. These oscillators on the other hand, would be better for subtractive (poly)synths.
I'll push these new versions to GitHub soon!

as for phase modulation, I guess you have a running phase inside the oscillator. I do in my objects, check https://github.com/porres/pd-else/blob/master/Classes/Source/saw~.c#L47
input frequency determines a phase step and the phase modulation is a simple phase deviation on the phase step counter, that's it

This code is more liberally licensed as well, so we can get rid of the GPL license without breaking the law.

BSD is great :) since this would not be code we created, it'd be ok to end up with a GNU license, I meant only if we were writing code then i'd like to use a more permissive license. But if it uses BSD, then it's almost ideal and perfect.

From what I've read so far, EPTR should be better than BLIT/BLEP/other algorithms.

I should add information about this in my live electronics tutorial, about all the algorithms out there, how they work and everything. I hope you and @sebshader can help me on this one too

I've since learned that this is not true, I posted the source in a Facebook comment.

Idk that much about polyblep or PTR specifically yet. (I've only used Blit). hard sync is easier to anti-alias than phase or frequency modulation, the reason being that you only need to jump to points in the wave, rather than traveling through it. (In order to avoid that aliasing you would have to put an anti-alias filter after the frequency modulation but before sampling. That will give a different result than putting one after sampling)
But that is a very difficult issue to solve I think.
One thing to consider regarding phasor~ vs impulse triggering for hard sync is that if you use phasor~ you could hypothetically know the fractional part of the sample the jump happens which would/could be more accurate I think

I think the current function is first order, I could use higher orders, but from what I've read online the difference is minimal. Oversampling is probably a better bet if you want them to sound perfect.
I've implemented sync and phase modulation, and it appears to be anti-aliased pretty well. I've compared the polyBLEP sawtooth with an oversampled and a raw sawtooth. Sync and FM sound very good, with little to no aliasing. Phase modulation will cause some aliasing, especially at higher rates, but still less than a raw sawtooth. I guess this is because of how BLEP works. It detects the discontinuities that cause aliasing, and inserts a band-limited pulse instead. You can apply whatever modulation you want, because it applies this to the final output signal. That said: I've been listening to beeps all day, so I might need to check again with a fresh ear.
I could implement oversampling, but I'm not sure yet if it's worth it. Right now, the oscillators are very lightweight while still having significantly reduced aliasing. Adding oversampling might further reduce aliasing, but since it already works so well, I'm wondering if it's worth sacrificing performance for. Especially because oversampled oscillators will also be included.
It might be an option to replace the default saw/square/triangle with these oscillators. When these oscillators are used inside the oversampled oscillator abstractions, you'll only need 2x or 4x oversampling to get a perfect result. A pre-requisite would be some more testing to make sure that these are completely correct. I think @porres can decide on the best way to organise these new oscs.
Also: the tri~ oscillator has an option to morph between triangle and saw, I think it's pretty cool (Max has this as well).
My new version:
https://github.com/timothyschoen/pd-else/blob/master/Classes/Source/blosc~.c
Some sources:
The method we're using: https://core.ac.uk/download/pdf/297014559.pdf
Good explanation of BLIT/BLEP: https://www.metafunction.co.uk/post/all-about-digital-oscillators-part-2-blits-bleps
(sorry for this essay of a comment!)

questio, what technique is j09 from audio examples?

@porres blep

It's similar to what I'm doing now, except I use a polynomial instead of a table.

My new version:
https://github.com/timothyschoen/pd-else/blob/master/Classes/Source/blosc%7E.c

seems that pulse width and sync is not working yet. I can't see it yet in the code where the magic happens, where's the polynomial...
Can we adapt the code for now so the object is created as [bl.osc~] and the shape is given by the first argument? Similar to [creb/blosc~]. This might be the best solution and I might just keep it, but I'm not sure yet.
Note that [bl.tri~] with a variable width should actually be renamed to [bl.vsaw~]. Check [else/vsaw~] for more details on the waveshape. [bl.tri~] should just have a simple triangular waveform.
So we have [bl.square~], [bl.saw~], [bl.tri~], [bl.vsaw~]. the [bl.saw2~] should be easy to adapt as well. We'd be mostly missing the impulse~ and impulse2~ versions, that the original creb/blosc~ also has. Any idea on that?
Else also has a [bl.wavetable~] and I'm not sure if we can do something like this, like having arbitrary waveforms from tables in Pd and use them. That'd be great. We would need at least a sine wave for [bl.sine~] and I guess a wavetable is best for that, what do you say?

But we can include [bl.osc~] as it is, just with the saw, square, tri and vsaw options right away, as soon as we have the pulse width and hard sync working

Can we adapt the code for now so the object is created as [bl.osc~] and the shape is given by the first argument? Similar to [creb/blosc~].

I can do that once you figure out the sync/pwm

@porres if you include triange waves you might want to include the blamp technique for bandlimiting the corners as well. (I think it's just integrated blep):
https://www.pure.ed.ac.uk/ws/portalfiles/portal/28180097/18_DAFx_16_paper_33_PN.pdf
I'm not quite sure how you'd do variable slopes though..

edit: whoops, didn't see blamp was already implemented
but just a small note on blosc~.c: in my experience using macros are faster than using fmin() and fmax()

blamp?

I went ahead and adapted the code. I'm gonna be working a bit on this now https://github.com/porres/pd-else/blob/master/Classes/Source/bl.osc~.c
I see that the square waveform is also a pulse wave, not a sqaure wave

I see that the square waveform is also a pulse wave, not a square wave

can't see that no more, anyway, fixed the pulse width for the square wave in my last commit

Note that [bl.tri~] with a variable width should actually be renamed to [bl.vsaw~]. Check [else/vsaw~] for more details on the waveshape. [bl.tri~] should just have a simple triangular waveform.

my last commit makes 'tri' a regular triangle waveform and now I have 'vsaw' for a 'variable sawtooth'

added 'saw2' in my last commit

https://github.com/porres/pd-else/commit/71a2707b4485bcf3c22e51b81e62cee8877baba1 includes signal for hard sync but for some reason ir doesn't work for no signal input and just outputs 'nan'. Maybe @brbrofsvl can help figure out what's going on, but on second though, my existing objects like bl.sine~ can't sync with float input and this doesn't really make much sense for bandlimited oscillators, so I'm gonna just have signal input instead, which will make the code cleaner

https://github.com/porres/pd-else/commit/7af6bf6f20fde644a1f2c230f3ac8fe263c06163 removes float sync, so we can just use impulses for hard sync. This is pretty much done! I can revise and test some more, please also test this.
What's missing now is other waveforms, like impulses (one side and two sided with pwm) and maybe wavetables, what do you say @timothyschoen and @sebshader ? Is it possible?

bandlimited wavetables are another entire topic/implementation imo
you already kind of have bandlimited impulses with gbuzz and buzz, right? I guess there's some way to generalize it to bipolar.
you could also use dsf blit from that JOS article.. here's mine (and there's also regular blit~.c):
https://github.com/sebshader/shadylib/blob/master/bpbuzz~.c

you already kind of have bandlimited impulses with gbuzz and buzz

I only have gbuzz~ but I don't have hard sync and phase modulation and no bipolar impulses with pulse width - creb/bloc~ has these, I wonder if we can steal from it... but creb uses a different technique, right? Which one again? Doesn't polyBLEP offer us bandlimited impulses?

you could also use blit (direct dirichlet kernel) from that JOS article.. here's mine (and there's also regular buzz~.c):
https://github.com/sebshader/shadylib/blob/master/bpbuzz%7E.c

cool, will check it out

I can make a buzz easily enough if you want it
On Tue, Jul 19, 2022, 12:51 AM porres @.***> wrote:

you already kind of have bandlimited impulses with gbuzz and buzz
I only have gbuzz~ but I don't have hard sync and phase modulation and no
bipolar impulses with pulse width - creb/bloc~ has these, I wonder if we
can steal from it... but creb uses a different technique, right? Which one
again? Doesn't polyBLEP offer us bandlimited impulses?
you could also use blit (direct dirichlet kernel) from that JOS article..
here's mine (and there's also regular buzz~.c):
https://github.com/sebshader/shadylib/blob/master/bpbuzz~.c
https://github.com/sebshader/shadylib/blob/master/bpbuzz~.c
cool, will check it out
—
Reply to this email directly, view it on GitHub
https://github.com/porres/pd-else/issues/1288#issuecomment-1188596585,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSF4MQGI4MRI4DLA6L53ZTVUYX6PANCNFSM53CQ3XZA
.
You are receiving this because you were mentioned.Message ID:
@.***>

why not @brbrofsvl? :)

I've also noticed that the PolyBLEP oscillators don't take negative frequencies yet.

I noticed the object doesn't do that, but you're saying it can't. Why? Can't phase just run backwards?

if you'd like I could create a very minimal copy of pd-creb's impulse shape?

Looks good, you already have a working version of creb in plain C, right? Where is it?

I think BLIT might be more suited for this than polyBLEP.

why though?

bandlimited wavetables are another entire topic/implementation imo (personally I've been wanting to implement this one.. I think serum uses a variation of it http://www.mp3-tech.org/programmer/docs/resampler.pdf)

looks complicated, let me know if you want to collaborate with this one for ELSE ;)

@timothyschoen, creb's seems to be miniBLEP, not BLIT

I see I already "fixed" negative frequencies, by doing fabs(frequency). I think this is not a correct solution though?
On this old commit you can find the creb code converted to C:
https://github.com/timothyschoen/pd-else/blob/435cc07f274357a930cf4397b3f4a6dde6fb014d/Classes/Source/blosc~.c
Good to know, about creb using minBLEP. The difference is that minBLEP is supposed to be more precise whereas polyBLEP is faster, so the old version I linked is also still a valid option. Personally I think that having a very fast "good enough" object is very useful, especially when an oversampled version is also included. Also, the code for my new version is much cleaner.

On this old commit you can find the creb code converted to C:
https://github.com/timothyschoen/pd-else/blob/435cc07f274357a930cf4397b3f4a6dde6fb014d/Classes/Source/blosc%7E.c

but this is not actually creb's original, right? I don't see the bipolar impulse. I thought you had somewhere the plain original just converted to C, do you?

but this is not actually creb's original, right? I don't see the bipolar impulse. I thought you had somewhere the plain original just converted to C, do you?

It might be missing some things, but I can reconstruct that pretty easily if you're interested.

nope, it needs to run backwards
I'll look into this tomorrow, I think I just have to fix the phase wrapping function.

It might be missing some things, but I can reconstruct that pretty easily if you're interested.

Please :)

I'll look into this tomorrow, I think I just have to fix the phase wrapping function.

check how I do it in my non band limited oscillators

Pull request has been sent!

I see that one of the pulse waves is already in there, it's only missing pulse2. It uses the same processing function, but with different variables. You can set it up like this:
      x->x_ctl.c_phase_inc_scale *= 2;
      x->x_ctl.c_scale = 1.0;
      x->x_ctl.c_scale_update = -1.0;
      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);

what do you mean? I was hoping you'd send me the original blosc~ code in plain C with the adaption you've made.

Here you go!
blosc~.c.zip

https://user-images.githubusercontent.com/44585538/180656772-71bcdbaf-6d0c-47c1-8165-c8b8a5f26b27.mov
4 sawteeth head-to-head

cool :) so, blosc~ is creb's, blosc~ is yours with polybleb, right?
I'm still thinking what I should do with the old ones like [bl.saw~]... I really want the new ones to have this name, so I'll either delete the old ones or rename them (probably best)

Personally, I'd leave the old bl.* objects the way they are, and replace the normal oscillators with band-limited oscillators. There's really no situation I could think of where you'd want non-bandlimited oscillators. Max also uses band-limited oscillators as the default, a big advantage is that beginners can create synths without having to think about this stuff. Also, if you want a non-bandlimited oscillator, why not simply create them with a phasor~? The performance is also good enough for that.
I would leave the old bl.* oscillators in there because they might still perform slightly better when doing fm/sync/phasemod. If you replace default saw~ with the bandlimited saw though, you could also reduce the amount of oversampling, 4x would probably be enough.

There's really no situation I could think of where you'd want non-bandlimited oscillators.

LFOs

Doesn't matter: If the frequency is very low, there will be so little aliasing that there won't be any "ripples" caused by the bandlimiting. The only benefit would be a small performance improvement.

also, objects like [impulse~] are used as triggers, [pulse~] is gate...

That's a good point

there will be so little aliasing that there won't be any "ripples"

I never tested that, but it's something I'm not comfortable in doing knowing what I know (without test prooving). It doesn't seem elegant one way or another. Also, seems like you wanna use those for high frequencies as well, as in phase modulation and stuff.
SuperCollider has things like "LFSaw". I just thought I'd make these as default and name the band limited ones instead. I just think we need both and we have to distinct them one way or another.

I guess people should be aware of this basic digital synthesis thing, that oscillators have to be band limited. It's not something I think it's too much to require from people using this kind of tool...

@timothyschoen , your last commit for negative phase, somehow, screwed up phase modulation

I also attempted to fix the 1 sample phase delay, I might have messed up there. I'll check it out

I also attempted to fix the 1 sample phase delay, I might have messed up there. I'll check it out

let me know when this is ok so I can keep working on this

made a simple last commit for some cosmetic changes, please keep it up with the current master

I just broke bl.osc~ down into pieces, as bl.tri~ / bl.square~ / bl.saw~ / bl.saw2~ / bl.vsaw~
I also included bl.imp~ based on creb/blosc~, I just need help now figuring out how to implement hard sync and phase modulation in the new bl.imp~

I just need help now figuring out how to implement hard sync and phase modulation in the new bl.imp~

next I should also work on bl.imp2~ for similar things and adapt it to have a pulse width parameter

I see there's a new deadline, august 5th.
bl.imp2 should be very simple, the implementation is already there.
I think hard sync and phase modulation is difficult, but it can be done. As with the polyblep oscillators this will only strongly reduce aliasing. I'm trying to implement it right now, but it's not working yet.
Is august 5th also the deadline before which I should finish the [note] property box as well?

I see there's a new deadline, august 5th.

not really :) this is flexible, but well, sorting bandlimited oscillators and providing an acceptable bicoeff is what's needed before an update.
[note]'s properties box would be great, and maybe simple to do it and I hope I can figure out how to do it myself, in other words, that you teach me later how it works... comments in the code should do the trick.
After that, I actually need help with bicoeff and the tcl/tk code is what's really challenging. I have another friend who might be able to help me with that.

if all goes weel, I could also put number/number~ into the new release so we have it in plugdata right away as well. I've been working on number~ today. I wish to remove all dependencies from "iemguis.h".

if all goes weel, I could also put number/number~ into the new release so we have it in plugdata right away as well. I've been working on number~ today. I wish to remove all dependencies from "iemguis.h".

agreed, that would be better. For [number~], it should be pretty simple to just copy the functions over.
The [number] code is unfortunately a bit messier, let me know if you need help with that. I left some of the fields in the object’s state empty so I could use more iemgui stuff, that should be cleaned up.

For [number~], it should be pretty simple to just copy the functions over.

it's actually becoming a nightmare and I might restart from scratch :)

I think hard sync and phase modulation is difficult, but it can be done (...) I'm trying to implement it right now, but it's not working yet.

@timothyschoen, how is that coming out?

I didn't figure it out yet :(
I also don't have much time to look at it right now, if you're planning to release RC3 soon, you could also keep the original bl.imp~ for now...

if you're planning to release RC3 soon, you could also keep the original bl.imp~ for now...

I don't think I can release it without help getting a few things right. I could have bl.imp~ and bl.imp2~ without hard sync and stuff I guess, but I still would need help with other stuff, which would be getting "init" into numbox~s properties and, more complicated, dealing with [bicoeff] which is not quite ready yet.


PTZ cameras written out incorrectly

PTZ should be written out as "pan-tilt-zoom camera"

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

ID: f5d3a28c-7a66-831f-e610-9bf7d4edf9eb
Version Independent ID: 0bc4a251-816e-0d77-efb2-53b7ffccb0f5
Content: Manage meeting policies for audio and video - Microsoft Teams
Content Source: Teams/meeting-policies-audio-and-video.md
Service: msteams
GitHub Login: @mkbond007
Microsoft Alias: mabond

Thanks for your feedback


relayout when bounding box changes for layout algorithm

🐛 Bug Fix
The layout algorithm won't be triggered when the width, height, or margin changes while the layout algorithm do need the new values for calculating the layout again.

Coverage decreased (-0.1%) to 84.791% when pulling 96f0c1fd38922b8101c25bdb847e53c30d9320ec on conglei:master into 0825ff37e00f4dd9c70f84c6e391b3a79f4737af on williaster:master.