Parallel hash build does not handle partition overflows

Bug description
One can see that at frae 4, the overflow is given as nullptr (HashTable.cpp:839), and later when overflow happens at frame 1, crashes.
(gdb) bt
#0  0x000055555bde2e3c in std::vector<char*, std::allocator<char*> >::push_back (this=0x0, __x=@0x7fe68d7eb428: 0x7fe6b41e67d4 "ĉ\020") at /usr/include/c++/10/bits/stl_vector.h:1189
#1  0x000055555be5720f in facebook::velox::exec::HashTable<true>::buildFullProbe(facebook::velox::exec::ProbeState&, unsigned long, char*, bool, long, long, std::vector<char*, std::allocator<char*> >*)::{lambda(long, long)#1}::operator()(long, long) const (
    this=0x5555658e7bb0, index=4194303) at /data00/ebe/velox/velox/exec/HashTable.cpp:1008
#2  0x000055555be5a497 in facebook::velox::exec::ProbeState::fullProbe<(facebook::velox::exec::ProbeState::Operation)1, facebook::velox::exec::HashTable<true>::buildFullProbe(facebook::velox::exec::ProbeState&, unsigned long, char*, bool, long, long, std::vector<char*, std::allocator<char*> >*)::{lambda(char*, long)#2}, facebook::velox::exec::HashTable<true>::buildFullProbe(facebook::velox::exec::ProbeState&, unsigned long, char*, bool, long, long, std::vector<char*, std::allocator<char*> >*)::{lambda(long, long)#1}>(unsigned char*, char**, unsigned long, long, facebook::velox::exec::HashTable<true>::buildFullProbe(facebook::velox::exec::ProbeState&, unsigned long, char*, bool, long, long, std::vector<char*, std::allocator<char*> >*)::{lambda(char*, long)#2}, facebook::velox::exec::HashTable<true>::buildFullProbe(facebook::velox::exec::ProbeState&, unsigned long, char*, bool, long, long, std::vector<char*, std::allocator<char*> >*)::{lambda(long, long)#1}, long&, bool, long) (this=0x7fe68d7eb450,
    tags=0x7fe1bfc00000 "\250\306\370\262\242\353", <incomplete sequence \320>, table=0x7fe1bdc00000, sizeMask=4194303, firstKey=-8, compare=..., insert=..., numTombstones=@0x5555658e7c28: 0, extraCheck=false, partitionEnd=4194303)
    at /data00/ebe/velox/velox/exec/HashTable.cpp:189
#3  0x000055555be4b044 in facebook::velox::exec::HashTable<true>::buildFullProbe (overflows=0x0, partitionEnd=4194303, partitionBegin=0, extraCheck=false, inserted=0x7fe6b41e67d4 "ĉ\020", hash=17603709922309046260, state=..., this=0x5555658e7bb0)
    at /data00/ebe/velox/velox/exec/HashTable.cpp:1015
#4  facebook::velox::exec::HashTable<true>::insertForJoin (this=0x5555658e7bb0, groups=0x7fe6700565d0, hashes=0x7fe670087fe0, numGroups=1, partitionBegin=0, partitionEnd=4194303, overflow=0x0) at /data00/ebe/velox/velox/exec/HashTable.cpp:1079
#5  0x000055555be4bc6c in facebook::velox::exec::HashTable<true>::parallelJoinBuild (this=0x5555658e7bb0) at /data00/ebe/velox/velox/exec/HashTable.cpp:839

System information
Velox System Info v0.0.1
Commit: 1eaa9a475f8e6af1bafab6b52674f08e0e44e227
CMake Version: 3.25.1
System: Linux-4.19.0-16-amd64
Arch: x86_64
C++ Compiler: /usr/bin/c++
C++ Compiler Version: 9.5.0
C Compiler: /usr/bin/cc
C Compiler Version: 12.2.0
CMake Prefix Path: /usr/local;/usr;/;/usr;/usr/local;/usr/X11R6;/usr/pkg;/opt
Relevant logs
No response

@xiaoxmeng, @mbasmanova  Any news?

@ebeworld We won't be able to get to this for some time. Would you like to help fix this bug?

HashTable.cpp L93 should be -1 instead of sizeMask - 1.We insert the overflow without partition bounds. So if the insert goes to the last bucket it would be considered an overflow instead of wrapping around to the start of thetable, which it should do.


OCPBUGS-754: mount /run/udev into the agent container

IPA uses pyudev to fetch WWNs and serial numbers. Without /run/udev,
pyudev returns empty values for them.
(cherry picked from commit aa1d2bd666fd02f3d996005bdbf05ba29d30f366)

/label backport-risk-assessed

/jira refresh

/label cherry-pick-approved


google drive, discord webpage error (may be more) (yes this is a similar post but newer version) (Win 32 build only)

System Details

OS: 7 10
version:( both SS2 and SS3 win 32)

Problem

the problems still persist...

Same here. I downgraded back to the Jan. 17 M119 release so I can get google drive working again.

same issue here with win 7 32bit os and sse3 32-bit thorium newest version,after sign-in in discord,site gives error more specific in discord.com/app website status_violation.I like that back non-square tabs form in settings.

@Dratas @witchkiller9999 @xdeadstokex This issue in the 32 bit versions was fixed in a recent commit. Next build will be an updated version of M122, which will have this fix. Stay tuned!

@xdeadstokex Do you have #force-gdi turned on? Looks like GDI font. If so, It seems the spacing in the copyright is screwed up, it's too much to the left, and also causes Build! to be on another line

@Alex313031 i haven't check it yet (on a military course right now), but it was a fresh .zip extract and run in portable mode, so the setting and flags was not changed at all ( maybe the font is weird because i turned off all window visual effect, which may change the font of thorium)

@Alex313031 tested with the new 122 build SSE2 WIN 32 in win 10 64 bit (fresh zip run in portable mode) (im away from home so win 7 not yet tested)

Was about to say the same. I'm on win 8.1, tested with a fresh zip of the new SSE3 32-bit build, and google drive still crashed.

@witchkiller9999 Is this with the .158 build?

Yes.

@Alex313031 also tested on win 7 today, same result as above

telegram.org
Just like discord.
109 and SSE2 122.0.6261.158

@Alex313031
Good news: I'm happy to report that I got google drive to work in the newest release (M122 v3 SSE3 32-bit zip). I'm on win 8.1.
Bad news: When I upgraded from M119, the newest version said my settings were corrupt so I had to reset it, my extensions all stopped working, the browser profile sign-in refused to stay signed in when restarting, and I lost my browsing history due to my own misclick. So, I decided to just start over from a fresh install, and I spent the last 5 hours getting back to my normal setup.
Luckily, I had everything  (except history & cookies) backed up. Not going to create a new issue over this, since I don't even know how to describe what went wrong. But maybe this can serve as a warning for others trying to upgrade from the M119 release.

@witchkiller9999 normally, some setting will be reset if you update from any version, but ignore it, dont reset anything, that way nothing will be erased (I made the same mistake before but luckily nothing too bad happened), and remember to backup your user data first (just copy it somewhere else before installing newest version)

@Alex313031 i also test the v3 ss2 win 32 m122, discord,drive, etc... work slendidly, everything is back to normal now, so should i close this post ?

@Stepman123 @Dratas @xdeadstokex @witchkiller9999 This was an issue with 32 bit builds for all Thorium releases, both here and in the regular repo.
It was due to the fact that I cross-compile the Windows builds on Linux. When doing that, use_v8_context_snapshot is normally set to "false", but I was overriding it and setting it to true. This causes V8 to have memory overflows on some JavaScript-heavy sites (like the sites you guys were encountering the issue on). It was fixed in M122 in all the repos via a simple config change > https://github.com/Alex313031/thorium-legacy/commit/5582e51df3541864492f6f651c96cb4acb8a3f46 Notice I commented out the use_v8_context_snapshot line in all the 32 bit args.gn files, to just let the Chromium build toolchain decide the proper setting depending on whether one is natively compiling on Windows, or cross compiling for Windows on Linux.

Legacy versions 122.0.6261.168, both SSE2 and SSE3 still crash everywhere for me on Google Drive, Win10, Win11, Win XP, doesn't matter, on multiple different computers. Tested with clean profile, no settings were changed, no extensions installed, just opened the browser and went straight to Google Drive.

@UCyborg could you pls check chrome://version/ of your Thorium, as from my side , it work on intel and amd machines (from old to new one), and also I download the zip one, have not tested the installer one yet.

When doing that, use_v8_context_snapshot is normally set to "false", but I was overriding it and setting it to true.

Can this be changed in older versions? For example, how to find the signature in HEX and make a patch?

@UCyborg that version is not widely tested, I'm pleased with the 168 versions so I dont tested them bcs they are minor update branch (not for win 7 and above lol), so bugs are possible, 168 one will work with pretty much almost all window versions (maybe Alex forgot to make change to the XP one ? as the win 32 ones are fixed), welp, I guess in the mean time, you could use 168 version as it is stable and up-to-date.

I can confirm that the most recent legacy version with its installation file Thorium_SSE2_122.0.6261.168_WINXP_x32.zip, which is a bit mislabelled as it is actually the Thorium version SSE2 122.0.6261.169 WINXP 32-bit, was unfortunately not fixed in terms of the Google Drive bug. Tested in Windows XP 32-bit on an Intel Pentium 4 single-core CPU.

This issue has unfortunately returned in the latest release: Thorium_WIN32_SSE3_122.0.6261.171
Still the same setup as before: win 8.1 32-bit. Probably going to downgrade again until this gets fixed.

@witchkiller9999 Then best advice for ya, if it work, keep using it till it break, that is the way it is for most things, besides, usually there is no real big different in speed or feature between update, but feel free to report bug to Alex (I recommend open a new issue bcs this issue is closed so Alex might not check and knowing these bugs).

Not really familiar with github. I thought the issue could be re-opened?
Yes, I'm aware I could make a separate issue for what I said in the edit, but I already downgraded. If the dev asks for details on what's wrong, I won't be able to answer without going through the time consuming process of updating and slowing down my device again. I'll just have to be content with a side note.
So yes, it seems I'll be using the previous working release until it breaks. Or... you know... it could somehow get fixed in future releases.


Upate the db path handling to not using a current path

Update the db path handling to not using a current path.

I already have nutsdb database files.

