[BUG] Cannot render the dollar sign

Describe the bug 描述你遇到的错误
dollar sign does not render correctly
Expected behavior 期待的行为
In the markdown, if \$100, we should see $100, but I got

By the way, I didn't have the problem with other themes.

The content between two dollar signs will be rendered as a math formula if you have enabled it.
Related Documentation: https://hugodoit.pages.dev/theme-documentation-content/#mathematical-formula
The easiest way to solve it is to turn off the math formula rendering by adding
math:
  enable: false

to the front matter.

So I cannot have math formula on and also to print a dollar sign together?
I mean $100$ should be treated differently from \$100, right? The first means in the math environment, the latter means to read as a dollar sign using the escape character \.

It is not Hugo who renders the math formula, and \$ is not really escaping anything.
No matter you put $...$ or \$...$, it will remain unchanged in the final HTML generated by Hugo. The math formula rendering happens when the page is loading. KaTeX will render everything between two delimiters, for this case, two dollar signs. What "escape character" you put to the dollar sign does not matter as you are not really escaping anything.
The solution is to change the delimiters by editing the config.toml to manually set it to something other than the dollar sign. For example:
[params.page.math]
enable = true
blockLeftDelimiter = "\["
blockRightDelimiter = "\]"
inlineLeftDelimiter = "\("
inlineRightDelimiter = "\)"
Please upgrade the DoIt theme to the latest commit as the logic for setting delimiters configs has been updated.


GetOccurrences ignore some day range when I use weekly occurrence

Hi all
I got the issue when I use Ical.net to get list Occurrences in calendar. List Occurrences will miss some event in day range such as the event from 1/1/2019 to 1/7/2019. My example below:
var calendar = new Calendar();
var rule = new RecurrencePattern("FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA");
var startDateTemp=new DateTime(2018,12,30);
var endDateTemp = new DateTime(2018, 12, 31);
var vEvent = new Event
{
    DtStart = new CalDateTime(startDateTemp),
    DtEnd = new CalDateTime(endDateTemp),
    RecurrenceRules = new List<IRecurrencePattern>{ ruleTemp }
};
calendar.Events.Add(vEvent);
var startDate= new DateTime(2019, 1, 1);
var endDate = new DateTime(2019, 1, 6);
var occurrences = calendar.GetOccurrences(startDate, endDate);

=> and we will got list occurrences don't have any records.
Note: If I use daily occurrence, this issue not happen. When I tested with another date( not in range 1/1/2019 to 1/6/2019) , the system can execute exactly.
Please give me your advices.
Thanks

@DmitriySelischev's fix published in nuget v2.2.33.
https://www.nuget.org/packages/Ical.Net/2.2.33


"Failed to convert 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319' to type 'OmniSharp.Options.MSBuildOptions'."

Opening a C# file in a C# Project yields the following error in OmniSharp.
    Target: d:\dev\Visual Studio\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.sln

OmniSharp server started
    Path: C:\Users\blakeb\.vscode\extensions\ms-vscode.csharp-1.7.0\bin\omnisharp\OmniSharp.exe
    PID: 2408

OmniSharp: -s d:\dev\Visual Studio\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.sln --hostPID 6592 --stdio DotNet:enablePackageRestore=false --encoding utf-8 --loglevel information formattingOptions:useTabs=false formattingOptions:tabSize=4 formattingOptions:indentationSize=4
[info]: OmniSharp.Startup
        Omnisharp server running using Stdio at location 'd:\dev\Visual Studio\ConsoleApplication1\ConsoleApplication1' on host 6592.
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Initializing in d:\dev\Visual Studio\ConsoleApplication1\ConsoleApplication1
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Auto package restore: False
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Update workspace context
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Resolving projects references
[fail]: OmniSharp.Startup
        The project system 'MSBuildProjectSystem' threw exception during initialization.
