Support emoji ZWJ sequences

iOS texts can't render zero width joiner sequences like emoji skin/gender modifiers and region indicator sequences.
Extracted from #8775

Do we have an estimate on this?  I'd like to build a feature the revolves around emojis and want to know what my options are here

@jason-simmons might be able to answer. I assume this may be fixed with libtxt.

@xster I'm in the same position as @KevinTheGray.
I've found Android to be okay, but iOS can't render anything.
Could you (or @jason-simmons) tell me more about libtxt and if that fixes it, how I can get it into my current build?

to also chime in with @dvoiss
I actually am seeing issues on Android.  for example, on a Nexus 5x running android 7.0.1, a man with skin color emoji will render the man+square_skin_color, just like on iOS

libtxt is a new implementation of Flutter's text rendering engine.  One of the goals of libtxt is offering better support for emoji.
libtxt is currently enabled on the master branch of Flutter.  We may need to roll it back temporarily if problems arise, but our intent is to deploy it permanently soon.

@jason-simmons Could you link me to anything relevant that I can use such as a PR or some such?
To echo @KevinTheGray there are issues on Android too. Sample code and a screenshot are below.
In the screenshot you can see how the following items render, I've pasted a screenshot of how they look in the code because pasting the code itself into this comment doesn't work because github renders them correctly 😄  As the screenshot shows man + skin-color has issues, but oddly enough render okay when paired with a flag.
But when paired with a flag a new issue arises (I don't know if there's an issue logged for this) which is seen on the second line in the screenshot where the width of the Text widget is "five emojis" in length, presumably because it's measuring the width of all the code-points but then renders them combined correctly?
The red is so you can see the extra space on lines 2, 5, and 7.

Code:

Full code below. You can see the emoji render correctly when pasted here on github. Note that I use the emoji-one font below to resolve issues with emojis on different Android versions:
import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Emoji test'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final List<String> emojiTestItems = [
    '👨🏻🎨🎨🎨',
    '👨🏻🎨🎨🇮🇹',
    '👨🏻🎨🎨',
    '👨🏻🎨',
    '👨🏻',
    '👨🏻🇮🇹',
    '🇮🇹'
  ];

  List<Widget> _getEmojiTestItems() {
    List<Widget> widgets = emojiTestItems.map((item) => new Container(
      child: new Text(item, style: new TextStyle(fontSize: 48.0, fontFamily: "Emoji One")),
      color: Colors.red)
    ).toList();

    widgets.add(new Center(child: new Container(
      child: new Text('👨🏻🎨🎨🇮🇹', textAlign: TextAlign.center, style: new TextStyle(fontSize: 48.0, fontFamily: "Emoji One")),
      color: Colors.red)
    ));

    return widgets;
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
      ),
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: _getEmojiTestItems(),
        ),
      ),
    );
  }
}

We are currently in the middle of the transition from the original Blink-based text renderer to Libtxt (which is based on a text handling library used within Android).
Libtxt was enabled in the master branch of Flutter in this commit (which landed yesterday):
https://github.com/flutter/flutter/commit/5a58b36e36b8d7aace89d3950e6deb307956a6a0
If you're building a custom engine then you can select the libtxt or Blink text renderer with the settings.using_blink flag:
https://github.com/flutter/engine/blob/master/shell/common/shell.cc#L123
The Blink-based engine is considered deprecated.  After Libtxt is fully landed we can look at improving its emoji support.

@jason-simmons Thanks for the info.
I updated my local Flutter to the latest.
But is there any way to test libtxt without the whole rigamarole of building the engine and debugging whatever build errors will inevitably crop up?
Something like flutter run --enable-blink false?

If you switch to the master branch of the Flutter framework today you'll get an engine that uses Libtxt.
We don't have a way to switch between Libtxt and Blink in the Flutter tools.  The goal is to remove Blink from the engine soon.

If you switch to the master branch of the Flutter framework today you'll get an engine that uses Libtxt.

Interesting, so since I still see issues then things weren't just magically fixed like I was hoping 🤣
I figured it wasn't enabled by default because I saw this and thought using blink was defaulted to true: https://github.com/flutter/engine/blob/master/common/settings.h#L28.

Any fix yet?

Unfortunately no. I had some hopes when https://github.com/flutter/flutter/issues/20303 landed but no dice.
@xster any chance of prioritizing this alongside the Cupertino widget support efforts?

As someone who just added chat to his app, emojis are not a nicety, but a necessity for UX. I do not prioritize one platform over the other, so if it's a blocking situation on iOS I consider it a blocking situation for both platforms because the feature won't be released.

@xster Can we get a timeline for this?

Any updates on this, I just thought of this game after seeing this talk on "Building the Android Summit App" with Flutter.
Specifically the builders of the app mention this bug (or a related one to emoji sequences) here (link to time-stamp): https://youtu.be/xENT8qPIazY?list=PLzJZrgVJE8BbctT8_LBqUUHDzFTjKsEkU&t=1464

Are there any updates? I'd love for this to get patched up.

I guess it is blocked on https://github.com/dart-lang/sdk/issues/28404

I took a look at this a while ago.  This bug is related to the integration between libtxt, HarfBuzz, and Skia.  IIRC, HarfBuzz is relying on CoreText to render ZWJ sequences on Apple platforms.  But libtxt/Skia is not providing the needed CoreText fonts to HarfBuzz.
libtxt's FontSkia::CreateHarfBuzzFace is extracting the font data from an SkTypeface and calling hb_face_create_for_tables.  On Apple platforms, perhaps ZWJ rendering would work if it instead used SkTypeface_GetCTFontRef and hb_coretext_face_create to create a HarfBuzz face based on a CoreText font?
However, Skia says that SkTypeface_GetCTFontRef is a deprecated API, so that isn't a sustainable solution.
@chinmaygarde @GaryQian

Recently released HarfBuzz 2.0.0 has native support for AAT fonts, so it should be able to handle ZWJ sequences for Apple Color Emoji without Core Text integration.

Will begin with an update to harfbuzz 2.1.0. If all goes well, this might be fixed by magic! If not, I can take a deeper look at it.
https://github.com/flutter/flutter/pull/24024
https://github.com/flutter/engine/pull/6760

Just checked out newest master and yeah, finally there they are.

Have confirmed zwj support on iOS. Feel free to reopen/comment here is there are any issues or more work to be done!

@GaryQian I'm running on 0.10.2 and while there is an improvement, I think there still might be some work to be done.

This the David Bowie (or rock star...) emoji as an example. There are a lot of emjois that are still not working properly on iOS. Or maybe this is a different issue....

@GaryQian I'm running on 0.10.2 and while there is an improvement, I think there still might be some work to be done.

This the David Bowie (or rock star...) emoji as an example. There are a lot of emjois that are still not working properly on iOS. Or maybe this is a different issue....

This look correct to me in 0.11.7.

The rendering seems to work, but cursor movement seems broken (tested on macOS). @GaryQian, any ideas?


docs: create page for packaging stacks

Checklist

[x] commit message follows commit guidelines.
[x] website builds and runs in production - for information on how to test locally go here.

Description
The ci build script process has changed so that repos are automatically added to the users repo list. The docs have been updated to reflect this.
Related Issues
Related to: https://github.com/appsody/stacks/issues/355
Related to: #291

Added :)

@helenmasters @neeraj-laad
I've made some changes following our discussions from last week. This page will now be for different methods of packaging a stack. I've removed the section on Associating a template with a specific stack image as I believe we said this would be moved to a separate Testing Stacks page.
Please take a look, Thanks!

Thanks @SueChaplain, I've made those changes (and removed other future tense uses)

As a note: We need to wait until the new page for Testing Stacks is opened, and then merge both of those at the same time.

@helenmasters - Neeraj has made some changes as well which I've also taken a look at. The modify.md doc has been slimmed down for now and I think we can handle improving that as a separate issue. Please take a look :)


ConcurrentBag and Linq NullReferenceException or AccessViolationException