ex) /home/ubuntu/go/src/github.com/cloud-barista/cb-spider/meta_db/dat/*.dat

I want to explore my data using nutsdb-cli in any path.

Before:

The CLI is only executed using the db file under the current path.

After:

I can explore my nutsdb data in any path.

But, If you have a reason with current path version, you can close this PR.

Wow, that was unexpected bug, haven't tried running with full path. Wonderful!
Hope nutsdb-cli helps you more than bothers

@av-elier Thanks for merging!


Correct file name generation for forcing data

Following code generates list of file names starting from f000 instead of f001 for medium range ( It works fine for short range):
start_date = "20221201"
end_date = "20221231"
short_f = list(range(1, 19))
medium_f = list(range(1, 241))

# forcings
configs = [
    (1, 5, 1, -1, start_date, end_date, short_f),  # Short_range
    (2, 5, 1, -1, start_date, end_date, medium_f),  # Medium range
]

prefix = ""
configuration_list = []
# configuration_list.extend([(*_c, start_date, end_date, "", 5) for _c in configs])
configuration_list.extend([(*_c, 5) for _c in configs]) # forcing

file_collections = [lnf.create_file_list(*_c) for _c in configuration_list]

Here is the first few list items
['gcs://national-water-model/nwm.20221201/forcing_medium_range/nwm.t01z.medium_range.forcing.f000.conus.nc',
'gcs://national-water-model/nwm.20221201/forcing_medium_range/nwm.t01z.medium_range.forcing.f001.conus.nc',
'gcs://national-water-model/nwm.20221201/forcing_medium_range/nwm.t01z.medium_range.forcing.f002.conus.nc',
'gcs://national-water-model/nwm.20221201/forcing_medium_range/nwm.t01z.medium_range.forcing.f003.conus.nc',
'gcs://national-water-model/nwm.20221201/forcing_medium_range/nwm.t01z.medium_range.forcing.f004.conus.nc',
.....]

closed by #37


Warnings for missing methods from superclass could include more info

Notice how it says "missing concrete implementation of setter 'List.length'". It would be nice if it showed the signature for length.
Better yet, it would be great if there was a quick fix that just added in those method. :)

@lukechurch
@sethladd - thanks for the report. I believe the resolution for this would be in the analysis engine.

Ah, that message comes straight from the analysis server? OK, I'll move the issue.

Moved!


UnsatisfiedLinkError: libsensor_msgs__rosidl_generator_c.so

Describe the bug
I got UnsatisfiedLinkError: libsensor_msgs__rosidl_generator_c.so. Is the problem related to ros2 or ros2-for-unity?

To Reproduce
Steps to reproduce the behavior:

add  image_pub = ros2Node.CreatePublisher<sensor_msgs.msg.CompressedImage>("image");  to talker.cs script

inside the lateUpdate() method
`
     Texture2D snapshot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false);
     snapCam.Render();
     RenderTexture.active = snapCam.targetTexture;
     snapshot.ReadPixels(new Rect(0,0,resWidth, resHeight), 0, 0);
     byte[] bytes = snapshot.EncodeToPNG();

     sensor_msgs.msg.CompressedImage ImageMsg = new sensor_msgs.msg.CompressedImage();

     ImageMsg.Data = bytes;
     ImageMsg.Format = "png";
     image_pub.Publish(ImageMsg);`

add a camera and link the render texture to camera

Link the talker.cs script and Unity Component.cs script to camera

Run the Unity simulation

Expected behavior
First, I did not receive any error but after some time Unity freezed and I got the link error because of the sensor_msgs.
Desktop (please complete the following information):

OS: [e.g. Ubuntu20.04]
ros2 distro [foxy]
ros2-for-unity version [latest]
ros2cs version [latest]
ros2 dds middleware [e.g. cyclonedds, fastdds]
ros2 environment setup [single pc]

I see that you are running the 1.1 version. Can you try the latest 1.2 release?

I also tried to ros2-for-unity-1.2.0 version. When I tried to run the unity with this version,  I got this error :

NullReferenceException: Object reference not set to an instance of an object
ROS2.ROS2UnityComponent.OnApplicationQuit () (at Assets/Ros2ForUnity/Scripts/ROS2UnityComponent.cs:160)

Also to give information, when I build the version 1.2.0 verison end of the building process I received this message :

Summary: 46 packages finished [7min 16s]
19 packages had stderr output: action_msgs actionlib_msgs builtin_interfaces diagnostic_msgs geometry_msgs lifecycle_msgs nav_msgs rcl_interfaces rosgraph_msgs sensor_msgs shape_msgs statistics_msgs std_msgs stereo_msgs test_msgs tf2_msgs trajectory_msgs unique_identifier_msgs visualization_msgs
cp: cannot stat '/home/mev/UnityProjects/Unity-Ros2/ros2-for-unity-1.2.0_new/src/Ros2ForUnity/metadata_ros2cs.xml': No such file or directory
cp: cannot stat '/home/mev/UnityProjects/Unity-Ros2/ros2-for-unity-1.2.0_new/src/Ros2ForUnity/metadata_ros2cs.xml': No such file or directory

@tgrmev
Looks like the meta files were not generated properly.
Could you run
python3 ./src/scripts/metadata_generator.py

from the ros2-for-unity dir and see if src/Ros2ForUnity/metadata_ros2cs.xml and src/Ros2ForUnity/metadata_ros2_for_unity.xml files were generated?

@tgrmev any luck following @pijaro advice?

hello, yes now i do not receive this error. Thanks.

Since this issue is already closed, it might be pointless to write a comment, but I got a similar error UnsatisfiedLinkError: libstd_msgs__rosidl_typesupport_c.so in my personal project with ros2-for-unity v1.2.
The reason was because I instantiated std_msgs.msg.String before instantiating ROS2UnityCore (I created the message at Awake() but I instantiated ROS2UnityCore in Start()).
It seems like internal class ROS2ForUnity plays an important role for loading libraries but it won't be instantiated unless creating ROS2UnityCore first.


Outdated instructions on seedsigner.com

When searching for "install seedsigner" on Google, the top 2 results are outdated instructions (using Raspberry Pi OS) on the official website.
I think they should be removed or updated.

Quick installation
Full installation

Best I can tell this has been resolved and both links now redirect to https://seedsigner.com where the release can be downloaded. @ottosch thanks for reporting this!


pull request for e2e test at 01/30/2017 03:45:12

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add Grid node definition

Story details: https://app.clubhouse.io/lumeo/story/1368
Grid node on Notion

Since it is pretty simple, I'll just merge. Hopefully I made no silly mistakes :smile:


Fix dead link in README.md

And copy over the text from the other README in docs/

Hm. Looks like your pull request is still from master. Could you rebase your branch to develop?

I think it'd be faster if you'll just copy and paste the change in your own clone of MathJax (don't worry about attribution, I just wanted a dead link fixed)


FIXED : 7297-POM Relearn All Elements POM to Mapped Elements POM fail…

FIXED : 7297-POM Relearn All Elements POM to Mapped Elements POM failed to produce the relativeXpath as expected
FIXED : 7296-POM Wizard Multiple Agents Issue

merged, please update tickets and implement comments on new branch and PR.


Gave a clean look to the SearchBox

changed emojis, adjusted spacing between buttons, aligned and gave added some space between title and buttons and removed the opacity effect of the whole searchbox.
Here are the screenshots:
PC Before

After

Phone Before

After

implemented in a different way.


Elasticsearch 8.0 removed support for interval in date_histogram aggregation types

See https://github.com/grafana/grafana/issues/19911
In ElasticSearch 7.2, the interval property was deprecated ( https://www.elastic.co/guide/en/elasticsearch/reference/7.2/search-aggregations-bucket-datehistogram-aggregation.html#_calendar_and_fixed_intervals ):
https://github.com/ongr-io/ElasticsearchDSL/blob/b4c3c8982bca497661139a1c2967a81f8f9bb9b6/src/Aggregation/Bucketing/DateHistogramAggregation.php#L92-L111
Either calendar_interval or fixed_interval should be used instead: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/search-aggregations-bucket-datehistogram-aggregation.html#calendar_and_fixed_intervals

We are maintaining a fork of this because of some compatibility problems with the original ibrary and merged today 8.x support in it https://github.com/handcraftedinthealps/ElasticsearchDSL/pull/18/files which was provided by @hkulekci.
Maybe that commits can be merged back into this library.

@alexander-schranz thank you very much for that fork, saved the day!


impossible to remove fixed-top

Hi, use Material Kit Free Version 2.0.5
If remove fixed-top from

<body class="index-page sidebar-collapse">
  <nav class="navbar navbar-transparent navbar-color-on-scroll fixed-top navbar-expand-lg" color-on-scroll="100" id="sectionsNav">...

it will broke header design

Hello @suslikt,
Thank you for using our products and sorry for this very late response. In case you didn't find any solution, here you go:

if you want to remove the "fixed-top" class,  you have to change the navbar-transparent class with the navbar-default
in order not to have a broken header design, you have to erase the margin-bottom of 20px for the .navbar class or to set a new property for the navbar: margin-bottom: 0px !important;
Hope that information helps you. Please let us know if we can help you with anything else.

All the best,
Stefan


Ban doesnt work

When I use banAll bot first tries to ban himself then crash.
https://cdn.discordapp.com/attachments/699876521086812292/785917937290575902/unknown.png

And the same happens when I try to kick all.

Can you take a full screenshot of all the errors?
Try run it with cmd to see all the errors when it crash.

The bot won't be able to ban itself (if it failed to ban a person it will skip that user), so you don't have to worry about this (But I'll fix this in c-realV2)
If you are using one of the "all" (like kickAll, banAll) command, it might be an caused by the intents (intents allows the bot to see the full list of members in the server. If the bot can't see the full list, then it won't be able to ban everyone) feature that discord added, and this will be fixed in c-realV2

fixed for normal bot versions in V2, but for selfbots I need to find another way


[Core] Cooldown, Rounding for Cast Time and GCD

Reverts wowsims/cata#745
Re-opening https://github.com/wowsims/cata/pull/723 so that we can fix issues with it @Polynomix

i can fix the shaman bug by adding a test to the shaman code without changing the core, but for the lava surge proc to reset lava burst cooldown when they happnes at the same time, i need the rounding that's causing issue to other specs

Can you explain why this is a rounding issue that causes the current incorrect behavior for Lava Surge? If I understand better what's happening, I might be able to suggest a less intrusive fix to make it work properly.

When you flame shock into lavaburst, if no haste procs in between the first tick of flame shock is going to happen at the same time as the end of the lava burst cast. So if that ticks procs lava surge, the cd of lava burst is going to be reseted. Now that dots ticks are rounded, in the sim they do not coincide anymore, the dot tick can happen before the end of the LvB cast.

When you flame shock into lavaburst, if no haste procs in between, the first tick of flame shock is going to happen at the same time as the end of the lava burst cast. So if that ticks procs lava surge, the cd of lava burst is going to be reseted. Now that dots ticks are rounded, in the sim they do not coincide anymore, the dot tick can happen before the end of the LvB cast.

Got it. So the issue with the Guardian sim wasn't related to cast time rounding, but due to the fact that you moved where the CD is actually set, which breaks any spell code that resets the CD within ApplyEffects(). So if you can find a way to implement the rounding without changing when the CD is triggered, that would fix the Guardian issue at least.

So the issue with the Guardian sim wasn't related to cast time rounding, but due to the fact that you moved where the CD is actually set, which breaks any spell code that resets the CD within ApplyEffects()

This can still be fixed easily even with what he already did. You just need to move the cd set a couple of lines up before the ApplyEffects. Setting the CD on the start of the cast instead of the finish is definitely wrong and I don't know how we've had it like this without any other issues.

You just need to move the cd set a couple of lines up before the ApplyEffects.

i'll try again tomorrow when i have more time. Also how does this revert PR works ? do i have to make a new one or pushing to my old branch will update this ?

You just need to move the cd set a couple of lines up before the ApplyEffects.

i'll try again tomorrow when i have more time. Also how does this revert PR works ? do i have to make a new one or pushing to my old branch will update this ?

The easiest way would be to pull down the revert-745-revert/pr-723 branch used for this current PR, commit any desired changes + push those, which should automatically update this PR.
If you don't have perms to push to this branch directly, then what you can do is merge this branch into your old branch locally, make changes in your old branch and push those, and then open another PR to merge your changes into this branch (rather than into master like we typically do). You can see an example of this type of a "PR into a PR" here, which got incorporated into this PR before it was merged.

@Polynomix @rosenrusinov @kayla-glick I've fixed this PR now to produce the desired behavior for Lava Surge without breaking other sims. By selectively reverting parts of the original PR, I determined that the actual rounding itself was causing zero issues for any other sims. Instead, several melee sims were exhibiting DPS losses due to the placement of the CD reset (discussed above), while several caster sims were exhibiting DPS losses due to changing the priority of the Hardcast PendingAction. I fixed the first issue by simply moving the CD reset code up a couple lines like @rosenrusinov suggested. The second issue is hard to diagnose, so I just reverted the priority to the prior default, and instead added custom handling for Lava Surge procs to allow for back-to-back Lava Burst casts to be possible. With these adjustments, the average DPS across all tests is now within noise of master for all other sims, while the Elemental test averages match the values from the original PR that was reverted.


Wrap on multi-caching doesn't work when no data is returned

See the short snippet below. The last console.log is never being executed because the getEmpty function doesn't return any data.
This is a major issue as it can result in a complete hang of an application.
const manager = require('cache-manager');

const cache = manager.multiCaching([
  manager.caching({ ttl: 300, store: 'memory' }),
  manager.caching({ ttl: 300, store: 'memory' })
]);

const key1 = 'key1';
const key2 = 'key2';

const getData = fn => setTimeout(() => fn(null, 'SOME_DATA'), 1000);
const getEmpty = fn => setTimeout(() => fn(null), 1000);

cache.wrap(key2, getData, (err, data) =>
  console.log(`RETURN FROM WRAP WITH DATA ${key1} (1)`, err, data));

cache.wrap(key2, getData, (err, data) =>
  console.log(`RETURN FROM WRAP WITH DATA ${key1} (2)`, err, data));

cache.wrap(key1, getEmpty, (err, data) =>
  console.log(`RETURN FROM WRAP WITHOUT DATA ${key2} (1)`, err, data));

cache.wrap(key1, getEmpty, (err, data) =>
  console.log(`RETURN FROM WRAP WITHOUT DATA ${key2} (2)`, err, data));

FYI this is the work around that I've had to apply:
// Workaround for https://github.com/BryanDonovan/node-cache-manager/issues/89
cache._wrap = module.exports.wrap;
cache.wrap = function (key, work, options, cb) {
  const _work = fn => work((err, data) => fn(err, data || null));
  return cache._wrap.call(this, key, _work, options, cb);
};

I believe overriding the isCacheableValue would work:
const cache = manager.multiCaching([
    manager.caching({ttl: 300, store: 'memory'}),
    manager.caching({ttl: 300, store: 'memory'})],
    {
        isCacheableValue: value => {
            return true;
        }
    }
);

.. but that would also persist (or try to persist) undefined in the cache store.
Maybe the real solution is to have a isReturnableValue function as mentioned here: https://github.com/BryanDonovan/node-cache-manager/pull/42

Don't you think it's weird that the functionality is different between using .wrap on multi-caching and wrap on an individual store?

Ah, yes that is weird.  I'm looking at the code and not seeing why it behaves differently between the multi and individual stores.  Do you see what's wrong there?
The null vs undefined thing is strange (and older versions of this library treated them equally), but null and undefined mean two entirely different things --  undefined is a lack of value whereas null can be and often is a value someone set on purpose.  But this is why you can override the isCacheableValue function.

This should be fixed now in 2.6.0


Only use FastCell on Android

Is there any fast way to only use FastCell on Android even if i had my forms project targeting Android and iOS?

I need to do the same, but for WinRT, since there is no FastCell implementation for that platform. Any news?


Attribute values missing on entities added on the fly

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
Html is added but with missing attributes
If the current behavior is a bug, please provide the steps to reproduce.
      let locations = [
        {
          latitude: "51.505867",
          longitude: "-0.075123",
          scale: [300, 300, 300],
          name: "Tower Bridge"
        },
        {
          latitude: "51.527631",
          longitude: "-0.152144",
          scale: [300, 300, 300],
          name: "Queen Mary's Garden"
        },
        {
          latitude: "51.556692",
          longitude: "-0.279666",
          scale: [300, 300, 300],
          name: "Wembley Stadium"
        }
      ]
      for (let i = 0; i < locations.length; i++) {
        let location = locations[i]
        const entity = document.createElement("a-entity");
        entity.setAttribute('gps-new-entity-place', `latitude: ${location.latitude}; longitude: ${location.longitude};`)
        entity.setAttribute("scale", location.scale);
        entity.setAttribute("look-at", "[gps-new-camera]")
        const pin = document.createElement('a-entity')
        pin.setAttribute('gltf-model', '/assets/map_pin/scene.gltf')
        entity.appendChild(pin)
        const text = document.createElement("a-text");
        text.setAttribute("scale", {
          x: 0.7,
          y: 0.7,
          z: 0.7,
        });
        text.setAttribute("position", {
          x: 0,
          y: 0.6,
          z: 0,
        });
        text.setAttribute("value", location.name);
        text.setAttribute("align", "center");
        entity.appendChild(text);
        document.querySelector('#location-grouping').appendChild(entity)
      }

Results in:
<a-entity gps-new-entity-place="" scale="" look-at=""><a-entity gltf-model=""></a-entity><a-text scale="" position="" value="Tower Bridge" align="center" text=""></a-text></a-entity>
<a-entity gps-new-entity-place="" scale="" look-at=""><a-entity gltf-model=""></a-entity><a-text scale="" position="" value="Queen Mary's Garden" align="center" text=""></a-text></a-entity>
<a-entity gps-new-entity-place="" scale="" look-at=""><a-entity gltf-model=""></a-entity><a-text scale="" position="" value="Wembley Stadium" align="center" text=""></a-text></a-entity>

As you can see, most of the attributes have missing values. I've attempted timeouts, doing this from AFRAME component inits or schemaUpdates, from window.onLoad.
What's weird though is I know that in some cases you can add new entities on the fly, for example:
let testEntityAdded = false;
 const entity = document.createElement("a-triangle");
 entity.setAttribute("scale", {
   x: 20,
   y: 20,
   z: 20,
 });
 entity.setAttribute("material", { color: "red" });
 const text = document.createElement("a-text");
 text.setAttribute("scale", {
   x: 4,
   y: 4,
   z: 4,
 });
 text.setAttribute("position", {
   x: 0,
   y: 1,
   z: 0,
 });
 text.setAttribute("value", "N");
 text.setAttribute("align", "center");
 entity.appendChild(text);
 document
   .querySelector("#camera")
   .addEventListener("gps-camera-update-position", (e) => {
     console.log("gps position updated", e.detail.position);
     entity.setAttribute("gps-new-entity-place", {
       latitude: e.detail.position.latitude + 0.001,
       longitude: e.detail.position.longitude,
     });
     if (!testEntityAdded) {
       // Add a triangle to the north of the initial GPS position
       document.querySelector("a-scene").appendChild(entity);
     }
     testEntityAdded = true;
   });

Which seems to work fine, however I can't for the life of me figure out what the difference is. Aframe docs seem to indicate that there shouldn't be any issues with adding entities with javascript on the fly, so I'm not sure what's going wrong here. I can only assume it's an issue with how ar.js initalises.
What is the expected behavior?
Entities are created without missing attributes
Also it seems like this has been an issue for over three years: https://stackoverflow.com/questions/62903240/setattribute-does-not-set-value

I'm not sure to be honest, but does the data of the gps-new-entity-place initialise properly?
In any case you can always initialise using the method shown in the second example, by passing in objects containing the attributes you want to set.

sorry for the naiv suggestion
aren't you missing a ; after let location = locations[i]
did you add some console.log in your code to check if you have the right values/variables/scopes?

@Platform-Group
happens inside of this
the attributes disappear when adding this js (same with the -nft)

this is to the extent of my poor knowledge
now i'll look into mine :)
all the best

@nickw1
Doesn't seem to make a difference if I change the setAttribute of gps-new-entity-place to an object:
      entity.setAttribute('gps-new-entity-place', {
        latitude: location.latitude,
        longitude: location.longitude
      })

<a-entity gps-new-entity-place="" scale="" look-at=""><a-entity gltf-model=""></a-entity><a-text scale="" position="" value="Tower Bridge" align="center" text=""></a-text></a-entity>

It does seem like gps-new-entity-place init() and update() are both getting latitude and longitude correctly somehow though. I added console logs and they come out fine:
gps-new-entity-place.js:17 init new {latitude: 51.556692, longitude: -0.279666} gps-new-entity-place.js:36 update new {latitude: 51.556692, longitude: -0.279666} x3
Odd that the attributes shown on the elements aren't correct and that they don't appear then.

Strange, I've used this method of setting attributes many times and it works, see the examples in the new-location-based directory within aframe in the repo, for example. Let me try your example. So the POIs don't appear at the expected place?

@herrpedro you don't need semicolons in js, you can see most are missing in my code, I normally don't bother with them but I'm currently copying bits in and out all over and I'm not bothering to lint too much and some are left in from copied example code.
And yes I checked the variables are all correct at various points, I also checked to see if it makes a difference as to whether or not I use strings vs floats for lat and long but it seems to be broken either way.
I do invite you and @nickw1 to give the code a try yourself, or if you have example code of something like this I'd love to see if I can figure out where I'm going wrong. I'm guessing there's a particular broken component or something that's caused the example to work and my code to not work.

See for example:
https://github.com/AR-js-org/AR.js/blob/master/aframe/examples/new-location-based/poi/index.js
This is very similar in concept, it's adding the POIs using JSON returned from a web API, by dynamically setting gps-new-entity-place.

@Platform-Group I have got your code working, one issue was that the scale needs to be a JS object with attributes for x, y and z.
I had to make some changes as I don't have your pin asset, but this example works:
<!DOCTYPE html>
<html>
<head>
<title>AR.js A-Frame - Points of Interest Example</title>
<script src="https://aframe.io/releases/1.3.0/aframe.min.js"></script>
<script type='text/javascript' src='../../../../three.js/build/ar-threex-location-only.js'></script>
<script type='text/javascript' src='../../../build/aframe-ar.js'></script>
<script type='text/javascript' src='index.js'></script>
</head>
<body>
<a-scene vr-mode-ui='enabled: false' arjs='sourceType: webcam; videoTexture: true; debugUIEnabled: false' renderer='antialias: true; alpha: true'>
    <a-camera gps-new-camera='gpsMinDistance: 5; simulateLatitude: 51.505; simulateLongitude: -0.0751'></a-camera>
</a-scene>

</body>
</html>

JS:
window.onload = () => {

    const scene = document.querySelector("a-scene");

    let locations = [
        {
          latitude: "51.505867",
          longitude: "-0.075123",
          scale: { x: 20, y: 20, z: 20},
          color: 'yellow',
          name: "Tower Bridge"
        },
        {
          latitude: "51.527631",
          longitude: "-0.152144",
          scale: { x: 20, y: 20, z: 20},
          color: 'blue',
          name: "Queen Marys Garden"
        },
        {
          latitude: "51.556692",
          longitude: "-0.279666",
          scale: { x: 20, y: 20, z: 20},
          color: 'green',
          name: "Wembley Stadium"
        }
      ];

    for (let i = 0; i < locations.length; i++) {
        let loc = locations[i]
        const entity = document.createElement('a-entity');
        entity.setAttribute('gps-new-entity-place',
            `latitude: ${loc.latitude}; longitude: ${loc.longitude}`
        );
        entity.setAttribute("look-at", "[gps-new-camera]")
        entity.setAttribute("scale", loc.scale);
        const pin = document.createElement('a-box')
//        pin.setAttribute("scale", { x: 100000, y: 100000, z: 100000 } );
//        pin.setAttribute('gltf-model', '/assets/map_pin/scene.gltf')

        entity.appendChild(pin)
        pin.setAttribute("material", { color: loc.color });
        const text = document.createElement("a-text");
        text.setAttribute("scale", {
          x: 0.7,
          y: 0.7,
          z: 0.7,
        });
        text.setAttribute("position", {
          x: 0,
          y: 0.6,
          z: 0,
        });
        text.setAttribute("value", loc.name);
        text.setAttribute("align", "center");
        entity.appendChild(text);
 //       document.querySelector('#location-grouping').appendChild(entity)
        scene.appendChild(entity);
    }
};

yep. it works
but once simulateLatitute and simulateLongitude are removed and latlon coordinates of "locations" are adjusted to your location.... stops working (only works in ffox)

@herrpedro sorry, wrong path for the example:
Should be
https://github.com/AR-js-org/AR.js/tree/master/aframe/examples/new-location-based/poi
It's available in the repo and can be tested by starting a server in the root directory of the repo and navigating to the example.

Thanks @nickw1 that works great, do you know any way to turn on some kind of debugging though so I get error messages in my console for things like the wrong input type? Seems mad that it just silently fails so often, I could be making mistakes constantly and not know about it.

@Platform-Group great! Not sure but this may be of interest:
https://aframe.io/docs/1.4.0/introduction/visual-inspector-and-dev-tools.html


[Q] wandb.Image doesn't show as a image in wandb.ai web

I want to show the each channel of first batch which is 5 channels
So I used Wandb.Image on each channels and wandb.log.
However, on the wandb.ai web, it only showed the last image as an image and for the other images such as
real_img[0] ~ real_img[3] or sample[0] ~ sample[3] on the above example just showed up as graph.
did I do something wrong? or is it a bug?

Hi @Yoonho-Na thank you for writing in! May I ask what's the shape of real_img[cl] and sample[cl]? wandb.Image converts numpy arrays or instances of PIL image to PNGs. Here are our reference docs on Image data type. Can you also try with commit flag set to True and let me know if that works for you?

Hi Thank you for replying @thanos-wandb
the shape of real_img[cl] and sample[cl] is (5, 256, 256)
I was trying to visualize 256x256 grayscale image channel by channel.
and I also tried commit to True before and it was same.
I don't think commit would affect this issue.

Hi @Yoonho-Na which wandb version are you using? Can you replace your sample, real_img and cnnl variables to the following random values and see if that works properly?
sample = np.random.randint(low=0, high=256, size=(5, 128, 128))
real_img = np.random.randint(low=0, high=256, size=(5, 128, 128))
cnnl = 5

Another thing to try would be to append the real and fake variables of type wandb.image to an array and log them all together outside the loop. For instance you could do something similar to the following:
        import numpy as np
        import wandb
        wandb.init()
        examples = []
        for i in range(3):
            pixels = np.random.randint(low=0, high=256, size=(100, 100, 3))
            image = wandb.Image(pixels, caption=f"random field {i}")
            examples.append(image)
        wandb.log({"examples": examples})

Please let me know if any of these work for you or if you still experience this issue.

Hi @Yoonho-Na I wanted to check in with you and see if there are more updates regarding this issue you reported? thanks!

Hi @Yoonho-Na since we haven't heard back from you, I will close this ticket for now. Please let us know if you still experience any issues and we will keep investigating.


DirectXTexConvert.cpp UseWicConversion returns true for formats not supported for 'WicConversion'

When passing a tformat or sformat of

DXGI_FORMAT_B5G6R5_UNORM
DXGI_FORMAT_R8_UNORM
DXGI_FORMAT_B5G5R5A1_UNORM

to the 'UseWicConversion' function in file 'DirectXTexConvert.cpp' returns 'true' and then when  the 'DirectX::Convert' function tries to convert from these formats, it fails.
Returning 'false' for these values in 'UseWicConversion' seems to allow the image to convert successfully to DXGI_FORMAT_B8G8R8A8_UNORM via  the 'ConvertCustom()' function inside 'DirectXTex.cpp'.

What OS version are you using?

Windows 10, 64-bit build

Sorry, which build? Also, what function in particular is failing?

Sorry...
My Build is in the following directory:
Z:\git\vcpkg\buildtrees\directxtex\src\jun2020b-16a3afffb8\DirectXTex
So the build is from June.
The 'DirectX::Convert' Function is failing.
As I step through in the debugger, I can see the 'UseWICConversion' function to return true with the formats mentioned, causing the convert to fail.

How exactly do you see a failure? Does it return a failed value from IWICFormatConverter::CanConvert or somewhere else?
My test suite defintely covers cases like this, which work. For example, I just tried a DXGI_FORMAT_B5G5R5A1_UNORM -> DXGI_FORMAT_R8_UNORM case and it (a) took the WIC code path, (b) got a canConvert true result from IWICFormatConverter, and (c) completed the entire conversion path.
Also, you have explicitly initialized COM on the calling thread, correct?

Note if I do not initialize COM in my tests, then the HRESULT from ConvertUsingWIC is E_NOINTERFACE. If that's what you are getting, the problem is that you didn't initialize COM.

Ok, it does look like I skipped the com initialize in this case.
Do you have the test cases on GitHub?
I've also got messed up looking images converting to 'DXGI_FORMAT_R8G8B8A8_UNORM' from
DXGI_FORMAT_B4G4R4A4_UNORM
DXGI_FORMAT_A8_UNORM
DXGI_FORMAT_R8G8_UNORM
And I'd like to see if these test cases are covered too.
It would also be incredibly helpful for anyone wanting to submit a pr to be able to run regression tests

I'll take a look at those other cases.  The test suite is actually linked from the side-bar on the wiki.
It's here: https://github.com/walbourn/directxtextest/wiki

That's awesome.
Thank you for the links and thank you for being incredibly responsive to this project. :)


Fix the dependency issues with log4J and use the latest release versi…

…on of geode (1.4.0)

First of all, it seems the PR is breaking the tests. Secondly, it seems that your branch was out of sync. Since the changes are not logical and not that many I suggest, we close this and we open a new PR that will use the latest master and contain the changes you prefer for Log4J. Finally, it would be nice if the title is a summary of your work and the description is self-contained. It helps when reviewing PRs.

I created this PR by mistake on the main project. I just wanted to pull in to my fork and create a separate PR for main project.


Hide this file and prevent it from being downloaded

Heya, very new to butler so apologies if this issue is just me misunderstanding something.
I put off using butler for a long time because I'm always afraid that automated tools will set stuff live before I'm ready. I figured it was just safer to use the website than risk it.
Anyway, my number 1 feature request for butler is this: a flag on butler push commands that defaults new uploads as "Hide this file and prevent it from being downloaded" on the itch.io site. Something like
butler push builds/ user/game:channel --hidden=true
or whatever!
Or: if butler actually does behave this way already, and you don't need to worry about builds going live without authorisation (I'm still unclear about how this works), then say so prominently in the first or second pages of the documentation, preferably in a 90's geocities style animated gif or marquee element text. (It was my biggest question about the whole process, seriously.)

:+1: from me too!

and then copy builds from "beta" to "default" using the web UI whenever a human says it's ready

Much lower priority, but consider also providing some API (or even butler command) aside of the web UI. External tools (like GitLab) could be then used to manage deployment across various services :)


Error inside of watch propmpt

When you are inside the watch prompt in which the script asks you to either {watch, set, remove, update, download} and you pick the download option an error pops out saying ERROR: __init__() got an unexpected keyword argument 'range_size'.

Im seeing the same, did you check the solution at https://github.com/vn-ki/anime-downloader/issues/212#issuecomment-511667431?


Shree: Watch instantbulksmtp.com

Shree requests the watch of the watch_keyword instantbulksmtp\.com. See the MS search here and the Stack Exchange search here.

instantbulksmtp\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Coverage remained the same at 63.487% when pulling 7b8273fc0812d64400bf29b2fd1c9a8ff008d0ce on auto-blacklist-1537436407 into a8e6e2c78cf26c162ca02c96786555de536d0ce2 on master.

!!/approve


MirroredStrategy slows down training

My expectation was that the training time would be drastically reduced by using MirroredStrategy with multi-gpu (4 in my case). However I see the average step time gets increased significantly. Could you please advice on what is the problem?
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu

TensorFlow installed from (source or binary): binary

TensorFlow version (use command below):('v1.12.1-35610-gd8c49c2fde', '2.4.0-dev20200701')
tf-estimator-nightly       2.4.0.dev2020063001
tf-nightly                 2.4.0.dev20200701

Python version: 3.7

CUDA/cuDNN version:

GPU model and memory:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM2...  On   | 00000000:00:1B.0 Off |                    0 |
| N/A   38C    P0    50W / 300W |  15450MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla V100-SXM2...  On   | 00000000:00:1C.0 Off |                    0 |
| N/A   37C    P0    54W / 300W |  15450MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla V100-SXM2...  On   | 00000000:00:1D.0 Off |                    0 |
| N/A   36C    P0    55W / 300W |  15522MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla V100-SXM2...  On   | 00000000:00:1E.0 Off |                    0 |
| N/A   37C    P0    55W / 300W |  15522MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

== cuda libs  ===================================================
/usr/local/cuda-9.2/doc/man/man7/libcudart.so.7
/usr/local/cuda-9.2/doc/man/man7/libcudart.7
/usr/local/cuda-9.2/lib64/libcudart.so.9.2.148
/usr/local/cuda-9.2/lib64/libcudart_static.a
/usr/local/cuda-9.0/doc/man/man7/libcudart.so.7
/usr/local/cuda-9.0/doc/man/man7/libcudart.7
/usr/local/cuda-9.0/lib64/libcudart.so.9.0.176
/usr/local/cuda-9.0/lib64/libcudart_static.a
/usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudart.so.10.1.243
/usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudart_static.a
/usr/local/cuda-10.1/doc/man/man7/libcudart.so.7
/usr/local/cuda-10.1/doc/man/man7/libcudart.7
/usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudart.so.10.2.89
/usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudart_static.a
/usr/local/cuda-10.2/doc/man/man7/libcudart.so.7
/usr/local/cuda-10.2/doc/man/man7/libcudart.7
/usr/local/cuda-10.0/doc/man/man7/libcudart.so.7
/usr/local/cuda-10.0/doc/man/man7/libcudart.7
/usr/local/cuda-10.0/lib64/libcudart.so.10.0.130
/usr/local/cuda-10.0/lib64/libcudart_static.a
/usr/local/cuda-8.0/doc/man/man7/libcudart.so.7
/usr/local/cuda-8.0/doc/man/man7/libcudart.7
/usr/local/cuda-8.0/lib64/libcudart.so.8.0.61
/usr/local/cuda-8.0/lib64/libcudart_static.a
== tensorflow installed from info ==================
== python version  ==============================================
(major, minor, micro, releaselevel, serial)
(3, 6, 10, 'final', 0)
Describe the current behavior
#average step for single-gpu
Epoch 2/50
8/8 [==============================] - 0s 5ms/step - loss: 0.7215 - accuracy: 0.5620 - val_loss: 0.6550 - val_accuracy: 0.7213
#average step for multi-gpu, is more than 10 times slower!!
Epoch 2/50
2/2 [==============================] - 0s 224ms/step - loss: 0.6756 - accuracy: 0.5702 - val_loss: 0.6435 - val_accuracy: 0.6885
Describe the expected behavior
I expect the average step time to be reduced to 1/4, given that there are 4 gpu's doing data splitting and processing in parallel
Standalone code to reproduce the issue
source code from: https://keras.io/examples/structured_data/structured_data_classification_from_scratch/
import tensorflow as tf
import numpy as np
import pandas as pd
from tensorflow import keras
from tensorflow.keras import layers

from tensorflow.keras.layers.experimental.preprocessing import Normalization
from tensorflow.keras.layers.experimental.preprocessing import CategoryEncoding
from tensorflow.keras.layers.experimental.preprocessing import StringLookup

#tf.debugging.set_log_device_placement(True)

file_url = "https://storage.googleapis.com/applied-dl/heart.csv"
dataframe = pd.read_csv(file_url)

val_dataframe = dataframe.sample(frac=0.2, random_state=1337)
train_dataframe = dataframe.drop(val_dataframe.index)

print(
    "Using %d samples for training and %d for validation"
    % (len(train_dataframe), len(val_dataframe))
)

def dataframe_to_dataset(dataframe):
    dataframe = dataframe.copy()
    labels = dataframe.pop("target")
    ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels))
    ds = ds.shuffle(buffer_size=len(dataframe))
    return ds

train_ds = dataframe_to_dataset(train_dataframe)
val_ds = dataframe_to_dataset(val_dataframe)

for x, y in train_ds.take(1):
    print("Input:", x)
    print("Target:", y)

def encode_numerical_feature(feature, name, dataset):
    normalizer = Normalization()

    feature_ds = dataset.map(lambda x, y: x[name])
    feature_ds = feature_ds.map(lambda x: tf.expand_dims(x, -1))

    normalizer.adapt(feature_ds)

    encoded_feature = normalizer(feature)
    return encoded_feature

def encode_string_categorical_feature(feature, name, dataset):
    index = StringLookup()

    feature_ds = dataset.map(lambda x, y: x[name])
    feature_ds = feature_ds.map(lambda x: tf.expand_dims(x, -1))

    index.adapt(feature_ds)

    encoded_feature = index(feature)

    encoder = CategoryEncoding(output_mode="binary")

    feature_ds = feature_ds.map(index)

    encoder.adapt(feature_ds)

    encoded_feature = encoder(encoded_feature)
    return encoded_feature

def encode_integer_categorical_feature(feature, name, dataset):
    encoder = CategoryEncoding(output_mode="binary")

    feature_ds = dataset.map(lambda x, y: x[name])
    feature_ds = feature_ds.map(lambda x: tf.expand_dims(x, -1))

    encoder.adapt(feature_ds)

    encoded_feature = encoder(feature)
    return encoded_feature

def build_model():
    sex = keras.Input(shape=(1,), name="sex", dtype="int64")
    cp = keras.Input(shape=(1,), name="cp", dtype="int64")
    fbs = keras.Input(shape=(1,), name="fbs", dtype="int64")
    restecg = keras.Input(shape=(1,), name="restecg", dtype="int64")
    exang = keras.Input(shape=(1,), name="exang", dtype="int64")
    ca = keras.Input(shape=(1,), name="ca", dtype="int64")

    thal = keras.Input(shape=(1,), name="thal", dtype="string")

    age = keras.Input(shape=(1,), name="age")
    trestbps = keras.Input(shape=(1,), name="trestbps")
    chol = keras.Input(shape=(1,), name="chol")
    thalach = keras.Input(shape=(1,), name="thalach")
    oldpeak = keras.Input(shape=(1,), name="oldpeak")
    slope = keras.Input(shape=(1,), name="slope")

    all_inputs = [
        sex,
        cp,
        fbs,
        restecg,
        exang,
        ca,
        thal,
        age,
        trestbps,
        chol,
        thalach,
        oldpeak,
        slope,
    ]

    sex_encoded = encode_integer_categorical_feature(sex, "sex", train_ds)
    cp_encoded = encode_integer_categorical_feature(cp, "cp", train_ds)
    fbs_encoded = encode_integer_categorical_feature(fbs, "fbs", train_ds)
    restecg_encoded = encode_integer_categorical_feature(restecg, "restecg", train_ds)
    exang_encoded = encode_integer_categorical_feature(exang, "exang", train_ds)
    ca_encoded = encode_integer_categorical_feature(ca, "ca", train_ds)

    thal_encoded = encode_string_categorical_feature(thal, "thal", train_ds)

    age_encoded = encode_numerical_feature(age, "age", train_ds)
    trestbps_encoded = encode_numerical_feature(trestbps, "trestbps", train_ds)
    chol_encoded = encode_numerical_feature(chol, "chol", train_ds)
    thalach_encoded = encode_numerical_feature(thalach, "thalach", train_ds)
    oldpeak_encoded = encode_numerical_feature(oldpeak, "oldpeak", train_ds)
    slope_encoded = encode_numerical_feature(slope, "slope", train_ds)

    all_features = layers.concatenate(
        [
            sex_encoded,
            cp_encoded,
            fbs_encoded,
            restecg_encoded,
            exang_encoded,
            slope_encoded,
            ca_encoded,
            thal_encoded,
            age_encoded,
            trestbps_encoded,
            chol_encoded,
            thalach_encoded,
            oldpeak_encoded,
        ]
    )

    x = layers.Dense(32, activation="relu")(all_features)
    x = layers.Dropout(0.5)(x)
    output = layers.Dense(1, activation="sigmoid")(x)
    model = keras.Model(all_inputs, output)
    model.compile("adam", "binary_crossentropy", metrics=["accuracy"])
    return model

model_single_gpu = build_model()
model_single_gpu.fit(train_ds.batch(32), epochs=50, validation_data=val_ds.batch(32))

mirrored_strategy = tf.distribute.MirroredStrategy()
with mirrored_strategy.scope():
    model_multi_gpu = build_model()
model_multi_gpu.fit(train_ds.batch(32*4), epochs=50, validation_data=val_ds.batch(32*4))

@guptapriya @nikitamaia I couldn't include the profile information you requested due to a bug in TF profiler that makes it crash when the model has a preprocessing layer to encode categorical string inputs. The code to reproduce the error is in https://github.com/tensorflow/tensorflow/issues/41244
Having said that, I observed the same behavior of slowness happening with MirroredStrategy when using the only-numerical model

Hi @oscaralvaro, can you share your only-numerical model with profiler information? That could be a good place to start debugging if you were also seeing a slowdown with that model.

Hi @nikitamaia I will try to get some bandwidth this week to work in providing the example as you are requesting

@oscaralvaro Hi, is there any progress?


Handle spelling in Prolog syntax file

It makes the Vim spell checker highlight spelling mistakes in comments and strings only. Without this patch, Vim spell checking will also highlight "spelling mistakes" in Prolog atoms.
Signed-off-by: Anton Kochkov<EMAIL_ADDRESS>

can you please also update https://github.com/vim/vim/blob/master/.github/CODEOWNERS ?

can you please also update https://github.com/vim/vim/blob/master/.github/CODEOWNERS ?

@chrisbra done.

@chrisbra done.

I'll include it, thanks.

I'll include it, thanks.


"SyntaxError" for the Snakefile located in the directory which name cntains an apostrophe symbol

Environment: Snakemake 5.4.5, Python 3.6.5, Windows 10, MinGW.
Way to reproduce: take a fully valid project and put into a directory that has an apostrophe in it’s name, e.g. “I’ll not work“, try to run. The Snakemake raises an SyntaxError “invalid syntax“ on the first rule found. Rename the directory back and remove the apostrophe, e.g. “I will work“, the project works again.

This is because in workflow.py it calls exec(compile(code, snakefile, "exec"), self.globals)
The snakefile variable in this code contains the path to your Snakefile, which contains an apostrophe. The apostrophe is parsed literally and interpreted by python as a quote, causing syntax error.
Easy fix is just to remove the apostrophe in file path, like you've discovered. In general it is bad practice to use characters like ", ',  (space) in your file or path names because these characters usually hold special places in programs.

I agree that it is a minor issue but Snakemake shouldn't depend on the path of the project folder. The symbols like apostrophe should be escaped before the exec invocation, moreover it shouldn't be a confusing SyntaxError. Anyway there must be other problems caused by not escaping symbols before exec invocation.

Hi,
Actually the call in workflow.py fails because of the value of code, not because of the value of snakefile. The root cause is in the parser.py module:
    snakefile=self.snakefile.path.replace('\\', '\\\\')

After this partial escaping, the resulting string is enclosed in single quotes. It seems to me this logic should simply be replaced by repr() which robustly quotes strings for use in Python code, and a quick test confirms this seems to fix the issue. I can see several other instances in this file that appear to be crying out for repr(foo) instead of
'"{}"'.format(foo) so I'm going to try and prepare a full PR with all of them fixed.


Is it possible to get Blendshape data from motion builder to unreal?

hi,
Is it possible to get Blendshape data from motion builder to unreal?

We've been desperately trying too but unsuccessful so far :(

Yes, streaming blendshapes is supported.
You need to change to "Full Hierarchy" mode from the MotionBuilder device and include the model that has the blendshapes in the hierarchy.
The blendshapes will be streamed as curves to UE4 with the name :
In your UE4 project:

Create a new Blueprint class of type "Live Link Remap Asset"
Overwrite the "GetRemappedCurveName" function
In the function add a Split String node with the InStr of ":" and return the Right part of the string.
The idea is to change the Curve name from : to just
Use the created LiveLinkRemapAsset BP in the your LiveLinkPose node in the AnimBP.

Hi Ekorkuti,
Thanks for the feedback.
Can we ask for a printscreen of this blueprint please?

Yes, streaming blendshapes is supported.
You need to change to "Full Hierarchy" mode from the MotionBuilder device and include the model that has the blendshapes in the hierarchy.
The blendshapes will be streamed as curves to UE4 with the name "objectName:blendshapeName"
In your UE4 project:

Create a new Blueprint class of type "Live Link Remap Asset"
Overwrite the "GetRemappedCurveName" function
In the function add a Split String node with the InStr of ":" and return the Right part of the string.
The idea is to change the Curve name from "objectName:blendshapeName" to just "blendshapeName".  You can also add a check that the Left part of the Curve Name corresponds to the "objectName" so that you are changing only the blendshape curves.
Use the created LiveLinkRemapAsset BP in the your LiveLinkPose node in the AnimBP.

can u please

Yes, streaming blendshapes is supported.
You need to change to "Full Hierarchy" mode from the MotionBuilder device and include the model that has the blendshapes in the hierarchy.
The blendshapes will be streamed as curves to UE4 with the name "objectName:blendshapeName"
In your UE4 project:

Create a new Blueprint class of type "Live Link Remap Asset"
Overwrite the "GetRemappedCurveName" function
In the function add a Split String node with the InStr of ":" and return the Right part of the string.
The idea is to change the Curve name from "objectName:blendshapeName" to just "blendshapeName".  You can also add a check that the Left part of the Curve Name corresponds to the "objectName" so that you are changing only the blendshape curves.
Use the created LiveLinkRemapAsset BP in the your LiveLinkPose node in the AnimBP.

I have tried it as you mentioned but unable to stream blendshapes....could you please provide screenshots or project file.
thank you

We've tried too and don't work!

Thanks, it works now!
Best Regards

I am new to unreal, can someone detailed about attached two nodes?

Its working Thank you...

"Use the created LiveLinkRemapAsset BP in the your LiveLinkPose node in the AnimBP."
Would you mind explaining this a bit? New to BP, sorry.

If anyone else is struggling, we managed to figure it out. Select the LiveLinkPose node in the animation blueprint, in the details panel you can select the remap asset blueprint.
But I have to say, this workaround makes an otherwise reliable, effecient and simple worflow rather painful. As BP's aren't my main thing, I have to bookmark this page and copy the setup each time we want to set up the plugin.

how i can remap the range and incrase it of the value that i riceve from iphone?
example: value from iphone is 0 to 1, i need increase from 0 to 2.
i can do it with "remap curve elements"?


Bug fix #489

Changing the key value "MemoryCost" returned from hash.StandardScrypt.Config() to "cpuMemCost"

/lgtm

cc @lahirumaramba

Hi @pragatimodi Thank you for the PR! Would you be able to change the base to dev, please?


hyphen handling

Hi!
First: for me hyphen placement is more a physical thing that I spontaneously should let the "exolve-grid" handle. With something like "-" or "!" after a letter.
But with your design I have some questions:

How to make a hyphened word in a multiword clue (except the first word)?
https://fripp.changeip.org/melodikryss/melodikryss1/index_clues.html (2d, 3d)

Is it a bug or a feature that the hyphen exist in 20d?  For me it is definitely be a feature! So for me it would be great if the hyphen wasn't chopped. (I needed it in a swedish name "Sven-Erik")

Is it possible to add hyphen in nodir clues?

Thanks!
/Erik S

And now I realize I could even like an option to place the hyphen before the first letter also.
/Erik S

Oops. I now see "!" is already used... but perhaps ":" or something...

Not quite sure what you mean. If you provide the enum like

  2, 3 This should be a-b cde-f (1-1 3-1)
that should work I think.

Hmm, I don't want the hyphen to stick out of the box. Letting it reemerge from the other box would work, but it's a lot of code complexity for a corner case.

3, etc. I think you can simply write a function to place a hyphen wherever you want, and call it from customizeExolve(). This would be similar to the function that I had sketched for placing the "turning" symbol. Below is a (slightly modified so that you can adapt it) copy of the relevant part of code that creates hyphens:
      let gridCell = puz.grid[row][col]
      if (gridCell.hyphenToRight) {
        const hyphenRect =
            document.createElementNS('http://www.w3.org/2000/svg', 'rect');
        hyphenRect.setAttributeNS(null, 'x',
            puz.cellLeftPos(col + 1, puz.GRIDLINE - puz.hyphenWBy2));
        hyphenRect.setAttributeNS(null, 'y', puz.cellTopPos(
            row, puz.GRIDLINE + puz.squareDimBy2 - puz.SEP_WIDTH_BY2));
        let hw = (col + 1) < puz.gridWidth ? puz.hyphenW : puz.hyphenWBy2
        hyphenRect.setAttributeNS(null, 'width', hw);
        hyphenRect.setAttributeNS(null, 'height', puz.SEP_WIDTH);
        hyphenRect.style.fill = puz.colorScheme['separator']
        puz.svg.appendChild(hyphenRect)
      }
      if (gridCell.hyphenBelow) {
        const hyphenRect =
            document.createElementNS('http://www.w3.org/2000/svg', 'rect');
        hyphenRect.setAttributeNS(null, 'x', puz.cellLeftPos(
            col, puz.GRIDLINE + puz.squareDimBy2 - puz.SEP_WIDTH_BY2));
        hyphenRect.setAttributeNS(
            null, 'y', puz.cellTopPos(row + 1, puz.GRIDLINE - puz.hyphenWBy2));
        hyphenRect.setAttributeNS(null, 'width', puz.SEP_WIDTH);
        let hh = (row + 1) < puz.gridHeight ? puz.hyphenW : puz.hyphenWBy2
        hyphenRect.setAttributeNS(null, 'height', hh);
        hyphenRect.style.fill = puz.colorScheme['separator']
        puz.svg.appendChild(hyphenRect)
      }

Thank you for the "3". Then I can fiddle with stuff in a generic way.

I totally understand your "2". Sounds resonable. Very special demand from me...

But the "1"... I wonder if it is some kind of bug then...

At least my "2, 3	linked (1-1 2-2)" from my example:
https://fripp.changeip.org/melodikryss/melodikryss1/index_clues.html (2d, 3d)
does only give one hyphen in the two words (2d, 3d).

Yes, thanks, this does look like a bug! I will fix it.

I looked into the code to fix this "bug", but realized that I had a typo above, unfortunately.
It should be (1-1, 2-2) (there should be a comma to indicate a space, as is usual in crosswords). I have also updated it in my comment above.

OK. But for me it doesn't work with: 2, 3 linked (1-1, 2-2) or 2, 3 linked (1-1,2-2)
Without comma the first hyphen shows.
With comma the whole puzzle disappears.

Ah, this is indeed a bug that I can see now, but for now there is a workaround for you. If you also add 3d in your down clues, with any dummy text, it should work. For example:
  exolve-down:
    2,3 linked (1-1, 2-2)
    3 see 2d

With v0.90 that I have now checked in, the hyphen in the linked clue should get rendered even if the linked clue is not explicitly listed in the list of clues.

For me all this is perfectly solved in 0.95.


externs

I'd like to have this here https://github.com/cljsjs/packages
but I don't know where to start on how to write the externs file
This tool is quite useful http://www.dotnetwise.com/Code/Externs/index.html
but I don't know which symbols to ask the tool about (Picker and what else ?)
Any help appreciated.

Out of scope for this project.. but seems like pickadate is there now.


when I try to import a module, IntelliSense doesn't show built-in Node.js modules

Type: Bug

Install extension (Nightly version)
Create .js file
Write import fs from 'node:'

Actual result:
IntelliSense doesn't display built-in modules.
Expected result:
IntelliSense displays a list of built-in modules.
If I install a previous version of the extension, everything works as expected.
Extension version: 5.5.20240222
VS Code version: Code 1.86.2 (903b1e9d8990623e3d7da1df3d33db3e42d80eda, 2024-02-13T19:41:37.860Z)
OS version: Linux x64 6.5.0-17-lowlatency
Modes:

System Info

Item
Value

CPUs
12th Gen Intel(R) Core(TM) i9-12900H (20 x 4449)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
2, 2, 2

Memory (System)
62.49GB (41.92GB free)

Process Argv
--new-window --crash-reporter-id ce669b5b-342e-409e-8360-6778022322a2

Screen Reader
no

VM
0%

DESKTOP_SESSION
plasmawayland

XDG_CURRENT_DESKTOP
KDE

XDG_SESSION_DESKTOP
KDE

XDG_SESSION_TYPE
wayland

A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805:30301674
binariesv615:30325510
vsaa593cf:30376535
py29gd2263:30899288
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythongtdpath:30769146
welcomedialogc:30910334
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
pythontbext0:30879054
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
bf62j303:30959262
pydisww2:30959801
d34g3935:30971562
edj9j583:30969295
a89i1917:30961429
7j2b6412:30969109
e3gdj431:30958358

This did indeed change at some point

New version (5.5.20240228) has the same problem.

I can’t reproduce this exactly; i.e., I can’t find an old version where we acquire the Node.js typings from just an incomplete import specifier of "node:". And on currently nightly, as well as the versions mentioned in the issue report, I see that once a complete import specifier is written once in the file, completions do work on subsequent module specifiers.

I think the behavior I’m seeing is working as intended, though it could be a nice enhancement to fetch the Node.js typings as soon as we see node: instead of waiting for a complete match. @almaceleste, can you confirm that things work after one import has been written by hand and left in the file?

In newer versions I can't reproduce this problem either.
Apparently, the issue can be closed.


Register-ObjectEvent on Linux - Different behavior

Steps to reproduce
This only seems to affect Linux. PS Core on Windows behaves as expected.
$timer = [timers.timer]::new()
$timer.Interval = 500

Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Random -Action { write-host "$(get-date)" }

$timer.Enabled = $true

Expected behavior
PS /mnt/c/> 12/16/2018 20:46:39
                  12/16/2018 20:46:39
                  12/16/2018 20:46:40
                  12/16/2018 20:46:40
                  12/16/2018 20:46:41
                  12/16/2018 20:46:41
                  12/16/2018 20:46:42
                  12/16/2018 20:46:42
                  12/16/2018 20:46:43
                  12/16/2018 20:46:43
                  12/16/2018 20:46:44
                  12/16/2018 20:46:44
                  12/16/2018 20:46:45
                  12/16/2018 20:46:45
                  12/16/2018 20:46:46
                  12/16/2018 20:46:46
                  12/16/2018 20:46:47
                  12/16/2018 20:46:47
                  12/16/2018 20:46:48
                  12/16/2018 20:46:48
                  12/16/2018 20:46:49
                  12/16/2018 20:46:49
                  12/16/2018 20:46:50

Actual behavior
PS /mnt/c/>

It will hang until a key is pressed and then it's like it tries to execute as many of the action blocks that are queued until the prompt takes back over. The time stamps from Get-Date will all be exactly the same because they did not execute on the interval.
Environment data

Name                           Value
----                           -----
PSVersion                      6.1.1
PSEdition                      Core
GitCommitId                    6.1.1
OS                             Linux 4.4.0-17134-Microsoft #345-Microsoft Wed Sep 19 17:47:00 PST 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Confirmed as caused by PSReadline as @TylerLeonhardt mentioned in the Polaris issue.
Run Remove-Module PSReadline and the expected behavior returns on Linux.

Closing issue and moving to PSReadline's repo

I was able replicate the same behaviour in an ubuntu VM, besides removing psreadline, which turns off tab completion completely, any other workaround?


Replaced default carousel arrows with custom components

Additional fixes made to elements based off a Lighthouse audit that could present slightly better performance / SEO

How about this last method?
Just added another wrapper to add similar paddings without having to increase the distance between the thumbnails

Yeah, this looks better than the changes I proposed. Nice job :)


[WIP] Add Event Filters

Impl
Event Filtering
This branch adds annotation based event filtering to assist with reducing the amount of boilerplate necessary while writing event listeners.
Event type Filters
These filters are applied to the method and apply a range of filters based on the event object.
Include
This annotation allows you to listen to a supertype event (such as EntityEvent) and filter it to only receive a specified subset of the event type's subclasses.
    @Listener
    @Include({ InteractBlockEvent.Secondary.class })
    public void include(InteractBlockEvent event) {
        // This listener will only fire if the event is one of the included types
    }

Exclude
The opposite of include, this allows you to listen to a supertype event and filter it to not receive a specified subset of the event type's subclasses.
    @Listener
    @Exclude({ InteractBlockEvent.Secondary.class })
    public void exclude(InteractBlockEvent event) {
        // This listener will only fire if the event is not one of the excluded types
    }

IsCancelled
This will filter the event such that your listener will only be called if the event has been cancelled by a previous event listener. This is essentially the opposite of the ignoreCancelled flag on the Listener annotation.
    @Listener(order = Order.LATE, ignoreCancelled = false)
    @IsCancelled
    public void cancel(InteractBlockEvent.Secondary event) {
        // This listener will only fire if the event was previously cancelled
    }

Parameter Sources
These annotations are applied to additional parameters in the event handler method and specify a source for that parameter. If an object matching the source and type is not found in the cause then your listener is not called.
First
This gets the first object from the event Cause matching the parameter type.
A fairly typical event listener for a player event will go something like the following
    @Listener
    public void onInteract(InteractBlockEvent.Secondary event) {
        Optional<Player> player = event.getCause().first(Player.class);
        if(player.isPresent()) {
            //do something
        }
    }

With the @First annotation this can be simplified to the following
    @Listener
    public void first(InteractBlockEvent.Secondary event, @First Player player) {
        // This listener will fire if the event cause has a player
        // The player parameter will be the first player in the cause chain
    }

Last
Equivalent to First except it calls Cause#last(Class).
All
The All annotation allows you to receive all cause objects of a certain type. It must be applied to an array type and is equivalent to Cause#allOf(Class)
    @Listener
    public void all(InteractBlockEvent.Secondary event, @All Player[] players) {
        // This listener will fire if the event cause has at least one player
        // players will contain all players in the cause chain
    }

By default your listener will be skipped if the returned array would be empty, this can be disabled however by setting the ignoreEmpty flag to false.
    @Listener
    public void all(InteractBlockEvent.Secondary event, @All(ignoreEmpty = false) BiomeTypes[] players) {
        // This listener will always fire, as even if there are no BiomeTypes
        // objects in the cause chain (and there won't be) its set to not ignore
        // empty and therefore will simply return an empty array
    }

Parameter Filters
These filters apply additional conditions to a parameter. These require that the paramter also have a parameter source annotation (see above).
Has
This takes a data manipulator type and checks that the annotated data holder has a data manipulator of the specified type. If the object is not a DataHolder or does not have a matching manipulator then your listener is not called. Equivalent to DataHolder#has(Class).
Supports
Similar to Has except the it is only checked that the DataHolder supports the given data manipulator type. Equivalent to DataHolder#supports(Class).
A full example plugin can be found here
TODO:

[x] Add Root cause annotation
[x] remove ignoreCancelled from Listener

I'm really onboard with this concept because I can see it being used to cut out a few lines of code :P. I know I'd use it myself.

i agree although i would prefer if the event filter (subtype or cancelled state) to be applied to the method instead or alternativly to the param because its easier to read there

Not sure if the annotations should be really as subclasses, most code styles (including ours) will always import this like @EventTypeFilters.IsCancelled instead of @IsCancelled

Maybe we should remove the ignoreCancelled value from @Listener and move that whole functionality to Event Filter annotations.

@ST-DDT Could do yeah, it would change the target type which would be good because it would prevent you from applying these filters to any other parameters.
@Minecrell Thats a good point I'll move them out.
@saladoc I thought about that but the two functions are a little different. Although while thinking about it perhaps I could add a tristate to it to specify the three cases NOT_CANCELLED, IGNORE_CANCELLED, and ONLY_CANCELLED.

Nice

The annotation ignoreCancelled has been removed. Is there an analogue?

Add @IsCancelled(Tristate.FALSE) before your method in addition to @Listener.

@JBYoshi, i wrote code:
@Listener (order = BEFORE_POST)
@IsCancelled(Tristate.FALSE)
public void onChangeGrave(ChangeBlockEvent.Break event) {
    ...
}

The event will still be canceled.
Note: The old issue: https://github.com/SpongePowered/SpongeAPI/issues/900

To replicate the old ignoreCancelled you now do @IsCancelled(Tristate.UNDEFINED)

@simon816, thanks. Everything works well.


Macro Request - Custom Properties

The bottom line:  update/create custom properties in assembly components while also updating custom properties in the assembly at the same time OR by reading them from the assembly .
The setup:  I have assemblies of sheet metal parts with multiple configurations.  Most components within the assembly also have multiple configurations.  I need to modify the assemblies for specific jobs and add a job number and job name for tracking/identification.  For each component of the assembly, the job number gets prefixed to the permanent part number, and the "job name" custom property is updated.  That is a lot of repetitive updating of custom properties!  Can a macro take care of this job?
The assembly configuration typically gets set once per job which also sets the component configurations.

Check Properties+


$.Deferred never settles if element is removed from document, while Promise works

$('#it').velocity('slideUp').promise().then(() => {
	alert('resolved'); // never gets called
}, () => {
	alert('rejected'); // never gets called
});

$('#it').remove();

Fiddles:

The one with $.Deferred that does not work (you never see the alert) https://jsfiddle.net/prthszg7/5/
Analogous code with Promise does work https://jsfiddle.net/k04pw25w/3/

jQuery before version 3 did not use real promises - this is an issue with old versions of jQuery - https://jquery.com/upgrade-guide/3.0/#breaking-change-and-feature-jquery-deferred-is-now-promises-a-compatible


ddl: remove the CHECK clause warning generated in parser

What problem does this PR solve?
Fix issue #601
What is changed and how it works?
Remove the warning generated for ALTER CHECK, DROP CHECK, CONTSRAINT, CHECK in parser repo, after that we can generate the warning in tidb repo to finish the issue.
Check List
Tests

No code

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.fangjiaming seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Added discount abstractions and tests

added discount abstraction API and tests for those
Pre-Flight checklist

[X] Testing

[X] Code is tested

What are the relevant tickets?
Fixes #310
What's this PR do?
Adds the discount calculation code as an abstract base class, and implementations for four discount types.
How should this be manually tested?
pytest should pass

Codecov Report

Merging #359 (f1492de) into main (4dc6d71) will increase coverage by 5.51%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #359      +/-   ##
==========================================
+ Coverage   91.43%   96.94%   +5.51%
==========================================
  Files         229      127     -102
  Lines        6803     2980    -3823
  Branches      581        0     -581
==========================================
- Hits         6220     2889    -3331
+ Misses        497       91     -406
+ Partials       86        0      -86

Impacted Files
Coverage Δ

ecommerce/factories.py

users/api.py

main/test_utils.py

courses/management/utils.py

main/message.py

openedx/utils.py

courses/serializers.py

users/management/commands/retire_users.py

main/views.py

courses/factories.py

... and 92 more

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 4dc6d71...f1492de. Read the comment docs.


add progress bar to http_get

I have discussed with the maintainer in issue-490, and encouraged to raise this PR.
Gist:
To use scispacy, some of the resources are fetched from web url, e.g. URL of tfidf_vectors_sparse. And the size of the resources could be up to 500M, thereby taking several miutes to complete downloading. Somehow scispacy download quietly without signals for users, so thet can't tell whether the progress stucks or not.
So I add a progress bar to the function http_get to let users know where they are.

Scispacy helps me a lot in my research, thanks for your contribution to our community. And thanks for your review.

Could you run the autoformatter? black scispacy --line-length 88
Otherwise, looks good to me, thank you!

OK.

There's something wrong with my downstream repo, I have to close this PR and raise a new one.
I have run the black formatter by the way.


Rename overpass_template to template.overpassql

*.overpassql is now the recommended file extension for Overpass QL: OSM Wiki: Overpass QL § File extension
(Disclaimer: I added that section after some discussion.)
I propose to rename all Overpass QL files in this repo to *.overpassql for consistency.
Context: GitHub's syntax highlighting engine requires that 200 repositories use the same file extension before they consider supporting that syntax and file extension: https://github.com/github/linguist/issues/5890

@ScorpioBroker Would a pull request be accepted?


add pylint action

Description
Please explain the changes you made here.
Checklist

[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Issue(s)
Fixes #<issue_number>; Fixes #<issue_number>; Fixes #<issue_number>...

Why PR didn't go anywhere? Looks useful.


Reverse migration not working

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Try out a migration from Container A to Container B
Complete the migration 100% but not click on the "Complete migration"
Update some records in the new container and insert new records in the new container
Try clicking on the Reverse migration to move the contents from Container B to Container A
The new element and updates will not be reflected in the Container A

Any log messages given by the failure

No logs

Expected/desired behavior

All the elements present in Container B should be reflected in Container A

OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)
Windows

Versions

All

Mention any other details that might be useful

reverse migration feature removed from V2 version of app.


[ORO-0] Adding hiprtc+comgr dlls to workaround the regression in 22.7.1

[ORO-0] Adding hiprtc to workaround the regression in 22.7.1 driver released at 7/26/2022.

[ORO-0] Created win64 subdir.

[ORO-0] Add hiprtc.dll and comgr dll

Co-authored-by: takahiroharada<EMAIL_ADDRESS>

Merged on another PR.


Register LogarithmicNumbers: 0.2.0

Registering: LogarithmicNumbers
Repository: https://github.com/cjdoris/LogarithmicNumbers.jl
Version: v0.2.0
Commit: 392a5d962a63fa91bcdc98fd2bd74a23fd0c4d69
Proposed by: @cjdoris
Reviewed by: @cjdoris
Reference: https://github.com/cjdoris/LogarithmicNumbers.jl/issues/1

TagBot tag

TagBot tag


v1.1.0

1.1.0 (16.05.2024)

Created a new function get_elements_by_class_name(name: str) -> list[HtmlElement] to retrieve all HTML element by its class.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

14 of 14 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.7%) to 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.7%

Covered Lines:
285

Relevant Lines:
285

💛  - Coveralls


Enable input from non-plain-text files

See issue #57.
This works by letting pandoc itself handle input from any file (instead of first reading the file into a string and then piping it to the pandoc subprocess via STDIN).
Additionally:

I suggest that temp files in the test suite be wrapped with with or try ... except ... finally, so that they're destroyed in spite of exceptions (see c95db7d)
on my machine at least, the test suite fails on both python 2.7 and 3.4 with the following error (irrespective of the modifications in this pull request):

======================================================================
ERROR: test_conversion_with_citeproc_filter (__main__.TestPypandoc)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./tests.py", line 133, in test_conversion_with_citeproc_filter
    outputfile=None, filters=filters)
  File "/home/dvl/cnk/src/pypandoc/pypandoc.py", line 94, in convert
    outputfile=outputfile, filters=filters)
  File "/home/dvl/cnk/src/pypandoc/pypandoc.py", line 135, in _convert
    outputfile=outputfile, filters=filters)
  File "/home/dvl/cnk/src/pypandoc/pypandoc.py", line 208, in _process_file
    'Pandoc died with exitcode "%s" during conversation: %s' % (p.returncode, stderr)
RuntimeError: Pandoc died with exitcode "83" during conversation: pandoc: Error running filter pandoc-citeproc
fd:4: hClose: resource vanished (Broken pipe)

Do let me know if anything needs to be changed in order to accept the pull request! :)

on my machine at least, the test suite fails on both python 2.7 and 3.4 with the following error (irrespective of the modifications in this pull request):

Yeah, it expects citeproc plugin to be installed. No need to worry about that.
I'll have a better look at the morning and get a version out.
Thanks a lot!

it expects citeproc plugin to be installed

Oh, of course, I should've known :)

I pushed 0.9.8 out there containing your contribution. Thanks a lot!

Thanks! :)


Oidc v2

Hello Peter, I've completed the OIDC implementation starting from your oidc branch.
Could you make a check?
I remain at your disposal for any further information.
Luca

Hey Luca,
I am currently on travel but will take a look in a week or so. Meanwhile pls. make sure there are no superfluous / unrelated changes (e.g. reorganization of the imports in AbstractCacheAsyncCrudRepo.scala and CustomSqlFunctions.java) as well as changes in the code indent (e.g. User.scala). But most importantly it would help me a lot if you could specify shortly what you have tried to achieve and was missing in the previous version. Thanx!

Good morning Peter,
I've fixed the code avoiding superfluous changes.
Essentially my updates refer to the identification process.
Having different IdPs we can't rely on userId only, but the unique identifier is oidcId (the "sub" in jwt token).
The oidcId is a unique common fields between the IdPs.
I've changed a little bit the logic in OidcAuthController in order to consider the users present in database and the new ones.
When you're coming back I would like to plan a meeting to ask some questions about these topics:

Production/release deployment;
Database migration;
Testing.

I remain at your disposal for any further information.
Luca

Good morning Peter,
I've changed the OIDC login and GuiteAppTest classes acording to your suggestions.
I remain at your disposal for any further information.
Luca

Hi Luca,
Looks great! It's definitely way to go.
Before I take a closer look pls. make sure you address all the issues I raised one-by-one. I see several of them, e.g. in PacSecurityModule.scala, UserController.scala, and navbar.scala.html (some of them critical) that have been missed out.
Cheers,
:Peter

Good morning Peter,
I did a refactoring on the classes. I didn’t understand what is the problem on PacSecurityModule.scala, maybe because is it loaded if LDap configuration has been selected?
Luca

Hi Luca,
Not sure what exactly is not clear but to answer you question: Yes, there could be an LDAP or local auth used without any OIDC configuration param being set.
For reference I am listing all 6 issues related to PacSecurityModule.scala here:

All the Option.get calls are (very) bad and should be avoided. If these config settings are not specified by mistake or intentionally because non-OIDC (i.e. LDAP or local) auth is used, the .get calls will fail without a reasonable exception.

Instead of that pls. use .getOrElse(throw new AdaException(s"OIDC config key '${key}' not available.")) (as it was originally done). Actually it's not clear to me why these safeguards have been removed.

Instead of the hardcoded url /oidc/callback which can be potentially changed in routes we should use the original construction here:

val suffix = org.pac4j.play.routes.CallbackController.callback().url
val callbackUrl = baseUrl.replaceAll("/$", "") + suffix

As mentioned before, the use of OIDC is optional. The original block (as it was implemented before the OIDC v2 was started) with a safe creation of oidcClient based on the presence (or absence) of oidc.baseUrl (or as it's now with oidc.discoveryURI) should be restored. You don't want to create an OIDC client if there is no OIDC configuration present (i.e., LDAP or local auth is used). Again, I am not sure why it was removed.

Revert all the configuration options as they were before, regardless of the current LCSB-specific deployment (with Keycloak). Other facilities that aim to use the OIDC auth will likely have different configs so it's better to be as general as possible here.

The following config options should be reintroduced:
logoutURL, responseType, scope, clientAuthenticationMethod, preferredJwsAlgorithm and useNonce

Because of the never-ending discussion regarding the local-vs-global logout pls. revert the enableCentralLogout config (as it was originally used)

Remove callbackController.setDefaultUrl("/?defaulturlafterlogout")... do you really want to use a String defaulturlafterlogout?

Note that these issues are visible in my review and, as mentioned, it's expected that they are fixed (or commented with a reasonable explanation) in an organized fashion.
If you need more help I suggest to contact somebody local (e.g. Sascha).
Thank you for your effort,
:Peter

Good morning Peter,
thank you for the explanation, I've decided to revert PacSecurityModule in your previous implementation.
My refactoring was due to some problems that I've encountered when I was launching the project first times.
Of course was lacking of safer implementation.
Now that I better understanding about the project and OpenId library I reverted in its original version.
I remain at you disposal for any further information.
Luca

Hi Luca,
Thanks for reverting PacSecurityModule back to the original (safe) version.
I took a brief look at the rest of the changes and I have only a few comments:

A new User's attribute called userName is a bit confusing since we already have userId, and name. Since it's populated only by OIDC it should be renamed to a more appropriate oidcUserName.

Related to the point 1, in AppController.scala a part to obtain a first name:

          val userFirstName = user.userName match {
            case Some(userName) => userName.split("\\.", -1).head.capitalize
            case None => user.name
          }

should be simply
val userFirstName = user.name.split(" ", -1).head.capitalize

In UserController the attribute userName (or after renaming oidcUserName) can be None:

       Json.obj("_id" -> user._id, "name" -> user.userName)

It should be replaced instead with name which is always set (for OIDC as well as for LDAP or local).

(optional) In OidcAuthController I've noticed that you are (pre)checking whether a user exists by comparing his/her userId with a given OIDC userName. I understand this is done purely to avoid a full-scale migration (so users are migrated on case-by-case basis) but a clearer solution would be to update all users in a batch and set their new OIDC userIds directly in DB by a script (or Ada's runnable).

Good afternoon Peter,
I've applied the code changes. Regarding the last point '4', we're moving definitely with a full scale migration using a batch, like you have suggested, but for the moment we remain temporarily like this.
Luca

Hey Luca,
Looks good, except in the point 2 I wrote:
val userFirstName = user.name.split(" ", -1).head.capitalize

Since the name contains spaces not dots... pls. fix

Good morning Peter,
line code fixed.
Thank you.
Luca


[NFM] Debugging Nodes with F11

Contains
An addition for #8 (Rethink debug strategy in light of the DAG-based architecture). Adds F11 key to stop the execution of the pipeline at a certain point. As shown below:

Please just focus on these files while reviewing:

rendering/nui/layers/ingame/metrics/DebugOverlay.java
resources/assets/ui/ingame/debugOverlay.ui
rendering/dag/RenderTaskSystem.java
logic/players/DebugControlSystem.java
rendering/world/WorldRendererImpl.java (Especially usage of RenderTaskSystem)

How to test
Start the game and after enabling debug mode, use F11 key. It's good to enable all of the available effects while testing.
Outstanding before merging
It's based on #2399, so it includes changes in that branch. I will rebased this PR based on that.

Cooooool! I guess in a way this is the first super visible benefit to the pipeline setup? Looks like it would be hugely useful in 3d wizardry land :-)

Hooray Jenkins reported success with all tests good!

Bump - this one hasn't moved for a little while, is it special somehow, waiting for something, ready for merge minus any problematic conflicts or just close in favor of a later redo of some sort? :-)

I think it's better to close this since it's not in the roadmap right now. I'd like to revisit this after other issues are dealt with.

Ok! It looks like some of the code/comments/TODOs have made it in via the other PRs anyway, now that I check, also likely the reason for it being flagged for conflicts :-)


Snackbar blocks other notifications (snackbars/modals)

The Issue
If a snackbar is shown on the screen, other actions which result in a notification (modal/snackbar) are blocked until the snackbar disappears.
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

Easy to reproduce:

go to the Send & Receive page
populate the send credits fields (amount & address)
click the copy address button
click the send button to open the confirmation modal

This will be delayed until the snackbar goes away for the address copied message

Doesn't seem to be an issue anymore.

Doesn't seem to be an issue anymore.


fix(IAM Identity): re-gen with latest API definition

PR summary
Java SDK doc for IAM identity. PR includes changes related

Create mfa report
Get mfa report
Get mfa user status
Change token expiration max and default value to 259200

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Somanath Chavan seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@Somchavan I noticed that the travis build failed for this PR due to the "main" method in the IamIdentityExamples class being too long (checkstyle error).  So, I just modified the checkstyle config to increase the limit and pushed that to your branch.

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


iframe not working with facebook-connect .

I am using facebook-connect with iframe , but it popups no-matter what.
Here is the config.
  providers: {
          'facebook-connect': {
            appId: '1798673053681606',
            scope: 'public_profile,email,user_birthday',
            remoteServiceName: 'iframe'
          }

Unless this has changed, even if it did work, Facebook wouldn't allow you to sign in from an iFrame... which is kind of frustrating since the popup window doesn't work (or behaves weirdly) from within the Facebook app's embedded browser.

Ah thats why.
Its bad that popup is always getting blocked by browser , are there better way ?

@v3ss0n sadly, not that I know of... I'd be happy for an all around solution to this.

Using a link instead of button helps. As itis opened by browser. Not javascript

Seems like there should be an improved error state for specifying iframe and using facebook connect.

Facebook SDK connect javascript Link


How to update opcache configuration?

https://github.com/aws-samples/aws-refarch-wordpress recommends updates to opcache but it doesn't specify where?
I've updated on the ec2 instances at /etc/php.d/10-opcache.ini but I can't see the updates in https://www.url/opcache-instanceid.php
I've also updated /etc/php.ini and entered records but it isn't replicating across other EC2 instances.
Thoughts?

Did you try restarting apache server?