Failed to convert 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319' to type 'OmniSharp.Options.MSBuildOptions'.
   at Microsoft.Extensions.Configuration.ConfigurationBinder.ConvertValue(Type type, String value)
   at Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration configuration, Object instance)
   at OmniSharp.MSBuild.MSBuildProjectSystem.Initalize(IConfiguration configuration) in C:\projects\omnisharp-roslyn\src\OmniSharp.MSBuild\MSBuildProjectSystem.cs:line 80
   at OmniSharp.Startup.Configure(IApplicationBuilder app, IServiceProvider serviceProvider, ILoggerFactory loggerFactory, ISharedTextWriter writer, IAssemblyLoader loader, IOptions`1 optionsAccessor) in C:\projects\omnisharp-roslyn\src\OmniSharp.Host\Startup.cs:line 184
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in 'd:\dev\Visual Studio\ConsoleApplication1\ConsoleApplication1'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.Startup
        Configuration finished.

Environment data
dotnet --info output:

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.14393
 OS Platform: Windows
 RID:         win10-x64

VS Code version: 1.9.1
C# Extension version: 1.7.0
Steps to reproduce

Get a fresh install of Visual Studio Code 1.9.1 by uninstalling, deleting .vscode directory and Code directory from AppData/Roaming
Install DotNet CLI Preview 2.1
Install Visual Studio Code 1.9.1
Run Visual Studio Code
Install C# Extension via Extensions pane, reloading when prompted
Open a blank C# project with at least one C# code file in it in Visual Studio Code (I used Visual Studio 2010)
Open a C# code file in Visual Studio Code
Open OmniSharp Log

Expected behavior
OmniSharp starts correctly when a project solution is correctly opened. Intellisense and other features such as Find All References work as expected.
Actual behavior
OmniSharp appears to error out during MSBuildProjectSystem initialization, despite not having MSBuild set as the project build tool in tasks.json. Intellisense features are unavailable, and Find All References does not work.
Notes
I tried this in multiple project files, a couple of them being Unity projects, one of them being a blank Visual Studio 2010 project.
I have done the following to try to fix this issue:

Uninstall and reinstall DotNet CLI
Uninstall DotNet CLI Preview 2.1 and install DotNet CLI Preview 2.0
Set "omnisharp.useMono": true
Fully uninstall and reinstall Visual Studio Code
Downgraded to C# Extension version 1.6.2

Here is my PATH variable:
C:\Users\blakeb\AppData\Local\Microsoft\WindowsApps;C:\Python27;C:\Python27\Scripts;C:\android-sdk\platform-tools;C:\android-sdk\tools;C:\Program Files (x86)\Microsoft VS Code\bin
System PATH:
C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Perforce;C:\Program Files\Perforce\DVCS\;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program Files\dotnet\
I recognize that this may be fully dependent on my local setup, and was hoping to get any insight as to why this might be the case.
Also note that C:\projects\omnisharp-roslyn\src\ does not exist on my machine, though it appears to be referenced in the error log. I don't know if that's relevant, my guess is it isn't.

Hi, sorry you're having trouble getting things working. Could you provide the project that you created in VS 2010?
A few quick points:

There's no need to set "omnisharp.useMono" -- that won't have any affect.
C:\projects\omnisharp-roslyn\src is likely unrelated. That's simply the source file listed in the exception call stack coming from OmniSharp.
Do you have an omnisharp.json file in your project? It's unlikely but I thought I'd check.
Do you happen to have an environment variable defined named "MSBuild"? It's entirely possible that a previously defined environment variable is getting confused as part of OmniSharp's configuration.

Do you happen to have an environment variable defined named "MSBuild"? It's entirely possible that a previously defined environment variable is getting confused as part of OmniSharp's configuration.

That was the issue. Well that's embarrassing. I had removed it from the PATH but I forgot that it was still an environment variable. Thanks!

Excellent! I'm glad that's all it was. Let me know if you have anymore trouble.


Add API_KEY support

Description
This PR fixes #729 and #480
This PR adds api-key flag. When this flag is set, all API requests needs to provide the same value as Bear token in the request hear. If this flag is not set, no auth will be enabled. This flag is not set by default.
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Thanks @bnusunny ! I'd be tempted to document around usage of https://github.com/Kong/kong and alikes rather then implementing something specific in the code.
However, I think this approach is simple and provide an easy way to setup for minimal configurations that might be enough.  Just one small nit, naybe we can make api-keys a list? so can specify multiply tokens instead of one

Sure. I will make it a list.

This PR can be closed since #877 is merged.


how to understand the result of onnx?

hi
how can i understand the result of onnx?
why 100?

The onnx outputs are as shown :

num_dets means the number of object in every image in its batch .
bboxes means topk(100) object's location about [x0,y0,x1,y1] .
scores means the confidence score of every topk(100) objects .
labels means the category of every topk(100) objects .


BUG: server rejected session; is your device revoked?

Trying to log into an updated (restored from backup) iPhone 14 Pro iOS 16.4.1—and am met with error (in title).
The error message I am getting:
Error code 202: BAD_SESSION in method keybase.1.login.login
it started last week when I couldn’t see any of the messages in the teams I am in. I then reinstalled app to see if that would have resolved and now I am locked out of my device.  I can’t use my paper codes nor can I use the “previous” device as it’s the same one as the one I am using.
Please advise.
Thank you for all your hard work, devs. Keep up the good work!

This project is pretty dead, it's full of people getting 202 errors, their devices revoked, and being unable to log in.

Same, I know my pasword and I tried using my paper key as well, but I get the following error every time:
Oops, something went wrong.

server rejected session; is your device revoked?
Error code 202: BAD_SESSION in method
keybase.1.login.login

Does anybody know how I can get back into my account?

I just started getting this error after upgrading to 6.4.0 on Android and Linux, please help


Add UI functionality for Read Item

As an Orders Manager/System Administrator
I need the ability to read an item through UI
So that  I don't need to use Postman for sending API Requests and check the order details when required.
Details and Assumptions

Add elements for displaying item in the UI file.
BDD scenarios for Read Item will also be a part of this story.

Acceptance Criteria
Given the service is running
When I read an item by id
Then the UI should display the item data

Hey team! Please add your planning poker estimate with Zenhub @bf2285 @haoruigao @MahamArif @Matt-Kou


x/mobile/cmd/gomobile: -prefix doesn't work

What version of Go are you using (go version)?
go version go1.10.1 darwin/amd64
Does this issue reproduce with the latest release?
Yes, with latest gomobile.
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN="/Users/timo/bin"
GOCACHE="/Users/timo/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/timo"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/cc/h_53mv290h5c8l_y0l3w1fy00000gn/T/go-build114935612=/tmp/go-build -gno-record-gcc-switches -fno-common"

I also have Xcode 9.3 installed.
What did you do?
cd $GOPATH/src/golang.org/x/mobile/example/bind/hello
gomobile bind -target=ios -prefix=My golang.org/x/mobile/example/bind/hello

What did you expect to see?
Hello.framework or MyHello.framework directory (don't know which name it would use - not important).
What did you see instead?
gomobile: open /var/folders/cc/h_53mv290h5c8l_y0l3w1fy00000gn/T/gomobile-work-122259635/src/gobind/MyHello.objc.h: no such file or directory

I found the same issues in the newer gomobile versions and linked a possible solution in my fork.


Deal with raw HTML snippets post pandoc conversion

There are some HTML snippets left in the post conversion markdown. These need to be reviewed and addressed individually.
e.g. the main page used HTML for the blue donation box layout, with mediawiki text within it. This resulted in Markdown within an HTML block which does not render as expected. This might be best resolved by turning the contents of the blue box into HTML too? Done in 994f42187cd481c2424b9909eca9988fb23e34c1

e.g. Logos on https://github.com/OBF/wiki/edit/main/BOSC_2014.md

With the progress on #10 the logo tables were looking much better, they just needed their borders turned off. I've not spotted any other raw HTML issues.
These attempts failed - note we do not want to the actual tables in the BOSC schedule pages:
$ sed -i 's#
#
#g' BOSC_????.md BOSC_????_Panel.md Codefest_*.md

$ sed -i 's#
#
#g' BOSC_????.md BOSC_????_Panel.md Codefest_*.md

Looks like we'd need to override this at the  level, or tweak the theme - quoting https://github.com/pages-themes/cayman/blob/master/_sass/jekyll-theme-cayman.scss
  table {
    display: block;
    width: 100%;
    overflow: auto;
    word-break: normal;
    word-break: keep-all; // For Firefox to horizontally scroll wider tables.
    -webkit-overflow-scrolling: touch;

    th {
      font-weight: bold;
    }

    th,
    td {
      padding: 0.5rem 1rem;
      border: 1px solid $table-border-color;
    }
  }

e.g. Set $table-border-color to the page background?

Transparent worked, although it might now be worth forcing a border on the schedule pages, e.g. https://obf.github.io/wiki/BOSC_2017_Schedule

Missing columns on the BOSC 2017 schedule fixed in 2c7ee0419a0e1bc3a8ecbefa6858d06b57ac90e6
Another table issue had dropped the Bina logo from some sponsorship listings, fixed in 55c131e26fa13ab654fb7c14e3926cf97c4c17c4 and 5dc26449985ee1c890d9179e520aee090f7df386
I can't say for sure that I have checked every page by eye, but I'm not aware of anything further. Which is not to say there are bits where the layout could be improved ;)


Erroneous return

I think this method should not return here? my on_create function doesn't run after switch from grep to live_grep via action if it does.

I’m not sure what this would lead to, on_create doesn’t get called here because the window doesn’t get created here, I believe this code path is taken only when reusing the current window.
Can you expand on what isn’t working for you due to on_create not being called? Maybe there is a better solution?

I set this mapping inside on_create function to close fzf window:
vim.api.nvim_buf_set_keymap(0, 't', 'jj', '<C-c>', {})
And since buffer is replaced inside this check (if I'm not mistaken) and on_create doesn't run, the mapping no longer works and I can't set a new one.

Just assumed return was put there by mistake, haven't tested it too much. Works for my setup. Maybe should have opened an issue instead.

Just assumed return was put there by mistake, haven't tested it too much. Works for my setup. Maybe should have opened an issue instead.

It might indeed be harmless but I'm not sure since it overrides the calling buffer/win (src_bufnr and src_winid), also has unintended consequences when fzf-lua is used in a split (as opposed to a float win).
Fzf-lua win redraw re-uses the existing window but has to generate a new term buffer, since keymaps are attached to the buffer those go away on window reuse, the below commit makes sure to recall on_create right after remapping the default keybinds, verified working with your custom keymap.
https://github.com/ibhagwan/fzf-lua/commit/19f79c26bda281173d04e6e5a171793d56a52d44


updated d3 to v4

Hi!
I am working on a modified version of geojson.io at the moment and wanted to upgrade d3 to version 4. Maybe you are interested in this.
There are 3 points left which would need some work / discussion:

I was not able to test github and gist as I was not able to login from my local machine (probably missing some github/gatekeeper api stuff).
I switched from importing only needed methods to importing only needed modules. This decreased the size of the lib.js, though.
The icons from the d3-metatable buttons are missing.

If you are interested I can put some more work into it and try to solve this issues.

One motivation for the upgrade is that d3 v3 dependents on a package that is not possible to install with node version > ~6.7

Per the note at the top of the readme, we're only fixing critical bugs at this time. The issue with the node version is close, but will not be addressed.


lib.rs:21-23: For some weird reason, if I enable this...

The puzzle 1-3b40c6f3 from #1 has to be resolved:
https://github.com/objectionary/sot/blob/769ab71a951748c6697a5faefccf365c9cd47343/src/lib.rs#L21-L23
The puzzle was created by @yegor256 on 04-Oct-22.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@levBagryansky please, try to help

The puzzle 1-3b40c6f3 has disappeared from the source code, that's why I closed this issue.


Local and Server forecast results are different

I used prophet package to make weekly forecast. I ran my code in R in my computer and on R server. The forecast results are slightly different.  See code below:
m <- prophet(data,holidays = holidays,weekly.seasonality = TRUE)
future <- make_future_dataframe(m, periods = 52,freq='week')
forecast_pro <- predict(m, future)
Part of the results comparison is attached.
I also checked machine’s precision and found only sizeof.long is different. $sizeof.long is 4 in my computer and is 8 in server. Could this difference make the forecast results different? If not, is there any other reason that can make the results different?

@ontheroad87
Don't forget that in the underlying model there is an additive noise which is random (white noise).
Take a closer look here. This noise is also scaled by self.y_scale, which can give more or less noticeable differences.
There are also other sources of randomness in the code.
The results might then be a little bit different if the seed is not identical in your cases.

@ontheroad87  @maskani-moh  also the change points in the future are also generated randomly

@mucun1988
Yes, that is what I meant by:

There are also other sources of randomness in the code.

Thanks for your comments! I understand the randomness in the code, but why can I always get same results in my local computer even if I run the code multiple times? Only when I run it on the server, I got different results.

The main yhat estimate without MCMC (default) is fairly deterministic since it uses the best-fit (maximum a posteriori) parameters. In particular, the additive noise part of the model is reflected in the log-likelihood function, but does not add randomness to the maximizer of the log-likelihood. y.scale is computed from the input data and so will be the same each run. Changepoints in the future are randomly generated for estimating trend uncertainty, but the main yhat estimate just projects forward the trend of the last segment*. The best-fit parameters are found using the L-BFGS algorithm, using a deterministic initialization. So, variance in the predictions should be coming from variance in the best-fit parameters being found by L-BFGS. I don't believe there is any actual randomness in this algorithm, but it seems plausible to me that things like machine precision could be affecting the termination conditions. This could especially be the case if the log-likelihood surface is fairly flat near the optimum (parameters are not well identified). Different versions of Stan might also do different things here.
Could you compare m$params on each of them and see where they are different?

For the piecewise linear trend, because the trend shifts are symmetrically up or down, the expected value of all of the future trend shifts is 0, and so that process is just used to get some estimate of the variance of the future trend.

Thanks for the feedback @bletham !

@maskani-moh @mucun1988 @bletham
Thanks for your feedbacks! I checked the parameters. It seems that all parameters are a little bit different.
 Is the version of rstan the same on both? I think it must be related to the L-BFGS termination, could you try with the Newton algorithm to see if it gives you something more consistent?
m <- prophet(data,holidays = holidays,weekly.seasonality = TRUE, algorithm = 'Newton')

@bletham @maskani-moh @mucun1988
Yes, the version of rstan is same on both. I tried Newton algorithm and then the results are the same!!!
Thanks a lot!


Some images are beyond supposed North/South bounds

One came from Antartica at 78ºS.

Turns out the function was being passed custom arguments (80º) that overrode the defaults.


Allow JavaScript Map to be used as the reducer map to handleActions

What
Allow JavaScript Map type to be used as the map value to handleActions
Why
handleActions allows you to give it a function created with createAction as the key to a reducer. JavaScript doesn't allow functions to be object keys (strings only) but Map lets us use any value as the keys
Implementation

[x] Add support for JavaScript Map as the map parameter to handleActions

Documentation

[x] Add documentation for using a JavaScript Map as the map parameter to handleActions
[x] Add documentation for using a function as the key to a JavaScript map for handleActions

Tests

[x] Add a test to assert that handleActions works correctly given a JavaScript Map
[x] Add a test to assert that functions  work as map keys in handleActions

Fixes #267

@mslipper Any change we could get a release with this change in it please? 😇

I'll get in touch with the old maintainers today - I don't have access to the NPM repo just yet.


Formatted Inventory Screen

In response to issue #22, created and implemented private Player functions printDivider, printXPBar, and printInventoryItem to automatically print formatted inventory lines of a fixed width.

Alright, I'll try to get that done tomorrow!

Alright, I fixed the method names! Their member variables are still camelCased, hope that's not an issue.

Great work @ldaw! Thanks for helping out.


Added three quotes from various famous motivational authors to quotes…

… list.

Can you remove the changes done in the frontend/public/index.html?


Will there be a release to ruby gems?

I'm confused by the first line of the README "The master branch has a lot of changes that the current release doesn't have."
Why not push a new release to ruby gems? Is the project still being supported?

@dcosson the project is in slow development, mostly when we have free time. It's stable and does a lot.
We haven't pushed 1.0 yet because we want to confirm that we're done making breaking changes (we changed how the module was initialized, which is a major version bump). There's also still a few basic functions that we haven't gotten around to implementing (we're busy and appreciate PR's). One of my tasks over the holidays is to make a definitive list of 1.0 features so we can actually move forward to it.


Move all version and upgrading logic to a secondary tool

Currently the flutter tool that most people use does not have the capability to handle a hotfix upgrade. Even if we added this today, it would not exist on the previous stable releases, any of the beta releases. Because of how we ship the flutter_tool with the flutter sdk, it is impossible to hot fix the tool that people are using to ... add support for hot fixing the tool.
Instead we should publish a minimal secondary program who's sole purpose is to upgrade/downgrade flutter versions. This could just be a thin wrapper over some git commands. We could publish this via pub such that pub global activate flutter_upgrade installs the command, which would in turn be usable via flutter today.
All flutter users, regardless of their flutter version would always be able to use the most up to date version of this tool, since it does not have any flutter related logic and does not effect their sdk version.
cc @tvolkert @kf6gpe @zanderso

So the UX would still flow through the tool, but the de-coupling allows for us to issue fixes without having a chicken-and-egg problem of delivering those fixes to users?

Yes, behind the scenes the tool would essential call `pub global activate <>``. Older versions of the tool wouldn't support this, but we could always direct users to install and run manually

Discussed offline, we're not going to do this and just concentrate on landing these efforts in the tool itself


Update quest-modding.md

forgot to comment, added more of my guides to this file, you could also just add my entire wiki on mod guides through this link if you think that is better: https://github.com/RedBrumbler/BMBFCustomSabers/wiki/RedBrumblers-Asset-Mod-Guide-Wiki

That could be helpful.
I see that your platform guide is not listed here on the BSMG wiki, but you have a page for it on your asset mod guide. Is there a reason for that?

Really only because it's a bit confusing as to what it actually is, because it is not the entire stage, it is just the rectangle you're standing on

You can add the link to the main wiki page if you want, but I'm not sure that we need it, since it then links to the other pages that are already listed.
It also looks like the wiki pages are all listed in the sidebar on the GitHub wiki in each of those links you've added as well

I think a better course of action would then be to add the main wiki page and just put a small paragraph beneath to show "this is where these guides live: (...)"

That works for me

I've made some changes. How does that look to you?


How to end the node application?

Thanks for the headless Web Audio, it seems to work great!
A question:
What is the right way to end the node application when it's done with the AudioContext?
process.exit() or something more fancy?

Hey Sema,
await audio.stop() should work


Use dot to separate distro major and minor version and replace distro registry with factory

This is a follow-up to https://github.com/osbuild/images/pull/104
Related to: https://issues.redhat.com/browse/COMPOSER-1962
Main changes:

Replace DistroRegistry with a DistroFactory. The registry had a fixed list of tested and supported distros, while the factory can generate a distro for any (even untested) version of a supported distro. This will allow building images for new RHEL and Fedora versions, without the need to make any code change.
Distros are constructed from a "distro ID string" which corresponds to that we used as distro names (e.g. rhel-93 or fedora-34). Each distro is now responsible for parsing the distro ID string which corresponds to it. This allows one to define compatibility layers on per-distro basis. a new distroidparser.Parser is added as the single entry point for parsing any distro ID string with all existing distro-specific parsers.
Distributions which use minor release versions (RHEL), now use dot . to separate the major and minor release version. This includes their Name as well as distro ID strings that can be used to construct a distro instance. A backward compatibility for RHEL-8 and RHEL-9 distro ID strings without a dot is part of the implementation.
There are no longer a distro instances for RHEL distributions without a minor release version, so no rhel-7, rhel-8 or rhel-9. A RHEL distro must always use a minor release version. These minor-version-less distros will be defined as an alias on higher-level (osbuild-composer).
Reporegistry now also supports a dot as the separator for release major and minor version in the repo config filename, when loading repository definitions. It uses the distroidparser.Parser to parse repo config filename and get a standardized representation of the distro ID string. Meaning that rhel-88.json and rhel-8.8.json both represent repo definitions for RHEL-8.8.

I want to integrate this first into the osbuild-composer repo, but otherwise this is ready for initial review...

Commit 6f9ce5af313961d5e403f548b0e6f6118179d923 has a fixup line in the message.

You can blame @ondrejbudai for the merge conflicts there :sweat_smile:

:see_no_evil: Should be trivial to rebase, though.

I was looking into why so many images were rebuilt [1] and it looks like the gpg keys aren't in the rpm options any more.
Here's a single diff:
diff --git a/fedora_39-x86_64-qcow2-empty.json b/fedora_39-x86_64-qcow2-empty.json
index 190b5fe2..8576da1f 100644
--- a/fedora_39-x86_64-qcow2-empty.json
+++ b/fedora_39-x86_64-qcow2-empty.json
@@ -9,9 +9,6 @@
         "baseurls": [
           "https://rpmrepo.osbuild.org/v2/mirror/public/f39/f39-x86_64-branched-20231101"
         ],
-        "gpgkeys": [
-          "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGLykg8BEADURjKtgQpQNoluifXia+U3FuqGCTQ1w7iTqx1UvNhLX6tb9Qjy\nl/vjl1iXxucrd2JBnrT/21BdtaABhu2hPy7bpcGEkG8MDinAMZBzcyzHcS/JiGHZ\nd/YmMWQUgbDlApbxFSGWiXMgT0Js5QdcywHI5oiCmV0lkZ+khZ4PkVWmk6uZgYWf\nJOG5wp5TDPnoYXlA4CLb6hu2691aDm9b99XYqEjhbeIzS9bFQrdrQzRMKyzLr8NW\ns8Pq2tgyzu8txlWdBXJyAMKldTPstqtygLL9UUdo7CIQQzWqeDbAnv+WdOmiI/hR\netbbwNV+thkLJz0WD90C2L3JEeUJX5Qa4oPvfNLDeCKmJFEFUTCEdm0AYoQDjLJQ\n3d3q9M09thXO/jYM0cSnJDclssLNsNWfjJAerLadLwNnYRuralw7f74QSLYdJAJU\nSFShBlctWKnlhQ7ehockqtgXtWckkqPZZjGiMXwHde9b9Yyi+VqtUQWxSWny+9g9\n6tcoa3AdnmpqSTHQxYajD0EGXJ0z0NXfqxkI0lo8UxzypEBy4sARZ4XhTU73Zwk0\nLGhEUHlfyxXgRs6RRvM2UIoo+gou2M9rn/RWkhuHJNSfgrM0BmIBCjhjwGiS33Qh\nysLDWJMdch8lsu1fTmLEFQrOB93oieOJQ0Ysi5gQY8TOT+oZvVi9pSMJuwARAQAB\ntDFGZWRvcmEgKDM5KSA8ZmVkb3JhLTM5LXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQJOBBMBCAA4FiEE6PI5lvIyGGQMtEy+dc9axBi450wFAmLykg8CGw8FCwkI\nBwIGFQoJCAsCBBYCAwECHgECF4AACgkQdc9axBi450yd4w//ZtghbZX5KFstOdBS\nrcbBfCK9zmRvzeejzGl6lPKfqwx7OOHYxFlRa9MYLl8QG7Aq6yRRWzzEHiSb0wJw\nWXz5tbkAmV/fpS4wnb3FDArD44u317UAnaU+UlhgK1g62lwI2dGpvTSvohMBMeBY\nB5aBd+sLi3UtiSRM2XhxvxaWwr/oFLjKDukgrPQzeV3F/XdxGhSz/GZUVFVprcrB\nh/dIo4k0Za7YVRhlVM0coOIcKbcjxAK9CCZ8+jtdIh3/BN5zJ0RFMgqSsrWYWeft\nBI3KWLbyMfRwEtp7xSi17WXbRfsSoqwIVgP+RCSaAdVuiYs/GCRsT3ydYcDvutuJ\nYZoE53yczemM/1HZZFI04zI7KBsKm9NFH0o4K2nBWuowBm59iFvWHFpX6em54cq4\n45NwY01FkSQUqntfqCWFSowwFHAZM4gblOikq2B5zHoIntCiJlPGuaJiVSw9ZpEc\n+IEQfmXJjKGSkMbU9tmNfLR9skVQJizMTtoUQ12DWC+14anxnnR2hxnhUDAabV6y\nJ5dGeb/ArmxQj3IMrajdNwjuk9GMeMSSS2EMY8ryOuYwRbFhBOLhGAnmM5OOSUxv\nA4ipWraXDW0bK/wXI7yHMkc6WYrdV3SIXEqJBTp7npimv3JC+exWEbTLcgvV70FP\nX55M9nDtzUSayJuEcfFP2c9KQCE=\n=J4qZ\n-----END PGP PUBLIC KEY BLOCK-----"
-        ],
         "check_gpg": true,
         "baseurl": "https://rpmrepo.osbuild.org/v2/mirror/public/f39/f39-x86_64-branched-20231101"
       }
