Running dotnet-cli commands does not set SolutionDir properties

I have one repository for my common .NET libraries that I use in multiple other projects. Other project repository include this common repository by using git submodules.
This leads to the following directory hierarchy:
MyProject\
  MyProject.sln
  Directory.Build.props
  src\MyProject\
    MyProject.csproj
  common\
    Common.sln
    Directory.Build.props
    src\Common\
      Common.csproj

MyProject.sln contains Project nodes for both MyProject.csproj and Common.csproj, while Common.sln naturally only contains a project node for Common.csproj
Contents of MyProject.csproj:
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <ItemGroup>
    <ProjectReference Include="..\..\common\src\Common\Common.csproj" />
  </ItemGroup>
</Project>

I also like having my bin and obj folders in the Solution directory so both Directory.Build.props files define the BaseOutputPath and BaseIntermediateOutputPath properties like this:
<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup Label="BasePath">
    <BaseOutputPath>$([MSBuild]::ValueOrDefault(`$(SolutionDir)`, `$(MSBuildThisFileDirectory)`))bin\</BaseOutputPath>
    <BaseIntermediateOutputPath>$([MSBuild]::ValueOrDefault(`$(SolutionDir)`, `$(MSBuildThisFileDirectory)`))obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
  </PropertyGroup>
</Project>

When I open either solution in Visual Studio, restoring, building, debugging and running works perfectly fine with all intermediaries and binaries ending up where I expect them to be: in the bin and obj folders next to the Solution file I opened.
However, when I run dotnet restore MyProject.sln I can see that MSBuild restores both project, but places the intermediaries for Common.csproj into MyProject\common\obj and not into MyProject\obj as I'd expect.
Even worse, when I run dotnet build MyProject.sln, MSBuild rightfully complains that it cannot find the Assets file MyProject\obj\Common\project.assets.json as this file ended up in MyProject\common\obj\Common\project.assets.json when I ran dotnet restore MyProject.sln.
At a first glance, it seems like dotnet restore does not use the SolutionDir property which causes the paths in the BasePath property group in Directory.Build.props to use $(MSBuildThisFileDirectory) instead. This would actually be fine, but when running dotnet build it seems like the SolutionDir property actually IS set correctly.
I would expect the SolutionDir property ALWAYS being set when MSBuild interprets a solution file. In this case this is actually quite important, since there are multiple solution files in this directory structure.

.NET Core Information:
> dotnet --info
.NET Command Line Tools (2.0.0-preview2-006497)

Product Information:
 Version:            2.0.0-preview2-006497
 Commit SHA-1 hash:  06a2093335

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.15063
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.0.0-preview2-006497\

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.0-preview2-25407-01
  Build    : 40c565230930ead58a50719c0ec799df77bddee9

MSBuild version:
> dotnet msbuild /version
Microsoft (R) Build Engine version 15.3.388.41745 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

15.3.388.41745

I'm hitting the same issue. Did you find any workaround for this?

@cocowalla As far as I understand $(SolutionDir) is more a Visual Studio things... So for MSBuild you should use a Directory.Build.props file next to your solution file and use $(MSBuildThisFileDirectory).
So if you want you could do this:
<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup Label="BasePath">
    <SolutionDir Condition="'$(SolutionDir)'==''">$(MSBuildThisFileDirectory)</SolutionDir>
  </PropertyGroup>
</Project>

Ah, you're right: Defined only when building a solution in the IDE
I've worked around this by simply switching to $(ProjectDir) and moving up a dir with an extra ..\, e.g. $(ProjectDir)..\

Well that would work og course, ny approach will work in any situation regardless og the number of levels between Solution and Project. And ProjectDir is theoretically only a little brother to SolutionDir meaning it's dependent on the tooling and may in theory be redefined or not be defined at all.
All these MSBuild properties are actual built-ins, you cannot change, redefine or overwrite them.


Main

Closes
Closes #716
Description
CSS improved and AOS added

please consider it for gssoc

Can u pls add required screenshots @ShishuSidharth

[]border and shadow improved
[]footer text now not sticking to left edge and images are perfectly centered


⚠ Bofrost.de has degraded performance

In f0d37da, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1303 ms

Resolved: Bofrost.de performance has improved in 5f2285f after 22 minutes.


Expand scalar quantization with adding half-byte (int4) quantization

This PR is a culmination of some various streams of work:

Confidence interval optimizations, unlocked even smaller quantization bytes.
The ability to quantize down smaller than just int8 or int7
Adding an optimized int4 (halfbyte) vector API comparison for dot-product.

The idea of further scalar quantization gives users the choice between:

Further quantizing to gain space through compressing the bits into single byte values
Or allowing quantization to give guarantees around maximal values that afford faster vector operations.

I didn't add more panama vector APIs as I think trying to micro-optimize int4 for anything other than dot-product was a fools errand. Additionally, I only focused on ARM. I experimented with trying to get better performance on other architectures, but didn't get very far, so I fall back to dotProduct.

@benwtrent to me it makes sense to have quantization bits configurable in this case.

I did a bunch of local benchmarking on this. I am adding a parameter to allow optional compression as the numbers without compressing are compelling enough on ARM to justify it IMO.
To achieve similar recall, int4 without compression is about 30% faster. With compression its about 30% slower, but with 50% of the memory requirements.
Here are some latency vs. recall for int7, and int4 with this change.
plt.plot([1.49, 1.53, 1.54, 1.83, 2.09], [0.952, 0.962, 0.965, 0.974, 0.981], marker='o', label='int7')
plt.plot([1.72, 1.75, 1.79, 2.04, 2.48], [0.897, 0.915, 0.929, 0.971, 0.980 ], marker='o', label='int4_compressed')
plt.plot([1.08, 1.12, 1.12, 1.34, 1.50], [0.897, 0.915, 0.929, 0.971, 0.980 ], marker='o', label='int4')

int4 with compression gives 2x space improvement over int7, but it comes at an obvious cost as we have to (un)pack bytes during dot-products.
Here are the numbers around index building as well. I committed ever 1MB to ensure merging occurred and that force-merging was adequately exercised.
Int4 no compression:
Indexed 500000 documents in 312090ms
Force merge done in: 76169 ms

Int4 compression:
Indexed 500000 documents in 326978ms
Force merge done in: 124961 ms

Int7:
Indexed 500000 documents in 344584ms
Force merge done in: 98311 ms

I tend to agree on being opinionated on a set of allowed configurations for what concerns the number of bits (4 and 7).
Given the speed-space trade-off for packing, I think it's useful to leave that as an option.

@benwtrent I tried to fix the compilation on luceneutil at https://github.com/mikemccand/luceneutil/commit/027146b05c755c303cac5d95451cc458ed397c51. I could use your help to check if this is the right fix.

@jpountz I can add the parameters today and fix the compilation. I think your change is the correct one.


Virgo HDF5 file format

Summary
Updates the data loading and synthetic data generation to use the HDF5 file format instead of pickle files. This makes the code both shorter and easier to work with. In particular, we are no longer limited to storing exactly 500 rows per file, but can rather choose a chunk size that suits us after the data has been created. Additionally, due to the functionality of the HDF5 format, all the data is stored in a single file without any issues with loading too much data into memory during runtime.
Related issue :
None

Looks good I think!


miss config files

Besides the training script, is there also a missing Python file named yolov3_config_voc_ia_yolo

Sincerely expect a train.py!!!

权重链接已经打不开了？


Ready To merge section

That's a very nice addition, but you should count only approved reviewers (listed in https://github.com/conan-io/conan-center-index/issues/2857#issue-695900291), otherwise prs like https://github.com/conan-io/conan-center-index/pull/4079  are marked as ready to merge, whereas they are still missing some reviews.
EDIT: also, could you add a column giving the status of the PR (success./failure/pending) ?

Thank for for the issue ❤ I saw it last night but I didn't see an obvious solution
I was thinking a JSON list which would be easy. Any Ideas?

Thank for for the issue ❤ I saw it last night but I didn't see an obvious solution
I was thinking a JSON list which would be easy. Any Ideas?

Hmmm there have been a few failures post code review changes, it's worth noting 🤔
Out of curiosity how does it impact your decision to review?

I won't take a look to any PR which already has sufficient reviews (except cases were I have a direct interest in the package). It saves both my time, and also useless notifications to everybody else. I have the same reasoning for PR with a failed status

I won't take a look to any PR which already has sufficient reviews (except cases were I have a direct interest in the package). It saves both my time, and also useless notifications to everybody else. I have the same reasoning for PR with a failed status

I find the stability unreliable, if there's a fail there's usually a label and I filter on that... however the case were CI is stuck might be interesting

I find the stability unreliable, if there's a fail there's usually a label and I filter on that... however the case were CI is stuck might be interesting

Ok, I did not know you filtered on labels. The only missing case is if the contributor did not request access on https://github.com/conan-io/conan-center-index/issues/4  (which makes https://github.com/conan-io/conan-center-index/pull/3724 ready to be merged)

Ok, I did not know you filtered on labels. The only missing case is if the contributor did not request access on https://github.com/conan-io/conan-center-index/issues/4  (which makes https://github.com/conan-io/conan-center-index/pull/3724 ready to be merged)

No the "No beta" label was removed... its the CI that's failed and no one has restarted hence https://github.com/prince-chrismc/conan-center-index-pending-review/issues/6#issuecomment-759455677 above

No the "No beta" label was removed... its the CI that's failed and no one has restarted hence https://github.com/prince-chrismc/conan-center-index-pending-review/issues/6#issuecomment-759455677 above

https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#statuses
Supposedly support by underlying library

https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#statuses
Supposedly support by underlying library

Found it!
https://api.github.com/repos/conan-io/conan-center-index/statuses/15ccdabe9b96b52ab42e419eb9e2ce62c6c3bf62?per_page=1

Found it!
https://api.github.com/repos/conan-io/conan-center-index/statuses/15ccdabe9b96b52ab42e419eb9e2ce62c6c3bf62?per_page=1

Yay or nay?

Yay or nay?

thank you, it's perfect !

thank you, it's perfect !


Can no longer list multiple specific recipes on chef-client command line

Description
This used to be valid:
chef-client -z vagrant_setup.rb deploy.rb

but now leads to an error:
ERROR: Cookbook @recipe_files not found. If you're loading @recipe_files from another cookbook, make sure you configure the dependency in your metadata

Chef Version
Chef: 12.9.41
Platform Version
Ubuntu 14.04
Replication Case
Two recipes, first of which causes compat_resource gem to be loaded, e.g. chef provisioning recipes such as:
recipe1:
with_driver 'vagrant'