Description
I'm getting the following exception or AccessViolationException from time to time on Linq Sum of ConcurrentBag
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Collections.Concurrent.ConcurrentBag`1.ToArray()
   at System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator()
   at System.Linq.Enumerable.Sum[TSource](IEnumerable`1 source, Func`2 selector)

Configuration
.Net Core 6
Windows 11

sum is on non-nulable long propery

Exception thrown: 'System.Net.Http.HttpRequestException' in System.Private.CoreLib.dll
The thread 0x3644 has exited with code 0 (0x0).
The thread 0x5588 has exited with code 0 (0x0).
The thread 0x1d44 has exited with code 0 (0x0).
The thread 0x4c1c has exited with code 0 (0x0).
The thread 0x42d0 has exited with code 0 (0x0).
The thread 0x7700 has exited with code 0 (0x0).
The thread 0x3658 has exited with code 0 (0x0).
The thread 0x73d0 has exited with code 0 (0x0).
The thread 0x4f7c has exited with code 0 (0x0).
The thread 0x4b48 has exited with code 0 (0x0).
An unhandled exception of type 'System.AccessViolationException' occurred in System.Private.CoreLib.dll
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

however, seems like it is under VS mostly:
Microsoft Visual Studio Community 2022
Version 17.3.3
VisualStudio.17.Release/17.3.3+32825.248
Microsoft .NET Framework
Version 4.8.09032
Installed Version: Community
ASP.NET and Web Tools   17.3.376.3011
ASP.NET and Web Tools
Azure App Service Tools v3.0.0   17.3.376.3011
Azure App Service Tools v3.0.0
Azure Functions and Web Jobs Tools   17.3.376.3011
Azure Functions and Web Jobs Tools
C# Tools   4.3.0-3.22423.10+b35bb0baca1071d50cc4f8cf5a1a89e7cc112461
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
NuGet Package Manager   6.3.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/
Razor (ASP.NET Core)   <IP_ADDRESS>2702+e1d654e792aa2fe6646a6935bcca80ff0aff4387
Provides languages services for ASP.NET Core Razor.
TypeScript Tools   17.0.10701.2001
TypeScript Tools for Microsoft Visual Studio
Visual Basic Tools   4.3.0-3.22423.10+b35bb0baca1071d50cc4f8cf5a1a89e7cc112461
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Visual F# Tools   17.1.0-beta.22363.4+1b94f89d4d1f41f20f9be73c76f4b229d4e49078
Microsoft Visual F# Tools

Can you share the code which produces the exception?


IGHD reading frame in AIRR format IgBlast output

Jason, thank you for your time addressing this issue. I don't want to clutter up this channel with these questions so will make this the last.
I don't see how you can extract the D-reading frame from the D_germline_start without knowledge of the 3' junction. Perhaps D_CIGAR would help although i don't recognise its annotation from IgBlast. I'm sure i can write an R script to work RFs out but not sure which info to use from the IgBlast output. It would be easier if all the J-germline sequences started in the same frame but they don't.
Any pointers from anyone would be much appreciated
Regards
Harry White, Babraham Institute, Cambridge, UK

d_frame was added as an optional field in v1.4.1
WRT IgBlast specifically, it appears to have been added in release 1.23.0


how to filter the value(data type:number) for a single column

it is easy to filter a string for each column, but I did not find a solution to filter a number for a single column.
it is only possible to filter a number by using a range filter, which means that user must give min and max input.
I was wondering, if possible to filter the exact number instead of a range?

for those who have same problem like me
function below can filter the data (data type: number) in both ways, not only can be filter in a range but also by an excat number.
put this function in the columns file
const mulitiFunctionFilter: FilterFn = (
row,
columnId: string,
filterValue: number[]
) => {
let [min, max] = filterValue;
const value = row.getValue(columnId);
if (filterValue.toString().includes(",")) {
if (filterValue.toString() == ",") return true;
return value >= (min ?? 0) && value <= (max ?? Infinity);
} else {
const search = String(filterValue).toLowerCase();
// Convert to String
const value = String(row.getValue(columnId));
return value?.toLowerCase().includes(search);
}
};
columns.tsx
{
accessorKey: "ID_Prescriber",
id: "ID_Prescriber",
header: ({ column }) => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
>

        <ArrowUpDown className="ml-2 h-4 w-4" />
      </Button>
    );
  },
  **filterFn: mulitiFunctionFilter,**

},

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


Untested firestore fix for GetPrivateCollection

I did test that it creates an ArtMeta, in an isolated project, but I don't really know how to run and debug the plugin. I imagine it isn't more than a handful of fixes away from a working version.

I debugged it and it is working AFAICT


Actionsheet theme variables are not customizable

I have gone through these following points

[x] Check latest documentation: https://docs.nativebase.io/
[x] Check for existing open/closed issues for a possible duplicate before creating a new issue: https://github.com/GeekyAnts/NativeBase/issues
[x] Use the latest NativeBase release: https://github.com/GeekyAnts/NativeBase/releases
[x] Check examples from NativeBase KitchenSink https://github.com/GeekyAnts/NativeBase-KitchenSink
[x] For discussion purpose make use of NativeBase Slack: http://slack.nativebase.io/
[x] For queries related to theme, check Theme Variables from Docs and live NativeBase Theme Editor http://nativebase.io/customizer/

Issue Description
Hi, It looks like a few months back ActionSheet was updated to use variables.  But it looks like those are hardcoded to use package commonColor variable and if we have ejected the theme and implemented our own styles we can not override the ActionSheet variables?
See this: https://github.com/GeekyAnts/NativeBase/blob/master/src/basic/Actionsheet.js#L18 which is different than most other components.
Is the bug present in both iOS and Android or in any one of them?
ActionSheet customization is only relevant for Android
Any other additional info which would help us debug the issue quicker.
###Important
If you want your issue to be looked at quicker, attach a snack reproducible with your issue. Makes it easier for us!

Hi @iamnader , ActionSheet theme is limited for Android and iOS.

Hi @iamnader , closing for now.


Consider migration story for @aspnet/signalr

TL;DR: If you develop a JavaScript library component that depends on @aspnet/signalr, we'd like to hear from you!
One open question that we'd like some support from the community on is how to manage the name transition. Here, we'd love feedback from app developers and anyone developing other NPM components that depend upon @aspnet/signalr.
My biggest concern is if a library component references @aspnet/signalr at version >=1.0.0. They are saying they work with versions 1.0 and higher, but the problem is that version 3.0 is not part of that set (because it's a different package name).
We have a few options

Just stop shipping @aspnet/signalr.

Pros: It's easy
Cons: People using @aspnet/signalr don't know that we changed

Ship one last version of @aspnet/signalr (probably version 3.0) and immediately deprecate it on NPM.

Pros: Still pretty easy, clearly tells users they need to update (via the deprecation message)
Cons: Libraries taking a dependency on @aspnet/signalr either have to update, or can't get the new stuff

Ship @aspnet/signalr as a "shim package". This would be a package that has a direct dependency on the matching version of @microsoft/signalr and re-exports all the types. So it's content would be something like the snippets below

Pros: Nobody is broken
Cons:

We have to maintain this package for some undefined period of time.
If an app is already using the new version (@microsoft/signalr) and references a library using @aspnet/signalr version 1.x (BEFORE the shimming), then they may end up with two copies of the library. The 1.x version of @aspnet/signalr and the 3.x version of @microsoft/signalr. Thanks to JavaScript this will probably still work, types can be exchanged just fine.

I think if we did option 3, we'd also mark each release of these shims as deprecated so that NPM users get the warning. That means that if an app did use @microsoft/signalr and a library it depends on used @aspnet/signalr you would get a warning indicating you were in a slightly odd state. If you manually installed the shim package @aspnet/signalr it would fix the odd state since now the library would be using the shim and there'd only be one copy of @microsoft/signalr
@aspnet/signalr package.json
{
	"name": "@aspnet/signalr",
	"main": "index.js",
	"dependencies": {
		"@microsoft/signalr": "[exact same version]"
	}
}

@aspnet/signalr index.ts
export * from "@microsoft/signalr"

Another option I just thought of:

Retroactively ship @microsoft/signalr shims for the existing @aspnet/signalr packages which just re-export @aspnet/signalr types, like the other proposed shim above.

Pros: Anyone at any version can just move to the new package name without breaking existing apps.
Cons: I'm actually thinking this is the win-win scenario. We have to ship these weird back-versioned shims but they're stable and never need to be updated. Existing apps/libraries do need to move to the new package, but they can do that regardless of what version they are on.

Thoughts @davidfowl @bradygaster @BrennanConroy @mikaelm12 @halter73 ?

I'm leaning hard to option 4 here. It provides a clear migration path for everyone, doesn't require us to keep maintaining shims (since we just ship on-time @microsoft/signalr shims for existing @aspnet/signalr versions) and type identity works fine because JavaScript.

So far I'm with @anurse on option 4 seeming to be the path of least resistance and maintenance.

And if we patch the npm package will we only update the new @microsoft/signalr package or do both?

And if we patch the npm package will we only update the new @microsoft/signalr package or do both

Yes, this is also my concern. I feel like servicing both will become a thorn in our side.

Having @signalr/signalr have a direct dependency on @microsoft/signalr feels dishonest for lack of a better word. I'm not sure if allowing two ways to get the same version of client in general is the best approach. I'm personally leaning towards just not continuing to ship the @aspnet/signalr package. It will be unfortunate that we'll end up in the same situtation as we have with the java client have both the aspnet and microsoft branded packages published and potentially confusing customers.

To clarify, as you mentioned @signalr/signalr so I just want to make sure I got your point, reworded below:

Having @microsoft/signalr have a direct dependency on @aspnet/signalr feels dishonest for lack of a better word. I'm not sure if allowing two ways to get the same version of client in general is the best approach. I'm personally leaning towards just not continuing to ship the @aspnet/signalr package. It will be unfortunate that we'll end up in the same situtation as we have with the java client have both the aspnet and microsoft branded packages published and potentially confusing customers.

I'm inclined to agree with @mikaelm12 philosophically on this, as it does seem weird (like it did years ago when Jeff described a similar pattern in NuGet) to actually be pulling the @aspnet/signalr package when you asked for the @microsoft/aspnet package. However, I think it is the path of least resistance for folks who have taken a dependency.
I'm also thinking of the community that requested we do this; the implication is folks didn't want to use it because of the implication that "ASP.NET is a requirement for SignalR." If we do it this way, the
@microsoft one will actually be the @aspnet one. Curious what those who proposed we do this would say about it - if it doesn't feel dishonest or spicy with them, I'm okay with it provided we agree it's the path of least resistance for customers and ourselves.

Didn't mean @signlar/signalr! My b. Editing it now to read @aspnet/signalr

Hey hi hello 👋
I have some thoughts/opinions that I wanted to share:
I would not recommend doing any kind of mirroring of APIs. It creates a lot more work for a negligible amount of end-user benefit. The amount of work needed to set this up, maintain it, and – most importantly – fix it if anything goes wrong is a much higher cost than any possible end-user benefit that I am aware of. If you want to get into technical reasons, this is not a good path because it effectively gets around npm, yarn, pnpm and any other package manager's deduping of redundant modules which will end up increasing deployment/bundle sizes for end-users.

Having @microsoft/signalr have a direct dependency on @aspnet/signalr feels dishonest for lack of a better word.

I 100% agree. Being totally honest: if I'd seen this before I worked at Microsoft, my assumption would be that whoever did this was not a part of the JavaScript ecosystem and was instead just someone from .NET trying to make the JS folks happy while not really caring about them.
Regardless of the positive intent, it strays from how the JavaScript ecosystem works and comes off as uninformed/unaware – which is definitely not my experience with the SignalR team(s) so far now that I'm at Microsoft.

I'm also thinking of the community that requested we do this; the implication is folks didn't want to use it because of the implication that "ASP.NET is a requirement for SignalR."

Being totally unaware of SignalR before working at Microsoft, this wasn't quite my perception. The perception I had when learning about @aspnet/signalr was that SignalR was only for ASP.NET – meaning I couldn't use it as a Node.js developer. But, I suppose that could technically also be perceived as ASP.NET being a req for SignalR usage.
As a Node.js ecosystem member, I'd like to make a suggestion – definitely weigh the pros/cons but IMO it makes the most sense to me:
Do option 2. Walking through why:
2. Ship one last version of @aspnet/signalr (probably version 3.0) and immediately deprecate it on NPM.
    Pros: Still pretty easy, clearly tells users they need to update (via the deprecation message)
    Cons: Libraries taking a dependency on @aspnet/signalr either have to update, or can't get the new stuff

No new version needs to be shipped – deprecation can be done directly without shipping a new version. See the docs on npm deprecate. This also doesn't need to be done immediately if we feel it's too disruptive – we could deprecate in 365 days, or any other predefined time that we'd like to settle on.
Deprecation is soft, not hard. If there are troubles for specific minor/patch versions we can un-deprecate those if absolutely needed. This should be a last resort that is taken very seriously.
Since this is a semver major (two, actually?), most people should theoretically need to update anyway since npm's default is to gracefully allow for semver minor upgrades (see the caret version npm semver documentation, which is default npm behavior). As such, regardless of the scope people would have to be very intentional about upgrading their versions as a semver major version. The only downside here is that automated update tooling like Greenkeeper won't be able to auto-PR the semver major change.

Additionally, I'd like to share some reasons why I'd be extremely hesitant to suggest Option 4:

You would need to recreate every published version of @aspnet/signalr. If there is one single inconsistency in any/all of the re-publishes, you have 72 hours from publish to either delete it or re-publish because of npm's unpublish policy. This is something I would strongly recommend against.
The @aspnet/signalr modules will continue to work perpetually – they're not going anywhere, since they're immutable. As such, there's no real need for something like a migration path for those older versions with the new namesapce. If you're using those versions, you point to @aspnet/signalr. If you're using newer versions, you point to @microsoft/signalr. The only kind of migration that should be happening is whatever semver major changes are introduced in the newer version – adding an additional change to a LOC that would have already changed should be theoretically uncontroversial.

The caveat here is megacorps that have to approve every dependency manually. That said, my experience is that they typically move at a glacial pace and this is not an abnormal experience – keeping some kind of permanent reference of the historical name in the README.md would be smart for these folks, regardless of which option you go for.

I'm actually thinking this is the win-win scenario. We have to ship these weird back-versioned shims but they're stable and never need to be updated.

I'm confused how this is different than just using @aspnet/signalr if those are the versions someone is already depending on – changing to @microsoft/signalr for the versions that are currently published actually increases the amount of work they'd need to do, since they already have those versions pointed to the existing working module.

Since I have a lot of friends who maintain a non-trivial amount of packages on npm, I decided to ask about this in a general sense on Twitter. The responses so far have been super interesting:

general feedback so far is to do many of the steps y'all have already done + use the deprecation message once the new version is published

there's a similar example of joy => @hapi/joy that uses a good deprecation message and points to the new one: https://www.npmjs.com/package/joi (thanks Dominik Kundel!)

you can also see that none of the previous versions were backfilled in the scoped module: https://www.npmjs.com/package/@hapi/joi

Thanks for your insight on the issue @bnb! Your perspective is really appreciated!

Happy to help, @mikaelm12! ❤

Hey,
I'd like to chime in and provide some feedback–as a member of the JavaScript community and a maintainer/author of some Node packages.
@bnb had already provided a much more detailed response.
So, definitely go for option 1: publish the new package and deprecate the old one, making sure to provide the right communication about this change and how they can get the new package. This, of course, would be considered as a breaking change, so developers would anyway have to check the new API deprecations and update their existing code. In the process, you would have an extra step which updating their package.json with the new scope.
Cheers.

This is great perspective! I'm mostly happy to defer to the JS community experts here, but I do want to make sure I have clarity on things here.

No new version needs to be shipped – deprecation can be done directly without shipping a new version.

Unfortunately this isn't true since none of our existing published versions are considered deprecated. They remain fully supported and will be patched in accordance with the .NET Core Support Policy. I think that marking them deprecated would be misleading. Of the current versions, only the 3.0 preview releases would be actually deprecated. The 1.0.x releases (aligned with .NET Core 2.1) are supported until at least August 2021 and the 1.1.x releases (aligned with .NET Core 2.2) are supported until December of this year/
This is why option 2 requires the publishing of a new version to indicate to those interested in updating how to actually do so. We could in theory wait for the 1.1.x releases to go end-of-life and deprecate those then.

The @aspnet/signalr modules will continue to work perpetually – they're not going anywhere, since they're immutable. As such, there's no real need for something like a migration path for those older versions with the new namesapce.

It's not entirely true that there's no real need to provide this migration path. Consider a library that has a dependency on @aspnet/signalr. In general, we strive to preserve compatibility across major version boundaries unless necessary, and it's my understanding that we haven't made any major breaking changes in 3.0 to the client API. A library or app written against @aspnet/signalr 1.0 should be expected to work against @microsoft/signalr 3.0. Unfortunately there's no way to express that (to my understanding at least) since this is a completely new package identity.
I'm not clear on how simply publishing a new package doesn't end up bifurcating the ecosystem, though maybe the ecosystem (libraries depending upon the SignalR client) is not large enough to be a concern here.

if I'd seen this before I worked at Microsoft, my assumption would be that whoever did this was not a part of the JavaScript ecosystem and was instead just someone from .NET trying to make the JS folks happy while not really caring about them.

Perhaps this is just naiveté regarding how the JS community organizes. That's why we want to get this information, to find out what the community would find most useful.
Certainly, option 2 doesn't exclude us from taking actions listed in the other options though. I'm quite happy to move forward with that plan and if we hear that this is causing issues in the ecosystem, we can move on.

This is why option 2 requires the publishing of a new version to indicate to those interested in updating how to actually do so.

If this is the path that ends up being chosen, my suggestion is to publish a patch version that includes a new message in the README.md file – effectively, for display only on npmjs.com.
My only concern with this is that you're publishing something that end-users would expect to be code/improvement, but it's actually a misdirection of how to use the real thing. Not a massive deal if it's a few lines in README.md and a patch version, though! 👍

Unfortunately this isn't true since none of our existing published versions are considered deprecated. They remain fully supported and will be patched in accordance with the .NET Core Support Policy. I think that marking them deprecated would be misleading. Of the current versions, only the 3.0 preview releases would be actually deprecated. The 1.0.x releases (aligned with .NET Core 2.1) are supported until at least August 2021 and the 1.1.x releases (aligned with .NET Core 2.2) are supported until December of this year/

This is totally fine, then - no deprecation needs to occur. Current consumers that are unwilling/unlikely to upgrade (there are always some!) can continue on their happy path. I would highly recommend planning on shipping deprecation at the time where the relevant versions go EOL ❤

I'm not clear on how simply publishing a new package doesn't end up bifurcating the ecosystem, though maybe the ecosystem (libraries depending upon the SignalR client) is not large enough to be a concern here.

It does to some extent, but now is a good time to do it for a few reasons:

SignalR downloads are still relatively low (I've seen 70k installs be generated by ~10 medium sized deployments)
The decision is messaging that SignalR is for more than "just" asp.net to the broader JavaScript ecosystem.
Now is a good time to do this since you have a base of users but not an oversized one where you have little to no flexibility (as is the case with some bigger projects like Node.js, request, Webpack, or Babel)

Additionally, one of the core tenets of the JavaScript ecosystem is iterating fast. There will definitely be some bifurcation for a short period, but the newer always outgrows the older rather rapidly. 6to5 => Babel is an example of this that had relatively similar reasoning behind it, and was at a much larger scale. I've not heard about 6to5 or seen real-world usage in years. Ironically, they did this again with babel => babel-cli several versions later.

Perhaps this is just naiveté regarding how the JS community organizes. That's why we want to get this information, to find out what the community would find most useful.

❤

Triage decision: We will do option 1 for now. It doesn't prevent us from doing other things to adjust. @bradygaster will look at the Dependents for @aspnet/signalr and consider reaching out directly to the frequently-downloaded ones.

Closing since there's no engineering action!


Differentiable analysis: from scratch vs existing methods

An interesting point from the kickoff meeting was that there are broadly two directions that any new tools should try to consider:

Creating a differentiable workflow from scratch
Interfacing with existing approaches

It would be very constructive to highlight the considerations one should make for each case :)
E.g. Kyle Cranmer pointed out that to be truly ‘optimal’, invariant of approach, one should learn the true likelihood function instead of objectives like those targeted by INFERNO (inverse fisher info) or neos (p-value from hyp test).

I agree that learning the fully parameterized likelihood, likelihood ratio or score (both with nuisance and interest parameters) are truly optimal in a more strict sense. That said, training a well-performing parametrized model like that can be challenging when many parameters are considered, and then in the case of likelihood and likelihood-ratio it needs to be cross checked and calibrated that can also be difficult. The SALLY and SALLINO are somehow more similar to INFERNO and neos in that a summary statistic can be constructed from their output and used with the same tools that are currently used.
That said I think this are not two different directions perse, some of the most efficient methods in MadMiner require gradients with respect to statistical model parameters, so if we build something that has the abstractions to build a set of tools that allow to construct a differentiable functional version of sets of events and their weight (see my answer in https://github.com/gradhep/center/issues/7#issuecomment-628799087 ) as a function of nuisance parameters and parameters of interest all the approaches could benefit.
I think the idea of having a set of modules, abstractions and examples for building that first part could be useful for all approaches. Then you could plug and play different training modules and objective functions, which could be also implemented in a common framework.


Add Cursor.grab_mode docs for X11

Objective

Documents workaround for bug on X11 with cursor grab on window initialization.
Fixes #10084

Solution

Add an entry to the platform-specific documentation for bevy::window::Cursor.grab_mode (link), providing a link to the above issue where the workaround is described. I believe this is the cleanest solution.

That tracks with my understanding too, i.e. anything from startup on. Is it sufficient to rephrase it like that?

how would it work for a second window created after startup?

This particular situation might require further investigation. Below is what I have so far, and there are a couple issues.

I couldn't get the cursor to lock for new windows. I tried to get creative after a couple failed attempts, hence the hacky code below. But even this doesn't work.
It occasionally hangs when I close a window.

Code
use bevy::{
    prelude::*,
    window::CursorGrabMode,
    winit::WinitWindows,
};

#[derive(Component)]
struct GrabCursor;

fn main() {
    App::new()
        .add_plugins(
            DefaultPlugins
                .set(WindowPlugin {
                    primary_window: Some(Window::default()),
                    ..Default::default()
                })
        )
        .add_systems(Startup, grab_cursor_startup)
        .add_systems(Update, (
            spawn_window,
            grab_cursor_update,
            bevy::window::close_on_esc,
        ))
        .run();
}

fn grab_cursor_startup(mut windows: Query<&mut Window>) {
    // X11 GrabPointer returns NotViewable error if the
    // grab mode is set on window initialization.
    let mut window = windows.single_mut();
    window.cursor.grab_mode = CursorGrabMode::Locked;
}

fn grab_cursor_update(
    mut commands: Commands,
    q_window: Query<Entity, With<GrabCursor>>,
    winit_windows: NonSend<WinitWindows>,
) {
    let Ok(entity) = q_window.get_single() else { return };
    let winit_window = winit_windows
        .get_window(entity)
        .unwrap();
    let _ = winit_window
        .set_cursor_grab(winit::window::CursorGrabMode::Locked);
    commands
        .entity(entity)
        .remove::<GrabCursor>();
}

fn spawn_window(
    mut commands: Commands,
    input: Res<Input<KeyCode>>,
    q_windows: Query<(&mut Window, Entity)>,
    winit_windows: NonSend<WinitWindows>,
) {
    if input.just_released(KeyCode::Space) {
        for (window, entity) in q_windows.iter() {
            if window.cursor.grab_mode != CursorGrabMode::None {
                let winit_window = winit_windows
                    .get_window(entity)
                    .unwrap();
                let _ = winit_window
                    .set_cursor_grab(winit::window::CursorGrabMode::None);
            }
        }
        commands.spawn((Window::default(), GrabCursor));
    }
}


Feature/one click subscription

Won't be merging this now because we need to merge logs and subscription first.


Add cargo-geiger (Rust)

[X] I have not changed the README.md directly.

p.s. added this list to Awesome-Awesome List :)

Awesome! Thank you very much!


DPL-786 Qc result upload fix

Closes #1198
Changes proposed in this pull request:

When clicking “Upload File”, and it fails, have the “Choose File” input box be outlined in red (not green)
When Re-enable is clicked, after either a successful or unsuccessful upload, reset the “Choose File” input to empty, and remove any outline colour.

Deployment
ansible-playbook -vD deploy_traction_ui.yml -i environments/uat -e "github_branch=v6.13.0-5242861358-develop reload_nginx=true "

Develop -> Master PR here


Add sync client test infrastructure

The idea here is to avoid duplicating tests to hit both sync and async code paths.
The way it's accomplished is the following:

Client test classes inherit from ClientTestBase class that requires them to have a ctor with isAsync parameter.
Client tests use WrapClient or CreateClient base methods to create an instance of the client used in tests.
Tests are written using async client methods.
Depending on the mode of the tests (async vs sync) async calls get redirected to sync calls transparently allowing us to have coverage for both while avoiding code duplication.

Fixes: https://github.com/Azure/azure-sdk-for-net/issues/6020

The Storage tests will often use 5+ client instances per test.  Can we separate wrapping from the base class?

You can wrap as many instances as you want, e.g:
var client1 = WrapClient(new StorageClient());
var client2 = WrapClient(new StorageClient());
var client3 = WrapClient(new StorageClient());

Sorry, let me be more specific.  They'll use a BlobServiceClient, BlobContainerClient, and three different BlockBlobClients all in the same test case.  I don't think I'd be able to wrap all three types since there's a single TClient per test class with this approach.

I'm caught somewhere between "oooh, clever!" and fearful that there's too much magic happening that obscures the details from those who aren't familiar with this particular implementation.

I was at a similar place this morning, but then I thought about writing all the duplicated code for app config sync tests :)
Approaches you proposed are good until there is a need to create customized client per test as Mock tests do. Then you either have to have a DataMember per test or be back to having a method that wraps the client and pass true/false in as a parameter.
What I like about this change that it's relatively low impact and we can easily pull it out if we think it's too confusing.


figure out way to gif tesselate the scroll

maybe new action that gives perfect inputs to the scroll action

virtual path and movements may be the solution here


Docker reporting its not a pi

I'm running a Pi 4B and I've just used the following command to build the container... Am I missing something ?
docker run -d --name=mqtt-gpio --privileged -v /apps/docker/mqtt-gpio/config.yml:/config.yml flyte/mqtt-gpio:armv7l
The logs inside the container are showing the following:-
2020-10-20 07:22:05,889 mqtt_gpio (INFO): Startup
Collecting RPi.GPIO
Downloading RPi.GPIO-0.7.0.tar.gz (30 kB)
Building wheels for collected packages: RPi.GPIO
Building wheel for RPi.GPIO (setup.py): started
Building wheel for RPi.GPIO (setup.py): finished with status 'done'
Created wheel for RPi.GPIO: filename=RPi.GPIO-0.7.0-cp36-cp36m-linux_armv7l.whl size=61792 sha256=daeee1d56c873e7ca47587fdcaca469d1c3ecf9594fa036874addbe3c03313e1
Successfully built RPi.GPIO
Installing collected packages: RPi.GPIO
Successfully installed RPi.GPIO-0.7.0
Collecting Adafruit_DHT
Downloading Adafruit_DHT-1.4.0.tar.gz (15 kB)
Building wheels for collected packages: Adafruit-DHT
Building wheel for Adafruit-DHT (setup.py): started
Building wheel for Adafruit-DHT (setup.py): finished with status 'done'
Created wheel for Adafruit-DHT: filename=Adafruit_DHT-1.4.0-cp36-cp36m-linux_armv7l.whl size=29577 sha256=5e895c0f91c2f06d9828176159ce4be9fe1f0a487625f5ecdc358c454bca027e
Stored in directory: /home/mqttgpio/.cache/pip/wheels/af/d8/00/6f0c819ab5f38ea5ececf1b698a9e53888e271300d5f202260
Successfully built Adafruit-DHT
Installing collected packages: Adafruit-DHT
Successfully installed Adafruit-DHT-1.4.0
Traceback (most recent call last):
File "/usr/local/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/local/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/mqttgpio/pi_mqtt_gpio/server.py", line 901, in
main(args)
File "/home/mqttgpio/pi_mqtt_gpio/server.py", line 798, in main
initialise_digital_input(in_conf, GPIO_MODULES[in_conf["module"]])
File "/home/mqttgpio/pi_mqtt_gpio/server.py", line 492, in initialise_digital_input
gpio.setup_pin(pin, PinDirection.INPUT, pud, in_conf)
File "/home/mqttgpio/pi_mqtt_gpio/modules/raspberrypi.py", line 47, in setup_pin
self.io.setup(pin, direction, pull_up_down=pullup, initial=initial)
RuntimeError: Not running on a RPi!

After some investigation, I only get the error when I have the 'digital_inputs' in my config. If I remove it and leave my other inputs/modules in there, it works fine.
gpio_modules:

name: raspberrypi
module: raspberrypi

digital_inputs:

name: button
module: raspberrypi
pin: 21
on_payload: "ON"
off_payload: "OFF"
pullup: yes
pulldown: no

Hello,
i get an similar error on my raspberry PI 4 8GB running with
uname -a
Linux smarthome 5.4.72-v7l+ #1356 SMP Thu Oct 22 13:57:51 BST 2020 armv7l GNU/Linux.

config.yml

mqtt:
host: mqtt
port: 1883
user: usrmqtt
password: secure
topic_prefix: haus/mqtt-gpio
gpio_modules:
- name: raspberrypi
module: raspberrypi
digital_inputs:
- name: bwm
module: raspberrypi
pin: 4
on_payload: "ON"
off_payload: "OFF"
pullup: yes
pulldown: no

docker-compose.yml

mqtt-gpio:
  image: flyte/mqtt-gpio:armv7l
container_name: mqtt-gpio
restart: always
privileged: true <- changed nothing
volumes:
 - /opt/mqtt-gpio/config.yml:/config.yml
- /dev/gpiomem:/dev/gpiomem <- changed nothing
2020-11-06 19:57:42,877 mqtt_gpio (INFO): Startup
Traceback (most recent call last):
File "/usr/local/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/local/lib/python3.6/runpy.py", line 85, in run_code
exec(code, run_globals)
File "/home/mqttgpio/pi_mqtt_gpio/server.py", line 901, in
main(args)
File "/home/mqttgpio/pi_mqtt_gpio/server.py", line 773, in main
GPIO_MODULES[gpio_config["name"]] = configure_gpio_module(gpio_config)
File "/home/mqttgpio/pi_mqtt_gpio/server.py", line 451, in configure_gpio_module
return gpio_module.GPIO(gpio_config)
File "/home/mqttgpio/pi_mqtt_gpio/modules/raspberrypi.py", line 19, in init
import RPi.GPIO as gpio
File "/home/mqttgpio/.local/share/virtualenvs/mqttgpio-815CbdL/lib/python3.6/site-packages/RPi/GPIO/init.py", line 23, in
from RPi._GPIO import *
RuntimeError: This module can only be run on a Raspberry Pi!

Here they figured out, it may happen with an old python version, that didn't know the new raspberry PIs (3b+ and newer). Python2 did not work, Python3.7 worked.
https://www.raspberrypi.org/forums/viewtopic.php?t=273369
May you upgrade python in your docker container to 3.7 and check, if it still occurs?

Ive just built a new docker image with python3.7 with the relevant changes to the Pipfile and its still not working. I also tried python3.8 too.
I'll do some more testing

I Finally fixed it... All I needed to do was the following, then everything worked fine with the existing docker image python3.6:-
chmod og+rwx /dev/gpio*

@g8ry : are you running raspbian OS?  The chmod fix you used suggests a permission issue.  GPIO access used to require root privileges on Raspbian but I think that is no longer the case.
My environment is an RPi4 8GB with Ubuntu 20.04 and I encounter the "Not Running on Pi" error too.  I also encounter the runtime error, "Failed to add edge detection" when I attempt to use "interrupt_payload: "triggered".  The chmod change above will not fix that error.
A better way to handle this configuration problem is through permissions.  The answer on this link is one approach that works for me:
Failed to add edge detection - Raspberry Pi 3 GPIO.  It uses a system account and rules to selectively grant permission to a non-root user.

@g8ry : are you running raspbian OS? The chmod fix you used suggests a permission issue. GPIO access used to require root privileges on Raspbian but I think that is no longer the case.
My environment is a RPi4 8GB with Ubuntu 20.04 and I encounter the "Not Running on Pi" error too. I also encounter the runtime error, "Failed to add edge detection" when I attempt to use "interrupt_payload: "triggered". The chmod change above will not fix that error.
A better way to handle this configuration problem is through permissions. The answer on this link is one approach that works for me:
Failed to add edge detection - Raspberry Pi 3 GPIO. It uses a system account and rules to selectively grant permission to a non-root user.

@jjarokergc
I'm running Ubuntu 20.10 on a 2GB RPi4
I'll take a look at that later. Thanks 👍


Update Docstring (#1)

Solves #450
Updated the Docstring and corrected it for next_chunk()

Thanks, @bantini


Add "copy to clipboard" button for SQL

It can be difficult to copy all of the sql within the textbox of a dataset.  It would be nice if there was a copy to clipboard button that made it easier for the user.

Superseded by datasets 3.0.


RANGER-4952: Add support for Hive 4.0.1

What changes were proposed in this pull request?
Hive 4.0 major version has been release. This is a significant release with over 5000+ commits compared to hive-3.x
As a result, we would like to upgrade the version of hive used in ranger to Hive-4.0.1 .
How was this patch tested?
Unit tests and manual tests

@vperiasamy  can you please review the PR.

+1 for the change.
I can contribute to add connector ranger auth such as https://issues.apache.org/jira/browse/HIVE-25214 in Hive4 if we can get the change in Ranger.

@rameeshm can you please merge the change if everything is fine?
Thanks!

thanks !


Ability to cancel Checking for Updates

Version and Platform (required):

Binary Ninja Version: 3.2.3814
OS: macOS
OS Version: 12.4
CPU Architecture: M1

Bug Description:
While there is a button to disable downloading an update, there's no way to disable the updater before it actually starts downloading.
Steps To Reproduce:

Open an outdated build with auto updates enabled
Watch status bar
Realize you can't cancel during "Checking for Updates"
Look away for 3 seconds and come back to "update downloaded" (optional)

Expected Behavior:
I expected to be able to cancel the updater in every phase of the process.

Added in build 3979


Project Test Case 9_11

Summary
Hi does anyone know how I can fix this issue? seems like customer 13 is supposed to be served directly by self-check 4 after it is freed up as it is next in line, but it doesnt recognise that.
Thanks!
Description
Describe the problem and code snippets if necessary
Screenshots (if any):

could it be possibly how you handle the queue for SCCs, ive implemented a manager class to handle 1 list to handle the queue for all the the self check-outs

I ran into a similar issue just now, checking the difference between how you handle wait events for SCCs and normal servers might help!

Thank you for the suggestions I fixed it!


BCDR1

Deleted servers can be restored, removed old important note telling that is not supported.

Maybe @kabharati can help here.

@kabharati
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@Court72 - I approved this. But when I add sign off it does not get auto approved.

Thanks, @kabharati! We'll merge this PR.
Can you open a PR in the private repo to update the author and the ms.author metadata attributes to the correct author?


Add appropriate dates appropriately!

We could add the date it to each page. I think the following would work:

title: About
date: last-modified
date-format: long

Footer date is now updated automatically for every page.
83e6f34310b2e33b575c4b3739b08ffd24f5fd62.


Testing regex rather than only automata

Right now we are only able to test automata rather than literal regex. I would suggest having a regex class called RegularExpression just like DeterministicFiniteAutomata so that we can interchange between them and test them out easily.

Feature added in version 0.0.8


Support multiple rulers with different colors

What kind of a ruler do you have in mind? Could you add more detail to your feature request? Like screenshots of the existing functionality you want to extend or a mockup of how it should look should your feature request be accepted?

I'm talking about the editor's ruler viewpart (Announcement (GH/diff) / Code / d9e5323 / #1673).
It's already possible to change the rulers' color (Docs (GH/diff) / Code / e4f9b9d / #26377)
But as far as I see it it's only possible to change the color of all the rulers.
As the color is not part of the ruler's properties (each ruler is only defined by its location) and completely in the theme's responsibility (with the generic .view-ruler CSS class for all the rulers' background-color) this makes perfectly sense.
So if this was to be supported I'm not sure what would be the best way to do so.

One (of endless) possibility is to enable users to explicitly define colored rulers which do not respect the theme's colors. Drawback here is that depending on the theme the colors might just not match (hurt the eyes or hardly be visible)
Another possibility is to allow themes to define multiple ruler colors and rulers to be defined in sets.
So editorRuler.foreground: ["#000", "#888", "#FFF"]; and editor.rulers: [[10, 40, 80], [20, 30, 70], [50, 60, 90]]; should render rulers 10, 40 and 80 black, 20, 30 and 70 gray and 50, 60 and 90 white (as a non-realistic example).
I don't think I would ever use more than two colors, but the question remains what to do if the user defines more ruler sets than the theme defines ruler colors. Stay with the last set's color? Cycle through the colors? Hide the other rulers? (probably not)
It surely needs some elaboration, but it might be better to introduce a limited set of semantic rulers.
I guess most users use rulers for similar purposes. In git commit messages that's title/paragraph, in code it might be sth like "warning/error" (try not to exceed, do not exceed) or code/comment or whatever else.

It'd be nice to have the final ruler be a different color like red for example.

This seems like a good case for either an extension or custom theme.
The rulers are set in these divs and classes:

But I can't find a way to target them individually.
However, if you want to target both with a different color use this:
//  settings.json
{
  "workbench.colorCustomizations": {
    "editorRuler.foreground": "#ff0000"
  }
}

While themes could handle it via CSS based rules, the settings.json options are user defined (for rulers), and a specific user override for theme values in the case of the color option. I think keen theme creators should take advantage as they see fit.
However this is a feature that could have a lower barrier for entry. I'm happy enough with the default theme, so I don't want to have to search for a new one; nor an extension to add on top.
What may be elegant and simple would be if the editor.rulers could accept the size as ints, or a simple object constructed of a size and color.
This would also simplify the (potentially) unwanted fact that that the workbench route also affects the default ruler next to line numbers.

While themes could handle it via CSS based rules, the settings.json options are user defined (for rulers), and a specific user override for theme values in the case of the color option. I think keen theme creators should take advantage as they see fit.
However this is a feature that could have a lower barrier for entry. I'm happy enough with the default theme, so I don't want to have to search for a new one; nor an extension to add on top.
What may be elegant and simple would be if the editor.rulers could accept the size as ints, or a simple object constructed of a size and color.
This would also simplify the (potentially) unwanted fact that that the workbench route also affects the default ruler next to line numbers.

I think this ignores completely the topic title - "MULTIPLE rulers with DIFFERENT colors". AFAIK, there is no way to set the color (as I said specifically in my comment immediately before your comment) per ruler.
The purpose of this request isn't allowing color config of the rulers, it's allowing individual rulers to be a different color.
It's possible you could target this via CSS using something like child selectors, but there isn't a clean way to do it as of now.

This is incorrect, unless it's a side-effect of your theme. You can set the color of all rulers using "editorRuler.foreground": "#3d064b". This does not affect the ruler next to the line numbers.

I have VS Code installed out of the box with the default dark theme. The verticle line next to line numbers is considered a ruler and affected by editorRuler.foreground.
You can see this in the following two examples:

If setting all rulers to a single color were my goal, I would still not want this ruler changed. The whole point of unique colors is allowing visual delineation between rulers - in my case I'd like to use that visual delineation for character limit rulers.
Here's what I'm suggesting in more depth...
Adjust the settings.json scheme to allow:
"editor.rulers": [
    {
        size: 80,
        color: "#ff00FF"
    },
    100,
    {
        size: 120,
        color: "#ff0000"
    },
],

Now allowing either ints or the new class/interface in the array. So from number[] to number[] | IRulerOption[] where IRulerOption is something like:
export interface IRulerOption {
	size: number;
	color: string|null;
}

Given this, any int can be translated to:
{
    size: X,
    color: null
}

Where they will use the default color value and not a unique one. Then in the rulers render method similar to how setHeight and setLeft are used, the color can be set conditionally when not null.

Something like:
export interface IRulerColorOption {
  size: number;
  color: string;
}

export type IRulerOption = number | IRulerColorOption;

Then "editor.rulers" type goes from number[] to IRulerOption[]. This would allow intermixed value types like in your example:
"editor.rulers": [
    {
        size: 80,
        color: "#ff00FF"
    },
    100,
    {
        size: 120,
        color: "#ff0000"
    },
],

Without having to deal with a nullable color property. When the ruler type is number we use the color from editorRuler.foreground; otherwise we use the color from the IRulerColorOption object.

So I'll admit I haven't worked with typescript a whole lot and none of that was at all recently. That said, I've toyed around with this concept and been able to implement it as @lexicalunit suggested.
It works really well to be honest for a hacky proof of concept. The only 'issue' I'm having should be easy to get around. Essentially my implementation doesn't properly respect certain config changes - ending up spreading ruler color to other elements.

Hey all!
This looks to be merged into the Insiders release of VS Code. Here is an example snippet with the updated scheme:
"editor.rulers": [
    {
        "column": 80,
        "color": "#ff00FF"
    },
    100,
    {
        "column": 120,
        "color": "#ff0000"
    },
],


Feature Request : Properties to define : Max Audio Recognition Time from Microphone OR Stop Recognition on silence

Hello,
I am doing speech recognition and am using Android SDK. I plan to move to containers in future. Stopping on silence is default as per documentation. How do i define the following the max audio time recognition time as below:
If the user is speaking and has spoken more than 15 seconds. The sdk should automatically stop the recognizer on Android end. If the user has spoken less than 15 seconds and was silent in between then it should be based on silence detection. The speech sdk should stop the microphone on android either on silence detection (when spoken < 15 seconds) or on completion of user saying 15 second audio.
In the container back-end how can i specify that the maximum audio length should be for 15 seconds . I could not find any such provision in the container documentation
Regards,

Hi, there are no available controls for this. One option is that, instead of using the SDK microphone capture implementation, use your own microphone capture and create a push or pull audio input stream to feed the audio to the SDK library.

What is the point in reworking the whole issue... the sdk is not open source that i can modify it... making own mircrophone means the whole websocket format and the chunk size , error handling all needs to be done again.
This is the reason for raising a feature request

means the whole websocket format and the chunk size ,
error handling all needs to be done again.
No.  That is not the case.  The SDK has push stream/pull stream modes.  There are examples of these.  You can capture an audio buffer from the Microphone yourself and then use that buffer in  stream as defined by the SDK.  The SDK will take care of the websocket, chunksizing, error handling, etc...


does not install

Hi, I am unable to install Myrtille. it gives me error 1001 saying the class is not registered. Is there a way to fix this?

Did you installed IIS and .NET 4.5 (requirements) before installing Myrtille?

any news?

please check https://github.com/cedrozor/myrtille/issues/165, it should work by reinstalling IIS and .NET 4.6


C++: : Unable to create new client stream if server restarted

What version of gRPC and what language are you using?
v1.18
What operating system (Linux, Windows,...) and version?
Linux (Ubuntu)
What runtime / compiler are you using (e.g. python version or version of gcc)
gcc v5.5.0
What did you do?
I am using streaming RPC where client will stream the messages it has and server listens to the messages. When streaming is in progress from client side (lets say after couple of messages sent from client end), I restart the server (Ctrl+c and start server again) then client is unable to establish new session with server.
What did you expect to see?
Seemlessly able to create new writer (stream) and client should able to stream messages again.
What did you see instead?
If I am not wrong, writer is created per session so I am trying to create new session by creating new writer instance from Stub. I see following error at client
E0307 02:09:43.854424957   22379 sync_posix.cc:85]           assertion failed: pthread_mutex_lock(mu) == 0     [Client output attached below]
Client code:
<removed headers>

Message getMessage(int i) {
  Message mesg;
  mesg.set_protocol_version(i);
  return mesg;
}

class Client {
 public:
  Client(){
 }

void sendMessages(std::shared_ptr<Channel> channel,
                    std::unique_ptr<Listener::Stub> &stub_,
                    std::unique_ptr<ClientWriter<Message> > &writer) {
    Message message;
    const int kPoints = 10;

    for (int i = 0; i < kPoints; i++) {
      Message message = getMessage(i);
      std::cout << "Waiting to write " << std::endl;
      if (!writer->Write(message)) {
        std::cout << "broken stream. Will create new session" << "\n";
        while (channel->GetState(true) != GRPC_CHANNEL_READY) {
          std::cout << "Retry connection... after 1 sec" << std::endl;
          std::this_thread::sleep_for(std::chrono::milliseconds(1000));
        }
        ClientContext context_retry;
        ReplyMessage reply_message_retry;
        writer = std::move(stub_->receive_resources(&context_retry, &reply_message_retry));
        std::cout << "created new session successfully" << std::endl;
      }
      std::this_thread::sleep_for(std::chrono::milliseconds(1000));
    }
  }
};

int main(int argc, char** argv) {
  std::shared_ptr<Channel> channel;
  channel = grpc::CreateChannel("localhost:50051",
                      grpc::InsecureChannelCredentials());
  std::unique_ptr<Listener::Stub> stub_(Listener::NewStub(channel));
  ReplyMessage reply_message;
  ClientContext context;
  std::unique_ptr<ClientWriter<Message> > writer(stub_->receive_resources(&context, &reply_message));
  Client client;

  std::cout << "-------------- SendMessages --------------" << std::endl;
  client.sendMessages(channel, stub_, writer);
  writer->WritesDone();
  Status status = writer->Finish();
  if (status.ok()) {
    std::cout << "Close message " << reply_message.close_message()
              << std::endl;
  } else {
    std::cout << "RecordRoute rpc failed." << std::endl;
  }

  return 0;
}

RPC proto file:
package listener;

// Interface exported by the server.
service Listener {
  rpc receive_resources(stream Message) returns (ReplyMessage) {}
}

// Message and ReplyMessage are protos not defined here (Let me know if they are applicable, I can add).
Server code
<removed headers>

class ListenerImpl final: public Listener::Service {
  Status receive_resources(ServerContext* context, ServerReader<Message>* reader,
                      ReplyMessage* message) override {
    Message gMessage;
    unsigned int message_count = 0;

    while (reader->Read(&gMessage)) {
      message_count++;
      std::cout << "received" << std::endl;
      std::cout << gMessage.protocol_version() << std::endl;
    }
    std::cout << message_count << std::endl;
    message->set_close_message("close");
    std::cout << "sent close message" << std::endl;
    return Status::OK;
  }
};

void RunServer() {
  std::string server_address("<IP_ADDRESS>:50051");
  ListenerImpl service;

  ServerBuilder builder;
  builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
  builder.RegisterService(&service);
  std::unique_ptr<Server> server(builder.BuildAndStart());
  std::cout << "Server listening on " << server_address << std::endl;
  server->Wait();
}

int main(int argc, char** argv) {
  RunServer();
  return 0;
}

Client side terminal output
-------------- SendMessages --------------
Waiting to write
Waiting to write
Waiting to write
Waiting to write
Waiting to write
Waiting to write
Waiting to write
Waiting to write
broken stream. Will create new session ---> server stopped and started again
Retry connection... after 1 sec
Retry connection... after 1 sec
Retry connection... after 1 sec
Retry connection... after 1 sec
Retry connection... after 1 sec
Retry connection... after 1 sec
Retry connection... after 1 sec
Retry connection... after 1 sec
created new session successfully
Waiting to write
E0307 02:09:43.854424957   22379 sync_posix.cc:85]           assertion failed: pthread_mutex_lock(mu) == 0 ------------------> After creating new writer instance, when I try to write again using writer, then this error is thrown
Aborted

I also tried reusing same ClientConext but received below error so creating new ClientContext object for every creation of writer
"""
E0307 02:14:13.928433306   23563 client_context.cc:87]       assertion failed: call_ == nullptr
Aborted
"""
I also tried creating new channel and stub and also stub alone when channel says it is in ready state, still I see same issue (E0307 02:09:43.854424957   22379 sync_posix.cc:85]           assertion failed: pthread_mutex_lock(mu) == 0)
Not sure where I am missing.
Anything else we should know about your project / environment?
No
I tried asking same question in the google group and no one answered so assumed it might be a bug. Let me know if I didn't follow the right procedure to create new session.
Thanks.

CC @vjpai @yashykt

I am able to make it work so closing the issue. I made context as pointer and when I need to create new writer, i will allocate new context object to context pointer. That worked for me.


storage: fix reverse scan check memory locks

Signed-off-by: youjiali1995<EMAIL_ADDRESS>
What problem does this PR solve?
Issue Number:close #11440
Problem Summary:
Reverse scan's start_key is greater than end_key, but storage always uses [start_key, end_key) to check memory locks.
What is changed and how it works?
What's Changed:
Swap start_key and end_key if is a reverse scan.
Related changes

Need to cherry-pick to the release branch

Check List
Tests

Unit test

Side effects
Release note
Fix the issue that reverse scan can't detect memory locks and may read stale data.

I can't open it https://github.com/PingCAP-QE/transaction-qa. The reason why we didn't find this bug in tests is TiDB doesn't use scan except in backfilling. I think it's not valuable to add integration tests for it and unit tests in TiKV are enough. @cfzjywxk

/merge


Feature request: Add 'format' parameter to get valid JSON responses

I'm currently wrestling my local LLM to give me valid JSON responses. It succeeds sometimes, and other times it doesn't. The Ollama API provides a format parameter, which accepts a single value json. It would be cool if all the comfyui-ollama nodes exposed that parameter, perhaps as just a JSON toggle (since it only has that option currently), in order to get a well-formed JSON object from Ollama.

Here is an example of adding the format parameter to the OllamaVison node:
class OllamaVision:
    def __init__(self):
        pass

    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {
                "images": ("IMAGE",),
                "query": ("STRING", {
                    "multiline": True,
                    "default": "describe the image"
                }),
                "debug": (["enable", "disable"],),
                "url": ("STRING", {
                    "multiline": False,
                    "default": "http://<IP_ADDRESS>:11434"
                }),
                "model": ((), {}),
                "keep_alive": ("INT", {"default": 5, "min": 0, "max": 60, "step": 5}),
                "json": (["enable", "disable"], {"default": "disable"}),
            },
        }

    RETURN_TYPES = ("STRING",)
    RETURN_NAMES = ("description",)
    FUNCTION = "ollama_vision"
    CATEGORY = "Ollama"

    def ollama_vision(self, images, query, debug, url, model, keep_alive, json):
        images_b64 = []

        for (batch_number, image) in enumerate(images):
            i = 255. * image.cpu().numpy()
            img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8))
            buffered = BytesIO()
            img.save(buffered, format="PNG")
            img_bytes = base64.b64encode(buffered.getvalue())
            images_b64.append(str(img_bytes, 'utf-8'))

        client = Client(host=url)

        if debug == "enable":
            print(f"""[Ollama Vision]
request query params:

- query: {query}
- url: {url}
- model: {model}
- json: {json}

""")

        request_params = {
            "model": model,
            "prompt": query,
            "images": images_b64,
            "keep_alive": str(keep_alive) + "m",
        }
        if json == "enable":
            request_params["format"] = "json"

        response = client.generate(**request_params)  # Adjusted API call

        if debug == "enable":
            print("[Ollama Vision]\nResponse:\n")
            pprint(response)

        return (response['response'],)

I am wondering if to use json as enable/disable or a field that you can select format from drop down list like
Text
JSON
Maybe in the future they support more formats? Ollama api support today only json right?

Today Ollama only supports json in the format parameter field. They may support more formats in the future.

ill add it as format drop down selection

@Jonseed
done, please update and check

@stavsap Looks great! Thank you!


onShown not firing

Hey, I'm now using the latest version of the package and my onShown lifecyle hooks have all stopped firing. Is this expected?

Animations were removed from core (except fade) so you need to import them back if you were using a different animation. If duration is not 0, and the CSS transitions aren't enabled, it won't be called.

I'm using fade with a non-zero duration. I'd like to focus a ref'ed field in the tippy after the tippy is shown. Doing that in onShow doesn't work. How would you do it with the current version?

Also, the tippy's onShown attribute is set to false probably as a result of onShown not being called. Is isVisible the right attribute to use instead then?

state.isVisible is true onShow and false onHide, whereas state.isShown is true onShown and false onHide
The ontransitionend listener listens for visibility transition changes only in 5.1.3 – it's possible this has caused a problem somewhere. Is it called in 5.1.2?

^ It was a bug! Sadly the Jest tests didn't pick up the regression :\
Should be fixed if you update to latest @tippy.js/react@latest.

Thanks!
On Mon, Jan 13, 2020 at 1:31 PM atomiks<EMAIL_ADDRESS>wrote:

Closed #162 https://github.com/atomiks/tippy.js-react/issues/162.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/atomiks/tippy.js-react/issues/162?email_source=notifications&email_token=AAH2QN6E7BY4YMXSS2O462TQ5RNIJA5CNFSM4KGAPH22YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOV5VGWVY#event-2942987095,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH2QN5LCXHRKTHC2DMKHSTQ5RNIJANCNFSM4KGAPH2Q
.


Crash Fix on ShowDebug ALS.Curves console commands

Discussed in https://github.com/Sixze/ALS-Refactored/discussions/93

Originally posted by emaovo June 24, 2022
hi all,
I often had crashes when typing console commands ShowDebug ALS.State or other ALS. functions, due to the DebugData chain not initialized. I added the call to Super and now it works.
Just wanted to let you know in case you want to integrate it.
All the best
void FAlsAnimNode_CurvesBlend::GatherDebugData(FNodeDebugData& DebugData)
{
	DECLARE_SCOPE_HIERARCHICAL_COUNTER_ANIMNODE(GatherDebugData)
	Super::GatherDebugData(DebugData);// add at least one entry in the chain to prevent crash in BranchFlow when NodeChain is empty
	SourcePose.GatherDebugData(DebugData.BranchFlow(1.0f));
	CurvesPose.GatherDebugData(DebugData.BranchFlow(BlendAmount));
}

Fixed in 7278d45e43d51e979566bbd5670f8a9400d32e10.


Add PhoneExpander.app v1.1_325

Add a cask for PhoneExpander (http://phoneexpander.com)

Thank you for the contribution. It needed some fixes, so they were made in e68278e6482185955e620e038de182315b7437a8. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.

Thank you!
I am just curious how you find out or know if there is an appcast url available. Is there some automated method?
Also, I have always just used cURL to inspect download response headers...but is there an automated way for determining that as well? (For example, the link on this particular apps website is just phoneexpander.com/download - and that returns a 302 with a location header)

On Feb 9, 2016, at 1:11 PM, Victor Popkov<EMAIL_ADDRESS>wrote:
Thank you for the contribution. It needed some fixes, so they were made in e68278e. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.
—
Reply to this email directly or view it on GitHub.


Can it support invisible now?

Hi, I can not find the solution for invisible config?
Can guys help do it? thanks!

Hi, it defaults to invisible: you don't need to change anything.


Terminal shell integration copy output inserts extra line endings

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

VS Code Version: 1.69.1
OS Version: arch

Steps to Reproduce:

Enable shell integration
Open terminal, run this command python -c 'print ("abc"*80)'. Most likely it will output 2-3 lines of text
Select the output using cursor, paste it to editor -> You've pasted one line of text.
Click on blue dot and press copy output, paste-> You've pasted 2-3 lines instead of one! That's the issue.

Nice find!


JioTV add on stuck on login error page and causing Kodi to freeze

Hello There,
I am getting this error as soon as I install the kodi jiotv add on. I cannot even proceed to click the add on to login and before that this error happens and everything just freezes.

Click add-ons ,
Long press ok button>>click settings >>then click login


Predicate not maintained after find

Commands such as sort/edit do not retain the find view after execution.
Eg. find t/friends, edit 1 n/something
brings user back to home view

Something broke find yesterday. Find doesn't check tasks anymore, can look into it this weekend


Added Narice to the CONTRIBUTING.md

For changing easings.h to work without the inclusion of raylib.h

Thanks for contributing @Narice! :D


[Bug]: the type of webpack-sources is any

System Info
Every System
Details

Reproduce link
No response
Reproduce Steps
Every repo

First, we should fix the @types/webpack-sources. I have already addressed the PR here: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/69710.


Exception: no model specified in /home/rdelafuente/mmt/engines/default/models/decoder/model.conf

I have trained a neural engine when trying to start the engine I get this error
Exception: no model specified in /home/rdelafuente/mmt/engines/default/models/decoder/model.conf
2018-02-05 02:17:46,794 FATAL eu.modernmt.facade.ModernMT [main] Unexpected exception thrown by thread [main]
java.lang.NullPointerException
I took a look at the model.conf file and content is:
[models]
en__it
I tried running the below as suggested offline by Davide, but it didn't work.
./mmt create en it examples/data/train/ --neural
./mmt start
I am attaching training and node logs. Thanks in advance for your help.
node.log
training.log

Hi @menpente
that is really weird: from the logs I can say that the training just completed successfully, even more unexpected is the model.conf file. This is the bit of code that writes the file:
with open(os.path.join(model_folder, 'model.conf'), 'w') as model_map:
            filename = os.path.basename(self.model)
            model_map.write('[models]\n')
            model_map.write('%s__%s = %s\n' % (self._source_lang, self._target_lang, filename))

So even if, let's say, there is a problem with the variable filename, the script should have printed at least the = char; something like this:
[models]
en__it =

Anyways, let's try to fix the engine and let's check if it works. If you ls the decoder folder you should have something like this:
ls
model.conf  model.en__it.bpe  model.en__it.dat  model.en__it.meta  model.en__it.vcb memory

Change the model.conf file like so:
[models]
en__it = model.en__it

And try to run MMT again.
Cheers,
Davide

Hi Davide,
model.conf already looks like that...

I just tried running ./mmt start (on a fresh training) and now it starts ok... So maybe there was something corrupt with the previous training?

That's great!
But I am confused. In the first post you said that the model.conf looked like this:
[models]
en__it

And that can definitely be the reason for the NullPointerException, but now you're saying that the model.conf looks like:
[models]
en__it = model.en__it

Which one is correct?
And you also said that:

I tried running the below as suggested offline by Davide, but it didn't work.
./mmt create en it examples/data/train/ --neural
./mmt start

but now, if I understand correctly, it seems to work:

I just tried running ./mmt start (on a fresh training) and now it starts ok...

Davide

Hi Davide,
Sorry for the confusion. The model.conf for the first training was:
[models]
en__it
And produced the error reported initially. I took it from the top and did a fresh training, where model.conf looks like:
[models]
en__it = model.en__it
And the engine starts correctly. So I guess there was something wrong with the first training, but probably not worth investigating now?

Hi @menpente
Yes, there was something very strange in the first training as I described in the first post. If it is no longer affecting the training I believe it could have been a temporary issue due to some misconfigurations.
I'm closing the issue for now, but if you experience this problem again please re-open it and attach the training.log and the exact error.
Thank you!
Davide


Log output should be consistent and filterable.

Currently log messages are a mixture of formats and aren't controllable at all.
They should have a common format and include information such as caller, time and log level. They should also be able to be filtered based on some set log level, allowing trace output to remain in the code but not be used in production.
This log level should be configurable in both the command line arguments and config files.

Enhancement made in this commit.
Some changes are still required for client side debug logging but these will be removed by v1.0.


Add log enrichment use case to Data Prepper

Description
Adds log enrichment with Data Prepper to open source documentation
Issues Resolved
Checklist

[X] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hi @lizsnyder: Please review this use case carryover to Data Prepper at your availability. Thank you :)

@lizsnyder This PR has been merged. Tagging you for visibility.


The design of GraphQlRepository

I think the design of @GraphQlRepository is radical, because the coordinate/(unique key) of field is TypeName.FieldName, instead of TypeName. And different field may share same TypeName but different 'data fetch logic'.
Maybe 'return type matches that of the repository domain type' should be abandoned, and 'type name' and 'field name' is required, but this may against the original intention of GraphQlRepository.

The auto-registration for @GraphQlRepository applies to top-level queries only. In that sense, it is reasonably constrained. The coordinate type is always "Query", so it looks to match the return type of queries, and for that only if there isn't a registration for the query already.
I think this is reasonably constrained, but if that doesn't work for you, just don't use the annotation and instead use QueryDslDataFetcher or QueryByExampleDataFetcher to wrap the repository as a DataFetcher and register it manually through a RuntimeWiringConfigurer.
Hopefully that makes sense.

Thanks for your feedback. You are right, there are too small chance that multiple fields under Query share same Type and they are not registe DataFetcher. And registering DataFetcher manually can easily handle this situation.


Add support for parsing timezone using chrono-tz

Which issue does this PR close?
Closes #500
Rationale for this change
This is the 2nd part of the change as expected by the issue. The first part was done in #771
What changes are included in this PR?
The PR implements parsing of tz using the chrono-tz optional dependency. Without this tz of the form eg:Europe/Berlin are considered an error.
Are there any user-facing changes?
Yes. There is a new feature. Not sure how it should be documented.

Codecov Report

Merging #824 (f04a01b) into master (ed5b398) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #824   +/-   ##
=======================================
  Coverage   82.57%   82.58%
=======================================
  Files         168      168
  Lines       47939    47946    +7
=======================================
+ Hits        39587    39594    +7
  Misses       8352     8352

Impacted Files
Coverage Δ

arrow/src/compute/kernels/temporal.rs
97.43% <100.00%> (+0.12%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ed5b398...f04a01b. Read the comment docs.


🐞 Multiple errors reported when building, when only one exists

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
When running gulp serve or similar commands that run / package a SPFx project, if there is a single error in the write-manifests, only one error should be displayed.
Observed Behavior
Multiple errors displayed. In the below screenshot, the yellow error is the only error... once it is fixed, no errors are shown:

Steps to Reproduce

create new spfx cswp project

mkdir cswp && cd $_ && yo @microsoft/sharepoint

accept all defaults, creating a Web Part
open src/webparts/*/*.manifest.json
set the alias to a value >40 characters
run gulp serve
observe multiple (6 in my case) incorrect errors shown
set the alias to a value <=40 characters
run gulp serve
observe no errors shown when you only fixed one of the multiple reported

This appears resolved when you release v1.2 according to the release notes... see 2nd to the last one here: https://github.com/SharePoint/sp-dev-docs/wiki/Release-Notes---Extensions-RC-Drop-1.2


AWS PrivateLink support

update VPCEndpoint to support new properties in Cloudformation
add AWS::EC2::VPCEndpointService

@markpeek ping

This PR covers issue #1081

@markpeek hey, could you approve and merge this pull request?

Thanks!


Information on 11.1.2

I feel like there is a good number of people compare this site to /r/jailbreak, figure this site is out-of-date, and install one of the async_awake forks + Cydia thinking they are stable (and end up softbricking their phones later down the line). It would be great to have some notice saying:

11.1.2 is exploitable, so you should not upgrade
All of the tools available now should not be installed by anyone (including developers). Maybe even elaborate how useless they are, and the dangers of installing them in their current state

Unfortunately it seems we will never go back to the days of 100% stable, 0day, user-friendly exploits like Pangu/evasi0n. I think adapting in this regard would be in the scene's best interests

Thanks for this, I entirely agree. I'll see if there's a way of fitting this kind of functionality into the site.

4a8c17d3232a7d168c4b927b8b382663214828ee wasn't what I had in mind...
I think the json should look more like:
    {
      "jailbroken": false,
      "name": "This firmware is exploitable",
      "version": "",
      "ios": {
        "start": "11.0",
        "end": "11.1.2"
      },
      "caveats": "This firmware is exploitable, but there is no jailbreak for it. There currently are a few work-in-progress attempts (LiberiOS, topanga, async_awake_fun). Do not install these. They are pretty much useless (tweak injection doesn't really work) and your phone has a high chance of softbricking if you manually install Cydia. If you want to jailbreak, stay on this firmware and wait for an official update from saurik."
    }

I think mine is more concise :)
On 29 Dec 2017, 22:35 +0000, Reed Weichler<EMAIL_ADDRESS>wrote:

4a8c17d wasn't what I had in mind...
I think the json should look more like:
{
"jailbroken": false,
"name": "This firmware is exploitable",
"version": "",
"ios": {
"start": "11.0",
"end": "11.1.2"
},
"caveats": "This firmware is exploitable, but there is no jailbreak for it. There currently are a few work-in-progress attempts (LiberiOS, topanga, async_awake_fun). Do not install these. They are pretty much useless (tweak injection doesn't really work) and your phone has a high chance of softbricking if you manually install Cydia. If you want to jailbreak, stay on this firmware and wait for an official update from saurik."
}
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

Hm yeah you're right. I'm just being paranoid


The performance of pre-train with ROS on PVRCNN from Waymo->KITTI

I got 19.27 for moderate AP3D with IOU threshold 0.7 on car category on PVRCNN with ROS from Waymo->KITTI, which is worse than the performance of that on PVRCNN without ROS shown in the paper(22.01). Then I trained the PVRCNN without ROS on my machine, and got the best result 25.07 on epoch. I used the original config on cfgs/da-waymo-kitti_models/pvrcnn/ pvrcnn_old_anchor.yaml and cfgs/da-waymo-kitti_models/pvrcnn/ pvrcnn_old_anchor_ros.yaml, did I do something wrong? And did you also get the unstable result on Waymo->KITTI?

Actually, there are some unstable results on Waymo-> KITTI, however, it should be around 1~2%. You can send me an email to request the pertrained model to first to verify correct environment setups by validate the model in your machine.  The performance of PVRCNN with ROS should at least higher than 54% AP3D @0.7 (I don't remeber it for sure).

Thank you! The A100 on my machine only support CUDA11 and pcdet0.5+. So I installed the spconv1.0 manually and setup the pcdet0.5, then copied the cuda operators under the file ops to file ST3D/ops. After that I can start training. But there are some bugs on pre-train and self-train, I fixed them. How could I do to request for the pertrained model?

There are some bugs when runing this code, I found that the ROS is disabled in cfgs/da-waymo-kitti_models/pvrcnn/pvrcnn_old_anchor_ros.yaml in pre-train on Waymo, am I right? Is this the code you used for experiment in ST3D paper?

No, the ROS is not disabled. Please check carefully.
https://github.com/CVMI-Lab/ST3D/blob/812b64491c3a67a1b578fe46c375fcd0ed2c4305/tools/cfgs/da-waymo-kitti_models/pvrcnn/pvrcnn_old_anchor_ros.yaml#L18-L19

@KevinDuBl Just send me an email. I guess your poor performance might be caused by the environment issue, I will come to fix that recently.

No, the ROS is not disabled. Please check carefully.
https://github.com/CVMI-Lab/ST3D/blob/812b64491c3a67a1b578fe46c375fcd0ed2c4305/tools/cfgs/da-waymo-kitti_models/pvrcnn/pvrcnn_old_anchor_ros.yaml#L18-L19

The ROS on the target dataset(KITTI) is not disabled, but ROS on the source dataset(Waymo) is disabled. According to the paper, the pre-train is trained only on the source dataset(Waymo), which don't use the ROS. Is that correct?

No, the ROS is not disabled. Please check carefully.
https://github.com/CVMI-Lab/ST3D/blob/812b64491c3a67a1b578fe46c375fcd0ed2c4305/tools/cfgs/da-waymo-kitti_models/pvrcnn/pvrcnn_old_anchor_ros.yaml#L18-L19

https://github.com/CVMI-Lab/ST3D/blob/812b64491c3a67a1b578fe46c375fcd0ed2c4305/tools/cfgs/da-waymo-kitti_models/pvrcnn/pvrcnn_old_anchor_ros.yaml#L4
The data augment config of source domain is refer to 'cfgs/dataset_configs/da_waymo_dataset.yaml' , but in this file, the ROS is disabled.
https://github.com/CVMI-Lab/ST3D/blob/812b64491c3a67a1b578fe46c375fcd0ed2c4305/tools/cfgs/dataset_configs/da_waymo_dataset.yaml#L21

Those items will be rewirted. You can try by yourself.

You mean what I think is right? Is the ROS disabled in pre-train of this task? I want to confirm this so that I can fix it by myself, thank you！

No. I mean you are wrong. Those lines highlighted by me already replace those terms in the da_waymo_dataset.yaml.

The lines highlighted by you is only the augmentor for the target dataset(KITTI). The ROS is disabled for the source dataset(Waymo) is disabled in disabled in https://github.com/CVMI-Lab/ST3D/blob/812b64491c3a67a1b578fe46c375fcd0ed2c4305/tools/cfgs/dataset_configs/da_waymo_dataset.yaml#L21
And the experiment result also shows this. This is the info of your config:

The car AP3D result of PVRCNN with ROS under your config is a little worse than 22.01.
When I modify the config and enable the ROS on source dataset(Waymo), I got this:

And the result of my config is 0.54.

Oh, sorry I notice that. I place the data augmentation config in error place. Very appreciate for your feedback! I will modify it intermidately.

Thank you very much!

I trained the cfgs/da-waymo-kitti_models/pvrcnn/pvrcnn_old_anchor_sn.yaml and got the AP3D 58%, which is lower than the 76.86% in the paper. Could you please give me the SN 'SIZE_RES' you used in your experiment?

Notice that you just train SN, rather than ST3D (w/ SN). Please see GETTING_START carefully to finish the training.

Excuse me, what does the config 'SHIFT_COOR' mean? How to choose the proper 'SHIFT_COOR'?

I have explained this keyword in previous issues. I guess that could help you. I would close this issue since the major problem have been solved. Thank you for your feedback, and feel free to re-open.


Expose QuotingStyle to Python

Describe the enhancement requested
The WriteOptions for Python currently do not expose the QuotingStyle option. If you know your data does not contain any quotes it would be helpful to be able to set "none" and reduce the file size.
Component(s)
Python

Issue resolved by pull request 14722
https://github.com/apache/arrow/pull/14722


[blocker] Excel-D does not work with two table in some cases.

Atila, please open the file I sent before.
=M2DTest4(swapUS_table, ANY_EMPTY_TABLE)
Any[][] M2DTest4(Any[][] a, Any[][] b) nothrow {
    return a;
}

64 bit excel, recent dmd,.
Two arguments is matter.
swapUS_table is matter.

I can reproduce this by assigning =M2DTest4(c1:e2, c4:e5) to a six cell matrix, having c1:e2 be 1, 2, 3, 4, 5, 6, and c4:e6 empty. Then I change 2 to foo and Excel crashes.


Set additional config through a variable

Closes https://github.com/DavidWittman/ansible-redis/issues/242, Closes https://github.com/DavidWittman/ansible-redis/issues/105
Adds the ability to add more configuration options to redis.
This will allow users to add their own config without the role having to manually specify new ones all the time.
Signed-off-by: Calvin Bui<EMAIL_ADDRESS>

Thanks @calvinbui!


[WIP] Checkout Page Logic

What does this PR do?
This PR includes the logic for the checkout page; styles are being handled on #17.
1: Ticket creation/deletion
We start the checkout with a single ticket and allow to add up to 4 tickets using the "Quiero Otra" button. You can also remove existing tickets using the "Eliminar" button, unless you have only one ticket left.
Trying to add a ticket will trigger the form validation and will prevent the action if the current ticket is invalid.
2: Ticket validation
All three fields of the ticket are required. The validation errors are not showed live but are triggered when trying to add a ticket or (eventually) when you want to go to the next step of the checkout.
The custom validation error handles up to two invalid fields, after that it shows a generic message.
3: Valid Ticket "success" message
Whenever you fill a ticket with valid info, a "success" message is shown to indicate the user the possible actions they can take.
How should it be tested manually?
Go to /checkout and try adding, completing and removing tickets.

@asermax  I already made changes on #16 so we can continue from there and handle the checkout here.


Missing commits in PR view

This PR appears to have no commits: https://github.com/fkling/astexplorer/issues/362
It looks like the single commit in the PR doesn’t have a GitHub user associated with it, which might be the problem.

Bug Report Dump (Auto-generated)

Version 1.25.0<PHONE_NUMBER>)
Device: iPhone 8 (iOS 12.1)
TestFlight: false

This could be a stretch but if you look at https://github.com/GitHawkApp/GitHawk/issues/1843 you can see that Ryan removed feature-request before ever adding it. Maybe we are losing some events?
Sent with GitHawk

I think that particular case is a bug on GitHub’s side since it also shows up on the website.

Oh ya that’s true 😀 nm then.
Sent with GitHawk

Closing this in favor of #2677 as that has some more information now


Create an S3 bucket for ad-hoc app builds

Coming from https://expensify.slack.com/archives/C04878MDF34/p1668609733417379
Problem
We are exploring solutions to make testing PRs on all platforms easier and faster via a CI workflow that does ad-hoc builds for all PRs. We need a place to store these ad-hoc builds – using the App stores and/or TestFlight presents a lot of hurdles, limitations, and slows things down.
Solution
Create an S3 bucket to store ad-hoc app builds. After this issue is completed, we should have three S3 buckets related to app deploys:

Production bucket (already in use to host production web and desktop apps)
Staging bucket (already in use to host staging web and desktop apps)
Ad-hoc bucket (new)

Let's call it s3://ad-hoc-expensify-cash/ ?

Lol,  RIP Expensify.cash

Agree, but we can stay consistent 🤠

OK, I've created the new bucket, however I'm not sure what we do for access permissions? How does this work?
I've compared the new bucket to staging-expensify-cash and it appears the same. Is this enough?

Yes, same permissions should be OK!

OK, I'll close this off then. If there is any further action, please feel free to re-open :)

@nathanmetcalf - The key isn't working: https://expensify.slack.com/archives/C094TGUTZ/p1669938449985649
Can we double check the config? Thank you!

Updated the existing policy to include the new bucket, can you test again?


Tweet feature

was on the wrong repo, trying to clean up from another branch, new PR coming shortly.


Remove accidentally added file

This PR just deletes an extraneous yarn.lock file. Just need a verification that it actually is extraneous.
Pull reviewers stats
Stats for the last 30 days:

User
Total reviews
Time to review
Total comments

carlosfelix2
18
2h 17m
49

MauriceReeves-usds
15
1h 1m
8

cwinters-usds
14
5d 7h 58m
9

jimduff-usds
13
9h 20m
16

TomNUSDS
11
2h 33m
42

jbiskie
11
1h 18m
0

kevinhaube
10
56m
5

brick-green-agile6
10
2h 8m
6

clediggins-usds
10
2h 29m
3

TurkeyFried
9
2h
3

ahay-agile6
8
49m
0

sethdarragile6
7
54m
2

oslynn
5
20m
0

whytheplatypus
4
55m
7

bgantick
4
2h 27m
3

snesm
4
16h 35m
2

jh765
4
2h 53m
10

JosiahSiegel
3
24m
0

RickHawesUSDS
3
3d 8h 47m
2

rhood23699
3
15m
0

jorg3lopez
2
23m
0

jeremy-page
2
9h 12m
0

acoushawk
1
1h 10m
0

meckila
1
3h 35m
2

While it is auto-generated form package.json, I think yarn.lock is used by dependabot to scan for vulns and should be under source control.
But, this may be an interesting idea to regenerate the lock file and verify it against the checked-in lock file.

Also, there is a command yarn check --integrity

Verifies that versions and hashed values of the package contents in the project's package. json match those in yarn's lock file. This helps to verify that the package dependencies have not been altered.

@TomNUSDS I figured this file wasn't needed because it was only added a month ago and seemed to be part of an unrelated commit. Could be wrong of course :-)

Oh, maybe I'm confused?

frontend-react/yarn.lock should exist
yarn.lock at the root should not.


Add optimized codepath to ZEN

Please add ZEN to the following  to the optimzed code path of the routines:

dasum.c
drot.c
sasum.c
srot.c

right - I have this in a local fork but forgot to create a PR, will do so tomorrow. Also need to look into refining the cpu detection to allow passing -march=znver2 (or znver3) to gcc.

Just checked that adding -march=znver... does not appear to make a significant difference overall.