@@ -1530,11 +1527,7 @@
                 ]
               }
             },
-            "options": {
-              "gpgkeys": [
-                "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGLykg8BEADURjKtgQpQNoluifXia+U3FuqGCTQ1w7iTqx1UvNhLX6tb9Qjy\nl/vjl1iXxucrd2JBnrT/21BdtaABhu2hPy7bpcGEkG8MDinAMZBzcyzHcS/JiGHZ\nd/YmMWQUgbDlApbxFSGWiXMgT0Js5QdcywHI5oiCmV0lkZ+khZ4PkVWmk6uZgYWf\nJOG5wp5TDPnoYXlA4CLb6hu2691aDm9b99XYqEjhbeIzS9bFQrdrQzRMKyzLr8NW\ns8Pq2tgyzu8txlWdBXJyAMKldTPstqtygLL9UUdo7CIQQzWqeDbAnv+WdOmiI/hR\netbbwNV+thkLJz0WD90C2L3JEeUJX5Qa4oPvfNLDeCKmJFEFUTCEdm0AYoQDjLJQ\n3d3q9M09thXO/jYM0cSnJDclssLNsNWfjJAerLadLwNnYRuralw7f74QSLYdJAJU\nSFShBlctWKnlhQ7ehockqtgXtWckkqPZZjGiMXwHde9b9Yyi+VqtUQWxSWny+9g9\n6tcoa3AdnmpqSTHQxYajD0EGXJ0z0NXfqxkI0lo8UxzypEBy4sARZ4XhTU73Zwk0\nLGhEUHlfyxXgRs6RRvM2UIoo+gou2M9rn/RWkhuHJNSfgrM0BmIBCjhjwGiS33Qh\nysLDWJMdch8lsu1fTmLEFQrOB93oieOJQ0Ysi5gQY8TOT+oZvVi9pSMJuwARAQAB\ntDFGZWRvcmEgKDM5KSA8ZmVkb3JhLTM5LXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQJOBBMBCAA4FiEE6PI5lvIyGGQMtEy+dc9axBi450wFAmLykg8CGw8FCwkI\nBwIGFQoJCAsCBBYCAwECHgECF4AACgkQdc9axBi450yd4w//ZtghbZX5KFstOdBS\nrcbBfCK9zmRvzeejzGl6lPKfqwx7OOHYxFlRa9MYLl8QG7Aq6yRRWzzEHiSb0wJw\nWXz5tbkAmV/fpS4wnb3FDArD44u317UAnaU+UlhgK1g62lwI2dGpvTSvohMBMeBY\nB5aBd+sLi3UtiSRM2XhxvxaWwr/oFLjKDukgrPQzeV3F/XdxGhSz/GZUVFVprcrB\nh/dIo4k0Za7YVRhlVM0coOIcKbcjxAK9CCZ8+jtdIh3/BN5zJ0RFMgqSsrWYWeft\nBI3KWLbyMfRwEtp7xSi17WXbRfsSoqwIVgP+RCSaAdVuiYs/GCRsT3ydYcDvutuJ\nYZoE53yczemM/1HZZFI04zI7KBsKm9NFH0o4K2nBWuowBm59iFvWHFpX6em54cq4\n45NwY01FkSQUqntfqCWFSowwFHAZM4gblOikq2B5zHoIntCiJlPGuaJiVSw9ZpEc\n+IEQfmXJjKGSkMbU9tmNfLR9skVQJizMTtoUQ12DWC+14anxnnR2hxnhUDAabV6y\nJ5dGeb/ArmxQj3IMrajdNwjuk9GMeMSSS2EMY8ryOuYwRbFhBOLhGAnmM5OOSUxv\nA4ipWraXDW0bK/wXI7yHMkc6WYrdV3SIXEqJBTp7npimv3JC+exWEbTLcgvV70FP\nX55M9nDtzUSayJuEcfFP2c9KQCE=\n=J4qZ\n-----END PGP PUBLIC KEY BLOCK-----"
-              ]
-            }
+            "options": {}
           },
           {
             "type": "org.osbuild.selinux",
@@ -5240,11 +5233,7 @@
                 ]
               }
             },