with_machine_options :vagrant_options => {
  'vm.box' => 'ubuntu64'
}

recipe2:
machine 'appserver'

chef-client -z recipe1.rb recipe2.rb

Client Output
ERROR: Cookbook @recipe_files not found. If you're loading @recipe_files from another cookbook, make sure you configure the dependency in your metadata

Stacktrace
Generated at 2016-06-06 08:55:12 -0500
Chef::Exceptions::CookbookNotFound: Cookbook @recipe_files not found. If you're loading @recipe_files from another cookbook, make sure you configure the dependency in your metadata
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.9.41/lib/chef/cookbook/cookbook_collection.rb:39:in `block in initialize'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ohai-8.14.0/lib/ohai/mash.rb:77:in `yield'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ohai-8.14.0/lib/ohai/mash.rb:77:in `default'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ohai-8.14.0/lib/ohai/mash.rb:77:in `default'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/compat_resource-12.9.1/files/lib/chef_compat/monkeypatches/chef/recipe.rb:12:in `[]'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/compat_resource-12.9.1/files/lib/chef_compat/monkeypatches/chef/recipe.rb:12:in `new'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.9.41/lib/chef/run_context.rb:373:in `load_recipe_file'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.9.41/lib/chef/policy_builder/expand_node_object.rb:100:in `block in setup_run_context'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.9.41/lib/chef/policy_builder/expand_node_object.rb:99:in `each'
<snip>

The failure appears to be in the recipe monkeypatch on loading the second recipe, when evaluating
run_context.cookbook_collection[cookbook_name]. This raises an error because '@recipe_files' (which is used as the cookbook name when loading the first recipe) is not a valid cookbook. One possible fix would be to check for Chef::Config[:specific_recipes] in the monkeypatch.

Please let me know if I should raise on compat_resource instead. It's sort of a chef-client problem in that load_recipe_file is setting an invalid cookbook name in the run_context, but it works ok as long as the compat_resource monkeypatch  isnt there.

ping @jkeiser , but yes, agree this looks like a bug in compat_resource more than chef.

@christinedraper yeah, compat_resource is the right place for the issue. Thanks!


[ArrayTableView] background and text colors

This PR adds a method to set the background and foreground colors of each cell by passing an array of RGB colors.
Closes #382

WIP: #460


Fix mistake in Array.xml

invert() doesn't return a reference, it changes the array directly.

Duplicate of #21807 except that one doesn't add the missing "the".

I'll also change the 'now' for 'then'

so the first element will then be the last

@malbach Actually, I would remove the entire sentence inside the parenthesis. "Reverse the order of the elements" is clear enough.


Click on leaflet-popup-tip-container

What's the preferred way to catch a click on popup's "leaflet-popup-tip-container"?
My goal is to  just close the popup and stop event propagation on map,  or just  handle the event as if the click were in "leaflet-popup-content-wrapper" (i.e. in general, do nothing).
Any suggestion is appreciated, thanks!

Hi, great to hear that you use Leaflet!
However, this issue tracker is used for reporting bugs and discussing new features. For questions on using Leaflet, please use gis.stackexchange.com or stackoverflow.

you're right, let me open what I belive is a bug related to this


How to use the miner？

Dude the miner looks great, if you can I hope you record a video about how to set up your miner, a lot of people who are new to miners won't use him but this project is really great.

Well, reading the wiki and testing things are usually the best ways to learn, since the settings and what you input really depends on your pool and what you want to do with the miner.


Remove unwanted line breaks in code

@kenjinote : Thanks for your contribution! The author(s) have been notified to review your proposed change.


There are some ES6 syntaxes in the "dist/dom7.module.js" file, such as const or let.

This causes my script execution to halt in IE 11.
https://github.com/nolimits4web/dom7/blob/28b0db30d77fa765ccae9497a2f0e3dfbc2cf55f/dist/dom7.module.js#L16

@BiosSun  I also encountered this problem, I reported an error in compression

agree, this is painful for me. was quite complicated to track down why my Gatsby site is not running on IE11/Edge, due to using "swiper", which depends on this lib

I have the same issue in my project, is there a quick solution about that?


Expose checkbox in extension dialog API

Testing #145525

Don't show again should be a checkbox instead of button. It is not an action. Sync or Do not Sync are actions. I would choose one action and check Don't show again option.

This would be a nice bit of UI for any of the "don't show again" buttons.  For example, the file extensions pop-up that offers to help find marketplace extensions:

It has an easily clickable button for "Don't Show Again".  Unfortunately, (based on a search that lead me here) there doesn't seem to be a way to undo that preference if you accidentally click the button rather than the other one.  "Don't Show Again" is a setting (workspace or user) so I agree with @sandy081 that it probably shouldn't be fronted by a button, which implies something else. And in any case, one ought to be able to easily change a setting through the UI.

@sandy081 Do extensions have the ability to contribute checkboxes in modal dialogs?

I think that is not possible today because the API is pretty much shared between notifications and dialogs.

Today we have the stable:
https://github.com/microsoft/vscode/blob/115327e908493463b5dabfb3b302cced59651a9a/src/vscode-dts/vscode.d.ts#L1964-L1976
and proposed:
https://github.com/microsoft/vscode/blob/ab1a31add4608f484d555e3c791f03321a4dda5f/src/vscode-dts/vscode.proposed.resolvers.d.ts#L10-L15
My first suggestion is that we update the modal property from a boolean to a ModalOptions bag which can take checkbox information and possibly the custom property.

Oh I see detail is for modals only as well. That's fairly suspicious that all of the MessageOptions properties apply to dialogs only


Pre-GA SDK for Azure LoadTesting

Description
pre-ga SDK release for Azure LoadTesting
Checklist

[x] Started PR
[x] Completed Directives
[x] Completed Generations
[x] Custom Changes Done (including LRO Changes)
[x] API View Done
[x] Documentations Updated
[x] Samples Updated
[x] Changelog Updated
[x] Swagger Link Changed to main Repo
[x] Added Tests and Make Necessary Updates
[x] Pipelines Fixed

API change check
API changes are not detected in this pull request.

API View at: https://apiview.dev/Assemblies/Review/fc0755250d5e4c59b4b0a9e4d20dee53

@NiveditJain I notice that you rename many operation.

@NiveditJain I notice that you rename many operation. Could you run live test and commit your recording files?

@msyyc I have added tests!

Hi @NiveditJain The PR overall looks good. I notice that there is empty file _polling.py which I think shall be removed.

Hi @NiveditJain The PR overall looks good. I notice that there is empty file _polling.py which I think shall be removed.

Hi @msyyc I have removed the file, can you please mark this PR as approved if there are no other comments?


How to understand the EOS Token and Other tokens issued on it?

As my understand, dawn 3.0 will issue EOS Token by smart contract, so what different with other tokens issued on it too ?

close, I think EOS Token just init when startup public net.


update freshness date.

Hi @rboucher, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


Update Item in Shopcart

As a customer,
I need to be able to update a product in my shopcart by specifying the product ID, quantity, and product description,
So that I can update the product(s) type, quantity, type etc. I wish to update the products from the cart itself.
Assumptions:
The customer has an active shopcart associated with their customer ID.
The product ID, description, and quantity are valid inputs.
API: PUT    /shopcarts/{id}/items/{id}  <- Update an item in a shopcart
Acceptance Criteria
Given that a customer has an active shopcart,
When they update a product with a valid product ID, description, and quantity,
Then the product is updated in the shopcart, and the shopcart reflects the new product type, quantity etc.

Given that a product is already in the cart,
When the customer adds the same product,
Then the quantity of the product is updated in the shopcart.

Added corresponding API for clarity


Add ReaderWriterState Monad Transformer

A Monad Transformer that has properties of Reader, Writer and State Monads (see https://github.com/scalaz/scalaz/blob/series/7.3.x/core/src/main/scala/scalaz/ReaderWriterStateT.scala)

Released in 2.0.0-MI4


Adds documentation for using a Squid proxy with Matchbox.

This PR closes https://github.com/coreos/matchbox/issues/297

I think I'll need to go back through and test this in greater depth, perhaps later today or tomorrow.
Briefly:
Your instructions are very clear and explain the setup very well.
I'm running Squid with a manual command (basically copied and pasted from your service definition, but with the path to squid.conf updated appropriately) on a clean + docker + docker-compose installation of Debian Jessie in a pretty simple VM running on ESXi 6.5.  The iptables rules were applied.  My DHCP is provided by pfSense, and my group definition was updated and the client boots and is pointed to the correct URL.  It times out, though, on retrieving the kernel.
The issue seems to be with the Squid configuration -- it doesn't seem to be actively listening or opening the port.  Telnetting to either :80 or :3128 from the local machine fails.  I see a repeated error when running the container in the foreground:
2017/03/09 23:04:28| ERROR: No forward-proxy ports configured.
This is probably PEBKAC on my part, but I wanted to mention it before doing more in-depth (and careful!) testing tomorrow, just in case it rang any bells.  I'm not very knowledgeable about Squid, so if this points clearly to an obvious issue, that's why I'm missing it.  I might just need to add a port or something to the config.
I also have CentOS and CoreOS VMs handy, and I can whip anything else up pretty easily if you have any suggestions.

@ndouglas make sure you have this line in your squid.conf file:
http_port 3128 intercept
In my example, I am using the --net=host flag so the squid container uses the host's netns. I can netstat the port and see it used by the squid container:
$ sudo netstat -tulpn | grep 3128 tcp        0      0 <IP_ADDRESS>:3128            <IP_ADDRESS>:*               LISTEN      6482/squid3
Verify your firewalld/iptables settings. My setup uses firewalld:
$ sudo firewall-cmd --get-active-zones
internal
  interfaces: enp14s0
public
  interfaces: enp15s0

$ sudo firewall-cmd --zone=internal --list-all
internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp14s0
  sources:
  services: dhcp dhcpv6-client dns ipp-client mdns samba-client ssh tftp
  ports: 3128/tcp 4080/tcp 8888/tcp 67/udp 53/udp 3129/tcp 8080-8082/tcp
  protocols:
  masquerade: no
  forward-ports: port=80:proto=tcp:toport=3128:toaddr=<IP_ADDRESS>
	port=80:proto=tcp:toport=3128:toaddr=<IP_ADDRESS>
  sourceports:
  icmp-blocks:
  rich rules:

Although I opened 3129 in the example above, I am only using TCP port 3128 for squid. You may also want to try running standard squid proxy on port 3128 and transparent proxy on 3129. Here is the squid.conf settings:
http_port 3128
http_port 3129 transparent

Good luck and let me know how it goes.

Thanks! Looks great, I'll try to find some time to vet this and use it for real and add onto it if that's alright.
I'd like a usage section to show rkt and docker one-liners and to fold the configs and systemd units into a contrib directory and expand on how networked nodes or individual nodes are configured to use the proxy. Also, these docs now get published to coreos.com so I'll figure out where they fit in.

Sounds good. I'll try to do another round of vetting myself.

I haven't had the time I had hoped. Let's merge these as drafts in contrib/squid (see #510) so we can use #511 to track iterative improvements toward being sync'd to the docs site.


New version: AdoptOpenJDK.OpenJDK.16 version jdk-16.0.1+9_openj9-0.26.0

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/113534&drop=dogfoodAlpha

Close with reason: Duplicate version;


Split RuptureBuilder script(s) from Inversion script

We want to run Inversions from previously built ruptures sets, rather than building these each and every time an inversion is run.
NB this is probably already in UCERF3 code, so let's use that if we can for the inversion stage.
Done criteria

[ ] decide whether to use Kevins scratch.UCERF3.inversion.CommandLineInversionRunner in opensha-ucerf3 or not
[ ] provide a py4j gateway wrapper for python clients

@voj I'll write a python script that uses the gateway for inversions and fits into the other cluster automation stuff

We decided against using scratch.UCERF3.inversion.CommandLineInversionRunner as this would require a refactor of that class.

@voj I'll wait on the pull request for the py4j gateway implementation.

now we have py4j too :)


Timer per request

Is it problematic if each http request has its own timer ?
Like this ?
$http_worker->onMessage = function ($connection, $request)
.
.
.
$connection->timerid = Timer::add(1, function () use($connection,$http_worker,$key,$post1)
{
$interval = time() - $http_worker->arrclient[$key]["timeout"];
if ($http_worker->arrclient[$key]["status"] == 3) {
Timer::del($connection->timerid);
$http_worker->arrclient[$key]["status"] = 1;
echo "Get Response From Converter\n";
$connection->send(json_encode($post1));
.
.
.

Creating timers constantly and not deleting it can cause memory leaks.
From the code point of view, $connection->timerid will be covered, resulting in timer can not be deleted correctly.
Each request for a timer will make it difficult for you to delete them correctly. It is recommended to use a global timer to handle these timer tasks.


Add "democratic communication" article

Hi @unyt-org/admin,
this article includes some non-technical information about how we are planning to introduce the "democratic internet". A bunch of content was recycled and originates from our loved Kickstarter campaign.
Do you think we need to add more technical details?
Check out this article here!

Nice article 👍


Stripe js has a memory leak

Describe the Issue
After using the learn platform for a while, the heap size used by stripe starts growing.
Here are the contexts from chrome browser's memory tab related to the leak:
js-stripe.com:m-outer-***
js-stripe.com:controller-***
js-stripe.com:payment-request-inner-google-pay-***
pay.google.com:payframe
Here is how we are using stripe in the client
@stripe/react-stripe-js: 1.16.5: used for card element and payment button (payment-wallets)
@stripe/stripe-js 1.54.2: used to loadStripe in multiple components and used to redirectToCheckout for the update-stripe-card page.
The redirectToCheckout has been newly introduced that might be causing this issue.
Affected Page
https://www.freecodecamp.org/
Screenshots

System
chrome on mac
Additional context
Here is a link to a related forum topic for additional context: https://forum.freecodecamp.org/t/stripe-memory-leak-slower-and-slower-fcc-page/660102

When does the memory leak? Any specific steps that need to be followed?
@ahmaxed


chore: drop the final refs to ceresdb

cc @chunshao90

We can then make a release for client-go if desired.


Tab Expansion Deletes Line in Atom

I'm using Atom 1.11.2 and just downloaded Emmet 2.4.3.  Currently on macOS Sierra 10.12.1
When I try to expand something like ".className", the line just gets deleted. I have no custom key bindings or other community packages installed.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Same problem here.
Emmet 2.4.3
Atom 1.17.2
Ubuntu 16.04.2

Same problem and this solution doesn't fix it.
ctrl-e does not work, either.
Emmet 2.4.3
Atom 1.22.0
MacOS High Sierra 10.13

Someone else figured out that this is caused by disabling the core snippets package. Enabling that again fixed this issue for me.

Thanks jrdnbwnn. It solved my problem in html-atucompletion. But there's one left. In css-autocompletion, tab doesn't work.


ci: remove Travis CI workflow

Issue

The CI workflow defined by .travis.yml is outdated and unused.
The README badge  links to https://travis-ci.org/indexzero/ps-tree which displays the message "This repository may not exist or you may need to Sign in". The badge itself displays an "unknown" status.
CI checks on Linux and osx (now macOS) are now carried out with the GitHub Actions workflow ci-test.yml

Change

Remove the .travis.yml workflow.
Replace the build: status badge in the README file using a badge linked to the functioning GitHub Actions workflow https://github.com/indexzero/ps-tree/actions/workflows/ci-test.yml

Reference
Adding a workflow status badge
Follow-on action

Check if there is a need to delete any remaining information or account data from https://app.travis-ci.com/indexzero/ps-tree

Preview
https://github.com/MikeMcC399/ps-tree/blob/remove/ci-travis/README.md

@MikeMcC399

Thanks for removing the .travis.yml file

You are welcome!

as their service no longer supports older versions of Node.js ✅

I believe that Travis CI was failing because there was no longer an active subscription to the service. AFAIK they support all available versions of Node.js, which includes older ones.

@MikeMcC399 since Travis CI was sold to Private Equity
https://techcrunch.com/2019/01/23/idera-acquires-travis-ci/ 🤦♂
they have gone downhill and broken the builds of many Open Source projects ... 💔
We had to remove from many repos: https://github.com/dwyl/learn-travis/issues/67 😢
PE has to make their profits/bonuses so they cut the "freeloaders" (that helped build the service...!) ✂
So now GitHub Actions CI is all we use. ✅
Again, thanks for helping to spring-clean / update this project. 👌

@nelsonic
Thanks for the background on Travis CI! Now I know why they don't get used in Open Source repos anymore.


Problem with ee edit & sensible-editor

I have problems with some terminal console (actually on manjaro/arch) I don't know if it comes from the system which doesn't recognize this alias (sensible-editor), anycase better to avoid such possible problem don't you have any?
Ps: I know easyengine is for debian based but it happen to me when connecting via ssh, we should be able to edit file from any system!
Must be verified... (maybe a just misconfiguration from my system?)

@Mermouy is your problem solved? If it persists with EE 3.x, please let us know.


Update dyno notebook

Description
Update dynophore notebooks (docs and template in library).
Todos

[x] Add introduction text (what are dynophores and how to work with them)
[x] Add description to each section, especially comment on all options for 3D view
[x] Update 3D view method arguments (select_cloud_range to frame_range)

Questions
None.
Status

[x] Ready to go

Codecov Report

Merging #39 (8706b1a) into master (47d62b2) will not change coverage.
The diff coverage is 100.00%.


vite seems not support useDefineForClassFields of tpyescript

Describe the bug
useDefineForClassFields is set to true,but error ocurred when use declare modifier
Reproduction
none
Steps to reproduce
class TreeContentMenuCommon {
tree: CustomTree;
constructor(tree: CustomTree) {
this.tree = tree;
}
class TreeContentMenuSessionGroup extends TreeContentMenuCommon {
declare tree: CustomSessionTree;
constructor(tree: CustomSessionTree) {
super(tree);
}
}
System Info
[plugin:vite:vue-jsx] unknown file: The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transform-typescript or @babel/preset-typescript is enabled.
78 |
79 | class TreeContentMenuSessionGroup extends TreeContentMenuGroup {

80 | declare tree: CustomSessionTree;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
81 |
82 | constructor(tree: CustomSessionTree) {
83 | super(tree);

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

my ts config
{   "compilerOptions": {     "baseUrl": "./",     "paths": {       "@/*": [         "src/*"       ]     },     "allowJs": true,     "target": "ES2022",     "useDefineForClassFields": true,     "module": "ESNext",     "lib": [       "ES2022",       "DOM",       "DOM.Iterable"     ],     "skipLibCheck": true,     /* Bundler mode */     "moduleResolution": "bundler",     "allowImportingTsExtensions": true,     "resolveJsonModule": true,     "isolatedModules": true,     "noEmit": true,     "jsx": "preserve",     /* Linting */     "strict": true,     "noUnusedLocals": true,     "noUnusedParameters": true,     "noFallthroughCasesInSwitch": true,     "types": [       "node"     ],     "typeRoots": [       "./src/types"     ],     "esModuleInterop": true,     "experimentalDecorators": true   },   "include": [     "src/**/*.ts",     "src/**/*.d.ts",     "src/**/*.tsx",     "src/**/*.vue"   ],   "references": [     {       "path": "./tsconfig.node.json"     }   ] }


Add option to run tests on 1 randomly-chosen device from the list.

Due to hiccups in FTL availability, sometimes you may want to distribute your test runs onto different FTL device types.
This option allows you to pass in a list of test_devices, but rather than running the test on all devices in the list, you can run the tests on one randomly-chosen device from the list instead.

LGTM.
@jonsimantov please note that we are using a GHA tag branch in firebase-cpp-sdk workflow.

LGTM. @jonsimantov please note that we are using a GHA tag branch in firebase-cpp-sdk workflow.

I'll test this in firebase-cpp-sdk first, and then if it works I'll merge it. Can we create a new release tag for v1.3 once this is merged?

LGTM. @jonsimantov please note that we are using a GHA tag branch in firebase-cpp-sdk workflow.

I'll test this in firebase-cpp-sdk first, and then if it works I'll merge it. Can we create a new release tag for v1.3 once this is merged?

Sure.


feat: minor improvements to the new docstring blocks

[x] Makes the docstrings headers similar to how Documenter.jl renders them (without the # and makes the name clickable for link)
[x] adds support for CollapsedDocStrings meta. fixes #180

Seems to be working: https://luxdl.github.io/DocumenterVitepress.jl/previews/PR181/api. I collapsed the docs just as a demo.
The reason for change 1 is mostly because https://lux.csail.mit.edu/dev/api/Lux/utilities#Lux.Training.apply_gradients! looks visually strange with > # ..... and the clickable area was too small

Created https://luxdl.github.io/DocumenterVitepress.jl/previews/PR181/internal_api as a demonstration and left the default for https://luxdl.github.io/DocumenterVitepress.jl/previews/PR181/api

This looks good to me!  I still don't like that the font size is smaller than the main body, though - it's hard to read.


Add an upload binaries step to publishing Rust projects

What
Add an upload binaries step to publishing Rust projects.
Why
So that projects that have binaries can be stored in the GitHub release and used for installs instead of needing to install from source.
The main reason to add this is so that we can install soroban-cli into places that are inconvenient to do a build from source. For example, when installing soroban-cli into a repl.it, the build consumes so much disk space that it often fails to install.
I've added this process to the existing publish action because I think it will be beneficial if we lead into using this same process for any Rust project that has binaries. There might be some growing pains with that, if for example we have tools we only want to release on specific architectures, etc. I think we can tackle those problems when they arise rather than try to presolve for them.

It's getting a bit fiddly doing this in a shared workflow. I'm going to implement this just in the soroban-cli repo, and then at a later point once it seems stable and proven think about how to move that here.


"svelte-tiny-linked-charts doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module"

I get this message when trying to use with Vite. As far as I can tell, it still works. The full message is:

svelte-tiny-linked-charts doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.

Fixed with https://github.com/Mitcheljager/svelte-tiny-linked-charts/commit/f0930d051343a059250180c35ecf0fdd9d57bc11


Require OpenStruct in Vcloud::Launcher::Preamble

The build fails when using an updated version of fog-core (v1.31.1 rather than v1.30.0). The error is:
NameError: uninitialized constant Vcloud::Launcher::Preamble::OpenStruct
./lib/vcloud/launcher/preamble.rb:40:in `interpolate_erb_file'

Adding an explicit require of OpenStruct fixes the failing tests.
https://github.com/fog/fog-core/compare/v1.30.0...v1.31.1

:+1:


cherry-pick PR #3284

update ASan content

I had to update the contents of the using-gpu-sanitizer.md file more than just the cherry-pick was providing.

I had to update the contents of the using-gpu-sanitizer.md file more than just the cherry-pick was providing.

That usually means there are more than 1 change that needs to come into this branch, impacting this file.
Do we need to go back to apply this to 6.0.2?

I had to update the contents of the using-gpu-sanitizer.md file more than just the cherry-pick was providing.

That usually means there are more than 1 change that needs to come into this branch, impacting this file.
Do we need to go back to apply this to 6.0.2?

The request was to apply the change all the way back to 6.0.0 as it should have been documented from the start. But I will close this and check.

It turns out the changes are needed here.

This fix shouldn't be updating the .wordlist.txt. That doesn't make sense because your other PRs weren't flagged

This fix shouldn't be updating the .wordlist.txt. That doesn't make sense because your other PRs weren't flagged
It needed the addition of LSan, which apparently was already in the other wordlists.

I don't see it in 6.0.0 https://github.com/ROCm/ROCm/blob/docs/6.0.0/.wordlist.txt
https://github.com/ROCm/ROCm/pull/3292/files

I don't see it in 6.0.0 https://github.com/ROCm/ROCm/blob/docs/6.0.0/.wordlist.txt https://github.com/ROCm/ROCm/pull/3292/files

And yet it uses LSan. But the only test was the readthedocs build.


Reduce number of inventory calls

There’s way too many API calls for the inventory, so I added a cached
response that’s used until someone invalidates it (like when
catching/throwing and spinning stops).
I also removed the calls to get_player that were completely unused and the useless get_inventory in the heartbeat.

Let merge your code, many thanks.


运行错误如下 请问怎么办  An error occurred. fetch failed undici/index.js:109:13

Describe the bug

Reproduction
运行错误如下 请问怎么办  An error occurred. fetch failed undici/index.js:109:13
System Info
运行错误如下 请问怎么办  An error occurred. fetch failed undici/index.js:109:13

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Duplicate of #111


[Paishare] Upload dockimage handler

Coverage decreased (-6.3%) to 63.404% when pulling 7b829c6128d822bf33dc97b5c37edfd013289863 on yanli2017:paishare into 5af7024b6774cbc44bd6b8e3a369c7c15fd26232 on Microsoft:paishare.


pc.http.post does not correctly encode data for when form-encoding

It's using deprecated function encode instead of encodeURIComponent. For example sending the key value pair: "email"<EMAIL_ADDRESS>doesn't work correctly.

This should be very easy to fix, just replace escape with encodeURIComponent in http.js but still not yet, after 2 years. And we have to use unescape on our server side.
Is there any reason for not fixing this?

Oh wow, a great example of a bug report which got buried under more recent bug reports. Anyway, I've made an attempt at a fix - see #3847. However, my knowledge of HTTP requests and sending form data is minimal so hopefully my fix is correct!


Open linked file in editor (php)

I'd like to have the ability to right click and open linked files in the editor. For example, if you're working on a PHP page you could open an included CSS, JS, or other page by right clicking on it and "Open" would be an option in the context menu. This feature is in another editor I use and is a big time saver.

@alexdima thanks for the response. I didn't know that it worked for HTML files, I just tried it and it does work.  I have very few, if any, plain html files though and it would be nice to have this in PHP, ASP, and other file types. Is there something in settings I'm missing to enable this?

Does this have to be PHP specific? I use classis ASP fairly often as well and it would nice to have this there and I'm sure any other languages where it doesn't already exist.


Bump up to 4.6.0 for JsonFormat

Release new feature JsonFormat. Bump up the version to 4.6.0 to release SDK.

Hi @peshen, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (peshen). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;


Update README files to correct name.

Update all README.md files to be README.md (Currently all spelt incorrectly - READMD.md)

All README.md file names updated in commit: 611dd94f1405235e028adf84748ac1b0d5e0dc1b


Mustache syntax coloration

Syntax coloration for mustache tag variables
Signed-off-by: azerr<EMAIL_ADDRESS>

Replaced with https://github.com/fbricon/vscode-kafka/pull/1


How to write a SQL update command with root privilege

1. adb shell

2. su -c 'sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update system set value=5000 where name='screen_off_timeout'"'

But I am getting the following error:
Error: no such column: screen_off_timeout
how to fix it?

you need to escape the quotes around screen_off_timeout.

what's escape the quotes here ? can you correct it for me?

Escape: \'

def query_update(u, email, password):
    sql_exc = " su -c 'sqlite3 ./data/setting.db \"update system set name=\'"+email+"\' \"'"
    print(sql_exc)
    return u.adb_shell(sql_exc)

I added Escape: ' but It's not working

That's a totally different query. This repository is for Python ADB, not other ADB problems. StackOverflow and other places are better suited to your queries

I updated

def query_update(u, email, password):
sql_exc = " su -c 'sqlite3 ./data/setting.db "update system set name='"+email+"' "'"
print(sql_exc)
return u.Shell(sql_exc)
I added Escape: \' but It's not working
Error: no such colum

Hi @fahhem  Same issue with your lib

Hi @fahhem what solution for this issues?

I don't think this is specific to this library. Are you able to do this using android's ADB and not this one?

If this was a problem with this library, I'd be happy to help, but you're having this problem in general. Please use StackOverflow or similar to solve such questions


Certain UVs are assigned incorrectly when importing to Blender

I noticed that models such as "cs1_12_terrain_hd_02" with shader "terrain_cb_w_4lyr_2tex" imports into Blender with incorrect UVs.
When UVMap 1 is assigned manually via Attribute node instead of default UVMap 0 in the shader, UV is corrected. Most likely a XML import issue. CW shows UVs the same (incorrect) way.
On the left side is mentioned UV issue corrected. On the right is how it came imported.

Now, in the game, I noticed there's some kind of "smoothering" for 2 different UV maps around the edges.

Because when I correct UVs in Blender, I still get this sharp transition between them. There might be some workaround to smoother it out, but I'm not sure about the way to fix it in Blender. However, in my opinion, I'd still rather have sharp transitions that wrong UVs.

I realized I was using Sollumz 2.1 instead of latest 2.2 where this is resolved already.


Adding AES encryption service and unit tests.

Closes #4

@mitchelsellers Should be ready for your review


use golang.org/x/sys/windows instead of syscall, where we can

The syscall package in the stdlib has a frozen interface, however golang.org/x/sys continues to evolve. Some of the windows APIs that we're manually accessing via syscall now have go-ish wrappers in sys/windows that are a bit nicer to work with.
There should be no functional difference from this change.
This is extracted from #1321, which I expect to take some time to mature. This little bit is totally mergable though!

assuming it's been verified on a Windows machine :)

I just retested how the agent responds to ctl-c on both master and this branch, to make sure I didn't end up with egg on my face.
In both cases the GenerateConsoleCtrlEvent call works, the process tree is sent the interrupt, and the job finishes non-zero.


Wrong song picture loaded

This isn't big deal; only aesthetic. To reproduce, just type into the search really quickly. Preferably, type in a word that are in a lot of song names. While it tries to live-filter while the typing is happening, sometimes the wrong song pictures get associated to the final results.

Yeah, I noticed this bug already, you're right, this happens when we type fast. I'm pretty sure it's because of the order of the async event. At each letter, it does the filter and asks for a new image. And sometime the previous search was slower than the new one, resulting in getting the wrong image.
It is on my task list. Thanks for the report.

I am also experiencing this bug - is there a fix planned?

@DanP27 Yes, as you can see the commit referenced above (68e7987823438d778dcaaf0741515c707a11988b) is fixing the issue, however, it's planned for the next major release. (v1.1, which I'm working on it since months on my free time 👌 )
You can see the work done (and try it if you know the tools) on the feature-beatsaver-integration branch.


Get pro-grammaticallyparameters  used to run a test to re-run it wh

Is it possible to get pro-grammatically parameters used to re-run a test if it fails
This is more like a question. I wonder whether it’s possible to get pro-grammatically the parameters to re-run a test whenever it fails?
For example when a test fails that is executed on for example Intellij I can right click on the method and run the test again.
If I run a test on Jenkins and it fails I will have to execute the whole suite again to very if it is really fail or test this manually. If I know the parameters used to run a test, I can maybe kick-off that specific test automatically using the parameters to verify if it works.

Your use case is really dependent of how you are running TestNG (ant, maven, gradle, ...) but you can have a look on http://testng.org/doc/documentation-main.html#rerunning
I close the issue because it is question, and prefer to ask it on StackOverflow or the mailing list which have more audience.


Serves up 'not found'

OK it builds now (thanks) but serves up:
Not Found
$ npm run serve

><EMAIL_ADDRESS>serve /Users/srl/git/new.nodejs.org
> ./build.js serve

http://localhost:8080/
[metalsmith] build/static finished: 778ms
[metalsmith] build/en finished: 7970ms

my system may be requesting Spanish… (es-US)

URL is http://localhost:8080/en/ - Currently there is no redirect at root level.


Missing crossorigin="use-credentials" to manifest.json link for basic auth

This issue is a duplicate from https://github.com/microsoft/vscode/issues/86541 as i don't really know where this can be solved.

VSCode Version: latest from codercom/code-server:v2
OS Version: browser (Chrome)

Serving codercom/code-server:v2 VSCode behind a reverse proxy with basic auth managed by proxy works well; everything is OK but manifest.json gets a 401 Unauthorized on Chrome
It appears that at least for Chrome, we need to add <link rel="manifest" href="manifest.json" crossorigin="use-credentials"> in order for Chome to pass auth headers for manifest retrieval.

@code-asher this might be of your interest.


Adds

Also, is the corresponding PR ready in UI?

Superseeded by this https://github.com/CybercentreCanada/assemblyline-base/pull/1674


Extract text within  in its original context

<spGrp> (= speech groups, cf. TEI Guidelines) allow to encode different spoken text bits uttered by several characters at the same time. An example in the wild is here, top of p. 38.
The corresponding play in DraCor is here:
Johann André: Der Comödienfeind (1765)
This passage is encoded as recommended by the guidelines and also accepted by our DraCor schema (see TEI version of the play).
When extracting the spoken text via our API – https://dracor.org/api/corpora/ger/play/andre-der-comoedienfeind/spoken-text – the text is extracted correctly, but put at the end of the main text, probably a problem of XML tree hierarchy.
My suggestion is to extract texts from within <spGrp> in their original contexts.

I cannot reproduce this. Both https://dracor.org/api/corpora/ger/play/andre-der-comoedienfeind/spoken-text and https://staging.dracor.org/api/v1/corpora/ger/plays/andre-der-comoedienfeind/spoken-text seem to put the lines

Was soll das heisen!
Was ist das!

in the correct context. Am I missing something, @lehkost?

Hi @cmil, thanks for checking, I can't reproduce this either any more. This seems to have solved itself somehow in the past 2,5 years. 😊 Unfortunately, I didn't take a screenshot or saved the file back then. So let's close this one.


[Remote Store] Validate that remote cluster state is enabled while setting migration direction to remote-store

Is your feature request related to a problem? Please describe
We want to disallow migration direction to be set remote-store in mixed compatibility mode case remote cluster state is not already enabled. This is to ensure that we garbage collect the stale data uploaded to s3 while migrating and we fallback to DocRep due to some failure.
Describe the solution you'd like
We will add a validation in TransportClusterUpdateSettingsAction to check if cluster.remote_store.state.enabled is true in cluster settings if the update setting request is trying to set migration direction to remote-store and cluster is either already in mixed mode or being requested along with.
Related component
Storage:Remote
Describe alternatives you've considered
No response
Additional context
No response

Not required now.


Adds Non Null Input fields cannot be inaccessible

Do we automatically remove a field that references an inaccessible type, or must the field be explicitly declared as inaccessible to avoid a composition error?

Closed by #93


Removing the description from a report is not possible, it needs to have at least 1 character.

Report has a description:

Trying to remove it:

Toast shows it has updated:

But it has not changed:

Trying to change it to 1 character is possible, for example a whitespace:

Can you show the response(s) of the backend calls?


Use prop-types package

This fixes PropTypes deprecation warning in ReactJS 15.5.
Fixes #[366].
Changes proposed:
Use prop-types package from npm as accessing PropTypes via the main React package is deprecated.
Upgrade Path (for changed or removed APIs):
Acceptance Checklist:

[ ] All commits have been squashed to one.
[ ] The commit message follows the guidelines in CONTRIBUTING.md.
[ ] Documentation (README.md) and examples have been updated as needed.
[ ] If this is a code change, a spec testing the functionality has been added.
[ ] If the commit message has [changed] or [removed], there is an upgrade path above.

Hi @navinesh, there is PR #368 which fix this. You can collaborate by targeting the branch v1 as described in #368.

This was fixed for v1 with #374.  If you'd like to get the build passing, I'd happily merge this into our master branch (which tracks our v2 development)

Hi @navinesh, thank you so much for taking time working on this.
We have released v2.0.0 and this patch became out of date.
I'll close this PR, but please, feel free to open a new one if something is missing.
Thanks.


melab and telab

melab and telab created by<EMAIL_ADDRESS>on 2018-04-06 12:18:22

<EMAIL_ADDRESS>replied, Alii, friends!How should I ask correctly using the verb MELAB:"Why have you pierced your ear for a ring?"

<EMAIL_ADDRESS>replied, Ngera meke milab ra dingam el mo blil a kebkab

<EMAIL_ADDRESS>replied, kmal mesaul!does melab have some forms like TOBII or TOBIR "will have pierced"?

<EMAIL_ADDRESS>replied, Melab, tobiur, melebelab.
Ngera ke melab/melebelab er ngii er tilechang el kmal meioud. Whatâ€™s
keeping you over there thatâ€™s taking you so long.
Ke Meral koradi tobiur tial ureor e kuk
Tubetobet el mochar.
You just do unpleasant job and nowhere to be found.


How to attach image from buffer into an embed?

I'm trying the following code:
const nodeFetch = context.global.get('nodeFetch');
const url = 'http://some/url/with/a.jpg';

const imageRequest = await nodeFetch(url, { encoding: null });
const imageBuffer = await Buffer.from(await imageRequest.arrayBuffer());

msg.payload = 'the message';
msg.embeds = {
    "description": 'description',
    "content": 'content',
    "title": 'title',
    files:[{
        "file": imageBuffer,
        "filename": "test.jpg"
    }]
};

return msg;

But I only get this:

I can see that the buffer is being filled correctly:

I have also manually encoded an image and dumped the base64 encoded stream like such:
  "file": Buffer.from('LONG BASE 64 TEXT HERE', 'base64'),

I read through this documentation:
https://v13.discordjs.guide/popular-topics/embeds.html#using-an-embed-object
https://github.com/Markoudstaal/node-red-contrib-discord-advanced/wiki/discordMessageManager
But not sure why it's not working.

msg.attachments    String        A location to an attachment. Can be online by URL or in the local filesystem.
https://github.com/Markoudstaal/node-red-contrib-discord-advanced/wiki/discordMessageManager

First, you need to save your buffer in a file, and then put the fullpath in the attachments array

Ohhh, it doesn't allow for buffers like in DiscordJS? Can I just dump to /tmp, attach to message, and then delete the original file in the temp directory?

Ohh, I only follow the node documentation, but I never touch this part of the code.
Following the discordjs docs, you can pass the buffer but i don't know why it's not working

Ohhh, maybe you need put the Buffer in the "msg.attachments", not inside embeds object. And then, reference it on the image field in the embed

Hmmm, how do I attach it to msg.attachments and then refer to it on msg.embeds? Attachments only takes a string or an array of strings.

If putting the buffer directly on msg.attachments it errors saying that msg.attachments must be a string. If I toString() the buffer I get the following error:

I couldn't figure it out with a buffer. Not sure it's doable. I got it working using a temporary file:
const nodeFetch = context.global.get('nodeFetch');
const fs = context.global.get('fs');
const url = 'http://some/url/with/a.jpg';

// Random number to help avoid filename collisions (even if they are unlikely)
const getRandomIntInclusive = (min, max) => {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1) + min);
};

const pictureFilename = `${new Date().getTime()}_${getRandomIntInclusive(0, 9999).toString().padStart(4, 0)}.jpg`;
const savePath = "/tmp/"; // I run NodeRed inside Kubernetes and the tmp directory is cleared on each reboot.
const fullPath = `${savePath}${pictureFilename}`;

const res = await nodeFetch(url);
const fileStream = fs.createWriteStream(`${savePath}${pictureFilename}`);

await new Promise((resolve, reject) => { // From buffer to file
  res.body.pipe(fileStream);
  res.body.on("error", reject); // No error handling in this example
  fileStream.on("finish", resolve);
});

msg.payload =`Temporary File: '${savePath}${pictureFilename}'`;

msg.attachments = fullPath;

setTimeout(() => { // This can also be achieved without a timeout if executed after Discord has sent the message.
    fs.unlink(fullPath, () => {}); // Delete the file after 3 seconds
}, 3000);

return msg;

Here
https://github.com/Markoudstaal/node-red-contrib-discord-advanced/blob/d32e89727a44206437b6d85404811354a5b329fa/discord/discordMessageManager.js#L198-L203
You have the possibility to put attachments twice through new MessageAttachment() which can have more arguments. The resulting object looks like this:
MessageAttachment {
  attachment: MessageAttachment {
    attachment: 'https://example.com/original_name.png',
    name: 'other_name.png'
  },
  name: null
}

But does that work with file buffers?

Yes, I was just able to get it working with buffs. I'm getting it from an other block. I'm utterly confused how AttachmentBuilder and MessageAttachment differ.
console.log(Buffer.isBuffer(msg.payload.image));
let file = new discordjs.AttachmentBuilder(msg.payload.image);
file.name = "cam-1.jpg";

let newMessage = {};
newMessage.channel = msg.payload.channelId;
newMessage.payload = {
    "content": "",
    "tts": false,
    "embeds": [
        {
            "type": "rich",
            "title": `Vortex of Doom`,
            "description": `Tutaj będą zdjęcia`,
            "image": {
                "url": 'attachment://cam-1.jpg',
            },
        }
    ],
    "attachments": [file]
}
return newMessage;

Awesome! Will test it out once it's merged.

This approach is using a function node with a reference to the latest version of discord.js, right? Could you post a json flow of this case?

@javis86, this awaits merge of my PR request. You are free to patch it yourself

I tested on a node-red instance and It failed. I have already installed discord.js 13.8 for functions nodes, and this version does not have Attachment builder. i going to test the actual functionality, for backward compatibility and then i will merge it
We need to migrate to discord.js version 14 for full support of these feature

I'm moving discord.js version to 14.7 on #64, I added the possibility of work with buffers, like this:
msg.embed = {
    "title": `Toyota Etios`,
      "description": `Compact Car`,
      "color": 0x00FFFF,
      "fields": [
        {
          "name": `Type`,
          "value": `Hatch`
        }
      ],
      "image": {
        "url": "attachment://etios2.jpg"
      }
};
msg.attachments = { buffer: msg.payload, name: "etios2.jpg"};

return msg;


[GDExtension] Correct Rect2 members offsets declaration in extension_api.json generator

Correct a copy&paste mistake ;)

rebased ;-)

Thanks!


text too wide

paragraph 3 on this page is too wide and is hidden by the menu
https://www.pombase.org/faq

I can't find where to edit this? I've found the stuff for actual FAQ items or sub pages but not this 'top level' page?

No, it is the text "PomBase is funded by the Wellcome trust.."

No, it is the text "PomBase is funded by the Wellcome trust.."

It's at the bottom of this page:
https://github.com/pombase/website/blob/master/frontend/src/app/app.component.html

This should be fixed now.  Let me know if you still have problems.

yep looks good


PubSub

Hello.
Does pub/sub works properly in this plugin? I've tried to use it and got no events. Push works perfectly, but subscribing doesn't.

It should do, and it did when I last tested (which was a few years ago now...)
The logic for subscriptions is here: https://github.com/Southclaws/pawn-redis/blob/master/src/impl.cpp#L286 and the event loop: https://github.com/Southclaws/pawn-redis/blob/master/src/impl.cpp#L331

Maybe we're doing something wrong? Could you look please?
Here is code:

I'm starting listener for it and server. Server dispatches message successfully, but it unable to receive any.

Painful but finally got a solution. Should I send you PR with fix?

Definitely! Thanks.

Had no time to do it. I will now.


fix: 🐛 Revert to using snake case in extrinsics table

Tooling GQL expects snake case for call_id
Reverts the values to what they were before
Note the column names remain snake case in the DB despite the entity field being camel case.

Merging this in without review as its for a production fix and relatively small.


3D linear interpolation uses workaround for land points

e.g., https://github.com/ggebbie/TMI.jl/blob/e3aa8bba05e2da79213e6e66602b93d1b4f745de/src/TMI.jl#L967
Interpolations.jl has support for cases where land points exist, but I didn't manage to use it. Instead I add code that drops NaN points (by setting to zero) and then dividing by the sum of ocean weights so that the interpolation remains a true weighted average.
Ideally we can use built-in Interpolations.jl features instead.
This workaround comes into play for the function sample_observations.
The workaround is correct is in the sense that it does linear extrapolation over a maximum length of one grid cell.

Interpolations.jl updated to v0.14.6 in TMI.jl v0.1.20. Doesn't affect this issue directly.


Added DependencyInstaller to copy dependencies from s3 to maven local

Signed-off-by: Vacha<EMAIL_ADDRESS>Description
This PR introduces a DependencyInstaller, requirements in #276. This will be used by integration tests, performance tests and bwc tests when run in the pipeline. It covers the following scenarios:

Install maven dependencies from S3 to maven local
Download build dependencies from S3 to a custom local path (to be used for scenarios like this)
Clean up the downloaded contents

Note: I have merged the changes from #367 to use the S3 utility functions.
Issues Resolved
#276
Check List

[X] Commits are signed per the DCO using --signoff

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

Codecov Report

Merging #318 (68d813b) into main (398abed) will increase coverage by 1.15%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #318      +/-   ##
==========================================
+ Coverage   53.63%   54.78%   +1.15%
==========================================
  Files          29       30       +1
  Lines         785      805      +20
==========================================
+ Hits          421      441      +20
  Misses        364      364

Impacted Files
Coverage Δ

...workflow/src/test_workflow/dependency_installer.py
100.00% <100.00%> (ø)

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 398abed...68d813b. Read the comment docs.

Hi @dblock, sorry for a review request again for this PR, just updated the installer with the requirements mentioned in #276 (comment) to handle more use cases and merged it with Himanshu's PR for S3 utility to use that functionality. Would love your review on it!

This PR is dependent on the S3 utility PR #367. I will raise the final version once that PR is merged in.

Hi @dblock and @setiah, I have addressed the comments. LMK if this looks good to be merged.


Avast antivirus blocking wakatime-cli on Windows

Email received from Avast:

Hello,
Thank you for reporting this false positive.
We have now cleared its reputation in our database based on the findings and removed the detection. This change may take up to 24 hours to take full effect. Please accept our apology for the inconvenience caused.
If the detection persists after 24 hours, update the virus database in Avast anti-virus and reply to this email with the attached files:
1.Take a screenshot of the Avast detection dialog (Threat Secured pop-up with See details - displayed at the bottom).
2.Take a screenshot of the Avast virus database (open Avast antivirus and go to Menu > About).
We hope you have a nice day and stay safe online.


WIP: Use all channels in fnirs conversion. Don't exclude bads

What does this implement/fix?
FNIRS channels that had been marked as bad were not being converted. I think all channels should be converted to the final hbo/hbr, then the downstream processing can choose what to do with bad channels.
Adds two internal function for checking that nirs channel labelling of bads is consistent. And nother function that spreads bad marking to ensure it is consistent.

@larsoner could you please review. These errors don’t seem to be related to the code changes. Thanks

@larsoner This is now ready for review. Thanks

Looks reasonable to me, thanks @rob-luke !

#7057


inconsistent types ‘caf::error’

CAF builds fine, all tests are passed. However, make for VAST fails.
I am using the following commands to install VAST:
# CAF INSTALL
cd ${DIR_GIT}
git clone -b develop https://github.com/actor-framework/actor-framework.git
cd "actor-framework"
./configure --prefix="${DIR_INSTALL}caf" --no-opencl
make -j ${N_CPU}
make test
make install

# VAST INSTALL
cd ${DIR_GIT}
git clone https://github.com/vast-io/vast.git
cd "vast"
./configure --prefix="${DIR_INSTALL}vast" --with-caf="${DIR_INSTALL}caf"
make -j ${N_CPU} # fails, also on 1 core
make test
make install

The build fails at [ 98%] Linking CXX executable ../bin/vast-test. The only errors I see:
vast/vast/vast.cpp:447:55: error: inconsistent types ‘caf::error’ and ‘caf::expected<short unsigned int>’ deduced for lambda return type
       return mm.publish(node, node_endpoint.port, host);
                                                       ^
vast/vast/vast.cpp:447:55: error: no matching function for call to ‘caf::error::error(caf::expected<short unsigned int>)’e

Can someone reproduce this?

I'm failing to reproduce it one macOS--with either Clang or GCC. What's your build setup?

I have a hunch that your compiler might not be able to deduce the return type of the lambda properly. Let me know if this patch fixes the issue:
diff --git a/vast/vast.cpp b/vast/vast.cpp
index 765f605d..2f70975a 100644
--- a/vast/vast.cpp
+++ b/vast/vast.cpp
@@ -411,7 +411,7 @@ int main(int argc, char* argv[]) {
     if (node_endpoint.host.empty())
       node_endpoint.host = "<IP_ADDRESS>";
     VAST_INFO("connecting to", node_endpoint.host << ':' << node_endpoint.port)
-    auto remote_actor = [&] {
+    auto remote_actor = [&]() -> expected<actor> {
       if (use_encryption)
 #ifdef VAST_USE_OPENSSL
         return openssl::remote_actor(sys, node_endpoint.host,
@@ -436,7 +436,7 @@ int main(int argc, char* argv[]) {
     // Publish the node.
     auto host =
       node_endpoint.host.empty() ? nullptr : node_endpoint.host.c_str();
-    auto publish = [&] {
+    auto publish = [&]() -> expected<uint16_t> {
       if (use_encryption)
 #ifdef VAST_USE_OPENSSL
         return openssl::publish(node, node_endpoint.port, host);

This patch fixes the issue. My build setup:
$ g++ --version
g++ (Debian 6.3.0-18) 6.3.0 20170516

$ g++ -dumpmachine
x86_64-linux-gnu

$ lsb_release -ar
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.2 (stretch)
Release:	9.2
Codename:	stretch

$ uname -r
4.9.0-4-amd64

(Maybe I should switch to a arch docker container with most recent packages... ;)


Config Setup

Description
I'm new to homebridge and have tried to install this plugin, however, when it runs it produces an error that says amazonDomain is not present.
[AlexaPlayer] Error: Configuration error: config should have required property 'amazonDomain'
When I add this to the config, I get this error:
[AlexaPlayer] Error: Configuration error: config should NOT have additional properties
Any help would be greatly appreciated

For Amazon domain that depends on what country you’re in so for the United States where I am you choose amazon.com or if you’re in the UK you might choose amazon.co.uk it should be the first drop down menu in the UI

Can you post the plug-in configuration you have that isn't working for you?

i can't get mine to work.
"platforms": [
    {
        "platform": "homebridge-alexa-player",
        "amazonDomain": "amazon.com",
        "auth": {
            "cookie": "xxxx"
        },
        "screensAsTelevisions": true
    }
],
"platform": "homebridge-alexa-player"

}


In Nested Fragment video is not playing

Hi @eneim As suggested by you, I tried implementing using ExoMedia and ToroPlayer both.
I have activity which have tabs. In the first tab, I have Fragment1 which have toro video implementation and it works fine. However in my fifth tab, I have nested fragment which have toro video implementation. It does not trigger playback.
Any idea how to resolve issue nested fragment issue ?
Thanks,
Pawan

Are you using ViewPager with Fragments inside? Could you tell me more about your nested Fragments? @pawankumar01

@eneim, Thanks for quick reply. I am not using ViewPager. I am actually showing and hiding the fragments(Fragment1, Fragment2, Fragment3, Fragment4, Fragment5) using FragmentManager. In my last tab I show a Fragment5 and hides rest of them on user action.
My Fragment5 contains Fragment1 as nested fragment as well.  So this nested fragment do not trigger playback. Hope my language is not so confusing.
The other issue I noticed if Activity have some thing above fragment. Let say imageView and fragment in the same layout. ImageView on top occupy 200dp space and then Fragment starts, then visible area offset do not work properly.
Thanks,
Pawan


Master branch to 0.7.5

Leaflet 0.7.5 has been released and developers working with 0.7.3 are advised to upgrade.
http://leafletjs.com/2015/09/01/leaflet-0.7.4-released.html
Would this library be safe to move to 0.7.5?

I'm almost 100% positive you shouldn't have any issues with this library and moving to 0.7.5, but I haven't tried it.  I'll update the examples to use 0.7.5, though, just to be sure.


Addressed comments- Added Mistral,LLAMA models on bedrock

Addressed comments from the PR #2980 .

Thanks for the revision; this looks like the right idea overall.

Please fix: src/helm/clients/bedrock_client.py:27:119: W291 trailing whitespace

Thanks for your help with getting this merged!


[AMD] Use Linear Layout convertions for AMDWmma

Enable LL conwertions for WMMA as well as for MFMA layouts.
See also: https://github.com/triton-lang/triton/pull/5210

Also please add a testcase.


Library: More editorial control on featured providers on landing page

Hi,
I would like to have a little more control on the featured providers list on the right bar / column of the Library landing page: https://landportal.org/library
Right now, the list is too long in comparison to the length of the content in the left column. So first thing is that the # of providers there should be reduced to ideally 10.
Secondly, the filter for data providers to show up here now is those with a minimum number of resources attributed to them in the Library.  This should not be the case. We want to highlight local information providers (who inevitably have less resources than huge global aggregators) as well as the global ones. So what I would like is to have some sort of 'promote' option to an organizational profile (only available for LP editors) to promote them as one of the featured providers on the LL pages.
And then finally, it would be ideal if we could have a some sort of random carroussel of providers showing up in this list. So that I would have promoted more than 10 probably, but it just shows 10 providers in the list at random, and they will change as you refresh the page.
I hope I've explained this clearly, please let me know if I can highlight or explain something in more detail.
Thanks!

tests on https://dev.landportal.org/library

Hi @lisettemeij
please check the first three points on https://dev.landportal.org/library

Now it list 10 providers (paginated)
Now it lists ALL the providers.
Those providers set as 'sticky at the top of lists' show at the top of this column. In this example, Fundación Tierra was set by me as  'sticky at the top of lists'. Only landportal & administrator users can set a piece of content as 'sticky at the top of lists'.

Let me know if you want me to do any of this 3 changes (or all of them) on the live site.
Regarding the carrousel, I'd need more explanations. Can we have a call to discuss the options? Thanks.


Added OIDC Auth for kedge server side.

Signed-off-by: Bartek Plotka<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@78fd159). Click here to learn what that means.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master      #21   +/-   ##
=========================================
  Coverage          ?   54.35%
=========================================
  Files             ?       21
  Lines             ?      804
  Branches          ?        0
=========================================
  Hits              ?      437
  Misses            ?      327
  Partials          ?       40

Impacted Files
Coverage Δ

lib/http/tripperware/auth.go
88.23% <100%> (ø)

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 78fd159...26c7da0. Read the comment docs.


Tenant does not have a SPO license

Trying out the excel input binding example throws this message in the log. What am I missing? An elaborate discussion would be appreciated.

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

ID: 81cb62b5-7d3d-82ac-cbf9-cf8ec72da034
Version Independent ID: 69f0b334-acba-8dde-51d5-eb6bc9f85d5e
Content: Microsoft Graph bindings for Azure Functions
Content Source: articles/azure-functions/functions-bindings-microsoft-graph.md
Service: functions
GitHub Login: @mattchenderson
Microsoft Alias: mahender

@fiyazbinhasan Thanks for the feedback. We are actively investigating and will get back to you soon.

@mattchenderson can you take a look at this?

@ConnorMcMahon can you share some insights on this? TIA

This looks like this issue. It sounds like the AAD tenant doesn't have an Office 365 subscription associated with it.

Answered by Connor.
#please-close


Mod1

end of changes, readme is still to come for better explanation on how to run the service

service was tested and is ready for launch


feat: Define simplicial homotopy and prove conditions for equivalence relation

This PR defines a simplicial homotopy of simplicial maps, defines Kan complexes, and establishes the conditions for this homotopy to be an equivalence relation.

I just labelled this with its topic area. Feel free to label awaiting-review whenever it's ready. Thanks for working on mathlib!


[SPARK-34310][CORE][SQL][2.4] Replaces map and flatten with flatMap

What changes were proposed in this pull request?
Replaces collection.map(f1).flatten(f2) with collection.flatMap if possible. it's semantically consistent, but looks simpler.
Why are the changes needed?
Code Simpilefications.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass the Jenkins or GitHub Action

Test build #134731 has started for PR 31417 at commit 0fcfea2.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39317/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39317/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39317/

Test build #134731 has finished for PR 31417 at commit 0fcfea2.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134731/

The change is fine, but I don't think we need to back-port this.
Or maybe I'm missing why we need to back port this?

The change is fine, but I don't think we need to back-port this.
Or maybe I'm missing why we need to back port this?

Nope, it doesn't improve anything. I just suggested him to port back such changes to reduce the conflicts when you backport other changes in the future.

It won't matter either way I'm sure, so go ahead if anyone would like to. I doubt it's going to matter.

Thanks @srowen.

Merged to branch-2.4.


Indication of whether a task should be kept around or not.

In many executors, it's going to be more performant to clean up job records after the job has been completed and the output has been collected. That being said, opting out of this behavior is important when debugging jobs, for instance. It would be great to provide a flag that allows job cleanup (at the discretion of the executor) by default but then be able to specify when you want a job to stick around (at the cost of performance).

Can you clarify what you mean @claymcleod ? TES is fundamentally dealing with individual tasks and  inputs and outputs. It’s my opinion that users, or engines would need to deal with cleanup the outputs. As for performance can you clarify. The job is done, so the only performance is storage.

I would also appreciate a clarification, @claymcleod. Apart from what @vsmalladi asked, I am also wondering what exactly you mean by "job records" and by "executors" - do you mean TES tasks or actual _executor_s as per the spec (of which there can be more than one per TES task).


diff throwing RayGetError when objects or booleans are in dataframe

Describe the problem
Not enough type checking is done before passing to ray
Source code / logs
import modin.pandas as pd

data = {
    "col3": [1, 2, 3, 4],
    "col4": [4, 5, 6, 7],
    "col1": [8.0, 9.4, 10.1, 11.3],
    "col2": ["a", "b", "c", "d"],
}

pd.DataFrame(data).diff(period = 1, axis = 0)

Closing this. Feel free to reopen if the discussion should continue or if issue was not resolved.


add @primate/kv

redis / valkey
https://aws.amazon.com/dynamodb/
https://developers.cloudflare.com/kv

example in https://github.com/primatejs/primate/issues/137

we will create separate packages for it, such as @primate/redis, see https://github.com/primatejs/primate/issues/165


Auto Save Slots are not Deletable

Right now, the deletion is using the SaveLabel to target the slot to delete which of course won't allow slots using the AutoSaveLabel to be deleted. There must be a way to identify the kind of slot to delete and use the proper label.

This has been fixed as of 45cffad54419a853c0395c382420d55d49deffd0


ML model experiments

[ ] architecture changes?
[ ] skip connections (N.B.- it's sequential API now)?
[x] sedinet architecture
[ ] finetune from sedinet?
[x] grayscale vs RGB?
[x] best LR — loss curve..
[x] weighted loss
[x] Quant aware training

I'm going to close this... we have been experimenting and have a reasonable first model


cannot import disqusapi with python3

After I started ipython3, and typed in the shell import disqusapi, it showed ImportError: No module named 'httplib'. Seems look like the disqusapi isn't supporting python3?
I'm using Python 3.5.2 :: Anaconda custom (x86_64)
Here's the error log:
In [1]: import disqusapi
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-1dede7c1a4ae> in <module>()
----> 1 import disqusapi

/Users/kspun/anaconda3/lib/python3.5/site-packages/disqusapi/__init__.py in <module>()
     13     __version__ = 'unknown'
     14
---> 15 import httplib
     16 import os.path
     17 import simplejson

ImportError: No module named 'httplib'

Just tried something more to make it work:
I was using pip3 install disqus-python3, which gave the above error.
If I use
pip3 install --upgrade https://github.com/disqus/disqus-python/archive/master.zip

I can do import disqusapi without issues.

I have the same issue and fix with same way.
Maybe anybody forgot update the package in Pip =P


adding support for complex choices

@stephenwf another bug from the complexity of choices... Canvas 28 of the bayard manifest (see the choices story) has 2 different choices on the same page.  But, the IIIFHelpers don't return all of those choices (there's an assumption of a single choice).  This brings some of that logic internally to CanvasPanel so we can pull the choices from Vault directly...

~As I think you've identified, we do need some means to maintain state so that when you choose one choice it doesn't flip the other one back... working on that before this is ready.~ the more I've thought about this, implementing state really goes against the choiceOptions (Disable / Disable all), if we do something here to maintain some choice logic, then I think we're putting the logic here while it should be in the implementing application
also curious about your thoughts about the upstream implications of getPaintables and extractChoices returning an array instead of an object (or alternately overloading the return to return an object if just one, and an array if more than one -- more backward compatible, but more complex implementation in more places)_.

I think we would need to support for parsing complex-choice type.
https://github.com/IIIF-Commons/iiif-helpers/blob/0f582fbcf4a8899258b7a71d2216ffeb56275de4/src/painting-annotations/types.ts#L14C1-L17C2
Since this is in the types already, code that uses the single-choice should already be checking for this. So if we changed the helper to return either a single choice or a complex choice we can handle it. That way we can simply emit the whole choice object.
I do agree, I think we need a partOf or canvasId and annotationId along-side the choice. We could put it into the event emitter for now, but it feels like it should be in the choice object I think.

I think we would need to support for parsing complex-choice type. https://github.com/IIIF-Commons/iiif-helpers/blob/0f582fbcf4a8899258b7a71d2216ffeb56275de4/src/painting-annotations/types.ts#L14C1-L17C2
Since this is in the types already, code that uses the single-choice should already be checking for this. So if we changed the helper to return either a single choice or a complex choice we can handle it. That way we can simply emit the whole choice object.
I do agree, I think we need a partOf or canvasId and annotationId along-side the choice. We could put it into the event emitter for now, but it feels like it should be in the choice object I think.

So, a ComplexChoice is just saying, there is more than one choice, not that there's any grouping between the SingleChoices?

Yes, that's right. It's was an anticipation for a user seeing multiple choices. I guess it could be per-canvas though.

hmm, ok. So, the right way forward here would be to update IIIF Helpers to return a ComplexChoice if there is more than one choice, and then to cascade the updates to CanvasPanel?  Looking at the package.json, we're going from 0.9.21 of react-iiif-vault and related libraries to 1.0.6.  is that a big lift?

Looking at the package.json, we're going from 0.9.21 of react-iiif-vault and related libraries to 1.0.6. is that a big lift?

Yes, there is a PR with the changes required in #237 - mostly just import changes. So its not really possible at the moment to update. Forking any helpers at the moment is totally fine.


Allow passing existing buffer to device.Read/ReadTimeout

Hello! Thank you for building and publishing this library. I've been using it for a couple of days, and it's been a great experience :)
I'm using the library in an application which drives an externally connected USB device. In the hot path I'm calling Device.ReadTimeout. Since every call allocates a new array with maxLength bytes, this causes a lot of unnecessary GC pressure.
Would it be possible to add an overload/optional parameter for using an existing byte array instead of allocating a new one? This would allow for more predictable memory usage and improved performance, depending on the consuming application. It could for example be an overload replacing maxLength:

Device.Read(byte[] buffer)
Device.ReadTimeout(byte[] buffer, int milliseconds)

What do you think? If you like the idea, but are too busy, I'd be happy to open a PR.
Thank you!

Hi, thank you for your feedback. Nice that it works for you 👍 .
Yes I think it is a good idea to add such an overload. I would probably prefer to add either a Span or ReadOnlySpan instead of an Array as parameter.
Those types are more flexible in regard of the memory location and are just a pointer and a length which is what I actually need to pass on.
What would you prefer and why?
Do you use the Write method? I would assume having a Span instead of ReadOnlySpan would be better because it allows modification of the data which would make sense if the method is called in a loop for example to be able to update it.
If we agree on some way going forward you are welcome to create a PR.

Thank you for the very quick response!
Span should work perfectly. I tried to look into whether Memory might also make sense, but if I understand rule 9 on this page correctly, Spans would be preferred in this case.
I do use Write, but with separate buffers. The application I'm writing is meant to control Stream Deck devices (with the HID logic ported from Julusian/node-elgato-stream-deck). To keep things simple, the main loop consists of two simultaneous PeriodTimer tasks:

The reading one polls the device (using blocking mode with a small timeout), maps the read data to input events (e.g. button down/up) and emits them

This is probably not the best approach, it would be better to poll on a separate thread, but I wanted to keep things simple to start with, and this provides great latency :)

The updating/writing one both handles device commands (set brightness etc.), as well as rendering and writing new images

So Read/Write calls are pretty far apart in my application.
I still have a lot of cleaning up to do before I'll make the repo public (as I'm still pretty inexperienced with C#), but in case you're interested I added you as a collaborator. Here are examples for the calls:

ReadTimeout
Write
SendFeatureReport
GetFeatureReport

By the way, thank you especially for the great AoT support! I had expected at least some setup difficulties, but it worked perfectly under Linux without any extra setup.

Thanks I will take a look 👍
I think my suggestion would be:

Add new methods to read data (regular + with timeout) which accept a Span as parameter.
The original "read" methods should probably call into the newly created ones as they are just providing automatic memory allocation on top of the new ones.
The internal methods probably have to switch from ReadOnlySpan to Span, too.

As theWrite method is already using ReadOnlySpan in the public API I would probably don't add an additional overload until there is demand for it as it would require creating a new call hierarchy which is identical to the existing one. If needed it could perhaps replace the existing one, forcing a major version bump. I just don't have enough information what is needed but as it works for you it can't be unusable.
If you like you can create the PR for the "read" methods. I would then go ahead and create a release in the coming days.
Sidenote: While I read through some of the Span documentation yesterday I came across the point that it can't be used in async code. If you require such a feature for your application we can take a look into it if the need arises.

Good point about Spans and async - I ran into the mentioned issue when I started the project, which made me use my custom byte-array wrapper class everywhere. This works fine for simple scenarios, but since I'm basically circumventing the C# approach to safe memory management, I'll refactor the application to follow the Memory<T> and Span<T> usage guidelines (essentially switching to Memory<T>, but with proper ownership).
Based on these guidelines I'd propose a couple of extensions to what you suggested:

I think my suggestion would be:

Add new methods to read data (regular + with timeout) which accept a Span as parameter.

This will be useful, but as you mentioned, this wouldn't work well in async contexts (or it would at least require boilerplate workarounds every time). Maybe the best option is just to offer overloads for all scenarios:
public interface IDevice {
    ReadOnlySpan<byte> Read(int maxLength);
    Span<byte> Read(Span<byte> buffer);
    Memory<byte> Read(Memory<byte> buffer);
    // If you want to offer max. flexibility
    ReadOnlySpan<byte> Read(byte[] buffer);

    ReadOnlySpan<byte> ReadTimeout(int maxLength, int milliseconds);
    Span<byte> ReadTimeout(Span<byte> buffer, int milliseconds);
    Memory<byte> ReadTimeout(Memory<byte> buffer, int milliseconds);
    // If you want to offer max. flexibility
    ReadOnlySpan<byte> ReadTimeout(byte[] buffer, int milliseconds);
}

This should cover every case that will realistically happen.

The original "read" methods should probably call into the newly created ones as they are just providing automatic memory allocation on top of the new ones.

Sounds like a good plan! I'm not sure if this approach could be done for all overloads, Memory<byte> might have to be implemented separately, but I'll experiment a bit to see what's possible.

The internal methods probably have to switch from ReadOnlySpan to Span, too.

Yep!

As the Write method is already using ReadOnlySpan in the public API I would probably don't add an additional overload until there is demand for it as it would require creating a new call hierarchy which is identical to the existing one. [...]

Write is totally fine as it is, as it's only a consumer, and most "kinds of memory" have implicit conversions to ReadOnlySpan. The only possible addition I can think of would be a method that accepts a ReadOnlyMemory and passes the ReadOnlySpan along:
public interface IDevice {
    void Write(ReadOnlySpan<byte> data);

    void Write(ReadOnlyMemory<byte> memory) {
        Write(memory.Span);
    }

If you like you can create the PR for the "read" methods. I would then go ahead and create a release in the coming days.

I'll gladly give it a try! Before submitting, I'd definitely like to experiment with Memory a bit. Hopefully I should be finished with experiments & PR by end of next week :) (depending on your further feedback of course!)

Let's keep Span and Memory in separate PRs. I think Span is quite uncontroversial.
I would like to take a deeper look into the changes related to Memory. Perhaps you propose a new API before implementing it like you did here for Span after collecting some experience with it.
Regarding your proposed API I would probably see it a little different:

Read without a buffer parameter returns a Span so there is no conversion needed between Span and ReadOnlySpan if it is based on the method with a buffer parameter.
Read with buffer returns void, as the buffer is filled.
No overload with byte[] needed as there is an implicit conversion available from an array to Span:

public interface IDevice {
    Span<byte> Read(int maxLength);
    void Read(Span<byte> buffer);
    Span<byte> ReadTimeout(int maxLength, int milliseconds);
    void ReadTimeout(Span<byte> buffer, int milliseconds);
}

(Please don't add an IDevice interface, this would be another discussion.)
What do you think of my api suggestion?

We could even consider removing the API which returns Span as it is only a helper method and only keep the ones which return void and have a Span as parameter.
I would like to keep the API as simple as possible. This change would move into this direction and would justify a major version bump. The bump indicates the majority of the API and it would be a lot more flexible than before:
public interface IDevice {
    void Read(Span<byte> buffer);
    void ReadTimeout(Span<byte> buffer, int milliseconds);
}

Let's keep Span and Memory in separate PRs. I think Span is quite uncontroversial.
I would like to take a deeper look into the changes related to Memory. Perhaps you propose a new API before implementing it like you did here for Span after collecting some experience with it.

Sounds good!

We could even consider removing the API which returns Span as it is only a helper method and only keep the ones which return void and have a Span as parameter.

This is an option, but there is also value in the simplicity of the current methods. For the average case, the allocations aren't an issue, and being sure the ReadOnlySpan value won't change under your nose makes it very easy to reason about. The Span approach is easier to misuse (e.g. inconsistent writes).
I'm generally a fan of both options being offered - one "a little wasteful, but impossible to misuse", and one "higher performance, at your own risk". But I'll stay a happy user either way, you have to decide :)

Read without a buffer parameter returns a Span so there is no conversion needed between Span and ReadOnlySpan if it is based on the method with a buffer parameter.

There is an advantage to no-buffer-Read returning a ReadOnlySpan, as it communicates that the result will not change (and it's usable in places where Span isn't). Since Span<T> has an implicit conversion to ReadOnlySpan<T>, there shouldn't be any extra code required. I'd suggest that I'll implement both options, and you can decide whether the additional complexity is worth it based on how common scenarios could be implemented?

Read with buffer returns void, as the buffer is filled.

This makes sense, as it communicates more clearly what is going on.

No overload with byte[] needed as there is an implicit conversion available from an array to Span:

You're absolutely right!

(Please don't add an IDevice interface, this would be another discussion.)

Just a placeholder for discussing the design, no worries :)

What do you think of my api suggestion?

I like it a lot! Based on the points above I'd make the slight change of still returning a ReadOnlySpan for the non-buffer-versions:
public interface IDevice {
    ReadOnlySpan<byte> Read(int maxLength);
    void Read(Span<byte> buffer);
    ReadOnlySpan<byte> ReadTimeout(int maxLength, int milliseconds);
    void ReadTimeout(Span<byte> buffer, int milliseconds);
}

This would mean that no major version bump is necessary, and it would clearly communicate which version of the method should be used in which case. But it's your call, removing the non-buffer-versions would work just as well for me :)

I thought a little bit about your arguments and I prefer to remove the current method signature in favor of the new with a buffer parameter.
If a user of HidApi.Net wants to have this method for its simplicity it is a easy to implement as an extension method.
At the same time I don't want to have it as part of HidApi.Net because it might not be the optimal implementation.  This is probably not a problem for spans as they don't live on the heap. But a user might already have some native / managed memory available or even prefer stackalloc.
Adding one helper method would bring up the question why there is not another one for stackalloc or why stackalloc is not automatically used if the buffer is small enough. Avoiding this kind of intricate implementation is kind of easy if there is only one api providing maximum flexibility and requires some thought of the user. But I consider this a good thing actually.

Makes sense! I've updated the PR accordingly (and fixed the doc comments). It should be ready for review!
I only updated the signatures of the native methods that are used by Read / ReadTimeout to use Spans instead of ReadOnlySpans, though this should probably also be done for the other Get methods which take buffers, e.g. GetInputReport. Would you like me to open a separate issue/PR for that? :)

What you did is exactly right as it is what we discussed 👍.
The other "Get" functions are a different problem(s). If you have some suggestion please open a new issue and let's discuss it first.

Implemented in #102.