-            "options": {
-              "gpgkeys": [
-                "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGLykg8BEADURjKtgQpQNoluifXia+U3FuqGCTQ1w7iTqx1UvNhLX6tb9Qjy\nl/vjl1iXxucrd2JBnrT/21BdtaABhu2hPy7bpcGEkG8MDinAMZBzcyzHcS/JiGHZ\nd/YmMWQUgbDlApbxFSGWiXMgT0Js5QdcywHI5oiCmV0lkZ+khZ4PkVWmk6uZgYWf\nJOG5wp5TDPnoYXlA4CLb6hu2691aDm9b99XYqEjhbeIzS9bFQrdrQzRMKyzLr8NW\ns8Pq2tgyzu8txlWdBXJyAMKldTPstqtygLL9UUdo7CIQQzWqeDbAnv+WdOmiI/hR\netbbwNV+thkLJz0WD90C2L3JEeUJX5Qa4oPvfNLDeCKmJFEFUTCEdm0AYoQDjLJQ\n3d3q9M09thXO/jYM0cSnJDclssLNsNWfjJAerLadLwNnYRuralw7f74QSLYdJAJU\nSFShBlctWKnlhQ7ehockqtgXtWckkqPZZjGiMXwHde9b9Yyi+VqtUQWxSWny+9g9\n6tcoa3AdnmpqSTHQxYajD0EGXJ0z0NXfqxkI0lo8UxzypEBy4sARZ4XhTU73Zwk0\nLGhEUHlfyxXgRs6RRvM2UIoo+gou2M9rn/RWkhuHJNSfgrM0BmIBCjhjwGiS33Qh\nysLDWJMdch8lsu1fTmLEFQrOB93oieOJQ0Ysi5gQY8TOT+oZvVi9pSMJuwARAQAB\ntDFGZWRvcmEgKDM5KSA8ZmVkb3JhLTM5LXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQJOBBMBCAA4FiEE6PI5lvIyGGQMtEy+dc9axBi450wFAmLykg8CGw8FCwkI\nBwIGFQoJCAsCBBYCAwECHgECF4AACgkQdc9axBi450yd4w//ZtghbZX5KFstOdBS\nrcbBfCK9zmRvzeejzGl6lPKfqwx7OOHYxFlRa9MYLl8QG7Aq6yRRWzzEHiSb0wJw\nWXz5tbkAmV/fpS4wnb3FDArD44u317UAnaU+UlhgK1g62lwI2dGpvTSvohMBMeBY\nB5aBd+sLi3UtiSRM2XhxvxaWwr/oFLjKDukgrPQzeV3F/XdxGhSz/GZUVFVprcrB\nh/dIo4k0Za7YVRhlVM0coOIcKbcjxAK9CCZ8+jtdIh3/BN5zJ0RFMgqSsrWYWeft\nBI3KWLbyMfRwEtp7xSi17WXbRfsSoqwIVgP+RCSaAdVuiYs/GCRsT3ydYcDvutuJ\nYZoE53yczemM/1HZZFI04zI7KBsKm9NFH0o4K2nBWuowBm59iFvWHFpX6em54cq4\n45NwY01FkSQUqntfqCWFSowwFHAZM4gblOikq2B5zHoIntCiJlPGuaJiVSw9ZpEc\n+IEQfmXJjKGSkMbU9tmNfLR9skVQJizMTtoUQ12DWC+14anxnnR2hxnhUDAabV6y\nJ5dGeb/ArmxQj3IMrajdNwjuk9GMeMSSS2EMY8ryOuYwRbFhBOLhGAnmM5OOSUxv\nA4ipWraXDW0bK/wXI7yHMkc6WYrdV3SIXEqJBTp7npimv3JC+exWEbTLcgvV70FP\nX55M9nDtzUSayJuEcfFP2c9KQCE=\n=J4qZ\n-----END PGP PUBLIC KEY BLOCK-----"
-              ]
-            }
+            "options": {}
           },
           {
             "type": "org.osbuild.fix-bls",

It's also strange that the builds succeeded when the packages have check_gpg = true but without any keys listed in the stage options :thinking:
[1] https://gitlab.com/redhat/services/products/image-builder/ci/images/-/jobs/5804488140

Also weird: I see the keys in the build log: https://gitlab.com/redhat/services/products/image-builder/ci/images/-/jobs/5804589259

OH WAIT!  Of course everything will get rebuilt.  All the distro names have essentially changed so it can't match against old configs (this is okay, we like mass rebuilds from time to time :) )

Found the issue:
The private rpmmd.repository struct that's used to load the test repos only has GPGKey: https://github.com/thozza/osbuild-images/blob/0ca994ddcfd660829033bf2caa67692a01b5d687/pkg/rpmmd/repository.go#L20
And I recently switched the test repos to use a slice: https://github.com/osbuild/images/commit/81cc5e2d287d3c4ae1d073c3c672ece72a0d5cca
I think it'd be nice to support both (of course keep the old one for backwards compatibility).
diff --git a/pkg/rpmmd/repository.go b/pkg/rpmmd/repository.go
index 13158b40b..64591a2e5 100644
--- a/pkg/rpmmd/repository.go
+++ b/pkg/rpmmd/repository.go
@@ -18,6 +18,7 @@ type repository struct {
 	Metalink       string   `json:"metalink,omitempty"`
 	MirrorList     string   `json:"mirrorlist,omitempty"`
 	GPGKey         string   `json:"gpgkey,omitempty"`
+	GPGKeys        []string `json:"gpgkeys,omitempty"`
 	CheckGPG       bool     `json:"check_gpg,omitempty"`
 	IgnoreSSL      bool     `json:"ignore_ssl,omitempty"`
 	RHSM           bool     `json:"rhsm,omitempty"`
@@ -240,6 +241,9 @@ func LoadRepositoriesFromFile(filename string) (map[string][]RepoConfig, error)
 			if repo.GPGKey != "" {
 				keys = []string{repo.GPGKey}
 			}
+			if len(repo.GPGKeys) > 0 {
+				keys = append(keys, repo.GPGKeys...)
+			}
 			config := RepoConfig{
 				Name:           repo.Name,
 				BaseURLs:       urls,

The reason the build log shows keys is because cmd/build/ still uses its own loader into rpmmd.RepoConfig.  We should switch that like we did for gen-manifests too.

I implemented the following changes:

Renamed distro ID string parser functions and the disroidparser.Parser constructor, as suggested.
I extended rpmmd.repository to support gpgkeys array in the JSON representation.
Modified distrofactory.New() to return pointer instead of a value, since it makes more sense and it turned out to be desired when integrating the change into osbuild-composer.
Modified cmd/build to also use reporegistry, instead of a custom code to load repo configs.

Everything looks great. Anything left for this to be marked as ready?

Well, I think that it would be for the best to have a PR in osbuild-composer ready, which would integrate the changes there, before we merge this. Because otherwise, we may end up having to make a small change in an image definition, but it would be impossible to make it quickly and re-deploy the service. Unfortunately that means more for for me to keep this PR up-to-date until the PR in composer is ready... :shrug:

Right.  Good thinking.  Let's see how quickly we can get the osbuild-composer side done then.

Notes on what changed as a result of porting the work to osbuild-composer:

distro.ParseID() has been modified to allow dashed in the distro name. Originally, this was not possible, but osbuild-composer used centos-stream-X for repo files, which filename we need to parse.
reporegistry.LoadAllRepositories() has been modified to not fail in case the repo config filename can't be parsed by distro ID parser. The filename is used as is as the distro name if it can't be parsed. The goal is to prevent osbuild-composer from failing when loading repositories, since this was previously the case.


[BUG] - Skeleton does not respect disableAnimation

NextUI Version
2.2.9
Describe the bug
Passing disableAnimation to skeleton does nothing, the animation continues.
Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

Setup a skeleton so that it is animating.
Add disableAnimation.

Expected behavior
Expect animation to not happen.
Screenshots or Videos
No response
Operating System Version
MacOS
Browser
Chrome

Thanks for reporting. I'm able to reproduce. I'll work on it.


VSCode won't launch on Windows if path contains # character

I've tried searching in existing issues but couldn't find one tracking this issue.

VSCode Version:
1.27.0 Insider build as well as other versions

OS Version:
Windows 10 Version 1709

Steps to Reproduce:

Download the VScode installer for windows and set the install path to a folder with # character in the name for example: C:\Program Files\Microsoft VS # Code
Try launching VS code from a cmd window.

Result:
VS code is not launching with the following error in the cmd window:
The factory method of "vs/base/node/paths" has thrown an exception
{ Error: Cannot find module 'c:\Program Files\Microsoft VS Code '
at Module._resolveFilename (module.js:543:15)
at Function.Module._resolveFilename (C:\Program Files\Microsoft VS Code # Insiders\resources\electron.asar\common\reset-search-paths.js:35:12)
at Function.Module._load (module.js:473:25)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at Function.i [as __$__nodeRequire] (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:30:770)
at Object. (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\code\electron-main\main.js:135:413)
at Function.t._safeInvokeFunction (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:19:248)
at Function.t._invokeFactory (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:19:495)
at t.complete (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:19:732)
at s._onModuleComplete (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:30:25)
at s._resolve (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:29:599)
at s.defineModule (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:23:862)
at o (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\loader.js:31:180)
at Object. (C:\Program Files\Microsoft VS Code # Insiders\resources\app\out\vs\code\electron-main\main.js:135:265)

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

This could be https://github.com/electron/electron/issues/10311 (even though that one talks about a leading "#").

@alanrenmsft for some reason I cannot reproduce this issue. I installed VSCode Insiders to this folder: "C:\Program Files\Microsoft VS # Code Insiders" and it starts fine. I do not remember we pushed a fix for this but could you maybe try again with latest insiders?


Remove this partial work until we're ready to focus on it

This was the first part of a task we've changed priorities on for now
so remove it from the code base.

:+1: lgtm fftm 🍆


Shorter-filenames

Codecov Report

Merging #108 (eb2b51b) into main (d1808e6) will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##             main     #108   +/-   ##
=======================================
  Coverage   90.21%   90.21%
=======================================
  Files          69       69
  Lines        3782     3782
=======================================
  Hits         3412     3412
  Misses        265      265
  Partials      105      105

Flag
Coverage Δ

unittests
90.21% <0.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

diff/string_list.go
33.33% <0.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Refresh Hierarchy Parent

This is piece of js to refresh component's parent component. This is for author using in edit view. It is provided a friendly user experience to author especially in a heavy page.
There is a case that when author create the content, he usually drags a container first then the component itself, but after the author edit or delete the component the container can't be refreshed.
It is common to refresh page, but it cost to much when the page is big. So refresh hierarchy parent is more helpful.
It is used in cq:listeners afterdelete or afteredit etc, given a parameter for which level should be refreshed.

This is piece of js to refresh component's parent component.

please let me know where this piece of JS is.
Thanks.


Hangs when running yarn

Just so this is in hyper's radar. See https://github.com/yarnpkg/yarn/issues/611.

This happened to me as well during my first yarn install, but I can't seem to reproduce it afterwards (even with a fresh yarn installation and .yarn and .yarn_cache deleted). Strange!

Could be emojis?

Or maybe the refresh rate on the progress bar?

Probably has to do with unicode

Fresh install of yarn, ran into the same issue don't really know how to debug since JS process just freeze :(
Will try with https://github.com/zeit/hyper/pull/740 since it might be unicode related.

How did you installed yarn ? Re-installing with $ npm i -g yarn fixed the issue for me!

Happened to me as well when I first installed it 😩 Reinstalled it with npm -i -g yarn and now it works – thanks @iam4x 😄

Strangely, installing Yarn via npm i -g yarnpkg rather than the curl script recommended here fixed this for me too.

@bevacqua @ynnoj does this still happen?

@CodeTheory I'm using yarn daily with Hyper now with zero issues.

Thanks @ynnoj!


Android: Images in Listview disappear when going back to Window

I think we had this issue in older releases before but I can't remember:
Window A: av.ImageView inside a listview. I click the item and open a new window B (also has a av.imageview)
Then I close window B and go back to win A. The images disappear and I have to scroll down and up again to see them.
<ListView id="list_feed" defaultItemTemplate="default" onItemclick="onClickItem">
	<Templates>
		<ItemTemplate name="default">
			<View class="view_all">
				<ImageView class="img_feed" ns="AvImageview"/>
			</View>
		</ItemTemplate>
	</Templates>
	<ListSection/>
</ListView>

(removed unnecessary views etc)
When I use a normal ImageView it works fine. Here is a comparison video:
https://www.migaweb.de/avimageview.mp4
first half (squashed images) are normal ImageViews, starting at 0:07 I use av.imageviews
Ti 9.2.2, av.imageview 5.0.1 (and 5.0.2)

Experiencing the same issue here!

Yes, that issue is there since 4.0.0 :(

Do you use updateItemAt before opening the 2nd window?
I run that twice (showing/hiding the heart icon) and that breaks the imageview somehow! If I open the new window with a setTimeout or without the udpateItemAt block it works fine!

Could you guys please give a try to the attached module in this PR : https://github.com/AndreaVitale/av.imageview/pull/108

yes, that fixed it for me! Images are still there when I close my window - even without the timeout workaround in my last message! :+1:

Good to hear. It was then activity leakage issue.

Merged the #108 ! Thanks guys!


Update circe-core, circe-generic to 0.14.6

About this PR
📦 Updates

io.circe:circe-core
io.circe:circe-generic

from 0.13.0 to 0.14.6
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.circe" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.circe" }
}]

labels: library-update, early-semver-major, semver-spec-minor, version-scheme:early-semver, commit-count:1

Superseded by #355.

Superseded by #358.


Update docs links in README

Pull Request
Related issue
Fixes #301
What does this PR do?

Fixes docs links after Meilisearch docs migration

PR checklist
Please check if your PR fulfills the following requirements:

[x] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[x] Have you read the contributing guidelines?
[x] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

I have resolved the issue @bidoubiwa

✨ LGTM ✨


added expand flag to vcf2db command

as discussed in #1573, added --expand flags to vcf2db command
M

Matthias;
Thanks for this. We'll probably need to make expanding these columns a configuration option since it impacts the speed and size of the output database.
The best approach might be to have an tools_on option for this (http://bcbio-nextgen.readthedocs.io/en/latest/contents/configuration.html#tweaking-defaults) so you can do:
tools_on: [vcfanno_expand]

that will add these options. What do you think?

Hi Brad,
Sound great to me, although I'd call the option 'expand_genotypes', to make it sound more generic. On that same note, I probably like to see the 'gemini' param changed to 'variant_db' or something, since strictly we aren't handling gemini db's anymore.
Thanks!
M

Mathias -- I prefer the more specific naming since the general ones can be misinterpreted. For example, if you just see tools_on: [expand_genotypes] it's very hard to guess what step that applies to and what is does. Similarly, variant_db is pretty generic and doesn't reflect that we're creating them in a certain way for querying with the GEMINI framework.
Probably vcf2db_expand is the right flag since that's actually the step this happens at, but happy to discuss more if you or others feel strongly about more generic names.

Hi Brad,
Frankly, the naming doensn't matter all that much to me. I mostly care about the functionality :) However, you're right the users should be able to know which step is affected by each parameter.
I'll look into adding the option vcf2db_expand in the next commit. After that, I suppose this can be merged.
Thanks for the comments!
M

There we go, fixed and tested! If there aren't any new issues, I believe this can be merged.
M

Matthias -- thanks so much for this.


how to fixi

Checklist

[X] I'm asking a question and not reporting a bug/feature request
[X] I've looked through the README
[X] I've read the guidelines for opening an issue
[X] I've searched the bugtracker for similar questions including closed ones

Question
'yt-dlp' is not recognized as an internal or external command,
operable program or batch file.
how to solve this
Verbose log
C:\Users\52240>yt-dlp -F https://www.youtube.com/watch?v=Dl_2-sQOhqE
'yt-dlp' is not recognized as an internal or external command,
operable program or batch file.

Configure your PATH variable to have yt-dlp folder
https://www.java.com/en/download/help/path.html


Update state automatically if last mutation is active

What problem does this feature solve?
When adding each new mutation we have to click on the load state button. It is not comfortable. Especially when mutations are triggered by time interval.

What does the proposed API look like?
Update state automatically only If last mutation is active and vuex tab is selected.
Example:

This is by design to prevent performance issues or even crashes in bigger applications.

I added this behind a setting with a warning message.


Fix for broke clean user groups migration

Fixes #114

Fixes #114

Generally you would add some testing instructions.
e.g.

run dev up and check that migration succeeds.
run dev down && dev up to check that the migration is idempotent.

In the future, you might want to include loading the "user groups" in your testing instructions.
e.g.
1. Boot the app.
2. Prefill some user groups.
3. run the migration.


效果奇差

跟榜单指标完全背道而驰啊，几乎完全理解不了视频

please try English  question.

Extremly bad.....

No, This is not about lenght, even you sampling about 100frames, you should not get the conclusion there is a dog in the video.
On constrast, Emu2 is way more better, and it just using 12 frames.
However, honestly speaking, this is not a easy task. Hoping you guys have a more complete and justice evaluation on your model, not just metrics on your data.

Thanks for your feedback~~
Firstly, the problem you mentioned is actually about Hallucination (more about spatial understanding), which is another way to evaluate an MLLM. And currently, our benchmark focuses more on temporal understanding.
Besides, such a multiple-choice setting is good for evaluation, but may not be fair enough to evaluate all the capacities of MLLMs. And we suggest considering it as a complementary benchmark to the current spatial benchmark.
Secondly, for about 100 frames, our current model simply compresses all the tokens into 96 tokens, which might drop out meaningful messages, especially for long videos, while Emu2 uses simple polling and large resolution to maintain the information.
Thirdly, about the LLM, we now use a small LLM (even the old version of Vicuna), since we find that it's enough for our benchmark. As you said, it performs worse than Emu2 in your case, which is also a potential reason. We have tried to use a new model like Mistral, which performs better, but still poses some Hallucination.
In conclusion, it's difficult to develop an all-round MLLM. For the benchmark, we hope to provide a complementary benchmark. For the model, the instruction data is more important than the architecture for short videos. And we will consider including more vital data as in the current image MLLMs to solve the Hallucination.
Finally, thanks for your kind advice, and we are continuing to improve the model~~

I highly recommend testing on Emu2Chat, which exhibits superior spatial comprehension capabilities compared to other platforms. When referring to hallucinations, it is crucial that they are grounded in some accurate information, with only minor inaccuracies or false positives present; otherwise, they cannot truly be classified as hallucinations and would be considered completely incorrect.
Additionally, it is worth noting that Emu2Chat is capable of processing up to 12 frames at a time, allowing it to effectively summarize two-minute videos by capturing significant events. This demonstrates its exceptional spatial awareness.
I truely hoping you can have some dedicated comparsion with Emu2Chat on video to prove your model's ability.

I highly recommend testing on Emu2Chat, which exhibits superior spatial comprehension capabilities compared to other models. When referring to hallucinations, it is crucial that they are grounded in some accurate information, with only minor inaccuracies or false positives present; otherwise, they cannot truly be classified as hallucinations and would be considered completely incorrect.
Additionally, it is worth noting that Emu2Chat is capable of processing 12 frames only, allowing it to effectively summarize two-minute videos by capturing significant events. This demonstrates its exceptional spatial awareness.
I truely hoping you can have some dedicated comparsion with Emu2Chat on video to prove your model's ability.

Sounds good. GLM4 performs also good.

It's been a while since the last update, so I've temporarily closed the issue. Please feel free to reopen it at any time.


backspace issue

Issue Type: Feature Request
Hi! i am facing the problem of backspace issue in VS code i reinstalled it but not getting any solution please fix it or tell me how to fix it ....the BACKSPACE is not only working during code in VS it is OK in every other software ...
thank you
VS Code version: Code 1.41.0 (9579eda04fdb3a9bba2750f15193e5fafe16b959, 2019-12-11T17:59:52.065Z)
OS version: Windows_NT ia32 10.0.22621

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.82.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

/gifPlease

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


[KERNEL] int8 quantization kernel refactoring & optimization WIP

This refactors the int8 quantization kernel so that it will optimize f32 -> i8. However, please note that fp16 will require use of half2 though. That can be done with some template specializations but for brevity I will leave that outside of this PR for now.

Reorders instructions to improve ILP with unrolling(manual unrolling can also be done)
Use vectorized loads and stores for fp32, this will significantly increase memory throughput.
Refactors to use the reciprocal of the scale so that we can avoid doing division on the GPU, which is categorically slower because of how many more instructions it leads to.
From the profiling I've done, the problem is that there is a dependency chain of instructions going on. Warps get stalled at the multiplication becasue they are dependent on the memory instruction to complete before they get to do anything.  So we want to interleave independent instructions(this is handled by the unrolling) in order to minimize the stalling.
Memory accesses are already coalesced from the original kernel. Since this streams into global memory, we aren't reusing data. Follows the same pattern as the original.

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

So for fp16 we would need to do something like...
    struct half4
    {
        half2 x, y; // 2 half2s since cuda doesn't support half4
    };

     template <>
    __global__ void static_scaled_int8_quant_kernel<half4, float>(
        const half4 *__restrict__ input, int8_t *__restrict__ out,
        float inverted_scale, const int hidden_size)
    {
    ...
     unroll 4
        for (int i = tid; i < traverse_space; i += blockDim.x)
        {
            int index = token_idx * traverse_space + i;

            half4 data_half4 = vectorized[index];

            // Convert half2 to float
            float2 data0 = __half22float2(data_half4.x);
            float2 data1 = __half22float2(data_half4.y);
            ...

etc which can just be a specialization. Can experiment with overloading as well to see what impacts this has on compile times(if important) since we are introducing another kernel

Could you focus on the fp16 / bf16 case? We won’t run the fp32 activations very often

Could you focus on the fp16 / bf16 case? We won’t run the fp32 activations very often

Yep that's fine with me. The code should mostly follow the same logic, will push when I get the chance!


API for source maps

The command-line lists --maps, -m        Enable JavaScript source maps in js bundles (for dev mode). but the API documentation does not provide an equivalent option.

Hi @cowwoc , the deal is that this option can be set through the API using. Providing a separate option via the API would be redundant.
browserifyBundleOptions : {
	debug : maps
}

I just added a reference to this use case in the docs for browserifyBundleOptions. Thx!


How to include ReferenceSpeciesList

The reference in ReferenceSpeciesList is currently not included in the DwC dataset, the ReferenceRedList is (for the distribution).
Should that first one be included as well, lumped with the second on in source?

Answered by Dirk: include both in single source


[Bug]: qbittorent download url is not valid anymore

Prerequisites

[X] I have written a descriptive issue title.
[X] I have searched all issues/PRs to ensure it has not already been reported or fixed.
[X] I have verified that I am using the latest version of Scoop and corresponding bucket.

Package Name
qbittorent
Expected/Current Behaviour
install succed but now cannot
Steps to Reproduce
scoop install qbittorent

Possible Solution
fix url from source
Scoop and Buckets Version
scoop --version
Current Scoop version:
105e4161 (HEAD -> master, tag: v0.4.0, origin/master, origin/HEAD) chore(release): Bump to version 0.4.0 (#5424)

'main' bucket:
3232f6eb8 (HEAD -> master, origin/master, origin/HEAD) memcached: Update to version 1.6.26

'extras' bucket:
ee042680b (HEAD -> master, origin/master, origin/HEAD) wavebox: Update to version <IP_ADDRESS>

'versions' bucket:
a89c3f014 (HEAD -> master, origin/master, origin/HEAD) zig-dev: Update to version 0.13.0-dev.40

Scoop Config
s

PowerShell Version
s

Additional Softwares
No response

scoop install qbittorent

You are trying to install a manifest that does not exist
The https://github.com/ScoopInstaller/Extras/blob/master/bucket/qbittorrent.json works fine
Try run:
scoop install extras/qbittorrent


update README page

README page
Add a UI mockup of your intended final product. Note that the image of the UI should be docs/images/Ui.png so that it can be downloaded by our scripts. Limit the file to contain one screenshot/mockup only and ensure the new image is roughly the same height x width proportions as the original one.
Reason: when we compile these images from all teams into one page (example), yours should not look out of place.
If you did the above update correctly, UI mock up and profile photos should appear in your project website and this Project List Page.
Update all contents to match your own project.
Update the link of the GitHub Actions build status badge () so that it reflects the build status of your team repo.
Acknowledge the original source of the code e.g.,
This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).

Note the GitHub Actions build status badge is the actual one for our repo. So someone can just copy the MarkDown code and put it in the README


schemas: DSRC schema is in schemas' top-level directory

What:

the DSRC schema is at the top-level of schemas' directory, schema/dsrc_schema_1-0-0.json;
the references in schemas are now wrong: the DSRC is not in the same directory as the schemas.

Expected:

the DSRC schema is in a sub-directory of its own, i.e. schema/dsrc/dsrc_schema_1-0-0.json;
the references in schemas point to ../dsrc/dsrc_schema_1-0-0.json.

@mathieu1fb Thanks for noticing the relative path for references.

I'm assigning it to myself: @Hugues360 I can take care of it if you do not mind!


WASAPI audio loopback capabilities

Greetings!
I am working on a music visualizer using UWP.  When building a win32 app, I am able to successfully input WASAPI audio loopback as referenced from this document: https://docs.microsoft.com/en-us/windows/desktop/coreaudio/loopback-recording
Now with UWP (for Xbox), I have modified the WindowsAudioSession project to include the GetDefaultAudioRenderId for ActivateAudioInterfaceAsync and the AUDCLNT_STREAMFLAGS_LOOPBACK flag for m_AudioClient->Initialize.  The debugger shows E_ACCESSDENIED General access denied error.  Any thoughts on how to proceed here for Xbox platform?
Thanks,
mancoast

This is not an issue with the sample itself, but with your modifications to the sample. You can open a support case with our Developer Support team who can further help with the problem you are experiencing.:

Visit http://aka.ms/storesupport and sign-in with your Microsoft account
Under the “App Development” section choose "Windows 10 universal app development", then choose the appropriate problem type and category to get engaged through a formal support channel.

This is for open-source project, so unfortunately I do not have a subscription for Windows developer support. Do you know any where else I can communicate and collaborate with others about this topic?

Maybe the developer forums? https://social.msdn.microsoft.com/Forums/


Fix FF_bump

Break instead of early return to clear up local variables.

Good catch! Will upload patch soon.


[Bug] ListOperation orderByRaw does not work when using mongodb

Bug report
What I did
Tried to open a panel
??
What I expected to happen
To Open the panel
??
What happened
Mongodb Bad Sort Exception
??
What I've already tried to fix it
Commenting:
$this->crud->query->orderByRaw($this->crud->model->getTableWithPrefix().'.'.$column['name'].' '.$column_direction);
at list operation works.
Before when it had    '$this->crud->query->orderBy($column['name'], $column_direction);'
It also worked (was change on one of last updates)
Backpack, Laravel, PHP, DB version
When I run php artisan backpack:version the output is:
PHP VERSION:
PHP 7.4.9 (cli) (built: Aug  4 2020 11:51:50) ( NTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
LARAVEL VERSION:
v6.18.36@0fc371134524190fdf31f77c77bc73b096760f18
BACKPACK VERSION:
4.1.19@a47eeda32d08d0d47a3c820416c8a8f880752b80

I changed the List Operation to the old version for my cruds that use MongoDb with Laravel-Mongodb and it seems to work fine

Ugh... thanks for reporting this @lborrazas . I was worried this would happen... We're on it. Could you please share a screenshot of the error stack? What's wrong here - does Eloquent not support orderByRaw when using MongoDB... OR is it a problem with the table prefix that we introduced?
I'm wondering if we can't find a better solution rather than littering the operation with an if/else statement depending on DBMS...

Hey @lborrazas
Like @tabacitu said we work with mysql support in mind, but if we can make it available for mongodb or other db engine we would happilly do it.
I am not a mongodb user, I think neither @tabacitu . It would help us to implement a solution for mongo if we better know the root of the problem.
Does orderByRaw work with mongo? Is the getTableWithPrefix() call that triggers the error ?
If any other mongodb user could also give his input it would be much appreciated.
Best,
Pedro

Sorry for my delay been super bussy last hours. Raw Expressions fail when changing from relational to non relational database cause there are no sql at mongodb so they dont understand whats going on when making raw queries.
I took out the prefix inside the raw method and did not work, also tried different values for the method too.
I believe the package mongodb users use for implementing the elloquent interface called laravel-mongodb (by jessengers) does not implement a solution for raw functions since  they are pure (or almost pure) sql sintax and not something the elloquent interface could fix. (Correct me if I'm wrong)
I know you have in mind just sql langages and its ok since Laravel does the same thing... but backpack been working like a charm with the laravel-mongodb package before, and I have been surprised that cruds read nested documents and everything perfectly.
Tomorrow  I'll check this again at my project, print error stack and post it here.

I'v just submited a PR that might address this. #3259
Let's keep the discussion of how we are going to implement it in the PR thread.
I am going to close this in favor of the PR.
Wish you the best,
Pedro

Just reviewed it, looks like a good solution, just had a few minor code style suggestions. Looks like we're going to have this merged by Monday @lborrazas .


Malformed payload errors using Azure Event Hub

I'm populating an Azure event hub using a stream analytics job and attempting to read from the event hub using this library. The library chokes on certain events with error messages like:
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown code prefix: 0x20
malformed payload: Unknown code: 0x64
malformed payload: Unable to decode bytes from message body: 005375b00002810c5b7b226576656e7474797065223a2254656c656d65747279507573684576656e74222c2270....
Any ideas on what could be wrong?

@ianwsperber is it possible to get a debug dump of your session? (as in specifying DEBUG=amqp* as an environment variable when  you run your script)

Here's a sample from the logs (had to clean up a little since the information is sensitive):
malformed payload: Unable to decode bytes from message body: 005375b00003ef795b7b2265766.....a3232333034302c2274797065
malformed payload: Unknown code prefix: 0x20
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown code prefix: 0x20
malformed payload: Unable to decode bytes from message body: 005375b00003ef5e5b7b2265766.....a34363a31352e303030303030
malformed payload: Unable to decode bytes from message body: 005375b00003ef165b7b2265766.....172746e65726e6f7469666963
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown message contents: 29801
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown code prefix: 0x30
malformed payload: Unable to decode bytes from message body: 005375b00002bf345b7b2265766.....964223a3234393830302c2274
malformed payload: Unknown code: 0x79
malformed payload: Unknown code prefix: 0x20
malformed payload: Unable to decode bytes from message body: 005375b00002810c5b7b2265766.....23a34322e333239333736322c
malformed payload: Unknown code prefix: 0x20
malformed payload: Unknown code: 0x64
malformed payload: Unable to decode bytes from message body: 005375b00003eef95b7b2265766.....2333034302c2274797065223a
malformed payload: Unknown code prefix: 0x20
malformed payload: Unknown code prefix: 0x30
malformed payload: Unknown message contents: 28263
malformed payload: Unable to decode bytes from message body: 005375b00003efee5b7b2265766.....d39332e353735353834342c22
UTF32 not yet implemented
UTF32 not yet implemented
malformed payload: Unknown code prefix: 0x20

@ianwsperber I understand the need to protect the data, we appreciate whatever clues we can get to the bottom of the issue. For starters, I've added very basic support for the AMQP char type (which is utf32be, not something node is natively very happy with). I've pushed that to the char-support branch. Would you mind trying your test again with that in place?
If you're unclear how to test that branch, you simply need to modify your package.json like so:
"dependencies": {
   ... other dependencies ...,
   "amqp10": "noodlefrenzy/node-amqp10#char-support"
}

Changed the reference in the package.json and reinstalled, didn't fix the error

@ianwsperber thanks for testing that out, would it be possible to get an updated debug output from there? Clearly some piece of data is clobbering our codec, and my hunch is that is why you are getting so many errors regarding unknown code prefixes, because the codec failed to increment its internal buffer pointer.
Trying to isolate the particular piece of incoming data that first triggers this failure is probably the fastest way to a fix. Would it be possible to run this against less sensitive data in order to get a more complete trace log?

@mbroadst Sure thing! I won't be able to now but sometime early next week I'll throw some dummy data into our event hub and send you the complete output

@ianwsperber thanks a lot! @noodlefrenzy should be back from his adventures over seas by then, and he's way more familiar with SB/EH than I am - hopefully together we can knock this one out

Hey, sorry, I'm back now. @ianwsperber can I ask - what does the payload look like of the streaming analytics job you're using? The default decoder used by the Event Hub policy assumes that any binary data coming in is a JSON string and tries to parse it, as that's typically the format used by the C# EventHub SDK. (see https://github.com/noodlefrenzy/node-amqp10/blob/master/lib/policies/service_bus_policy.js).
Also, @mbroadst is correct in that it looks like it's getting confused in the codec - I'd love to see the entire binary payload of the Transfer frame from your logs if and when you can send some non-sensitive messages through.

@noodlefrenzy @mbroadst I haven't yet had a change to send non-sensitive information through our event hub, but we've had an azure support dev looking at the issue and he went ahead and did some investigatory work. He sent over the below snippet detailing some of his research and I thought it may be helpful.
Like I said, the data is sensitive so I've had to delete most the message body, but I've left the head iof the message, where the library is erroring out. I'll still try to get some non-sensitive information into our eventhub and send over our logs for that.
#I’ve been able to extract the first message that fails decoding:

[root@u15 node-amqp10]# node cx-recv.js > bad.packet 2>&1

[root@u15 node-amqp10]# head bad.packet
malformed payload: Unable to decode bytes from message body: 005375b00003ef165b7 [...]

[..]

# hex -> ascii

[root@u15 node-amqp10]# xxd -r -p bad.packet

Su▒▒[{"eventtype":"TelemetryPushEvent", [...] "timestamp":"2015-10-19T20:47:49.0000000Z"}

[..]

[root@u15 node-amqp10]# xxd -r -p firstbytes
Su▒▒[{"eventtype":"Tele

# after trimming everything after “Su▒▒” in “firstbytes”
[root@u15 node-amqp10]# cat firstbytes
005375b00003ef

# high chance this is the offending byte sequence
[root@u15 node-amqp10]# xxd -r -p firstbytes
Su▒▒

# I don’t know if this is garbage from ingress point or an encoding problem or just node-amqp10 exception handling printing bytes that were never present in the message in the first place,

@ianwsperber thanks for the feedback, I see where our codec is being tripped up I just don't know how to feed it data to reproduce your result. This may be a bit much to ask, but is it possible for you to take the bad.packet file and simply fill in fake data for the sensitive information?
As a sort of last ditch effort, @noodlefrenzy actually works at that company and could probably get access to the data under NDA perhaps?

I did the hex analysis above, @noodlefrenzy and i both work for "that" undisclosed company:)
If @ianwsperber agrees, i can share internally the raw bad actors. I think we're very close to finding the what. And then it's probably just a matter of hours until we find the why and a patch is committed.

@snobu yeah I think it would really be as easy as feeding the right buffer into a test for the codec. For instance if you added something like:
    it('should decode this <thing>', function() {
      var buffer = newBuffer([
         0x00, 0x53, 0x75, 0xb0, 0x00, 0x03, 0xef, 0x16, 0x5b, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7
      ]);
      var actual = codec.decode(buffer);
    });

to this file and get the same output as above, we'd have a really solid starting point for fixing the problem. As I suggested above, if you're able to do that then you're probably also at that point able to substitute the sensitive data with some filler as well. At that point we should very easily be able to solve the problem :smile:

[root@u15 test]# cat encoding/test_badactor.js

'use strict';

var Int64 = require('node-int64'),
    expect = require('chai').expect,
    Builder = require('buffer-builder'),
    codec = require('../../lib/codec'),
    tu = require('../unit/testing_utils');

var newBuffer = tu.newBuffer;

describe('Codec', function() {
  describe('Decoder test', function() {
    it('Decode me if you can', function() {
      // malformed packet
      // 0x00, 0x53, 0x75, 0xb0, 0x00, 0x03, 0xef, 0x16,
      var buffer = newBuffer([
         0x00, 0x53, 0x75, 0xb0, 0x00, 0x03, 0xef, 0x16, 0x5b, 0x7b, 0x22, 0x65, 0x76, 0x65, 0x6b, 0x74,
         0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79,
         0x22, 0x7d, 0x5d, 0x0a
      ]);

      var actual = codec.decode(buffer);

      console.log('\t\t buffer = ' + buffer);
      console.log('\t\t codec.decode(buffer) = ' + codec.decode(buffer));

      // Not sure what to expect but it doesn't really matter
      // since the decoding fails before we hit this line
      expect(actual.to.have.any.keys('eventtype'));
    });
  });
});

[root@u15 test]# mocha encoding

  Codec
    Decoder test
                 buffer = Su��[{"evekttype":"Telemetry"}]

                 codec.decode(buffer) = undefined
      1) Decode me if you can

  0 passing (65ms)
  1 failing

  1) Codec Decoder test Decode me if you can:
     TypeError: Cannot read property 'to' of undefined
      at Context.<anonymous> (encoding/test_badactor.js:27:20)

Am I doing this right?

getting closer:

expect(actual.to.have.any.keys('eventtype')); should be expect(actual).to.have.any.keys('eventtype');
we still don't have quite enough data to properly test this (though I'm going to go ahead and try to just fill in some fake data). According to the spec, the way this is read is:

0x00 is encountered indicating its a 'constructor'
At this point we read in two bytes, in this case 0x53 0x75, indicating its a described type and the length is 0x75 (or 117)
You're getting a result of undefined because there isn't an additional 117 bytes of data left in the buffer

hmm yeah, beyond that the variable length of the binary data sent is actually 257819 in this case.. Are these telemetry messages pretty huge? Or is it likely this data is corrupted before it's making it to the bus?

I get the same thing:
  amqp10:client Reading variable with prefix 0xb0 of length 257819 +0ms
         actual = undefined
         buffer = Su��[{"eventtype":"Telemetry"}]

Is there a snippet I could use to print to length before attempting to decode the thing?

Scratch that. The messages that I am able to decode are under 10KB or so. So it could be just a matter of size.
Let's try to build a test for a really big payload? Not sure if AMQP defines a MAX message length, I tried to grep though the spec but it's humongous.

The codec seems to be handling this just fine, if I change the test case to:
var rawBuffer = [
    0x00, 0x53, 0x75,
    0xb0, 0x00, 0x03, 0xef, 0x16, 0x5b, 0x7b, 0x22, 0x65, 0x76, 0x65, 0x6b, 0x74,
    0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x22, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79,
    0x22, 0x7d, 0x5d, 0x0a,
];

var extraByteCount = (257819 + 8 - rawBuffer.length);
// 257819 is the size we want for the data segment
// 8 is the size of the informational bytes before the data segment

for (var i = 0; i < extraByteCount; ++i) rawBuffer.push(0x00);
var buffer = newBuffer(rawBuffer);
var actual = codec.decode(buffer);
console.log('codec.decode(buffer) = ', actual);

then I get the following result:
[ { descriptor: [Int64 value:117 octets:00 00 00 00 00 00 00 75],
    value: <Buffer 5b 7b 22 65 76 65 6b 74 74 79 70 65 22 3a 22 54 65 6c 65 6d 65 74 72 79 22 7d 5d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... > },
  257822 ]

It's possible you have data in the binary segment thats corrupting the stream somehow but it seems unlikely. In those cases we simply slice the descriptive bytes off the top and return the raw buffer, so there's very little we could screw up there.
Perhaps we could get more information about the "nature" of the payload.

First of all, it seems to be large chunks of text (perhaps JSON) transmitted as binary data, correct?
Are there multiple body segments? We don't currently handle that case very well, as nobody has run into it.
While you've identified a screwed up string in the data, you might start scanning before that piece of text and see if you can find something amiss. The spec is indeed pretty large, but the quick description I've given above regarding the constructors should be somewhat easier to spot.

Actually upon a second glance this does indeed still look screwed up, the descriptor is out of whack - it almost looks like the constructor is trying to use a binary type as the descriptor.
@noodlefrenzy do you have any thoughts?

Here's how the message looks like - the one that fails decoding - (sanitized, decoded from the Exception printout):
[
  {
    "key1": 1111,
    "eventtype": "TelemetryPushEvent",
    "key3": 11,
    "key4": 11,
    "key5": 11,
    "key6": 11,
    "partitionkey": 123456,
    "key7": 11,
    "key8": 11.11,
    "timestamp": "201X-XX-XXT2X:XX:XX.0000000Z",
    "key10": "ascii string"
  },
  {
    "key1": 2222,
    "eventtype": "TelemetryPushEvent",
    "key3": 22,
    "key4": 22,
    "key5": 22,
    "key6": 22,
    "partitionkey": 234567,
    "key7": 22,
    "key8": 22.22,
    "timestamp": "201X-XX-XXT2X:XX:XX.0000000Z",
    "key10": "ascii string"
  },
  {
    "key1": 3333,
    "eventtype": "TelemetryPushEvent",
    "key3": 33,
    "key4": 33,
    "key5": 33,
    "key6": 33,
    "partitionkey": 345678,
    "key7": 33,
    "key8": 33.33,
    "timestamp": "201X-XX-XXT2X:XX:XX.0000000Z",
    "key10": "Location"
  }
  .. repeats 241 more times .. probably more as it ends mid-keyname
  (i'm guessing the exception handling has a limit on the number of bytes
  it will print from the bad actor)
]

@snobu unfortunately its not an issue with our handling of large binary segments, the following code works perfectly:
    it('should encode/decode a large binary dataset', function() {
      var generate = function(num) {
        return {
          key1: num * 1000,
          eventtype: "TelemetryPushEvent",
          key3: num,
          key4: num,
          key5: num,
          key6: num,
          partitionkey: 123456,
          key7: num,
          key8: num + 0.25,
          timestamp: "201X-XX-XXT2X:XX:XX.0000000Z",
          key10: "ascii string"
        };
      };

      var objects = [];
      for (var i = 0; i < 241; ++i) {
        objects.push(generate(i + 1));
      }

      var encoded = new Builder();
      codec.encode(new Buffer(JSON.stringify(objects)), encoded);

      var decoded = codec.decode(encoded.get());
      var decodedJson = JSON.parse(decoded[0].toString());
      expect(decodedJson).to.eql(objects);

    });

The anomaly here is the injection of this constructor 0x00, 0x53, 0x75 before the binary definition b0. What client is being used to generate/populate the data?

No idea. @ianwsperber may know.

Trying to read from Event Hub in debug mode shows additional useful addition info. @ianwsperber let me know if it's ok to share the data internally with @noodlefrenzy

Not sure if this stuff is synchronous or it's async and doesn't really mean much but maybe it helps?
[root@u15 node-amqp10]# echo $DEBUG
amqp*

Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xa0 of length 14
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a30c782d6f70742d6f6666736574
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xa0 of length 7
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a1053131353638
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding<PHONE_NUMBER>96222212
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xb0 of length 257918
malformed payload: Unable to decode bytes from message body: 005375b00003ef795b7b226576656e747479...

-------------------------------------------------------------------------------------------------------

Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a315782d6f70742d73657175656e63652d6e756d626572
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding 5501
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xa0 of length 14
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a30c782d6f70742d6f6666736574
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xa0 of length 7
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a1053131353638
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Decoding<PHONE_NUMBER>96222212
Mon, 02 Nov 2015 14:50:17 GMT amqp10:client Reading variable with prefix 0xb0 of length 257918
malformed payload: Unable to decode bytes from message body: 005375b00003ef795b7b226576656e747479706...

-------------------------------------------------------------------------------------------------------

Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Decoding a315782d6f70742d73657175656e63652d6e756d626572
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Decoding<PHONE_NUMBER>00000088
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Reading variable with prefix 0xa0 of length 14
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Decoding a30c782d6f70742d6f6666736574
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Reading variable with prefix 0xa0 of length 9
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Decoding a10731323732353532
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Decoding<PHONE_NUMBER>a5102fc9
Mon, 02 Nov 2015 14:50:35 GMT amqp10:client Reading variable with prefix 0xb0 of length 152897
malformed payload: Unable to decode bytes from message body: 005375b00002553c5b7b226576656e7474797065223a2254656c65...

-------------------------------------------------------------------------------------------------------

Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Decoding a315782d6f70742d73657175656e63652d6e756d626572
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Decoding<PHONE_NUMBER>00000087
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Reading variable with prefix 0xa0 of length 14
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Decoding a30c782d6f70742d6f6666736574
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Reading variable with prefix 0xa0 of length 9
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Decoding a10731303134353434
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Decoding<PHONE_NUMBER>a50fffc2
Mon, 02 Nov 2015 14:50:34 GMT amqp10:client Reading variable with prefix 0xb0 of length 257955
malformed payload: Unable to decode bytes from message body: 005375b00003ef9e5b7b226576656e7474797065223a2254656c656d65747279....

-------------------------------------------------------------------------------------------------------

Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Decoding a315782d6f70742d73657175656e63652d6e756d626572
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Decoding<PHONE_NUMBER>00000086
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Reading variable with prefix 0xa0 of length 14
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Decoding a30c782d6f70742d6f6666736574
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Reading variable with prefix 0xa0 of length 8
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Decoding a106373536343732
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Decoding<PHONE_NUMBER>a50ffdee
Mon, 02 Nov 2015 14:50:33 GMT amqp10:client Reading variable with prefix 0xb0 of length 258024
malformed payload: Unable to decode bytes from message body: 005375b00003efe35b7b226576656e7474797065223a2254656c656d65747279....

-------------------------------------------------------------------------------------------------------

Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Decoding a315782d6f70742d73657175656e63652d6e756d626572
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Decoding<PHONE_NUMBER>00000089
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Reading variable with prefix 0xa0 of length 14
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Decoding a30c782d6f70742d6f6666736574
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Reading variable with prefix 0xa0 of length 8
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Decoding a106373333343536
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Decoding<PHONE_NUMBER>a5102c49
Mon, 02 Nov 2015 14:50:32 GMT amqp10:client Reading variable with prefix 0xb0 of length 67529
malformed payload: Unable to decode bytes from message body: 005375b0000107c45b7b226576656e7474797065223a2254656c656d65747279....

Here's a good message that decodes fine:
Mon, 02 Nov 2015 14:50:16 GMT amqp10:client Reading variable with prefix 0xa0 of length 21
Mon, 02 Nov 2015 14:50:16 GMT amqp10:client Decoding a313782d6f70742d656e7175657565642d74696d65
Mon, 02 Nov 2015 14:50:16 GMT amqp10:client Decoding<PHONE_NUMBER>96221fbc
Mon, 02 Nov 2015 14:50:16 GMT amqp10:client Reading variable with prefix 0xb0 of length 11525
Mon, 02 Nov 2015 14:50:16 GMT amqp10:client Decoding 5375
Mon, 02 Nov 2015 14:50:16 GMT amqp10:client Decoding b000002d005b7b226576656e7474797065223a2254656c656d65747279507573684576656e74222c22706172746974696f6e6b6579223a[a_few_more_bytes_here_redacted]
Mon, 02 Nov 2015 14:50:16 GMT amqp10:session processing frame(TransferFrame): {"frameType":0,"channel":0,"handle":0,"deliveryId":0,"deliveryTag":{"type":"Buffer","data":[]},"messageFormat":0,"settled":true,"more
Mon, 02 Nov 2015 14:50:16 GMT amqp10:link:receiver Rx message 0 on xx-xxxxxx-xxxxx-xxx/ConsumerGroups/$default/Partitions/00_xxxxx-xxxxxx-xxxxxxxxx-xxxxxxx, 99 credit, 299 window left.
Mon, 02 Nov 2015 14:50:16 GMT amqp10:framing:amqp Encoding performative: {"descriptor":{"buffer":{"type":"Buffer","data":[0,0,0,0,0,0,0,21]},"offset":0},"value":{"role":true,"first":{"typeName":"uint","value":0}
Mon, 02 Nov 2015 14:50:16 GMT amqp10:framing Sending frame: DispositionFrame: {"type":"Buffer","data":[0,0,0,23,2,0,0,1,0,83,21,192,10,6,65,67,67,65,0,83,36,69,66]}:<PHONE_NUMBER>000001005315c00a0641434341005324454
Mon, 02 Nov 2015 14:50:16 GMT amqp10:link:receiver received from (xx-xxxxx-xxxxx-xxx/ConsumerGroups/$default/Partitions/00_xxxxxxx-xxxxxx-xxxxxxx-xxxxxxxx): [object Object],[object Object],[object Object]

Recv(0):
msg =  { body:
   [ { eventtype: 'TelemetryPushEvent',...

So just to verify I'm understanding this correctly - you're seeing some messages decode successfully, and those seem to be below a certain size, but larger ones are failing. I'll write an end-to-end test to see if I can repro on my end with a large payload message.

That seems about right. Looks like every message that fails decoding is above 64KB. I'm more and more confident these large messages are neither corrupt or the result of the decoder tripping and mushing together a bunch of smaller messages. There' only one occurrence of [, and the payload validates as valid JSON when decoded manually from the Exception output.
15:50:48 [root@u15 node-amqp10]# grep "\[" isolate.json
[

This is almost certainly due to large messages being broken up into multiple transfer frames by Event Hub. Our code doesn't support split-frame messages currently (as we've never needed it), and Event Hub is the one enforcing the 64k maximum frame size and forcing themselves to split.
However, that doesn't help you any :( . I now have a repro case, and once I verify explicitly that it's sending valid multi-frame messages I'll start working on multi-frame message support. In the short-term, however, if there's a way to ensure your messages don't go above EH's frame limit, they should operate successfully with our code.

They are sending a multi-frame payload, but the second transfer frame appears to be malformed:
0x005314c00d0b520740404040424040404040657931...
I'll reach out to the Service Bus team and see if there's an issue on their end or if it's (the more likely) a PEBKAC issue on my end.

@noodlefrenzy Thank you for your time and efforts looking into this.

No worries, I'm just sorry it's not going to be a simple fix. It apparently is a PEBKAC issue on my end - for multi-frame transfers I need to basically stall the parsing until I receive all transfer frames, and only then process the whole shebang as the message payload - that'll take some time and thought to implement.

I'll be tracking the actual work to support this feature in #185 to avoid spamming this issue with sausage-making details.

@ianwsperber @snobu: we've landed preliminary support for multi-frame messages in the multi-frame-messages branch (go figure). This should hopefully resolve the issue you've seen. If you want to try it out before we merge then you need simply update your package.json accordingly:
"dependencies": {
   ... other deps ...
   "amqp10": "noodlefrenzy/node-amqp10#multi-frame-messages"
}

Hey guys, we actually felt that with unit tests around the feature, as well as integration tests against EH and Qpid that we would go ahead and merge it in and publish a minor point release. Please give it a shot with version 2.1.0 (you will automatically get this if you're using ^2.0.0). Thanks.

Sorry for dropping out of this - this issue was deprioritized at work and I haven't had any free time otherwise.
I just installed version 2.1.0 into our stream processor and it worked perfectly. Can't emphasize how much I appreciate everyone's help with this!
After I've run some more thorough benchmarks/tests on my own I'll be pushing to have this integrated into our stream processing system in the near future. Are there any rough spots we should keep an eye on?

Holy moley! This is the fastest development cycle I've witness.. from bug isolation to fully working patch in under 2 days.
I've run the same batch of messages through the newly commited code and every single message now decodes successfully.
Superb job @mbroadst @noodlefrenzy.

Glad to hear it works guys :+1:
@ianwsperber we try to keep a semi up-to-date list of known issues, but generally the rough spots are in line with "the rough spots of using JavaScript". Stuff like the lack of large number support (we overcome this with node-int64, but the numbers are still best represented as strings when sufficiently large), utf32be isn't really supported as you saw the other day because we're using UTF-16/UCS2 under the hood, etc.
Performance is pretty good (basic benchmark on #138), and I'm working a little bit now on optimizing the codebase with v8's traceopt flags so that should get better. Besides that, the module is used daily in production in a product I work on and I haven't noticed a single glitch in the past five months of continuous use - I'd say it's pretty stable. Having said that I don't use it with SB/EH, but I gather other users have seen similar results in their use of the module with those services

I'm going to go ahead and close this out now, please feel free to reopen if you feel this isn't completely solved.